import java.util.ArrayList;
import java.util.Iterator;

public class Class215 {

   protected static int anInt2516;
   static Class464 aClass464_2517;
   protected static Class448 aClass448_2518;
   protected static Class555 aClass555_2519;
   static ArrayList[][][] anArrayListArrayArrayArray2520;
   protected static Interface12 anInterface12_2521;
   protected static Interface13 anInterface13_2522;
   public static Class225_Sub14_Sub11 aClass225_Sub14_Sub11_2523;
   protected static Class253 aClass253_2524;
   protected static int anInt2525;
   protected static int anInt2526;
   static byte[] aByteArray2527;
   protected static byte[][][] aByteArrayArrayArray2528;
   protected static int anInt2529;
   static int[] anIntArray2530 = new int[1];
   static byte[] aByteArray2531 = new byte[1];
   public static int anInt2532;
   public static float aFloat2533;
   protected static Class219 aClass219_2534;
   protected static Class456 aClass456_2535 = new Class456();
   protected static int anInt2536 = (int)(Math.random() * 11.0D) - 5;
   protected static Class424 aClass424_2537;
   static byte[] aByteArray2538;
   protected static int anInt2539 = (int)(Math.random() * 17.0D) - 8;
   static int[] anIntArray2540;
   public static float aFloat2541;
   static byte[] aByteArray2542;
   static short[] aShortArray2543;
   static Class423 aClass423_2544 = new Class423(16);
   static byte[] aByteArray2545;
   protected static int anInt2546;
   static byte[] aByteArray2547;
   public static int anInt2548;
   protected static int anInt2549;
   protected static int anInt2550;
   static Class509 aClass509_2551;
   protected static int anInt2552;
   protected static int anInt2553;
   protected static int anInt2554;
   static Object[] anObjectArray2555;
   protected static int anInt2556;


