import java.nio.ByteBuffer;
import sun.misc.Unsafe;

public class Class568_Sub3 extends Class568 {

   short aShort9474;
   static final int anInt9475 = 7;
   short[] aShortArray9476;
   int anInt9477;
   int anInt9478;
   short aShort9479;
   boolean aBool9480;
   Class61[] aClass61Array9481;
   int anInt9482;
   int[] anIntArray9483;
   int[] anIntArray9484;
   short[] aShortArray9485;
   int[][] anIntArrayArray9486;
   Class545_Sub2 aClass545_Sub2_9487;
   int anInt9488;
   short[] aShortArray9489;
   int[] anIntArray9490;
   short[] aShortArray9491;
   short[] aShortArray9492;
   boolean aBool9493;
   byte[] aByteArray9494;
   float[] aFloatArray9495;
   float[] aFloatArray9496;
   Class370 aClass370_9497;
   int anInt9498;
   int anInt9499;
   Class166[] aClass166Array9500;
   byte[] aByteArray9501;
   short[] aShortArray9502;
   int anInt9503;
   short[] aShortArray9504;
   short[] aShortArray9505;
   int[][] anIntArrayArray9506;
   short[] aShortArray9507;
   Class350 aClass350_9508;
   boolean aBool9509;
   Class359 aClass359_9510;
   Class359 aClass359_9511;
   int[] anIntArray9512;
   Class359 aClass359_9513;
   static Class342 aClass342_9514;
   boolean aBool9515;
   boolean aBool9516;
   int anInt9517;
   int anInt9518;
   int anInt9519;
   int anInt9520;
   int anInt9521;
   int anInt9522;
   short[] aShortArray9523;
   int anInt9524;
   int anInt9525;
   int[] anIntArray9526;
   long[] aLongArray9527;
   int[] anIntArray9528;
   int[] anIntArray9529;
   short[] aShortArray9530;
   Class80[] aClass80Array9531;
   static final int anInt9532 = 4;
   int anInt9533;
   short[] aShortArray9534;
   Class360[] aClass360Array9535;
   int[][] anIntArrayArray9536;
   int anInt9537;
   float[] aFloatArray9538;
   int[] anIntArray9539;
   int[] anIntArray9540;
   int[] anIntArray9541;
   int[] anIntArray9542;
   int[] anIntArray9543;
   Class359 aClass359_9544;
   int anInt9545;
   int anInt9546;
   boolean aBool9547;
   short[] aShortArray9548;


