public static List func_77513_b(Random p_77513_0_, ItemStack p_77513_1_, int p_77513_2_) { Item var3 = p_77513_1_.func_77973_b(); int var4 = var3.func_77619_b(); if (var4 <= 0) { return null; } else { var4 /= 2; var4 = 1 + p_77513_0_.nextInt((var4 >> 1) + 1) + p_77513_0_.nextInt((var4 >> 1) + 1); int var5 = var4 + p_77513_2_; float var6 = (p_77513_0_.nextFloat() + p_77513_0_.nextFloat() - 1.0F) * 0.15F; int var7 = (int) ((float) var5 * (1.0F + var6) + 0.5F); if (var7 < 1) { var7 = 1; } ArrayList var8 = null; Map var9 = func_77505_b(var7, p_77513_1_); if (var9 != null && !var9.isEmpty()) { EnchantmentData var10 = (EnchantmentData) WeightedRandom.func_76271_a(p_77513_0_, var9.values()); if (var10 != null) { var8 = new ArrayList(); var8.add(var10); for (int var11 = var7; p_77513_0_.nextInt(50) <= var11; var11 >>= 1) { Iterator var12 = var9.keySet().iterator(); while (var12.hasNext()) { Integer var13 = (Integer) var12.next(); boolean var14 = true; Iterator var15 = var8.iterator(); while (true) { if (var15.hasNext()) { EnchantmentData var16 = (EnchantmentData) var15.next(); if (var16.field_76302_b.func_77326_a( Enchantment.field_77331_b[var13.intValue()])) { continue; } var14 = false; } if (!var14) { var12.remove(); } break; } } if (!var9.isEmpty()) { EnchantmentData var17 = (EnchantmentData) WeightedRandom.func_76271_a(p_77513_0_, var9.values()); var8.add(var17); } } } } return var8; } }