   static void method3661(Class545 var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, int[] var8, byte[] var9, boolean var10) {
      int var11;
      int var12;
      if(var10 || var5 != 0 || var6 > 0) {
         if(var6 == 0) {
            var0.B(var1, var2, var3, var4, var5, 0);
         } else {
            var11 = var7 & 63;
            if(var11 != 0 && var3 > 1 && var4 > 1) {
               var12 = var10?0:1;
               Class225_Sub27.method13968(var0, aByteArrayArrayArray2528, anInt2529, var1, var2, var5, anIntArray2540[var6], var3, var4, var11, var7 >> 6 & 3, var12, (byte)-37);
            } else {
               var12 = anIntArray2540[var6];
               if(var10 || var12 != 0) {
                  var0.B(var1, var2, var3, var4, var12, 0);
               }
            }
         }
      }

      if(var8 != null) {
         if(var3 == 1) {
            var11 = var1;
         } else {
            var11 = var1 + var3 - 1;
         }

         if(var4 == 1) {
            var12 = var2;
         } else {
            var12 = var2 + var4 - 1;
         }

         for(int var13 = 0; var13 < var8.length; ++var13) {
            int var14 = var9[var13] & 63;
            if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303 || var14 == Class458.aClass458_5698.anInt5719 * -1372814303 || var14 == Class458.aClass458_5714.anInt5719 * -1372814303 || var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
               Class445 var15 = aClass448_2518.method7506(var8[var13], 271871284);
               if(var15.anInt5493 * -762216121 == -1) {
                  int var16 = -3355444;
                  if(var15.anInt5544 * -22824303 == 1) {
                     var16 = -3407872;
                  }

                  int var17 = var9[var13] >> 6 & 3;
                  if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, var16, 0);
                     } else {
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5698.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 1) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     } else {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5714.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.XA(var1, var2, 1, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var11, var2, 1, var16, 0);
                     } else if(var17 == 2) {
                        var0.XA(var11, var12, 1, var16, 0);
                     } else {
                        var0.XA(var1, var12, 1, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
                     int var18;
                     if(var17 != 0 && var17 != 2) {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var2 + var18, 1, var16, 0);
                        }
                     } else {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var12 - var18, 1, var16, 0);
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public static void method3662(Class253 var0, Class509 var1, Class464 var2, Class448 var3, Class555 var4, Class424 var5, Interface13 var6, Interface12 var7) {
      aClass253_2524 = var0;
      aClass509_2551 = var1;
      aClass464_2517 = var2;
      aClass448_2518 = var3;
      aClass555_2519 = var4;
      aClass424_2537 = var5;
      anInterface13_2522 = var6;
      anInterface12_2521 = var7;
      aClass423_2544.method7212(1716038163);
      int var8 = aClass253_2524.method4557("details", (byte)-12);
      int[] var9 = aClass253_2524.method4513(var8, -1747101200);
      if(var9 != null) {
         for(int var10 = 0; var10 < var9.length; ++var10) {
            Class225_Sub14_Sub11 var11 = Class237.method4147(aClass253_2524, var8, var9[var10], -2091111174);
            aClass423_2544.method7206(var11, (long)(var11.anInt10527 * -56063173));
         }
      }

      Class94.method1844(true, false, -121305218);
   }

   static void method3663() {
      aByteArray2538 = new byte[anInt2526 * anInt2546];
      aByteArray2527 = new byte[anInt2526 * anInt2546];
      aByteArray2545 = new byte[anInt2526 * anInt2546];
      anObjectArray2555 = new Object[anInt2526 * anInt2546];
      aByteArray2547 = new byte[anInt2526 * anInt2546];
      anArrayListArrayArrayArray2520 = new ArrayList[3][anInt2526 >> 6][anInt2546 >> 6];
      anIntArray2540 = new int[aClass509_2551.anInt6029 * -1179283431 + 1];
   }

   static void method3664() {
      aByteArray2538 = null;
      aByteArray2542 = null;
      aShortArray2543 = null;
      aByteArray2527 = null;
      aByteArray2545 = null;
      anObjectArray2555 = null;
      aByteArray2547 = null;
      anArrayListArrayArrayArray2520 = (ArrayList[][][])null;
      anIntArray2540 = null;
   }

   static void method3665(int var0) {
      aClass225_Sub14_Sub11_2523 = (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   public static Class225_Sub14_Sub11 method3666(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   static void method3667(Class545 var0, int var1, int var2) {
      RS2Buffer var3 = new RS2Buffer(aClass253_2524.method4573(aClass225_Sub14_Sub11_2523.aString10528, "area", (byte)-122));
      int var4 = var3.readUnsignedByte(-700559597);
      int[] var5 = new int[var4];

      int var6;
      for(var6 = 0; var6 < var4; ++var6) {
         var5[var6] = var3.readUnsignedByte(-700559597);
      }

      var6 = var3.readUnsignedByte(-700559597);
      int[] var7 = new int[var6];

      int var8;
      for(var8 = 0; var8 < var6; ++var8) {
         var7[var8] = var3.readUnsignedByte(-700559597);
      }

      int var10;
      int var11;
      int var15;
      while(var3.position * -543666943 < var3.buffer.length) {
         int var9;
         int var12;
         int var13;
         if(var3.readUnsignedByte(-700559597) == 0) {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);

            for(var10 = 0; var10 < 64; ++var10) {
               for(var11 = 0; var11 < 64; ++var11) {
                  var12 = var8 * 64 + var10 - anInt2532;
                  var13 = var9 * 64 + var11 - anInt2548;
                  method3689(var0, var3, var8, var9, var12, var13, var5, var7);
               }
            }
         } else {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);
            var10 = var3.readUnsignedByte(-700559597);
            var11 = var3.readUnsignedByte(-700559597);

            for(var12 = 0; var12 < 8; ++var12) {
               for(var13 = 0; var13 < 8; ++var13) {
                  int var14 = var8 * 64 + var10 * 8 + var12 - anInt2532;
                  var15 = var9 * 64 + var11 * 8 + var13 - anInt2548;
                  method3689(var0, var3, var8, var9, var14, var15, var5, var7);
               }
            }
         }
      }

      var3 = null;
      aByteArray2542 = new byte[anInt2526 * anInt2546];
      aShortArray2543 = new short[anInt2526 * anInt2546];

      for(var8 = 0; var8 < 3; ++var8) {
         byte[] var16 = new byte[anInt2526 * anInt2546];

         Iterator var17;
         Class208 var19;
         ArrayList var18;
         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  for(var17 = var18.iterator(); var17.hasNext(); var16[var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526] = (byte)var19.anInt2459) {
                     var19 = (Class208)var17.next();
                  }
               }
            }
         }

         method3673(var16, aByteArray2542, aShortArray2543, var1, var2);

         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  var17 = var18.iterator();

                  while(var17.hasNext()) {
                     var19 = (Class208)var17.next();
                     var15 = var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526;
                     var19.anInt2459 = (aByteArray2542[var15] & 255) << 16 | aShortArray2543[var15] & '\uffff';
                     if(var19.anInt2459 != 0) {
                        var19.anInt2459 |= -16777216;
                     }
                  }
               }
            }
         }
      }

      method3673(aByteArray2538, aByteArray2542, aShortArray2543, var1, var2);
      aByteArray2538 = null;
      method3672();
   }

   public static Class455 method3668(int var0, int var1) {
      Class455 var2 = new Class455();

      for(Class225_Sub14_Sub11 var3 = (Class225_Sub14_Sub11)aClass423_2544.method7208(-405853513); var3 != null; var3 = (Class225_Sub14_Sub11)aClass423_2544.method7226(1659529140)) {
         if(var3.aBool10538 && var3.method16198(var0, var1, (byte)-76)) {
            var2.method7600(var3, 783478248);
         }
      }

      return var2;
   }

   static void method3669(Interface24 var0, int var1, int var2) {
      for(int var3 = 0; var3 < aClass509_2551.anInt6029 * -1179283431; ++var3) {
         anIntArray2540[var3 + 1] = method3698(var0, var3, var1, var2);
      }

   }

   static void method3670(Class545 var0, RS2Buffer var1, int var2, int var3, int var4, int var5, int[] var6, int[] var7) {
      int var8 = var1.readUnsignedByte(-700559597);
      if((var8 & 1) == 0) {
         boolean var9 = (var8 & 2) == 0;
         int var10 = var8 >> 2 & 63;
         if(var10 == 62) {
            return;
         }

         if(var10 == 63) {
            var10 = var1.readUnsignedByte(-700559597);
         } else if(var9) {
            var10 = var6[var10];
         } else {
            var10 = var7[var10];
         }

         if(var9) {
            aByteArray2538[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2527[var4 + var5 * anInt2526] = 0;
         } else {
            aByteArray2527[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2545[var4 + var5 * anInt2526] = 0;
            aByteArray2538[var4 + var5 * anInt2526] = var1.readByte(-934783573);
         }
      } else {
         int var20 = (var8 >> 1 & 3) + 1;
         boolean var21 = (var8 & 8) != 0;
         boolean var11 = (var8 & 16) != 0;

         for(int var12 = 0; var12 < var20; ++var12) {
            int var13 = var1.readUnsignedByte(-700559597);
            int var14 = 0;
            int var15 = 0;
            if(var21) {
               var14 = var1.readUnsignedByte(-700559597);
               var15 = var1.readUnsignedByte(-700559597);
            }

            int var16 = 0;
            if(var11) {
               var16 = var1.readUnsignedByte(-700559597);
            }

            int[] var17;
            int var19;
            byte[] var18;
            if(var12 == 0) {
               aByteArray2538[var4 + var5 * anInt2526] = (byte)var13;
               aByteArray2527[var4 + var5 * anInt2526] = (byte)var14;
               aByteArray2545[var4 + var5 * anInt2526] = (byte)var15;
               if(var16 == 1) {
                  anObjectArray2555[var4 + var5 * anInt2526] = new Integer(var1.readLargeSmart(2028575232));
                  aByteArray2547[var4 + var5 * anInt2526] = var1.readByte(-640863164);
               } else if(var16 > 1) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(1993050278);
                     var18[var19] = var1.readByte(1269815444);
                  }

                  anObjectArray2555[var4 + var5 * anInt2526] = new Class225_Sub25(var17, var18);
               }
            } else {
               var17 = null;
               var18 = null;
               if(var16 > 0) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(1762037902);
                     var18[var19] = var1.readByte(-825211884);
                  }
               }

               if(anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] == null) {
                  anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] = new ArrayList();
               }

               Class208 var22 = new Class208(var4 & 63, var5 & 63, var13, var14, var15, var17, var18);
               anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)].add(var22);
            }
         }
      }

   }

   public static Class225_Sub14_Sub11 method3671(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   Class215() throws Throwable {
      throw new Error();
   }

   static void method3672() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], 1879592760);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1809716206);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)45);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 1532748101);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1328836328);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)55);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], 1091026846);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 2098935268);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)65);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   static void method3673(byte[] var0, byte[] var1, short[] var2, int var3, int var4) {
      int[] var5 = new int[anInt2546];
      int[] var6 = new int[anInt2546];
      int[] var7 = new int[anInt2546];
      int[] var8 = new int[anInt2546];
      int[] var9 = new int[anInt2546];

      for(int var10 = -5; var10 < anInt2526; ++var10) {
         int var11 = var10 + 5;
         int var12 = var10 - 5;

         int var13;
         int var14;
         for(var13 = 0; var13 < anInt2546; ++var13) {
            Class421 var15;
            if(var11 < anInt2526) {
               var14 = var0[var11 + var13 * anInt2526] & 255;
               if(var14 > 0) {
                  var15 = aClass464_2517.method7818(var14 - 1, -1261761367);
                  var5[var13] += var15.anInt5339 * -1871292941;
                  var6[var13] += var15.anInt5335 * 86407589;
                  var7[var13] += var15.anInt5341 * 1141088269;
                  var8[var13] += var15.anInt5342 * -1501376575;
                  ++var9[var13];
               }
            }

            if(var12 >= 0) {
               var14 = var0[var12 + var13 * anInt2526] & 255;
               if(var14 > 0) {
                  var15 = aClass464_2517.method7818(var14 - 1, -2117916532);
                  var5[var13] -= var15.anInt5339 * -1871292941;
                  var6[var13] -= var15.anInt5335 * 86407589;
                  var7[var13] -= var15.anInt5341 * 1141088269;
                  var8[var13] -= var15.anInt5342 * -1501376575;
                  --var9[var13];
               }
            }
         }

         if(var10 >= 0) {
            var13 = 0;
            var14 = 0;
            int var26 = 0;
            int var16 = 0;
            int var17 = 0;

            for(int var18 = -5; var18 < anInt2546; ++var18) {
               int var19 = var18 + 5;
               if(var19 < anInt2546) {
                  var13 += var5[var19];
                  var14 += var6[var19];
                  var26 += var7[var19];
                  var16 += var8[var19];
                  var17 += var9[var19];
               }

               int var20 = var18 - 5;
               if(var20 >= 0) {
                  var13 -= var5[var20];
                  var14 -= var6[var20];
                  var26 -= var7[var20];
                  var16 -= var8[var20];
                  var17 -= var9[var20];
               }

               if(var18 >= 0 && var17 > 0) {
                  int var21;
                  if((var0[var10 + var18 * anInt2526] & 255) == 0) {
                     var21 = var10 + var18 * anInt2526;
                     var1[var21] = 0;
                     var2[var21] = 0;
                  } else {
                     var21 = var16 == 0?0:Class49.method1191(var13 * 256 / var16, var14 / var17, var26 / var17, 1241482076);
                     int var22 = (var21 & 127) + var4;
                     if(var22 < 0) {
                        var22 = 0;
                     } else if(var22 > 127) {
                        var22 = 127;
                     }

                     int var23 = (var21 + var3 & '\ufc00') + (var21 & 896) + var22;
                     int var24 = var10 + var18 * anInt2526;
                     int var25 = Class516.anIntArray6082[Class166.method2855(IncommingOpcode.method5364(var23, 96, -849600343), 1655843135) & '\uffff'];
                     var1[var24] = (byte)(var25 >> 16 & 255);
                     var2[var24] = (short)(var25 & '\uffff');
                  }
               }
            }
         }
      }

   }

   static void method3674(Class545 var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, int[] var8, byte[] var9, boolean var10) {
      int var11;
      int var12;
      if(var10 || var5 != 0 || var6 > 0) {
         if(var6 == 0) {
            var0.B(var1, var2, var3, var4, var5, 0);
         } else {
            var11 = var7 & 63;
            if(var11 != 0 && var3 > 1 && var4 > 1) {
               var12 = var10?0:1;
               Class225_Sub27.method13968(var0, aByteArrayArrayArray2528, anInt2529, var1, var2, var5, anIntArray2540[var6], var3, var4, var11, var7 >> 6 & 3, var12, (byte)-5);
            } else {
               var12 = anIntArray2540[var6];
               if(var10 || var12 != 0) {
                  var0.B(var1, var2, var3, var4, var12, 0);
               }
            }
         }
      }

      if(var8 != null) {
         if(var3 == 1) {
            var11 = var1;
         } else {
            var11 = var1 + var3 - 1;
         }

         if(var4 == 1) {
            var12 = var2;
         } else {
            var12 = var2 + var4 - 1;
         }

         for(int var13 = 0; var13 < var8.length; ++var13) {
            int var14 = var9[var13] & 63;
            if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303 || var14 == Class458.aClass458_5698.anInt5719 * -1372814303 || var14 == Class458.aClass458_5714.anInt5719 * -1372814303 || var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
               Class445 var15 = aClass448_2518.method7506(var8[var13], 391267446);
               if(var15.anInt5493 * -762216121 == -1) {
                  int var16 = -3355444;
                  if(var15.anInt5544 * -22824303 == 1) {
                     var16 = -3407872;
                  }

                  int var17 = var9[var13] >> 6 & 3;
                  if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, var16, 0);
                     } else {
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5698.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 1) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     } else {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5714.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.XA(var1, var2, 1, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var11, var2, 1, var16, 0);
                     } else if(var17 == 2) {
                        var0.XA(var11, var12, 1, var16, 0);
                     } else {
                        var0.XA(var1, var12, 1, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
                     int var18;
                     if(var17 != 0 && var17 != 2) {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var2 + var18, 1, var16, 0);
                        }
                     } else {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var12 - var18, 1, var16, 0);
                        }
                     }
                  }
               }
            }
         }

      }
   }

   static void method3675(int var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
      anInt2549 = var0 - anInt2532;
      anInt2550 = var1 - anInt2548;
      anInt2516 = var2 - anInt2532;
      anInt2556 = var3 - anInt2548;
      anInt2553 = var4;
      anInt2554 = var5;
      anInt2552 = var6;
      anInt2525 = var7;
   }

   static Class456 method3676(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)51); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-457940783)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static void method3677(Class545 var0, int var1, int var2, int var3, int var4) {
      int var5 = anInt2516 - anInt2549;
      int var6 = anInt2550 - anInt2556;
      if(anInt2516 < anInt2526) {
         ++var5;
      }

      if(anInt2550 < anInt2546) {
         ++var6;
      }

      int var7;
      int var8;
      int var9;
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      int var16;
      int var19;
      for(var7 = 0; var7 < var5; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = anInt2549 + var7;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     int var17 = var11 + var16 * anInt2526;
                     int var18 = 0;
                     var19 = 0;
                     Object var20 = null;
                     if(var16 >= 0 && var16 < anInt2546) {
                        var18 = (aByteArray2542[var17] & 255) << 16 | aShortArray2543[var17] & '\uffff';
                        if(var18 != 0) {
                           var18 |= -16777216;
                        }

                        var19 = aByteArray2527[var17] & 255;
                        var20 = anObjectArray2555[var17];
                     }

                     if(var18 == 0 && var19 == 0 && var20 == null) {
                        if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                           var18 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                        } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                           var18 = -11840664;
                        } else {
                           var18 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                        }

                        if(var18 == 0) {
                           var18 = -16777216;
                        }

                        var0.B(var8, var13, var10, var15, var18, 0);
                     } else if(var20 != null) {
                        if(var20 instanceof Class225_Sub25) {
                           Class225_Sub25 var21 = (Class225_Sub25)var20;
                           if(var21 != null) {
                              method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], var21.anIntArray8630, var21.aByteArray8629, true);
                           }
                        } else {
                           Integer var30 = (Integer)var20;
                           anIntArray2530[0] = var30.intValue();
                           aByteArray2531[0] = aByteArray2547[var17];
                           method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], anIntArray2530, aByteArray2531, true);
                        }
                     } else {
                        method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], (int[])null, (byte[])null, true);
                     }
                  }
               }
            } else {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                     var16 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                  } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                     var16 = -11840664;
                  } else {
                     var16 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                  }

                  if(var16 == 0) {
                     var16 = -16777216;
                  }

                  var0.B(var8, var13, var10, var15, var16, 0);
               }
            }
         }
      }

      for(var7 = -16; var7 < var5 + 16; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = var7 + anInt2549;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = -16; var12 < var6 + 16; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     if(var16 >= 0 && var16 < anInt2546) {
                        Object var27 = anObjectArray2555[var11 + var16 * anInt2526];
                        if(var27 != null) {
                           if(var27 instanceof Class225_Sub25) {
                              Class225_Sub25 var29 = (Class225_Sub25)var27;
                              if(var29 != null) {
                                 method3679(var0, var8, var13, var10, var15, var29.anIntArray8630, var29.aByteArray8629);
                              }
                           } else {
                              Integer var32 = (Integer)var27;
                              anIntArray2530[0] = var32.intValue();
                              aByteArray2531[0] = aByteArray2547[var11 + var16 * anInt2526];
                              method3679(var0, var8, var13, var10, var15, anIntArray2530, aByteArray2531);
                           }
                        } else {
                           method3679(var0, var8, var13, var10, var15, (int[])null, (byte[])null);
                        }
                     }
                  }
               }
            }
         }
      }

      var7 = anInt2549 >> 6;
      var8 = anInt2556 >> 6;
      if(var7 < 0) {
         var7 = 0;
      }

      if(var8 < 0) {
         var8 = 0;
      }

      var9 = anInt2516 >> 6;
      var10 = anInt2550 >> 6;
      if(var9 >= anArrayListArrayArrayArray2520[0].length) {
         var9 = anArrayListArrayArrayArray2520[0].length - 1;
      }

      if(var10 >= anArrayListArrayArrayArray2520[0][0].length) {
         var10 = anArrayListArrayArrayArray2520[0][0].length - 1;
      }

      for(var11 = 0; var11 < 3; ++var11) {
         int var23;
         int var22;
         ArrayList var25;
         int var24;
         Iterator var26;
         int var28;
         int var31;
         Class208 var33;
         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3661(var0, var31, var23, var22 - var31, var24 - var23, var33.anInt2459, var33.aByte2460 & 255, var33.aByte2461, var33.anIntArray2462, var33.aByteArray2463, false);
                  }
               }
            }
         }

         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3679(var0, var31, var23, var22 - var31, var24 - var23, var33.anIntArray2462, var33.aByteArray2463);
                  }
               }
            }
         }
      }

   }

   static void method3678() {
      int[] var0 = new int[3];

      for(int var1 = 0; var1 < aClass219_2534.anInt2574 * -872595517; ++var1) {
         boolean var2 = aClass225_Sub14_Sub11_2523.method16193(aClass219_2534.anIntArray2575[var1] >> 28 & 3, aClass219_2534.anIntArray2575[var1] >> 14 & 16383, aClass219_2534.anIntArray2575[var1] & 16383, var0, (byte)50);
         if(var2) {
            Class225_Sub11 var3 = new Class225_Sub11(aClass219_2534.anIntArray2573[var1]);
            var3.anInt8534 = (var0[1] - anInt2532) * 1540883595;
            var3.anInt8531 = (var0[2] - anInt2548) * -1459805283;
            aClass456_2535.method7712(var3, (byte)58);
         }
      }

   }

   static void method3679(Class545 var0, int var1, int var2, int var3, int var4, int[] var5, byte[] var6) {
      if(var5 != null) {
         for(int var7 = 0; var7 < var5.length; ++var7) {
            Class445 var8 = aClass448_2518.method7506(var5[var7], 96646960);
            int var9 = var8.anInt5493 * -762216121;
            if(var9 != -1) {
               Class426 var10 = aClass424_2537.method7233(var9, 98864902);
               Class171 var11 = var10.method7262(var0, var8.aBool5524?var6[var7] >> 6 & 3:0, var8.aBool5530?var8.aBool5506:false, (byte)120);
               if(var11 != null) {
                  int var12 = var3 * var11.method94() >> 2;
                  int var13 = var4 * var11.method2969() >> 2;
                  if(var10.aBool5370) {
                     int var14 = var8.anInt5526 * -935727759;
                     int var15 = var8.anInt5509 * 514121989;
                     if((var6[var7] >> 6 & 1) == 1) {
                        int var16 = var14;
                        var14 = var15;
                        var15 = var16;
                     }

                     var12 = var14 * var3;
                     var13 = var15 * var4;
                  }

                  if(var12 != 0 && var13 != 0) {
                     if(var10.anInt5369 * 555128203 != 0) {
                        var11.method2930(var1, var2 - var13 + var4, var12, var13, 0, -16777216 | var10.anInt5369 * 555128203, 1);
                     } else {
                        var11.method2929(var1, var2 - var13 + var4, var12, var13);
                     }
                  }
               }
            }
         }

      }
   }

   static Class456 method3680(Class545 var0) {
      int var1 = anInt2516 - anInt2549;
      int var2 = anInt2550 - anInt2556;
      int var3 = (anInt2552 - anInt2553 << 16) / var1;
      int var4 = (anInt2525 - anInt2554 << 16) / var2;
      return method3723(var0, var3, var4, 0, 0);
   }

   public static Class225_Sub14_Sub11 method3681(int var0, int var1) {
      for(Class225_Sub14_Sub11 var2 = (Class225_Sub14_Sub11)aClass423_2544.method7208(-405853513); var2 != null; var2 = (Class225_Sub14_Sub11)aClass423_2544.method7226(1869495399)) {
         if(var2.aBool10538 && var2.method16198(var0, var1, (byte)-37)) {
            return var2;
         }
      }

      return null;
   }

   static void method3682(Class545 var0, Class225_Sub11 var1, int var2, int var3, int var4, int var5) {
      var1.anInt8532 = (anInt2553 + (var4 + var2 * (var1.anInt8534 * 1454719779 - anInt2549) >> 16)) * -384781917;
      var1.anInt8533 = (anInt2525 - (var5 + var3 * (var1.anInt8531 * 87128757 - anInt2556) >> 16)) * -951118213;
   }

   static void method3683(Class545 var0, int var1, int var2) {
      RS2Buffer var3 = new RS2Buffer(aClass253_2524.method4573(aClass225_Sub14_Sub11_2523.aString10528, "area", (byte)-28));
      int var4 = var3.readUnsignedByte(-700559597);
      int[] var5 = new int[var4];

      int var6;
      for(var6 = 0; var6 < var4; ++var6) {
         var5[var6] = var3.readUnsignedByte(-700559597);
      }

      var6 = var3.readUnsignedByte(-700559597);
      int[] var7 = new int[var6];

      int var8;
      for(var8 = 0; var8 < var6; ++var8) {
         var7[var8] = var3.readUnsignedByte(-700559597);
      }

      int var10;
      int var11;
      int var15;
      while(var3.position * -543666943 < var3.buffer.length) {
         int var9;
         int var12;
         int var13;
         if(var3.readUnsignedByte(-700559597) == 0) {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);

            for(var10 = 0; var10 < 64; ++var10) {
               for(var11 = 0; var11 < 64; ++var11) {
                  var12 = var8 * 64 + var10 - anInt2532;
                  var13 = var9 * 64 + var11 - anInt2548;
                  method3689(var0, var3, var8, var9, var12, var13, var5, var7);
               }
            }
         } else {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);
            var10 = var3.readUnsignedByte(-700559597);
            var11 = var3.readUnsignedByte(-700559597);

            for(var12 = 0; var12 < 8; ++var12) {
               for(var13 = 0; var13 < 8; ++var13) {
                  int var14 = var8 * 64 + var10 * 8 + var12 - anInt2532;
                  var15 = var9 * 64 + var11 * 8 + var13 - anInt2548;
                  method3689(var0, var3, var8, var9, var14, var15, var5, var7);
               }
            }
         }
      }

      var3 = null;
      aByteArray2542 = new byte[anInt2526 * anInt2546];
      aShortArray2543 = new short[anInt2526 * anInt2546];

      for(var8 = 0; var8 < 3; ++var8) {
         byte[] var16 = new byte[anInt2526 * anInt2546];

         Iterator var17;
         Class208 var19;
         ArrayList var18;
         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  for(var17 = var18.iterator(); var17.hasNext(); var16[var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526] = (byte)var19.anInt2459) {
                     var19 = (Class208)var17.next();
                  }
               }
            }
         }

         method3673(var16, aByteArray2542, aShortArray2543, var1, var2);

         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  var17 = var18.iterator();

                  while(var17.hasNext()) {
                     var19 = (Class208)var17.next();
                     var15 = var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526;
                     var19.anInt2459 = (aByteArray2542[var15] & 255) << 16 | aShortArray2543[var15] & '\uffff';
                     if(var19.anInt2459 != 0) {
                        var19.anInt2459 |= -16777216;
                     }
                  }
               }
            }
         }
      }

      method3673(aByteArray2538, aByteArray2542, aShortArray2543, var1, var2);
      aByteArray2538 = null;
      method3672();
   }

   static void method3684(Class545 var0) {
      int var1 = anInt2516 - anInt2549;
      int var2 = anInt2550 - anInt2556;
      int var3 = (anInt2552 - anInt2553 << 16) / var1;
      int var4 = (anInt2525 - anInt2554 << 16) / var2;
      method3677(var0, var3, var4, 0, 0);
   }

   public static void method3685(Class253 var0, Class509 var1, Class464 var2, Class448 var3, Class555 var4, Class424 var5, Interface13 var6, Interface12 var7) {
      aClass253_2524 = var0;
      aClass509_2551 = var1;
      aClass464_2517 = var2;
      aClass448_2518 = var3;
      aClass555_2519 = var4;
      aClass424_2537 = var5;
      anInterface13_2522 = var6;
      anInterface12_2521 = var7;
      aClass423_2544.method7212(485317668);
      int var8 = aClass253_2524.method4557("details", (byte)-42);
      int[] var9 = aClass253_2524.method4513(var8, -1948559159);
      if(var9 != null) {
         for(int var10 = 0; var10 < var9.length; ++var10) {
            Class225_Sub14_Sub11 var11 = Class237.method4147(aClass253_2524, var8, var9[var10], 33400595);
            aClass423_2544.method7206(var11, (long)(var11.anInt10527 * -56063173));
         }
      }

      Class94.method1844(true, false, 2115320108);
   }

   static void method3686(Class545 var0, int var1, int var2) {
      RS2Buffer var3 = new RS2Buffer(aClass253_2524.method4573(aClass225_Sub14_Sub11_2523.aString10528, "area", (byte)-11));
      int var4 = var3.readUnsignedByte(-700559597);
      int[] var5 = new int[var4];

      int var6;
      for(var6 = 0; var6 < var4; ++var6) {
         var5[var6] = var3.readUnsignedByte(-700559597);
      }

      var6 = var3.readUnsignedByte(-700559597);
      int[] var7 = new int[var6];

      int var8;
      for(var8 = 0; var8 < var6; ++var8) {
         var7[var8] = var3.readUnsignedByte(-700559597);
      }

      int var10;
      int var11;
      int var15;
      while(var3.position * -543666943 < var3.buffer.length) {
         int var9;
         int var12;
         int var13;
         if(var3.readUnsignedByte(-700559597) == 0) {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);

            for(var10 = 0; var10 < 64; ++var10) {
               for(var11 = 0; var11 < 64; ++var11) {
                  var12 = var8 * 64 + var10 - anInt2532;
                  var13 = var9 * 64 + var11 - anInt2548;
                  method3689(var0, var3, var8, var9, var12, var13, var5, var7);
               }
            }
         } else {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);
            var10 = var3.readUnsignedByte(-700559597);
            var11 = var3.readUnsignedByte(-700559597);

            for(var12 = 0; var12 < 8; ++var12) {
               for(var13 = 0; var13 < 8; ++var13) {
                  int var14 = var8 * 64 + var10 * 8 + var12 - anInt2532;
                  var15 = var9 * 64 + var11 * 8 + var13 - anInt2548;
                  method3689(var0, var3, var8, var9, var14, var15, var5, var7);
               }
            }
         }
      }

      var3 = null;
      aByteArray2542 = new byte[anInt2526 * anInt2546];
      aShortArray2543 = new short[anInt2526 * anInt2546];

      for(var8 = 0; var8 < 3; ++var8) {
         byte[] var16 = new byte[anInt2526 * anInt2546];

         Iterator var17;
         Class208 var19;
         ArrayList var18;
         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  for(var17 = var18.iterator(); var17.hasNext(); var16[var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526] = (byte)var19.anInt2459) {
                     var19 = (Class208)var17.next();
                  }
               }
            }
         }

         method3673(var16, aByteArray2542, aShortArray2543, var1, var2);

         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  var17 = var18.iterator();

                  while(var17.hasNext()) {
                     var19 = (Class208)var17.next();
                     var15 = var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526;
                     var19.anInt2459 = (aByteArray2542[var15] & 255) << 16 | aShortArray2543[var15] & '\uffff';
                     if(var19.anInt2459 != 0) {
                        var19.anInt2459 |= -16777216;
                     }
                  }
               }
            }
         }
      }

      method3673(aByteArray2538, aByteArray2542, aShortArray2543, var1, var2);
      aByteArray2538 = null;
      method3672();
   }

   static void method3687() {
      aByteArray2538 = new byte[anInt2526 * anInt2546];
      aByteArray2527 = new byte[anInt2526 * anInt2546];
      aByteArray2545 = new byte[anInt2526 * anInt2546];
      anObjectArray2555 = new Object[anInt2526 * anInt2546];
      aByteArray2547 = new byte[anInt2526 * anInt2546];
      anArrayListArrayArrayArray2520 = new ArrayList[3][anInt2526 >> 6][anInt2546 >> 6];
      anIntArray2540 = new int[aClass509_2551.anInt6029 * -1179283431 + 1];
   }

   static void method3688() {
      aByteArray2538 = null;
      aByteArray2542 = null;
      aShortArray2543 = null;
      aByteArray2527 = null;
      aByteArray2545 = null;
      anObjectArray2555 = null;
      aByteArray2547 = null;
      anArrayListArrayArrayArray2520 = (ArrayList[][][])null;
      anIntArray2540 = null;
   }

   static void method3689(Class545 var0, RS2Buffer var1, int var2, int var3, int var4, int var5, int[] var6, int[] var7) {
      int var8 = var1.readUnsignedByte(-700559597);
      if((var8 & 1) == 0) {
         boolean var9 = (var8 & 2) == 0;
         int var10 = var8 >> 2 & 63;
         if(var10 == 62) {
            return;
         }

         if(var10 == 63) {
            var10 = var1.readUnsignedByte(-700559597);
         } else if(var9) {
            var10 = var6[var10];
         } else {
            var10 = var7[var10];
         }

         if(var9) {
            aByteArray2538[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2527[var4 + var5 * anInt2526] = 0;
         } else {
            aByteArray2527[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2545[var4 + var5 * anInt2526] = 0;
            aByteArray2538[var4 + var5 * anInt2526] = var1.readByte(1330579640);
         }
      } else {
         int var20 = (var8 >> 1 & 3) + 1;
         boolean var21 = (var8 & 8) != 0;
         boolean var11 = (var8 & 16) != 0;

         for(int var12 = 0; var12 < var20; ++var12) {
            int var13 = var1.readUnsignedByte(-700559597);
            int var14 = 0;
            int var15 = 0;
            if(var21) {
               var14 = var1.readUnsignedByte(-700559597);
               var15 = var1.readUnsignedByte(-700559597);
            }

            int var16 = 0;
            if(var11) {
               var16 = var1.readUnsignedByte(-700559597);
            }

            int[] var17;
            int var19;
            byte[] var18;
            if(var12 == 0) {
               aByteArray2538[var4 + var5 * anInt2526] = (byte)var13;
               aByteArray2527[var4 + var5 * anInt2526] = (byte)var14;
               aByteArray2545[var4 + var5 * anInt2526] = (byte)var15;
               if(var16 == 1) {
                  anObjectArray2555[var4 + var5 * anInt2526] = new Integer(var1.readLargeSmart(1867208469));
                  aByteArray2547[var4 + var5 * anInt2526] = var1.readByte(-108371378);
               } else if(var16 > 1) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(1815838849);
                     var18[var19] = var1.readByte(1656997054);
                  }

                  anObjectArray2555[var4 + var5 * anInt2526] = new Class225_Sub25(var17, var18);
               }
            } else {
               var17 = null;
               var18 = null;
               if(var16 > 0) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(2022696991);
                     var18[var19] = var1.readByte(1787822729);
                  }
               }

               if(anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] == null) {
                  anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] = new ArrayList();
               }

               Class208 var22 = new Class208(var4 & 63, var5 & 63, var13, var14, var15, var17, var18);
               anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)].add(var22);
            }
         }
      }

   }

   static void method3690(Class545 var0, Class225_Sub11 var1, Class567 var2) {
      if(var2.anIntArray7523 != null) {
         int[] var3 = new int[var2.anIntArray7523.length];

         int var4;
         int var5;
         int var6;
         for(var4 = 0; var4 < var3.length / 2; ++var4) {
            var5 = var2.anIntArray7523[var4 * 2] + var1.anInt8534 * 1454719779;
            var6 = var2.anIntArray7523[var4 * 2 + 1] + var1.anInt8531 * 87128757;
            var3[var4 * 2] = anInt2553 + (anInt2552 - anInt2553) * (var5 - anInt2549) / (anInt2516 - anInt2549);
            var3[var4 * 2 + 1] = anInt2525 - (anInt2525 - anInt2554) * (var6 - anInt2556) / (anInt2550 - anInt2556);
         }

         Class93.method1838(var0, var3, var2.anInt7543 * 1875147967);
         if(var2.anInt7544 * 1848859429 > 0) {
            int var7;
            int var8;
            int var9;
            for(var4 = 0; var4 < var3.length / 2 - 1; ++var4) {
               var5 = var3[var4 * 2];
               var6 = var3[var4 * 2 + 1];
               var7 = var3[(var4 + 1) * 2];
               var8 = var3[(var4 + 1) * 2 + 1];
               if(var7 < var5) {
                  var9 = var5;
                  int var10 = var6;
                  var5 = var7;
                  var6 = var8;
                  var7 = var9;
                  var8 = var10;
               } else if(var7 == var5 && var8 < var6) {
                  var9 = var6;
                  var6 = var8;
                  var8 = var9;
               }

               var0.method11474(var5, var6, var7, var8, var2.anIntArray7528[var2.aByteArray7539[var4] & 255], 1, var2.anInt7544 * 1848859429, var2.anInt7545 * -2127412269, var2.anInt7549 * -1423965349);
            }

            var4 = var3[var3.length - 2];
            var5 = var3[var3.length - 1];
            var6 = var3[0];
            var7 = var3[1];
            if(var6 < var4) {
               var8 = var4;
               var9 = var5;
               var4 = var6;
               var5 = var7;
               var6 = var8;
               var7 = var9;
            } else if(var6 == var4 && var7 < var5) {
               var8 = var5;
               var5 = var7;
               var7 = var8;
            }

            var0.method11474(var4, var5, var6, var7, var2.anIntArray7528[var2.aByteArray7539[var2.aByteArray7539.length - 1] & 255], 1, var2.anInt7544 * 1848859429, var2.anInt7545 * -2127412269, var2.anInt7549 * -1423965349);
         } else {
            for(var4 = 0; var4 < var3.length / 2 - 1; ++var4) {
               var0.method11446(var3[var4 * 2], var3[var4 * 2 + 1], var3[(var4 + 1) * 2], var3[(var4 + 1) * 2 + 1], var2.anIntArray7528[var2.aByteArray7539[var4] & 255], (byte)1);
            }

            var0.method11446(var3[var3.length - 2], var3[var3.length - 1], var3[0], var3[1], var2.anIntArray7528[var2.aByteArray7539[var2.aByteArray7539.length - 1] & 255], (byte)1);
         }
      }

   }

   static void method3691(byte[] var0, byte[] var1, short[] var2, int var3, int var4) {
      int[] var5 = new int[anInt2546];
      int[] var6 = new int[anInt2546];
      int[] var7 = new int[anInt2546];
      int[] var8 = new int[anInt2546];
      int[] var9 = new int[anInt2546];

      for(int var10 = -5; var10 < anInt2526; ++var10) {
         int var11 = var10 + 5;
         int var12 = var10 - 5;

         int var13;
         int var14;
         for(var13 = 0; var13 < anInt2546; ++var13) {
            Class421 var15;
            if(var11 < anInt2526) {
               var14 = var0[var11 + var13 * anInt2526] & 255;
               if(var14 > 0) {
                  var15 = aClass464_2517.method7818(var14 - 1, -884521099);
                  var5[var13] += var15.anInt5339 * -1871292941;
                  var6[var13] += var15.anInt5335 * 86407589;
                  var7[var13] += var15.anInt5341 * 1141088269;
                  var8[var13] += var15.anInt5342 * -1501376575;
                  ++var9[var13];
               }
            }

            if(var12 >= 0) {
               var14 = var0[var12 + var13 * anInt2526] & 255;
               if(var14 > 0) {
                  var15 = aClass464_2517.method7818(var14 - 1, -2075061551);
                  var5[var13] -= var15.anInt5339 * -1871292941;
                  var6[var13] -= var15.anInt5335 * 86407589;
                  var7[var13] -= var15.anInt5341 * 1141088269;
                  var8[var13] -= var15.anInt5342 * -1501376575;
                  --var9[var13];
               }
            }
         }

         if(var10 >= 0) {
            var13 = 0;
            var14 = 0;
            int var26 = 0;
            int var16 = 0;
            int var17 = 0;

            for(int var18 = -5; var18 < anInt2546; ++var18) {
               int var19 = var18 + 5;
               if(var19 < anInt2546) {
                  var13 += var5[var19];
                  var14 += var6[var19];
                  var26 += var7[var19];
                  var16 += var8[var19];
                  var17 += var9[var19];
               }

               int var20 = var18 - 5;
               if(var20 >= 0) {
                  var13 -= var5[var20];
                  var14 -= var6[var20];
                  var26 -= var7[var20];
                  var16 -= var8[var20];
                  var17 -= var9[var20];
               }

               if(var18 >= 0 && var17 > 0) {
                  int var21;
                  if((var0[var10 + var18 * anInt2526] & 255) == 0) {
                     var21 = var10 + var18 * anInt2526;
                     var1[var21] = 0;
                     var2[var21] = 0;
                  } else {
                     var21 = var16 == 0?0:Class49.method1191(var13 * 256 / var16, var14 / var17, var26 / var17, -264668486);
                     int var22 = (var21 & 127) + var4;
                     if(var22 < 0) {
                        var22 = 0;
                     } else if(var22 > 127) {
                        var22 = 127;
                     }

                     int var23 = (var21 + var3 & '\ufc00') + (var21 & 896) + var22;
                     int var24 = var10 + var18 * anInt2526;
                     int var25 = Class516.anIntArray6082[Class166.method2855(IncommingOpcode.method5364(var23, 96, -849600343), -1918549245) & '\uffff'];
                     var1[var24] = (byte)(var25 >> 16 & 255);
                     var2[var24] = (short)(var25 & '\uffff');
                  }
               }
            }
         }
      }

   }

   public static Class225_Sub14_Sub11 method3692(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   public static Class225_Sub14_Sub11 method3693(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   static void method3694() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], 1128744254);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1446922622);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)64);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 886585715);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1661795990);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)88);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], -14302040);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 1460856185);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)85);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   public static Class225_Sub14_Sub11 method3695(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   public static Class455 method3696(int var0, int var1) {
      Class455 var2 = new Class455();

      for(Class225_Sub14_Sub11 var3 = (Class225_Sub14_Sub11)aClass423_2544.method7208(-405853513); var3 != null; var3 = (Class225_Sub14_Sub11)aClass423_2544.method7226(-565586140)) {
         if(var3.aBool10538 && var3.method16198(var0, var1, (byte)-111)) {
            var2.method7600(var3, 1660403584);
         }
      }

      return var2;
   }

   static void method3697(Interface24 var0, int var1, int var2) {
      for(int var3 = 0; var3 < aClass509_2551.anInt6029 * -1179283431; ++var3) {
         anIntArray2540[var3 + 1] = method3698(var0, var3, var1, var2);
      }

   }

   static int method3698(Interface24 var0, int var1, int var2, int var3) {
      Class504 var4 = aClass509_2551.method10797(var1, (byte)-114);
      if(var4 == null) {
         return 0;
      } else {
         int var5 = var4.anInt5963 * 354653271;
         if(var5 >= 0 && var0.method113(var5, -31102113).aBool1994) {
            var5 = -1;
         }

         int var6;
         int var7;
         int var8;
         int var9;
         if(var4.anInt5965 * 1623120203 >= 0) {
            var6 = var4.anInt5965 * 1623120203;
            var7 = (var6 & 127) + var3;
            if(var7 < 0) {
               var7 = 0;
            } else if(var7 > 127) {
               var7 = 127;
            }

            var8 = (var6 + var2 & '\ufc00') + (var6 & 896) + var7;
            var9 = -16777216 | Class516.anIntArray6082[Class166.method2855(Class182_Sub2.method14446(var8, 96, (short)14087), 841970352) & '\uffff'];
         } else if(var5 >= 0) {
            var9 = -16777216 | Class516.anIntArray6082[Class166.method2855(Class182_Sub2.method14446(var0.method113(var5, 1119454555).aShort1975, 96, (short)7877), -361310910) & '\uffff'];
         } else if(var4.anInt5962 * -887880807 == -1) {
            var9 = 0;
         } else {
            var6 = var4.anInt5962 * -887880807;
            var7 = (var6 & 127) + var3;
            if(var7 < 0) {
               var7 = 0;
            } else if(var7 > 127) {
               var7 = 127;
            }

            var8 = (var6 + var2 & '\ufc00') + (var6 & 896) + var7;
            var9 = -16777216 | Class516.anIntArray6082[Class166.method2855(Class182_Sub2.method14446(var8, 96, (short)9361), -289480686) & '\uffff'];
         }

         return var9;
      }
   }

   static void method3699(Class545 var0, int var1, int var2) {
      RS2Buffer var3 = new RS2Buffer(aClass253_2524.method4573(aClass225_Sub14_Sub11_2523.aString10528, "area", (byte)-117));
      int var4 = var3.readUnsignedByte(-700559597);
      int[] var5 = new int[var4];

      int var6;
      for(var6 = 0; var6 < var4; ++var6) {
         var5[var6] = var3.readUnsignedByte(-700559597);
      }

      var6 = var3.readUnsignedByte(-700559597);
      int[] var7 = new int[var6];

      int var8;
      for(var8 = 0; var8 < var6; ++var8) {
         var7[var8] = var3.readUnsignedByte(-700559597);
      }

      int var10;
      int var11;
      int var15;
      while(var3.position * -543666943 < var3.buffer.length) {
         int var9;
         int var12;
         int var13;
         if(var3.readUnsignedByte(-700559597) == 0) {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);

            for(var10 = 0; var10 < 64; ++var10) {
               for(var11 = 0; var11 < 64; ++var11) {
                  var12 = var8 * 64 + var10 - anInt2532;
                  var13 = var9 * 64 + var11 - anInt2548;
                  method3689(var0, var3, var8, var9, var12, var13, var5, var7);
               }
            }
         } else {
            var8 = var3.readUnsignedByte(-700559597);
            var9 = var3.readUnsignedByte(-700559597);
            var10 = var3.readUnsignedByte(-700559597);
            var11 = var3.readUnsignedByte(-700559597);

            for(var12 = 0; var12 < 8; ++var12) {
               for(var13 = 0; var13 < 8; ++var13) {
                  int var14 = var8 * 64 + var10 * 8 + var12 - anInt2532;
                  var15 = var9 * 64 + var11 * 8 + var13 - anInt2548;
                  method3689(var0, var3, var8, var9, var14, var15, var5, var7);
               }
            }
         }
      }

      var3 = null;
      aByteArray2542 = new byte[anInt2526 * anInt2546];
      aShortArray2543 = new short[anInt2526 * anInt2546];

      for(var8 = 0; var8 < 3; ++var8) {
         byte[] var16 = new byte[anInt2526 * anInt2546];

         Iterator var17;
         Class208 var19;
         ArrayList var18;
         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  for(var17 = var18.iterator(); var17.hasNext(); var16[var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526] = (byte)var19.anInt2459) {
                     var19 = (Class208)var17.next();
                  }
               }
            }
         }

         method3673(var16, aByteArray2542, aShortArray2543, var1, var2);

         for(var10 = 0; var10 < anArrayListArrayArrayArray2520[var8].length; ++var10) {
            for(var11 = 0; var11 < anArrayListArrayArrayArray2520[var8][0].length; ++var11) {
               var18 = anArrayListArrayArrayArray2520[var8][var10][var11];
               if(var18 != null) {
                  var17 = var18.iterator();

                  while(var17.hasNext()) {
                     var19 = (Class208)var17.next();
                     var15 = var10 * 64 + var19.aByte2457 + (var11 * 64 + var19.aByte2458) * anInt2526;
                     var19.anInt2459 = (aByteArray2542[var15] & 255) << 16 | aShortArray2543[var15] & '\uffff';
                     if(var19.anInt2459 != 0) {
                        var19.anInt2459 |= -16777216;
                     }
                  }
               }
            }
         }
      }

      method3673(aByteArray2538, aByteArray2542, aShortArray2543, var1, var2);
      aByteArray2538 = null;
      method3672();
   }

   public static Class225_Sub14_Sub11 method3700(int var0) {
      return (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   static void method3701(Class545 var0, RS2Buffer var1, int var2, int var3, int var4, int var5, int[] var6, int[] var7) {
      int var8 = var1.readUnsignedByte(-700559597);
      if((var8 & 1) == 0) {
         boolean var9 = (var8 & 2) == 0;
         int var10 = var8 >> 2 & 63;
         if(var10 == 62) {
            return;
         }

         if(var10 == 63) {
            var10 = var1.readUnsignedByte(-700559597);
         } else if(var9) {
            var10 = var6[var10];
         } else {
            var10 = var7[var10];
         }

         if(var9) {
            aByteArray2538[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2527[var4 + var5 * anInt2526] = 0;
         } else {
            aByteArray2527[var4 + var5 * anInt2526] = (byte)var10;
            aByteArray2545[var4 + var5 * anInt2526] = 0;
            aByteArray2538[var4 + var5 * anInt2526] = var1.readByte(1396050391);
         }
      } else {
         int var20 = (var8 >> 1 & 3) + 1;
         boolean var21 = (var8 & 8) != 0;
         boolean var11 = (var8 & 16) != 0;

         for(int var12 = 0; var12 < var20; ++var12) {
            int var13 = var1.readUnsignedByte(-700559597);
            int var14 = 0;
            int var15 = 0;
            if(var21) {
               var14 = var1.readUnsignedByte(-700559597);
               var15 = var1.readUnsignedByte(-700559597);
            }

            int var16 = 0;
            if(var11) {
               var16 = var1.readUnsignedByte(-700559597);
            }

            int[] var17;
            int var19;
            byte[] var18;
            if(var12 == 0) {
               aByteArray2538[var4 + var5 * anInt2526] = (byte)var13;
               aByteArray2527[var4 + var5 * anInt2526] = (byte)var14;
               aByteArray2545[var4 + var5 * anInt2526] = (byte)var15;
               if(var16 == 1) {
                  anObjectArray2555[var4 + var5 * anInt2526] = new Integer(var1.readLargeSmart(2036146655));
                  aByteArray2547[var4 + var5 * anInt2526] = var1.readByte(-139896977);
               } else if(var16 > 1) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(1609038152);
                     var18[var19] = var1.readByte(2028595375);
                  }

                  anObjectArray2555[var4 + var5 * anInt2526] = new Class225_Sub25(var17, var18);
               }
            } else {
               var17 = null;
               var18 = null;
               if(var16 > 0) {
                  var17 = new int[var16];
                  var18 = new byte[var16];

                  for(var19 = 0; var19 < var16; ++var19) {
                     var17[var19] = var1.readLargeSmart(2000368957);
                     var18[var19] = var1.readByte(-1145222251);
                  }
               }

               if(anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] == null) {
                  anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)] = new ArrayList();
               }

               Class208 var22 = new Class208(var4 & 63, var5 & 63, var13, var14, var15, var17, var18);
               anArrayListArrayArrayArray2520[var12 - 1][var2 - (anInt2532 >> 6)][var3 - (anInt2548 >> 6)].add(var22);
            }
         }
      }

   }

   public static Class225_Sub14_Sub11 method3702(int var0, int var1) {
      for(Class225_Sub14_Sub11 var2 = (Class225_Sub14_Sub11)aClass423_2544.method7208(-405853513); var2 != null; var2 = (Class225_Sub14_Sub11)aClass423_2544.method7226(907794611)) {
         if(var2.aBool10538 && var2.method16198(var0, var1, (byte)-101)) {
            return var2;
         }
      }

      return null;
   }

   static void method3703() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], 1759811035);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1862341447);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)67);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 1248008537);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1496911545);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)99);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], 345330381);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 1409394600);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)34);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   static void method3704(int var0) {
      aClass225_Sub14_Sub11_2523 = (Class225_Sub14_Sub11)aClass423_2544.method7211((long)var0);
   }

   static void method3705() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], 11392453);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1651526975);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)66);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 1379393525);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1664118353);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)93);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], 1328918499);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 1680574749);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)114);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   static void method3706() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], 1746728343);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1464064212);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)110);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 530336524);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1704207318);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)118);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], 1971209312);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 1408651784);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)114);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   static void method3707(Class545 var0) {
      int var1 = anInt2516 - anInt2549;
      int var2 = anInt2550 - anInt2556;
      int var3 = (anInt2552 - anInt2553 << 16) / var1;
      int var4 = (anInt2525 - anInt2554 << 16) / var2;
      method3677(var0, var3, var4, 0, 0);
   }

   static void method3708() {
      int var0;
      int var1;
      int var6;
      for(var0 = 0; var0 < anInt2526; ++var0) {
         for(var1 = 0; var1 < anInt2546; ++var1) {
            Object var2 = anObjectArray2555[var0 + var1 * anInt2526];
            if(var2 != null) {
               if(var2 instanceof Class225_Sub25) {
                  Class225_Sub25 var3 = (Class225_Sub25)var2;
                  if(var3 != null) {
                     for(int var4 = 0; var4 < var3.anIntArray8630.length; ++var4) {
                        Class445 var5 = aClass448_2518.method7506(var3.anIntArray8630[var4], -22890516);
                        var6 = var5.anInt5496 * 1632487223;
                        if(var5.anIntArray5546 != null) {
                           var5 = var5.method7440(anInterface13_2522, anInterface12_2521, 1939454056);
                           if(var5 != null) {
                              var6 = var5.anInt5496 * 1632487223;
                           }
                        }

                        if(var6 != -1) {
                           Class225_Sub11 var7 = new Class225_Sub11(var6);
                           var7.anInt8534 = var0 * 1540883595;
                           var7.anInt8531 = var1 * -1459805283;
                           aClass456_2535.method7712(var7, (byte)25);
                        }
                     }
                  }
               } else {
                  Integer var11 = (Integer)var2;
                  Class445 var13 = aClass448_2518.method7506(var11.intValue(), 1231144223);
                  int var15 = var13.anInt5496 * 1632487223;
                  if(var13.anIntArray5546 != null) {
                     var13 = var13.method7440(anInterface13_2522, anInterface12_2521, 1650282012);
                     if(var13 != null) {
                        var15 = var13.anInt5496 * 1632487223;
                     }
                  }

                  if(var15 != -1) {
                     Class225_Sub11 var18 = new Class225_Sub11(var15);
                     var18.anInt8534 = var0 * 1540883595;
                     var18.anInt8531 = var1 * -1459805283;
                     aClass456_2535.method7712(var18, (byte)30);
                  }
               }
            }
         }
      }

      for(var0 = 0; var0 < 3; ++var0) {
         for(var1 = 0; var1 < anArrayListArrayArrayArray2520[0].length; ++var1) {
            for(int var10 = 0; var10 < anArrayListArrayArrayArray2520[0][0].length; ++var10) {
               ArrayList var12 = anArrayListArrayArrayArray2520[var0][var1][var10];
               if(var12 != null) {
                  Iterator var14 = var12.iterator();

                  while(var14.hasNext()) {
                     Class208 var16 = (Class208)var14.next();
                     if(var16.anIntArray2462 != null) {
                        for(var6 = 0; var6 < var16.anIntArray2462.length; ++var6) {
                           Class445 var17 = aClass448_2518.method7506(var16.anIntArray2462[var6], 498699050);
                           int var8 = var17.anInt5496 * 1632487223;
                           if(var17.anIntArray5546 != null) {
                              var17 = var17.method7440(anInterface13_2522, anInterface12_2521, 1869665021);
                              if(var17 != null) {
                                 var8 = var17.anInt5496 * 1632487223;
                              }
                           }

                           if(var8 != -1) {
                              Class225_Sub11 var9 = new Class225_Sub11(var8);
                              var9.anInt8534 = ((var1 + (anInt2532 >> 6)) * 64 + var16.aByte2457 - anInt2532) * 1540883595;
                              var9.anInt8531 = ((var10 + (anInt2548 >> 6)) * 64 + var16.aByte2458 - anInt2548) * -1459805283;
                              aClass456_2535.method7712(var9, (byte)76);
                           }
                        }
                     }
                  }
               }
            }
         }
      }

   }

   static void method3709() {
      int[] var0 = new int[3];

      for(int var1 = 0; var1 < aClass219_2534.anInt2574 * -872595517; ++var1) {
         boolean var2 = aClass225_Sub14_Sub11_2523.method16193(aClass219_2534.anIntArray2575[var1] >> 28 & 3, aClass219_2534.anIntArray2575[var1] >> 14 & 16383, aClass219_2534.anIntArray2575[var1] & 16383, var0, (byte)122);
         if(var2) {
            Class225_Sub11 var3 = new Class225_Sub11(aClass219_2534.anIntArray2573[var1]);
            var3.anInt8534 = (var0[1] - anInt2532) * 1540883595;
            var3.anInt8531 = (var0[2] - anInt2548) * -1459805283;
            aClass456_2535.method7712(var3, (byte)22);
         }
      }

   }

   static void method3710(int var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
      anInt2549 = var0 - anInt2532;
      anInt2550 = var1 - anInt2548;
      anInt2516 = var2 - anInt2532;
      anInt2556 = var3 - anInt2548;
      anInt2553 = var4;
      anInt2554 = var5;
      anInt2552 = var6;
      anInt2525 = var7;
   }

   static void method3711(Class545 var0) {
      int var1 = anInt2516 - anInt2549;
      int var2 = anInt2550 - anInt2556;
      int var3 = (anInt2552 - anInt2553 << 16) / var1;
      int var4 = (anInt2525 - anInt2554 << 16) / var2;
      method3677(var0, var3, var4, 0, 0);
   }

   static Class456 method3712(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)41); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-1355548166)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static void method3713(Class545 var0, int var1, int var2, int var3, int var4) {
      int var5 = anInt2516 - anInt2549;
      int var6 = anInt2550 - anInt2556;
      if(anInt2516 < anInt2526) {
         ++var5;
      }

      if(anInt2550 < anInt2546) {
         ++var6;
      }

      int var7;
      int var8;
      int var9;
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      int var16;
      int var19;
      for(var7 = 0; var7 < var5; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = anInt2549 + var7;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     int var17 = var11 + var16 * anInt2526;
                     int var18 = 0;
                     var19 = 0;
                     Object var20 = null;
                     if(var16 >= 0 && var16 < anInt2546) {
                        var18 = (aByteArray2542[var17] & 255) << 16 | aShortArray2543[var17] & '\uffff';
                        if(var18 != 0) {
                           var18 |= -16777216;
                        }

                        var19 = aByteArray2527[var17] & 255;
                        var20 = anObjectArray2555[var17];
                     }

                     if(var18 == 0 && var19 == 0 && var20 == null) {
                        if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                           var18 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                        } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                           var18 = -11840664;
                        } else {
                           var18 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                        }

                        if(var18 == 0) {
                           var18 = -16777216;
                        }

                        var0.B(var8, var13, var10, var15, var18, 0);
                     } else if(var20 != null) {
                        if(var20 instanceof Class225_Sub25) {
                           Class225_Sub25 var21 = (Class225_Sub25)var20;
                           if(var21 != null) {
                              method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], var21.anIntArray8630, var21.aByteArray8629, true);
                           }
                        } else {
                           Integer var30 = (Integer)var20;
                           anIntArray2530[0] = var30.intValue();
                           aByteArray2531[0] = aByteArray2547[var17];
                           method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], anIntArray2530, aByteArray2531, true);
                        }
                     } else {
                        method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], (int[])null, (byte[])null, true);
                     }
                  }
               }
            } else {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                     var16 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                  } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                     var16 = -11840664;
                  } else {
                     var16 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                  }

                  if(var16 == 0) {
                     var16 = -16777216;
                  }

                  var0.B(var8, var13, var10, var15, var16, 0);
               }
            }
         }
      }

      for(var7 = -16; var7 < var5 + 16; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = var7 + anInt2549;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = -16; var12 < var6 + 16; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     if(var16 >= 0 && var16 < anInt2546) {
                        Object var27 = anObjectArray2555[var11 + var16 * anInt2526];
                        if(var27 != null) {
                           if(var27 instanceof Class225_Sub25) {
                              Class225_Sub25 var29 = (Class225_Sub25)var27;
                              if(var29 != null) {
                                 method3679(var0, var8, var13, var10, var15, var29.anIntArray8630, var29.aByteArray8629);
                              }
                           } else {
                              Integer var32 = (Integer)var27;
                              anIntArray2530[0] = var32.intValue();
                              aByteArray2531[0] = aByteArray2547[var11 + var16 * anInt2526];
                              method3679(var0, var8, var13, var10, var15, anIntArray2530, aByteArray2531);
                           }
                        } else {
                           method3679(var0, var8, var13, var10, var15, (int[])null, (byte[])null);
                        }
                     }
                  }
               }
            }
         }
      }

      var7 = anInt2549 >> 6;
      var8 = anInt2556 >> 6;
      if(var7 < 0) {
         var7 = 0;
      }

      if(var8 < 0) {
         var8 = 0;
      }

      var9 = anInt2516 >> 6;
      var10 = anInt2550 >> 6;
      if(var9 >= anArrayListArrayArrayArray2520[0].length) {
         var9 = anArrayListArrayArrayArray2520[0].length - 1;
      }

      if(var10 >= anArrayListArrayArrayArray2520[0][0].length) {
         var10 = anArrayListArrayArrayArray2520[0][0].length - 1;
      }

      for(var11 = 0; var11 < 3; ++var11) {
         int var23;
         int var22;
         ArrayList var25;
         int var24;
         Iterator var26;
         int var28;
         int var31;
         Class208 var33;
         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3661(var0, var31, var23, var22 - var31, var24 - var23, var33.anInt2459, var33.aByte2460 & 255, var33.aByte2461, var33.anIntArray2462, var33.aByteArray2463, false);
                  }
               }
            }
         }

         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3679(var0, var31, var23, var22 - var31, var24 - var23, var33.anIntArray2462, var33.aByteArray2463);
                  }
               }
            }
         }
      }

   }

   static void method3714(Class545 var0, int var1, int var2, int var3, int var4) {
      int var5 = anInt2516 - anInt2549;
      int var6 = anInt2550 - anInt2556;
      if(anInt2516 < anInt2526) {
         ++var5;
      }

      if(anInt2550 < anInt2546) {
         ++var6;
      }

      int var7;
      int var8;
      int var9;
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      int var16;
      int var19;
      for(var7 = 0; var7 < var5; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = anInt2549 + var7;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     int var17 = var11 + var16 * anInt2526;
                     int var18 = 0;
                     var19 = 0;
                     Object var20 = null;
                     if(var16 >= 0 && var16 < anInt2546) {
                        var18 = (aByteArray2542[var17] & 255) << 16 | aShortArray2543[var17] & '\uffff';
                        if(var18 != 0) {
                           var18 |= -16777216;
                        }

                        var19 = aByteArray2527[var17] & 255;
                        var20 = anObjectArray2555[var17];
                     }

                     if(var18 == 0 && var19 == 0 && var20 == null) {
                        if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                           var18 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                        } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                           var18 = -11840664;
                        } else {
                           var18 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                        }

                        if(var18 == 0) {
                           var18 = -16777216;
                        }

                        var0.B(var8, var13, var10, var15, var18, 0);
                     } else if(var20 != null) {
                        if(var20 instanceof Class225_Sub25) {
                           Class225_Sub25 var21 = (Class225_Sub25)var20;
                           if(var21 != null) {
                              method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], var21.anIntArray8630, var21.aByteArray8629, true);
                           }
                        } else {
                           Integer var30 = (Integer)var20;
                           anIntArray2530[0] = var30.intValue();
                           aByteArray2531[0] = aByteArray2547[var17];
                           method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], anIntArray2530, aByteArray2531, true);
                        }
                     } else {
                        method3661(var0, var8, var13, var10, var15, var18, var19, aByteArray2545[var17], (int[])null, (byte[])null, true);
                     }
                  }
               }
            } else {
               for(var12 = 0; var12 < var6; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(aClass225_Sub14_Sub11_2523.anInt10530 * 888271101 != -1) {
                     var16 = -16777216 | aClass225_Sub14_Sub11_2523.anInt10530 * 888271101;
                  } else if((var7 + anInt2549 & 4) != (var12 + anInt2550 & 4)) {
                     var16 = -11840664;
                  } else {
                     var16 = anIntArray2540[aClass509_2551.anInt6031 * 1217273031 + 1];
                  }

                  if(var16 == 0) {
                     var16 = -16777216;
                  }

                  var0.B(var8, var13, var10, var15, var16, 0);
               }
            }
         }
      }

      for(var7 = -16; var7 < var5 + 16; ++var7) {
         var8 = (var3 + var1 * var7 >> 16) + anInt2553;
         var9 = (var3 + var1 * (var7 + 1) >> 16) + anInt2553;
         var10 = var9 - var8;
         if(var10 > 0) {
            var11 = var7 + anInt2549;
            if(var11 >= 0 && var11 < anInt2526) {
               for(var12 = -16; var12 < var6 + 16; ++var12) {
                  var13 = anInt2525 - (var4 + var2 * (var12 + 1) >> 16);
                  var14 = anInt2525 - (var4 + var2 * var12 >> 16);
                  var15 = var14 - var13;
                  if(var15 > 0) {
                     var16 = var12 + anInt2556;
                     if(var16 >= 0 && var16 < anInt2546) {
                        Object var27 = anObjectArray2555[var11 + var16 * anInt2526];
                        if(var27 != null) {
                           if(var27 instanceof Class225_Sub25) {
                              Class225_Sub25 var29 = (Class225_Sub25)var27;
                              if(var29 != null) {
                                 method3679(var0, var8, var13, var10, var15, var29.anIntArray8630, var29.aByteArray8629);
                              }
                           } else {
                              Integer var32 = (Integer)var27;
                              anIntArray2530[0] = var32.intValue();
                              aByteArray2531[0] = aByteArray2547[var11 + var16 * anInt2526];
                              method3679(var0, var8, var13, var10, var15, anIntArray2530, aByteArray2531);
                           }
                        } else {
                           method3679(var0, var8, var13, var10, var15, (int[])null, (byte[])null);
                        }
                     }
                  }
               }
            }
         }
      }

      var7 = anInt2549 >> 6;
      var8 = anInt2556 >> 6;
      if(var7 < 0) {
         var7 = 0;
      }

      if(var8 < 0) {
         var8 = 0;
      }

      var9 = anInt2516 >> 6;
      var10 = anInt2550 >> 6;
      if(var9 >= anArrayListArrayArrayArray2520[0].length) {
         var9 = anArrayListArrayArrayArray2520[0].length - 1;
      }

      if(var10 >= anArrayListArrayArrayArray2520[0][0].length) {
         var10 = anArrayListArrayArrayArray2520[0][0].length - 1;
      }

      for(var11 = 0; var11 < 3; ++var11) {
         int var23;
         int var22;
         ArrayList var25;
         int var24;
         Iterator var26;
         int var28;
         int var31;
         Class208 var33;
         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3661(var0, var31, var23, var22 - var31, var24 - var23, var33.anInt2459, var33.aByte2460 & 255, var33.aByte2461, var33.anIntArray2462, var33.aByteArray2463, false);
                  }
               }
            }
         }

         for(var12 = var7; var12 <= var9; ++var12) {
            for(var13 = var8; var13 <= var10; ++var13) {
               var25 = anArrayListArrayArrayArray2520[var11][var12][var13];
               if(var25 != null) {
                  var15 = (var12 + (anInt2532 >> 6)) * 64;
                  var16 = (var13 + (anInt2548 >> 6)) * 64;
                  var26 = var25.iterator();

                  while(var26.hasNext()) {
                     var33 = (Class208)var26.next();
                     var19 = var15 + var33.aByte2457 - anInt2532 - anInt2549;
                     var28 = var16 + var33.aByte2458 - anInt2548 - anInt2556;
                     var31 = (var3 + var1 * var19 >> 16) + anInt2553;
                     var22 = (var3 + var1 * (var19 + 1) >> 16) + anInt2553;
                     var23 = anInt2525 - (var4 + var2 * (var28 + 1) >> 16);
                     var24 = anInt2525 - (var4 + var2 * var28 >> 16);
                     method3679(var0, var31, var23, var22 - var31, var24 - var23, var33.anIntArray2462, var33.aByteArray2463);
                  }
               }
            }
         }
      }

   }

   static void method3715() {
      aByteArray2538 = new byte[anInt2526 * anInt2546];
      aByteArray2527 = new byte[anInt2526 * anInt2546];
      aByteArray2545 = new byte[anInt2526 * anInt2546];
      anObjectArray2555 = new Object[anInt2526 * anInt2546];
      aByteArray2547 = new byte[anInt2526 * anInt2546];
      anArrayListArrayArrayArray2520 = new ArrayList[3][anInt2526 >> 6][anInt2546 >> 6];
      anIntArray2540 = new int[aClass509_2551.anInt6029 * -1179283431 + 1];
   }

   static void method3716(Class545 var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, int[] var8, byte[] var9, boolean var10) {
      int var11;
      int var12;
      if(var10 || var5 != 0 || var6 > 0) {
         if(var6 == 0) {
            var0.B(var1, var2, var3, var4, var5, 0);
         } else {
            var11 = var7 & 63;
            if(var11 != 0 && var3 > 1 && var4 > 1) {
               var12 = var10?0:1;
               Class225_Sub27.method13968(var0, aByteArrayArrayArray2528, anInt2529, var1, var2, var5, anIntArray2540[var6], var3, var4, var11, var7 >> 6 & 3, var12, (byte)-93);
            } else {
               var12 = anIntArray2540[var6];
               if(var10 || var12 != 0) {
                  var0.B(var1, var2, var3, var4, var12, 0);
               }
            }
         }
      }

      if(var8 != null) {
         if(var3 == 1) {
            var11 = var1;
         } else {
            var11 = var1 + var3 - 1;
         }

         if(var4 == 1) {
            var12 = var2;
         } else {
            var12 = var2 + var4 - 1;
         }

         for(int var13 = 0; var13 < var8.length; ++var13) {
            int var14 = var9[var13] & 63;
            if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303 || var14 == Class458.aClass458_5698.anInt5719 * -1372814303 || var14 == Class458.aClass458_5714.anInt5719 * -1372814303 || var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
               Class445 var15 = aClass448_2518.method7506(var8[var13], 922382076);
               if(var15.anInt5493 * -762216121 == -1) {
                  int var16 = -3355444;
                  if(var15.anInt5544 * -22824303 == 1) {
                     var16 = -3407872;
                  }

                  int var17 = var9[var13] >> 6 & 3;
                  if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, var16, 0);
                     } else {
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5698.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 1) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     } else {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5714.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.XA(var1, var2, 1, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var11, var2, 1, var16, 0);
                     } else if(var17 == 2) {
                        var0.XA(var11, var12, 1, var16, 0);
                     } else {
                        var0.XA(var1, var12, 1, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
                     int var18;
                     if(var17 != 0 && var17 != 2) {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var2 + var18, 1, var16, 0);
                        }
                     } else {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var12 - var18, 1, var16, 0);
                        }
                     }
                  }
               }
            }
         }

      }
   }

   static void method3717(Class545 var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, int[] var8, byte[] var9, boolean var10) {
      int var11;
      int var12;
      if(var10 || var5 != 0 || var6 > 0) {
         if(var6 == 0) {
            var0.B(var1, var2, var3, var4, var5, 0);
         } else {
            var11 = var7 & 63;
            if(var11 != 0 && var3 > 1 && var4 > 1) {
               var12 = var10?0:1;
               Class225_Sub27.method13968(var0, aByteArrayArrayArray2528, anInt2529, var1, var2, var5, anIntArray2540[var6], var3, var4, var11, var7 >> 6 & 3, var12, (byte)30);
            } else {
               var12 = anIntArray2540[var6];
               if(var10 || var12 != 0) {
                  var0.B(var1, var2, var3, var4, var12, 0);
               }
            }
         }
      }

      if(var8 != null) {
         if(var3 == 1) {
            var11 = var1;
         } else {
            var11 = var1 + var3 - 1;
         }

         if(var4 == 1) {
            var12 = var2;
         } else {
            var12 = var2 + var4 - 1;
         }

         for(int var13 = 0; var13 < var8.length; ++var13) {
            int var14 = var9[var13] & 63;
            if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303 || var14 == Class458.aClass458_5698.anInt5719 * -1372814303 || var14 == Class458.aClass458_5714.anInt5719 * -1372814303 || var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
               Class445 var15 = aClass448_2518.method7506(var8[var13], 1374404938);
               if(var15.anInt5493 * -762216121 == -1) {
                  int var16 = -3355444;
                  if(var15.anInt5544 * -22824303 == 1) {
                     var16 = -3407872;
                  }

                  int var17 = var9[var13] >> 6 & 3;
                  if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, var16, 0);
                     } else {
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5698.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 1) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     } else {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5714.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.XA(var1, var2, 1, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var11, var2, 1, var16, 0);
                     } else if(var17 == 2) {
                        var0.XA(var11, var12, 1, var16, 0);
                     } else {
                        var0.XA(var1, var12, 1, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
                     int var18;
                     if(var17 != 0 && var17 != 2) {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var2 + var18, 1, var16, 0);
                        }
                     } else {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var12 - var18, 1, var16, 0);
                        }
                     }
                  }
               }
            }
         }

      }
   }

   static void method3718(Class545 var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, int[] var8, byte[] var9, boolean var10) {
      int var11;
      int var12;
      if(var10 || var5 != 0 || var6 > 0) {
         if(var6 == 0) {
            var0.B(var1, var2, var3, var4, var5, 0);
         } else {
            var11 = var7 & 63;
            if(var11 != 0 && var3 > 1 && var4 > 1) {
               var12 = var10?0:1;
               Class225_Sub27.method13968(var0, aByteArrayArrayArray2528, anInt2529, var1, var2, var5, anIntArray2540[var6], var3, var4, var11, var7 >> 6 & 3, var12, (byte)69);
            } else {
               var12 = anIntArray2540[var6];
               if(var10 || var12 != 0) {
                  var0.B(var1, var2, var3, var4, var12, 0);
               }
            }
         }
      }

      if(var8 != null) {
         if(var3 == 1) {
            var11 = var1;
         } else {
            var11 = var1 + var3 - 1;
         }

         if(var4 == 1) {
            var12 = var2;
         } else {
            var12 = var2 + var4 - 1;
         }

         for(int var13 = 0; var13 < var8.length; ++var13) {
            int var14 = var9[var13] & 63;
            if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303 || var14 == Class458.aClass458_5698.anInt5719 * -1372814303 || var14 == Class458.aClass458_5714.anInt5719 * -1372814303 || var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
               Class445 var15 = aClass448_2518.method7506(var8[var13], 1653375743);
               if(var15.anInt5493 * -762216121 == -1) {
                  int var16 = -3355444;
                  if(var15.anInt5544 * -22824303 == 1) {
                     var16 = -3407872;
                  }

                  int var17 = var9[var13] >> 6 & 3;
                  if(var14 == Class458.aClass458_5706.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, var16, 0);
                     } else {
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5698.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 1) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var2, var3, var16, 0);
                     } else if(var17 == 2) {
                        var0.G(var11, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     } else {
                        var0.G(var1, var2, var4, -1, 0);
                        var0.XA(var1, var12, var3, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5714.anInt5719 * -1372814303) {
                     if(var17 == 0) {
                        var0.XA(var1, var2, 1, var16, 0);
                     } else if(var17 == 1) {
                        var0.XA(var11, var2, 1, var16, 0);
                     } else if(var17 == 2) {
                        var0.XA(var11, var12, 1, var16, 0);
                     } else {
                        var0.XA(var1, var12, 1, var16, 0);
                     }
                  } else if(var14 == Class458.aClass458_5717.anInt5719 * -1372814303) {
                     int var18;
                     if(var17 != 0 && var17 != 2) {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var2 + var18, 1, var16, 0);
                        }
                     } else {
                        for(var18 = 0; var18 < var4; ++var18) {
                           var0.XA(var1 + var18, var12 - var18, 1, var16, 0);
                        }
                     }
                  }
               }
            }
         }

      }
   }

   static void method3719(Class545 var0, int var1, int var2, int var3, int var4, int[] var5, byte[] var6) {
      if(var5 != null) {
         for(int var7 = 0; var7 < var5.length; ++var7) {
            Class445 var8 = aClass448_2518.method7506(var5[var7], 693423751);
            int var9 = var8.anInt5493 * -762216121;
            if(var9 != -1) {
               Class426 var10 = aClass424_2537.method7233(var9, -873553042);
               Class171 var11 = var10.method7262(var0, var8.aBool5524?var6[var7] >> 6 & 3:0, var8.aBool5530?var8.aBool5506:false, (byte)38);
               if(var11 != null) {
                  int var12 = var3 * var11.method94() >> 2;
                  int var13 = var4 * var11.method2969() >> 2;
                  if(var10.aBool5370) {
                     int var14 = var8.anInt5526 * -935727759;
                     int var15 = var8.anInt5509 * 514121989;
                     if((var6[var7] >> 6 & 1) == 1) {
                        int var16 = var14;
                        var14 = var15;
                        var15 = var16;
                     }

                     var12 = var14 * var3;
                     var13 = var15 * var4;
                  }

                  if(var12 != 0 && var13 != 0) {
                     if(var10.anInt5369 * 555128203 != 0) {
                        var11.method2930(var1, var2 - var13 + var4, var12, var13, 0, -16777216 | var10.anInt5369 * 555128203, 1);
                     } else {
                        var11.method2929(var1, var2 - var13 + var4, var12, var13);
                     }
                  }
               }
            }
         }

      }
   }

   public static void method3720(Class253 var0, Class509 var1, Class464 var2, Class448 var3, Class555 var4, Class424 var5, Interface13 var6, Interface12 var7) {
      aClass253_2524 = var0;
      aClass509_2551 = var1;
      aClass464_2517 = var2;
      aClass448_2518 = var3;
      aClass555_2519 = var4;
      aClass424_2537 = var5;
      anInterface13_2522 = var6;
      anInterface12_2521 = var7;
      aClass423_2544.method7212(1849141388);
      int var8 = aClass253_2524.method4557("details", (byte)-100);
      int[] var9 = aClass253_2524.method4513(var8, -1099285264);
      if(var9 != null) {
         for(int var10 = 0; var10 < var9.length; ++var10) {
            Class225_Sub14_Sub11 var11 = Class237.method4147(aClass253_2524, var8, var9[var10], 607215888);
            aClass423_2544.method7206(var11, (long)(var11.anInt10527 * -56063173));
         }
      }

      Class94.method1844(true, false, 385042120);
   }

   static Class456 method3721(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)101); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-374024782)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static Class456 method3722(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)93); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-1977854024)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static Class456 method3723(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)33); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-1015376292)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static Class456 method3724(Class545 var0, int var1, int var2, int var3, int var4) {
      for(Class225_Sub11 var5 = (Class225_Sub11)aClass456_2535.method7682((byte)97); var5 != null; var5 = (Class225_Sub11)aClass456_2535.method7666(-715637850)) {
         method3682(var0, var5, var1, var2, var3, var4);
      }

      return aClass456_2535;
   }

   static void method3725(Class545 var0, Class225_Sub11 var1, int var2, int var3, int var4, int var5) {
      var1.anInt8532 = (anInt2553 + (var4 + var2 * (var1.anInt8534 * 1454719779 - anInt2549) >> 16)) * -384781917;
      var1.anInt8533 = (anInt2525 - (var5 + var3 * (var1.anInt8531 * 87128757 - anInt2556) >> 16)) * -951118213;
   }

   static void method3726(Class545 var0, Class225_Sub11 var1, int var2, int var3, int var4, int var5) {
      var1.anInt8532 = (anInt2553 + (var4 + var2 * (var1.anInt8534 * 1454719779 - anInt2549) >> 16)) * -384781917;
      var1.anInt8533 = (anInt2525 - (var5 + var3 * (var1.anInt8531 * 87128757 - anInt2556) >> 16)) * -951118213;
   }

   static void method3727(Class545 var0, Class225_Sub11 var1, int var2, int var3, int var4, int var5) {
      var1.anInt8532 = (anInt2553 + (var4 + var2 * (var1.anInt8534 * 1454719779 - anInt2549) >> 16)) * -384781917;
      var1.anInt8533 = (anInt2525 - (var5 + var3 * (var1.anInt8531 * 87128757 - anInt2556) >> 16)) * -951118213;
   }

   static void method3728(Class545 var0, Class225_Sub11 var1, Class567 var2) {
      if(var2.anIntArray7523 != null) {
         int[] var3 = new int[var2.anIntArray7523.length];

         int var4;
         int var5;
         int var6;
         for(var4 = 0; var4 < var3.length / 2; ++var4) {
            var5 = var2.anIntArray7523[var4 * 2] + var1.anInt8534 * 1454719779;
            var6 = var2.anIntArray7523[var4 * 2 + 1] + var1.anInt8531 * 87128757;
            var3[var4 * 2] = anInt2553 + (anInt2552 - anInt2553) * (var5 - anInt2549) / (anInt2516 - anInt2549);
            var3[var4 * 2 + 1] = anInt2525 - (anInt2525 - anInt2554) * (var6 - anInt2556) / (anInt2550 - anInt2556);
         }

         Class93.method1838(var0, var3, var2.anInt7543 * 1875147967);
         if(var2.anInt7544 * 1848859429 > 0) {
            int var7;
            int var8;
            int var9;
            for(var4 = 0; var4 < var3.length / 2 - 1; ++var4) {
               var5 = var3[var4 * 2];
               var6 = var3[var4 * 2 + 1];
               var7 = var3[(var4 + 1) * 2];
               var8 = var3[(var4 + 1) * 2 + 1];
               if(var7 < var5) {
                  var9 = var5;
                  int var10 = var6;
                  var5 = var7;
                  var6 = var8;
                  var7 = var9;
                  var8 = var10;
               } else if(var7 == var5 && var8 < var6) {
                  var9 = var6;
                  var6 = var8;
                  var8 = var9;
               }

               var0.method11474(var5, var6, var7, var8, var2.anIntArray7528[var2.aByteArray7539[var4] & 255], 1, var2.anInt7544 * 1848859429, var2.anInt7545 * -2127412269, var2.anInt7549 * -1423965349);
            }

            var4 = var3[var3.length - 2];
            var5 = var3[var3.length - 1];
            var6 = var3[0];
            var7 = var3[1];
            if(var6 < var4) {
               var8 = var4;
               var9 = var5;
               var4 = var6;
               var5 = var7;
               var6 = var8;
               var7 = var9;
            } else if(var6 == var4 && var7 < var5) {
               var8 = var5;
               var5 = var7;
               var7 = var8;
            }

            var0.method11474(var4, var5, var6, var7, var2.anIntArray7528[var2.aByteArray7539[var2.aByteArray7539.length - 1] & 255], 1, var2.anInt7544 * 1848859429, var2.anInt7545 * -2127412269, var2.anInt7549 * -1423965349);
         } else {
            for(var4 = 0; var4 < var3.length / 2 - 1; ++var4) {
               var0.method11446(var3[var4 * 2], var3[var4 * 2 + 1], var3[(var4 + 1) * 2], var3[(var4 + 1) * 2 + 1], var2.anIntArray7528[var2.aByteArray7539[var4] & 255], (byte)1);
            }

            var0.method11446(var3[var3.length - 2], var3[var3.length - 1], var3[0], var3[1], var2.anIntArray7528[var2.aByteArray7539[var2.aByteArray7539.length - 1] & 255], (byte)1);
         }
      }

   }
}