   void method14871() {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.aBool4490 = false;
      }

   }

   Class568_Sub3(Class545_Sub2 var1, Class96 var2, int var3, int var4, int var5, int var6) {
      this(var1, var3, var6, true, false);
      Interface24 var7 = var1.anInterface24_7370;
      int[] var8 = new int[var2.anInt952];
      this.anIntArray9529 = new int[var2.anInt946 + 1];

      for(int var9 = 0; var9 < var2.anInt952; ++var9) {
         if(var2.aByteArray956 == null || var2.aByteArray956[var9] != 2) {
            if(var2.aShortArray961 != null && var2.aShortArray961[var9] != -1) {
               Class161 var10 = var7.method113(var2.aShortArray961[var9] & '\uffff', 1254296556);
               if(((this.anInt9478 & 64) == 0 || !var10.aBool1994) && var10.aBool1988) {
                  continue;
               }
            }

            var8[this.anInt9498++] = var9;
            ++this.anIntArray9529[var2.aShortArray955[var9]];
            ++this.anIntArray9529[var2.aShortArray954[var9]];
            ++this.anIntArray9529[var2.aShortArray945[var9]];
         }
      }

      this.anInt9499 = this.anInt9498;
      long[] var67 = new long[this.anInt9498];
      boolean var68 = (this.anInt9477 & 256) != 0;

      int var12;
      int var14;
      int var19;
      Class161 var22;
      int var71;
      short var78;
      for(int var11 = 0; var11 < this.anInt9498; ++var11) {
         var12 = var8[var11];
         Class161 var13 = null;
         var14 = 0;
         byte var15 = 0;
         byte var16 = 0;
         byte var17 = 0;
         if(var2.aClass92Array980 != null) {
            boolean var18 = false;

            for(var19 = 0; var19 < var2.aClass92Array980.length; ++var19) {
               Class92 var20 = var2.aClass92Array980[var19];
               if(var12 == var20.anInt910 * -1848462151) {
                  Class363 var21 = Class365.method6498(var20.anInt907 * -1088039237, (byte)-12);
                  if(var21.aBool4518) {
                     var18 = true;
                  }

                  if(var21.anInt4512 * 1783365595 != -1) {
                     var22 = var7.method113(var21.anInt4512 * 1783365595, 1833943621);
                     if(var22.aClass565_1987 == Class565.aClass565_7503) {
                        this.aBool9515 = true;
                     }
                  }
               }
            }

            if(var18) {
               var67[var11] = Long.MAX_VALUE;
               --this.anInt9499;
               continue;
            }
         }

         var78 = -1;
         if(var2.aShortArray961 != null) {
            var78 = var2.aShortArray961[var12];
            if(var78 != -1) {
               var13 = var7.method113(var78 & '\uffff', 1511843363);
               if((this.anInt9478 & 64) != 0 && var13.aBool1994) {
                  var78 = -1;
                  var13 = null;
               } else {
                  var16 = var13.aByte1986;
                  var17 = var13.aByte1999;
               }
            }
         }

         boolean var84 = var2.aByteArray958 != null && var2.aByteArray958[var12] != 0 || var13 != null && var13.aClass565_1987 != Class565.aClass565_7502;
         if((var68 || var84) && var2.aByteArray978 != null) {
            var14 += var2.aByteArray978[var12] << 17;
         }

         if(var84) {
            var14 += 65536;
         }

         var14 += (var16 & 255) << 8;
         var14 += var17 & 255;
         var71 = var15 + ((var78 & '\uffff') << 16);
         var71 += var11 & '\uffff';
         var67[var11] = ((long)var14 << 32) + (long)var71;
         this.aBool9515 |= var84;
         this.aBool9516 |= var13 != null && (var13.aByte1972 != 0 || var13.aByte1993 != 0);
      }

      Class304.method5433(var67, var8, 1500343042);
      this.anInt9503 = var2.anInt962;
      this.anInt9537 = var2.anInt946;
      this.anIntArray9483 = var2.anIntArray970;
      this.anIntArray9484 = var2.anIntArray948;
      this.anIntArray9512 = var2.anIntArray968;
      this.aShortArray9485 = var2.aShortArray953;
      Class366[] var69 = new Class366[this.anInt9537];
      this.aClass80Array9531 = var2.aClass80Array971;
      this.aClass166Array9500 = var2.aClass166Array979;
      int var77;
      if(var2.aClass92Array980 != null) {
         this.anInt9533 = var2.aClass92Array980.length;
         this.aClass61Array9481 = new Class61[this.anInt9533];
         this.aClass360Array9535 = new Class360[this.anInt9533];

         for(var12 = 0; var12 < this.anInt9533; ++var12) {
            Class92 var72 = var2.aClass92Array980[var12];
            Class363 var73 = Class365.method6498(var72.anInt907 * -1088039237, (byte)-36);
            var71 = -1;

            for(var77 = 0; var77 < this.anInt9498; ++var77) {
               if(var8[var77] == var72.anInt910 * -1848462151) {
                  var71 = var77;
                  break;
               }
            }

            if(var71 == -1) {
               throw new RuntimeException();
            }

            var77 = Exception_Sub5.anIntArray10376[var2.aShortArray960[var72.anInt910 * -1848462151] & '\uffff'] & 16777215;
            var77 |= 255 - (var2.aByteArray958 != null?var2.aByteArray958[var72.anInt910 * -1848462151]:0) << 24;
            this.aClass61Array9481[var12] = new Class61(var71, var2.aShortArray955[var72.anInt910 * -1848462151], var2.aShortArray954[var72.anInt910 * -1848462151], var2.aShortArray945[var72.anInt910 * -1848462151], var73.anInt4517 * -1285243639, var73.anInt4514 * 329927051, var73.anInt4512 * 1783365595, var73.anInt4516 * 1064097259, var73.anInt4515 * -2026459051, var73.aBool4518, var73.aBool4513, var72.anInt908 * 1260888395);
            this.aClass360Array9535[var12] = new Class360(var77);
         }
      }

      var12 = this.anInt9498 * 3;
      this.aShortArray9489 = new short[var12];
      this.aShortArray9523 = new short[var12];
      this.aShortArray9491 = new short[var12];
      this.aShortArray9492 = new short[var12];
      this.aShortArray9504 = new short[var12];
      this.aByteArray9494 = new byte[var12];
      this.aFloatArray9495 = new float[var12];
      this.aFloatArray9496 = new float[var12];
      this.aShortArray9476 = new short[this.anInt9498];
      this.aByteArray9501 = new byte[this.anInt9498];
      this.aShortArray9502 = new short[this.anInt9498];
      this.aShortArray9534 = new short[this.anInt9498];
      this.aShortArray9548 = new short[this.anInt9498];
      this.aShortArray9505 = new short[this.anInt9498];
      if(var2.aShortArray964 != null) {
         this.aShortArray9507 = new short[this.anInt9498];
      }

      this.aShort9479 = (short)var4;
      this.aShort9474 = (short)var5;
      this.aShortArray9530 = new short[var12];
      this.aLongArray9527 = new long[var12];
      int var70 = 0;

      for(var14 = 0; var14 < var2.anInt946; ++var14) {
         var71 = this.anIntArray9529[var14];
         this.anIntArray9529[var14] = var70;
         var70 += var71;
         var69[var14] = new Class366();
      }

      this.anIntArray9529[var2.anInt946] = var70;
      Class77 var76 = this.method12058(var2, var8, this.anInt9498);
      Class361[] var75 = new Class361[var2.anInt952];

      short var74;
      int var80;
      short var83;
      for(var77 = 0; var77 < var2.anInt952; ++var77) {
         var74 = var2.aShortArray955[var77];
         var78 = var2.aShortArray954[var77];
         var83 = var2.aShortArray945[var77];
         var80 = this.anIntArray9483[var78] - this.anIntArray9483[var74];
         int var88 = this.anIntArray9484[var78] - this.anIntArray9484[var74];
         int var85 = this.anIntArray9512[var78] - this.anIntArray9512[var74];
         int var23 = this.anIntArray9483[var83] - this.anIntArray9483[var74];
         int var24 = this.anIntArray9484[var83] - this.anIntArray9484[var74];
         int var25 = this.anIntArray9512[var83] - this.anIntArray9512[var74];
         int var26 = var88 * var25 - var24 * var85;
         int var27 = var85 * var23 - var25 * var80;

         int var28;
         for(var28 = var80 * var24 - var23 * var88; var26 > 8192 || var27 > 8192 || var28 > 8192 || var26 < -8192 || var27 < -8192 || var28 < -8192; var28 >>= 1) {
            var26 >>= 1;
            var27 >>= 1;
         }

         int var29 = (int)Math.sqrt((double)(var26 * var26 + var27 * var27 + var28 * var28));
         if(var29 <= 0) {
            var29 = 1;
         }

         var26 = var26 * 256 / var29;
         var27 = var27 * 256 / var29;
         var28 = var28 * 256 / var29;
         byte var30 = var2.aByteArray956 == null?0:var2.aByteArray956[var77];
         if(var30 == 0) {
            Class366 var31 = var69[var74];
            var31.anInt4605 += var26;
            var31.anInt4606 += var27;
            var31.anInt4607 += var28;
            ++var31.anInt4608;
            var31 = var69[var78];
            var31.anInt4605 += var26;
            var31.anInt4606 += var27;
            var31.anInt4607 += var28;
            ++var31.anInt4608;
            var31 = var69[var83];
            var31.anInt4605 += var26;
            var31.anInt4606 += var27;
            var31.anInt4607 += var28;
            ++var31.anInt4608;
         } else if(var30 == 1) {
            Class361 var100 = var75[var77] = new Class361();
            var100.anInt4500 = var26;
            var100.anInt4499 = var27;
            var100.anInt4501 = var28;
         }
      }

      int var81;
      short var89;
      for(var77 = 0; var77 < this.anInt9498; ++var77) {
         int var79 = var8[var77];
         var81 = var2.aShortArray960[var79] & '\uffff';
         if(var2.aByteArray951 == null) {
            var19 = -1;
         } else {
            var19 = var2.aByteArray951[var79];
         }

         if(var2.aByteArray958 == null) {
            var80 = 0;
         } else {
            var80 = var2.aByteArray958[var79] & 255;
         }

         var89 = var2.aShortArray961 == null?-1:var2.aShortArray961[var79];
         if(var89 != -1 && (this.anInt9478 & 64) != 0) {
            var22 = var7.method113(var89 & '\uffff', 1349851459);
            if(var22.aBool1994) {
               var89 = -1;
            }
         }

         float var86 = 0.0F;
         float var87 = 0.0F;
         float var92 = 0.0F;
         float var90 = 0.0F;
         float var94 = 0.0F;
         float var93 = 0.0F;
         byte var96 = 0;
         byte var97 = 0;
         int var95 = 0;
         short var34;
         short var35;
         short var36;
         byte var98;
         if(var89 != -1) {
            if(var19 == -1) {
               var86 = 0.0F;
               var87 = 1.0F;
               var92 = 1.0F;
               var90 = 1.0F;
               var96 = 1;
               var94 = 0.0F;
               var93 = 0.0F;
               var97 = 2;
            } else {
               var19 &= 255;
               var98 = var2.aByteArray957[var19];
               short var32;
               short var33;
               float var42;
               float var40;
               float var41;
               float var55;
               float var54;
               float var53;
               float var52;
               float var57;
               float var56;
               if(var98 == 0) {
                  var32 = var2.aShortArray955[var79];
                  var33 = var2.aShortArray954[var79];
                  var34 = var2.aShortArray945[var79];
                  var35 = var2.aShortArray967[var19];
                  var36 = var2.aShortArray977[var19];
                  short var37 = var2.aShortArray969[var19];
                  float var38 = (float)var2.anIntArray970[var35];
                  float var39 = (float)var2.anIntArray948[var35];
                  var40 = (float)var2.anIntArray968[var35];
                  var41 = (float)var2.anIntArray970[var36] - var38;
                  var42 = (float)var2.anIntArray948[var36] - var39;
                  float var43 = (float)var2.anIntArray968[var36] - var40;
                  float var44 = (float)var2.anIntArray970[var37] - var38;
                  float var45 = (float)var2.anIntArray948[var37] - var39;
                  float var46 = (float)var2.anIntArray968[var37] - var40;
                  float var47 = (float)var2.anIntArray970[var32] - var38;
                  float var48 = (float)var2.anIntArray948[var32] - var39;
                  float var49 = (float)var2.anIntArray968[var32] - var40;
                  float var50 = (float)var2.anIntArray970[var33] - var38;
                  float var51 = (float)var2.anIntArray948[var33] - var39;
                  var52 = (float)var2.anIntArray968[var33] - var40;
                  var53 = (float)var2.anIntArray970[var34] - var38;
                  var54 = (float)var2.anIntArray948[var34] - var39;
                  var55 = (float)var2.anIntArray968[var34] - var40;
                  var56 = var42 * var46 - var43 * var45;
                  var57 = var43 * var44 - var41 * var46;
                  float var58 = var41 * var45 - var42 * var44;
                  float var59 = var45 * var58 - var46 * var57;
                  float var60 = var46 * var56 - var44 * var58;
                  float var61 = var44 * var57 - var45 * var56;
                  float var62 = 1.0F / (var59 * var41 + var60 * var42 + var61 * var43);
                  var86 = (var59 * var47 + var60 * var48 + var61 * var49) * var62;
                  var92 = (var59 * var50 + var60 * var51 + var61 * var52) * var62;
                  var94 = (var59 * var53 + var60 * var54 + var61 * var55) * var62;
                  var59 = var42 * var58 - var43 * var57;
                  var60 = var43 * var56 - var41 * var58;
                  var61 = var41 * var57 - var42 * var56;
                  var62 = 1.0F / (var59 * var44 + var60 * var45 + var61 * var46);
                  var87 = (var59 * var47 + var60 * var48 + var61 * var49) * var62;
                  var90 = (var59 * var50 + var60 * var51 + var61 * var52) * var62;
                  var93 = (var59 * var53 + var60 * var54 + var61 * var55) * var62;
               } else {
                  var32 = var2.aShortArray955[var79];
                  var33 = var2.aShortArray954[var79];
                  var34 = var2.aShortArray945[var79];
                  int var102 = var76.anIntArray714[var19];
                  int var101 = var76.anIntArray717[var19];
                  int var106 = var76.anIntArray716[var19];
                  float[] var104 = var76.aFloatArrayArray715[var19];
                  byte var103 = var2.aByteArray959[var19];
                  var40 = (float)var2.anIntArray973[var19] / 256.0F;
                  if(var98 == 1) {
                     var41 = (float)var2.anIntArray972[var19] / 1024.0F;
                     this.method12055(var2.anIntArray970[var32], var2.anIntArray948[var32], var2.anIntArray968[var32], var102, var101, var106, var104, var41, var103, var40, this.aFloatArray9538);
                     var86 = this.aFloatArray9538[0];
                     var87 = this.aFloatArray9538[1];
                     this.method12055(var2.anIntArray970[var33], var2.anIntArray948[var33], var2.anIntArray968[var33], var102, var101, var106, var104, var41, var103, var40, this.aFloatArray9538);
                     var92 = this.aFloatArray9538[0];
                     var90 = this.aFloatArray9538[1];
                     this.method12055(var2.anIntArray970[var34], var2.anIntArray948[var34], var2.anIntArray968[var34], var102, var101, var106, var104, var41, var103, var40, this.aFloatArray9538);
                     var94 = this.aFloatArray9538[0];
                     var93 = this.aFloatArray9538[1];
                     var42 = var41 / 2.0F;
                     if((var103 & 1) == 0) {
                        if(var92 - var86 > var42) {
                           var92 -= var41;
                           var96 = 1;
                        } else if(var86 - var92 > var42) {
                           var92 += var41;
                           var96 = 2;
                        }

                        if(var94 - var86 > var42) {
                           var94 -= var41;
                           var97 = 1;
                        } else if(var86 - var94 > var42) {
                           var94 += var41;
                           var97 = 2;
                        }
                     } else {
                        if(var90 - var87 > var42) {
                           var90 -= var41;
                           var96 = 1;
                        } else if(var87 - var90 > var42) {
                           var90 += var41;
                           var96 = 2;
                        }

                        if(var93 - var87 > var42) {
                           var93 -= var41;
                           var97 = 1;
                        } else if(var87 - var93 > var42) {
                           var93 += var41;
                           var97 = 2;
                        }
                     }
                  } else if(var98 == 2) {
                     var41 = (float)var2.anIntArray974[var19] / 256.0F;
                     var42 = (float)var2.anIntArray975[var19] / 256.0F;
                     int var110 = var2.anIntArray970[var33] - var2.anIntArray970[var32];
                     int var111 = var2.anIntArray948[var33] - var2.anIntArray948[var32];
                     int var107 = var2.anIntArray968[var33] - var2.anIntArray968[var32];
                     int var108 = var2.anIntArray970[var34] - var2.anIntArray970[var32];
                     int var109 = var2.anIntArray948[var34] - var2.anIntArray948[var32];
                     int var114 = var2.anIntArray968[var34] - var2.anIntArray968[var32];
                     int var115 = var111 * var114 - var109 * var107;
                     int var112 = var107 * var108 - var114 * var110;
                     int var113 = var110 * var109 - var108 * var111;
                     var52 = 64.0F / (float)var2.anIntArray966[var19];
                     var53 = 64.0F / (float)var2.anIntArray949[var19];
                     var54 = 64.0F / (float)var2.anIntArray972[var19];
                     var55 = ((float)var115 * var104[0] + (float)var112 * var104[1] + (float)var113 * var104[2]) / var52;
                     var56 = ((float)var115 * var104[3] + (float)var112 * var104[4] + (float)var113 * var104[5]) / var53;
                     var57 = ((float)var115 * var104[6] + (float)var112 * var104[7] + (float)var113 * var104[8]) / var54;
                     var95 = this.method12056(var55, var56, var57);
                     this.method12057(var2.anIntArray970[var32], var2.anIntArray948[var32], var2.anIntArray968[var32], var102, var101, var106, var95, var104, var103, var40, var41, var42, this.aFloatArray9538);
                     var86 = this.aFloatArray9538[0];
                     var87 = this.aFloatArray9538[1];
                     this.method12057(var2.anIntArray970[var33], var2.anIntArray948[var33], var2.anIntArray968[var33], var102, var101, var106, var95, var104, var103, var40, var41, var42, this.aFloatArray9538);
                     var92 = this.aFloatArray9538[0];
                     var90 = this.aFloatArray9538[1];
                     this.method12057(var2.anIntArray970[var34], var2.anIntArray948[var34], var2.anIntArray968[var34], var102, var101, var106, var95, var104, var103, var40, var41, var42, this.aFloatArray9538);
                     var94 = this.aFloatArray9538[0];
                     var93 = this.aFloatArray9538[1];
                  } else if(var98 == 3) {
                     this.method12067(var2.anIntArray970[var32], var2.anIntArray948[var32], var2.anIntArray968[var32], var102, var101, var106, var104, var103, var40, this.aFloatArray9538);
                     var86 = this.aFloatArray9538[0];
                     var87 = this.aFloatArray9538[1];
                     this.method12067(var2.anIntArray970[var33], var2.anIntArray948[var33], var2.anIntArray968[var33], var102, var101, var106, var104, var103, var40, this.aFloatArray9538);
                     var92 = this.aFloatArray9538[0];
                     var90 = this.aFloatArray9538[1];
                     this.method12067(var2.anIntArray970[var34], var2.anIntArray948[var34], var2.anIntArray968[var34], var102, var101, var106, var104, var103, var40, this.aFloatArray9538);
                     var94 = this.aFloatArray9538[0];
                     var93 = this.aFloatArray9538[1];
                     if((var103 & 1) == 0) {
                        if(var92 - var86 > 0.5F) {
                           --var92;
                           var96 = 1;
                        } else if(var86 - var92 > 0.5F) {
                           ++var92;
                           var96 = 2;
                        }

                        if(var94 - var86 > 0.5F) {
                           --var94;
                           var97 = 1;
                        } else if(var86 - var94 > 0.5F) {
                           ++var94;
                           var97 = 2;
                        }
                     } else {
                        if(var90 - var87 > 0.5F) {
                           --var90;
                           var96 = 1;
                        } else if(var87 - var90 > 0.5F) {
                           ++var90;
                           var96 = 2;
                        }

                        if(var93 - var87 > 0.5F) {
                           --var93;
                           var97 = 1;
                        } else if(var87 - var93 > 0.5F) {
                           ++var93;
                           var97 = 2;
                        }
                     }
                  }
               }
            }
         }

         if(var2.aByteArray956 == null) {
            var98 = 0;
         } else {
            var98 = var2.aByteArray956[var79];
         }

         if(var98 == 0) {
            long var63 = (long)(var19 << 2) + ((long)(var95 << 24) + (long)(var81 << 8) + (long)var80 << 32);
            var34 = var2.aShortArray955[var79];
            var35 = var2.aShortArray954[var79];
            var36 = var2.aShortArray945[var79];
            Class366 var105 = var69[var34];
            this.aShortArray9502[var77] = this.method14893(var2, var34, var77, var63, var105.anInt4605, var105.anInt4606, var105.anInt4607, var105.anInt4608, var86, var87);
            var105 = var69[var35];
            this.aShortArray9534[var77] = this.method14893(var2, var35, var77, var63 + (long)var96, var105.anInt4605, var105.anInt4606, var105.anInt4607, var105.anInt4608, var92, var90);
            var105 = var69[var36];
            this.aShortArray9548[var77] = this.method14893(var2, var36, var77, var63 + (long)var97, var105.anInt4605, var105.anInt4606, var105.anInt4607, var105.anInt4608, var94, var93);
         } else if(var98 == 1) {
            Class361 var99 = var75[var79];
            long var65 = (long)((var19 << 2) + (var99.anInt4500 > 0?1024:2048) + (var99.anInt4499 + 256 << 12) + (var99.anInt4501 + 256 << 22)) + ((long)(var95 << 24) + (long)(var81 << 8) + (long)var80 << 32);
            this.aShortArray9502[var77] = this.method14893(var2, var2.aShortArray955[var79], var77, var65, var99.anInt4500, var99.anInt4499, var99.anInt4501, 0, var86, var87);
            this.aShortArray9534[var77] = this.method14893(var2, var2.aShortArray954[var79], var77, var65 + (long)var96, var99.anInt4500, var99.anInt4499, var99.anInt4501, 0, var92, var90);
            this.aShortArray9548[var77] = this.method14893(var2, var2.aShortArray945[var79], var77, var65 + (long)var97, var99.anInt4500, var99.anInt4499, var99.anInt4501, 0, var94, var93);
         }

         if(var2.aByteArray958 != null) {
            this.aByteArray9501[var77] = var2.aByteArray958[var79];
         }

         if(var2.aShortArray964 != null) {
            this.aShortArray9507[var77] = var2.aShortArray964[var79];
         }

         this.aShortArray9476[var77] = var2.aShortArray960[var79];
         this.aShortArray9505[var77] = var89;
      }

      if(this.anInt9499 > 0) {
         var77 = 1;
         var74 = this.aShortArray9505[0];

         for(var81 = 0; var81 < this.anInt9499; ++var81) {
            var83 = this.aShortArray9505[var81];
            if(var83 != var74) {
               ++var77;
               var74 = var83;
            }
         }

         this.anIntArray9490 = new int[var77];
         this.anIntArray9528 = new int[var77];
         this.anIntArray9526 = new int[var77 + 1];
         this.anIntArray9526[0] = 0;
         var81 = this.anInt9488;
         var83 = 0;
         var77 = 0;
         var74 = this.aShortArray9505[0];

         for(var80 = 0; var80 < this.anInt9499; ++var80) {
            var89 = this.aShortArray9505[var80];
            if(var89 != var74) {
               this.anIntArray9490[var77] = var81;
               this.anIntArray9528[var77] = var83 - var81 + 1;
               ++var77;
               this.anIntArray9526[var77] = var80;
               var81 = this.anInt9488;
               var83 = 0;
               var74 = var89;
            }

            short var91 = this.aShortArray9502[var80];
            if(var91 < var81) {
               var81 = var91;
            }

            if(var91 > var83) {
               var83 = var91;
            }

            var91 = this.aShortArray9534[var80];
            if(var91 < var81) {
               var81 = var91;
            }

            if(var91 > var83) {
               var83 = var91;
            }

            var91 = this.aShortArray9548[var80];
            if(var91 < var81) {
               var81 = var91;
            }

            if(var91 > var83) {
               var83 = var91;
            }
         }

         this.anIntArray9490[var77] = var81;
         this.anIntArray9528[var77] = var83 - var81 + 1;
         ++var77;
         this.anIntArray9526[var77] = this.anInt9499;
      }

      this.aLongArray9527 = null;
      this.aShortArray9489 = method14873(this.aShortArray9489, this.anInt9488);
      this.aShortArray9523 = method14873(this.aShortArray9523, this.anInt9488);
      this.aShortArray9491 = method14873(this.aShortArray9491, this.anInt9488);
      this.aShortArray9492 = method14873(this.aShortArray9492, this.anInt9488);
      this.aShortArray9504 = method14873(this.aShortArray9504, this.anInt9488);
      this.aByteArray9494 = method14872(this.aByteArray9494, this.anInt9488);
      this.aFloatArray9495 = method14881(this.aFloatArray9495, this.anInt9488);
      this.aFloatArray9496 = method14881(this.aFloatArray9496, this.anInt9488);
      if(var2.anIntArray950 != null && Class71.method1517(var3, this.anInt9478)) {
         this.anIntArrayArray9486 = var2.method1894(false);
      }

      if(var2.aClass92Array980 != null && Class71.method1518(var3, this.anInt9478)) {
         this.anIntArrayArray9536 = var2.method1859();
      }

      if(var2.anIntArray944 != null && Class71.method1575(var3, this.anInt9478)) {
         var77 = 0;
         int[] var82 = new int[256];

         for(var81 = 0; var81 < this.anInt9498; ++var81) {
            var19 = var2.anIntArray944[var8[var81]];
            if(var19 >= 0) {
               ++var82[var19];
               if(var19 > var77) {
                  var77 = var19;
               }
            }
         }

         this.anIntArrayArray9506 = new int[var77 + 1][];

         for(var81 = 0; var81 <= var77; ++var81) {
            this.anIntArrayArray9506[var81] = new int[var82[var81]];
            var82[var81] = 0;
         }

         for(var81 = 0; var81 < this.anInt9498; ++var81) {
            var19 = var2.anIntArray944[var8[var81]];
            if(var19 >= 0) {
               this.anIntArrayArray9506[var19][var82[var19]++] = var81;
            }
         }
      }

   }

   public boolean di() {
      return this.aBool9515;
   }

   static byte[] method14872(byte[] var0, int var1) {
      byte[] var2 = new byte[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   static short[] method14873(short[] var0, int var1) {
      short[] var2 = new short[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public void S(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      int var4;
      int var5;
      for(var4 = 0; var4 < this.anInt9537; ++var4) {
         var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9488; ++var4) {
         var5 = this.aShortArray9504[var4] * var2 + this.aShortArray9491[var4] * var3 >> 14;
         this.aShortArray9504[var4] = (short)(this.aShortArray9504[var4] * var3 - this.aShortArray9491[var4] * var2 >> 14);
         this.aShortArray9491[var4] = (short)var5;
      }

      this.method14871();
      this.method14877();
      this.aBool9493 = false;
   }

   public int m() {
      return this.anInt9477;
   }

   public void KA(int var1) {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.aBool4489 = Class71.method1584(var1, this.anInt9478);
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.aBool4489 = Class71.method1507(var1, this.anInt9478);
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4489 = Class71.method1506(var1, this.anInt9478);
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.aBool4489 = Class71.method1498(var1, this.anInt9478);
      }

      this.anInt9477 = var1;
      if(this.aClass370_9497 != null && (this.anInt9477 & 65536) == 0) {
         this.aShortArray9491 = this.aClass370_9497.aShortArray4625;
         this.aShortArray9492 = this.aClass370_9497.aShortArray4626;
         this.aShortArray9504 = this.aClass370_9497.aShortArray4628;
         this.aByteArray9494 = this.aClass370_9497.aByteArray4627;
         this.aClass370_9497 = null;
      }

      this.aBool9509 = true;
      this.method14875();
   }

   public void pa(int var1, int var2, Class400 var3, Class400 var4, int var5, int var6, int var7) {
      if(!this.aBool9493) {
         this.method14876();
      }

      int var8 = var5 + this.anInt9522;
      int var9 = var5 + this.anInt9482;
      int var10 = var7 + this.anInt9519;
      int var11 = var7 + this.anInt9525;
      if(var1 != 1 && var1 != 2 && var1 != 3 && var1 != 5 || var8 >= 0 && var9 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4911 * 1724373523 && var10 >= 0 && var11 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4908 * 1696648095) {
         if(var1 != 4 && var1 != 5) {
            var8 >>= var3.anInt4909 * -1451148795;
            var9 = var9 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            var10 >>= var3.anInt4909 * -1451148795;
            var11 = var11 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            if(var3.method6789(var8, var10, (byte)3) == var6 && var3.method6789(var9, var10, (byte)3) == var6 && var3.method6789(var8, var11, (byte)3) == var6 && var3.method6789(var9, var11, (byte)3) == var6) {
               return;
            }
         } else {
            if(var4 == null) {
               return;
            }

            if(var8 < 0 || var9 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4911 * 1724373523 || var10 < 0 || var11 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4908 * 1696648095) {
               return;
            }
         }

         int var12;
         if(var1 == 1) {
            for(var12 = 0; var12 < this.anInt9537; ++var12) {
               this.anIntArray9484[var12] = this.anIntArray9484[var12] + var3.method6791(this.anIntArray9483[var12] + var5, this.anIntArray9512[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               var12 = this.anInt9520;
               if(var12 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9537; ++var13) {
                  var14 = (this.anIntArray9484[var13] << 16) / var12;
                  if(var14 < var2) {
                     this.anIntArray9484[var13] += (var3.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) * (var2 - var14) / var2;
                  }
               }
            } else {
               int var15;
               if(var1 == 3) {
                  var12 = (var2 & 255) * 4;
                  var13 = (var2 >> 8 & 255) * 4;
                  var14 = (var2 >> 16 & 255) << 6;
                  var15 = (var2 >> 24 & 255) << 6;
                  if(var5 - (var12 >> 1) < 0 || var5 + (var12 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4911 * 1724373523 << var3.anInt4909 * -1451148795 || var7 - (var13 >> 1) < 0 || var7 + (var13 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4908 * 1696648095 << var3.anInt4909 * -1451148795) {
                     return;
                  }

                  this.method12121(var3, var5, var6, var7, var12, var13, var14, var15);
               } else if(var1 == 4) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     this.anIntArray9484[var13] = this.anIntArray9484[var13] + (var4.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     var14 = this.anIntArray9483[var13] + var5;
                     var15 = this.anIntArray9512[var13] + var7;
                     int var16 = var3.method6791(var14, var15, 701663251);
                     int var17 = var4.method6791(var14, var15, 701663251);
                     int var18 = var16 - var17 - var2;
                     this.anIntArray9484[var13] = ((this.anIntArray9484[var13] << 8) / var12 * var18 >> 8) - (var6 - var16);
                  }
               }
            }
         }

         this.method14871();
         this.aBool9493 = false;
      }
   }

   void be() {
      for(int var1 = 0; var1 < this.anInt9503; ++var1) {
         this.anIntArray9483[var1] = this.anIntArray9483[var1] + 7 >> 4;
         this.anIntArray9484[var1] = this.anIntArray9484[var1] + 7 >> 4;
         this.anIntArray9512[var1] = this.anIntArray9512[var1] + 7 >> 4;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   Class568 method14874(Class568_Sub3 var1, Class568_Sub3 var2, int var3, boolean var4, boolean var5) {
      var1.anInt9477 = var3;
      var1.anInt9478 = this.anInt9478;
      var1.aShort9479 = this.aShort9479;
      var1.aShort9474 = this.aShort9474;
      var1.anInt9503 = this.anInt9503;
      var1.anInt9537 = this.anInt9537;
      var1.anInt9488 = this.anInt9488;
      var1.anInt9498 = this.anInt9498;
      var1.anInt9499 = this.anInt9499;
      var1.anInt9533 = this.anInt9533;
      if((var3 & 256) != 0) {
         var1.aBool9515 = true;
      } else {
         var1.aBool9515 = this.aBool9515;
      }

      var1.aBool9516 = this.aBool9516;
      boolean var6 = Class71.method1487(var3, this.anInt9478);
      boolean var7 = Class71.method1488(var3, this.anInt9478);
      boolean var8 = Class71.method1489(var3, this.anInt9478);
      boolean var9 = var6 | var7 | var8;
      int var10;
      if(var9) {
         if(var6) {
            if(var2.anIntArray9483 != null && var2.anIntArray9483.length >= this.anInt9503) {
               var1.anIntArray9483 = var2.anIntArray9483;
            } else {
               var1.anIntArray9483 = var2.anIntArray9483 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9483 = this.anIntArray9483;
         }

         if(var7) {
            if(var2.anIntArray9484 != null && var2.anIntArray9484.length >= this.anInt9503) {
               var1.anIntArray9484 = var2.anIntArray9484;
            } else {
               var1.anIntArray9484 = var2.anIntArray9484 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9484 = this.anIntArray9484;
         }

         if(var8) {
            if(var2.anIntArray9512 != null && var2.anIntArray9512.length >= this.anInt9503) {
               var1.anIntArray9512 = var2.anIntArray9512;
            } else {
               var1.anIntArray9512 = var2.anIntArray9512 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9512 = this.anIntArray9512;
         }

         for(var10 = 0; var10 < this.anInt9503; ++var10) {
            if(var6) {
               var1.anIntArray9483[var10] = this.anIntArray9483[var10];
            }

            if(var7) {
               var1.anIntArray9484[var10] = this.anIntArray9484[var10];
            }

            if(var8) {
               var1.anIntArray9512[var10] = this.anIntArray9512[var10];
            }
         }
      } else {
         var1.anIntArray9483 = this.anIntArray9483;
         var1.anIntArray9484 = this.anIntArray9484;
         var1.anIntArray9512 = this.anIntArray9512;
      }

      if(Class71.method1584(var3, this.anInt9478)) {
         var1.aClass359_9513 = var2.aClass359_9513;
         var1.aClass359_9513.anInterface35_4491 = this.aClass359_9513.anInterface35_4491;
         var1.aClass359_9513.aBool4490 = this.aClass359_9513.aBool4490;
         var1.aClass359_9513.aBool4489 = true;
      } else if(Class71.method1499(var3, this.anInt9478)) {
         var1.aClass359_9513 = this.aClass359_9513;
      } else {
         var1.aClass359_9513 = null;
      }

      if(Class71.method1492(var3, this.anInt9478)) {
         if(var2.aShortArray9476 != null && var2.aShortArray9476.length >= this.anInt9498) {
            var1.aShortArray9476 = var2.aShortArray9476;
         } else {
            var1.aShortArray9476 = var2.aShortArray9476 = new short[this.anInt9498];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9476[var10] = this.aShortArray9476[var10];
         }
      } else {
         var1.aShortArray9476 = this.aShortArray9476;
      }

      if(Class71.method1537(var3, this.anInt9478)) {
         if(var2.aByteArray9501 != null && var2.aByteArray9501.length >= this.anInt9498) {
            var1.aByteArray9501 = var2.aByteArray9501;
         } else {
            var1.aByteArray9501 = var2.aByteArray9501 = new byte[this.anInt9498];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aByteArray9501[var10] = this.aByteArray9501[var10];
         }
      } else {
         var1.aByteArray9501 = this.aByteArray9501;
      }

      if(Class71.method1506(var3, this.anInt9478)) {
         var1.aClass359_9510 = var2.aClass359_9510;
         var1.aClass359_9510.anInterface35_4491 = this.aClass359_9510.anInterface35_4491;
         var1.aClass359_9510.aBool4490 = this.aClass359_9510.aBool4490;
         var1.aClass359_9510.aBool4489 = true;
      } else if(Class71.method1501(var3, this.anInt9478)) {
         var1.aClass359_9510 = this.aClass359_9510;
      } else {
         var1.aClass359_9510 = null;
      }

      int var11;
      if(Class71.method1491(var3, this.anInt9478)) {
         if(var2.aShortArray9491 != null && var2.aShortArray9491.length >= this.anInt9488) {
            var1.aShortArray9491 = var2.aShortArray9491;
            var1.aShortArray9492 = var2.aShortArray9492;
            var1.aShortArray9504 = var2.aShortArray9504;
         } else {
            var10 = this.anInt9488;
            var1.aShortArray9491 = var2.aShortArray9491 = new short[var10];
            var1.aShortArray9492 = var2.aShortArray9492 = new short[var10];
            var1.aShortArray9504 = var2.aShortArray9504 = new short[var10];
         }

         if(this.aClass370_9497 != null) {
            if(var2.aClass370_9497 == null) {
               var2.aClass370_9497 = new Class370();
            }

            Class370 var12 = var1.aClass370_9497 = var2.aClass370_9497;
            if(var12.aShortArray4625 == null || var12.aShortArray4625.length < this.anInt9488) {
               var11 = this.anInt9488;
               var12.aShortArray4625 = new short[var11];
               var12.aShortArray4626 = new short[var11];
               var12.aShortArray4628 = new short[var11];
               var12.aByteArray4627 = new byte[var11];
            }

            for(var11 = 0; var11 < this.anInt9488; ++var11) {
               var1.aShortArray9491[var11] = this.aShortArray9491[var11];
               var1.aShortArray9492[var11] = this.aShortArray9492[var11];
               var1.aShortArray9504[var11] = this.aShortArray9504[var11];
               var12.aShortArray4625[var11] = this.aClass370_9497.aShortArray4625[var11];
               var12.aShortArray4626[var11] = this.aClass370_9497.aShortArray4626[var11];
               var12.aShortArray4628[var11] = this.aClass370_9497.aShortArray4628[var11];
               var12.aByteArray4627[var11] = this.aClass370_9497.aByteArray4627[var11];
            }
         } else {
            var1.aClass370_9497 = null;

            for(var10 = 0; var10 < this.anInt9488; ++var10) {
               var1.aShortArray9491[var10] = this.aShortArray9491[var10];
               var1.aShortArray9492[var10] = this.aShortArray9492[var10];
               var1.aShortArray9504[var10] = this.aShortArray9504[var10];
            }
         }

         var1.aByteArray9494 = this.aByteArray9494;
      } else {
         var1.aClass370_9497 = this.aClass370_9497;
         var1.aShortArray9491 = this.aShortArray9491;
         var1.aShortArray9492 = this.aShortArray9492;
         var1.aShortArray9504 = this.aShortArray9504;
         var1.aByteArray9494 = this.aByteArray9494;
      }

      if(Class71.method1498(var3, this.anInt9478)) {
         var1.aClass359_9511 = var2.aClass359_9511;
         var1.aClass359_9511.anInterface35_4491 = this.aClass359_9511.anInterface35_4491;
         var1.aClass359_9511.aBool4490 = this.aClass359_9511.aBool4490;
         var1.aClass359_9511.aBool4489 = true;
      } else if(Class71.method1500(var3, this.anInt9478)) {
         var1.aClass359_9511 = this.aClass359_9511;
      } else {
         var1.aClass359_9511 = null;
      }

      if(Class71.method1516(var3, this.anInt9478)) {
         if(var2.aFloatArray9495 != null && var2.aFloatArray9495.length >= this.anInt9498) {
            var1.aFloatArray9495 = var2.aFloatArray9495;
            var1.aFloatArray9496 = var2.aFloatArray9496;
         } else {
            var10 = this.anInt9488;
            var1.aFloatArray9495 = var2.aFloatArray9495 = new float[var10];
            var1.aFloatArray9496 = var2.aFloatArray9496 = new float[var10];
         }

         for(var10 = 0; var10 < this.anInt9488; ++var10) {
            var1.aFloatArray9495[var10] = this.aFloatArray9495[var10];
            var1.aFloatArray9496[var10] = this.aFloatArray9496[var10];
         }
      } else {
         var1.aFloatArray9495 = this.aFloatArray9495;
         var1.aFloatArray9496 = this.aFloatArray9496;
      }

      if(Class71.method1507(var3, this.anInt9478)) {
         var1.aClass359_9544 = var2.aClass359_9544;
         var1.aClass359_9544.anInterface35_4491 = this.aClass359_9544.anInterface35_4491;
         var1.aClass359_9544.aBool4490 = this.aClass359_9544.aBool4490;
         var1.aClass359_9544.aBool4489 = true;
      } else if(Class71.method1502(var3, this.anInt9478)) {
         var1.aClass359_9544 = this.aClass359_9544;
      } else {
         var1.aClass359_9544 = null;
      }

      if(Class71.method1495(var3, this.anInt9478)) {
         if(var2.aShortArray9502 != null && var2.aShortArray9502.length >= this.anInt9498) {
            var1.aShortArray9502 = var2.aShortArray9502;
            var1.aShortArray9534 = var2.aShortArray9534;
            var1.aShortArray9548 = var2.aShortArray9548;
         } else {
            var10 = this.anInt9498;
            var1.aShortArray9502 = var2.aShortArray9502 = new short[var10];
            var1.aShortArray9534 = var2.aShortArray9534 = new short[var10];
            var1.aShortArray9548 = var2.aShortArray9548 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9502[var10] = this.aShortArray9502[var10];
            var1.aShortArray9534[var10] = this.aShortArray9534[var10];
            var1.aShortArray9548[var10] = this.aShortArray9548[var10];
         }
      } else {
         var1.aShortArray9502 = this.aShortArray9502;
         var1.aShortArray9534 = this.aShortArray9534;
         var1.aShortArray9548 = this.aShortArray9548;
      }

      if(Class71.method1508(var3, this.anInt9478)) {
         var1.aClass350_9508 = var2.aClass350_9508;
         var1.aClass350_9508.anInterface40_4451 = this.aClass350_9508.anInterface40_4451;
         var1.aClass350_9508.aBool4453 = this.aClass350_9508.aBool4453;
         var1.aClass350_9508.aBool4452 = true;
      } else if(Class71.method1503(var3, this.anInt9478)) {
         var1.aClass350_9508 = this.aClass350_9508;
      } else {
         var1.aClass350_9508 = null;
      }

      if(Class71.method1496(var3, this.anInt9478)) {
         if(var2.aShortArray9505 != null && var2.aShortArray9505.length >= this.anInt9498) {
            var1.aShortArray9505 = var2.aShortArray9505;
         } else {
            var10 = this.anInt9498;
            var1.aShortArray9505 = var2.aShortArray9505 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9505[var10] = this.aShortArray9505[var10];
         }
      } else {
         var1.aShortArray9505 = this.aShortArray9505;
      }

      if(Class71.method1551(var3, this.anInt9478)) {
         if(var2.aClass360Array9535 != null && var2.aClass360Array9535.length >= this.anInt9533) {
            var1.aClass360Array9535 = var2.aClass360Array9535;

            for(var10 = 0; var10 < this.anInt9533; ++var10) {
               var1.aClass360Array9535[var10].method6435(this.aClass360Array9535[var10]);
            }
         } else {
            var10 = this.anInt9533;
            var1.aClass360Array9535 = var2.aClass360Array9535 = new Class360[var10];

            for(var11 = 0; var11 < this.anInt9533; ++var11) {
               var1.aClass360Array9535[var11] = this.aClass360Array9535[var11].method6433();
            }
         }
      } else {
         var1.aClass360Array9535 = this.aClass360Array9535;
      }

      var1.aClass61Array9481 = this.aClass61Array9481;
      if(this.aBool9493) {
         var1.anInt9517 = this.anInt9517;
         var1.anInt9518 = this.anInt9518;
         var1.anInt9522 = this.anInt9522;
         var1.anInt9482 = this.anInt9482;
         var1.anInt9520 = this.anInt9520;
         var1.anInt9521 = this.anInt9521;
         var1.anInt9519 = this.anInt9519;
         var1.anInt9525 = this.anInt9525;
         var1.aBool9493 = true;
      } else {
         var1.aBool9493 = false;
      }

      var1.anIntArrayArray9486 = this.anIntArrayArray9486;
      var1.anIntArrayArray9506 = this.anIntArrayArray9506;
      var1.anIntArrayArray9536 = this.anIntArrayArray9536;
      var1.aShortArray9530 = this.aShortArray9530;
      var1.anIntArray9529 = this.anIntArray9529;
      var1.aShortArray9489 = this.aShortArray9489;
      var1.aShortArray9523 = this.aShortArray9523;
      var1.aShortArray9485 = this.aShortArray9485;
      var1.aShortArray9507 = this.aShortArray9507;
      var1.anIntArray9526 = this.anIntArray9526;
      var1.anIntArray9528 = this.anIntArray9528;
      var1.anIntArray9490 = this.anIntArray9490;
      var1.aClass80Array9531 = this.aClass80Array9531;
      var1.aClass166Array9500 = this.aClass166Array9500;
      return var1;
   }

   void method14875() {
      if(this.aBool9509) {
         this.aBool9509 = false;
         if(this.aClass80Array9531 == null && this.aClass166Array9500 == null && this.aClass61Array9481 == null && !Class71.method1490(this.anInt9477, this.anInt9478)) {
            boolean var1 = false;
            boolean var2 = false;
            boolean var3 = false;
            if(this.anIntArray9483 != null && !Class71.method1571(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var1 = true;
               }
            }

            if(this.anIntArray9484 != null && !Class71.method1510(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var2 = true;
               }
            }

            if(this.anIntArray9512 != null && !Class71.method1511(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var3 = true;
               }
            }

            if(var1) {
               this.anIntArray9483 = null;
            }

            if(var2) {
               this.anIntArray9484 = null;
            }

            if(var3) {
               this.anIntArray9512 = null;
            }
         }

         if(this.aShortArray9530 != null && this.anIntArray9483 == null && this.anIntArray9484 == null && this.anIntArray9512 == null) {
            this.aShortArray9530 = null;
            this.anIntArray9529 = null;
         }

         if(this.aByteArray9494 != null && !Class71.method1505(this.anInt9477, this.anInt9478)) {
            label201: {
               label200: {
                  if((this.anInt9478 & 55) != 0) {
                     if(this.aClass359_9511 != null && !this.aClass359_9511.method6430()) {
                        break label200;
                     }
                  } else if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
                     break label200;
                  }

                  this.aShortArray9504 = null;
                  this.aShortArray9492 = null;
                  this.aShortArray9491 = null;
                  this.aByteArray9494 = null;
                  break label201;
               }

               this.aBool9509 = true;
            }
         }

         if(this.aShortArray9476 != null && !Class71.method1523(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9476 = null;
            }
         }

         if(this.aByteArray9501 != null && !Class71.method1514(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aByteArray9501 = null;
            }
         }

         if(this.aFloatArray9495 != null && !Class71.method1544(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9544 != null && !this.aClass359_9544.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aFloatArray9496 = null;
               this.aFloatArray9495 = null;
            }
         }

         if(this.aShortArray9505 != null && !Class71.method1520(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9505 = null;
            }
         }

         if(this.aShortArray9502 != null && !Class71.method1519(this.anInt9477, this.anInt9478)) {
            if((this.aClass350_9508 == null || this.aClass350_9508.method6356()) && (this.aClass359_9510 == null || this.aClass359_9510.method6430())) {
               this.aShortArray9548 = null;
               this.aShortArray9534 = null;
               this.aShortArray9502 = null;
            } else {
               this.aBool9509 = true;
            }
         }

         if(this.aShortArray9489 != null) {
            if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9489 = null;
            }
         }

         if(this.aShortArray9523 != null) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9523 = null;
            }
         }

         if(this.anIntArrayArray9506 != null && !Class71.method1575(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9506 = (int[][])null;
            this.aShortArray9507 = null;
         }

         if(this.anIntArrayArray9486 != null && !Class71.method1517(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9486 = (int[][])null;
            this.aShortArray9485 = null;
         }

         if(this.anIntArrayArray9536 != null && !Class71.method1518(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9536 = (int[][])null;
         }

         if(this.anIntArray9526 != null && (this.anInt9477 & 2048) == 0 && (this.anInt9477 & 262144) == 0) {
            this.anIntArray9526 = null;
            this.anIntArray9528 = null;
            this.anIntArray9490 = null;
         }

      }
   }

   public void dq(short var1, short var2) {
      int var3;
      for(var3 = 0; var3 < this.anInt9498; ++var3) {
         if(this.aShortArray9476[var3] == var1) {
            this.aShortArray9476[var3] = var2;
         }
      }

      if(this.aClass61Array9481 != null) {
         for(var3 = 0; var3 < this.anInt9533; ++var3) {
            Class61 var4 = this.aClass61Array9481[var3];
            Class360 var5 = this.aClass360Array9535[var3];
            var5.anInt4496 = var5.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var4.anInt565] & '\uffff'] & 16777215;
         }
      }

      this.method14910();
   }

   void method14876() {
      int var1 = 32767;
      int var2 = 32767;
      int var3 = 32767;
      int var4 = -32768;
      int var5 = -32768;
      int var6 = -32768;
      int var7 = 0;
      int var8 = 0;

      for(int var9 = 0; var9 < this.anInt9537; ++var9) {
         int var10 = this.anIntArray9483[var9];
         int var11 = this.anIntArray9484[var9];
         int var12 = this.anIntArray9512[var9];
         if(var10 < var1) {
            var1 = var10;
         }

         if(var10 > var4) {
            var4 = var10;
         }

         if(var11 < var2) {
            var2 = var11;
         }

         if(var11 > var5) {
            var5 = var11;
         }

         if(var12 < var3) {
            var3 = var12;
         }

         if(var12 > var6) {
            var6 = var12;
         }

         int var13 = var10 * var10 + var12 * var12;
         if(var13 > var7) {
            var7 = var13;
         }

         var13 = var10 * var10 + var12 * var12 + var11 * var11;
         if(var13 > var8) {
            var8 = var13;
         }
      }

      this.anInt9522 = var1;
      this.anInt9482 = var4;
      this.anInt9520 = var2;
      this.anInt9521 = var5;
      this.anInt9519 = var3;
      this.anInt9525 = var6;
      this.anInt9518 = (int)(Math.sqrt((double)var7) + 0.99D);
      this.anInt9517 = (int)(Math.sqrt((double)var8) + 0.99D);
      this.aBool9493 = true;
   }

   void method14877() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   void method14878() {
      if(this.aClass350_9508 != null) {
         this.aClass350_9508.aBool4453 = false;
      }

   }

   public void f(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   boolean method14879(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   public void t(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var3 - this.anIntArray9512[var4] * var2 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9484[var4] * var2 + this.anIntArray9512[var4] * var3 >> 14;
         this.anIntArray9484[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void EA(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9484[var4] = this.anIntArray9484[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void ia(int var1, int var2, int var3) {
      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         if(var1 != 0) {
            this.anIntArray9483[var4] += var1;
         }

         if(var2 != 0) {
            this.anIntArray9484[var4] += var2;
         }

         if(var3 != 0) {
            this.anIntArray9512[var4] += var3;
         }
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void wa() {
      int var1;
      for(var1 = 0; var1 < this.anInt9537; ++var1) {
         this.anIntArray9512[var1] = -this.anIntArray9512[var1];
      }

      for(var1 = 0; var1 < this.anInt9488; ++var1) {
         this.aShortArray9504[var1] = (short)(-this.aShortArray9504[var1]);
      }

      for(var1 = 0; var1 < this.anInt9498; ++var1) {
         short var2 = this.aShortArray9502[var1];
         this.aShortArray9502[var1] = this.aShortArray9548[var1];
         this.aShortArray9548[var1] = var2;
      }

      this.method14871();
      this.method14877();
      this.method14878();
      this.aBool9493 = false;
   }

   public void oa(int var1, int var2, int var3) {
      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         if(var1 != 128) {
            this.anIntArray9483[var4] = this.anIntArray9483[var4] * var1 >> 7;
         }

         if(var2 != 128) {
            this.anIntArray9484[var4] = this.anIntArray9484[var4] * var2 >> 7;
         }

         if(var3 != 128) {
            this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 >> 7;
         }
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public int cz() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9522;
   }

   short method14880(Class96 var1, int var2, int var3, long var4, int var6, int var7, int var8, int var9, float var10, float var11) {
      int var12 = this.anIntArray9529[var2];
      int var13 = this.anIntArray9529[var2 + 1];
      int var14 = 0;

      for(int var15 = var12; var15 < var13; ++var15) {
         short var16 = this.aShortArray9530[var15];
         if(var16 == 0) {
            var14 = var15;
            break;
         }

         if(this.aLongArray9527[var15] == var4) {
            return (short)(var16 - 1);
         }
      }

      this.aShortArray9530[var14] = (short)(this.anInt9488 + 1);
      this.aLongArray9527[var14] = var4;
      this.aShortArray9523[this.anInt9488] = (short)var3;
      this.aShortArray9489[this.anInt9488] = (short)var2;
      this.aShortArray9491[this.anInt9488] = (short)var6;
      this.aShortArray9492[this.anInt9488] = (short)var7;
      this.aShortArray9504[this.anInt9488] = (short)var8;
      this.aByteArray9494[this.anInt9488] = (byte)var9;
      this.aFloatArray9495[this.anInt9488] = var10;
      this.aFloatArray9496[this.anInt9488] = var11;
      return (short)(this.anInt9488++);
   }

   static float[] method14881(float[] var0, int var1) {
      float[] var2 = new float[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public int n() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9517;
   }

   public int RA() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9522;
   }

   public int ya() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9482;
   }

   static short[] method14882(short[] var0, int var1) {
      short[] var2 = new short[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public int o() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9521;
   }

   void e(int var1, int[] var2, int var3, int var4, int var5, boolean var6, int var7, int[] var8) {
      int var9 = var2.length;
      int var10;
      int var11;
      int var15;
      int var51;
      int[] var50;
      int var48;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var48 = var2[var11];
            if(var48 < this.anIntArrayArray9486.length) {
               var50 = this.anIntArrayArray9486[var48];

               for(var51 = 0; var51 < var50.length; ++var51) {
                  var15 = var50[var51];
                  if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var15]) != 0) {
                     this.anInt9524 += this.anIntArray9483[var15];
                     this.anInt9545 += this.anIntArray9484[var15];
                     this.anInt9546 += this.anIntArray9512[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            this.anInt9524 = this.anInt9524 / var10 + var3;
            this.anInt9545 = this.anInt9545 / var10 + var4;
            this.anInt9546 = this.anInt9546 / var10 + var5;
            this.aBool9547 = true;
         } else {
            this.anInt9524 = var3;
            this.anInt9545 = var4;
            this.anInt9546 = var5;
         }

      } else {
         int[] var12;
         int var13;
         if(var1 == 1) {
            if(var8 != null) {
               var10 = var8[0] * var3 + var8[1] * var4 + var8[2] * var5 + 8192 >> 14;
               var11 = var8[3] * var3 + var8[4] * var4 + var8[5] * var5 + 8192 >> 14;
               var48 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var48;
            }

            var3 <<= 4;
            var4 <<= 4;
            var5 <<= 4;

            for(var10 = 0; var10 < var9; ++var10) {
               var11 = var2[var10];
               if(var11 < this.anIntArrayArray9486.length) {
                  var12 = this.anIntArrayArray9486[var11];

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var51 = var12[var13];
                     if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                        this.anIntArray9483[var51] += var3;
                        this.anIntArray9484[var51] += var4;
                        this.anIntArray9512[var51] += var5;
                     }
                  }
               }
            }

         } else {
            int var17;
            int var16;
            int var19;
            int var18;
            int var21;
            int var20;
            int var23;
            int var22;
            int var24;
            int var27;
            int var26;
            int var28;
            int var30;
            int var34;
            int[] var35;
            int var32;
            int var33;
            int var38;
            int var39;
            int var36;
            int var37;
            int var40;
            if(var1 == 2) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  int[] var53 = new int[9];
                  var17 = Class312.anIntArray3956[var3];
                  var18 = Class312.anIntArray3943[var3];
                  var19 = Class312.anIntArray3956[var4];
                  var20 = Class312.anIntArray3943[var4];
                  var21 = Class312.anIntArray3956[var5];
                  var22 = Class312.anIntArray3943[var5];
                  var23 = var18 * var21 + 8192 >> 14;
                  var24 = var18 * var22 + 8192 >> 14;
                  var53[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var53[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var53[2] = var20 * var17 + 8192 >> 14;
                  var53[3] = var17 * var22 + 8192 >> 14;
                  var53[4] = var17 * var21 + 8192 >> 14;
                  var53[5] = -var18;
                  var53[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var53[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var53[8] = var19 * var17 + 8192 >> 14;
                  int var54 = var53[0] * -this.anInt9524 + var53[1] * -this.anInt9545 + var53[2] * -this.anInt9546 + 8192 >> 14;
                  var26 = var53[3] * -this.anInt9524 + var53[4] * -this.anInt9545 + var53[5] * -this.anInt9546 + 8192 >> 14;
                  var27 = var53[6] * -this.anInt9524 + var53[7] * -this.anInt9545 + var53[8] * -this.anInt9546 + 8192 >> 14;
                  var28 = var54 + this.anInt9524;
                  int var55 = var26 + this.anInt9545;
                  var30 = var27 + this.anInt9546;
                  int[] var56 = new int[9];

                  for(var32 = 0; var32 < 3; ++var32) {
                     for(var33 = 0; var33 < 3; ++var33) {
                        var34 = 0;

                        for(int var57 = 0; var57 < 3; ++var57) {
                           var34 += var53[var32 * 3 + var57] * var8[var33 * 3 + var57];
                        }

                        var56[var32 * 3 + var33] = var34 + 8192 >> 14;
                     }
                  }

                  var32 = var53[0] * var13 + var53[1] * var51 + var53[2] * var15 + 8192 >> 14;
                  var33 = var53[3] * var13 + var53[4] * var51 + var53[5] * var15 + 8192 >> 14;
                  var34 = var53[6] * var13 + var53[7] * var51 + var53[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var55;
                  var34 += var30;
                  var35 = new int[9];

                  for(var36 = 0; var36 < 3; ++var36) {
                     for(var37 = 0; var37 < 3; ++var37) {
                        var38 = 0;

                        for(var39 = 0; var39 < 3; ++var39) {
                           var38 += var8[var36 * 3 + var39] * var56[var37 + var39 * 3];
                        }

                        var35[var36 * 3 + var37] = var38 + 8192 >> 14;
                     }
                  }

                  var36 = var8[0] * var32 + var8[1] * var33 + var8[2] * var34 + 8192 >> 14;
                  var37 = var8[3] * var32 + var8[4] * var33 + var8[5] * var34 + 8192 >> 14;
                  var38 = var8[6] * var32 + var8[7] * var33 + var8[8] * var34 + 8192 >> 14;
                  var36 += var10;
                  var37 += var11;
                  var38 += var48;

                  for(var39 = 0; var39 < var9; ++var39) {
                     var40 = var2[var39];
                     if(var40 < this.anIntArrayArray9486.length) {
                        int[] var41 = this.anIntArrayArray9486[var40];

                        for(int var42 = 0; var42 < var41.length; ++var42) {
                           int var43 = var41[var42];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var43]) != 0) {
                              int var44 = var35[0] * this.anIntArray9483[var43] + var35[1] * this.anIntArray9484[var43] + var35[2] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var45 = var35[3] * this.anIntArray9483[var43] + var35[4] * this.anIntArray9484[var43] + var35[5] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var46 = var35[6] * this.anIntArray9483[var43] + var35[7] * this.anIntArray9484[var43] + var35[8] * this.anIntArray9512[var43] + 8192 >> 14;
                              var44 += var36;
                              var45 += var37;
                              var46 += var38;
                              this.anIntArray9483[var43] = var44;
                              this.anIntArray9484[var43] = var45;
                              this.anIntArray9512[var43] = var46;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9484[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = this.anIntArray9484[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              if(var3 != 0) {
                                 var15 = Class312.anIntArray3943[var3];
                                 var16 = Class312.anIntArray3956[var3];
                                 var17 = this.anIntArray9484[var51] * var16 - this.anIntArray9512[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9484[var51] * var15 + this.anIntArray9512[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = var17;
                              }

                              if(var4 != 0) {
                                 var15 = Class312.anIntArray3943[var4];
                                 var16 = Class312.anIntArray3956[var4];
                                 var17 = this.anIntArray9512[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9512[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }

                  if(var6) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9486.length) {
                           var12 = this.anIntArrayArray9486[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var51 = var12[var13];
                              if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                                 var15 = this.anIntArray9529[var51];
                                 var16 = this.anIntArray9529[var51 + 1];

                                 for(var17 = var15; var17 < var16; ++var17) {
                                    var18 = this.aShortArray9530[var17] - 1;
                                    if(var18 == -1) {
                                       break;
                                    }

                                    if(var5 != 0) {
                                       var19 = Class312.anIntArray3943[var5];
                                       var20 = Class312.anIntArray3956[var5];
                                       var21 = this.aShortArray9492[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9492[var18] = (short)(this.aShortArray9492[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }

                                    if(var3 != 0) {
                                       var19 = Class312.anIntArray3943[var3];
                                       var20 = Class312.anIntArray3956[var3];
                                       var21 = this.aShortArray9492[var18] * var20 - this.aShortArray9504[var18] * var19 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9492[var18] * var19 + this.aShortArray9504[var18] * var20 + 16383 >> 14);
                                       this.aShortArray9492[var18] = (short)var21;
                                    }

                                    if(var4 != 0) {
                                       var19 = Class312.anIntArray3943[var4];
                                       var20 = Class312.anIntArray3956[var4];
                                       var21 = this.aShortArray9504[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9504[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }
                                 }
                              }
                           }
                        }
                     }

                     this.method14877();
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -this.anInt9524 + 8192 >> 14;
                  var20 = var17 * -this.anInt9545 + 8192 >> 14;
                  var21 = var18 * -this.anInt9546 + 8192 >> 14;
                  var22 = var19 + this.anInt9524;
                  var23 = var20 + this.anInt9545;
                  var24 = var21 + this.anInt9546;
                  int[] var25 = new int[]{var16 * var8[0] + 8192 >> 14, var16 * var8[3] + 8192 >> 14, var16 * var8[6] + 8192 >> 14, var17 * var8[1] + 8192 >> 14, var17 * var8[4] + 8192 >> 14, var17 * var8[7] + 8192 >> 14, var18 * var8[2] + 8192 >> 14, var18 * var8[5] + 8192 >> 14, var18 * var8[8] + 8192 >> 14};
                  var26 = var16 * var13 + 8192 >> 14;
                  var27 = var17 * var51 + 8192 >> 14;
                  var28 = var18 * var15 + 8192 >> 14;
                  var26 += var22;
                  var27 += var23;
                  var28 += var24;
                  int[] var29 = new int[9];

                  int var31;
                  for(var30 = 0; var30 < 3; ++var30) {
                     for(var31 = 0; var31 < 3; ++var31) {
                        var32 = 0;

                        for(var33 = 0; var33 < 3; ++var33) {
                           var32 += var8[var30 * 3 + var33] * var25[var31 + var33 * 3];
                        }

                        var29[var30 * 3 + var31] = var32 + 8192 >> 14;
                     }
                  }

                  var30 = var8[0] * var26 + var8[1] * var27 + var8[2] * var28 + 8192 >> 14;
                  var31 = var8[3] * var26 + var8[4] * var27 + var8[5] * var28 + 8192 >> 14;
                  var32 = var8[6] * var26 + var8[7] * var27 + var8[8] * var28 + 8192 >> 14;
                  var30 += var10;
                  var31 += var11;
                  var32 += var48;

                  for(var33 = 0; var33 < var9; ++var33) {
                     var34 = var2[var33];
                     if(var34 < this.anIntArrayArray9486.length) {
                        var35 = this.anIntArrayArray9486[var34];

                        for(var36 = 0; var36 < var35.length; ++var36) {
                           var37 = var35[var36];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var37]) != 0) {
                              var38 = var29[0] * this.anIntArray9483[var37] + var29[1] * this.anIntArray9484[var37] + var29[2] * this.anIntArray9512[var37] + 8192 >> 14;
                              var39 = var29[3] * this.anIntArray9483[var37] + var29[4] * this.anIntArray9484[var37] + var29[5] * this.anIntArray9512[var37] + 8192 >> 14;
                              var40 = var29[6] * this.anIntArray9483[var37] + var29[7] * this.anIntArray9484[var37] + var29[8] * this.anIntArray9512[var37] + 8192 >> 14;
                              var38 += var30;
                              var39 += var31;
                              var40 += var32;
                              this.anIntArray9483[var37] = var38;
                              this.anIntArray9484[var37] = var39;
                              this.anIntArray9512[var37] = var40;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              this.anIntArray9483[var51] = this.anIntArray9483[var51] * var3 >> 7;
                              this.anIntArray9484[var51] = this.anIntArray9484[var51] * var4 >> 7;
                              this.anIntArray9512[var51] = this.anIntArray9512[var51] * var5 >> 7;
                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }
               }

            } else {
               boolean var47;
               Class61 var49;
               Class360 var52;
               if(var1 == 5) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = (this.aByteArray9501[var15] & 255) + var3 * 8;
                                 if(var16 < 0) {
                                    var16 = 0;
                                 } else if(var16 > 255) {
                                    var16 = 255;
                                 }

                                 this.aByteArray9501[var15] = (byte)var16;
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var49.anInt565] & 255) << 24;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else if(var1 == 7) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = this.aShortArray9476[var15] & '\uffff';
                                 var17 = var16 >> 10 & 63;
                                 var18 = var16 >> 7 & 7;
                                 var19 = var16 & 127;
                                 var17 = var17 + var3 & 63;
                                 var18 += var4 / 4;
                                 if(var18 < 0) {
                                    var18 = 0;
                                 } else if(var18 > 7) {
                                    var18 = 7;
                                 }

                                 var19 += var5;
                                 if(var19 < 0) {
                                    var19 = 0;
                                 } else if(var19 > 127) {
                                    var19 = 127;
                                 }

                                 this.aShortArray9476[var15] = (short)(var17 << 10 | var18 << 7 | var19);
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var49.anInt565] & '\uffff'] & 16777215;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else {
                  Class360 var14;
                  if(var1 == 8) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4497 += var3;
                                 var14.anInt4495 += var4;
                              }
                           }
                        }
                     }

                  } else if(var1 == 10) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4493 = var14.anInt4493 * var3 >> 7;
                                 var14.anInt4494 = var14.anInt4494 * var4 >> 7;
                              }
                           }
                        }
                     }

                  } else if(var1 == 9) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4498 = var14.anInt4498 + var3 & 16383;
                              }
                           }
                        }
                     }

                  }
               }
            }
         }
      }
   }

   public int ha() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9525;
   }

   public void method12078(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub3 var6 = (Class568_Sub3)var1;
      if(this.anInt9498 != 0 && var6.anInt9498 != 0) {
         int var7 = var6.anInt9537;
         int[] var8 = var6.anIntArray9483;
         int[] var9 = var6.anIntArray9484;
         int[] var10 = var6.anIntArray9512;
         short[] var11 = var6.aShortArray9491;
         short[] var12 = var6.aShortArray9492;
         short[] var13 = var6.aShortArray9504;
         byte[] var14 = var6.aByteArray9494;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass370_9497 != null) {
            var15 = this.aClass370_9497.aShortArray4625;
            var16 = this.aClass370_9497.aShortArray4626;
            var17 = this.aClass370_9497.aShortArray4628;
            var18 = this.aClass370_9497.aByteArray4627;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass370_9497 != null) {
            var19 = var6.aClass370_9497.aShortArray4625;
            var20 = var6.aClass370_9497.aShortArray4626;
            var21 = var6.aClass370_9497.aShortArray4628;
            var22 = var6.aClass370_9497.aByteArray4627;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9529;
         short[] var24 = var6.aShortArray9530;
         if(!var6.aBool9493) {
            var6.method14876();
         }

         int var25 = var6.anInt9520;
         int var26 = var6.anInt9521;
         int var27 = var6.anInt9522;
         int var28 = var6.anInt9482;
         int var29 = var6.anInt9519;
         int var30 = var6.anInt9525;

         for(int var31 = 0; var31 < this.anInt9537; ++var31) {
            int var32 = this.anIntArray9484[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9483[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9512[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9529[var31];
                     int var37 = this.anIntArray9529[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9530[var38] - 1;
                        if(var35 == -1 || this.aByteArray9494[var35] != 0) {
                           break;
                        }
                     }

                     if(var35 != -1) {
                        for(var38 = 0; var38 < var7; ++var38) {
                           if(var33 == var8[var38] && var34 == var10[var38] && var32 == var9[var38]) {
                              int var39 = -1;
                              var36 = var23[var38];
                              var37 = var23[var38 + 1];

                              for(int var40 = var36; var40 < var37; ++var40) {
                                 var39 = var24[var40] - 1;
                                 if(var39 == -1 || var14[var39] != 0) {
                                    break;
                                 }
                              }

                              if(var39 != -1) {
                                 if(var15 == null) {
                                    this.aClass370_9497 = new Class370();
                                    var15 = this.aClass370_9497.aShortArray4625 = Class188.method3313(this.aShortArray9491, 142126616);
                                    var16 = this.aClass370_9497.aShortArray4626 = Class188.method3313(this.aShortArray9492, 1095569686);
                                    var17 = this.aClass370_9497.aShortArray4628 = Class188.method3313(this.aShortArray9504, 1064160328);
                                    var18 = this.aClass370_9497.aByteArray4627 = Class73.method1591(this.aByteArray9494, 1571278180);
                                 }

                                 if(var19 == null) {
                                    Class370 var47 = var6.aClass370_9497 = new Class370();
                                    var19 = var47.aShortArray4625 = Class188.method3313(var11, 181628651);
                                    var20 = var47.aShortArray4626 = Class188.method3313(var12, -162274751);
                                    var21 = var47.aShortArray4628 = Class188.method3313(var13, 2029069937);
                                    var22 = var47.aByteArray4627 = Class73.method1591(var14, -2016151636);
                                 }

                                 short var46 = this.aShortArray9491[var35];
                                 short var41 = this.aShortArray9492[var35];
                                 short var42 = this.aShortArray9504[var35];
                                 byte var43 = this.aByteArray9494[var35];
                                 var36 = var23[var38];
                                 var37 = var23[var38 + 1];

                                 int var44;
                                 int var45;
                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = var24[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var22[var45] != 0) {
                                       var19[var45] += var46;
                                       var20[var45] += var41;
                                       var21[var45] += var42;
                                       var22[var45] += var43;
                                    }
                                 }

                                 var46 = var11[var39];
                                 var41 = var12[var39];
                                 var42 = var13[var39];
                                 var43 = var14[var39];
                                 var36 = this.anIntArray9529[var31];
                                 var37 = this.anIntArray9529[var31 + 1];

                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = this.aShortArray9530[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var18[var45] != 0) {
                                       var15[var45] += var46;
                                       var16[var45] += var41;
                                       var17[var45] += var42;
                                       var18[var45] += var43;
                                    }
                                 }

                                 var6.method14877();
                                 this.method14877();
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public boolean df() {
      return this.aBool9515;
   }

   public void method12054(byte var1, byte[] var2) {
      int var3;
      if(var2 == null) {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            this.aByteArray9501[var3] = var1;
         }
      } else {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            int var4 = 255 - (255 - (var2[var3] & 255)) * (255 - (var1 & 255)) / 255;
            this.aByteArray9501[var3] = (byte)var4;
         }
      }

      this.method14910();
   }

   public int c() {
      return this.aShort9479;
   }

   public int Z() {
      return this.aShort9474;
   }

   public int dt() {
      return this.aShort9479;
   }

   public void X(short var1, short var2) {
      int var3;
      for(var3 = 0; var3 < this.anInt9498; ++var3) {
         if(this.aShortArray9476[var3] == var1) {
            this.aShortArray9476[var3] = var2;
         }
      }

      if(this.aClass61Array9481 != null) {
         for(var3 = 0; var3 < this.anInt9533; ++var3) {
            Class61 var4 = this.aClass61Array9481[var3];
            Class360 var5 = this.aClass360Array9535[var3];
            var5.anInt4496 = var5.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var4.anInt565] & '\uffff'] & 16777215;
         }
      }

      this.method14910();
   }

   public void method12072(byte var1, byte[] var2) {
      int var3;
      if(var2 == null) {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            this.aByteArray9501[var3] = var1;
         }
      } else {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            int var4 = 255 - (255 - (var2[var3] & 255)) * (255 - (var1 & 255)) / 255;
            this.aByteArray9501[var3] = (byte)var4;
         }
      }

      this.method14910();
   }

   void bx() {
      for(int var1 = 0; var1 < this.anInt9503; ++var1) {
         this.anIntArray9483[var1] = this.anIntArray9483[var1] + 7 >> 4;
         this.anIntArray9484[var1] = this.anIntArray9484[var1] + 7 >> 4;
         this.anIntArray9512[var1] = this.anIntArray9512[var1] + 7 >> 4;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void PA(int var1, int var2, int var3, int var4) {
      int var5;
      for(var5 = 0; var5 < this.anInt9498; ++var5) {
         int var6 = this.aShortArray9476[var5] & '\uffff';
         int var7 = var6 >> 10 & 63;
         int var8 = var6 >> 7 & 7;
         int var9 = var6 & 127;
         if(var1 != -1) {
            var7 += (var1 - var7) * var4 >> 7;
         }

         if(var2 != -1) {
            var8 += (var2 - var8) * var4 >> 7;
         }

         if(var3 != -1) {
            var9 += (var3 - var9) * var4 >> 7;
         }

         this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
      }

      if(this.aClass61Array9481 != null) {
         for(var5 = 0; var5 < this.anInt9533; ++var5) {
            Class61 var10 = this.aClass61Array9481[var5];
            Class360 var11 = this.aClass360Array9535[var5];
            var11.anInt4496 = var11.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
         }
      }

      this.method14910();
   }

   public void method12100() {
      if(this.anInt9488 > 0 && this.anInt9499 > 0) {
         this.method14883();
         this.method14888();
         this.method14875();
      }
   }

   public boolean i() {
      return this.aBool9515;
   }

   public boolean u() {
      return this.aBool9516;
   }

   void method12063() {}

   public Class225_Sub14_Sub16 ga(Class225_Sub14_Sub16 var1) {
      if(this.anInt9488 == 0) {
         return null;
      } else {
         if(!this.aBool9493) {
            this.method14876();
         }

         int var2;
         int var3;
         if(this.aClass545_Sub2_9487.anInt9784 > 0) {
            var2 = this.anInt9522 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var3 = this.anInt9482 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         } else {
            var2 = this.anInt9522 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var3 = this.anInt9482 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         }

         int var4;
         int var5;
         if(this.aClass545_Sub2_9487.anInt9687 > 0) {
            var4 = this.anInt9519 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var5 = this.anInt9525 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         } else {
            var4 = this.anInt9519 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var5 = this.anInt9525 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         }

         int var6 = var3 - var2 + 1;
         int var7 = var5 - var4 + 1;
         Class225_Sub14_Sub16_Sub1 var8 = (Class225_Sub14_Sub16_Sub1)var1;
         Class225_Sub14_Sub16_Sub1 var9;
         if(var8 != null && var8.method16449(var6, var7)) {
            var9 = var8;
            var8.method16447();
         } else {
            var9 = new Class225_Sub14_Sub16_Sub1(this.aClass545_Sub2_9487, var6, var7);
         }

         var9.method16448(var2, var4, var3, var5);
         this.method14894(var9);
         return var9;
      }
   }

   boolean method14883() {
      boolean var1 = !this.aClass359_9510.aBool4490;
      boolean var2 = (this.anInt9478 & 55) != 0 && !this.aClass359_9511.aBool4490;
      boolean var3 = !this.aClass359_9513.aBool4490;
      boolean var4 = !this.aClass359_9544.aBool4490;
      if(!var3 && !var1 && !var2 && !var4) {
         return true;
      } else {
         boolean var5 = true;
         Interface35 var6;
         Unsafe var7;
         int var8;
         long var9;
         int var11;
         short var12;
         int var13;
         ByteBuffer var34;
         if(var3 && this.aShortArray9489 != null) {
            if(this.aClass359_9513.anInterface35_4492 == null) {
               this.aClass359_9513.anInterface35_4492 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
            }

            var6 = this.aClass359_9513.anInterface35_4492;
            var6.method220(this.anInt9488 * 12, 12);
            var7 = this.aClass545_Sub2_9487.anUnsafe9632;
            if(var7 != null) {
               var8 = this.anInt9488 * 12;
               var9 = var6.method214(0, var8);

               for(var11 = 0; var11 < this.anInt9488; ++var11) {
                  var12 = this.aShortArray9489[var11];
                  var7.putFloat(var9, (float)this.anIntArray9483[var12]);
                  var9 += 4L;
                  var7.putFloat(var9, (float)this.anIntArray9484[var12]);
                  var9 += 4L;
                  var7.putFloat(var9, (float)this.anIntArray9512[var12]);
                  var9 += 4L;
               }

               var6.method215();
            } else {
               var34 = this.aClass545_Sub2_9487.aByteBuffer9763;
               var34.clear();

               for(var13 = 0; var13 < this.anInt9488; ++var13) {
                  var34.putFloat((float)this.anIntArray9483[this.aShortArray9489[var13]]);
                  var34.putFloat((float)this.anIntArray9484[this.aShortArray9489[var13]]);
                  var34.putFloat((float)this.anIntArray9512[this.aShortArray9489[var13]]);
               }

               var6.method217(0, var34.position(), this.aClass545_Sub2_9487.aLong9730);
            }

            this.aClass359_9513.anInterface35_4491 = var6;
            this.aClass359_9513.aBool4490 = true;
         }

         float var17;
         int var18;
         float var21;
         float var22;
         short[] var38;
         int var45;
         float var51;
         float var50;
         if(var1) {
            if(this.aClass359_9510.anInterface35_4492 == null) {
               this.aClass359_9510.anInterface35_4492 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
            }

            var6 = this.aClass359_9510.anInterface35_4492;
            var6.method220(this.anInt9488 * 4, 4);
            var7 = this.aClass545_Sub2_9487.anUnsafe9632;
            float var23;
            int var27;
            short[] var37;
            if(var7 != null) {
               var8 = this.anInt9488 * 4;
               var9 = var6.method214(0, var8);
               if((this.anInt9478 & 55) == 0) {
                  short[] var14;
                  byte[] var15;
                  short[] var36;
                  if(this.aClass370_9497 != null) {
                     var37 = this.aClass370_9497.aShortArray4625;
                     var36 = this.aClass370_9497.aShortArray4626;
                     var14 = this.aClass370_9497.aShortArray4628;
                     var15 = this.aClass370_9497.aByteArray4627;
                  } else {
                     var37 = this.aShortArray9491;
                     var36 = this.aShortArray9492;
                     var14 = this.aShortArray9504;
                     var15 = this.aByteArray9494;
                  }

                  float var16 = this.aClass545_Sub2_9487.aFloat9705 * 768.0F / (float)this.aShort9474;
                  var17 = this.aClass545_Sub2_9487.aFloat9706 * 768.0F / (float)this.aShort9474;

                  for(var18 = 0; var18 < this.anInt9488; ++var18) {
                     short var19 = this.aShortArray9523[var18];
                     int var20 = this.method14891(this.aShortArray9476[var19] & '\uffff', this.aShortArray9505[var19], this.aShort9479);
                     var21 = (float)(var20 >> 16 & 255) * this.aClass545_Sub2_9487.aFloat9701;
                     var22 = (float)(var20 >> 8 & 255) * this.aClass545_Sub2_9487.aFloat9702;
                     var23 = (float)(var20 & 255) * this.aClass545_Sub2_9487.aFloat9703;
                     byte var24 = var15[var18];
                     float var25;
                     if(var24 == 0) {
                        var25 = (this.aClass545_Sub2_9487.aFloatArray9712[0] * (float)var37[var18] + this.aClass545_Sub2_9487.aFloatArray9712[1] * (float)var36[var18] + this.aClass545_Sub2_9487.aFloatArray9712[2] * (float)var14[var18]) * 0.0026041667F;
                     } else {
                        var25 = (this.aClass545_Sub2_9487.aFloatArray9712[0] * (float)var37[var18] + this.aClass545_Sub2_9487.aFloatArray9712[1] * (float)var36[var18] + this.aClass545_Sub2_9487.aFloatArray9712[2] * (float)var14[var18]) / ((float)var24 * 256.0F);
                     }

                     float var26 = this.aClass545_Sub2_9487.aFloat9760 + var25 * (var25 < 0.0F?var17:var16);
                     var27 = (int)(var21 * var26);
                     if(var27 < 0) {
                        var27 = 0;
                     } else if(var27 > 255) {
                        var27 = 255;
                     }

                     int var28 = (int)(var22 * var26);
                     if(var28 < 0) {
                        var28 = 0;
                     } else if(var28 > 255) {
                        var28 = 255;
                     }

                     int var29 = (int)(var23 * var26);
                     if(var29 < 0) {
                        var29 = 0;
                     } else if(var29 > 255) {
                        var29 = 255;
                     }

                     var7.putInt(var9, 255 - this.aByteArray9501[var19] << 24 | var27 << 16 | var28 << 8 | var29);
                     var9 += 4L;
                  }
               } else {
                  for(var11 = 0; var11 < this.anInt9488; ++var11) {
                     var12 = this.aShortArray9523[var11];
                     int var41 = 255 - this.aByteArray9501[var12] << 24 | this.method14891(this.aShortArray9476[var12] & '\uffff', this.aShortArray9505[var12], this.aShort9479);
                     var7.putInt(var9, var41);
                     var9 += 4L;
                  }
               }

               var6.method215();
            } else {
               var34 = this.aClass545_Sub2_9487.aByteBuffer9763;
               var34.clear();
               if((this.anInt9478 & 55) == 0) {
                  short[] var30;
                  byte[] var39;
                  if(this.aClass370_9497 != null) {
                     var38 = this.aClass370_9497.aShortArray4625;
                     var30 = this.aClass370_9497.aShortArray4626;
                     var37 = this.aClass370_9497.aShortArray4628;
                     var39 = this.aClass370_9497.aByteArray4627;
                  } else {
                     var38 = this.aShortArray9491;
                     var30 = this.aShortArray9492;
                     var37 = this.aShortArray9504;
                     var39 = this.aByteArray9494;
                  }

                  float var48 = this.aClass545_Sub2_9487.aFloat9705 * 768.0F / (float)this.aShort9474;
                  float var46 = this.aClass545_Sub2_9487.aFloat9706 * 768.0F / (float)this.aShort9474;

                  for(var45 = 0; var45 < this.anInt9488; ++var45) {
                     short var49 = this.aShortArray9523[var45];
                     var18 = this.method14891(this.aShortArray9476[var49] & '\uffff', this.aShortArray9505[var49], this.aShort9479);
                     var50 = (float)(var18 >> 16 & 255) * this.aClass545_Sub2_9487.aFloat9701;
                     var51 = (float)(var18 >> 8 & 255) * this.aClass545_Sub2_9487.aFloat9702;
                     var21 = (float)(var18 & 255) * this.aClass545_Sub2_9487.aFloat9703;
                     byte var53 = var39[var45];
                     if(var53 == 0) {
                        var23 = (this.aClass545_Sub2_9487.aFloatArray9712[0] * (float)var38[var45] + this.aClass545_Sub2_9487.aFloatArray9712[1] * (float)var30[var45] + this.aClass545_Sub2_9487.aFloatArray9712[2] * (float)var37[var45]) * 0.0026041667F;
                     } else {
                        var23 = (this.aClass545_Sub2_9487.aFloatArray9712[0] * (float)var38[var45] + this.aClass545_Sub2_9487.aFloatArray9712[1] * (float)var30[var45] + this.aClass545_Sub2_9487.aFloatArray9712[2] * (float)var37[var45]) / ((float)var53 * 256.0F);
                     }

                     float var55 = this.aClass545_Sub2_9487.aFloat9760 + var23 * (var23 < 0.0F?var46:var48);
                     int var54 = (int)(var50 * var55);
                     if(var54 < 0) {
                        var54 = 0;
                     } else if(var54 > 255) {
                        var54 = 255;
                     }

                     int var56 = (int)(var51 * var55);
                     if(var56 < 0) {
                        var56 = 0;
                     } else if(var56 > 255) {
                        var56 = 255;
                     }

                     var27 = (int)(var21 * var55);
                     if(var27 < 0) {
                        var27 = 0;
                     } else if(var27 > 255) {
                        var27 = 255;
                     }

                     var34.putInt(255 - this.aByteArray9501[var49] << 24 | var54 << 16 | var56 << 8 | var27);
                  }
               } else {
                  for(var13 = 0; var13 < this.anInt9488; ++var13) {
                     short var57 = this.aShortArray9523[var13];
                     var11 = 255 - this.aByteArray9501[var57] << 24 | this.method14891(this.aShortArray9476[var57] & '\uffff', this.aShortArray9505[var57], this.aShort9479);
                     var34.putInt(var11);
                  }
               }

               var6.method217(0, var34.position(), this.aClass545_Sub2_9487.aLong9730);
            }

            this.aClass359_9510.anInterface35_4491 = var6;
            this.aClass359_9510.aBool4490 = true;
         }

         if(var2) {
            if(this.aClass359_9511.anInterface35_4492 == null) {
               this.aClass359_9511.anInterface35_4492 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
            }

            var6 = this.aClass359_9511.anInterface35_4492;
            var6.method220(this.anInt9488 * 12, 12);
            short[] var35;
            short[] var33;
            byte[] var58;
            if(this.aClass370_9497 != null) {
               var33 = this.aClass370_9497.aShortArray4625;
               var35 = this.aClass370_9497.aShortArray4626;
               var38 = this.aClass370_9497.aShortArray4628;
               var58 = this.aClass370_9497.aByteArray4627;
            } else {
               var33 = this.aShortArray9491;
               var35 = this.aShortArray9492;
               var38 = this.aShortArray9504;
               var58 = this.aByteArray9494;
            }

            float var42 = 3.0F / (float)this.aShort9474;
            float var40 = 3.0F / (float)(this.aShort9474 + this.aShort9474 / 2);
            Unsafe var47 = this.aClass545_Sub2_9487.anUnsafe9632;
            if(var47 != null) {
               int var44 = this.anInt9488 * 12;
               long var31 = var6.method214(0, var44);

               for(var18 = 0; var18 < this.anInt9488; ++var18) {
                  var22 = var58[var18] == 0?var40:var42 / (float)var58[var18];
                  var50 = (float)var33[var18] * var22;
                  var51 = (float)var35[var18] * var22;
                  var21 = (float)var38[var18] * var22;
                  var47.putFloat(var31, var50);
                  var31 += 4L;
                  var47.putFloat(var31, var51);
                  var31 += 4L;
                  var47.putFloat(var31, var21);
                  var31 += 4L;
               }

               var6.method215();
            } else {
               ByteBuffer var43 = this.aClass545_Sub2_9487.aByteBuffer9763;
               var43.clear();

               for(var45 = 0; var45 < this.anInt9488; ++var45) {
                  var51 = var58[var45] == 0?var40:var42 / (float)var58[var45];
                  var17 = (float)var33[var45] * var51;
                  float var52 = (float)var35[var45] * var51;
                  var50 = (float)var38[var45] * var51;
                  var43.putFloat(var17);
                  var43.putFloat(var52);
                  var43.putFloat(var50);
               }

               var6.method217(0, var43.position(), this.aClass545_Sub2_9487.aLong9730);
            }

            this.aClass359_9511.anInterface35_4491 = var6;
            this.aClass359_9511.aBool4490 = true;
         }

         if(var4) {
            if(this.aClass359_9544.anInterface35_4492 == null) {
               this.aClass359_9544.anInterface35_4492 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
            }

            var6 = this.aClass359_9544.anInterface35_4492;
            var6.method220(this.anInt9488 * 8, 8);
            var7 = this.aClass545_Sub2_9487.anUnsafe9632;
            if(var7 != null) {
               var8 = this.anInt9488 * 8;
               var9 = var6.method214(0, var8);

               for(var11 = 0; var11 < this.anInt9488; ++var11) {
                  var7.putFloat(var9, this.aFloatArray9495[var11]);
                  var9 += 4L;
                  var7.putFloat(var9, this.aFloatArray9496[var11]);
                  var9 += 4L;
               }

               var6.method215();
            } else {
               var34 = this.aClass545_Sub2_9487.aByteBuffer9763;
               var34.clear();

               for(var13 = 0; var13 < this.anInt9488; ++var13) {
                  var34.putFloat(this.aFloatArray9495[var13]);
                  var34.putFloat(this.aFloatArray9496[var13]);
               }

               var6.method217(0, var34.position(), this.aClass545_Sub2_9487.aLong9730);
            }

            this.aClass359_9544.anInterface35_4491 = var6;
            this.aClass359_9544.aBool4490 = true;
         }

         return var5;
      }
   }

   public int AA() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9519;
   }

   public void method12075(Class328 var1) {
      Class317 var2 = this.aClass545_Sub2_9487.aClass317_9649;
      var2.method5613(var1);
      int var3;
      if(this.aClass80Array9531 != null) {
         for(var3 = 0; var3 < this.aClass80Array9531.length; ++var3) {
            Class80 var4 = this.aClass80Array9531[var3];
            Class80 var5 = var4;
            if(var4.aClass80_813 != null) {
               var5 = var4.aClass80_813;
            }

            var5.anInt818 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * -106916481;
            var5.anInt819 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * 1242813859;
            var5.anInt820 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * -1262846693;
            var5.anInt821 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * 1390482017;
            var5.anInt822 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * 113198053;
            var5.anInt812 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * -345033777;
            var5.anInt814 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * 1898027;
            var5.anInt825 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * 572237437;
            var5.anInt826 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * -1729217923;
         }
      }

      if(this.aClass166Array9500 != null) {
         for(var3 = 0; var3 < this.aClass166Array9500.length; ++var3) {
            Class166 var6 = this.aClass166Array9500[var3];
            Class166 var7 = var6;
            if(var6.aClass166_2016 != null) {
               var7 = var6.aClass166_2016;
            }

            if(var6.aClass317_2019 != null) {
               var6.aClass317_2019.method5609(var2);
            } else {
               var6.aClass317_2019 = new Class317(var2);
            }

            var7.anInt2018 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -404024063;
            var7.anInt2015 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -212113837;
            var7.anInt2020 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -306574699;
         }
      }

   }

   void method12093(int var1, int[] var2, int var3, int var4, int var5, int var6, boolean var7) {
      int var8 = var2.length;
      int var9;
      int var10;
      int var14;
      int var23;
      int[] var25;
      int var24;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var9 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var10 = 0; var10 < var8; ++var10) {
            var23 = var2[var10];
            if(var23 < this.anIntArrayArray9486.length) {
               var25 = this.anIntArrayArray9486[var23];

               for(var24 = 0; var24 < var25.length; ++var24) {
                  var14 = var25[var24];
                  this.anInt9524 += this.anIntArray9483[var14];
                  this.anInt9545 += this.anIntArray9484[var14];
                  this.anInt9546 += this.anIntArray9512[var14];
                  ++var9;
               }
            }
         }

         if(var9 > 0) {
            this.anInt9524 = this.anInt9524 / var9 + var3;
            this.anInt9545 = this.anInt9545 / var9 + var4;
            this.anInt9546 = this.anInt9546 / var9 + var5;
         } else {
            this.anInt9524 = var3;
            this.anInt9545 = var4;
            this.anInt9546 = var5;
         }

      } else {
         int[] var11;
         int var12;
         if(var1 == 1) {
            var3 <<= 4;
            var4 <<= 4;
            var5 <<= 4;

            for(var9 = 0; var9 < var8; ++var9) {
               var10 = var2[var9];
               if(var10 < this.anIntArrayArray9486.length) {
                  var11 = this.anIntArrayArray9486[var10];

                  for(var12 = 0; var12 < var11.length; ++var12) {
                     var24 = var11[var12];
                     this.anIntArray9483[var24] += var3;
                     this.anIntArray9484[var24] += var4;
                     this.anIntArray9512[var24] += var5;
                  }
               }
            }

         } else {
            int var15;
            int var17;
            int var16;
            int var18;
            if(var1 == 2) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9486.length) {
                     var11 = this.anIntArrayArray9486[var10];
                     if((var6 & 1) == 0) {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           this.anIntArray9483[var24] -= this.anInt9524;
                           this.anIntArray9484[var24] -= this.anInt9545;
                           this.anIntArray9512[var24] -= this.anInt9546;
                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9484[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = this.anIntArray9484[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9484[var24] * var15 - this.anIntArray9512[var24] * var14 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9484[var24] * var14 + this.anIntArray9512[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = var16;
                           }

                           if(var4 != 0) {
                              var14 = Class312.anIntArray3943[var4];
                              var15 = Class312.anIntArray3956[var4];
                              var16 = this.anIntArray9512[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9512[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           this.anIntArray9483[var24] += this.anInt9524;
                           this.anIntArray9484[var24] += this.anInt9545;
                           this.anIntArray9512[var24] += this.anInt9546;
                        }
                     } else {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           this.anIntArray9483[var24] -= this.anInt9524;
                           this.anIntArray9484[var24] -= this.anInt9545;
                           this.anIntArray9512[var24] -= this.anInt9546;
                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9484[var24] * var15 - this.anIntArray9512[var24] * var14 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9484[var24] * var14 + this.anIntArray9512[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = var16;
                           }

                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9484[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = this.anIntArray9484[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           if(var4 != 0) {
                              var14 = Class312.anIntArray3943[var4];
                              var15 = Class312.anIntArray3956[var4];
                              var16 = this.anIntArray9512[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9512[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           this.anIntArray9483[var24] += this.anInt9524;
                           this.anIntArray9484[var24] += this.anInt9545;
                           this.anIntArray9512[var24] += this.anInt9546;
                        }
                     }
                  }
               }

               if(var7) {
                  for(var9 = 0; var9 < var8; ++var9) {
                     var10 = var2[var9];
                     if(var10 < this.anIntArrayArray9486.length) {
                        var11 = this.anIntArrayArray9486[var10];

                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           var14 = this.anIntArray9529[var24];
                           var15 = this.anIntArray9529[var24 + 1];

                           for(var16 = var14; var16 < var15; ++var16) {
                              var17 = this.aShortArray9530[var16] - 1;
                              if(var17 == -1) {
                                 break;
                              }

                              int var19;
                              int var20;
                              if(var5 != 0) {
                                 var18 = Class312.anIntArray3943[var5];
                                 var19 = Class312.anIntArray3956[var5];
                                 var20 = this.aShortArray9492[var17] * var18 + this.aShortArray9491[var17] * var19 + 16383 >> 14;
                                 this.aShortArray9492[var17] = (short)(this.aShortArray9492[var17] * var19 - this.aShortArray9491[var17] * var18 + 16383 >> 14);
                                 this.aShortArray9491[var17] = (short)var20;
                              }

                              if(var3 != 0) {
                                 var18 = Class312.anIntArray3943[var3];
                                 var19 = Class312.anIntArray3956[var3];
                                 var20 = this.aShortArray9492[var17] * var19 - this.aShortArray9504[var17] * var18 + 16383 >> 14;
                                 this.aShortArray9504[var17] = (short)(this.aShortArray9492[var17] * var18 + this.aShortArray9504[var17] * var19 + 16383 >> 14);
                                 this.aShortArray9492[var17] = (short)var20;
                              }

                              if(var4 != 0) {
                                 var18 = Class312.anIntArray3943[var4];
                                 var19 = Class312.anIntArray3956[var4];
                                 var20 = this.aShortArray9504[var17] * var18 + this.aShortArray9491[var17] * var19 + 16383 >> 14;
                                 this.aShortArray9504[var17] = (short)(this.aShortArray9504[var17] * var19 - this.aShortArray9491[var17] * var18 + 16383 >> 14);
                                 this.aShortArray9491[var17] = (short)var20;
                              }
                           }
                        }
                     }
                  }

                  this.method14877();
               }

            } else if(var1 == 3) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9486.length) {
                     var11 = this.anIntArrayArray9486[var10];

                     for(var12 = 0; var12 < var11.length; ++var12) {
                        var24 = var11[var12];
                        this.anIntArray9483[var24] -= this.anInt9524;
                        this.anIntArray9484[var24] -= this.anInt9545;
                        this.anIntArray9512[var24] -= this.anInt9546;
                        this.anIntArray9483[var24] = this.anIntArray9483[var24] * var3 >> 7;
                        this.anIntArray9484[var24] = this.anIntArray9484[var24] * var4 >> 7;
                        this.anIntArray9512[var24] = this.anIntArray9512[var24] * var5 >> 7;
                        this.anIntArray9483[var24] += this.anInt9524;
                        this.anIntArray9484[var24] += this.anInt9545;
                        this.anIntArray9512[var24] += this.anInt9546;
                     }
                  }
               }

            } else {
               boolean var21;
               Class61 var22;
               Class360 var26;
               if(var1 == 5) {
                  if(this.anIntArrayArray9506 != null) {
                     var21 = false;

                     for(var10 = 0; var10 < var8; ++var10) {
                        var23 = var2[var10];
                        if(var23 < this.anIntArrayArray9506.length) {
                           var25 = this.anIntArrayArray9506[var23];

                           for(var24 = 0; var24 < var25.length; ++var24) {
                              var14 = var25[var24];
                              var15 = (this.aByteArray9501[var14] & 255) + var3 * 8;
                              if(var15 < 0) {
                                 var15 = 0;
                              } else if(var15 > 255) {
                                 var15 = 255;
                              }

                              this.aByteArray9501[var14] = (byte)var15;
                           }

                           var21 |= var25.length > 0;
                        }
                     }

                     if(var21) {
                        if(this.aClass61Array9481 != null) {
                           for(var10 = 0; var10 < this.anInt9533; ++var10) {
                              var22 = this.aClass61Array9481[var10];
                              var26 = this.aClass360Array9535[var10];
                              var26.anInt4496 = var26.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var22.anInt565] & 255) << 24;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else if(var1 == 7) {
                  if(this.anIntArrayArray9506 != null) {
                     var21 = false;

                     for(var10 = 0; var10 < var8; ++var10) {
                        var23 = var2[var10];
                        if(var23 < this.anIntArrayArray9506.length) {
                           var25 = this.anIntArrayArray9506[var23];

                           for(var24 = 0; var24 < var25.length; ++var24) {
                              var14 = var25[var24];
                              var15 = this.aShortArray9476[var14] & '\uffff';
                              var16 = var15 >> 10 & 63;
                              var17 = var15 >> 7 & 7;
                              var18 = var15 & 127;
                              var16 = var16 + var3 & 63;
                              var17 += var4 / 4;
                              if(var17 < 0) {
                                 var17 = 0;
                              } else if(var17 > 7) {
                                 var17 = 7;
                              }

                              var18 += var5;
                              if(var18 < 0) {
                                 var18 = 0;
                              } else if(var18 > 127) {
                                 var18 = 127;
                              }

                              this.aShortArray9476[var14] = (short)(var16 << 10 | var17 << 7 | var18);
                           }

                           var21 |= var25.length > 0;
                        }
                     }

                     if(var21) {
                        if(this.aClass61Array9481 != null) {
                           for(var10 = 0; var10 < this.anInt9533; ++var10) {
                              var22 = this.aClass61Array9481[var10];
                              var26 = this.aClass360Array9535[var10];
                              var26.anInt4496 = var26.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var22.anInt565] & '\uffff'] & 16777215;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else {
                  Class360 var13;
                  if(var1 == 8) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4497 += var3;
                                 var13.anInt4495 += var4;
                              }
                           }
                        }
                     }

                  } else if(var1 == 10) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4493 = var13.anInt4493 * var3 >> 7;
                                 var13.anInt4494 = var13.anInt4494 * var4 >> 7;
                              }
                           }
                        }
                     }

                  } else if(var1 == 9) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4498 = var13.anInt4498 + var3 & 16383;
                              }
                           }
                        }
                     }

                  }
               }
            }
         }
      }
   }

   void ka() {
      for(int var1 = 0; var1 < this.anInt9503; ++var1) {
         this.anIntArray9483[var1] = this.anIntArray9483[var1] + 7 >> 4;
         this.anIntArray9484[var1] = this.anIntArray9484[var1] + 7 >> 4;
         this.anIntArray9512[var1] = this.anIntArray9512[var1] + 7 >> 4;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void method12114(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   short method14884(Class96 var1, int var2, int var3, long var4, int var6, int var7, int var8, int var9, float var10, float var11) {
      int var12 = this.anIntArray9529[var2];
      int var13 = this.anIntArray9529[var2 + 1];
      int var14 = 0;

      for(int var15 = var12; var15 < var13; ++var15) {
         short var16 = this.aShortArray9530[var15];
         if(var16 == 0) {
            var14 = var15;
            break;
         }

         if(this.aLongArray9527[var15] == var4) {
            return (short)(var16 - 1);
         }
      }

      this.aShortArray9530[var14] = (short)(this.anInt9488 + 1);
      this.aLongArray9527[var14] = var4;
      this.aShortArray9523[this.anInt9488] = (short)var3;
      this.aShortArray9489[this.anInt9488] = (short)var2;
      this.aShortArray9491[this.anInt9488] = (short)var6;
      this.aShortArray9492[this.anInt9488] = (short)var7;
      this.aShortArray9504[this.anInt9488] = (short)var8;
      this.aByteArray9494[this.anInt9488] = (byte)var9;
      this.aFloatArray9495[this.anInt9488] = var10;
      this.aFloatArray9496[this.anInt9488] = var11;
      return (short)(this.anInt9488++);
   }

   public Class80[] method12076() {
      return this.aClass80Array9531;
   }

   public void p(int var1) {
      this.aShort9479 = (short)var1;
      this.method14910();
   }

   public boolean method12070(int var1, int var2, Class328 var3, boolean var4, int var5) {
      return this.method14885(var1, var2, 0, 0, var3, var4, var5);
   }

   boolean method14885(int var1, int var2, int var3, int var4, Class328 var5, boolean var6, int var7) {
      Class317 var8 = this.aClass545_Sub2_9487.aClass317_9649;
      var8.method5613(var5);
      var8.method5612(this.aClass545_Sub2_9487.aClass317_9663);
      boolean var9 = false;
      float var10 = Float.MAX_VALUE;
      float var11 = -3.4028235E38F;
      float var12 = Float.MAX_VALUE;
      float var13 = -3.4028235E38F;
      if(!this.aBool9493) {
         this.method14876();
      }

      int var14 = this.anInt9482 - this.anInt9522 >> 1;
      int var15 = this.anInt9521 - this.anInt9520 >> 1;
      int var16 = this.anInt9525 - this.anInt9519 >> 1;
      int var17 = this.anInt9522 + var14;
      int var18 = this.anInt9520 + var15;
      int var19 = this.anInt9519 + var16;
      int var20 = var17 - (var14 << var7);
      int var21 = var18 - (var15 << var7);
      int var22 = var19 - (var16 << var7);
      int var23 = var17 + (var14 << var7);
      int var24 = var18 + (var15 << var7);
      int var25 = var19 + (var16 << var7);
      this.anIntArray9541[0] = var20;
      this.anIntArray9542[0] = var21;
      this.anIntArray9543[0] = var22;
      this.anIntArray9541[1] = var23;
      this.anIntArray9542[1] = var21;
      this.anIntArray9543[1] = var22;
      this.anIntArray9541[2] = var20;
      this.anIntArray9542[2] = var24;
      this.anIntArray9543[2] = var22;
      this.anIntArray9541[3] = var23;
      this.anIntArray9542[3] = var24;
      this.anIntArray9543[3] = var22;
      this.anIntArray9541[4] = var20;
      this.anIntArray9542[4] = var21;
      this.anIntArray9543[4] = var25;
      this.anIntArray9541[5] = var23;
      this.anIntArray9542[5] = var21;
      this.anIntArray9543[5] = var25;
      this.anIntArray9541[6] = var20;
      this.anIntArray9542[6] = var24;
      this.anIntArray9543[6] = var25;
      this.anIntArray9541[7] = var23;
      this.anIntArray9542[7] = var24;
      this.anIntArray9543[7] = var25;

      float var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      float var32;
      float var33;
      for(var26 = 0; var26 < 8; ++var26) {
         var27 = (float)this.anIntArray9541[var26];
         var28 = (float)this.anIntArray9542[var26];
         var29 = (float)this.anIntArray9543[var26];
         var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
         var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
         if(var30 >= -var31) {
            var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
            var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
            float var34 = this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31;
            float var35 = this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31;
            if(var34 < var10) {
               var10 = var34;
            }

            if(var34 > var11) {
               var11 = var34;
            }

            if(var35 < var12) {
               var12 = var35;
            }

            if(var35 > var13) {
               var13 = var35;
            }

            var9 = true;
         }
      }

      var26 = var1 + var3;
      int var41 = var2 + var4;
      if(var9 && (float)var26 > var10 && (float)var1 < var11 && (float)var41 > var12 && (float)var2 < var13) {
         if(var6) {
            return true;
         }

         if(this.anIntArray9539.length < this.anInt9488) {
            this.anIntArray9539 = new int[this.anInt9488];
            this.anIntArray9540 = new int[this.anInt9488];
         }

         int var40;
         for(var40 = 0; var40 < this.anInt9537; ++var40) {
            var27 = (float)this.anIntArray9483[var40];
            var28 = (float)this.anIntArray9484[var40];
            var29 = (float)this.anIntArray9512[var40];
            var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
            var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
            int var38;
            int var39;
            int var36;
            int var37;
            if(var30 >= -var31) {
               var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
               var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[var39] = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31);
                  this.anIntArray9540[var39] = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31);
               }
            } else {
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[this.aShortArray9530[var38] - 1] = -999999;
               }
            }
         }

         for(var40 = 0; var40 < this.anInt9498; ++var40) {
            if(this.anIntArray9539[this.aShortArray9502[var40]] != -999999 && this.anIntArray9539[this.aShortArray9534[var40]] != -999999 && this.anIntArray9539[this.aShortArray9548[var40]] != -999999 && this.method14886(var1, var2, var26, var41, this.anIntArray9540[this.aShortArray9502[var40]], this.anIntArray9540[this.aShortArray9534[var40]], this.anIntArray9540[this.aShortArray9548[var40]], this.anIntArray9539[this.aShortArray9502[var40]], this.anIntArray9539[this.aShortArray9534[var40]], this.anIntArray9539[this.aShortArray9548[var40]])) {
               return true;
            }
         }
      }

      return false;
   }

   boolean method14886(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   void cu(int var1, int[] var2, int var3, int var4, int var5, boolean var6, int var7, int[] var8) {
      int var9 = var2.length;
      int var10;
      int var11;
      int var15;
      int var51;
      int[] var50;
      int var48;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var48 = var2[var11];
            if(var48 < this.anIntArrayArray9486.length) {
               var50 = this.anIntArrayArray9486[var48];

               for(var51 = 0; var51 < var50.length; ++var51) {
                  var15 = var50[var51];
                  if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var15]) != 0) {
                     this.anInt9524 += this.anIntArray9483[var15];
                     this.anInt9545 += this.anIntArray9484[var15];
                     this.anInt9546 += this.anIntArray9512[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            this.anInt9524 = this.anInt9524 / var10 + var3;
            this.anInt9545 = this.anInt9545 / var10 + var4;
            this.anInt9546 = this.anInt9546 / var10 + var5;
            this.aBool9547 = true;
         } else {
            this.anInt9524 = var3;
            this.anInt9545 = var4;
            this.anInt9546 = var5;
         }

      } else {
         int[] var12;
         int var13;
         if(var1 == 1) {
            if(var8 != null) {
               var10 = var8[0] * var3 + var8[1] * var4 + var8[2] * var5 + 8192 >> 14;
               var11 = var8[3] * var3 + var8[4] * var4 + var8[5] * var5 + 8192 >> 14;
               var48 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var48;
            }

            var3 <<= 4;
            var4 <<= 4;
            var5 <<= 4;

            for(var10 = 0; var10 < var9; ++var10) {
               var11 = var2[var10];
               if(var11 < this.anIntArrayArray9486.length) {
                  var12 = this.anIntArrayArray9486[var11];

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var51 = var12[var13];
                     if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                        this.anIntArray9483[var51] += var3;
                        this.anIntArray9484[var51] += var4;
                        this.anIntArray9512[var51] += var5;
                     }
                  }
               }
            }

         } else {
            int var17;
            int var16;
            int var19;
            int var18;
            int var21;
            int var20;
            int var23;
            int var22;
            int var24;
            int var27;
            int var26;
            int var28;
            int var30;
            int var34;
            int[] var35;
            int var32;
            int var33;
            int var38;
            int var39;
            int var36;
            int var37;
            int var40;
            if(var1 == 2) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  int[] var53 = new int[9];
                  var17 = Class312.anIntArray3956[var3];
                  var18 = Class312.anIntArray3943[var3];
                  var19 = Class312.anIntArray3956[var4];
                  var20 = Class312.anIntArray3943[var4];
                  var21 = Class312.anIntArray3956[var5];
                  var22 = Class312.anIntArray3943[var5];
                  var23 = var18 * var21 + 8192 >> 14;
                  var24 = var18 * var22 + 8192 >> 14;
                  var53[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var53[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var53[2] = var20 * var17 + 8192 >> 14;
                  var53[3] = var17 * var22 + 8192 >> 14;
                  var53[4] = var17 * var21 + 8192 >> 14;
                  var53[5] = -var18;
                  var53[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var53[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var53[8] = var19 * var17 + 8192 >> 14;
                  int var54 = var53[0] * -this.anInt9524 + var53[1] * -this.anInt9545 + var53[2] * -this.anInt9546 + 8192 >> 14;
                  var26 = var53[3] * -this.anInt9524 + var53[4] * -this.anInt9545 + var53[5] * -this.anInt9546 + 8192 >> 14;
                  var27 = var53[6] * -this.anInt9524 + var53[7] * -this.anInt9545 + var53[8] * -this.anInt9546 + 8192 >> 14;
                  var28 = var54 + this.anInt9524;
                  int var55 = var26 + this.anInt9545;
                  var30 = var27 + this.anInt9546;
                  int[] var56 = new int[9];

                  for(var32 = 0; var32 < 3; ++var32) {
                     for(var33 = 0; var33 < 3; ++var33) {
                        var34 = 0;

                        for(int var57 = 0; var57 < 3; ++var57) {
                           var34 += var53[var32 * 3 + var57] * var8[var33 * 3 + var57];
                        }

                        var56[var32 * 3 + var33] = var34 + 8192 >> 14;
                     }
                  }

                  var32 = var53[0] * var13 + var53[1] * var51 + var53[2] * var15 + 8192 >> 14;
                  var33 = var53[3] * var13 + var53[4] * var51 + var53[5] * var15 + 8192 >> 14;
                  var34 = var53[6] * var13 + var53[7] * var51 + var53[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var55;
                  var34 += var30;
                  var35 = new int[9];

                  for(var36 = 0; var36 < 3; ++var36) {
                     for(var37 = 0; var37 < 3; ++var37) {
                        var38 = 0;

                        for(var39 = 0; var39 < 3; ++var39) {
                           var38 += var8[var36 * 3 + var39] * var56[var37 + var39 * 3];
                        }

                        var35[var36 * 3 + var37] = var38 + 8192 >> 14;
                     }
                  }

                  var36 = var8[0] * var32 + var8[1] * var33 + var8[2] * var34 + 8192 >> 14;
                  var37 = var8[3] * var32 + var8[4] * var33 + var8[5] * var34 + 8192 >> 14;
                  var38 = var8[6] * var32 + var8[7] * var33 + var8[8] * var34 + 8192 >> 14;
                  var36 += var10;
                  var37 += var11;
                  var38 += var48;

                  for(var39 = 0; var39 < var9; ++var39) {
                     var40 = var2[var39];
                     if(var40 < this.anIntArrayArray9486.length) {
                        int[] var41 = this.anIntArrayArray9486[var40];

                        for(int var42 = 0; var42 < var41.length; ++var42) {
                           int var43 = var41[var42];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var43]) != 0) {
                              int var44 = var35[0] * this.anIntArray9483[var43] + var35[1] * this.anIntArray9484[var43] + var35[2] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var45 = var35[3] * this.anIntArray9483[var43] + var35[4] * this.anIntArray9484[var43] + var35[5] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var46 = var35[6] * this.anIntArray9483[var43] + var35[7] * this.anIntArray9484[var43] + var35[8] * this.anIntArray9512[var43] + 8192 >> 14;
                              var44 += var36;
                              var45 += var37;
                              var46 += var38;
                              this.anIntArray9483[var43] = var44;
                              this.anIntArray9484[var43] = var45;
                              this.anIntArray9512[var43] = var46;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9484[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = this.anIntArray9484[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              if(var3 != 0) {
                                 var15 = Class312.anIntArray3943[var3];
                                 var16 = Class312.anIntArray3956[var3];
                                 var17 = this.anIntArray9484[var51] * var16 - this.anIntArray9512[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9484[var51] * var15 + this.anIntArray9512[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = var17;
                              }

                              if(var4 != 0) {
                                 var15 = Class312.anIntArray3943[var4];
                                 var16 = Class312.anIntArray3956[var4];
                                 var17 = this.anIntArray9512[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9512[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }

                  if(var6) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9486.length) {
                           var12 = this.anIntArrayArray9486[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var51 = var12[var13];
                              if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                                 var15 = this.anIntArray9529[var51];
                                 var16 = this.anIntArray9529[var51 + 1];

                                 for(var17 = var15; var17 < var16; ++var17) {
                                    var18 = this.aShortArray9530[var17] - 1;
                                    if(var18 == -1) {
                                       break;
                                    }

                                    if(var5 != 0) {
                                       var19 = Class312.anIntArray3943[var5];
                                       var20 = Class312.anIntArray3956[var5];
                                       var21 = this.aShortArray9492[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9492[var18] = (short)(this.aShortArray9492[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }

                                    if(var3 != 0) {
                                       var19 = Class312.anIntArray3943[var3];
                                       var20 = Class312.anIntArray3956[var3];
                                       var21 = this.aShortArray9492[var18] * var20 - this.aShortArray9504[var18] * var19 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9492[var18] * var19 + this.aShortArray9504[var18] * var20 + 16383 >> 14);
                                       this.aShortArray9492[var18] = (short)var21;
                                    }

                                    if(var4 != 0) {
                                       var19 = Class312.anIntArray3943[var4];
                                       var20 = Class312.anIntArray3956[var4];
                                       var21 = this.aShortArray9504[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9504[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }
                                 }
                              }
                           }
                        }
                     }

                     this.method14877();
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -this.anInt9524 + 8192 >> 14;
                  var20 = var17 * -this.anInt9545 + 8192 >> 14;
                  var21 = var18 * -this.anInt9546 + 8192 >> 14;
                  var22 = var19 + this.anInt9524;
                  var23 = var20 + this.anInt9545;
                  var24 = var21 + this.anInt9546;
                  int[] var25 = new int[]{var16 * var8[0] + 8192 >> 14, var16 * var8[3] + 8192 >> 14, var16 * var8[6] + 8192 >> 14, var17 * var8[1] + 8192 >> 14, var17 * var8[4] + 8192 >> 14, var17 * var8[7] + 8192 >> 14, var18 * var8[2] + 8192 >> 14, var18 * var8[5] + 8192 >> 14, var18 * var8[8] + 8192 >> 14};
                  var26 = var16 * var13 + 8192 >> 14;
                  var27 = var17 * var51 + 8192 >> 14;
                  var28 = var18 * var15 + 8192 >> 14;
                  var26 += var22;
                  var27 += var23;
                  var28 += var24;
                  int[] var29 = new int[9];

                  int var31;
                  for(var30 = 0; var30 < 3; ++var30) {
                     for(var31 = 0; var31 < 3; ++var31) {
                        var32 = 0;

                        for(var33 = 0; var33 < 3; ++var33) {
                           var32 += var8[var30 * 3 + var33] * var25[var31 + var33 * 3];
                        }

                        var29[var30 * 3 + var31] = var32 + 8192 >> 14;
                     }
                  }

                  var30 = var8[0] * var26 + var8[1] * var27 + var8[2] * var28 + 8192 >> 14;
                  var31 = var8[3] * var26 + var8[4] * var27 + var8[5] * var28 + 8192 >> 14;
                  var32 = var8[6] * var26 + var8[7] * var27 + var8[8] * var28 + 8192 >> 14;
                  var30 += var10;
                  var31 += var11;
                  var32 += var48;

                  for(var33 = 0; var33 < var9; ++var33) {
                     var34 = var2[var33];
                     if(var34 < this.anIntArrayArray9486.length) {
                        var35 = this.anIntArrayArray9486[var34];

                        for(var36 = 0; var36 < var35.length; ++var36) {
                           var37 = var35[var36];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var37]) != 0) {
                              var38 = var29[0] * this.anIntArray9483[var37] + var29[1] * this.anIntArray9484[var37] + var29[2] * this.anIntArray9512[var37] + 8192 >> 14;
                              var39 = var29[3] * this.anIntArray9483[var37] + var29[4] * this.anIntArray9484[var37] + var29[5] * this.anIntArray9512[var37] + 8192 >> 14;
                              var40 = var29[6] * this.anIntArray9483[var37] + var29[7] * this.anIntArray9484[var37] + var29[8] * this.anIntArray9512[var37] + 8192 >> 14;
                              var38 += var30;
                              var39 += var31;
                              var40 += var32;
                              this.anIntArray9483[var37] = var38;
                              this.anIntArray9484[var37] = var39;
                              this.anIntArray9512[var37] = var40;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              this.anIntArray9483[var51] = this.anIntArray9483[var51] * var3 >> 7;
                              this.anIntArray9484[var51] = this.anIntArray9484[var51] * var4 >> 7;
                              this.anIntArray9512[var51] = this.anIntArray9512[var51] * var5 >> 7;
                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }
               }

            } else {
               boolean var47;
               Class61 var49;
               Class360 var52;
               if(var1 == 5) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = (this.aByteArray9501[var15] & 255) + var3 * 8;
                                 if(var16 < 0) {
                                    var16 = 0;
                                 } else if(var16 > 255) {
                                    var16 = 255;
                                 }

                                 this.aByteArray9501[var15] = (byte)var16;
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var49.anInt565] & 255) << 24;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else if(var1 == 7) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = this.aShortArray9476[var15] & '\uffff';
                                 var17 = var16 >> 10 & 63;
                                 var18 = var16 >> 7 & 7;
                                 var19 = var16 & 127;
                                 var17 = var17 + var3 & 63;
                                 var18 += var4 / 4;
                                 if(var18 < 0) {
                                    var18 = 0;
                                 } else if(var18 > 7) {
                                    var18 = 7;
                                 }

                                 var19 += var5;
                                 if(var19 < 0) {
                                    var19 = 0;
                                 } else if(var19 > 127) {
                                    var19 = 127;
                                 }

                                 this.aShortArray9476[var15] = (short)(var17 << 10 | var18 << 7 | var19);
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var49.anInt565] & '\uffff'] & 16777215;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else {
                  Class360 var14;
                  if(var1 == 8) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4497 += var3;
                                 var14.anInt4495 += var4;
                              }
                           }
                        }
                     }

                  } else if(var1 == 10) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4493 = var14.anInt4493 * var3 >> 7;
                                 var14.anInt4494 = var14.anInt4494 * var4 >> 7;
                              }
                           }
                        }
                     }

                  } else if(var1 == 9) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4498 = var14.anInt4498 + var3 & 16383;
                              }
                           }
                        }
                     }

                  }
               }
            }
         }
      }
   }

   public int dm() {
      return this.aShort9474;
   }

   public int YA() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9520;
   }

   void method14887(Class328 var1) {
      if(this.anInt9499 != 0) {
         if(this.method14883() && this.method14888()) {
            if(aClass342_9514 != null) {
               ;
            }

            this.aClass545_Sub2_9487.method15088();
            this.aClass545_Sub2_9487.method15106();
            Class68 var2 = this.aClass545_Sub2_9487.aClass68_9778;
            this.aClass545_Sub2_9487.method15078(0, this.aClass359_9513.anInterface35_4491);
            this.aClass545_Sub2_9487.method15078(1, this.aClass359_9510.anInterface35_4491);
            this.aClass545_Sub2_9487.method15078(2, this.aClass359_9544.anInterface35_4491);
            this.aClass545_Sub2_9487.method15079(this.aClass350_9508.anInterface40_4451);
            this.aClass545_Sub2_9487.aClass317_9649.method5613(var1);
            var2.method1441(this.aClass545_Sub2_9487.aClass317_9649);
            var2.aClass317_654.method5733();
            if(this.aClass545_Sub2_9487.aBool9653) {
               Class153 var3 = this.aClass545_Sub2_9487.method15066();
               var2.aClass318_651.method5758(0.0F, 1.0F, 0.0F, (float)(-this.aClass545_Sub2_9487.anInt9744));
               var2.aClass318_651.method5737(3.0F / (float)(var3.anInt1731 * -663176343));
               var2.aClass326_652.method5873((float)(var3.anInt1727 * 1679980725 >> 16 & 255) / 255.0F, (float)(var3.anInt1727 * 1679980725 >> 8 & 255) / 255.0F, (float)(var3.anInt1727 * 1679980725 >> 0 & 255) / 255.0F);
            } else {
               var2.aClass318_651.method5758(0.0F, 0.0F, 0.0F, 0.0F);
               var2.aClass326_652.method5873(0.0F, 0.0F, 0.0F);
            }

            if(this.aClass545_Sub2_9487.anInt9623 > 0) {
               var2.aClass318_643.method5758(0.0F, 0.0F, 1.0F, -this.aClass545_Sub2_9487.aFloat9751);
               var2.aClass326_648.method5873((float)(this.aClass545_Sub2_9487.anInt9748 >> 16 & 255) / 255.0F, (float)(this.aClass545_Sub2_9487.anInt9748 >> 8 & 255) / 255.0F, (float)(this.aClass545_Sub2_9487.anInt9748 >> 0 & 255) / 255.0F);
               this.aClass545_Sub2_9487.aClass317_9649.method5613(var1);
               this.aClass545_Sub2_9487.aClass317_9649.method5627();
               var2.aClass318_651.method5741(this.aClass545_Sub2_9487.aClass317_9649);
               this.aClass545_Sub2_9487.aClass317_9649.method5613(var1);
               this.aClass545_Sub2_9487.aClass317_9649.method5612(this.aClass545_Sub2_9487.aClass317_9766);
               this.aClass545_Sub2_9487.aClass317_9649.method5627();
               var2.aClass318_643.method5741(this.aClass545_Sub2_9487.aClass317_9649);
               var2.aClass318_643.method5737(1.0F / (this.aClass545_Sub2_9487.aFloat9752 - this.aClass545_Sub2_9487.aFloat9751));
            } else {
               var2.aClass318_643.method5758(0.0F, 0.0F, 0.0F, 0.0F);
               var2.aClass326_648.method5873(0.0F, 0.0F, 0.0F);
            }

            int var4;
            int var5;
            int var6;
            if((this.anInt9478 & 55) == 0) {
               this.aClass545_Sub2_9487.method14991(this.aClass545_Sub2_9487.aClass341_9779);
               if(this.aClass545_Sub2_9487.aBool9681) {
                  this.aClass545_Sub2_9487.method15027(false);
               }

               for(int var12 = 0; var12 < this.anIntArray9490.length; ++var12) {
                  var4 = this.anIntArray9526[var12];
                  var5 = this.anIntArray9526[var12 + 1];
                  var6 = this.aShortArray9505[var4] & '\uffff';
                  boolean var7 = false;
                  if(var6 != '\uffff') {
                     var2.anInterface33_645 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var6);
                     Class161 var8 = this.aClass545_Sub2_9487.anInterface24_7370.method113(var6, -250994922);
                     var7 = !Class463_Sub17.method12955(var8.aByte1986, 1673340943);
                     var2.aClass317_654.aFloatArray4000[12] = (float)(this.aClass545_Sub2_9487.anInt9644 % 128000) / 1000.0F * (float)var8.aByte1972 / 64.0F % 1.0F;
                     var2.aClass317_654.aFloatArray4000[13] = (float)(this.aClass545_Sub2_9487.anInt9644 % 128000) / 1000.0F * (float)var8.aByte1993 / 64.0F % 1.0F;
                  } else {
                     var2.anInterface33_645 = this.aClass545_Sub2_9487.anInterface33_9693;
                     float[] var17 = var2.aClass317_654.aFloatArray4000;
                     var2.aClass317_654.aFloatArray4000[13] = 0.0F;
                     var17[12] = 0.0F;
                  }

                  var2.anInt660 = this.anIntArray9490[var12];
                  var2.anInt650 = this.anIntArray9528[var12];
                  var2.anInt662 = var4 * 3;
                  var2.anInt663 = var5 - var4;
                  var2.method1442(var7);
               }
            } else {
               this.aClass545_Sub2_9487.method15078(3, this.aClass359_9511.anInterface35_4491);
               this.aClass545_Sub2_9487.method14991(this.aClass545_Sub2_9487.aClass341_9776);
               Class328 var13 = this.aClass545_Sub2_9487.aClass328_9648;
               var13.method5991(var1);
               var13.method5996();
               var4 = 0;
               int var16;
               if(this.aClass545_Sub2_9487.aBool9681) {
                  this.aClass545_Sub2_9487.method15027(true);
               } else {
                  var2.aClass326_655.method5873(this.aClass545_Sub2_9487.aFloatArray9712[0], this.aClass545_Sub2_9487.aFloatArray9712[1], this.aClass545_Sub2_9487.aFloatArray9712[2]);
                  var2.aClass326_655.method5900(var13);
                  var2.aClass326_656.method5873(this.aClass545_Sub2_9487.aFloat9705 * this.aClass545_Sub2_9487.aFloat9701, this.aClass545_Sub2_9487.aFloat9705 * this.aClass545_Sub2_9487.aFloat9702, this.aClass545_Sub2_9487.aFloat9705 * this.aClass545_Sub2_9487.aFloat9703);
                  var2.aClass326_657.method5873(-this.aClass545_Sub2_9487.aFloat9706 * this.aClass545_Sub2_9487.aFloat9701, -this.aClass545_Sub2_9487.aFloat9706 * this.aClass545_Sub2_9487.aFloat9702, -this.aClass545_Sub2_9487.aFloat9706 * this.aClass545_Sub2_9487.aFloat9703);
                  var2.aClass326_661.method5873(this.aClass545_Sub2_9487.aFloat9760 * this.aClass545_Sub2_9487.aFloat9701, this.aClass545_Sub2_9487.aFloat9760 * this.aClass545_Sub2_9487.aFloat9702, this.aClass545_Sub2_9487.aFloat9760 * this.aClass545_Sub2_9487.aFloat9703);
                  if(this.aClass545_Sub2_9487.anInt9708 > 0) {
                     var4 = this.aClass545_Sub2_9487.anInt9708;
                     Class326 var14 = this.aClass545_Sub2_9487.aClass326_9651;

                     for(var6 = 0; var6 < var4; ++var6) {
                        Class225_Sub40 var15 = this.aClass545_Sub2_9487.aClass225_Sub40Array9719[var6];
                        var16 = var15.method14107(-1345584988);
                        var14.method5894(var15.aClass326_8739);
                        var14.method5899(var13);
                        var2.aFloatArray653[var6 * 4 + 0] = var14.aFloat4036;
                        var2.aFloatArray653[var6 * 4 + 1] = var14.aFloat4037;
                        var2.aFloatArray653[var6 * 4 + 2] = var14.aFloat4033;
                        var2.aFloatArray653[var6 * 4 + 3] = (float)(var15.method14113(1072185466) * var15.method14113(1695112939));
                        float var9 = var15.method14110(222716565) / 255.0F;
                        var2.aFloatArray659[var6 * 4 + 0] = (float)(var16 >> 16 & 255) * var9;
                        var2.aFloatArray659[var6 * 4 + 1] = (float)(var16 >> 8 & 255) * var9;
                        var2.aFloatArray659[var6 * 4 + 2] = (float)(var16 & 255) * var9;
                        var2.aFloatArray659[var6 * 4 + 3] = 1.0F;
                     }
                  }
               }

               for(var5 = 0; var5 < this.anIntArray9490.length; ++var5) {
                  var6 = this.anIntArray9526[var5];
                  int var18 = this.anIntArray9526[var5 + 1];
                  var16 = this.aShortArray9505[var6] & '\uffff';
                  byte var19 = 11;
                  if(var16 != '\uffff') {
                     var2.anInterface33_645 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var16);
                     Class161 var10 = this.aClass545_Sub2_9487.anInterface24_7370.method113(var16, -1123490530);
                     var19 = var10.aByte1986;
                     var2.method1440(var10);
                     var2.aClass317_654.aFloatArray4000[12] = (float)(this.aClass545_Sub2_9487.anInt9644 % 128000) / 1000.0F * (float)var10.aByte1972 / 64.0F % 1.0F;
                     var2.aClass317_654.aFloatArray4000[13] = (float)(this.aClass545_Sub2_9487.anInt9644 % 128000) / 1000.0F * (float)var10.aByte1993 / 64.0F % 1.0F;
                  } else {
                     var2.anInterface33_645 = this.aClass545_Sub2_9487.anInterface33_9693;
                     float[] var20 = var2.aClass317_654.aFloatArray4000;
                     var2.aClass317_654.aFloatArray4000[13] = 0.0F;
                     var20[12] = 0.0F;
                  }

                  var2.anInt660 = this.anIntArray9490[var5];
                  var2.anInt650 = this.anIntArray9528[var5];
                  var2.anInt662 = var6 * 3;
                  var2.anInt663 = var18 - var6;
                  switch(var19) {
                  case 1:
                     var2.aClass326_642.method5873(this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[12], this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[13], this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[14]);
                     var2.aClass326_642.method5899(var13);
                     var2.method1451(var4);
                     break;
                  case 2:
                  case 3:
                  case 4:
                  default:
                     var2.method1443(var4);
                     break;
                  case 5:
                     if(!this.aClass545_Sub2_9487.aBool9681) {
                        Class74_Sub1_Sub2 var21 = this.aClass545_Sub2_9487.aClass74_Sub1_Sub2_9736;
                        Class161 var11 = this.aClass545_Sub2_9487.anInterface24_7370.method113(var16, 1987336641);
                        var21.method15829(var11.aByte1999, var11.anInt1969 * -560456145, -93821570);
                        var21.aClass317_10253.method5613(var1);
                        var21.aClass317_10259.method5613(var1);
                        var21.aClass317_10259.method5612(this.aClass545_Sub2_9487.aClass317_9747);
                        var21.anInt10267 = this.anIntArray9490[var5] * -2059655119;
                        var21.anInt10268 = this.anIntArray9528[var5] * 2128218509;
                        var21.anInt10261 = var6 * 1344818483;
                        var21.anInt10270 = (var18 - var6) * 453900699;
                        var21.method15830(371983768);
                     } else {
                        var2.method1443(var4);
                     }
                     break;
                  case 6:
                     var2.method1442(!Class463_Sub17.method12955(var19, 1390301677));
                     break;
                  case 7:
                     var2.aClass326_642.method5873(this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[12], this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[13], this.aClass545_Sub2_9487.aClass317_9695.aFloatArray4000[14]);
                     var2.aClass326_642.method5899(var13);
                     var2.aClass317_641.method5613(var1);
                     var2.anInterface37_646 = this.aClass545_Sub2_9487.method15028();
                     var2.method1445(var4);
                  }
               }
            }

            this.method14875();
         }
      }
   }

   public boolean er() {
      return this.aBool9516;
   }

   boolean method14888() {
      if(this.aClass350_9508.aBool4453) {
         return true;
      } else {
         if(this.aClass350_9508.anInterface40_4454 == null) {
            this.aClass350_9508.anInterface40_4454 = this.aClass545_Sub2_9487.method15075(false);
         }

         Interface40 var1 = this.aClass350_9508.anInterface40_4454;
         var1.method232(this.anInt9499 * 6);
         Unsafe var2 = this.aClass545_Sub2_9487.anUnsafe9632;
         if(var2 != null) {
            int var8 = this.anInt9499 * 6;
            long var4 = var1.method214(0, var8);
            if(var4 == 0L) {
               return false;
            } else {
               for(int var6 = 0; var6 < this.anInt9499; ++var6) {
                  var2.putShort(var4, this.aShortArray9502[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9534[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9548[var6]);
                  var4 += 2L;
               }

               var1.method215();
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            }
         } else {
            ByteBuffer var3 = this.aClass545_Sub2_9487.aByteBuffer9763;
            var3.clear();

            for(int var7 = 0; var7 < this.anInt9499; ++var7) {
               var3.putShort(this.aShortArray9502[var7]);
               var3.putShort(this.aShortArray9534[var7]);
               var3.putShort(this.aShortArray9548[var7]);
            }

            if(var1.method217(0, var3.position(), this.aClass545_Sub2_9487.aLong9730)) {
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            } else {
               return false;
            }
         }
      }
   }

   boolean method14889(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   void method14890() {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.method6431();
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.method6431();
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.method6431();
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.method6431();
      }

      if(this.aClass350_9508 != null) {
         this.aClass350_9508.method6359();
      }

   }

   public void bf(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9484[var4] = this.anIntArray9484[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   int method14891(int var1, short var2, int var3) {
      int var4 = this.aClass545_Sub2_9487.anIntArray9628[this.method14913(var1, var3)];
      if(var2 != -1) {
         Class161 var5 = this.aClass545_Sub2_9487.anInterface24_7370.method113(var2 & '\uffff', 1928001004);
         int var6 = var5.aByte1990 & 255;
         int var7;
         int var9;
         if(var6 != 0) {
            var7 = 131586 * var3;
            if(var6 == 256) {
               var4 = var7;
            } else {
               var9 = 256 - var6;
               var4 = ((var7 & 16711935) * var6 + (var4 & 16711935) * var9 & -16711936) + ((var7 & '\uff00') * var6 + (var4 & '\uff00') * var9 & 16711680) >> 8;
            }
         }

         var7 = var5.aByte1991 & 255;
         if(var7 != 0) {
            var7 += 256;
            int var8 = ((var4 & 16711680) >> 16) * var7;
            if(var8 > '\uffff') {
               var8 = '\uffff';
            }

            var9 = ((var4 & '\uff00') >> 8) * var7;
            if(var9 > '\uffff') {
               var9 = '\uffff';
            }

            int var10 = (var4 & 255) * var7;
            if(var10 > '\uffff') {
               var10 = '\uffff';
            }

            var4 = (var8 << 8 & 16711680) + (var9 & '\uff00') + (var10 >> 8);
         }
      }

      return var4 & 16777215;
   }

   public void method12079(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub3 var6 = (Class568_Sub3)var1;
      if(this.anInt9498 != 0 && var6.anInt9498 != 0) {
         int var7 = var6.anInt9537;
         int[] var8 = var6.anIntArray9483;
         int[] var9 = var6.anIntArray9484;
         int[] var10 = var6.anIntArray9512;
         short[] var11 = var6.aShortArray9491;
         short[] var12 = var6.aShortArray9492;
         short[] var13 = var6.aShortArray9504;
         byte[] var14 = var6.aByteArray9494;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass370_9497 != null) {
            var15 = this.aClass370_9497.aShortArray4625;
            var16 = this.aClass370_9497.aShortArray4626;
            var17 = this.aClass370_9497.aShortArray4628;
            var18 = this.aClass370_9497.aByteArray4627;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass370_9497 != null) {
            var19 = var6.aClass370_9497.aShortArray4625;
            var20 = var6.aClass370_9497.aShortArray4626;
            var21 = var6.aClass370_9497.aShortArray4628;
            var22 = var6.aClass370_9497.aByteArray4627;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9529;
         short[] var24 = var6.aShortArray9530;
         if(!var6.aBool9493) {
            var6.method14876();
         }

         int var25 = var6.anInt9520;
         int var26 = var6.anInt9521;
         int var27 = var6.anInt9522;
         int var28 = var6.anInt9482;
         int var29 = var6.anInt9519;
         int var30 = var6.anInt9525;

         for(int var31 = 0; var31 < this.anInt9537; ++var31) {
            int var32 = this.anIntArray9484[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9483[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9512[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9529[var31];
                     int var37 = this.anIntArray9529[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9530[var38] - 1;
                        if(var35 == -1 || this.aByteArray9494[var35] != 0) {
                           break;
                        }
                     }

                     if(var35 != -1) {
                        for(var38 = 0; var38 < var7; ++var38) {
                           if(var33 == var8[var38] && var34 == var10[var38] && var32 == var9[var38]) {
                              int var39 = -1;
                              var36 = var23[var38];
                              var37 = var23[var38 + 1];

                              for(int var40 = var36; var40 < var37; ++var40) {
                                 var39 = var24[var40] - 1;
                                 if(var39 == -1 || var14[var39] != 0) {
                                    break;
                                 }
                              }

                              if(var39 != -1) {
                                 if(var15 == null) {
                                    this.aClass370_9497 = new Class370();
                                    var15 = this.aClass370_9497.aShortArray4625 = Class188.method3313(this.aShortArray9491, 280334234);
                                    var16 = this.aClass370_9497.aShortArray4626 = Class188.method3313(this.aShortArray9492, 991666241);
                                    var17 = this.aClass370_9497.aShortArray4628 = Class188.method3313(this.aShortArray9504, -950095069);
                                    var18 = this.aClass370_9497.aByteArray4627 = Class73.method1591(this.aByteArray9494, 190635795);
                                 }

                                 if(var19 == null) {
                                    Class370 var47 = var6.aClass370_9497 = new Class370();
                                    var19 = var47.aShortArray4625 = Class188.method3313(var11, 2095268784);
                                    var20 = var47.aShortArray4626 = Class188.method3313(var12, -1291777748);
                                    var21 = var47.aShortArray4628 = Class188.method3313(var13, 1336378786);
                                    var22 = var47.aByteArray4627 = Class73.method1591(var14, -1126185307);
                                 }

                                 short var46 = this.aShortArray9491[var35];
                                 short var41 = this.aShortArray9492[var35];
                                 short var42 = this.aShortArray9504[var35];
                                 byte var43 = this.aByteArray9494[var35];
                                 var36 = var23[var38];
                                 var37 = var23[var38 + 1];

                                 int var44;
                                 int var45;
                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = var24[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var22[var45] != 0) {
                                       var19[var45] += var46;
                                       var20[var45] += var41;
                                       var21[var45] += var42;
                                       var22[var45] += var43;
                                    }
                                 }

                                 var46 = var11[var39];
                                 var41 = var12[var39];
                                 var42 = var13[var39];
                                 var43 = var14[var39];
                                 var36 = this.anIntArray9529[var31];
                                 var37 = this.anIntArray9529[var31 + 1];

                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = this.aShortArray9530[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var18[var45] != 0) {
                                       var15[var45] += var46;
                                       var16[var45] += var41;
                                       var17[var45] += var42;
                                       var18[var45] += var43;
                                    }
                                 }

                                 var6.method14877();
                                 this.method14877();
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public void method12080(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub3 var6 = (Class568_Sub3)var1;
      if(this.anInt9498 != 0 && var6.anInt9498 != 0) {
         int var7 = var6.anInt9537;
         int[] var8 = var6.anIntArray9483;
         int[] var9 = var6.anIntArray9484;
         int[] var10 = var6.anIntArray9512;
         short[] var11 = var6.aShortArray9491;
         short[] var12 = var6.aShortArray9492;
         short[] var13 = var6.aShortArray9504;
         byte[] var14 = var6.aByteArray9494;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass370_9497 != null) {
            var15 = this.aClass370_9497.aShortArray4625;
            var16 = this.aClass370_9497.aShortArray4626;
            var17 = this.aClass370_9497.aShortArray4628;
            var18 = this.aClass370_9497.aByteArray4627;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass370_9497 != null) {
            var19 = var6.aClass370_9497.aShortArray4625;
            var20 = var6.aClass370_9497.aShortArray4626;
            var21 = var6.aClass370_9497.aShortArray4628;
            var22 = var6.aClass370_9497.aByteArray4627;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9529;
         short[] var24 = var6.aShortArray9530;
         if(!var6.aBool9493) {
            var6.method14876();
         }

         int var25 = var6.anInt9520;
         int var26 = var6.anInt9521;
         int var27 = var6.anInt9522;
         int var28 = var6.anInt9482;
         int var29 = var6.anInt9519;
         int var30 = var6.anInt9525;

         for(int var31 = 0; var31 < this.anInt9537; ++var31) {
            int var32 = this.anIntArray9484[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9483[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9512[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9529[var31];
                     int var37 = this.anIntArray9529[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9530[var38] - 1;
                        if(var35 == -1 || this.aByteArray9494[var35] != 0) {
                           break;
                        }
                     }

                     if(var35 != -1) {
                        for(var38 = 0; var38 < var7; ++var38) {
                           if(var33 == var8[var38] && var34 == var10[var38] && var32 == var9[var38]) {
                              int var39 = -1;
                              var36 = var23[var38];
                              var37 = var23[var38 + 1];

                              for(int var40 = var36; var40 < var37; ++var40) {
                                 var39 = var24[var40] - 1;
                                 if(var39 == -1 || var14[var39] != 0) {
                                    break;
                                 }
                              }

                              if(var39 != -1) {
                                 if(var15 == null) {
                                    this.aClass370_9497 = new Class370();
                                    var15 = this.aClass370_9497.aShortArray4625 = Class188.method3313(this.aShortArray9491, -39690531);
                                    var16 = this.aClass370_9497.aShortArray4626 = Class188.method3313(this.aShortArray9492, -1127541672);
                                    var17 = this.aClass370_9497.aShortArray4628 = Class188.method3313(this.aShortArray9504, -1850168702);
                                    var18 = this.aClass370_9497.aByteArray4627 = Class73.method1591(this.aByteArray9494, -1962249867);
                                 }

                                 if(var19 == null) {
                                    Class370 var47 = var6.aClass370_9497 = new Class370();
                                    var19 = var47.aShortArray4625 = Class188.method3313(var11, -1892880323);
                                    var20 = var47.aShortArray4626 = Class188.method3313(var12, 97343709);
                                    var21 = var47.aShortArray4628 = Class188.method3313(var13, -1742192197);
                                    var22 = var47.aByteArray4627 = Class73.method1591(var14, 265110796);
                                 }

                                 short var46 = this.aShortArray9491[var35];
                                 short var41 = this.aShortArray9492[var35];
                                 short var42 = this.aShortArray9504[var35];
                                 byte var43 = this.aByteArray9494[var35];
                                 var36 = var23[var38];
                                 var37 = var23[var38 + 1];

                                 int var44;
                                 int var45;
                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = var24[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var22[var45] != 0) {
                                       var19[var45] += var46;
                                       var20[var45] += var41;
                                       var21[var45] += var42;
                                       var22[var45] += var43;
                                    }
                                 }

                                 var46 = var11[var39];
                                 var41 = var12[var39];
                                 var42 = var13[var39];
                                 var43 = var14[var39];
                                 var36 = this.anIntArray9529[var31];
                                 var37 = this.anIntArray9529[var31 + 1];

                                 for(var44 = var36; var44 < var37; ++var44) {
                                    var45 = this.aShortArray9530[var44] - 1;
                                    if(var45 == -1) {
                                       break;
                                    }

                                    if(var18[var45] != 0) {
                                       var15[var45] += var46;
                                       var16[var45] += var41;
                                       var17[var45] += var42;
                                       var18[var45] += var43;
                                    }
                                 }

                                 var6.method14877();
                                 this.method14877();
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public Class568 method12081(byte var1, int var2, boolean var3) {
      boolean var4 = false;
      Class568_Sub3 var5;
      Class568_Sub3 var6;
      if(var1 > 0 && var1 <= 7) {
         var5 = this.aClass545_Sub2_9487.aClass568_Sub3Array9780[var1 - 1];
         var6 = this.aClass545_Sub2_9487.aClass568_Sub3Array9714[var1 - 1];
         var4 = true;
      } else {
         var6 = var5 = new Class568_Sub3(this.aClass545_Sub2_9487, 0, 0, true, false);
      }

      return this.method14874(var6, var5, var2, var4, var3);
   }

   public Class568 method12082(byte var1, int var2, boolean var3) {
      boolean var4 = false;
      Class568_Sub3 var5;
      Class568_Sub3 var6;
      if(var1 > 0 && var1 <= 7) {
         var5 = this.aClass545_Sub2_9487.aClass568_Sub3Array9780[var1 - 1];
         var6 = this.aClass545_Sub2_9487.aClass568_Sub3Array9714[var1 - 1];
         var4 = true;
      } else {
         var6 = var5 = new Class568_Sub3(this.aClass545_Sub2_9487, 0, 0, true, false);
      }

      return this.method14874(var6, var5, var2, var4, var3);
   }

   public int ab() {
      return this.anInt9477;
   }

   public void am(int var1) {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.aBool4489 = Class71.method1584(var1, this.anInt9478);
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.aBool4489 = Class71.method1507(var1, this.anInt9478);
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4489 = Class71.method1506(var1, this.anInt9478);
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.aBool4489 = Class71.method1498(var1, this.anInt9478);
      }

      this.anInt9477 = var1;
      if(this.aClass370_9497 != null && (this.anInt9477 & 65536) == 0) {
         this.aShortArray9491 = this.aClass370_9497.aShortArray4625;
         this.aShortArray9492 = this.aClass370_9497.aShortArray4626;
         this.aShortArray9504 = this.aClass370_9497.aShortArray4628;
         this.aByteArray9494 = this.aClass370_9497.aByteArray4627;
         this.aClass370_9497 = null;
      }

      this.aBool9509 = true;
      this.method14875();
   }

   static byte[] method14892(byte[] var0, int var1) {
      byte[] var2 = new byte[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public void Q(int var1) {
      this.aShort9474 = (short)var1;
      this.method14871();
      this.method14877();
   }

   public void av(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void ak(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      int var4;
      int var5;
      for(var4 = 0; var4 < this.anInt9537; ++var4) {
         var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9488; ++var4) {
         var5 = this.aShortArray9504[var4] * var2 + this.aShortArray9491[var4] * var3 >> 14;
         this.aShortArray9504[var4] = (short)(this.aShortArray9504[var4] * var3 - this.aShortArray9491[var4] * var2 >> 14);
         this.aShortArray9491[var4] = (short)var5;
      }

      this.method14871();
      this.method14877();
      this.aBool9493 = false;
   }

   short method14893(Class96 var1, int var2, int var3, long var4, int var6, int var7, int var8, int var9, float var10, float var11) {
      int var12 = this.anIntArray9529[var2];
      int var13 = this.anIntArray9529[var2 + 1];
      int var14 = 0;

      for(int var15 = var12; var15 < var13; ++var15) {
         short var16 = this.aShortArray9530[var15];
         if(var16 == 0) {
            var14 = var15;
            break;
         }

         if(this.aLongArray9527[var15] == var4) {
            return (short)(var16 - 1);
         }
      }

      this.aShortArray9530[var14] = (short)(this.anInt9488 + 1);
      this.aLongArray9527[var14] = var4;
      this.aShortArray9523[this.anInt9488] = (short)var3;
      this.aShortArray9489[this.anInt9488] = (short)var2;
      this.aShortArray9491[this.anInt9488] = (short)var6;
      this.aShortArray9492[this.anInt9488] = (short)var7;
      this.aShortArray9504[this.anInt9488] = (short)var8;
      this.aByteArray9494[this.anInt9488] = (byte)var9;
      this.aFloatArray9495[this.anInt9488] = var10;
      this.aFloatArray9496[this.anInt9488] = var11;
      return (short)(this.anInt9488++);
   }

   public void bi(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var3 - this.anIntArray9512[var4] * var2 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9484[var4] * var2 + this.anIntArray9512[var4] * var3 >> 14;
         this.anIntArray9484[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void br(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var3 - this.anIntArray9512[var4] * var2 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9484[var4] * var2 + this.anIntArray9512[var4] * var3 >> 14;
         this.anIntArray9484[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void bq(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var3 - this.anIntArray9512[var4] * var2 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9484[var4] * var2 + this.anIntArray9512[var4] * var3 >> 14;
         this.anIntArray9484[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void bg(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9484[var4] = this.anIntArray9484[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public Class80[] method12105() {
      return this.aClass80Array9531;
   }

   public Class166[] method12077() {
      return this.aClass166Array9500;
   }

   public byte[] ao() {
      return this.aByteArray9501;
   }

   public void bz(int var1, int var2, int var3) {
      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         if(var1 != 0) {
            this.anIntArray9483[var4] += var1;
         }

         if(var2 != 0) {
            this.anIntArray9484[var4] += var2;
         }

         if(var3 != 0) {
            this.anIntArray9512[var4] += var3;
         }
      }

      this.method14871();
      this.aBool9493 = false;
   }

   void method14894(Class225_Sub14_Sub16_Sub1 var1) {
      if(this.anIntArray9539.length < this.anInt9488) {
         this.anIntArray9539 = new int[this.anInt9488];
         this.anIntArray9540 = new int[this.anInt9488];
      }

      int var2 = 0;

      int var6;
      int var7;
      int var8;
      while(var2 < this.anInt9537) {
         int var3 = (this.anIntArray9483[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10644;
         int var4 = (this.anIntArray9512[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10645;
         int var5 = this.anIntArray9529[var2];
         var6 = this.anIntArray9529[var2 + 1];
         var7 = var5;

         while(true) {
            if(var7 < var6) {
               var8 = this.aShortArray9530[var7] - 1;
               if(var8 != -1) {
                  this.anIntArray9539[var8] = var3;
                  this.anIntArray9540[var8] = var4;
                  ++var7;
                  continue;
               }
            }

            ++var2;
            break;
         }
      }

      for(var2 = 0; var2 < this.anInt9499; ++var2) {
         if(this.aByteArray9501 == null || this.aByteArray9501[var2] <= 128) {
            short var12 = this.aShortArray9502[var2];
            short var13 = this.aShortArray9534[var2];
            short var14 = this.aShortArray9548[var2];
            var6 = this.anIntArray9539[var12];
            var7 = this.anIntArray9539[var13];
            var8 = this.anIntArray9539[var14];
            int var9 = this.anIntArray9540[var12];
            int var10 = this.anIntArray9540[var13];
            int var11 = this.anIntArray9540[var14];
            if((var6 - var7) * (var10 - var11) - (var10 - var9) * (var8 - var7) > 0) {
               var1.method16451(var9, var10, var11, var6, var7, var8);
            }
         }
      }

   }

   public void bo(int var1, int var2, int var3) {
      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         if(var1 != 128) {
            this.anIntArray9483[var4] = this.anIntArray9483[var4] * var1 >> 7;
         }

         if(var2 != 128) {
            this.anIntArray9484[var4] = this.anIntArray9484[var4] * var2 >> 7;
         }

         if(var3 != 128) {
            this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 >> 7;
         }
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void bb(int var1, int var2, int var3) {
      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         if(var1 != 128) {
            this.anIntArray9483[var4] = this.anIntArray9483[var4] * var1 >> 7;
         }

         if(var2 != 128) {
            this.anIntArray9484[var4] = this.anIntArray9484[var4] * var2 >> 7;
         }

         if(var3 != 128) {
            this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 >> 7;
         }
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void by(int var1, int var2, Class400 var3, Class400 var4, int var5, int var6, int var7) {
      if(!this.aBool9493) {
         this.method14876();
      }

      int var8 = var5 + this.anInt9522;
      int var9 = var5 + this.anInt9482;
      int var10 = var7 + this.anInt9519;
      int var11 = var7 + this.anInt9525;
      if(var1 != 1 && var1 != 2 && var1 != 3 && var1 != 5 || var8 >= 0 && var9 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4911 * 1724373523 && var10 >= 0 && var11 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4908 * 1696648095) {
         if(var1 != 4 && var1 != 5) {
            var8 >>= var3.anInt4909 * -1451148795;
            var9 = var9 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            var10 >>= var3.anInt4909 * -1451148795;
            var11 = var11 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            if(var3.method6789(var8, var10, (byte)3) == var6 && var3.method6789(var9, var10, (byte)3) == var6 && var3.method6789(var8, var11, (byte)3) == var6 && var3.method6789(var9, var11, (byte)3) == var6) {
               return;
            }
         } else {
            if(var4 == null) {
               return;
            }

            if(var8 < 0 || var9 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4911 * 1724373523 || var10 < 0 || var11 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4908 * 1696648095) {
               return;
            }
         }

         int var12;
         if(var1 == 1) {
            for(var12 = 0; var12 < this.anInt9537; ++var12) {
               this.anIntArray9484[var12] = this.anIntArray9484[var12] + var3.method6791(this.anIntArray9483[var12] + var5, this.anIntArray9512[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               var12 = this.anInt9520;
               if(var12 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9537; ++var13) {
                  var14 = (this.anIntArray9484[var13] << 16) / var12;
                  if(var14 < var2) {
                     this.anIntArray9484[var13] += (var3.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) * (var2 - var14) / var2;
                  }
               }
            } else {
               int var15;
               if(var1 == 3) {
                  var12 = (var2 & 255) * 4;
                  var13 = (var2 >> 8 & 255) * 4;
                  var14 = (var2 >> 16 & 255) << 6;
                  var15 = (var2 >> 24 & 255) << 6;
                  if(var5 - (var12 >> 1) < 0 || var5 + (var12 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4911 * 1724373523 << var3.anInt4909 * -1451148795 || var7 - (var13 >> 1) < 0 || var7 + (var13 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4908 * 1696648095 << var3.anInt4909 * -1451148795) {
                     return;
                  }

                  this.method12121(var3, var5, var6, var7, var12, var13, var14, var15);
               } else if(var1 == 4) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     this.anIntArray9484[var13] = this.anIntArray9484[var13] + (var4.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     var14 = this.anIntArray9483[var13] + var5;
                     var15 = this.anIntArray9512[var13] + var7;
                     int var16 = var3.method6791(var14, var15, 701663251);
                     int var17 = var4.method6791(var14, var15, 701663251);
                     int var18 = var16 - var17 - var2;
                     this.anIntArray9484[var13] = ((this.anIntArray9484[var13] << 8) / var12 * var18 >> 8) - (var6 - var16);
                  }
               }
            }
         }

         this.method14871();
         this.aBool9493 = false;
      }
   }

   public boolean method12101() {
      if(this.aShortArray9505 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9505.length; ++var1) {
            if(this.aShortArray9505[var1] != -1 && !this.aClass545_Sub2_9487.aClass58_9721.method1268(this.aShortArray9505[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

   void method12084() {}

   void method12085() {}

   public int N() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9518;
   }

   public void method12090(Class328 var1, Class89 var2, int var3) {
      if(aClass342_9514 != null) {
         aClass342_9514.method6268();
      }

      if(var2 != null) {
         var2.aBool886 = false;
      }

      if(this.anInt9488 != 0) {
         Class317 var4 = this.aClass545_Sub2_9487.aClass317_9659;
         Class317 var5 = this.aClass545_Sub2_9487.aClass317_9649;
         Class317 var6 = this.aClass545_Sub2_9487.aClass317_9624;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub2_9487.aClass317_9663);
         if(!this.aBool9493) {
            this.method14876();
         }

         float[] var7 = this.aClass545_Sub2_9487.aFloatArray9652;
         var5.method5618(0.0F, (float)this.anInt9520, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.anInt9521, 0.0F, var7);
         float var11 = var7[0];
         float var12 = var7[1];
         float var13 = var7[2];

         float var17;
         float var16;
         for(int var14 = 0; var14 < 6; ++var14) {
            float[] var15 = this.aClass545_Sub2_9487.aFloatArrayArray9665[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9518;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9518;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.anInt9522 + this.anInt9482 >> 1;
            int var21 = this.anInt9519 + this.anInt9525 >> 1;
            int var23 = this.anInt9520;
            float var34 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var33 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            var16 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            var17 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var16 >= -var17) {
               var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.anInt9521;
            float var25 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var26 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            float var27 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            float var28 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var27 >= -var28) {
               var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var26 / var28);
            } else {
               var18 = true;
            }

            float var29;
            float var30;
            if(var18) {
               if(var16 < -var17 && var27 < -var28) {
                  var19 = false;
               } else {
                  float var31;
                  float var32;
                  if(var16 < -var17) {
                     var29 = (var16 + var17) / (var27 + var28) - 1.0F;
                     var30 = var34 + var29 * (var25 - var34);
                     var31 = var33 + var29 * (var26 - var33);
                     var32 = var17 + var29 * (var28 - var17);
                     var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  } else if(var27 < -var28) {
                     var29 = (var27 + var28) / (var16 + var17) - 1.0F;
                     var30 = var25 + var29 * (var34 - var25);
                     var31 = var26 + var29 * (var33 - var26);
                     var32 = var28 + var29 * (var17 - var28);
                     var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  }
               }
            }

            if(var19) {
               if(var16 / var17 > var27 / var28) {
                  var29 = var34 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var17 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt884 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               } else {
                  var29 = var25 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var28 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt887 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               }

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub2_9487.method15089(var3);
         this.method14887(var1);
         this.aClass545_Sub2_9487.method15089(0);
         var5.method5613(var1);
         var5.method5612(this.aClass545_Sub2_9487.aClass317_9766);
         this.method14900(var5);
      }
   }

   void method12088() {}

   boolean bt() {
      if(this.anIntArrayArray9486 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9503; ++var1) {
            this.anIntArray9483[var1] <<= 4;
            this.anIntArray9484[var1] <<= 4;
            this.anIntArray9512[var1] <<= 4;
         }

         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;
         return true;
      }
   }

   boolean bn() {
      if(this.anIntArrayArray9486 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9503; ++var1) {
            this.anIntArray9483[var1] <<= 4;
            this.anIntArray9484[var1] <<= 4;
            this.anIntArray9512[var1] <<= 4;
         }

         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;
         return true;
      }
   }

   public Class568 method12060(byte var1, int var2, boolean var3) {
      boolean var4 = false;
      Class568_Sub3 var5;
      Class568_Sub3 var6;
      if(var1 > 0 && var1 <= 7) {
         var5 = this.aClass545_Sub2_9487.aClass568_Sub3Array9780[var1 - 1];
         var6 = this.aClass545_Sub2_9487.aClass568_Sub3Array9714[var1 - 1];
         var4 = true;
      } else {
         var6 = var5 = new Class568_Sub3(this.aClass545_Sub2_9487, 0, 0, true, false);
      }

      return this.method14874(var6, var5, var2, var4, var3);
   }

   static byte[] method14895(byte[] var0, int var1) {
      byte[] var2 = new byte[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public int dp() {
      return this.aShort9479;
   }

   public boolean method12104(int var1, int var2, Class328 var3, boolean var4, int var5) {
      return this.method14885(var1, var2, 0, 0, var3, var4, var5);
   }

   void bh() {
      for(int var1 = 0; var1 < this.anInt9503; ++var1) {
         this.anIntArray9483[var1] = this.anIntArray9483[var1] + 7 >> 4;
         this.anIntArray9484[var1] = this.anIntArray9484[var1] + 7 >> 4;
         this.anIntArray9512[var1] = this.anIntArray9512[var1] + 7 >> 4;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   void method12089(int var1, int[] var2, int var3, int var4, int var5, int var6, boolean var7) {
      int var8 = var2.length;
      int var9;
      int var10;
      int var14;
      int var23;
      int[] var25;
      int var24;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var9 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var10 = 0; var10 < var8; ++var10) {
            var23 = var2[var10];
            if(var23 < this.anIntArrayArray9486.length) {
               var25 = this.anIntArrayArray9486[var23];

               for(var24 = 0; var24 < var25.length; ++var24) {
                  var14 = var25[var24];
                  this.anInt9524 += this.anIntArray9483[var14];
                  this.anInt9545 += this.anIntArray9484[var14];
                  this.anInt9546 += this.anIntArray9512[var14];
                  ++var9;
               }
            }
         }

         if(var9 > 0) {
            this.anInt9524 = this.anInt9524 / var9 + var3;
            this.anInt9545 = this.anInt9545 / var9 + var4;
            this.anInt9546 = this.anInt9546 / var9 + var5;
         } else {
            this.anInt9524 = var3;
            this.anInt9545 = var4;
            this.anInt9546 = var5;
         }

      } else {
         int[] var11;
         int var12;
         if(var1 == 1) {
            var3 <<= 4;
            var4 <<= 4;
            var5 <<= 4;

            for(var9 = 0; var9 < var8; ++var9) {
               var10 = var2[var9];
               if(var10 < this.anIntArrayArray9486.length) {
                  var11 = this.anIntArrayArray9486[var10];

                  for(var12 = 0; var12 < var11.length; ++var12) {
                     var24 = var11[var12];
                     this.anIntArray9483[var24] += var3;
                     this.anIntArray9484[var24] += var4;
                     this.anIntArray9512[var24] += var5;
                  }
               }
            }

         } else {
            int var15;
            int var17;
            int var16;
            int var18;
            if(var1 == 2) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9486.length) {
                     var11 = this.anIntArrayArray9486[var10];
                     if((var6 & 1) == 0) {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           this.anIntArray9483[var24] -= this.anInt9524;
                           this.anIntArray9484[var24] -= this.anInt9545;
                           this.anIntArray9512[var24] -= this.anInt9546;
                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9484[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = this.anIntArray9484[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9484[var24] * var15 - this.anIntArray9512[var24] * var14 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9484[var24] * var14 + this.anIntArray9512[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = var16;
                           }

                           if(var4 != 0) {
                              var14 = Class312.anIntArray3943[var4];
                              var15 = Class312.anIntArray3956[var4];
                              var16 = this.anIntArray9512[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9512[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           this.anIntArray9483[var24] += this.anInt9524;
                           this.anIntArray9484[var24] += this.anInt9545;
                           this.anIntArray9512[var24] += this.anInt9546;
                        }
                     } else {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           this.anIntArray9483[var24] -= this.anInt9524;
                           this.anIntArray9484[var24] -= this.anInt9545;
                           this.anIntArray9512[var24] -= this.anInt9546;
                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9484[var24] * var15 - this.anIntArray9512[var24] * var14 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9484[var24] * var14 + this.anIntArray9512[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = var16;
                           }

                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9484[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9484[var24] = this.anIntArray9484[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           if(var4 != 0) {
                              var14 = Class312.anIntArray3943[var4];
                              var15 = Class312.anIntArray3956[var4];
                              var16 = this.anIntArray9512[var24] * var14 + this.anIntArray9483[var24] * var15 + 16383 >> 14;
                              this.anIntArray9512[var24] = this.anIntArray9512[var24] * var15 - this.anIntArray9483[var24] * var14 + 16383 >> 14;
                              this.anIntArray9483[var24] = var16;
                           }

                           this.anIntArray9483[var24] += this.anInt9524;
                           this.anIntArray9484[var24] += this.anInt9545;
                           this.anIntArray9512[var24] += this.anInt9546;
                        }
                     }
                  }
               }

               if(var7) {
                  for(var9 = 0; var9 < var8; ++var9) {
                     var10 = var2[var9];
                     if(var10 < this.anIntArrayArray9486.length) {
                        var11 = this.anIntArrayArray9486[var10];

                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var24 = var11[var12];
                           var14 = this.anIntArray9529[var24];
                           var15 = this.anIntArray9529[var24 + 1];

                           for(var16 = var14; var16 < var15; ++var16) {
                              var17 = this.aShortArray9530[var16] - 1;
                              if(var17 == -1) {
                                 break;
                              }

                              int var19;
                              int var20;
                              if(var5 != 0) {
                                 var18 = Class312.anIntArray3943[var5];
                                 var19 = Class312.anIntArray3956[var5];
                                 var20 = this.aShortArray9492[var17] * var18 + this.aShortArray9491[var17] * var19 + 16383 >> 14;
                                 this.aShortArray9492[var17] = (short)(this.aShortArray9492[var17] * var19 - this.aShortArray9491[var17] * var18 + 16383 >> 14);
                                 this.aShortArray9491[var17] = (short)var20;
                              }

                              if(var3 != 0) {
                                 var18 = Class312.anIntArray3943[var3];
                                 var19 = Class312.anIntArray3956[var3];
                                 var20 = this.aShortArray9492[var17] * var19 - this.aShortArray9504[var17] * var18 + 16383 >> 14;
                                 this.aShortArray9504[var17] = (short)(this.aShortArray9492[var17] * var18 + this.aShortArray9504[var17] * var19 + 16383 >> 14);
                                 this.aShortArray9492[var17] = (short)var20;
                              }

                              if(var4 != 0) {
                                 var18 = Class312.anIntArray3943[var4];
                                 var19 = Class312.anIntArray3956[var4];
                                 var20 = this.aShortArray9504[var17] * var18 + this.aShortArray9491[var17] * var19 + 16383 >> 14;
                                 this.aShortArray9504[var17] = (short)(this.aShortArray9504[var17] * var19 - this.aShortArray9491[var17] * var18 + 16383 >> 14);
                                 this.aShortArray9491[var17] = (short)var20;
                              }
                           }
                        }
                     }
                  }

                  this.method14877();
               }

            } else if(var1 == 3) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9486.length) {
                     var11 = this.anIntArrayArray9486[var10];

                     for(var12 = 0; var12 < var11.length; ++var12) {
                        var24 = var11[var12];
                        this.anIntArray9483[var24] -= this.anInt9524;
                        this.anIntArray9484[var24] -= this.anInt9545;
                        this.anIntArray9512[var24] -= this.anInt9546;
                        this.anIntArray9483[var24] = this.anIntArray9483[var24] * var3 >> 7;
                        this.anIntArray9484[var24] = this.anIntArray9484[var24] * var4 >> 7;
                        this.anIntArray9512[var24] = this.anIntArray9512[var24] * var5 >> 7;
                        this.anIntArray9483[var24] += this.anInt9524;
                        this.anIntArray9484[var24] += this.anInt9545;
                        this.anIntArray9512[var24] += this.anInt9546;
                     }
                  }
               }

            } else {
               boolean var21;
               Class61 var22;
               Class360 var26;
               if(var1 == 5) {
                  if(this.anIntArrayArray9506 != null) {
                     var21 = false;

                     for(var10 = 0; var10 < var8; ++var10) {
                        var23 = var2[var10];
                        if(var23 < this.anIntArrayArray9506.length) {
                           var25 = this.anIntArrayArray9506[var23];

                           for(var24 = 0; var24 < var25.length; ++var24) {
                              var14 = var25[var24];
                              var15 = (this.aByteArray9501[var14] & 255) + var3 * 8;
                              if(var15 < 0) {
                                 var15 = 0;
                              } else if(var15 > 255) {
                                 var15 = 255;
                              }

                              this.aByteArray9501[var14] = (byte)var15;
                           }

                           var21 |= var25.length > 0;
                        }
                     }

                     if(var21) {
                        if(this.aClass61Array9481 != null) {
                           for(var10 = 0; var10 < this.anInt9533; ++var10) {
                              var22 = this.aClass61Array9481[var10];
                              var26 = this.aClass360Array9535[var10];
                              var26.anInt4496 = var26.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var22.anInt565] & 255) << 24;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else if(var1 == 7) {
                  if(this.anIntArrayArray9506 != null) {
                     var21 = false;

                     for(var10 = 0; var10 < var8; ++var10) {
                        var23 = var2[var10];
                        if(var23 < this.anIntArrayArray9506.length) {
                           var25 = this.anIntArrayArray9506[var23];

                           for(var24 = 0; var24 < var25.length; ++var24) {
                              var14 = var25[var24];
                              var15 = this.aShortArray9476[var14] & '\uffff';
                              var16 = var15 >> 10 & 63;
                              var17 = var15 >> 7 & 7;
                              var18 = var15 & 127;
                              var16 = var16 + var3 & 63;
                              var17 += var4 / 4;
                              if(var17 < 0) {
                                 var17 = 0;
                              } else if(var17 > 7) {
                                 var17 = 7;
                              }

                              var18 += var5;
                              if(var18 < 0) {
                                 var18 = 0;
                              } else if(var18 > 127) {
                                 var18 = 127;
                              }

                              this.aShortArray9476[var14] = (short)(var16 << 10 | var17 << 7 | var18);
                           }

                           var21 |= var25.length > 0;
                        }
                     }

                     if(var21) {
                        if(this.aClass61Array9481 != null) {
                           for(var10 = 0; var10 < this.anInt9533; ++var10) {
                              var22 = this.aClass61Array9481[var10];
                              var26 = this.aClass360Array9535[var10];
                              var26.anInt4496 = var26.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var22.anInt565] & '\uffff'] & 16777215;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else {
                  Class360 var13;
                  if(var1 == 8) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4497 += var3;
                                 var13.anInt4495 += var4;
                              }
                           }
                        }
                     }

                  } else if(var1 == 10) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4493 = var13.anInt4493 * var3 >> 7;
                                 var13.anInt4494 = var13.anInt4494 * var4 >> 7;
                              }
                           }
                        }
                     }

                  } else if(var1 == 9) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var9 = 0; var9 < var8; ++var9) {
                           var10 = var2[var9];
                           if(var10 < this.anIntArrayArray9536.length) {
                              var11 = this.anIntArrayArray9536[var10];

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass360Array9535[var11[var12]];
                                 var13.anInt4498 = var13.anInt4498 + var3 & 16383;
                              }
                           }
                        }
                     }

                  }
               }
            }
         }
      }
   }

   void method12086() {}

   void co(int var1, int[] var2, int var3, int var4, int var5, boolean var6, int var7, int[] var8) {
      int var9 = var2.length;
      int var10;
      int var11;
      int var15;
      int var51;
      int[] var50;
      int var48;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var48 = var2[var11];
            if(var48 < this.anIntArrayArray9486.length) {
               var50 = this.anIntArrayArray9486[var48];

               for(var51 = 0; var51 < var50.length; ++var51) {
                  var15 = var50[var51];
                  if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var15]) != 0) {
                     this.anInt9524 += this.anIntArray9483[var15];
                     this.anInt9545 += this.anIntArray9484[var15];
                     this.anInt9546 += this.anIntArray9512[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            this.anInt9524 = this.anInt9524 / var10 + var3;
            this.anInt9545 = this.anInt9545 / var10 + var4;
            this.anInt9546 = this.anInt9546 / var10 + var5;
            this.aBool9547 = true;
         } else {
            this.anInt9524 = var3;
            this.anInt9545 = var4;
            this.anInt9546 = var5;
         }

      } else {
         int[] var12;
         int var13;
         if(var1 == 1) {
            if(var8 != null) {
               var10 = var8[0] * var3 + var8[1] * var4 + var8[2] * var5 + 8192 >> 14;
               var11 = var8[3] * var3 + var8[4] * var4 + var8[5] * var5 + 8192 >> 14;
               var48 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var48;
            }

            var3 <<= 4;
            var4 <<= 4;
            var5 <<= 4;

            for(var10 = 0; var10 < var9; ++var10) {
               var11 = var2[var10];
               if(var11 < this.anIntArrayArray9486.length) {
                  var12 = this.anIntArrayArray9486[var11];

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var51 = var12[var13];
                     if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                        this.anIntArray9483[var51] += var3;
                        this.anIntArray9484[var51] += var4;
                        this.anIntArray9512[var51] += var5;
                     }
                  }
               }
            }

         } else {
            int var17;
            int var16;
            int var19;
            int var18;
            int var21;
            int var20;
            int var23;
            int var22;
            int var24;
            int var27;
            int var26;
            int var28;
            int var30;
            int var34;
            int[] var35;
            int var32;
            int var33;
            int var38;
            int var39;
            int var36;
            int var37;
            int var40;
            if(var1 == 2) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  int[] var53 = new int[9];
                  var17 = Class312.anIntArray3956[var3];
                  var18 = Class312.anIntArray3943[var3];
                  var19 = Class312.anIntArray3956[var4];
                  var20 = Class312.anIntArray3943[var4];
                  var21 = Class312.anIntArray3956[var5];
                  var22 = Class312.anIntArray3943[var5];
                  var23 = var18 * var21 + 8192 >> 14;
                  var24 = var18 * var22 + 8192 >> 14;
                  var53[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var53[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var53[2] = var20 * var17 + 8192 >> 14;
                  var53[3] = var17 * var22 + 8192 >> 14;
                  var53[4] = var17 * var21 + 8192 >> 14;
                  var53[5] = -var18;
                  var53[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var53[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var53[8] = var19 * var17 + 8192 >> 14;
                  int var54 = var53[0] * -this.anInt9524 + var53[1] * -this.anInt9545 + var53[2] * -this.anInt9546 + 8192 >> 14;
                  var26 = var53[3] * -this.anInt9524 + var53[4] * -this.anInt9545 + var53[5] * -this.anInt9546 + 8192 >> 14;
                  var27 = var53[6] * -this.anInt9524 + var53[7] * -this.anInt9545 + var53[8] * -this.anInt9546 + 8192 >> 14;
                  var28 = var54 + this.anInt9524;
                  int var55 = var26 + this.anInt9545;
                  var30 = var27 + this.anInt9546;
                  int[] var56 = new int[9];

                  for(var32 = 0; var32 < 3; ++var32) {
                     for(var33 = 0; var33 < 3; ++var33) {
                        var34 = 0;

                        for(int var57 = 0; var57 < 3; ++var57) {
                           var34 += var53[var32 * 3 + var57] * var8[var33 * 3 + var57];
                        }

                        var56[var32 * 3 + var33] = var34 + 8192 >> 14;
                     }
                  }

                  var32 = var53[0] * var13 + var53[1] * var51 + var53[2] * var15 + 8192 >> 14;
                  var33 = var53[3] * var13 + var53[4] * var51 + var53[5] * var15 + 8192 >> 14;
                  var34 = var53[6] * var13 + var53[7] * var51 + var53[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var55;
                  var34 += var30;
                  var35 = new int[9];

                  for(var36 = 0; var36 < 3; ++var36) {
                     for(var37 = 0; var37 < 3; ++var37) {
                        var38 = 0;

                        for(var39 = 0; var39 < 3; ++var39) {
                           var38 += var8[var36 * 3 + var39] * var56[var37 + var39 * 3];
                        }

                        var35[var36 * 3 + var37] = var38 + 8192 >> 14;
                     }
                  }

                  var36 = var8[0] * var32 + var8[1] * var33 + var8[2] * var34 + 8192 >> 14;
                  var37 = var8[3] * var32 + var8[4] * var33 + var8[5] * var34 + 8192 >> 14;
                  var38 = var8[6] * var32 + var8[7] * var33 + var8[8] * var34 + 8192 >> 14;
                  var36 += var10;
                  var37 += var11;
                  var38 += var48;

                  for(var39 = 0; var39 < var9; ++var39) {
                     var40 = var2[var39];
                     if(var40 < this.anIntArrayArray9486.length) {
                        int[] var41 = this.anIntArrayArray9486[var40];

                        for(int var42 = 0; var42 < var41.length; ++var42) {
                           int var43 = var41[var42];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var43]) != 0) {
                              int var44 = var35[0] * this.anIntArray9483[var43] + var35[1] * this.anIntArray9484[var43] + var35[2] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var45 = var35[3] * this.anIntArray9483[var43] + var35[4] * this.anIntArray9484[var43] + var35[5] * this.anIntArray9512[var43] + 8192 >> 14;
                              int var46 = var35[6] * this.anIntArray9483[var43] + var35[7] * this.anIntArray9484[var43] + var35[8] * this.anIntArray9512[var43] + 8192 >> 14;
                              var44 += var36;
                              var45 += var37;
                              var46 += var38;
                              this.anIntArray9483[var43] = var44;
                              this.anIntArray9484[var43] = var45;
                              this.anIntArray9512[var43] = var46;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9484[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = this.anIntArray9484[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              if(var3 != 0) {
                                 var15 = Class312.anIntArray3943[var3];
                                 var16 = Class312.anIntArray3956[var3];
                                 var17 = this.anIntArray9484[var51] * var16 - this.anIntArray9512[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9484[var51] * var15 + this.anIntArray9512[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9484[var51] = var17;
                              }

                              if(var4 != 0) {
                                 var15 = Class312.anIntArray3943[var4];
                                 var16 = Class312.anIntArray3956[var4];
                                 var17 = this.anIntArray9512[var51] * var15 + this.anIntArray9483[var51] * var16 + 16383 >> 14;
                                 this.anIntArray9512[var51] = this.anIntArray9512[var51] * var16 - this.anIntArray9483[var51] * var15 + 16383 >> 14;
                                 this.anIntArray9483[var51] = var17;
                              }

                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }

                  if(var6) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9486.length) {
                           var12 = this.anIntArrayArray9486[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var51 = var12[var13];
                              if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                                 var15 = this.anIntArray9529[var51];
                                 var16 = this.anIntArray9529[var51 + 1];

                                 for(var17 = var15; var17 < var16; ++var17) {
                                    var18 = this.aShortArray9530[var17] - 1;
                                    if(var18 == -1) {
                                       break;
                                    }

                                    if(var5 != 0) {
                                       var19 = Class312.anIntArray3943[var5];
                                       var20 = Class312.anIntArray3956[var5];
                                       var21 = this.aShortArray9492[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9492[var18] = (short)(this.aShortArray9492[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }

                                    if(var3 != 0) {
                                       var19 = Class312.anIntArray3943[var3];
                                       var20 = Class312.anIntArray3956[var3];
                                       var21 = this.aShortArray9492[var18] * var20 - this.aShortArray9504[var18] * var19 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9492[var18] * var19 + this.aShortArray9504[var18] * var20 + 16383 >> 14);
                                       this.aShortArray9492[var18] = (short)var21;
                                    }

                                    if(var4 != 0) {
                                       var19 = Class312.anIntArray3943[var4];
                                       var20 = Class312.anIntArray3956[var4];
                                       var21 = this.aShortArray9504[var18] * var19 + this.aShortArray9491[var18] * var20 + 16383 >> 14;
                                       this.aShortArray9504[var18] = (short)(this.aShortArray9504[var18] * var20 - this.aShortArray9491[var18] * var19 + 16383 >> 14);
                                       this.aShortArray9491[var18] = (short)var21;
                                    }
                                 }
                              }
                           }
                        }
                     }

                     this.method14877();
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var48 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var51 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(this.aBool9547) {
                     var16 = var8[0] * this.anInt9524 + var8[3] * this.anInt9545 + var8[6] * this.anInt9546 + 8192 >> 14;
                     var17 = var8[1] * this.anInt9524 + var8[4] * this.anInt9545 + var8[7] * this.anInt9546 + 8192 >> 14;
                     var18 = var8[2] * this.anInt9524 + var8[5] * this.anInt9545 + var8[8] * this.anInt9546 + 8192 >> 14;
                     var16 += var13;
                     var17 += var51;
                     var18 += var15;
                     this.anInt9524 = var16;
                     this.anInt9545 = var17;
                     this.anInt9546 = var18;
                     this.aBool9547 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -this.anInt9524 + 8192 >> 14;
                  var20 = var17 * -this.anInt9545 + 8192 >> 14;
                  var21 = var18 * -this.anInt9546 + 8192 >> 14;
                  var22 = var19 + this.anInt9524;
                  var23 = var20 + this.anInt9545;
                  var24 = var21 + this.anInt9546;
                  int[] var25 = new int[]{var16 * var8[0] + 8192 >> 14, var16 * var8[3] + 8192 >> 14, var16 * var8[6] + 8192 >> 14, var17 * var8[1] + 8192 >> 14, var17 * var8[4] + 8192 >> 14, var17 * var8[7] + 8192 >> 14, var18 * var8[2] + 8192 >> 14, var18 * var8[5] + 8192 >> 14, var18 * var8[8] + 8192 >> 14};
                  var26 = var16 * var13 + 8192 >> 14;
                  var27 = var17 * var51 + 8192 >> 14;
                  var28 = var18 * var15 + 8192 >> 14;
                  var26 += var22;
                  var27 += var23;
                  var28 += var24;
                  int[] var29 = new int[9];

                  int var31;
                  for(var30 = 0; var30 < 3; ++var30) {
                     for(var31 = 0; var31 < 3; ++var31) {
                        var32 = 0;

                        for(var33 = 0; var33 < 3; ++var33) {
                           var32 += var8[var30 * 3 + var33] * var25[var31 + var33 * 3];
                        }

                        var29[var30 * 3 + var31] = var32 + 8192 >> 14;
                     }
                  }

                  var30 = var8[0] * var26 + var8[1] * var27 + var8[2] * var28 + 8192 >> 14;
                  var31 = var8[3] * var26 + var8[4] * var27 + var8[5] * var28 + 8192 >> 14;
                  var32 = var8[6] * var26 + var8[7] * var27 + var8[8] * var28 + 8192 >> 14;
                  var30 += var10;
                  var31 += var11;
                  var32 += var48;

                  for(var33 = 0; var33 < var9; ++var33) {
                     var34 = var2[var33];
                     if(var34 < this.anIntArrayArray9486.length) {
                        var35 = this.anIntArrayArray9486[var34];

                        for(var36 = 0; var36 < var35.length; ++var36) {
                           var37 = var35[var36];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var37]) != 0) {
                              var38 = var29[0] * this.anIntArray9483[var37] + var29[1] * this.anIntArray9484[var37] + var29[2] * this.anIntArray9512[var37] + 8192 >> 14;
                              var39 = var29[3] * this.anIntArray9483[var37] + var29[4] * this.anIntArray9484[var37] + var29[5] * this.anIntArray9512[var37] + 8192 >> 14;
                              var40 = var29[6] * this.anIntArray9483[var37] + var29[7] * this.anIntArray9484[var37] + var29[8] * this.anIntArray9512[var37] + 8192 >> 14;
                              var38 += var30;
                              var39 += var31;
                              var40 += var32;
                              this.anIntArray9483[var37] = var38;
                              this.anIntArray9484[var37] = var39;
                              this.anIntArray9512[var37] = var40;
                           }
                        }
                     }
                  }
               } else {
                  for(var10 = 0; var10 < var9; ++var10) {
                     var11 = var2[var10];
                     if(var11 < this.anIntArrayArray9486.length) {
                        var12 = this.anIntArrayArray9486[var11];

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var51 = var12[var13];
                           if(this.aShortArray9485 == null || (var7 & this.aShortArray9485[var51]) != 0) {
                              this.anIntArray9483[var51] -= this.anInt9524;
                              this.anIntArray9484[var51] -= this.anInt9545;
                              this.anIntArray9512[var51] -= this.anInt9546;
                              this.anIntArray9483[var51] = this.anIntArray9483[var51] * var3 >> 7;
                              this.anIntArray9484[var51] = this.anIntArray9484[var51] * var4 >> 7;
                              this.anIntArray9512[var51] = this.anIntArray9512[var51] * var5 >> 7;
                              this.anIntArray9483[var51] += this.anInt9524;
                              this.anIntArray9484[var51] += this.anInt9545;
                              this.anIntArray9512[var51] += this.anInt9546;
                           }
                        }
                     }
                  }
               }

            } else {
               boolean var47;
               Class61 var49;
               Class360 var52;
               if(var1 == 5) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = (this.aByteArray9501[var15] & 255) + var3 * 8;
                                 if(var16 < 0) {
                                    var16 = 0;
                                 } else if(var16 > 255) {
                                    var16 = 255;
                                 }

                                 this.aByteArray9501[var15] = (byte)var16;
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var49.anInt565] & 255) << 24;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else if(var1 == 7) {
                  if(this.anIntArrayArray9506 != null) {
                     var47 = false;

                     for(var11 = 0; var11 < var9; ++var11) {
                        var48 = var2[var11];
                        if(var48 < this.anIntArrayArray9506.length) {
                           var50 = this.anIntArrayArray9506[var48];

                           for(var51 = 0; var51 < var50.length; ++var51) {
                              var15 = var50[var51];
                              if(this.aShortArray9507 == null || (var7 & this.aShortArray9507[var15]) != 0) {
                                 var16 = this.aShortArray9476[var15] & '\uffff';
                                 var17 = var16 >> 10 & 63;
                                 var18 = var16 >> 7 & 7;
                                 var19 = var16 & 127;
                                 var17 = var17 + var3 & 63;
                                 var18 += var4 / 4;
                                 if(var18 < 0) {
                                    var18 = 0;
                                 } else if(var18 > 7) {
                                    var18 = 7;
                                 }

                                 var19 += var5;
                                 if(var19 < 0) {
                                    var19 = 0;
                                 } else if(var19 > 127) {
                                    var19 = 127;
                                 }

                                 this.aShortArray9476[var15] = (short)(var17 << 10 | var18 << 7 | var19);
                              }
                           }

                           var47 |= var50.length > 0;
                        }
                     }

                     if(var47) {
                        if(this.aClass61Array9481 != null) {
                           for(var11 = 0; var11 < this.anInt9533; ++var11) {
                              var49 = this.aClass61Array9481[var11];
                              var52 = this.aClass360Array9535[var11];
                              var52.anInt4496 = var52.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var49.anInt565] & '\uffff'] & 16777215;
                           }
                        }

                        this.method14910();
                     }
                  }

               } else {
                  Class360 var14;
                  if(var1 == 8) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4497 += var3;
                                 var14.anInt4495 += var4;
                              }
                           }
                        }
                     }

                  } else if(var1 == 10) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4493 = var14.anInt4493 * var3 >> 7;
                                 var14.anInt4494 = var14.anInt4494 * var4 >> 7;
                              }
                           }
                        }
                     }

                  } else if(var1 == 9) {
                     if(this.anIntArrayArray9536 != null) {
                        for(var10 = 0; var10 < var9; ++var10) {
                           var11 = var2[var10];
                           if(var11 < this.anIntArrayArray9536.length) {
                              var12 = this.anIntArrayArray9536[var11];

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass360Array9535[var12[var13]];
                                 var14.anInt4498 = var14.anInt4498 + var3 & 16383;
                              }
                           }
                        }
                     }

                  }
               }
            }
         }
      }
   }

   void cf(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < this.anInt9537; ++var11) {
            this.anInt9524 += this.anIntArray9483[var11];
            this.anInt9545 += this.anIntArray9484[var11];
            this.anInt9546 += this.anIntArray9512[var11];
            ++var5;
         }

         if(var5 > 0) {
            this.anInt9524 = this.anInt9524 / var5 + var2;
            this.anInt9545 = this.anInt9545 / var5 + var3;
            this.anInt9546 = this.anInt9546 / var5 + var4;
         } else {
            this.anInt9524 = var2;
            this.anInt9545 = var3;
            this.anInt9546 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9537; ++var5) {
            this.anIntArray9483[var5] += var2;
            this.anIntArray9484[var5] += var3;
            this.anIntArray9512[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9484[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = this.anIntArray9484[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               if(var2 != 0) {
                  var11 = Class312.anIntArray3943[var2];
                  var7 = Class312.anIntArray3956[var2];
                  var8 = this.anIntArray9484[var5] * var7 - this.anIntArray9512[var5] * var11 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9484[var5] * var11 + this.anIntArray9512[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = var8;
               }

               if(var3 != 0) {
                  var11 = Class312.anIntArray3943[var3];
                  var7 = Class312.anIntArray3956[var3];
                  var8 = this.anIntArray9512[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9512[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               this.anIntArray9483[var5] = this.anIntArray9483[var5] * var2 / 128;
               this.anIntArray9484[var5] = this.anIntArray9484[var5] * var3 / 128;
               this.anIntArray9512[var5] = this.anIntArray9512[var5] * var4 / 128;
               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else {
            Class61 var10;
            Class360 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = (this.aByteArray9501[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

                  this.aByteArray9501[var5] = (byte)var11;
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var10.anInt565] & 255) << 24;
                  }
               }

               this.method14910();
            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = this.aShortArray9476[var5] & '\uffff';
                  var7 = var11 >> 10 & 63;
                  var8 = var11 >> 7 & 7;
                  int var9 = var11 & 127;
                  var7 = var7 + var2 & 63;
                  var8 += var3 / 4;
                  if(var8 < 0) {
                     var8 = 0;
                  } else if(var8 > 7) {
                     var8 = 7;
                  }

                  var9 += var4;
                  if(var9 < 0) {
                     var9 = 0;
                  } else if(var9 > 127) {
                     var9 = 127;
                  }

                  this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
                  }
               }

               this.method14910();
            } else {
               Class360 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4497 += var2;
                     var6.anInt4495 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4493 = var6.anInt4493 * var2 >> 7;
                     var6.anInt4494 = var6.anInt4494 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4498 = var6.anInt4498 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   Class568_Sub3(Class545_Sub2 var1, int var2, int var3, boolean var4, boolean var5) {
      this.anInt9503 = 0;
      this.anInt9537 = 0;
      this.anInt9488 = 0;
      this.anInt9498 = 0;
      this.anInt9499 = 0;
      this.aBool9480 = false;
      this.aBool9509 = true;
      this.aBool9515 = false;
      this.aBool9516 = false;
      this.aBool9493 = false;
      this.aFloatArray9538 = new float[2];
      this.anIntArray9539 = new int[1];
      this.anIntArray9540 = new int[1];
      this.anIntArray9541 = new int[8];
      this.anIntArray9542 = new int[8];
      this.anIntArray9543 = new int[8];
      this.aClass545_Sub2_9487 = var1;
      this.anInt9477 = var2;
      this.anInt9478 = var3;
      this.aBool9480 = var5;
      if(var4 || Class71.method1499(this.anInt9477, this.anInt9478)) {
         this.aClass359_9513 = new Class359(Class71.method1584(this.anInt9477, this.anInt9478));
      }

      if(var4 || Class71.method1502(this.anInt9477, this.anInt9478)) {
         this.aClass359_9544 = new Class359(Class71.method1507(this.anInt9477, this.anInt9478));
      }

      if(var4 || Class71.method1501(this.anInt9477, this.anInt9478)) {
         this.aClass359_9510 = new Class359(Class71.method1506(this.anInt9477, this.anInt9478));
      }

      if(var4 || Class71.method1500(this.anInt9477, this.anInt9478)) {
         this.aClass359_9511 = new Class359(Class71.method1498(this.anInt9477, this.anInt9478));
      }

      if(var4 || Class71.method1503(this.anInt9477, this.anInt9478)) {
         this.aClass350_9508 = new Class350(Class71.method1508(this.anInt9477, this.anInt9478));
      }

      if(var4 && var5) {
         this.aClass359_9513.anInterface35_4492 = this.aClass359_9513.anInterface35_4491 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
         this.aClass359_9544.anInterface35_4492 = this.aClass359_9544.anInterface35_4491 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
         this.aClass359_9510.anInterface35_4492 = this.aClass359_9510.anInterface35_4491 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
         this.aClass359_9511.anInterface35_4492 = this.aClass359_9511.anInterface35_4491 = this.aClass545_Sub2_9487.method15237(this.aBool9480);
      }

   }

   void cv(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < this.anInt9537; ++var11) {
            this.anInt9524 += this.anIntArray9483[var11];
            this.anInt9545 += this.anIntArray9484[var11];
            this.anInt9546 += this.anIntArray9512[var11];
            ++var5;
         }

         if(var5 > 0) {
            this.anInt9524 = this.anInt9524 / var5 + var2;
            this.anInt9545 = this.anInt9545 / var5 + var3;
            this.anInt9546 = this.anInt9546 / var5 + var4;
         } else {
            this.anInt9524 = var2;
            this.anInt9545 = var3;
            this.anInt9546 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9537; ++var5) {
            this.anIntArray9483[var5] += var2;
            this.anIntArray9484[var5] += var3;
            this.anIntArray9512[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9484[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = this.anIntArray9484[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               if(var2 != 0) {
                  var11 = Class312.anIntArray3943[var2];
                  var7 = Class312.anIntArray3956[var2];
                  var8 = this.anIntArray9484[var5] * var7 - this.anIntArray9512[var5] * var11 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9484[var5] * var11 + this.anIntArray9512[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = var8;
               }

               if(var3 != 0) {
                  var11 = Class312.anIntArray3943[var3];
                  var7 = Class312.anIntArray3956[var3];
                  var8 = this.anIntArray9512[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9512[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               this.anIntArray9483[var5] = this.anIntArray9483[var5] * var2 / 128;
               this.anIntArray9484[var5] = this.anIntArray9484[var5] * var3 / 128;
               this.anIntArray9512[var5] = this.anIntArray9512[var5] * var4 / 128;
               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else {
            Class61 var10;
            Class360 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = (this.aByteArray9501[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

                  this.aByteArray9501[var5] = (byte)var11;
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var10.anInt565] & 255) << 24;
                  }
               }

               this.method14910();
            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = this.aShortArray9476[var5] & '\uffff';
                  var7 = var11 >> 10 & 63;
                  var8 = var11 >> 7 & 7;
                  int var9 = var11 & 127;
                  var7 = var7 + var2 & 63;
                  var8 += var3 / 4;
                  if(var8 < 0) {
                     var8 = 0;
                  } else if(var8 > 7) {
                     var8 = 7;
                  }

                  var9 += var4;
                  if(var9 < 0) {
                     var9 = 0;
                  } else if(var9 > 127) {
                     var9 = 127;
                  }

                  this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
                  }
               }

               this.method14910();
            } else {
               Class360 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4497 += var2;
                     var6.anInt4495 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4493 = var6.anInt4493 * var2 >> 7;
                     var6.anInt4494 = var6.anInt4494 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4498 = var6.anInt4498 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   boolean method14896(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   public void method12091(Class328 var1, Class89 var2, int var3) {
      if(aClass342_9514 != null) {
         aClass342_9514.method6268();
      }

      if(var2 != null) {
         var2.aBool886 = false;
      }

      if(this.anInt9488 != 0) {
         Class317 var4 = this.aClass545_Sub2_9487.aClass317_9659;
         Class317 var5 = this.aClass545_Sub2_9487.aClass317_9649;
         Class317 var6 = this.aClass545_Sub2_9487.aClass317_9624;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub2_9487.aClass317_9663);
         if(!this.aBool9493) {
            this.method14876();
         }

         float[] var7 = this.aClass545_Sub2_9487.aFloatArray9652;
         var5.method5618(0.0F, (float)this.anInt9520, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.anInt9521, 0.0F, var7);
         float var11 = var7[0];
         float var12 = var7[1];
         float var13 = var7[2];

         float var17;
         float var16;
         for(int var14 = 0; var14 < 6; ++var14) {
            float[] var15 = this.aClass545_Sub2_9487.aFloatArrayArray9665[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9518;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9518;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.anInt9522 + this.anInt9482 >> 1;
            int var21 = this.anInt9519 + this.anInt9525 >> 1;
            int var23 = this.anInt9520;
            float var34 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var33 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            var16 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            var17 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var16 >= -var17) {
               var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.anInt9521;
            float var25 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var26 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            float var27 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            float var28 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var27 >= -var28) {
               var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var26 / var28);
            } else {
               var18 = true;
            }

            float var29;
            float var30;
            if(var18) {
               if(var16 < -var17 && var27 < -var28) {
                  var19 = false;
               } else {
                  float var31;
                  float var32;
                  if(var16 < -var17) {
                     var29 = (var16 + var17) / (var27 + var28) - 1.0F;
                     var30 = var34 + var29 * (var25 - var34);
                     var31 = var33 + var29 * (var26 - var33);
                     var32 = var17 + var29 * (var28 - var17);
                     var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  } else if(var27 < -var28) {
                     var29 = (var27 + var28) / (var16 + var17) - 1.0F;
                     var30 = var25 + var29 * (var34 - var25);
                     var31 = var26 + var29 * (var33 - var26);
                     var32 = var28 + var29 * (var17 - var28);
                     var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  }
               }
            }

            if(var19) {
               if(var16 / var17 > var27 / var28) {
                  var29 = var34 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var17 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt884 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               } else {
                  var29 = var25 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var28 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt887 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               }

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub2_9487.method15089(var3);
         this.method14887(var1);
         this.aClass545_Sub2_9487.method15089(0);
         var5.method5613(var1);
         var5.method5612(this.aClass545_Sub2_9487.aClass317_9766);
         this.method14900(var5);
      }
   }

   public void method12092(Class328 var1, Class89 var2, int var3) {
      if(aClass342_9514 != null) {
         aClass342_9514.method6268();
      }

      if(var2 != null) {
         var2.aBool886 = false;
      }

      if(this.anInt9488 != 0) {
         Class317 var4 = this.aClass545_Sub2_9487.aClass317_9659;
         Class317 var5 = this.aClass545_Sub2_9487.aClass317_9649;
         Class317 var6 = this.aClass545_Sub2_9487.aClass317_9624;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub2_9487.aClass317_9663);
         if(!this.aBool9493) {
            this.method14876();
         }

         float[] var7 = this.aClass545_Sub2_9487.aFloatArray9652;
         var5.method5618(0.0F, (float)this.anInt9520, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.anInt9521, 0.0F, var7);
         float var11 = var7[0];
         float var12 = var7[1];
         float var13 = var7[2];

         float var17;
         float var16;
         for(int var14 = 0; var14 < 6; ++var14) {
            float[] var15 = this.aClass545_Sub2_9487.aFloatArrayArray9665[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9518;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9518;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.anInt9522 + this.anInt9482 >> 1;
            int var21 = this.anInt9519 + this.anInt9525 >> 1;
            int var23 = this.anInt9520;
            float var34 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var33 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            var16 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            var17 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var16 >= -var17) {
               var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.anInt9521;
            float var25 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var26 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            float var27 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            float var28 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var27 >= -var28) {
               var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var26 / var28);
            } else {
               var18 = true;
            }

            float var29;
            float var30;
            if(var18) {
               if(var16 < -var17 && var27 < -var28) {
                  var19 = false;
               } else {
                  float var31;
                  float var32;
                  if(var16 < -var17) {
                     var29 = (var16 + var17) / (var27 + var28) - 1.0F;
                     var30 = var34 + var29 * (var25 - var34);
                     var31 = var33 + var29 * (var26 - var33);
                     var32 = var17 + var29 * (var28 - var17);
                     var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  } else if(var27 < -var28) {
                     var29 = (var27 + var28) / (var16 + var17) - 1.0F;
                     var30 = var25 + var29 * (var34 - var25);
                     var31 = var26 + var29 * (var33 - var26);
                     var32 = var28 + var29 * (var17 - var28);
                     var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  }
               }
            }

            if(var19) {
               if(var16 / var17 > var27 / var28) {
                  var29 = var34 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var17 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt884 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               } else {
                  var29 = var25 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var28 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt887 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               }

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub2_9487.method15089(var3);
         this.method14887(var1);
         this.aClass545_Sub2_9487.method15089(0);
         var5.method5613(var1);
         var5.method5612(this.aClass545_Sub2_9487.aClass317_9766);
         this.method14900(var5);
      }
   }

   Class568 method14897(Class568_Sub3 var1, Class568_Sub3 var2, int var3, boolean var4, boolean var5) {
      var1.anInt9477 = var3;
      var1.anInt9478 = this.anInt9478;
      var1.aShort9479 = this.aShort9479;
      var1.aShort9474 = this.aShort9474;
      var1.anInt9503 = this.anInt9503;
      var1.anInt9537 = this.anInt9537;
      var1.anInt9488 = this.anInt9488;
      var1.anInt9498 = this.anInt9498;
      var1.anInt9499 = this.anInt9499;
      var1.anInt9533 = this.anInt9533;
      if((var3 & 256) != 0) {
         var1.aBool9515 = true;
      } else {
         var1.aBool9515 = this.aBool9515;
      }

      var1.aBool9516 = this.aBool9516;
      boolean var6 = Class71.method1487(var3, this.anInt9478);
      boolean var7 = Class71.method1488(var3, this.anInt9478);
      boolean var8 = Class71.method1489(var3, this.anInt9478);
      boolean var9 = var6 | var7 | var8;
      int var10;
      if(var9) {
         if(var6) {
            if(var2.anIntArray9483 != null && var2.anIntArray9483.length >= this.anInt9503) {
               var1.anIntArray9483 = var2.anIntArray9483;
            } else {
               var1.anIntArray9483 = var2.anIntArray9483 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9483 = this.anIntArray9483;
         }

         if(var7) {
            if(var2.anIntArray9484 != null && var2.anIntArray9484.length >= this.anInt9503) {
               var1.anIntArray9484 = var2.anIntArray9484;
            } else {
               var1.anIntArray9484 = var2.anIntArray9484 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9484 = this.anIntArray9484;
         }

         if(var8) {
            if(var2.anIntArray9512 != null && var2.anIntArray9512.length >= this.anInt9503) {
               var1.anIntArray9512 = var2.anIntArray9512;
            } else {
               var1.anIntArray9512 = var2.anIntArray9512 = new int[this.anInt9503];
            }
         } else {
            var1.anIntArray9512 = this.anIntArray9512;
         }

         for(var10 = 0; var10 < this.anInt9503; ++var10) {
            if(var6) {
               var1.anIntArray9483[var10] = this.anIntArray9483[var10];
            }

            if(var7) {
               var1.anIntArray9484[var10] = this.anIntArray9484[var10];
            }

            if(var8) {
               var1.anIntArray9512[var10] = this.anIntArray9512[var10];
            }
         }
      } else {
         var1.anIntArray9483 = this.anIntArray9483;
         var1.anIntArray9484 = this.anIntArray9484;
         var1.anIntArray9512 = this.anIntArray9512;
      }

      if(Class71.method1584(var3, this.anInt9478)) {
         var1.aClass359_9513 = var2.aClass359_9513;
         var1.aClass359_9513.anInterface35_4491 = this.aClass359_9513.anInterface35_4491;
         var1.aClass359_9513.aBool4490 = this.aClass359_9513.aBool4490;
         var1.aClass359_9513.aBool4489 = true;
      } else if(Class71.method1499(var3, this.anInt9478)) {
         var1.aClass359_9513 = this.aClass359_9513;
      } else {
         var1.aClass359_9513 = null;
      }

      if(Class71.method1492(var3, this.anInt9478)) {
         if(var2.aShortArray9476 != null && var2.aShortArray9476.length >= this.anInt9498) {
            var1.aShortArray9476 = var2.aShortArray9476;
         } else {
            var1.aShortArray9476 = var2.aShortArray9476 = new short[this.anInt9498];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9476[var10] = this.aShortArray9476[var10];
         }
      } else {
         var1.aShortArray9476 = this.aShortArray9476;
      }

      if(Class71.method1537(var3, this.anInt9478)) {
         if(var2.aByteArray9501 != null && var2.aByteArray9501.length >= this.anInt9498) {
            var1.aByteArray9501 = var2.aByteArray9501;
         } else {
            var1.aByteArray9501 = var2.aByteArray9501 = new byte[this.anInt9498];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aByteArray9501[var10] = this.aByteArray9501[var10];
         }
      } else {
         var1.aByteArray9501 = this.aByteArray9501;
      }

      if(Class71.method1506(var3, this.anInt9478)) {
         var1.aClass359_9510 = var2.aClass359_9510;
         var1.aClass359_9510.anInterface35_4491 = this.aClass359_9510.anInterface35_4491;
         var1.aClass359_9510.aBool4490 = this.aClass359_9510.aBool4490;
         var1.aClass359_9510.aBool4489 = true;
      } else if(Class71.method1501(var3, this.anInt9478)) {
         var1.aClass359_9510 = this.aClass359_9510;
      } else {
         var1.aClass359_9510 = null;
      }

      int var11;
      if(Class71.method1491(var3, this.anInt9478)) {
         if(var2.aShortArray9491 != null && var2.aShortArray9491.length >= this.anInt9488) {
            var1.aShortArray9491 = var2.aShortArray9491;
            var1.aShortArray9492 = var2.aShortArray9492;
            var1.aShortArray9504 = var2.aShortArray9504;
         } else {
            var10 = this.anInt9488;
            var1.aShortArray9491 = var2.aShortArray9491 = new short[var10];
            var1.aShortArray9492 = var2.aShortArray9492 = new short[var10];
            var1.aShortArray9504 = var2.aShortArray9504 = new short[var10];
         }

         if(this.aClass370_9497 != null) {
            if(var2.aClass370_9497 == null) {
               var2.aClass370_9497 = new Class370();
            }

            Class370 var12 = var1.aClass370_9497 = var2.aClass370_9497;
            if(var12.aShortArray4625 == null || var12.aShortArray4625.length < this.anInt9488) {
               var11 = this.anInt9488;
               var12.aShortArray4625 = new short[var11];
               var12.aShortArray4626 = new short[var11];
               var12.aShortArray4628 = new short[var11];
               var12.aByteArray4627 = new byte[var11];
            }

            for(var11 = 0; var11 < this.anInt9488; ++var11) {
               var1.aShortArray9491[var11] = this.aShortArray9491[var11];
               var1.aShortArray9492[var11] = this.aShortArray9492[var11];
               var1.aShortArray9504[var11] = this.aShortArray9504[var11];
               var12.aShortArray4625[var11] = this.aClass370_9497.aShortArray4625[var11];
               var12.aShortArray4626[var11] = this.aClass370_9497.aShortArray4626[var11];
               var12.aShortArray4628[var11] = this.aClass370_9497.aShortArray4628[var11];
               var12.aByteArray4627[var11] = this.aClass370_9497.aByteArray4627[var11];
            }
         } else {
            var1.aClass370_9497 = null;

            for(var10 = 0; var10 < this.anInt9488; ++var10) {
               var1.aShortArray9491[var10] = this.aShortArray9491[var10];
               var1.aShortArray9492[var10] = this.aShortArray9492[var10];
               var1.aShortArray9504[var10] = this.aShortArray9504[var10];
            }
         }

         var1.aByteArray9494 = this.aByteArray9494;
      } else {
         var1.aClass370_9497 = this.aClass370_9497;
         var1.aShortArray9491 = this.aShortArray9491;
         var1.aShortArray9492 = this.aShortArray9492;
         var1.aShortArray9504 = this.aShortArray9504;
         var1.aByteArray9494 = this.aByteArray9494;
      }

      if(Class71.method1498(var3, this.anInt9478)) {
         var1.aClass359_9511 = var2.aClass359_9511;
         var1.aClass359_9511.anInterface35_4491 = this.aClass359_9511.anInterface35_4491;
         var1.aClass359_9511.aBool4490 = this.aClass359_9511.aBool4490;
         var1.aClass359_9511.aBool4489 = true;
      } else if(Class71.method1500(var3, this.anInt9478)) {
         var1.aClass359_9511 = this.aClass359_9511;
      } else {
         var1.aClass359_9511 = null;
      }

      if(Class71.method1516(var3, this.anInt9478)) {
         if(var2.aFloatArray9495 != null && var2.aFloatArray9495.length >= this.anInt9498) {
            var1.aFloatArray9495 = var2.aFloatArray9495;
            var1.aFloatArray9496 = var2.aFloatArray9496;
         } else {
            var10 = this.anInt9488;
            var1.aFloatArray9495 = var2.aFloatArray9495 = new float[var10];
            var1.aFloatArray9496 = var2.aFloatArray9496 = new float[var10];
         }

         for(var10 = 0; var10 < this.anInt9488; ++var10) {
            var1.aFloatArray9495[var10] = this.aFloatArray9495[var10];
            var1.aFloatArray9496[var10] = this.aFloatArray9496[var10];
         }
      } else {
         var1.aFloatArray9495 = this.aFloatArray9495;
         var1.aFloatArray9496 = this.aFloatArray9496;
      }

      if(Class71.method1507(var3, this.anInt9478)) {
         var1.aClass359_9544 = var2.aClass359_9544;
         var1.aClass359_9544.anInterface35_4491 = this.aClass359_9544.anInterface35_4491;
         var1.aClass359_9544.aBool4490 = this.aClass359_9544.aBool4490;
         var1.aClass359_9544.aBool4489 = true;
      } else if(Class71.method1502(var3, this.anInt9478)) {
         var1.aClass359_9544 = this.aClass359_9544;
      } else {
         var1.aClass359_9544 = null;
      }

      if(Class71.method1495(var3, this.anInt9478)) {
         if(var2.aShortArray9502 != null && var2.aShortArray9502.length >= this.anInt9498) {
            var1.aShortArray9502 = var2.aShortArray9502;
            var1.aShortArray9534 = var2.aShortArray9534;
            var1.aShortArray9548 = var2.aShortArray9548;
         } else {
            var10 = this.anInt9498;
            var1.aShortArray9502 = var2.aShortArray9502 = new short[var10];
            var1.aShortArray9534 = var2.aShortArray9534 = new short[var10];
            var1.aShortArray9548 = var2.aShortArray9548 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9502[var10] = this.aShortArray9502[var10];
            var1.aShortArray9534[var10] = this.aShortArray9534[var10];
            var1.aShortArray9548[var10] = this.aShortArray9548[var10];
         }
      } else {
         var1.aShortArray9502 = this.aShortArray9502;
         var1.aShortArray9534 = this.aShortArray9534;
         var1.aShortArray9548 = this.aShortArray9548;
      }

      if(Class71.method1508(var3, this.anInt9478)) {
         var1.aClass350_9508 = var2.aClass350_9508;
         var1.aClass350_9508.anInterface40_4451 = this.aClass350_9508.anInterface40_4451;
         var1.aClass350_9508.aBool4453 = this.aClass350_9508.aBool4453;
         var1.aClass350_9508.aBool4452 = true;
      } else if(Class71.method1503(var3, this.anInt9478)) {
         var1.aClass350_9508 = this.aClass350_9508;
      } else {
         var1.aClass350_9508 = null;
      }

      if(Class71.method1496(var3, this.anInt9478)) {
         if(var2.aShortArray9505 != null && var2.aShortArray9505.length >= this.anInt9498) {
            var1.aShortArray9505 = var2.aShortArray9505;
         } else {
            var10 = this.anInt9498;
            var1.aShortArray9505 = var2.aShortArray9505 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9498; ++var10) {
            var1.aShortArray9505[var10] = this.aShortArray9505[var10];
         }
      } else {
         var1.aShortArray9505 = this.aShortArray9505;
      }

      if(Class71.method1551(var3, this.anInt9478)) {
         if(var2.aClass360Array9535 != null && var2.aClass360Array9535.length >= this.anInt9533) {
            var1.aClass360Array9535 = var2.aClass360Array9535;

            for(var10 = 0; var10 < this.anInt9533; ++var10) {
               var1.aClass360Array9535[var10].method6435(this.aClass360Array9535[var10]);
            }
         } else {
            var10 = this.anInt9533;
            var1.aClass360Array9535 = var2.aClass360Array9535 = new Class360[var10];

            for(var11 = 0; var11 < this.anInt9533; ++var11) {
               var1.aClass360Array9535[var11] = this.aClass360Array9535[var11].method6433();
            }
         }
      } else {
         var1.aClass360Array9535 = this.aClass360Array9535;
      }

      var1.aClass61Array9481 = this.aClass61Array9481;
      if(this.aBool9493) {
         var1.anInt9517 = this.anInt9517;
         var1.anInt9518 = this.anInt9518;
         var1.anInt9522 = this.anInt9522;
         var1.anInt9482 = this.anInt9482;
         var1.anInt9520 = this.anInt9520;
         var1.anInt9521 = this.anInt9521;
         var1.anInt9519 = this.anInt9519;
         var1.anInt9525 = this.anInt9525;
         var1.aBool9493 = true;
      } else {
         var1.aBool9493 = false;
      }

      var1.anIntArrayArray9486 = this.anIntArrayArray9486;
      var1.anIntArrayArray9506 = this.anIntArrayArray9506;
      var1.anIntArrayArray9536 = this.anIntArrayArray9536;
      var1.aShortArray9530 = this.aShortArray9530;
      var1.anIntArray9529 = this.anIntArray9529;
      var1.aShortArray9489 = this.aShortArray9489;
      var1.aShortArray9523 = this.aShortArray9523;
      var1.aShortArray9485 = this.aShortArray9485;
      var1.aShortArray9507 = this.aShortArray9507;
      var1.anIntArray9526 = this.anIntArray9526;
      var1.anIntArray9528 = this.anIntArray9528;
      var1.anIntArray9490 = this.anIntArray9490;
      var1.aClass80Array9531 = this.aClass80Array9531;
      var1.aClass166Array9500 = this.aClass166Array9500;
      return var1;
   }

   boolean ea() {
      if(this.anIntArrayArray9486 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9503; ++var1) {
            this.anIntArray9483[var1] <<= 4;
            this.anIntArray9484[var1] <<= 4;
            this.anIntArray9512[var1] <<= 4;
         }

         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;
         return true;
      }
   }

   public void method12095(Class328 var1) {
      Class317 var2 = this.aClass545_Sub2_9487.aClass317_9649;
      var2.method5613(var1);
      int var3;
      if(this.aClass80Array9531 != null) {
         for(var3 = 0; var3 < this.aClass80Array9531.length; ++var3) {
            Class80 var4 = this.aClass80Array9531[var3];
            Class80 var5 = var4;
            if(var4.aClass80_813 != null) {
               var5 = var4.aClass80_813;
            }

            var5.anInt818 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * -106916481;
            var5.anInt819 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * 1242813859;
            var5.anInt820 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt823 * -1938327915] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt823 * -1938327915] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt823 * -1938327915]) * -1262846693;
            var5.anInt821 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * 1390482017;
            var5.anInt822 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * 113198053;
            var5.anInt812 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt817 * 155642623] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt817 * 155642623] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt817 * 155642623]) * -345033777;
            var5.anInt814 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * 1898027;
            var5.anInt825 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * 572237437;
            var5.anInt826 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var4.anInt816 * 1387679] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var4.anInt816 * 1387679] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var4.anInt816 * 1387679]) * -1729217923;
         }
      }

      if(this.aClass166Array9500 != null) {
         for(var3 = 0; var3 < this.aClass166Array9500.length; ++var3) {
            Class166 var6 = this.aClass166Array9500[var3];
            Class166 var7 = var6;
            if(var6.aClass166_2016 != null) {
               var7 = var6.aClass166_2016;
            }

            if(var6.aClass317_2019 != null) {
               var6.aClass317_2019.method5609(var2);
            } else {
               var6.aClass317_2019 = new Class317(var2);
            }

            var7.anInt2018 = (int)(var2.aFloatArray4000[12] + var2.aFloatArray4000[0] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[4] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[8] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -404024063;
            var7.anInt2015 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[5] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[9] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -212113837;
            var7.anInt2020 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9483[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[6] * (float)this.anIntArray9484[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[10] * (float)this.anIntArray9512[var6.anInt2017 * 1229316477]) * -306574699;
         }
      }

   }

   static short[] method14898(short[] var0, int var1) {
      short[] var2 = new short[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   public int ca() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9517;
   }

   public void bw(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9484[var4] = this.anIntArray9484[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public int cp() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9522;
   }

   public int ck() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9522;
   }

   void w(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < this.anInt9537; ++var11) {
            this.anInt9524 += this.anIntArray9483[var11];
            this.anInt9545 += this.anIntArray9484[var11];
            this.anInt9546 += this.anIntArray9512[var11];
            ++var5;
         }

         if(var5 > 0) {
            this.anInt9524 = this.anInt9524 / var5 + var2;
            this.anInt9545 = this.anInt9545 / var5 + var3;
            this.anInt9546 = this.anInt9546 / var5 + var4;
         } else {
            this.anInt9524 = var2;
            this.anInt9545 = var3;
            this.anInt9546 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9537; ++var5) {
            this.anIntArray9483[var5] += var2;
            this.anIntArray9484[var5] += var3;
            this.anIntArray9512[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9484[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = this.anIntArray9484[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               if(var2 != 0) {
                  var11 = Class312.anIntArray3943[var2];
                  var7 = Class312.anIntArray3956[var2];
                  var8 = this.anIntArray9484[var5] * var7 - this.anIntArray9512[var5] * var11 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9484[var5] * var11 + this.anIntArray9512[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = var8;
               }

               if(var3 != 0) {
                  var11 = Class312.anIntArray3943[var3];
                  var7 = Class312.anIntArray3956[var3];
                  var8 = this.anIntArray9512[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9512[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               this.anIntArray9483[var5] = this.anIntArray9483[var5] * var2 / 128;
               this.anIntArray9484[var5] = this.anIntArray9484[var5] * var3 / 128;
               this.anIntArray9512[var5] = this.anIntArray9512[var5] * var4 / 128;
               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else {
            Class61 var10;
            Class360 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = (this.aByteArray9501[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

                  this.aByteArray9501[var5] = (byte)var11;
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var10.anInt565] & 255) << 24;
                  }
               }

               this.method14910();
            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = this.aShortArray9476[var5] & '\uffff';
                  var7 = var11 >> 10 & 63;
                  var8 = var11 >> 7 & 7;
                  int var9 = var11 & 127;
                  var7 = var7 + var2 & 63;
                  var8 += var3 / 4;
                  if(var8 < 0) {
                     var8 = 0;
                  } else if(var8 > 7) {
                     var8 = 7;
                  }

                  var9 += var4;
                  if(var9 < 0) {
                     var9 = 0;
                  } else if(var9 > 127) {
                     var9 = 127;
                  }

                  this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
                  }
               }

               this.method14910();
            } else {
               Class360 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4497 += var2;
                     var6.anInt4495 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4493 = var6.anInt4493 * var2 >> 7;
                     var6.anInt4494 = var6.anInt4494 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4498 = var6.anInt4498 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   public int ce() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9520;
   }

   public void method12069(Class328 var1, Class89 var2, int var3) {
      if(aClass342_9514 != null) {
         aClass342_9514.method6268();
      }

      if(var2 != null) {
         var2.aBool886 = false;
      }

      if(this.anInt9488 != 0) {
         Class317 var4 = this.aClass545_Sub2_9487.aClass317_9659;
         Class317 var5 = this.aClass545_Sub2_9487.aClass317_9649;
         Class317 var6 = this.aClass545_Sub2_9487.aClass317_9624;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub2_9487.aClass317_9663);
         if(!this.aBool9493) {
            this.method14876();
         }

         float[] var7 = this.aClass545_Sub2_9487.aFloatArray9652;
         var5.method5618(0.0F, (float)this.anInt9520, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.anInt9521, 0.0F, var7);
         float var11 = var7[0];
         float var12 = var7[1];
         float var13 = var7[2];

         float var17;
         float var16;
         for(int var14 = 0; var14 < 6; ++var14) {
            float[] var15 = this.aClass545_Sub2_9487.aFloatArrayArray9665[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9518;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9518;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.anInt9522 + this.anInt9482 >> 1;
            int var21 = this.anInt9519 + this.anInt9525 >> 1;
            int var23 = this.anInt9520;
            float var34 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var33 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            var16 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            var17 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var16 >= -var17) {
               var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.anInt9521;
            float var25 = var6.aFloatArray4000[0] * (float)var20 + var6.aFloatArray4000[4] * (float)var23 + var6.aFloatArray4000[8] * (float)var21 + var6.aFloatArray4000[12];
            float var26 = var6.aFloatArray4000[1] * (float)var20 + var6.aFloatArray4000[5] * (float)var23 + var6.aFloatArray4000[9] * (float)var21 + var6.aFloatArray4000[13];
            float var27 = var6.aFloatArray4000[2] * (float)var20 + var6.aFloatArray4000[6] * (float)var23 + var6.aFloatArray4000[10] * (float)var21 + var6.aFloatArray4000[14];
            float var28 = var6.aFloatArray4000[3] * (float)var20 + var6.aFloatArray4000[7] * (float)var23 + var6.aFloatArray4000[11] * (float)var21 + var6.aFloatArray4000[15];
            if(var27 >= -var28) {
               var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var26 / var28);
            } else {
               var18 = true;
            }

            float var29;
            float var30;
            if(var18) {
               if(var16 < -var17 && var27 < -var28) {
                  var19 = false;
               } else {
                  float var31;
                  float var32;
                  if(var16 < -var17) {
                     var29 = (var16 + var17) / (var27 + var28) - 1.0F;
                     var30 = var34 + var29 * (var25 - var34);
                     var31 = var33 + var29 * (var26 - var33);
                     var32 = var17 + var29 * (var28 - var17);
                     var2.anInt884 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  } else if(var27 < -var28) {
                     var29 = (var27 + var28) / (var16 + var17) - 1.0F;
                     var30 = var25 + var29 * (var34 - var25);
                     var31 = var26 + var29 * (var33 - var26);
                     var32 = var28 + var29 * (var17 - var28);
                     var2.anInt887 = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var31 / var32);
                  }
               }
            }

            if(var19) {
               if(var16 / var17 > var27 / var28) {
                  var29 = var34 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var17 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt884 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               } else {
                  var29 = var25 + var4.aFloatArray4000[0] * (float)this.anInt9518 + var4.aFloatArray4000[12];
                  var30 = var28 + var4.aFloatArray4000[3] * (float)this.anInt9518 + var4.aFloatArray4000[15];
                  var2.anInt883 = (int)(this.aClass545_Sub2_9487.aFloat9666 - (float)var2.anInt887 + this.aClass545_Sub2_9487.aFloat9667 * var29 / var30);
               }

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub2_9487.method15089(var3);
         this.method14887(var1);
         this.aClass545_Sub2_9487.method15089(0);
         var5.method5613(var1);
         var5.method5612(this.aClass545_Sub2_9487.aClass317_9766);
         this.method14900(var5);
      }
   }

   public int cl() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9520;
   }

   public int ct() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9482;
   }

   public int cc() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9521;
   }

   public int cn() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9521;
   }

   public int cs() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9519;
   }

   public int cb() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9525;
   }

   public int de() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9525;
   }

   public int dk() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9525;
   }

   public void af(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      int var4;
      int var5;
      for(var4 = 0; var4 < this.anInt9537; ++var4) {
         var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9488; ++var4) {
         var5 = this.aShortArray9504[var4] * var2 + this.aShortArray9491[var4] * var3 >> 14;
         this.aShortArray9504[var4] = (short)(this.aShortArray9504[var4] * var3 - this.aShortArray9491[var4] * var2 >> 14);
         this.aShortArray9491[var4] = (short)var5;
      }

      this.method14871();
      this.method14877();
      this.aBool9493 = false;
   }

   public Class225_Sub14_Sub16 ch(Class225_Sub14_Sub16 var1) {
      if(this.anInt9488 == 0) {
         return null;
      } else {
         if(!this.aBool9493) {
            this.method14876();
         }

         int var2;
         int var3;
         if(this.aClass545_Sub2_9487.anInt9784 > 0) {
            var2 = this.anInt9522 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var3 = this.anInt9482 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         } else {
            var2 = this.anInt9522 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var3 = this.anInt9482 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         }

         int var4;
         int var5;
         if(this.aClass545_Sub2_9487.anInt9687 > 0) {
            var4 = this.anInt9519 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var5 = this.anInt9525 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         } else {
            var4 = this.anInt9519 - (this.anInt9520 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
            var5 = this.anInt9525 - (this.anInt9521 * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711;
         }

         int var6 = var3 - var2 + 1;
         int var7 = var5 - var4 + 1;
         Class225_Sub14_Sub16_Sub1 var8 = (Class225_Sub14_Sub16_Sub1)var1;
         Class225_Sub14_Sub16_Sub1 var9;
         if(var8 != null && var8.method16449(var6, var7)) {
            var9 = var8;
            var8.method16447();
         } else {
            var9 = new Class225_Sub14_Sub16_Sub1(this.aClass545_Sub2_9487, var6, var7);
         }

         var9.method16448(var2, var4, var3, var5);
         this.method14894(var9);
         return var9;
      }
   }

   public void dc(int var1) {
      this.aShort9474 = (short)var1;
      this.method14871();
      this.method14877();
   }

   public void dw(int var1) {
      this.aShort9474 = (short)var1;
      this.method14871();
      this.method14877();
   }

   public void method12139(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   public void dj(short var1, short var2) {
      Interface24 var3 = this.aClass545_Sub2_9487.anInterface24_7370;

      for(int var4 = 0; var4 < this.anInt9498; ++var4) {
         if(this.aShortArray9505[var4] == var1) {
            this.aShortArray9505[var4] = var2;
         }
      }

      byte var11 = 0;
      byte var5 = 0;
      if(var1 != -1) {
         Class161 var6 = var3.method113(var1 & '\uffff', -1961997697);
         var11 = var6.aByte1990;
         var5 = var6.aByte1991;
      }

      byte var12 = 0;
      byte var7 = 0;
      if(var2 != -1) {
         Class161 var8 = var3.method113(var2 & '\uffff', -1866314779);
         var12 = var8.aByte1990;
         var7 = var8.aByte1991;
         if(var8.aByte1972 != 0 || var8.aByte1993 != 0) {
            this.aBool9516 = true;
         }
      }

      if(var11 != var12 | var5 != var7) {
         if(this.aClass61Array9481 != null) {
            for(int var13 = 0; var13 < this.anInt9533; ++var13) {
               Class61 var9 = this.aClass61Array9481[var13];
               Class360 var10 = this.aClass360Array9535[var13];
               var10.anInt4496 = var10.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var9.anInt565] & '\uffff'] & 16777215;
            }
         }

         this.method14910();
      }

   }

   public boolean method12107() {
      if(this.aShortArray9505 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9505.length; ++var1) {
            if(this.aShortArray9505[var1] != -1 && !this.aClass545_Sub2_9487.aClass58_9721.method1268(this.aShortArray9505[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

   void method14899() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   public int dd() {
      return this.aShort9474;
   }

   public int native_do() {
      return this.aShort9474;
   }

   public int dx() {
      return this.aShort9474;
   }

   public int dv() {
      return this.aShort9474;
   }

   public int ci() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9520;
   }

   public byte[] da() {
      return this.aByteArray9501;
   }

   public void bu(int var1, int var2, Class400 var3, Class400 var4, int var5, int var6, int var7) {
      if(!this.aBool9493) {
         this.method14876();
      }

      int var8 = var5 + this.anInt9522;
      int var9 = var5 + this.anInt9482;
      int var10 = var7 + this.anInt9519;
      int var11 = var7 + this.anInt9525;
      if(var1 != 1 && var1 != 2 && var1 != 3 && var1 != 5 || var8 >= 0 && var9 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4911 * 1724373523 && var10 >= 0 && var11 + var3.anInt4910 * 2111724147 >> var3.anInt4909 * -1451148795 < var3.anInt4908 * 1696648095) {
         if(var1 != 4 && var1 != 5) {
            var8 >>= var3.anInt4909 * -1451148795;
            var9 = var9 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            var10 >>= var3.anInt4909 * -1451148795;
            var11 = var11 + (var3.anInt4910 * 2111724147 - 1) >> var3.anInt4909 * -1451148795;
            if(var3.method6789(var8, var10, (byte)3) == var6 && var3.method6789(var9, var10, (byte)3) == var6 && var3.method6789(var8, var11, (byte)3) == var6 && var3.method6789(var9, var11, (byte)3) == var6) {
               return;
            }
         } else {
            if(var4 == null) {
               return;
            }

            if(var8 < 0 || var9 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4911 * 1724373523 || var10 < 0 || var11 + var4.anInt4910 * 2111724147 >> var4.anInt4909 * -1451148795 >= var4.anInt4908 * 1696648095) {
               return;
            }
         }

         int var12;
         if(var1 == 1) {
            for(var12 = 0; var12 < this.anInt9537; ++var12) {
               this.anIntArray9484[var12] = this.anIntArray9484[var12] + var3.method6791(this.anIntArray9483[var12] + var5, this.anIntArray9512[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               var12 = this.anInt9520;
               if(var12 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9537; ++var13) {
                  var14 = (this.anIntArray9484[var13] << 16) / var12;
                  if(var14 < var2) {
                     this.anIntArray9484[var13] += (var3.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) * (var2 - var14) / var2;
                  }
               }
            } else {
               int var15;
               if(var1 == 3) {
                  var12 = (var2 & 255) * 4;
                  var13 = (var2 >> 8 & 255) * 4;
                  var14 = (var2 >> 16 & 255) << 6;
                  var15 = (var2 >> 24 & 255) << 6;
                  if(var5 - (var12 >> 1) < 0 || var5 + (var12 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4911 * 1724373523 << var3.anInt4909 * -1451148795 || var7 - (var13 >> 1) < 0 || var7 + (var13 >> 1) + var3.anInt4910 * 2111724147 >= var3.anInt4908 * 1696648095 << var3.anInt4909 * -1451148795) {
                     return;
                  }

                  this.method12121(var3, var5, var6, var7, var12, var13, var14, var15);
               } else if(var1 == 4) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     this.anIntArray9484[var13] = this.anIntArray9484[var13] + (var4.method6791(this.anIntArray9483[var13] + var5, this.anIntArray9512[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.anInt9521 - this.anInt9520;

                  for(var13 = 0; var13 < this.anInt9537; ++var13) {
                     var14 = this.anIntArray9483[var13] + var5;
                     var15 = this.anIntArray9512[var13] + var7;
                     int var16 = var3.method6791(var14, var15, 701663251);
                     int var17 = var4.method6791(var14, var15, 701663251);
                     int var18 = var16 - var17 - var2;
                     this.anIntArray9484[var13] = ((this.anIntArray9484[var13] << 8) / var12 * var18 >> 8) - (var6 - var16);
                  }
               }
            }
         }

         this.method14871();
         this.aBool9493 = false;
      }
   }

   void method14900(Class317 var1) {
      if(this.aClass61Array9481 != null) {
         this.aClass545_Sub2_9487.RA(!this.aBool9515);
         Class328 var2 = this.aClass545_Sub2_9487.aClass328_9648;
         Class70 var3 = this.aClass545_Sub2_9487.aClass70_9707;

         for(int var4 = 0; var4 < this.anInt9533; ++var4) {
            Class61 var5 = this.aClass61Array9481[var4];
            Class360 var6 = this.aClass360Array9535[var4];
            if(!var5.aBool569 || !this.aClass545_Sub2_9487.method11588()) {
               float var7 = (float)(this.anIntArray9483[var5.anInt568] + this.anIntArray9483[var5.anInt564] + this.anIntArray9483[var5.anInt567]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9484[var5.anInt568] + this.anIntArray9484[var5.anInt564] + this.anIntArray9484[var5.anInt567]) * 0.3333333F;
               float var9 = (float)(this.anIntArray9512[var5.anInt568] + this.anIntArray9512[var5.anInt564] + this.anIntArray9512[var5.anInt567]) * 0.3333333F;
               float var10 = var1.aFloatArray4000[0] * var7 + var1.aFloatArray4000[4] * var8 + var1.aFloatArray4000[8] * var9 + var1.aFloatArray4000[12];
               float var11 = var1.aFloatArray4000[1] * var7 + var1.aFloatArray4000[5] * var8 + var1.aFloatArray4000[9] * var9 + var1.aFloatArray4000[13];
               float var12 = var1.aFloatArray4000[2] * var7 + var1.aFloatArray4000[6] * var8 + var1.aFloatArray4000[10] * var9 + var1.aFloatArray4000[14];
               float var13 = (float)(1.0D / Math.sqrt((double)(var10 * var10 + var11 * var11 + var12 * var12))) * (float)var5.anInt570;
               var2.method5993(var6.anInt4498, var6.anInt4493 * var5.aShort566 >> 7, var6.anInt4494 * var5.aShort563 >> 7, var10 + (float)var6.anInt4497 - var10 * var13, var11 + (float)var6.anInt4495 - var11 * var13, var12 - var12 * var13);
               var2.method6006(this.aClass545_Sub2_9487.aClass328_9642);
               this.aClass545_Sub2_9487.aClass317_9624.method5613(var2);
               var3.method1483(this.aClass545_Sub2_9487.aClass317_9624);
               var3.aClass317_681.method5733();
               var3.anInt684 = var6.anInt4496;
               var3.anInterface33_683 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var5.aShort562);
               var3.method1479();
            }
         }

         this.aClass545_Sub2_9487.RA(true);
      }
   }

   public void dg(int var1, int var2, int var3, int var4) {
      int var5;
      for(var5 = 0; var5 < this.anInt9498; ++var5) {
         int var6 = this.aShortArray9476[var5] & '\uffff';
         int var7 = var6 >> 10 & 63;
         int var8 = var6 >> 7 & 7;
         int var9 = var6 & 127;
         if(var1 != -1) {
            var7 += (var1 - var7) * var4 >> 7;
         }

         if(var2 != -1) {
            var8 += (var2 - var8) * var4 >> 7;
         }

         if(var3 != -1) {
            var9 += (var3 - var9) * var4 >> 7;
         }

         this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
      }

      if(this.aClass61Array9481 != null) {
         for(var5 = 0; var5 < this.anInt9533; ++var5) {
            Class61 var10 = this.aClass61Array9481[var5];
            Class360 var11 = this.aClass360Array9535[var5];
            var11.anInt4496 = var11.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
         }
      }

      this.method14910();
   }

   public void W(short var1, short var2) {
      Interface24 var3 = this.aClass545_Sub2_9487.anInterface24_7370;

      for(int var4 = 0; var4 < this.anInt9498; ++var4) {
         if(this.aShortArray9505[var4] == var1) {
            this.aShortArray9505[var4] = var2;
         }
      }

      byte var11 = 0;
      byte var5 = 0;
      if(var1 != -1) {
         Class161 var6 = var3.method113(var1 & '\uffff', 1833622209);
         var11 = var6.aByte1990;
         var5 = var6.aByte1991;
      }

      byte var12 = 0;
      byte var7 = 0;
      if(var2 != -1) {
         Class161 var8 = var3.method113(var2 & '\uffff', 1065230161);
         var12 = var8.aByte1990;
         var7 = var8.aByte1991;
         if(var8.aByte1972 != 0 || var8.aByte1993 != 0) {
            this.aBool9516 = true;
         }
      }

      if(var11 != var12 | var5 != var7) {
         if(this.aClass61Array9481 != null) {
            for(int var13 = 0; var13 < this.anInt9533; ++var13) {
               Class61 var9 = this.aClass61Array9481[var13];
               Class360 var10 = this.aClass360Array9535[var13];
               var10.anInt4496 = var10.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var9.anInt565] & '\uffff'] & 16777215;
            }
         }

         this.method14910();
      }

   }

   public Class80[] method12062() {
      return this.aClass80Array9531;
   }

   public Class166[] method12103() {
      return this.aClass166Array9500;
   }

   void cy(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;

         for(var11 = 0; var11 < this.anInt9537; ++var11) {
            this.anInt9524 += this.anIntArray9483[var11];
            this.anInt9545 += this.anIntArray9484[var11];
            this.anInt9546 += this.anIntArray9512[var11];
            ++var5;
         }

         if(var5 > 0) {
            this.anInt9524 = this.anInt9524 / var5 + var2;
            this.anInt9545 = this.anInt9545 / var5 + var3;
            this.anInt9546 = this.anInt9546 / var5 + var4;
         } else {
            this.anInt9524 = var2;
            this.anInt9545 = var3;
            this.anInt9546 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9537; ++var5) {
            this.anIntArray9483[var5] += var2;
            this.anIntArray9484[var5] += var3;
            this.anIntArray9512[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9484[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = this.anIntArray9484[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               if(var2 != 0) {
                  var11 = Class312.anIntArray3943[var2];
                  var7 = Class312.anIntArray3956[var2];
                  var8 = this.anIntArray9484[var5] * var7 - this.anIntArray9512[var5] * var11 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9484[var5] * var11 + this.anIntArray9512[var5] * var7 + 16383 >> 14;
                  this.anIntArray9484[var5] = var8;
               }

               if(var3 != 0) {
                  var11 = Class312.anIntArray3943[var3];
                  var7 = Class312.anIntArray3956[var3];
                  var8 = this.anIntArray9512[var5] * var11 + this.anIntArray9483[var5] * var7 + 16383 >> 14;
                  this.anIntArray9512[var5] = this.anIntArray9512[var5] * var7 - this.anIntArray9483[var5] * var11 + 16383 >> 14;
                  this.anIntArray9483[var5] = var8;
               }

               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9537; ++var5) {
               this.anIntArray9483[var5] -= this.anInt9524;
               this.anIntArray9484[var5] -= this.anInt9545;
               this.anIntArray9512[var5] -= this.anInt9546;
               this.anIntArray9483[var5] = this.anIntArray9483[var5] * var2 / 128;
               this.anIntArray9484[var5] = this.anIntArray9484[var5] * var3 / 128;
               this.anIntArray9512[var5] = this.anIntArray9512[var5] * var4 / 128;
               this.anIntArray9483[var5] += this.anInt9524;
               this.anIntArray9484[var5] += this.anInt9545;
               this.anIntArray9512[var5] += this.anInt9546;
            }

         } else {
            Class61 var10;
            Class360 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = (this.aByteArray9501[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

                  this.aByteArray9501[var5] = (byte)var11;
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & 16777215 | 255 - (this.aByteArray9501[var10.anInt565] & 255) << 24;
                  }
               }

               this.method14910();
            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9498; ++var5) {
                  var11 = this.aShortArray9476[var5] & '\uffff';
                  var7 = var11 >> 10 & 63;
                  var8 = var11 >> 7 & 7;
                  int var9 = var11 & 127;
                  var7 = var7 + var2 & 63;
                  var8 += var3 / 4;
                  if(var8 < 0) {
                     var8 = 0;
                  } else if(var8 > 7) {
                     var8 = 7;
                  }

                  var9 += var4;
                  if(var9 < 0) {
                     var9 = 0;
                  } else if(var9 > 127) {
                     var9 = 127;
                  }

                  this.aShortArray9476[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass61Array9481 != null) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var10 = this.aClass61Array9481[var5];
                     var12 = this.aClass360Array9535[var5];
                     var12.anInt4496 = var12.anInt4496 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9476[var10.anInt565] & '\uffff'] & 16777215;
                  }
               }

               this.method14910();
            } else {
               Class360 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4497 += var2;
                     var6.anInt4495 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4493 = var6.anInt4493 * var2 >> 7;
                     var6.anInt4494 = var6.anInt4494 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9533; ++var5) {
                     var6 = this.aClass360Array9535[var5];
                     var6.anInt4498 = var6.anInt4498 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   public boolean method12108() {
      if(this.aShortArray9505 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9505.length; ++var1) {
            if(this.aShortArray9505[var1] != -1 && !this.aClass545_Sub2_9487.aClass58_9721.method1268(this.aShortArray9505[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

   void method14901(Class225_Sub14_Sub16_Sub1 var1) {
      if(this.anIntArray9539.length < this.anInt9488) {
         this.anIntArray9539 = new int[this.anInt9488];
         this.anIntArray9540 = new int[this.anInt9488];
      }

      int var2 = 0;

      int var6;
      int var7;
      int var8;
      while(var2 < this.anInt9537) {
         int var3 = (this.anIntArray9483[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10644;
         int var4 = (this.anIntArray9512[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10645;
         int var5 = this.anIntArray9529[var2];
         var6 = this.anIntArray9529[var2 + 1];
         var7 = var5;

         while(true) {
            if(var7 < var6) {
               var8 = this.aShortArray9530[var7] - 1;
               if(var8 != -1) {
                  this.anIntArray9539[var8] = var3;
                  this.anIntArray9540[var8] = var4;
                  ++var7;
                  continue;
               }
            }

            ++var2;
            break;
         }
      }

      for(var2 = 0; var2 < this.anInt9499; ++var2) {
         if(this.aByteArray9501 == null || this.aByteArray9501[var2] <= 128) {
            short var12 = this.aShortArray9502[var2];
            short var13 = this.aShortArray9534[var2];
            short var14 = this.aShortArray9548[var2];
            var6 = this.anIntArray9539[var12];
            var7 = this.anIntArray9539[var13];
            var8 = this.anIntArray9539[var14];
            int var9 = this.anIntArray9540[var12];
            int var10 = this.anIntArray9540[var13];
            int var11 = this.anIntArray9540[var14];
            if((var6 - var7) * (var10 - var11) - (var10 - var9) * (var8 - var7) > 0) {
               var1.method16451(var9, var10, var11, var6, var7, var8);
            }
         }
      }

   }

   boolean method14902() {
      if(this.aClass350_9508.aBool4453) {
         return true;
      } else {
         if(this.aClass350_9508.anInterface40_4454 == null) {
            this.aClass350_9508.anInterface40_4454 = this.aClass545_Sub2_9487.method15075(false);
         }

         Interface40 var1 = this.aClass350_9508.anInterface40_4454;
         var1.method232(this.anInt9499 * 6);
         Unsafe var2 = this.aClass545_Sub2_9487.anUnsafe9632;
         if(var2 != null) {
            int var8 = this.anInt9499 * 6;
            long var4 = var1.method214(0, var8);
            if(var4 == 0L) {
               return false;
            } else {
               for(int var6 = 0; var6 < this.anInt9499; ++var6) {
                  var2.putShort(var4, this.aShortArray9502[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9534[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9548[var6]);
                  var4 += 2L;
               }

               var1.method215();
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            }
         } else {
            ByteBuffer var3 = this.aClass545_Sub2_9487.aByteBuffer9763;
            var3.clear();

            for(int var7 = 0; var7 < this.anInt9499; ++var7) {
               var3.putShort(this.aShortArray9502[var7]);
               var3.putShort(this.aShortArray9534[var7]);
               var3.putShort(this.aShortArray9548[var7]);
            }

            if(var1.method217(0, var3.position(), this.aClass545_Sub2_9487.aLong9730)) {
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            } else {
               return false;
            }
         }
      }
   }

   public boolean ee() {
      return this.aBool9515;
   }

   boolean method14903(int var1, int var2, int var3, int var4, Class328 var5, boolean var6, int var7) {
      Class317 var8 = this.aClass545_Sub2_9487.aClass317_9649;
      var8.method5613(var5);
      var8.method5612(this.aClass545_Sub2_9487.aClass317_9663);
      boolean var9 = false;
      float var10 = Float.MAX_VALUE;
      float var11 = -3.4028235E38F;
      float var12 = Float.MAX_VALUE;
      float var13 = -3.4028235E38F;
      if(!this.aBool9493) {
         this.method14876();
      }

      int var14 = this.anInt9482 - this.anInt9522 >> 1;
      int var15 = this.anInt9521 - this.anInt9520 >> 1;
      int var16 = this.anInt9525 - this.anInt9519 >> 1;
      int var17 = this.anInt9522 + var14;
      int var18 = this.anInt9520 + var15;
      int var19 = this.anInt9519 + var16;
      int var20 = var17 - (var14 << var7);
      int var21 = var18 - (var15 << var7);
      int var22 = var19 - (var16 << var7);
      int var23 = var17 + (var14 << var7);
      int var24 = var18 + (var15 << var7);
      int var25 = var19 + (var16 << var7);
      this.anIntArray9541[0] = var20;
      this.anIntArray9542[0] = var21;
      this.anIntArray9543[0] = var22;
      this.anIntArray9541[1] = var23;
      this.anIntArray9542[1] = var21;
      this.anIntArray9543[1] = var22;
      this.anIntArray9541[2] = var20;
      this.anIntArray9542[2] = var24;
      this.anIntArray9543[2] = var22;
      this.anIntArray9541[3] = var23;
      this.anIntArray9542[3] = var24;
      this.anIntArray9543[3] = var22;
      this.anIntArray9541[4] = var20;
      this.anIntArray9542[4] = var21;
      this.anIntArray9543[4] = var25;
      this.anIntArray9541[5] = var23;
      this.anIntArray9542[5] = var21;
      this.anIntArray9543[5] = var25;
      this.anIntArray9541[6] = var20;
      this.anIntArray9542[6] = var24;
      this.anIntArray9543[6] = var25;
      this.anIntArray9541[7] = var23;
      this.anIntArray9542[7] = var24;
      this.anIntArray9543[7] = var25;

      float var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      float var32;
      float var33;
      for(var26 = 0; var26 < 8; ++var26) {
         var27 = (float)this.anIntArray9541[var26];
         var28 = (float)this.anIntArray9542[var26];
         var29 = (float)this.anIntArray9543[var26];
         var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
         var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
         if(var30 >= -var31) {
            var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
            var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
            float var34 = this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31;
            float var35 = this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31;
            if(var34 < var10) {
               var10 = var34;
            }

            if(var34 > var11) {
               var11 = var34;
            }

            if(var35 < var12) {
               var12 = var35;
            }

            if(var35 > var13) {
               var13 = var35;
            }

            var9 = true;
         }
      }

      var26 = var1 + var3;
      int var41 = var2 + var4;
      if(var9 && (float)var26 > var10 && (float)var1 < var11 && (float)var41 > var12 && (float)var2 < var13) {
         if(var6) {
            return true;
         }

         if(this.anIntArray9539.length < this.anInt9488) {
            this.anIntArray9539 = new int[this.anInt9488];
            this.anIntArray9540 = new int[this.anInt9488];
         }

         int var40;
         for(var40 = 0; var40 < this.anInt9537; ++var40) {
            var27 = (float)this.anIntArray9483[var40];
            var28 = (float)this.anIntArray9484[var40];
            var29 = (float)this.anIntArray9512[var40];
            var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
            var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
            int var38;
            int var39;
            int var36;
            int var37;
            if(var30 >= -var31) {
               var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
               var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[var39] = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31);
                  this.anIntArray9540[var39] = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31);
               }
            } else {
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[this.aShortArray9530[var38] - 1] = -999999;
               }
            }
         }

         for(var40 = 0; var40 < this.anInt9498; ++var40) {
            if(this.anIntArray9539[this.aShortArray9502[var40]] != -999999 && this.anIntArray9539[this.aShortArray9534[var40]] != -999999 && this.anIntArray9539[this.aShortArray9548[var40]] != -999999 && this.method14886(var1, var2, var26, var41, this.anIntArray9540[this.aShortArray9502[var40]], this.anIntArray9540[this.aShortArray9534[var40]], this.anIntArray9540[this.aShortArray9548[var40]], this.anIntArray9539[this.aShortArray9502[var40]], this.anIntArray9539[this.aShortArray9534[var40]], this.anIntArray9539[this.aShortArray9548[var40]])) {
               return true;
            }
         }
      }

      return false;
   }

   public boolean eo() {
      return this.aBool9516;
   }

   void method14904() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   public void method12111() {
      if(this.anInt9488 > 0 && this.anInt9499 > 0) {
         this.method14883();
         this.method14888();
         this.method14875();
      }
   }

   public int en() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9518;
   }

   public void method12106(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   public void method12112(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   public void bk(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9484[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9484[var4] = this.anIntArray9484[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   void method14905() {
      if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   public void method12113(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   public void ac(int var1) {
      int var2 = Class312.anIntArray3943[var1];
      int var3 = Class312.anIntArray3956[var1];

      for(int var4 = 0; var4 < this.anInt9537; ++var4) {
         int var5 = this.anIntArray9512[var4] * var2 + this.anIntArray9483[var4] * var3 >> 14;
         this.anIntArray9512[var4] = this.anIntArray9512[var4] * var3 - this.anIntArray9483[var4] * var2 >> 14;
         this.anIntArray9483[var4] = var5;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   public void method12115(byte var1, byte[] var2) {
      int var3;
      if(var2 == null) {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            this.aByteArray9501[var3] = var1;
         }
      } else {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            int var4 = 255 - (255 - (var2[var3] & 255)) * (255 - (var1 & 255)) / 255;
            this.aByteArray9501[var3] = (byte)var4;
         }
      }

      this.method14910();
   }

   public void method12116(byte var1, byte[] var2) {
      int var3;
      if(var2 == null) {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            this.aByteArray9501[var3] = var1;
         }
      } else {
         for(var3 = 0; var3 < this.anInt9498; ++var3) {
            int var4 = 255 - (255 - (var2[var3] & 255)) * (255 - (var1 & 255)) / 255;
            this.aByteArray9501[var3] = (byte)var4;
         }
      }

      this.method14910();
   }

   public int cg() {
      if(!this.aBool9493) {
         this.method14876();
      }

      return this.anInt9521;
   }

   short method14906(Class96 var1, int var2, int var3, long var4, int var6, int var7, int var8, int var9, float var10, float var11) {
      int var12 = this.anIntArray9529[var2];
      int var13 = this.anIntArray9529[var2 + 1];
      int var14 = 0;

      for(int var15 = var12; var15 < var13; ++var15) {
         short var16 = this.aShortArray9530[var15];
         if(var16 == 0) {
            var14 = var15;
            break;
         }

         if(this.aLongArray9527[var15] == var4) {
            return (short)(var16 - 1);
         }
      }

      this.aShortArray9530[var14] = (short)(this.anInt9488 + 1);
      this.aLongArray9527[var14] = var4;
      this.aShortArray9523[this.anInt9488] = (short)var3;
      this.aShortArray9489[this.anInt9488] = (short)var2;
      this.aShortArray9491[this.anInt9488] = (short)var6;
      this.aShortArray9492[this.anInt9488] = (short)var7;
      this.aShortArray9504[this.anInt9488] = (short)var8;
      this.aByteArray9494[this.anInt9488] = (byte)var9;
      this.aFloatArray9495[this.anInt9488] = var10;
      this.aFloatArray9496[this.anInt9488] = var11;
      return (short)(this.anInt9488++);
   }

   public void method12110() {
      if(this.anInt9488 > 0 && this.anInt9499 > 0) {
         this.method14883();
         this.method14888();
         this.method14875();
      }
   }

   static byte[] method14907(byte[] var0, int var1) {
      byte[] var2 = new byte[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   void method14908() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   static byte[] method14909(byte[] var0, int var1) {
      byte[] var2 = new byte[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   void method14910() {
      if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   public void dr(int var1) {
      this.aShort9479 = (short)var1;
      this.method14910();
   }

   boolean bc() {
      if(this.anIntArrayArray9486 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9503; ++var1) {
            this.anIntArray9483[var1] <<= 4;
            this.anIntArray9484[var1] <<= 4;
            this.anIntArray9512[var1] <<= 4;
         }

         this.anInt9524 = 0;
         this.anInt9545 = 0;
         this.anInt9546 = 0;
         return true;
      }
   }

   static float[] method14911(float[] var0, int var1) {
      float[] var2 = new float[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   static float[] method14912(float[] var0, int var1) {
      float[] var2 = new float[var1];
      System.arraycopy(var0, 0, var2, 0, var1);
      return var2;
   }

   int method14913(int var1, int var2) {
      var2 = var2 * (var1 & 127) >> 7;
      if(var2 < 2) {
         var2 = 2;
      } else if(var2 > 126) {
         var2 = 126;
      }

      return (var1 & '\uff80') + var2;
   }

   void method14914() {
      if(this.aBool9509) {
         this.aBool9509 = false;
         if(this.aClass80Array9531 == null && this.aClass166Array9500 == null && this.aClass61Array9481 == null && !Class71.method1490(this.anInt9477, this.anInt9478)) {
            boolean var1 = false;
            boolean var2 = false;
            boolean var3 = false;
            if(this.anIntArray9483 != null && !Class71.method1571(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var1 = true;
               }
            }

            if(this.anIntArray9484 != null && !Class71.method1510(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var2 = true;
               }
            }

            if(this.anIntArray9512 != null && !Class71.method1511(this.anInt9477, this.anInt9478)) {
               if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
                  this.aBool9509 = true;
               } else {
                  if(!this.aBool9493) {
                     this.method14876();
                  }

                  var3 = true;
               }
            }

            if(var1) {
               this.anIntArray9483 = null;
            }

            if(var2) {
               this.anIntArray9484 = null;
            }

            if(var3) {
               this.anIntArray9512 = null;
            }
         }

         if(this.aShortArray9530 != null && this.anIntArray9483 == null && this.anIntArray9484 == null && this.anIntArray9512 == null) {
            this.aShortArray9530 = null;
            this.anIntArray9529 = null;
         }

         if(this.aByteArray9494 != null && !Class71.method1505(this.anInt9477, this.anInt9478)) {
            label201: {
               label200: {
                  if((this.anInt9478 & 55) != 0) {
                     if(this.aClass359_9511 != null && !this.aClass359_9511.method6430()) {
                        break label200;
                     }
                  } else if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
                     break label200;
                  }

                  this.aShortArray9504 = null;
                  this.aShortArray9492 = null;
                  this.aShortArray9491 = null;
                  this.aByteArray9494 = null;
                  break label201;
               }

               this.aBool9509 = true;
            }
         }

         if(this.aShortArray9476 != null && !Class71.method1523(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9476 = null;
            }
         }

         if(this.aByteArray9501 != null && !Class71.method1514(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aByteArray9501 = null;
            }
         }

         if(this.aFloatArray9495 != null && !Class71.method1544(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9544 != null && !this.aClass359_9544.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aFloatArray9496 = null;
               this.aFloatArray9495 = null;
            }
         }

         if(this.aShortArray9505 != null && !Class71.method1520(this.anInt9477, this.anInt9478)) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9505 = null;
            }
         }

         if(this.aShortArray9502 != null && !Class71.method1519(this.anInt9477, this.anInt9478)) {
            if((this.aClass350_9508 == null || this.aClass350_9508.method6356()) && (this.aClass359_9510 == null || this.aClass359_9510.method6430())) {
               this.aShortArray9548 = null;
               this.aShortArray9534 = null;
               this.aShortArray9502 = null;
            } else {
               this.aBool9509 = true;
            }
         }

         if(this.aShortArray9489 != null) {
            if(this.aClass359_9513 != null && !this.aClass359_9513.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9489 = null;
            }
         }

         if(this.aShortArray9523 != null) {
            if(this.aClass359_9510 != null && !this.aClass359_9510.method6430()) {
               this.aBool9509 = true;
            } else {
               this.aShortArray9523 = null;
            }
         }

         if(this.anIntArrayArray9506 != null && !Class71.method1575(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9506 = (int[][])null;
            this.aShortArray9507 = null;
         }

         if(this.anIntArrayArray9486 != null && !Class71.method1517(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9486 = (int[][])null;
            this.aShortArray9485 = null;
         }

         if(this.anIntArrayArray9536 != null && !Class71.method1518(this.anInt9477, this.anInt9478)) {
            this.anIntArrayArray9536 = (int[][])null;
         }

         if(this.anIntArray9526 != null && (this.anInt9477 & 2048) == 0 && (this.anInt9477 & 262144) == 0) {
            this.anIntArray9526 = null;
            this.anIntArray9528 = null;
            this.anIntArray9490 = null;
         }

      }
   }

   public void db(int var1) {
      this.aShort9474 = (short)var1;
      this.method14871();
      this.method14877();
   }

   void bm() {
      for(int var1 = 0; var1 < this.anInt9503; ++var1) {
         this.anIntArray9483[var1] = this.anIntArray9483[var1] + 7 >> 4;
         this.anIntArray9484[var1] = this.anIntArray9484[var1] + 7 >> 4;
         this.anIntArray9512[var1] = this.anIntArray9512[var1] + 7 >> 4;
      }

      this.method14871();
      this.aBool9493 = false;
   }

   void method14915() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   public boolean method12061(int var1, int var2, Class328 var3, boolean var4, int var5) {
      return this.method14885(var1, var2, 0, 0, var3, var4, var5);
   }

   void method14916() {
      if((this.anInt9478 & 55) != 0) {
         if(this.aClass359_9511 != null) {
            this.aClass359_9511.aBool4490 = false;
         }
      } else if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4490 = false;
      }

   }

   void method12127() {}

   void method14917() {
      if(this.aClass350_9508 != null) {
         this.aClass350_9508.aBool4453 = false;
      }

   }

   void method14918() {
      if(this.aClass350_9508 != null) {
         this.aClass350_9508.aBool4453 = false;
      }

   }

   boolean method14919(int var1, int var2, int var3, int var4, Class328 var5, boolean var6, int var7) {
      Class317 var8 = this.aClass545_Sub2_9487.aClass317_9649;
      var8.method5613(var5);
      var8.method5612(this.aClass545_Sub2_9487.aClass317_9663);
      boolean var9 = false;
      float var10 = Float.MAX_VALUE;
      float var11 = -3.4028235E38F;
      float var12 = Float.MAX_VALUE;
      float var13 = -3.4028235E38F;
      if(!this.aBool9493) {
         this.method14876();
      }

      int var14 = this.anInt9482 - this.anInt9522 >> 1;
      int var15 = this.anInt9521 - this.anInt9520 >> 1;
      int var16 = this.anInt9525 - this.anInt9519 >> 1;
      int var17 = this.anInt9522 + var14;
      int var18 = this.anInt9520 + var15;
      int var19 = this.anInt9519 + var16;
      int var20 = var17 - (var14 << var7);
      int var21 = var18 - (var15 << var7);
      int var22 = var19 - (var16 << var7);
      int var23 = var17 + (var14 << var7);
      int var24 = var18 + (var15 << var7);
      int var25 = var19 + (var16 << var7);
      this.anIntArray9541[0] = var20;
      this.anIntArray9542[0] = var21;
      this.anIntArray9543[0] = var22;
      this.anIntArray9541[1] = var23;
      this.anIntArray9542[1] = var21;
      this.anIntArray9543[1] = var22;
      this.anIntArray9541[2] = var20;
      this.anIntArray9542[2] = var24;
      this.anIntArray9543[2] = var22;
      this.anIntArray9541[3] = var23;
      this.anIntArray9542[3] = var24;
      this.anIntArray9543[3] = var22;
      this.anIntArray9541[4] = var20;
      this.anIntArray9542[4] = var21;
      this.anIntArray9543[4] = var25;
      this.anIntArray9541[5] = var23;
      this.anIntArray9542[5] = var21;
      this.anIntArray9543[5] = var25;
      this.anIntArray9541[6] = var20;
      this.anIntArray9542[6] = var24;
      this.anIntArray9543[6] = var25;
      this.anIntArray9541[7] = var23;
      this.anIntArray9542[7] = var24;
      this.anIntArray9543[7] = var25;

      float var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      float var32;
      float var33;
      for(var26 = 0; var26 < 8; ++var26) {
         var27 = (float)this.anIntArray9541[var26];
         var28 = (float)this.anIntArray9542[var26];
         var29 = (float)this.anIntArray9543[var26];
         var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
         var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
         if(var30 >= -var31) {
            var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
            var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
            float var34 = this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31;
            float var35 = this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31;
            if(var34 < var10) {
               var10 = var34;
            }

            if(var34 > var11) {
               var11 = var34;
            }

            if(var35 < var12) {
               var12 = var35;
            }

            if(var35 > var13) {
               var13 = var35;
            }

            var9 = true;
         }
      }

      var26 = var1 + var3;
      int var41 = var2 + var4;
      if(var9 && (float)var26 > var10 && (float)var1 < var11 && (float)var41 > var12 && (float)var2 < var13) {
         if(var6) {
            return true;
         }

         if(this.anIntArray9539.length < this.anInt9488) {
            this.anIntArray9539 = new int[this.anInt9488];
            this.anIntArray9540 = new int[this.anInt9488];
         }

         int var40;
         for(var40 = 0; var40 < this.anInt9537; ++var40) {
            var27 = (float)this.anIntArray9483[var40];
            var28 = (float)this.anIntArray9484[var40];
            var29 = (float)this.anIntArray9512[var40];
            var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
            var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
            int var38;
            int var39;
            int var36;
            int var37;
            if(var30 >= -var31) {
               var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
               var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[var39] = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31);
                  this.anIntArray9540[var39] = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31);
               }
            } else {
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[this.aShortArray9530[var38] - 1] = -999999;
               }
            }
         }

         for(var40 = 0; var40 < this.anInt9498; ++var40) {
            if(this.anIntArray9539[this.aShortArray9502[var40]] != -999999 && this.anIntArray9539[this.aShortArray9534[var40]] != -999999 && this.anIntArray9539[this.aShortArray9548[var40]] != -999999 && this.method14886(var1, var2, var26, var41, this.anIntArray9540[this.aShortArray9502[var40]], this.anIntArray9540[this.aShortArray9534[var40]], this.anIntArray9540[this.aShortArray9548[var40]], this.anIntArray9539[this.aShortArray9502[var40]], this.anIntArray9539[this.aShortArray9534[var40]], this.anIntArray9539[this.aShortArray9548[var40]])) {
               return true;
            }
         }
      }

      return false;
   }

   public void ay(int var1) {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.aBool4489 = Class71.method1584(var1, this.anInt9478);
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.aBool4489 = Class71.method1507(var1, this.anInt9478);
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.aBool4489 = Class71.method1506(var1, this.anInt9478);
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.aBool4489 = Class71.method1498(var1, this.anInt9478);
      }

      this.anInt9477 = var1;
      if(this.aClass370_9497 != null && (this.anInt9477 & 65536) == 0) {
         this.aShortArray9491 = this.aClass370_9497.aShortArray4625;
         this.aShortArray9492 = this.aClass370_9497.aShortArray4626;
         this.aShortArray9504 = this.aClass370_9497.aShortArray4628;
         this.aByteArray9494 = this.aClass370_9497.aByteArray4627;
         this.aClass370_9497 = null;
      }

      this.aBool9509 = true;
      this.method14875();
   }

   boolean method14920(int var1, int var2, int var3, int var4, Class328 var5, boolean var6, int var7) {
      Class317 var8 = this.aClass545_Sub2_9487.aClass317_9649;
      var8.method5613(var5);
      var8.method5612(this.aClass545_Sub2_9487.aClass317_9663);
      boolean var9 = false;
      float var10 = Float.MAX_VALUE;
      float var11 = -3.4028235E38F;
      float var12 = Float.MAX_VALUE;
      float var13 = -3.4028235E38F;
      if(!this.aBool9493) {
         this.method14876();
      }

      int var14 = this.anInt9482 - this.anInt9522 >> 1;
      int var15 = this.anInt9521 - this.anInt9520 >> 1;
      int var16 = this.anInt9525 - this.anInt9519 >> 1;
      int var17 = this.anInt9522 + var14;
      int var18 = this.anInt9520 + var15;
      int var19 = this.anInt9519 + var16;
      int var20 = var17 - (var14 << var7);
      int var21 = var18 - (var15 << var7);
      int var22 = var19 - (var16 << var7);
      int var23 = var17 + (var14 << var7);
      int var24 = var18 + (var15 << var7);
      int var25 = var19 + (var16 << var7);
      this.anIntArray9541[0] = var20;
      this.anIntArray9542[0] = var21;
      this.anIntArray9543[0] = var22;
      this.anIntArray9541[1] = var23;
      this.anIntArray9542[1] = var21;
      this.anIntArray9543[1] = var22;
      this.anIntArray9541[2] = var20;
      this.anIntArray9542[2] = var24;
      this.anIntArray9543[2] = var22;
      this.anIntArray9541[3] = var23;
      this.anIntArray9542[3] = var24;
      this.anIntArray9543[3] = var22;
      this.anIntArray9541[4] = var20;
      this.anIntArray9542[4] = var21;
      this.anIntArray9543[4] = var25;
      this.anIntArray9541[5] = var23;
      this.anIntArray9542[5] = var21;
      this.anIntArray9543[5] = var25;
      this.anIntArray9541[6] = var20;
      this.anIntArray9542[6] = var24;
      this.anIntArray9543[6] = var25;
      this.anIntArray9541[7] = var23;
      this.anIntArray9542[7] = var24;
      this.anIntArray9543[7] = var25;

      float var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      float var32;
      float var33;
      for(var26 = 0; var26 < 8; ++var26) {
         var27 = (float)this.anIntArray9541[var26];
         var28 = (float)this.anIntArray9542[var26];
         var29 = (float)this.anIntArray9543[var26];
         var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
         var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
         if(var30 >= -var31) {
            var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
            var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
            float var34 = this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31;
            float var35 = this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31;
            if(var34 < var10) {
               var10 = var34;
            }

            if(var34 > var11) {
               var11 = var34;
            }

            if(var35 < var12) {
               var12 = var35;
            }

            if(var35 > var13) {
               var13 = var35;
            }

            var9 = true;
         }
      }

      var26 = var1 + var3;
      int var41 = var2 + var4;
      if(var9 && (float)var26 > var10 && (float)var1 < var11 && (float)var41 > var12 && (float)var2 < var13) {
         if(var6) {
            return true;
         }

         if(this.anIntArray9539.length < this.anInt9488) {
            this.anIntArray9539 = new int[this.anInt9488];
            this.anIntArray9540 = new int[this.anInt9488];
         }

         int var40;
         for(var40 = 0; var40 < this.anInt9537; ++var40) {
            var27 = (float)this.anIntArray9483[var40];
            var28 = (float)this.anIntArray9484[var40];
            var29 = (float)this.anIntArray9512[var40];
            var30 = var8.aFloatArray4000[2] * var27 + var8.aFloatArray4000[6] * var28 + var8.aFloatArray4000[10] * var29 + var8.aFloatArray4000[14];
            var31 = var8.aFloatArray4000[3] * var27 + var8.aFloatArray4000[7] * var28 + var8.aFloatArray4000[11] * var29 + var8.aFloatArray4000[15];
            int var38;
            int var39;
            int var36;
            int var37;
            if(var30 >= -var31) {
               var32 = var8.aFloatArray4000[0] * var27 + var8.aFloatArray4000[4] * var28 + var8.aFloatArray4000[8] * var29 + var8.aFloatArray4000[12];
               var33 = var8.aFloatArray4000[1] * var27 + var8.aFloatArray4000[5] * var28 + var8.aFloatArray4000[9] * var29 + var8.aFloatArray4000[13];
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[var39] = (int)(this.aClass545_Sub2_9487.aFloat9666 + this.aClass545_Sub2_9487.aFloat9667 * var32 / var31);
                  this.anIntArray9540[var39] = (int)(this.aClass545_Sub2_9487.aFloat9669 + this.aClass545_Sub2_9487.aFloat9740 * var33 / var31);
               }
            } else {
               var36 = this.anIntArray9529[var40];
               var37 = this.anIntArray9529[var40 + 1];

               for(var38 = var36; var38 < var37; ++var38) {
                  var39 = this.aShortArray9530[var38] - 1;
                  if(var39 == -1) {
                     break;
                  }

                  this.anIntArray9539[this.aShortArray9530[var38] - 1] = -999999;
               }
            }
         }

         for(var40 = 0; var40 < this.anInt9498; ++var40) {
            if(this.anIntArray9539[this.aShortArray9502[var40]] != -999999 && this.anIntArray9539[this.aShortArray9534[var40]] != -999999 && this.anIntArray9539[this.aShortArray9548[var40]] != -999999 && this.method14886(var1, var2, var26, var41, this.anIntArray9540[this.aShortArray9502[var40]], this.anIntArray9540[this.aShortArray9534[var40]], this.anIntArray9540[this.aShortArray9548[var40]], this.anIntArray9539[this.aShortArray9502[var40]], this.anIntArray9539[this.aShortArray9534[var40]], this.anIntArray9539[this.aShortArray9548[var40]])) {
               return true;
            }
         }
      }

      return false;
   }

   void method12087() {}

   public byte[] dy() {
      return this.aByteArray9501;
   }

   boolean method14921(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   boolean method14922(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   boolean method14923(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   boolean method14924(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
      return var4 < var5 && var4 < var6 && var4 < var7?false:(var2 > var5 && var2 > var6 && var2 > var7?false:(var3 < var8 && var3 < var9 && var3 < var10?false:var1 <= var8 || var1 <= var9 || var1 <= var10));
   }

   public void bp() {
      int var1;
      for(var1 = 0; var1 < this.anInt9537; ++var1) {
         this.anIntArray9512[var1] = -this.anIntArray9512[var1];
      }

      for(var1 = 0; var1 < this.anInt9488; ++var1) {
         this.aShortArray9504[var1] = (short)(-this.aShortArray9504[var1]);
      }

      for(var1 = 0; var1 < this.anInt9498; ++var1) {
         short var2 = this.aShortArray9502[var1];
         this.aShortArray9502[var1] = this.aShortArray9548[var1];
         this.aShortArray9548[var1] = var2;
      }

      this.method14871();
      this.method14877();
      this.method14878();
      this.aBool9493 = false;
   }

   public void method12099(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9485 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub2_9487.aClass328_9648;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9537; ++var6) {
            if((var2 & this.aShortArray9485[var6]) != 0) {
               var4.method6008((float)this.anIntArray9483[var6], (float)this.anIntArray9484[var6], (float)this.anIntArray9512[var6], var5);
               this.anIntArray9483[var6] = (int)var5[0];
               this.anIntArray9484[var6] = (int)var5[1];
               this.anIntArray9512[var6] = (int)var5[2];
            }
         }

      }
   }

   void method14925(Class225_Sub14_Sub16_Sub1 var1) {
      if(this.anIntArray9539.length < this.anInt9488) {
         this.anIntArray9539 = new int[this.anInt9488];
         this.anIntArray9540 = new int[this.anInt9488];
      }

      int var2 = 0;

      int var6;
      int var7;
      int var8;
      while(var2 < this.anInt9537) {
         int var3 = (this.anIntArray9483[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9784 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10644;
         int var4 = (this.anIntArray9512[var2] - (this.anIntArray9484[var2] * this.aClass545_Sub2_9487.anInt9687 >> 8) >> this.aClass545_Sub2_9487.anInt9711) - var1.anInt10645;
         int var5 = this.anIntArray9529[var2];
         var6 = this.anIntArray9529[var2 + 1];
         var7 = var5;

         while(true) {
            if(var7 < var6) {
               var8 = this.aShortArray9530[var7] - 1;
               if(var8 != -1) {
                  this.anIntArray9539[var8] = var3;
                  this.anIntArray9540[var8] = var4;
                  ++var7;
                  continue;
               }
            }

            ++var2;
            break;
         }
      }

      for(var2 = 0; var2 < this.anInt9499; ++var2) {
         if(this.aByteArray9501 == null || this.aByteArray9501[var2] <= 128) {
            short var12 = this.aShortArray9502[var2];
            short var13 = this.aShortArray9534[var2];
            short var14 = this.aShortArray9548[var2];
            var6 = this.anIntArray9539[var12];
            var7 = this.anIntArray9539[var13];
            var8 = this.anIntArray9539[var14];
            int var9 = this.anIntArray9540[var12];
            int var10 = this.anIntArray9540[var13];
            int var11 = this.anIntArray9540[var14];
            if((var6 - var7) * (var10 - var11) - (var10 - var9) * (var8 - var7) > 0) {
               var1.method16451(var9, var10, var11, var6, var7, var8);
            }
         }
      }

   }

   void method14926(Class317 var1) {
      if(this.aClass61Array9481 != null) {
         this.aClass545_Sub2_9487.RA(!this.aBool9515);
         Class328 var2 = this.aClass545_Sub2_9487.aClass328_9648;
         Class70 var3 = this.aClass545_Sub2_9487.aClass70_9707;

         for(int var4 = 0; var4 < this.anInt9533; ++var4) {
            Class61 var5 = this.aClass61Array9481[var4];
            Class360 var6 = this.aClass360Array9535[var4];
            if(!var5.aBool569 || !this.aClass545_Sub2_9487.method11588()) {
               float var7 = (float)(this.anIntArray9483[var5.anInt568] + this.anIntArray9483[var5.anInt564] + this.anIntArray9483[var5.anInt567]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9484[var5.anInt568] + this.anIntArray9484[var5.anInt564] + this.anIntArray9484[var5.anInt567]) * 0.3333333F;
               float var9 = (float)(this.anIntArray9512[var5.anInt568] + this.anIntArray9512[var5.anInt564] + this.anIntArray9512[var5.anInt567]) * 0.3333333F;
               float var10 = var1.aFloatArray4000[0] * var7 + var1.aFloatArray4000[4] * var8 + var1.aFloatArray4000[8] * var9 + var1.aFloatArray4000[12];
               float var11 = var1.aFloatArray4000[1] * var7 + var1.aFloatArray4000[5] * var8 + var1.aFloatArray4000[9] * var9 + var1.aFloatArray4000[13];
               float var12 = var1.aFloatArray4000[2] * var7 + var1.aFloatArray4000[6] * var8 + var1.aFloatArray4000[10] * var9 + var1.aFloatArray4000[14];
               float var13 = (float)(1.0D / Math.sqrt((double)(var10 * var10 + var11 * var11 + var12 * var12))) * (float)var5.anInt570;
               var2.method5993(var6.anInt4498, var6.anInt4493 * var5.aShort566 >> 7, var6.anInt4494 * var5.aShort563 >> 7, var10 + (float)var6.anInt4497 - var10 * var13, var11 + (float)var6.anInt4495 - var11 * var13, var12 - var12 * var13);
               var2.method6006(this.aClass545_Sub2_9487.aClass328_9642);
               this.aClass545_Sub2_9487.aClass317_9624.method5613(var2);
               var3.method1483(this.aClass545_Sub2_9487.aClass317_9624);
               var3.aClass317_681.method5733();
               var3.anInt684 = var6.anInt4496;
               var3.anInterface33_683 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var5.aShort562);
               var3.method1479();
            }
         }

         this.aClass545_Sub2_9487.RA(true);
      }
   }

   void method14927(Class317 var1) {
      if(this.aClass61Array9481 != null) {
         this.aClass545_Sub2_9487.RA(!this.aBool9515);
         Class328 var2 = this.aClass545_Sub2_9487.aClass328_9648;
         Class70 var3 = this.aClass545_Sub2_9487.aClass70_9707;

         for(int var4 = 0; var4 < this.anInt9533; ++var4) {
            Class61 var5 = this.aClass61Array9481[var4];
            Class360 var6 = this.aClass360Array9535[var4];
            if(!var5.aBool569 || !this.aClass545_Sub2_9487.method11588()) {
               float var7 = (float)(this.anIntArray9483[var5.anInt568] + this.anIntArray9483[var5.anInt564] + this.anIntArray9483[var5.anInt567]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9484[var5.anInt568] + this.anIntArray9484[var5.anInt564] + this.anIntArray9484[var5.anInt567]) * 0.3333333F;
               float var9 = (float)(this.anIntArray9512[var5.anInt568] + this.anIntArray9512[var5.anInt564] + this.anIntArray9512[var5.anInt567]) * 0.3333333F;
               float var10 = var1.aFloatArray4000[0] * var7 + var1.aFloatArray4000[4] * var8 + var1.aFloatArray4000[8] * var9 + var1.aFloatArray4000[12];
               float var11 = var1.aFloatArray4000[1] * var7 + var1.aFloatArray4000[5] * var8 + var1.aFloatArray4000[9] * var9 + var1.aFloatArray4000[13];
               float var12 = var1.aFloatArray4000[2] * var7 + var1.aFloatArray4000[6] * var8 + var1.aFloatArray4000[10] * var9 + var1.aFloatArray4000[14];
               float var13 = (float)(1.0D / Math.sqrt((double)(var10 * var10 + var11 * var11 + var12 * var12))) * (float)var5.anInt570;
               var2.method5993(var6.anInt4498, var6.anInt4493 * var5.aShort566 >> 7, var6.anInt4494 * var5.aShort563 >> 7, var10 + (float)var6.anInt4497 - var10 * var13, var11 + (float)var6.anInt4495 - var11 * var13, var12 - var12 * var13);
               var2.method6006(this.aClass545_Sub2_9487.aClass328_9642);
               this.aClass545_Sub2_9487.aClass317_9624.method5613(var2);
               var3.method1483(this.aClass545_Sub2_9487.aClass317_9624);
               var3.aClass317_681.method5733();
               var3.anInt684 = var6.anInt4496;
               var3.anInterface33_683 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var5.aShort562);
               var3.method1479();
            }
         }

         this.aClass545_Sub2_9487.RA(true);
      }
   }

   void method14928(Class317 var1) {
      if(this.aClass61Array9481 != null) {
         this.aClass545_Sub2_9487.RA(!this.aBool9515);
         Class328 var2 = this.aClass545_Sub2_9487.aClass328_9648;
         Class70 var3 = this.aClass545_Sub2_9487.aClass70_9707;

         for(int var4 = 0; var4 < this.anInt9533; ++var4) {
            Class61 var5 = this.aClass61Array9481[var4];
            Class360 var6 = this.aClass360Array9535[var4];
            if(!var5.aBool569 || !this.aClass545_Sub2_9487.method11588()) {
               float var7 = (float)(this.anIntArray9483[var5.anInt568] + this.anIntArray9483[var5.anInt564] + this.anIntArray9483[var5.anInt567]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9484[var5.anInt568] + this.anIntArray9484[var5.anInt564] + this.anIntArray9484[var5.anInt567]) * 0.3333333F;
               float var9 = (float)(this.anIntArray9512[var5.anInt568] + this.anIntArray9512[var5.anInt564] + this.anIntArray9512[var5.anInt567]) * 0.3333333F;
               float var10 = var1.aFloatArray4000[0] * var7 + var1.aFloatArray4000[4] * var8 + var1.aFloatArray4000[8] * var9 + var1.aFloatArray4000[12];
               float var11 = var1.aFloatArray4000[1] * var7 + var1.aFloatArray4000[5] * var8 + var1.aFloatArray4000[9] * var9 + var1.aFloatArray4000[13];
               float var12 = var1.aFloatArray4000[2] * var7 + var1.aFloatArray4000[6] * var8 + var1.aFloatArray4000[10] * var9 + var1.aFloatArray4000[14];
               float var13 = (float)(1.0D / Math.sqrt((double)(var10 * var10 + var11 * var11 + var12 * var12))) * (float)var5.anInt570;
               var2.method5993(var6.anInt4498, var6.anInt4493 * var5.aShort566 >> 7, var6.anInt4494 * var5.aShort563 >> 7, var10 + (float)var6.anInt4497 - var10 * var13, var11 + (float)var6.anInt4495 - var11 * var13, var12 - var12 * var13);
               var2.method6006(this.aClass545_Sub2_9487.aClass328_9642);
               this.aClass545_Sub2_9487.aClass317_9624.method5613(var2);
               var3.method1483(this.aClass545_Sub2_9487.aClass317_9624);
               var3.aClass317_681.method5733();
               var3.anInt684 = var6.anInt4496;
               var3.anInterface33_683 = this.aClass545_Sub2_9487.aClass58_9721.method1269(var5.aShort562);
               var3.method1479();
            }
         }

         this.aClass545_Sub2_9487.RA(true);
      }
   }

   public void ds(int var1) {
      this.aShort9474 = (short)var1;
      this.method14871();
      this.method14877();
   }

   boolean method14929() {
      if(this.aClass350_9508.aBool4453) {
         return true;
      } else {
         if(this.aClass350_9508.anInterface40_4454 == null) {
            this.aClass350_9508.anInterface40_4454 = this.aClass545_Sub2_9487.method15075(false);
         }

         Interface40 var1 = this.aClass350_9508.anInterface40_4454;
         var1.method232(this.anInt9499 * 6);
         Unsafe var2 = this.aClass545_Sub2_9487.anUnsafe9632;
         if(var2 != null) {
            int var8 = this.anInt9499 * 6;
            long var4 = var1.method214(0, var8);
            if(var4 == 0L) {
               return false;
            } else {
               for(int var6 = 0; var6 < this.anInt9499; ++var6) {
                  var2.putShort(var4, this.aShortArray9502[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9534[var6]);
                  var4 += 2L;
                  var2.putShort(var4, this.aShortArray9548[var6]);
                  var4 += 2L;
               }

               var1.method215();
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            }
         } else {
            ByteBuffer var3 = this.aClass545_Sub2_9487.aByteBuffer9763;
            var3.clear();

            for(int var7 = 0; var7 < this.anInt9499; ++var7) {
               var3.putShort(this.aShortArray9502[var7]);
               var3.putShort(this.aShortArray9534[var7]);
               var3.putShort(this.aShortArray9548[var7]);
            }

            if(var1.method217(0, var3.position(), this.aClass545_Sub2_9487.aLong9730)) {
               this.aClass350_9508.anInterface40_4451 = var1;
               this.aClass350_9508.aBool4453 = true;
               this.aBool9509 = true;
               return true;
            } else {
               return false;
            }
         }
      }
   }

   void method14930() {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.method6431();
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.method6431();
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.method6431();
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.method6431();
      }

      if(this.aClass350_9508 != null) {
         this.aClass350_9508.method6359();
      }

   }

   void method14931() {
      if(this.aClass359_9513 != null) {
         this.aClass359_9513.method6431();
      }

      if(this.aClass359_9544 != null) {
         this.aClass359_9544.method6431();
      }

      if(this.aClass359_9510 != null) {
         this.aClass359_9510.method6431();
      }

      if(this.aClass359_9511 != null) {
         this.aClass359_9511.method6431();
      }

      if(this.aClass350_9508 != null) {
         this.aClass350_9508.method6359();
      }

   }

   int method14932(int var1, int var2) {
      var2 = var2 * (var1 & 127) >> 7;
      if(var2 < 2) {
         var2 = 2;
      } else if(var2 > 126) {
         var2 = 126;
      }

      return (var1 & '\uff80') + var2;
   }

   int method14933(int var1, short var2, int var3) {
      int var4 = this.aClass545_Sub2_9487.anIntArray9628[this.method14913(var1, var3)];
      if(var2 != -1) {
         Class161 var5 = this.aClass545_Sub2_9487.anInterface24_7370.method113(var2 & '\uffff', 164044536);
         int var6 = var5.aByte1990 & 255;
         int var7;
         int var9;
         if(var6 != 0) {
            var7 = 131586 * var3;
            if(var6 == 256) {
               var4 = var7;
            } else {
               var9 = 256 - var6;
               var4 = ((var7 & 16711935) * var6 + (var4 & 16711935) * var9 & -16711936) + ((var7 & '\uff00') * var6 + (var4 & '\uff00') * var9 & 16711680) >> 8;
            }
         }

         var7 = var5.aByte1991 & 255;
         if(var7 != 0) {
            var7 += 256;
            int var8 = ((var4 & 16711680) >> 16) * var7;
            if(var8 > '\uffff') {
               var8 = '\uffff';
            }

            var9 = ((var4 & '\uff00') >> 8) * var7;
            if(var9 > '\uffff') {
               var9 = '\uffff';
            }

            int var10 = (var4 & 255) * var7;
            if(var10 > '\uffff') {
               var10 = '\uffff';
            }

            var4 = (var8 << 8 & 16711680) + (var9 & '\uff00') + (var10 >> 8);
         }
      }

      return var4 & 16777215;
   }
}
