import jaclib.memory.Stream;
import jaggl.OpenGL;

public class Class568_Sub1 extends Class568 {

   Class150 aClass150_9017;
   static final int anInt9018 = 7;
   static final int anInt9019 = 1;
   Class148[] aClass148Array9020;
   short aShort9021;
   static final int anInt9022 = 8;
   static final int anInt9023 = 16;
   Class545_Sub1 aClass545_Sub1_9024;
   int anInt9025;
   short aShort9026;
   byte aByte9027;
   short aShort9028;
   boolean aBool9029 = false;
   boolean aBool9030 = false;
   short[] aShortArray9031;
   int anInt9032 = 0;
   int[][] anIntArrayArray9033;
   int[] anIntArray9034;
   int[] anIntArray9035;
   int[] anIntArray9036;
   float[] aFloatArray9037;
   int anInt9038;
   int anInt9039 = 0;
   Class80[] aClass80Array9040;
   short[] aShortArray9041;
   short[] aShortArray9042;
   int[] anIntArray9043;
   Class165 aClass165_9044;
   float[] aFloatArray9045;
   static int anInt9046;
   int anInt9047 = 0;
   int anInt9048 = 0;
   short[] aShortArray9049;
   byte[] aByteArray9050;
   short[] aShortArray9051;
   short[] aShortArray9052;
   short[] aShortArray9053;
   short[] aShortArray9054;
   short[] aShortArray9055;
   static final int anInt9056 = 4;
   boolean aBool9057 = false;
   Class150 aClass150_9058;
   static final int anInt9059 = 4;
   Class150 aClass150_9060;
   int anInt9061 = 0;
   int anInt9062;
   Interface10 anInterface10_9063;
   static final int anInt9064 = 2;
   int anInt9065;
   int anInt9066;
   short aShort9067;
   short aShort9068;
   short aShort9069;
   short aShort9070;
   int[][] anIntArrayArray9071;
   boolean aBool9072 = true;
   short aShort9073;
   short[] aShortArray9074;
   int[] anIntArray9075;
   static int anInt9076;
   byte[] aByteArray9077;
   Class166[] aClass166Array9078;
   Class131 aClass131_9079;
   Class157[] aClass157Array9080;
   Class150 aClass150_9081;
   int[][] anIntArrayArray9082;
   static long[] aLongArray9083;
   static float[] aFloatArray9084 = new float[2];
   static int[] anIntArray9085 = new int[8];
   static int[] anIntArray9086 = new int[8];
   static int[] anIntArray9087 = new int[8];
   Interface15 anInterface15_9088;
   static int anInt9089;
   short[] aShortArray9090;
   static boolean aBool9091;


   public void p(int var1) {
      this.aShort9028 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

   public int YA() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9068;
   }

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

   public void method12091(Class328 var1, Class89 var2, int var3) {
      if((var3 & 2) != 0) {
         OpenGL.glPolygonMode(1032, 6913);
      }

      if(this.anInt9039 != 0) {
         Class317 var4 = this.aClass545_Sub1_9024.aClass317_9186;
         Class317 var5 = this.aClass545_Sub1_9024.aClass317_9200;
         Class317 var6 = this.aClass545_Sub1_9024.aClass317_9201;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
         if(!this.aBool9057) {
            this.method14496();
         }

         float[] var7 = this.aClass545_Sub1_9024.aFloatArray9190;
         var5.method5618(0.0F, (float)this.aShort9068, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.aShort9069, 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_Sub1_9024.aFloatArrayArray9189[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9066;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9066;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.aShort9070 + this.aShort9021 >> 1;
            int var21 = this.aShort9067 + this.aShort9073 >> 1;
            short var23 = this.aShort9068;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.aShort9069;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var32);
                  }
               }
            }

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

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub1_9024.method14556();
         this.aClass545_Sub1_9024.method14565(var5);
         this.method14493();
         this.aClass545_Sub1_9024.method14566();
         var5.method5612(this.aClass545_Sub1_9024.aClass317_9184);
         this.method14498(var5);
         if((var3 & 2) != 0) {
            OpenGL.glPolygonMode(1028, 6914);
         }

      }
   }

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

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

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

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

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

   public int AA() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9067;
   }

   public void method12100() {
      if(this.anInt9039 > 0 && this.anInt9048 > 0) {
         this.method14504(false);
         if((this.aByte9027 & 16) == 0 && this.aClass131_9079.anInterface15_1566 == null) {
            this.method14508(false);
         }

         this.method14495();
      }
   }

   void method14493() {
      if(this.anInt9048 != 0) {
         if(this.aByte9027 != 0) {
            this.method14504(true);
         }

         this.method14504(false);
         if(this.aClass131_9079 != null) {
            if(this.aClass131_9079.anInterface15_1566 == null) {
               this.method14508((this.aByte9027 & 16) != 0);
            }

            if(this.aClass131_9079.anInterface15_1566 != null) {
               this.aClass545_Sub1_9024.method14634(this.aClass150_9081 != null);
               this.aClass545_Sub1_9024.method14625(this.aClass150_9017, this.aClass150_9081, this.aClass150_9058, this.aClass150_9060);
               int var1 = this.anIntArray9043.length - 1;

               for(int var2 = 0; var2 < var1; ++var2) {
                  int var3 = this.anIntArray9043[var2];
                  int var4 = this.anIntArray9043[var2 + 1];
                  int var5 = this.aShortArray9054[var3] & '\uffff';
                  if(var5 == '\uffff') {
                     var5 = -1;
                  }

                  this.aClass545_Sub1_9024.method14638(var5, this.aClass150_9081 != null);
                  this.aClass545_Sub1_9024.method14610(this.aClass131_9079.anInterface15_1566, 4, var3 * 3, (var4 - var3) * 3);
               }
            }
         }

         this.method14495();
      }
   }

   Class568 method14494(Class568_Sub1 var1, Class568_Sub1 var2, int var3, boolean var4, boolean var5) {
      var1.aByte9027 = 0;
      var1.anInt9025 = var3;
      var1.anInt9038 = this.anInt9038;
      var1.aShort9028 = this.aShort9028;
      var1.aShort9026 = this.aShort9026;
      var1.anInt9032 = this.anInt9032;
      var1.anInt9061 = this.anInt9061;
      var1.anInt9039 = this.anInt9039;
      var1.anInt9047 = this.anInt9047;
      var1.anInt9048 = this.anInt9048;
      var1.anInt9062 = this.anInt9062;
      if((var3 & 256) != 0) {
         var1.aBool9030 = true;
      } else {
         var1.aBool9030 = this.aBool9030;
      }

      var1.aBool9029 = this.aBool9029;
      boolean var6 = Class134.method2559(var3, this.anInt9038);
      boolean var7 = Class134.method2507(var3, this.anInt9038);
      boolean var8 = Class134.method2508(var3, this.anInt9038);
      boolean var9 = var6 | var7 | var8;
      int var10;
      if(var9) {
         if(var6) {
            if(var2.anIntArray9034 != null && var2.anIntArray9034.length >= this.anInt9032) {
               var1.anIntArray9034 = var2.anIntArray9034;
            } else {
               var1.anIntArray9034 = var2.anIntArray9034 = new int[this.anInt9032];
            }
         } else {
            var1.anIntArray9034 = this.anIntArray9034;
         }

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

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

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

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

            if(var8) {
               var1.anIntArray9036[var10] = this.anIntArray9036[var10];
            }
         }
      } else {
         var1.anIntArray9034 = this.anIntArray9034;
         var1.anIntArray9035 = this.anIntArray9035;
         var1.anIntArray9036 = this.anIntArray9036;
      }

      if(Class134.method2523(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 1);
         }

         var1.aClass150_9017 = var2.aClass150_9017;
         var1.aClass150_9017.aByte1718 = this.aClass150_9017.aByte1718;
         var1.aClass150_9017.anInterface10_1716 = this.aClass150_9017.anInterface10_1716;
      } else if(Class134.method2518(var3, this.anInt9038)) {
         var1.aClass150_9017 = this.aClass150_9017;
      } else {
         var1.aClass150_9017 = null;
      }

      if(Class134.method2571(var3, this.anInt9038)) {
         if(var2.aShortArray9049 != null && var2.aShortArray9049.length >= this.anInt9047) {
            var1.aShortArray9049 = var2.aShortArray9049;
         } else {
            var1.aShortArray9049 = var2.aShortArray9049 = new short[this.anInt9047];
         }

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

      if(Class134.method2512(var3, this.anInt9038)) {
         if(var2.aByteArray9050 != null && var2.aByteArray9050.length >= this.anInt9047) {
            var1.aByteArray9050 = var2.aByteArray9050;
         } else {
            var1.aByteArray9050 = var2.aByteArray9050 = new byte[this.anInt9047];
         }

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

      if(Class134.method2590(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 2);
         }

         var1.aClass150_9058 = var2.aClass150_9058;
         var1.aClass150_9058.aByte1718 = this.aClass150_9058.aByte1718;
         var1.aClass150_9058.anInterface10_1716 = this.aClass150_9058.anInterface10_1716;
      } else if(Class134.method2551(var3, this.anInt9038)) {
         var1.aClass150_9058 = this.aClass150_9058;
      } else {
         var1.aClass150_9058 = null;
      }

      int var11;
      if(Class134.method2510(var3, this.anInt9038)) {
         if(var2.aShortArray9055 != null && var2.aShortArray9055.length >= this.anInt9039) {
            var1.aShortArray9055 = var2.aShortArray9055;
            var1.aShortArray9041 = var2.aShortArray9041;
            var1.aShortArray9042 = var2.aShortArray9042;
         } else {
            var10 = this.anInt9039;
            var1.aShortArray9055 = var2.aShortArray9055 = new short[var10];
            var1.aShortArray9041 = var2.aShortArray9041 = new short[var10];
            var1.aShortArray9042 = var2.aShortArray9042 = new short[var10];
         }

         if(this.aClass165_9044 != null) {
            if(var2.aClass165_9044 == null) {
               var2.aClass165_9044 = new Class165();
            }

            Class165 var12 = var1.aClass165_9044 = var2.aClass165_9044;
            if(var12.aShortArray2013 == null || var12.aShortArray2013.length < this.anInt9039) {
               var11 = this.anInt9039;
               var12.aShortArray2013 = new short[var11];
               var12.aShortArray2012 = new short[var11];
               var12.aShortArray2014 = new short[var11];
               var12.aByteArray2011 = new byte[var11];
            }

            for(var11 = 0; var11 < this.anInt9039; ++var11) {
               var1.aShortArray9055[var11] = this.aShortArray9055[var11];
               var1.aShortArray9041[var11] = this.aShortArray9041[var11];
               var1.aShortArray9042[var11] = this.aShortArray9042[var11];
               var12.aShortArray2013[var11] = this.aClass165_9044.aShortArray2013[var11];
               var12.aShortArray2012[var11] = this.aClass165_9044.aShortArray2012[var11];
               var12.aShortArray2014[var11] = this.aClass165_9044.aShortArray2014[var11];
               var12.aByteArray2011[var11] = this.aClass165_9044.aByteArray2011[var11];
            }
         } else {
            for(var10 = 0; var10 < this.anInt9039; ++var10) {
               var1.aShortArray9055[var10] = this.aShortArray9055[var10];
               var1.aShortArray9041[var10] = this.aShortArray9041[var10];
               var1.aShortArray9042[var10] = this.aShortArray9042[var10];
            }
         }

         var1.aByteArray9077 = this.aByteArray9077;
      } else {
         var1.aClass165_9044 = this.aClass165_9044;
         var1.aShortArray9055 = this.aShortArray9055;
         var1.aShortArray9041 = this.aShortArray9041;
         var1.aShortArray9042 = this.aShortArray9042;
         var1.aByteArray9077 = this.aByteArray9077;
      }

      if(Class134.method2578(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 4);
         }

         var1.aClass150_9081 = var2.aClass150_9081;
         var1.aClass150_9081.aByte1718 = this.aClass150_9081.aByte1718;
         var1.aClass150_9081.anInterface10_1716 = this.aClass150_9081.anInterface10_1716;
      } else if(Class134.method2519(var3, this.anInt9038)) {
         var1.aClass150_9081 = this.aClass150_9081;
      } else {
         var1.aClass150_9081 = null;
      }

      if(Class134.method2513(var3, this.anInt9038)) {
         if(var2.aFloatArray9045 != null && var2.aFloatArray9045.length >= this.anInt9047) {
            var1.aFloatArray9045 = var2.aFloatArray9045;
            var1.aFloatArray9037 = var2.aFloatArray9037;
         } else {
            var10 = this.anInt9039;
            var1.aFloatArray9045 = var2.aFloatArray9045 = new float[var10];
            var1.aFloatArray9037 = var2.aFloatArray9037 = new float[var10];
         }

         for(var10 = 0; var10 < this.anInt9039; ++var10) {
            var1.aFloatArray9045[var10] = this.aFloatArray9045[var10];
            var1.aFloatArray9037[var10] = this.aFloatArray9037[var10];
         }
      } else {
         var1.aFloatArray9045 = this.aFloatArray9045;
         var1.aFloatArray9037 = this.aFloatArray9037;
      }

      if(Class134.method2542(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 8);
         }

         var1.aClass150_9060 = var2.aClass150_9060;
         var1.aClass150_9060.aByte1718 = this.aClass150_9060.aByte1718;
         var1.aClass150_9060.anInterface10_1716 = this.aClass150_9060.anInterface10_1716;
      } else if(Class134.method2569(var3, this.anInt9038)) {
         var1.aClass150_9060 = this.aClass150_9060;
      } else {
         var1.aClass150_9060 = null;
      }

      if(Class134.method2514(var3, this.anInt9038)) {
         if(var2.aShortArray9051 != null && var2.aShortArray9051.length >= this.anInt9047) {
            var1.aShortArray9051 = var2.aShortArray9051;
            var1.aShortArray9090 = var2.aShortArray9090;
            var1.aShortArray9053 = var2.aShortArray9053;
         } else {
            var10 = this.anInt9047;
            var1.aShortArray9051 = var2.aShortArray9051 = new short[var10];
            var1.aShortArray9090 = var2.aShortArray9090 = new short[var10];
            var1.aShortArray9053 = var2.aShortArray9053 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9047; ++var10) {
            var1.aShortArray9051[var10] = this.aShortArray9051[var10];
            var1.aShortArray9090[var10] = this.aShortArray9090[var10];
            var1.aShortArray9053[var10] = this.aShortArray9053[var10];
         }
      } else {
         var1.aShortArray9051 = this.aShortArray9051;
         var1.aShortArray9090 = this.aShortArray9090;
         var1.aShortArray9053 = this.aShortArray9053;
      }

      if(Class134.method2509(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 16);
         }

         var1.aClass131_9079 = var2.aClass131_9079;
         var1.aClass131_9079.anInterface15_1566 = this.aClass131_9079.anInterface15_1566;
      } else if(Class134.method2521(var3, this.anInt9038)) {
         var1.aClass131_9079 = this.aClass131_9079;
      } else {
         var1.aClass131_9079 = null;
      }

      if(Class134.method2515(var3, this.anInt9038)) {
         if(var2.aShortArray9054 != null && var2.aShortArray9054.length >= this.anInt9047) {
            var1.aShortArray9054 = var2.aShortArray9054;
         } else {
            var10 = this.anInt9047;
            var1.aShortArray9054 = var2.aShortArray9054 = new short[var10];
         }

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

      if(Class134.method2532(var3, this.anInt9038)) {
         if(var2.aClass148Array9020 != null && var2.aClass148Array9020.length >= this.anInt9062) {
            var1.aClass148Array9020 = var2.aClass148Array9020;

            for(var10 = 0; var10 < this.anInt9062; ++var10) {
               var1.aClass148Array9020[var10].method2728(this.aClass148Array9020[var10]);
            }
         } else {
            var10 = this.anInt9062;
            var1.aClass148Array9020 = var2.aClass148Array9020 = new Class148[var10];

            for(var11 = 0; var11 < this.anInt9062; ++var11) {
               var1.aClass148Array9020[var11] = this.aClass148Array9020[var11].method2729();
            }
         }
      } else {
         var1.aClass148Array9020 = this.aClass148Array9020;
      }

      var1.aClass157Array9080 = this.aClass157Array9080;
      if(this.aBool9057) {
         var1.anInt9065 = this.anInt9065;
         var1.anInt9066 = this.anInt9066;
         var1.aShort9070 = this.aShort9070;
         var1.aShort9021 = this.aShort9021;
         var1.aShort9068 = this.aShort9068;
         var1.aShort9069 = this.aShort9069;
         var1.aShort9067 = this.aShort9067;
         var1.aShort9073 = this.aShort9073;
         var1.aBool9057 = true;
      } else {
         var1.aBool9057 = false;
      }

      var1.anIntArrayArray9033 = this.anIntArrayArray9033;
      var1.anIntArrayArray9071 = this.anIntArrayArray9071;
      var1.anIntArrayArray9082 = this.anIntArrayArray9082;
      var1.aShortArray9031 = this.aShortArray9031;
      var1.anIntArray9075 = this.anIntArray9075;
      var1.aShortArray9074 = this.aShortArray9074;
      var1.aShortArray9052 = this.aShortArray9052;
      var1.anIntArray9043 = this.anIntArray9043;
      var1.aClass80Array9040 = this.aClass80Array9040;
      var1.aClass166Array9078 = this.aClass166Array9078;
      return var1;
   }

   void method14495() {
      if(this.aBool9072) {
         this.aBool9072 = false;
         if(this.aClass80Array9040 == null && this.aClass166Array9078 == null && this.aClass157Array9080 == null && !Class134.method2526(this.anInt9025, this.anInt9038)) {
            boolean var1 = false;
            boolean var2 = false;
            boolean var3 = false;
            if(this.anIntArray9034 != null && !Class134.method2528(this.anInt9025, this.anInt9038)) {
               if(this.aClass150_9017 != null && this.aClass150_9017.anInterface10_1716 == null) {
                  this.aBool9072 = true;
               } else {
                  if(!this.aBool9057) {
                     this.method14496();
                  }

                  var1 = true;
               }
            }

            if(this.anIntArray9035 != null && !Class134.method2529(this.anInt9025, this.anInt9038)) {
               if(this.aClass150_9017 != null && this.aClass150_9017.anInterface10_1716 == null) {
                  this.aBool9072 = true;
               } else {
                  if(!this.aBool9057) {
                     this.method14496();
                  }

                  var2 = true;
               }
            }

            if(this.anIntArray9036 != null && !Class134.method2530(this.anInt9025, this.anInt9038)) {
               if(this.aClass150_9017 != null && this.aClass150_9017.anInterface10_1716 == null) {
                  this.aBool9072 = true;
               } else {
                  if(!this.aBool9057) {
                     this.method14496();
                  }

                  var3 = true;
               }
            }

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

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

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

         if(this.aShortArray9031 != null && this.anIntArray9034 == null && this.anIntArray9035 == null && this.anIntArray9036 == null) {
            this.aShortArray9031 = null;
            this.anIntArray9075 = null;
         }

         if(this.aByteArray9077 != null && !Class134.method2531(this.anInt9025, this.anInt9038)) {
            if(this.aClass150_9081 != null) {
               if(this.aClass150_9081.anInterface10_1716 != null) {
                  this.aShortArray9042 = null;
                  this.aShortArray9041 = null;
                  this.aShortArray9055 = null;
                  this.aByteArray9077 = null;
               } else {
                  this.aBool9072 = true;
               }
            } else if(this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null) {
               this.aBool9072 = true;
            } else {
               this.aShortArray9042 = null;
               this.aShortArray9041 = null;
               this.aShortArray9055 = null;
               this.aByteArray9077 = null;
            }
         }

         if(this.aShortArray9049 != null && !Class134.method2593(this.anInt9025, this.anInt9038)) {
            if(this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null) {
               this.aBool9072 = true;
            } else {
               this.aShortArray9049 = null;
            }
         }

         if(this.aByteArray9050 != null && !Class134.method2564(this.anInt9025, this.anInt9038)) {
            if(this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null) {
               this.aBool9072 = true;
            } else {
               this.aByteArray9050 = null;
            }
         }

         if(this.aFloatArray9045 != null && !Class134.method2534(this.anInt9025, this.anInt9038)) {
            if(this.aClass150_9060 != null && this.aClass150_9060.anInterface10_1716 == null) {
               this.aBool9072 = true;
            } else {
               this.aFloatArray9037 = null;
               this.aFloatArray9045 = null;
            }
         }

         if(this.aShortArray9054 != null && !Class134.method2539(this.anInt9025, this.anInt9038)) {
            if(this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null) {
               this.aBool9072 = true;
            } else {
               this.aShortArray9054 = null;
            }
         }

         if(this.aShortArray9051 != null && !Class134.method2506(this.anInt9025, this.anInt9038)) {
            if((this.aClass131_9079 == null || this.aClass131_9079.anInterface15_1566 != null) && (this.aClass150_9058 == null || this.aClass150_9058.anInterface10_1716 != null)) {
               this.aShortArray9053 = null;
               this.aShortArray9090 = null;
               this.aShortArray9051 = null;
            } else {
               this.aBool9072 = true;
            }
         }

         if(this.anIntArrayArray9071 != null && !Class134.method2533(this.anInt9025, this.anInt9038)) {
            this.anIntArrayArray9071 = (int[][])null;
            this.aShortArray9052 = null;
         }

         if(this.anIntArrayArray9033 != null && !Class134.method2536(this.anInt9025, this.anInt9038)) {
            this.anIntArrayArray9033 = (int[][])null;
            this.aShortArray9074 = null;
         }

         if(this.anIntArrayArray9082 != null && !Class134.method2516(this.anInt9025, this.anInt9038)) {
            this.anIntArrayArray9082 = (int[][])null;
         }

         if(this.anIntArray9043 != null && (this.anInt9025 & 2048) == 0 && (this.anInt9025 & 262144) == 0) {
            this.anIntArray9043 = null;
         }

      }
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      int var4;
      int var5;
      for(var4 = 0; var4 < this.anInt9061; ++var4) {
         var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9039; ++var4) {
         var5 = this.aShortArray9042[var4] * var2 + this.aShortArray9055[var4] * var3 >> 14;
         this.aShortArray9042[var4] = (short)(this.aShortArray9042[var4] * var3 - this.aShortArray9055[var4] * var2 >> 14);
         this.aShortArray9055[var4] = (short)var5;
      }

      if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var3 - this.anIntArray9036[var4] * var2 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9035[var4] * var2 + this.anIntArray9036[var4] * var3 >> 14;
         this.anIntArray9035[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9035[var4] = this.anIntArray9035[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   void method14496() {
      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.anInt9061; ++var9) {
         int var10 = this.anIntArray9034[var9];
         int var11 = this.anIntArray9035[var9];
         int var12 = this.anIntArray9036[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.aShort9070 = (short)var1;
      this.aShort9021 = (short)var4;
      this.aShort9068 = (short)var2;
      this.aShort9069 = (short)var5;
      this.aShort9067 = (short)var3;
      this.aShort9073 = (short)var6;
      this.anInt9066 = (int)(Math.sqrt((double)var7) + 0.99D);
      this.anInt9065 = (int)(Math.sqrt((double)var8) + 0.99D);
      this.aBool9057 = true;
   }

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

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

      for(var1 = 0; var1 < this.anInt9047; ++var1) {
         short var2 = this.aShortArray9051[var1];
         this.aShortArray9051[var1] = this.aShortArray9053[var1];
         this.aShortArray9053[var1] = var2;
      }

      if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      if(this.aClass131_9079 != null) {
         this.aClass131_9079.anInterface15_1566 = null;
      }

      this.aBool9057 = false;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var3 - this.anIntArray9036[var4] * var2 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9035[var4] * var2 + this.anIntArray9036[var4] * var3 >> 14;
         this.anIntArray9035[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      int var8 = var5 + this.aShort9070;
      int var9 = var5 + this.aShort9021;
      int var10 = var7 + this.aShort9067;
      int var11 = var7 + this.aShort9073;
      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.anInt9061; ++var12) {
               this.anIntArray9035[var12] = this.anIntArray9035[var12] + var3.method6791(this.anIntArray9034[var12] + var5, this.anIntArray9036[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               short var19 = this.aShort9068;
               if(var19 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9061; ++var13) {
                  var14 = (this.anIntArray9035[var13] << 16) / var19;
                  if(var14 < var2) {
                     this.anIntArray9035[var13] += (var3.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[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.aShort9069 - this.aShort9068;

                  for(var13 = 0; var13 < this.anInt9061; ++var13) {
                     this.anIntArray9035[var13] = this.anIntArray9035[var13] + (var4.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.aShort9069 - this.aShort9068;

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

         if(this.aClass150_9017 != null) {
            this.aClass150_9017.anInterface10_1716 = null;
         }

         this.aBool9057 = false;
      }
   }

   static final int method14497(int var0, int var1) {
      var1 = var1 * (var0 & 127) >> 7;
      if(var1 < 2) {
         var1 = 2;
      } else if(var1 > 126) {
         var1 = 126;
      }

      return (var0 & '\uff80') + var1;
   }

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

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

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

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public int n() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.anInt9065;
   }

   void method14498(Class317 var1) {
      if(this.aClass157Array9080 != null) {
         Class317 var2 = this.aClass545_Sub1_9024.aClass317_9264;
         this.aClass545_Sub1_9024.method14564();
         this.aClass545_Sub1_9024.RA(!this.aBool9030);
         this.aClass545_Sub1_9024.method14634(false);
         this.aClass545_Sub1_9024.method14625(this.aClass545_Sub1_9024.aClass150_9289, (Class150)null, (Class150)null, this.aClass545_Sub1_9024.aClass150_9220);

         for(int var3 = 0; var3 < this.anInt9062; ++var3) {
            Class157 var4 = this.aClass157Array9080[var3];
            Class148 var5 = this.aClass148Array9020[var3];
            if(!var4.aBool1954 || !this.aClass545_Sub1_9024.method11588()) {
               float var6 = (float)(this.anIntArray9034[var4.anInt1955] + this.anIntArray9034[var4.anInt1947] + this.anIntArray9034[var4.anInt1946]) * 0.3333333F;
               float var7 = (float)(this.anIntArray9035[var4.anInt1955] + this.anIntArray9035[var4.anInt1947] + this.anIntArray9035[var4.anInt1946]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9036[var4.anInt1955] + this.anIntArray9036[var4.anInt1947] + this.anIntArray9036[var4.anInt1946]) * 0.3333333F;
               float var9 = var1.aFloatArray4000[0] * var6 + var1.aFloatArray4000[4] * var7 + var1.aFloatArray4000[8] * var8 + var1.aFloatArray4000[12];
               float var10 = var1.aFloatArray4000[1] * var6 + var1.aFloatArray4000[5] * var7 + var1.aFloatArray4000[9] * var8 + var1.aFloatArray4000[13];
               float var11 = var1.aFloatArray4000[2] * var6 + var1.aFloatArray4000[6] * var7 + var1.aFloatArray4000[10] * var8 + var1.aFloatArray4000[14];
               float var12 = (float)(1.0D / Math.sqrt((double)(var9 * var9 + var10 * var10 + var11 * var11))) * (float)var4.anInt1952;
               var2.method5643(var5.anInt1710, var5.anInt1711 * var4.aShort1948 >> 7, var5.anInt1714 * var4.aShort1951 >> 7, var9 + (float)var5.anInt1712 - var9 * var12, var10 + (float)var5.anInt1713 - var10 * var12, var11 - var11 * var12);
               this.aClass545_Sub1_9024.method14662(var2);
               int var13 = var5.anInt1709;
               OpenGL.glColor4ub((byte)(var13 >> 16), (byte)(var13 >> 8), (byte)var13, (byte)(var13 >> 24));
               this.aClass545_Sub1_9024.method14540(var4.aShort1950);
               this.aClass545_Sub1_9024.method14602(var4.aByte1953);
               this.aClass545_Sub1_9024.method14686(7, 0, 4);
            }
         }

         this.aClass545_Sub1_9024.RA(true);
         this.aClass545_Sub1_9024.method14566();
      }

   }

   public int ya() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9021;
   }

   public int dk() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9073;
   }

   public void KA(int var1) {
      this.anInt9025 = var1;
      if(this.aClass165_9044 != null && (this.anInt9025 & 65536) == 0) {
         this.aShortArray9055 = this.aClass165_9044.aShortArray2013;
         this.aShortArray9041 = this.aClass165_9044.aShortArray2012;
         this.aShortArray9042 = this.aClass165_9044.aShortArray2014;
         this.aByteArray9077 = this.aClass165_9044.aByteArray2011;
         this.aClass165_9044 = null;
      }

      this.aBool9072 = true;
      this.method14495();
   }

   void method12086() {}

   public Class80[] method12062() {
      return this.aClass80Array9040;
   }

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

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

   Class568_Sub1(Class545_Sub1 var1) {
      this.aClass545_Sub1_9024 = var1;
      this.aClass150_9017 = new Class150((Interface10)null, 5126, 3, 0);
      this.aClass150_9060 = new Class150((Interface10)null, 5126, 2, 0);
      this.aClass150_9081 = new Class150((Interface10)null, 5126, 3, 0);
      this.aClass150_9058 = new Class150((Interface10)null, 5121, 4, 0);
      this.aClass131_9079 = new Class131();
   }

   public void db(int var1) {
      this.aShort9026 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

   }

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

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

   void method12085() {}

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

      if(this.aClass157Array9080 != null) {
         for(var3 = 0; var3 < this.anInt9062; ++var3) {
            Class157 var4 = this.aClass157Array9080[var3];
            Class148 var5 = this.aClass148Array9020[var3];
            var5.anInt1709 = var5.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var4.anInt1949] & '\uffff'] & 16777215;
         }
      }

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

   public void method12090(Class328 var1, Class89 var2, int var3) {
      if((var3 & 2) != 0) {
         OpenGL.glPolygonMode(1032, 6913);
      }

      if(this.anInt9039 != 0) {
         Class317 var4 = this.aClass545_Sub1_9024.aClass317_9186;
         Class317 var5 = this.aClass545_Sub1_9024.aClass317_9200;
         Class317 var6 = this.aClass545_Sub1_9024.aClass317_9201;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
         if(!this.aBool9057) {
            this.method14496();
         }

         float[] var7 = this.aClass545_Sub1_9024.aFloatArray9190;
         var5.method5618(0.0F, (float)this.aShort9068, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.aShort9069, 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_Sub1_9024.aFloatArrayArray9189[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9066;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9066;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.aShort9070 + this.aShort9021 >> 1;
            int var21 = this.aShort9067 + this.aShort9073 >> 1;
            short var23 = this.aShort9068;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.aShort9069;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var32);
                  }
               }
            }

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

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub1_9024.method14556();
         this.aClass545_Sub1_9024.method14565(var5);
         this.method14493();
         this.aClass545_Sub1_9024.method14566();
         var5.method5612(this.aClass545_Sub1_9024.aClass317_9184);
         this.method14498(var5);
         if((var3 & 2) != 0) {
            OpenGL.glPolygonMode(1028, 6914);
         }

      }
   }

   public int cs() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9067;
   }

   public void PA(int var1, int var2, int var3, int var4) {
      int var5;
      for(var5 = 0; var5 < this.anInt9047; ++var5) {
         int var6 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
      }

      if(this.aClass157Array9080 != null) {
         for(var5 = 0; var5 < this.anInt9062; ++var5) {
            Class157 var10 = this.aClass157Array9080[var5];
            Class148 var11 = this.aClass148Array9020[var5];
            var11.anInt1709 = var11.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
         }
      }

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

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

   public int native_do() {
      return this.aShort9026;
   }

   boolean bc() {
      if(this.anIntArrayArray9033 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9032; ++var1) {
            this.anIntArray9034[var1] <<= 4;
            this.anIntArray9035[var1] <<= 4;
            this.anIntArray9036[var1] <<= 4;
         }

         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;
         return true;
      }
   }

   void method12127() {}

   int method14500(int var1, short var2, int var3, byte var4) {
      int var5 = Exception_Sub5.anIntArray10376[method14506(var1, var3)];
      if(var2 != -1) {
         Class161 var6 = this.aClass545_Sub1_9024.anInterface24_7370.method113(var2 & '\uffff', 1461335279);
         int var7 = var6.aByte1990 & 255;
         int var8;
         int var10;
         if(var7 != 0) {
            if(var3 < 0) {
               var8 = 0;
            } else if(var3 > 127) {
               var8 = 16777215;
            } else {
               var8 = 131586 * var3;
            }

            if(var7 == 256) {
               var5 = var8;
            } else {
               var10 = 256 - var7;
               var5 = ((var8 & 16711935) * var7 + (var5 & 16711935) * var10 & -16711936) + ((var8 & '\uff00') * var7 + (var5 & '\uff00') * var10 & 16711680) >> 8;
            }
         }

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

            var10 = ((var5 & '\uff00') >> 8) * var8;
            if(var10 > '\uffff') {
               var10 = '\uffff';
            }

            int var11 = (var5 & 255) * var8;
            if(var11 > '\uffff') {
               var11 = '\uffff';
            }

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

      return var5 << 8 | 255 - (var4 & 255);
   }

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

   void w(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < this.anInt9061; ++var11) {
            anInt9046 += this.anIntArray9034[var11];
            anInt9089 += this.anIntArray9035[var11];
            anInt9076 += this.anIntArray9036[var11];
            ++var5;
         }

         if(var5 > 0) {
            anInt9046 = anInt9046 / var5 + var2;
            anInt9089 = anInt9089 / var5 + var3;
            anInt9076 = anInt9076 / var5 + var4;
         } else {
            anInt9046 = var2;
            anInt9089 = var3;
            anInt9076 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9061; ++var5) {
            this.anIntArray9034[var5] += var2;
            this.anIntArray9035[var5] += var3;
            this.anIntArray9036[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9035[var5] * var11 + this.anIntArray9034[var5] * var7 + 16383 >> 14;
                  this.anIntArray9035[var5] = this.anIntArray9035[var5] * var7 - this.anIntArray9034[var5] * var11 + 16383 >> 14;
                  this.anIntArray9034[var5] = var8;
               }

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

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

               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               this.anIntArray9034[var5] = this.anIntArray9034[var5] * var2 / 128;
               this.anIntArray9035[var5] = this.anIntArray9035[var5] * var3 / 128;
               this.anIntArray9036[var5] = this.anIntArray9036[var5] * var4 / 128;
               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else {
            Class157 var10;
            Class148 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = (this.aByteArray9050[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

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

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var10.anInt1949] & 255) << 24;
                  }
               }

            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
                  }
               }

            } else {
               Class148 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1712 += var2;
                     var6.anInt1713 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1711 = var6.anInt1711 * var2 >> 7;
                     var6.anInt1714 = var6.anInt1714 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1710 = var6.anInt1710 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   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;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var9 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var10 = 0; var10 < var8; ++var10) {
            int var24 = var2[var10];
            if(var24 < this.anIntArrayArray9033.length) {
               int[] var25 = this.anIntArrayArray9033[var24];

               for(var23 = 0; var23 < var25.length; ++var23) {
                  var14 = var25[var23];
                  anInt9046 += this.anIntArray9034[var14];
                  anInt9089 += this.anIntArray9035[var14];
                  anInt9076 += this.anIntArray9036[var14];
                  ++var9;
               }
            }
         }

         if(var9 > 0) {
            anInt9046 = anInt9046 / var9 + var3;
            anInt9089 = anInt9089 / var9 + var4;
            anInt9076 = anInt9076 / var9 + var5;
         } else {
            anInt9046 = var3;
            anInt9089 = var4;
            anInt9076 = 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.anIntArrayArray9033.length) {
                  var11 = this.anIntArrayArray9033[var10];

                  for(var12 = 0; var12 < var11.length; ++var12) {
                     var23 = var11[var12];
                     this.anIntArray9034[var23] += var3;
                     this.anIntArray9035[var23] += var4;
                     this.anIntArray9036[var23] += var5;
                  }
               }
            }

         } else {
            int var15;
            int var17;
            int var16;
            if(var1 == 2) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9033.length) {
                     var11 = this.anIntArrayArray9033[var10];
                     if((var6 & 1) == 0) {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var23 = var11[var12];
                           this.anIntArray9034[var23] -= anInt9046;
                           this.anIntArray9035[var23] -= anInt9089;
                           this.anIntArray9036[var23] -= anInt9076;
                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9035[var23] * var14 + this.anIntArray9034[var23] * var15 + 16383 >> 14;
                              this.anIntArray9035[var23] = this.anIntArray9035[var23] * var15 - this.anIntArray9034[var23] * var14 + 16383 >> 14;
                              this.anIntArray9034[var23] = var16;
                           }

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

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

                           this.anIntArray9034[var23] += anInt9046;
                           this.anIntArray9035[var23] += anInt9089;
                           this.anIntArray9036[var23] += anInt9076;
                        }
                     } else {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var23 = var11[var12];
                           this.anIntArray9034[var23] -= anInt9046;
                           this.anIntArray9035[var23] -= anInt9089;
                           this.anIntArray9036[var23] -= anInt9076;
                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9035[var23] * var15 - this.anIntArray9036[var23] * var14 + 16383 >> 14;
                              this.anIntArray9036[var23] = this.anIntArray9035[var23] * var14 + this.anIntArray9036[var23] * var15 + 16383 >> 14;
                              this.anIntArray9035[var23] = var16;
                           }

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

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

                           this.anIntArray9034[var23] += anInt9046;
                           this.anIntArray9035[var23] += anInt9089;
                           this.anIntArray9036[var23] += anInt9076;
                        }
                     }
                  }
               }

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

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

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

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

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

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

                  if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                     this.aClass150_9058.anInterface10_1716 = null;
                  }

                  if(this.aClass150_9081 != null) {
                     this.aClass150_9081.anInterface10_1716 = null;
                  }
               }

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

                     for(var12 = 0; var12 < var11.length; ++var12) {
                        var23 = var11[var12];
                        this.anIntArray9034[var23] -= anInt9046;
                        this.anIntArray9035[var23] -= anInt9089;
                        this.anIntArray9036[var23] -= anInt9076;
                        this.anIntArray9034[var23] = this.anIntArray9034[var23] * var3 >> 7;
                        this.anIntArray9035[var23] = this.anIntArray9035[var23] * var4 >> 7;
                        this.anIntArray9036[var23] = this.anIntArray9036[var23] * var5 >> 7;
                        this.anIntArray9034[var23] += anInt9046;
                        this.anIntArray9035[var23] += anInt9089;
                        this.anIntArray9036[var23] += anInt9076;
                     }
                  }
               }

            } else {
               Class157 var21;
               Class148 var22;
               if(var1 == 5) {
                  if(this.anIntArrayArray9071 != null) {
                     for(var9 = 0; var9 < var8; ++var9) {
                        var10 = var2[var9];
                        if(var10 < this.anIntArrayArray9071.length) {
                           var11 = this.anIntArrayArray9071[var10];

                           for(var12 = 0; var12 < var11.length; ++var12) {
                              var23 = var11[var12];
                              var14 = (this.aByteArray9050[var23] & 255) + var3 * 8;
                              if(var14 < 0) {
                                 var14 = 0;
                              } else if(var14 > 255) {
                                 var14 = 255;
                              }

                              this.aByteArray9050[var23] = (byte)var14;
                           }

                           if(var11.length > 0 && this.aClass150_9058 != null) {
                              this.aClass150_9058.anInterface10_1716 = null;
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var9 = 0; var9 < this.anInt9062; ++var9) {
                           var21 = this.aClass157Array9080[var9];
                           var22 = this.aClass148Array9020[var9];
                           var22.anInt1709 = var22.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var21.anInt1949] & 255) << 24;
                        }
                     }
                  }

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

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

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

                              this.aShortArray9049[var23] = (short)(var15 << 10 | var16 << 7 | var17);
                           }

                           if(var11.length > 0 && this.aClass150_9058 != null) {
                              this.aClass150_9058.anInterface10_1716 = null;
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var9 = 0; var9 < this.anInt9062; ++var9) {
                           var21 = this.aClass157Array9080[var9];
                           var22 = this.aClass148Array9020[var9];
                           var22.anInt1709 = var22.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var21.anInt1949] & '\uffff'] & 16777215;
                        }
                     }
                  }

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

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass148Array9020[var11[var12]];
                                 var13.anInt1712 += var3;
                                 var13.anInt1713 += var4;
                              }
                           }
                        }
                     }

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

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass148Array9020[var11[var12]];
                                 var13.anInt1711 = var13.anInt1711 * var3 >> 7;
                                 var13.anInt1714 = var13.anInt1714 * var4 >> 7;
                              }
                           }
                        }
                     }

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

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

                  }
               }
            }
         }
      }
   }

   void ka() {
      for(int var1 = 0; var1 < this.anInt9032; ++var1) {
         this.anIntArray9034[var1] = this.anIntArray9034[var1] + 7 >> 4;
         this.anIntArray9035[var1] = this.anIntArray9035[var1] + 7 >> 4;
         this.anIntArray9036[var1] = this.anIntArray9036[var1] + 7 >> 4;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public void method12114(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

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

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

   int method14501(int var1, short var2, int var3, byte var4) {
      int var5 = Exception_Sub5.anIntArray10376[method14506(var1, var3)];
      if(var2 != -1) {
         Class161 var6 = this.aClass545_Sub1_9024.anInterface24_7370.method113(var2 & '\uffff', 1275614218);
         int var7 = var6.aByte1990 & 255;
         int var8;
         int var10;
         if(var7 != 0) {
            if(var3 < 0) {
               var8 = 0;
            } else if(var3 > 127) {
               var8 = 16777215;
            } else {
               var8 = 131586 * var3;
            }

            if(var7 == 256) {
               var5 = var8;
            } else {
               var10 = 256 - var7;
               var5 = ((var8 & 16711935) * var7 + (var5 & 16711935) * var10 & -16711936) + ((var8 & '\uff00') * var7 + (var5 & '\uff00') * var10 & 16711680) >> 8;
            }
         }

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

            var10 = ((var5 & '\uff00') >> 8) * var8;
            if(var10 > '\uffff') {
               var10 = '\uffff';
            }

            int var11 = (var5 & 255) * var8;
            if(var11 > '\uffff') {
               var11 = '\uffff';
            }

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

      return var5 << 8 | 255 - (var4 & 255);
   }

   public boolean method12070(int var1, int var2, Class328 var3, boolean var4, int var5) {
      Class317 var6 = this.aClass545_Sub1_9024.aClass317_9200;
      var6.method5613(var3);
      var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
      boolean var7 = false;
      int var8 = Integer.MAX_VALUE;
      int var9 = Integer.MIN_VALUE;
      int var10 = Integer.MAX_VALUE;
      int var11 = Integer.MIN_VALUE;
      if(!this.aBool9057) {
         this.method14496();
      }

      int var12 = this.aShort9021 - this.aShort9070 >> 1;
      int var13 = this.aShort9069 - this.aShort9068 >> 1;
      int var14 = this.aShort9073 - this.aShort9067 >> 1;
      int var15 = this.aShort9070 + var12;
      int var16 = this.aShort9068 + var13;
      int var17 = this.aShort9067 + var14;
      int var18 = var15 - (var12 << var5);
      int var19 = var16 - (var13 << var5);
      int var20 = var17 - (var14 << var5);
      int var21 = var15 + (var12 << var5);
      int var22 = var16 + (var13 << var5);
      int var23 = var17 + (var14 << var5);
      anIntArray9085[0] = var18;
      anIntArray9086[0] = var19;
      anIntArray9087[0] = var20;
      anIntArray9085[1] = var21;
      anIntArray9086[1] = var19;
      anIntArray9087[1] = var20;
      anIntArray9085[2] = var18;
      anIntArray9086[2] = var22;
      anIntArray9087[2] = var20;
      anIntArray9085[3] = var21;
      anIntArray9086[3] = var22;
      anIntArray9087[3] = var20;
      anIntArray9085[4] = var18;
      anIntArray9086[4] = var19;
      anIntArray9087[4] = var23;
      anIntArray9085[5] = var21;
      anIntArray9086[5] = var19;
      anIntArray9087[5] = var23;
      anIntArray9085[6] = var18;
      anIntArray9086[6] = var22;
      anIntArray9087[6] = var23;
      anIntArray9085[7] = var21;
      anIntArray9086[7] = var22;
      anIntArray9087[7] = var23;

      int var25;
      int var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      int var33;
      for(int var24 = 0; var24 < 8; ++var24) {
         var25 = anIntArray9085[var24];
         var26 = anIntArray9086[var24];
         var27 = anIntArray9087[var24];
         var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
         var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
         if(var28 >= -var29) {
            var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
            var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
            int var32 = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
            var33 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
            if(var32 < var8) {
               var8 = var32;
            }

            if(var32 > var9) {
               var9 = var32;
            }

            if(var33 < var10) {
               var10 = var33;
            }

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

            var7 = true;
         }
      }

      if(var7 && var1 > var8 && var1 < var9 && var2 > var10 && var2 < var11) {
         if(var4) {
            return true;
         }

         if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
            this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
            this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
         }

         int[] var38 = this.aClass545_Sub1_9024.anIntArray9295;
         int[] var39 = this.aClass545_Sub1_9024.anIntArray9195;

         for(var33 = 0; var33 < this.anInt9061; ++var33) {
            var25 = this.anIntArray9034[var33];
            var26 = this.anIntArray9035[var33];
            var27 = this.anIntArray9036[var33];
            var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
            var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
            int var34;
            int var35;
            int var36;
            int var37;
            if(var28 >= -var29) {
               var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
               var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[var37] = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
                  var39[var37] = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
               }
            } else {
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[this.aShortArray9031[var36] - 1] = -999999;
               }
            }
         }

         for(var33 = 0; var33 < this.anInt9047; ++var33) {
            if(var38[this.aShortArray9051[var33]] != -999999 && var38[this.aShortArray9090[var33]] != -999999 && var38[this.aShortArray9053[var33]] != -999999 && this.method14502(var1, var2, var39[this.aShortArray9051[var33]], var39[this.aShortArray9090[var33]], var39[this.aShortArray9053[var33]], var38[this.aShortArray9051[var33]], var38[this.aShortArray9090[var33]], var38[this.aShortArray9053[var33]])) {
               return true;
            }
         }
      }

      return false;
   }

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

   public byte[] dy() {
      return this.aByteArray9050;
   }

   void method14503(Class225_Sub14_Sub16_Sub2 var1) {
      if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
         this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
         this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
      }

      int[] var2 = this.aClass545_Sub1_9024.anIntArray9295;
      int[] var3 = this.aClass545_Sub1_9024.anIntArray9195;
      int var4 = 0;

      int var5;
      int var6;
      int var7;
      int var8;
      int var9;
      int var10;
      while(var4 < this.anInt9061) {
         var5 = (this.anIntArray9034[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10669;
         var6 = (this.anIntArray9036[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10673;
         var7 = this.anIntArray9075[var4];
         var8 = this.anIntArray9075[var4 + 1];
         var9 = var7;

         while(true) {
            if(var9 < var8) {
               var10 = (this.aShortArray9031[var9] & '\uffff') - 1;
               if(var10 != -1) {
                  var2[var10] = var5;
                  var3[var10] = var6;
                  ++var9;
                  continue;
               }
            }

            ++var4;
            break;
         }
      }

      for(var4 = 0; var4 < this.anInt9048; ++var4) {
         if(this.aByteArray9050 == null || this.aByteArray9050[var4] <= 128) {
            var5 = this.aShortArray9051[var4] & '\uffff';
            var6 = this.aShortArray9090[var4] & '\uffff';
            var7 = this.aShortArray9053[var4] & '\uffff';
            var8 = var2[var5];
            var9 = var2[var6];
            var10 = var2[var7];
            int var11 = var3[var5];
            int var12 = var3[var6];
            int var13 = var3[var7];
            if((var8 - var9) * (var12 - var13) - (var12 - var11) * (var10 - var9) > 0) {
               var1.method16542(var11, var12, var13, var8, var9, var10);
            }
         }
      }

   }

   public void method12069(Class328 var1, Class89 var2, int var3) {
      if((var3 & 2) != 0) {
         OpenGL.glPolygonMode(1032, 6913);
      }

      if(this.anInt9039 != 0) {
         Class317 var4 = this.aClass545_Sub1_9024.aClass317_9186;
         Class317 var5 = this.aClass545_Sub1_9024.aClass317_9200;
         Class317 var6 = this.aClass545_Sub1_9024.aClass317_9201;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
         if(!this.aBool9057) {
            this.method14496();
         }

         float[] var7 = this.aClass545_Sub1_9024.aFloatArray9190;
         var5.method5618(0.0F, (float)this.aShort9068, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.aShort9069, 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_Sub1_9024.aFloatArrayArray9189[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9066;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9066;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.aShort9070 + this.aShort9021 >> 1;
            int var21 = this.aShort9067 + this.aShort9073 >> 1;
            short var23 = this.aShort9068;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.aShort9069;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var32);
                  }
               }
            }

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

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub1_9024.method14556();
         this.aClass545_Sub1_9024.method14565(var5);
         this.method14493();
         this.aClass545_Sub1_9024.method14566();
         var5.method5612(this.aClass545_Sub1_9024.aClass317_9184);
         this.method14498(var5);
         if((var3 & 2) != 0) {
            OpenGL.glPolygonMode(1028, 6914);
         }

      }
   }

   public boolean ee() {
      return this.aBool9030;
   }

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

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

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

   void method14504(boolean var1) {
      boolean var2 = this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null;
      boolean var3 = this.aClass150_9081 != null && this.aClass150_9081.anInterface10_1716 == null;
      boolean var4 = this.aClass150_9017 != null && this.aClass150_9017.anInterface10_1716 == null;
      boolean var5 = this.aClass150_9060 != null && this.aClass150_9060.anInterface10_1716 == null;
      if(var1) {
         var2 &= (this.aByte9027 & 2) != 0;
         var3 &= (this.aByte9027 & 4) != 0;
         var4 &= (this.aByte9027 & 1) != 0;
         var5 &= (this.aByte9027 & 8) != 0;
      }

      byte var6 = 0;
      byte var7 = 0;
      byte var8 = 0;
      byte var9 = 0;
      byte var10 = 0;
      if(var4) {
         var7 = var6;
         var6 = (byte)(var6 + 12);
      }

      if(var2) {
         var8 = var6;
         var6 = (byte)(var6 + 4);
      }

      if(var3) {
         var9 = var6;
         var6 = (byte)(var6 + 12);
      }

      if(var5) {
         var10 = var6;
         var6 = (byte)(var6 + 8);
      }

      if(var6 != 0) {
         if(this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9039 * var6) {
            this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2((this.anInt9039 + 100) * var6);
         } else {
            this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.position = 0;
         }

         Class225_Sub23_Sub2 var11 = this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294;
         int var12;
         int var13;
         int var19;
         int var18;
         if(var4) {
            int var14;
            int var15;
            int var17;
            int var16;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var12 = 0; var12 < this.anInt9061; ++var12) {
                  var13 = Stream.floatToRawIntBits((float)this.anIntArray9034[var12]);
                  var14 = Stream.floatToRawIntBits((float)this.anIntArray9035[var12]);
                  var15 = Stream.floatToRawIntBits((float)this.anIntArray9036[var12]);
                  var16 = this.anIntArray9075[var12];
                  var17 = this.anIntArray9075[var12 + 1];

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

                     var11.position = var19 * var6 * 1385214721;
                     var11.writeInt(var13, -1481955269);
                     var11.writeInt(var14, -1454291631);
                     var11.writeInt(var15, -2089746803);
                  }
               }
            } else {
               for(var12 = 0; var12 < this.anInt9061; ++var12) {
                  var13 = Stream.floatToRawIntBits((float)this.anIntArray9034[var12]);
                  var14 = Stream.floatToRawIntBits((float)this.anIntArray9035[var12]);
                  var15 = Stream.floatToRawIntBits((float)this.anIntArray9036[var12]);
                  var16 = this.anIntArray9075[var12];
                  var17 = this.anIntArray9075[var12 + 1];

                  for(var18 = var16; var18 < var17; ++var18) {
                     var19 = (this.aShortArray9031[var18] & '\uffff') - 1;
                     if(var19 == -1) {
                        break;
                     }

                     var11.position = var19 * var6 * 1385214721;
                     var11.method13707(var13, (byte)1);
                     var11.method13707(var14, (byte)1);
                     var11.method13707(var15, (byte)1);
                  }
               }
            }
         }

         float var28;
         short[] var34;
         short[] var35;
         byte[] var38;
         float var39;
         short[] var36;
         if(var2) {
            if(this.aClass150_9081 == null) {
               if(this.aClass165_9044 != null) {
                  var35 = this.aClass165_9044.aShortArray2013;
                  var34 = this.aClass165_9044.aShortArray2012;
                  var36 = this.aClass165_9044.aShortArray2014;
                  var38 = this.aClass165_9044.aByteArray2011;
               } else {
                  var35 = this.aShortArray9055;
                  var34 = this.aShortArray9041;
                  var36 = this.aShortArray9042;
                  var38 = this.aByteArray9077;
               }

               float var20 = this.aClass545_Sub1_9024.aFloatArray9265[0];
               float var21 = this.aClass545_Sub1_9024.aFloatArray9265[1];
               float var22 = this.aClass545_Sub1_9024.aFloatArray9265[2];
               float var23 = this.aClass545_Sub1_9024.aFloat9168;
               float var24 = this.aClass545_Sub1_9024.aFloat9227 * 768.0F / (float)this.aShort9026;
               float var25 = this.aClass545_Sub1_9024.aFloat9228 * 768.0F / (float)this.aShort9026;

               for(int var26 = 0; var26 < this.anInt9047; ++var26) {
                  int var27 = this.method14501(this.aShortArray9049[var26], this.aShortArray9054[var26], this.aShort9028, this.aByteArray9050[var26]);
                  float var43 = (float)(var27 >>> 24) * this.aClass545_Sub1_9024.aFloat9130;
                  var28 = (float)(var27 >> 16 & 255) * this.aClass545_Sub1_9024.aFloat9123;
                  float var29 = (float)(var27 >> 8 & 255) * this.aClass545_Sub1_9024.aFloat9225;
                  short var30 = this.aShortArray9051[var26];
                  short var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  float var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  int var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  int var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  int var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
                  var30 = this.aShortArray9090[var26];
                  var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
                  var30 = this.aShortArray9053[var26];
                  var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
               }
            } else {
               for(var12 = 0; var12 < this.anInt9047; ++var12) {
                  var13 = this.method14501(this.aShortArray9049[var12], this.aShortArray9054[var12], this.aShort9028, this.aByteArray9050[var12]);
                  var11.position = (var8 + (this.aShortArray9051[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -1872762283);
                  var11.position = (var8 + (this.aShortArray9090[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -1585123317);
                  var11.position = (var8 + (this.aShortArray9053[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -2029112773);
               }
            }
         }

         if(var3) {
            if(this.aClass165_9044 != null) {
               var35 = this.aClass165_9044.aShortArray2013;
               var34 = this.aClass165_9044.aShortArray2012;
               var36 = this.aClass165_9044.aShortArray2014;
               var38 = this.aClass165_9044.aByteArray2011;
            } else {
               var35 = this.aShortArray9055;
               var34 = this.aShortArray9041;
               var36 = this.aShortArray9042;
               var38 = this.aByteArray9077;
            }

            float var40 = 3.0F / (float)this.aShort9026;
            var39 = 3.0F / (float)(this.aShort9026 + this.aShort9026 / 2);
            var11.position = var9 * 1385214721;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var18 = 0; var18 < this.anInt9039; ++var18) {
                  var19 = var38[var18] & 255;
                  if(var19 == 0) {
                     var11.method16093((float)var35[var18] * var39);
                     var11.method16093((float)var34[var18] * var39);
                     var11.method16093((float)var36[var18] * var39);
                  } else {
                     var28 = var40 / (float)var19;
                     var11.method16093((float)var35[var18] * var28);
                     var11.method16093((float)var34[var18] * var28);
                     var11.method16093((float)var36[var18] * var28);
                  }

                  var11.position += (var6 - 12) * 1385214721;
               }
            } else {
               for(var18 = 0; var18 < this.anInt9039; ++var18) {
                  var19 = var38[var18] & 255;
                  if(var19 == 0) {
                     var11.method16094((float)var35[var18] * var39);
                     var11.method16094((float)var34[var18] * var39);
                     var11.method16094((float)var36[var18] * var39);
                  } else {
                     var28 = var40 / (float)var19;
                     var11.method16094((float)var35[var18] * var28);
                     var11.method16094((float)var34[var18] * var28);
                     var11.method16094((float)var36[var18] * var28);
                  }

                  var11.position += (var6 - 12) * 1385214721;
               }
            }
         }

         if(var5) {
            var11.position = var10 * 1385214721;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var12 = 0; var12 < this.anInt9039; ++var12) {
                  var11.method16093(this.aFloatArray9045[var12]);
                  var11.method16093(this.aFloatArray9037[var12]);
                  var11.position += (var6 - 8) * 1385214721;
               }
            } else {
               for(var12 = 0; var12 < this.anInt9039; ++var12) {
                  var11.method16094(this.aFloatArray9045[var12]);
                  var11.method16094(this.aFloatArray9037[var12]);
                  var11.position += (var6 - 8) * 1385214721;
               }
            }
         }

         var11.position = var6 * this.anInt9039 * 1385214721;
         Interface10 var42;
         if(var1) {
            if(this.anInterface10_9063 == null) {
               this.anInterface10_9063 = this.aClass545_Sub1_9024.method14582(var6, var11.buffer, var11.position * -543666943, true);
            } else {
               this.anInterface10_9063.method38(var6, var11.buffer, var11.position * -543666943);
            }

            var42 = this.anInterface10_9063;
            this.aByte9027 = 0;
         } else {
            var42 = this.aClass545_Sub1_9024.method14582(var6, var11.buffer, var11.position * -543666943, false);
            this.aBool9072 = true;
         }

         if(var4) {
            this.aClass150_9017.anInterface10_1716 = var42;
            this.aClass150_9017.aByte1718 = var7;
         }

         if(var5) {
            this.aClass150_9060.anInterface10_1716 = var42;
            this.aClass150_9060.aByte1718 = var10;
         }

         if(var2) {
            this.aClass150_9058.anInterface10_1716 = var42;
            this.aClass150_9058.aByte1718 = var8;
         }

         if(var3) {
            this.aClass150_9081.anInterface10_1716 = var42;
            this.aClass150_9081.aByte1718 = var9;
         }

      }
   }

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

   static final int method14506(int var0, int var1) {
      var1 = var1 * (var0 & 127) >> 7;
      if(var1 < 2) {
         var1 = 2;
      } else if(var1 > 126) {
         var1 = 126;
      }

      return (var0 & '\uff80') + var1;
   }

   public void method12079(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub1 var6 = (Class568_Sub1)var1;
      if(this.anInt9047 != 0 && var6.anInt9047 != 0) {
         int var7 = var6.anInt9061;
         int[] var8 = var6.anIntArray9034;
         int[] var9 = var6.anIntArray9035;
         int[] var10 = var6.anIntArray9036;
         short[] var11 = var6.aShortArray9055;
         short[] var12 = var6.aShortArray9041;
         short[] var13 = var6.aShortArray9042;
         byte[] var14 = var6.aByteArray9077;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass165_9044 != null) {
            var15 = this.aClass165_9044.aShortArray2013;
            var16 = this.aClass165_9044.aShortArray2012;
            var17 = this.aClass165_9044.aShortArray2014;
            var18 = this.aClass165_9044.aByteArray2011;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass165_9044 != null) {
            var19 = var6.aClass165_9044.aShortArray2013;
            var20 = var6.aClass165_9044.aShortArray2012;
            var21 = var6.aClass165_9044.aShortArray2014;
            var22 = var6.aClass165_9044.aByteArray2011;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9075;
         short[] var24 = var6.aShortArray9031;
         if(!var6.aBool9057) {
            var6.method14496();
         }

         short var25 = var6.aShort9068;
         short var26 = var6.aShort9069;
         short var27 = var6.aShort9070;
         short var28 = var6.aShort9021;
         short var29 = var6.aShort9067;
         short var30 = var6.aShort9073;

         for(int var31 = 0; var31 < this.anInt9061; ++var31) {
            int var32 = this.anIntArray9035[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9034[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9036[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9075[var31];
                     int var37 = this.anIntArray9075[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9031[var38] - 1;
                        if(var35 == -1 || this.aByteArray9077[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.aClass165_9044 = new Class165();
                                    var15 = this.aClass165_9044.aShortArray2013 = Class188.method3313(this.aShortArray9055, -222097801);
                                    var16 = this.aClass165_9044.aShortArray2012 = Class188.method3313(this.aShortArray9041, -49743231);
                                    var17 = this.aClass165_9044.aShortArray2014 = Class188.method3313(this.aShortArray9042, -1660731080);
                                    var18 = this.aClass165_9044.aByteArray2011 = Class73.method1591(this.aByteArray9077, 678483614);
                                 }

                                 if(var19 == null) {
                                    Class165 var47 = var6.aClass165_9044 = new Class165();
                                    var19 = var47.aShortArray2013 = Class188.method3313(var11, 1348941758);
                                    var20 = var47.aShortArray2012 = Class188.method3313(var12, 308990474);
                                    var21 = var47.aShortArray2014 = Class188.method3313(var13, -1630041831);
                                    var22 = var47.aByteArray2011 = Class73.method1591(var14, -1750521277);
                                 }

                                 short var46 = this.aShortArray9055[var35];
                                 short var41 = this.aShortArray9041[var35];
                                 short var42 = this.aShortArray9042[var35];
                                 byte var43 = this.aByteArray9077[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.anIntArray9075[var31];
                                 var37 = this.anIntArray9075[var31 + 1];

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

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

                                 if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(this.aClass150_9081 != null) {
                                    this.aClass150_9081.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 == null && var6.aClass150_9058 != null) {
                                    var6.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 != null) {
                                    var6.aClass150_9081.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public void method12080(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub1 var6 = (Class568_Sub1)var1;
      if(this.anInt9047 != 0 && var6.anInt9047 != 0) {
         int var7 = var6.anInt9061;
         int[] var8 = var6.anIntArray9034;
         int[] var9 = var6.anIntArray9035;
         int[] var10 = var6.anIntArray9036;
         short[] var11 = var6.aShortArray9055;
         short[] var12 = var6.aShortArray9041;
         short[] var13 = var6.aShortArray9042;
         byte[] var14 = var6.aByteArray9077;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass165_9044 != null) {
            var15 = this.aClass165_9044.aShortArray2013;
            var16 = this.aClass165_9044.aShortArray2012;
            var17 = this.aClass165_9044.aShortArray2014;
            var18 = this.aClass165_9044.aByteArray2011;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass165_9044 != null) {
            var19 = var6.aClass165_9044.aShortArray2013;
            var20 = var6.aClass165_9044.aShortArray2012;
            var21 = var6.aClass165_9044.aShortArray2014;
            var22 = var6.aClass165_9044.aByteArray2011;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9075;
         short[] var24 = var6.aShortArray9031;
         if(!var6.aBool9057) {
            var6.method14496();
         }

         short var25 = var6.aShort9068;
         short var26 = var6.aShort9069;
         short var27 = var6.aShort9070;
         short var28 = var6.aShort9021;
         short var29 = var6.aShort9067;
         short var30 = var6.aShort9073;

         for(int var31 = 0; var31 < this.anInt9061; ++var31) {
            int var32 = this.anIntArray9035[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9034[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9036[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9075[var31];
                     int var37 = this.anIntArray9075[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9031[var38] - 1;
                        if(var35 == -1 || this.aByteArray9077[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.aClass165_9044 = new Class165();
                                    var15 = this.aClass165_9044.aShortArray2013 = Class188.method3313(this.aShortArray9055, 502835669);
                                    var16 = this.aClass165_9044.aShortArray2012 = Class188.method3313(this.aShortArray9041, 941530572);
                                    var17 = this.aClass165_9044.aShortArray2014 = Class188.method3313(this.aShortArray9042, 914289627);
                                    var18 = this.aClass165_9044.aByteArray2011 = Class73.method1591(this.aByteArray9077, 971199207);
                                 }

                                 if(var19 == null) {
                                    Class165 var47 = var6.aClass165_9044 = new Class165();
                                    var19 = var47.aShortArray2013 = Class188.method3313(var11, -903959569);
                                    var20 = var47.aShortArray2012 = Class188.method3313(var12, -1961832962);
                                    var21 = var47.aShortArray2014 = Class188.method3313(var13, 548921671);
                                    var22 = var47.aByteArray2011 = Class73.method1591(var14, 1697512076);
                                 }

                                 short var46 = this.aShortArray9055[var35];
                                 short var41 = this.aShortArray9041[var35];
                                 short var42 = this.aShortArray9042[var35];
                                 byte var43 = this.aByteArray9077[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.anIntArray9075[var31];
                                 var37 = this.anIntArray9075[var31 + 1];

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

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

                                 if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(this.aClass150_9081 != null) {
                                    this.aClass150_9081.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 == null && var6.aClass150_9058 != null) {
                                    var6.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 != null) {
                                    var6.aClass150_9081.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public void Q(int var1) {
      this.aShort9026 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

   }

   public void dw(int var1) {
      this.aShort9026 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

   }

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

   public void am(int var1) {
      this.anInt9025 = var1;
      if(this.aClass165_9044 != null && (this.anInt9025 & 65536) == 0) {
         this.aShortArray9055 = this.aClass165_9044.aShortArray2013;
         this.aShortArray9041 = this.aClass165_9044.aShortArray2012;
         this.aShortArray9042 = this.aClass165_9044.aShortArray2014;
         this.aByteArray9077 = this.aClass165_9044.aByteArray2011;
         this.aClass165_9044 = null;
      }

      this.aBool9072 = true;
      this.method14495();
   }

   public void ay(int var1) {
      this.anInt9025 = var1;
      if(this.aClass165_9044 != null && (this.anInt9025 & 65536) == 0) {
         this.aShortArray9055 = this.aClass165_9044.aShortArray2013;
         this.aShortArray9041 = this.aClass165_9044.aShortArray2012;
         this.aShortArray9042 = this.aClass165_9044.aShortArray2014;
         this.aByteArray9077 = this.aClass165_9044.aByteArray2011;
         this.aClass165_9044 = null;
      }

      this.aBool9072 = true;
      this.method14495();
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = 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.anInt9061; ++var4) {
         var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9039; ++var4) {
         var5 = this.aShortArray9042[var4] * var2 + this.aShortArray9055[var4] * var3 >> 14;
         this.aShortArray9042[var4] = (short)(this.aShortArray9042[var4] * var3 - this.aShortArray9055[var4] * var2 >> 14);
         this.aShortArray9055[var4] = (short)var5;
      }

      if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      int var4;
      int var5;
      for(var4 = 0; var4 < this.anInt9061; ++var4) {
         var5 = this.anIntArray9036[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9036[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      for(var4 = 0; var4 < this.anInt9039; ++var4) {
         var5 = this.aShortArray9042[var4] * var2 + this.aShortArray9055[var4] * var3 >> 14;
         this.aShortArray9042[var4] = (short)(this.aShortArray9042[var4] * var3 - this.aShortArray9055[var4] * var2 >> 14);
         this.aShortArray9055[var4] = (short)var5;
      }

      if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   void be() {
      for(int var1 = 0; var1 < this.anInt9032; ++var1) {
         this.anIntArray9034[var1] = this.anIntArray9034[var1] + 7 >> 4;
         this.anIntArray9035[var1] = this.anIntArray9035[var1] + 7 >> 4;
         this.anIntArray9036[var1] = this.anIntArray9036[var1] + 7 >> 4;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public int cp() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9070;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var3 - this.anIntArray9036[var4] * var2 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9035[var4] * var2 + this.anIntArray9036[var4] * var3 >> 14;
         this.anIntArray9035[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   void method14507(Class225_Sub14_Sub16_Sub2 var1) {
      if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
         this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
         this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
      }

      int[] var2 = this.aClass545_Sub1_9024.anIntArray9295;
      int[] var3 = this.aClass545_Sub1_9024.anIntArray9195;
      int var4 = 0;

      int var5;
      int var6;
      int var7;
      int var8;
      int var9;
      int var10;
      while(var4 < this.anInt9061) {
         var5 = (this.anIntArray9034[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10669;
         var6 = (this.anIntArray9036[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10673;
         var7 = this.anIntArray9075[var4];
         var8 = this.anIntArray9075[var4 + 1];
         var9 = var7;

         while(true) {
            if(var9 < var8) {
               var10 = (this.aShortArray9031[var9] & '\uffff') - 1;
               if(var10 != -1) {
                  var2[var10] = var5;
                  var3[var10] = var6;
                  ++var9;
                  continue;
               }
            }

            ++var4;
            break;
         }
      }

      for(var4 = 0; var4 < this.anInt9048; ++var4) {
         if(this.aByteArray9050 == null || this.aByteArray9050[var4] <= 128) {
            var5 = this.aShortArray9051[var4] & '\uffff';
            var6 = this.aShortArray9090[var4] & '\uffff';
            var7 = this.aShortArray9053[var4] & '\uffff';
            var8 = var2[var5];
            var9 = var2[var6];
            var10 = var2[var7];
            int var11 = var3[var5];
            int var12 = var3[var6];
            int var13 = var3[var7];
            if((var8 - var9) * (var12 - var13) - (var12 - var11) * (var10 - var9) > 0) {
               var1.method16542(var11, var12, var13, var8, var9, var10);
            }
         }
      }

   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9035[var4] = this.anIntArray9035[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   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 var50;
      int var49;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var50 = var2[var11];
            if(var50 < this.anIntArrayArray9033.length) {
               int[] var52 = this.anIntArrayArray9033[var50];

               for(var49 = 0; var49 < var52.length; ++var49) {
                  var15 = var52[var49];
                  if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var15]) != 0) {
                     anInt9046 += this.anIntArray9034[var15];
                     anInt9089 += this.anIntArray9035[var15];
                     anInt9076 += this.anIntArray9036[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            anInt9046 = anInt9046 / var10 + var3;
            anInt9089 = anInt9089 / var10 + var4;
            anInt9076 = anInt9076 / var10 + var5;
            aBool9091 = true;
         } else {
            anInt9046 = var3;
            anInt9089 = var4;
            anInt9076 = 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;
               var50 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var50;
            }

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

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

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var49 = var12[var13];
                     if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                        this.anIntArray9034[var49] += var3;
                        this.anIntArray9035[var49] += var4;
                        this.anIntArray9036[var49] += 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;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  int[] var51 = 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;
                  var51[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var51[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var51[2] = var20 * var17 + 8192 >> 14;
                  var51[3] = var17 * var22 + 8192 >> 14;
                  var51[4] = var17 * var21 + 8192 >> 14;
                  var51[5] = -var18;
                  var51[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var51[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var51[8] = var19 * var17 + 8192 >> 14;
                  int var53 = var51[0] * -anInt9046 + var51[1] * -anInt9089 + var51[2] * -anInt9076 + 8192 >> 14;
                  var26 = var51[3] * -anInt9046 + var51[4] * -anInt9089 + var51[5] * -anInt9076 + 8192 >> 14;
                  var27 = var51[6] * -anInt9046 + var51[7] * -anInt9089 + var51[8] * -anInt9076 + 8192 >> 14;
                  var28 = var53 + anInt9046;
                  int var54 = var26 + anInt9089;
                  var30 = var27 + anInt9076;
                  int[] var55 = new int[9];

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

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

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

                  var32 = var51[0] * var13 + var51[1] * var49 + var51[2] * var15 + 8192 >> 14;
                  var33 = var51[3] * var13 + var51[4] * var49 + var51[5] * var15 + 8192 >> 14;
                  var34 = var51[6] * var13 + var51[7] * var49 + var51[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var54;
                  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] * var55[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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9035[var49] * var15 + this.anIntArray9034[var49] * var16 + 16383 >> 14;
                                 this.anIntArray9035[var49] = this.anIntArray9035[var49] * var16 - this.anIntArray9034[var49] * var15 + 16383 >> 14;
                                 this.anIntArray9034[var49] = var17;
                              }

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

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

                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }

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

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

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

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

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

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

                     if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                        this.aClass150_9058.anInterface10_1716 = null;
                     }

                     if(this.aClass150_9081 != null) {
                        this.aClass150_9081.anInterface10_1716 = null;
                     }
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -anInt9046 + 8192 >> 14;
                  var20 = var17 * -anInt9089 + 8192 >> 14;
                  var21 = var18 * -anInt9076 + 8192 >> 14;
                  var22 = var19 + anInt9046;
                  var23 = var20 + anInt9089;
                  var24 = var21 + anInt9076;
                  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 * var49 + 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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              this.anIntArray9034[var49] = this.anIntArray9034[var49] * var3 >> 7;
                              this.anIntArray9035[var49] = this.anIntArray9035[var49] * var4 >> 7;
                              this.anIntArray9036[var49] = this.anIntArray9036[var49] * var5 >> 7;
                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }
               }

            } else {
               Class157 var47;
               Class148 var48;
               if(var1 == 5) {
                  if(this.anIntArrayArray9071 != null) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9071.length) {
                           var12 = this.anIntArrayArray9071[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = (this.aByteArray9050[var49] & 255) + var3 * 8;
                                 if(var15 < 0) {
                                    var15 = 0;
                                 } else if(var15 > 255) {
                                    var15 = 255;
                                 }

                                 this.aByteArray9050[var49] = (byte)var15;
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var47.anInt1949] & 255) << 24;
                        }
                     }
                  }

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

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = this.aShortArray9049[var49] & '\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.aShortArray9049[var49] = (short)(var16 << 10 | var17 << 7 | var18);
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var47.anInt1949] & '\uffff'] & 16777215;
                        }
                     }
                  }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1712 += var3;
                                 var14.anInt1713 += var4;
                              }
                           }
                        }
                     }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1711 = var14.anInt1711 * var3 >> 7;
                                 var14.anInt1714 = var14.anInt1714 * var4 >> 7;
                              }
                           }
                        }
                     }

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

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

                  }
               }
            }
         }
      }
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9035[var4] = this.anIntArray9035[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

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

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

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   Class568_Sub1(Class545_Sub1 var1, Class96 var2, int var3, int var4, int var5, int var6) {
      this.aClass545_Sub1_9024 = var1;
      this.anInt9025 = var3;
      this.anInt9038 = var6;
      if(Class134.method2518(var3, var6)) {
         this.aClass150_9017 = new Class150((Interface10)null, 5126, 3, 0);
      }

      if(Class134.method2569(var3, var6)) {
         this.aClass150_9060 = new Class150((Interface10)null, 5126, 2, 0);
      }

      if(Class134.method2519(var3, var6)) {
         this.aClass150_9081 = new Class150((Interface10)null, 5126, 3, 0);
      }

      if(Class134.method2551(var3, var6)) {
         this.aClass150_9058 = new Class150((Interface10)null, 5121, 4, 0);
      }

      if(Class134.method2521(var3, var6)) {
         this.aClass131_9079 = new Class131();
      }

      Interface24 var7 = var1.anInterface24_7370;
      int[] var8 = new int[var2.anInt952];
      this.anIntArray9075 = 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', 1335113551);
               if(((this.anInt9038 & 64) == 0 || !var10.aBool1994) && var10.aBool1988) {
                  continue;
               }
            }

            var8[this.anInt9047++] = var9;
            ++this.anIntArray9075[var2.aShortArray955[var9]];
            ++this.anIntArray9075[var2.aShortArray954[var9]];
            ++this.anIntArray9075[var2.aShortArray945[var9]];
         }
      }

      this.anInt9048 = this.anInt9047;
      long[] var67 = new long[this.anInt9047];
      boolean var68 = (this.anInt9025 & 256) != 0;

      int var12;
      int var14;
      int var19;
      Class161 var22;
      int var71;
      short var78;
      for(int var11 = 0; var11 < this.anInt9047; ++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)80);
                  if(var21.aBool4518) {
                     var18 = true;
                  }

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

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

         var78 = -1;
         if(var2.aShortArray961 != null) {
            var78 = var2.aShortArray961[var12];
            if(var78 != -1) {
               var13 = var7.method113(var78 & '\uffff', -806646610);
               if((this.anInt9038 & 64) != 0 && var13.aBool1994) {
                  var78 = -1;
                  var13 = null;
               } else {
                  var16 = var13.aByte1986;
                  var17 = var13.aByte1999;
                  if(var13.aByte1972 != 0 || var13.aByte1993 != 0) {
                     this.aBool9029 = true;
                  }
               }
            }
         }

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

         if(var83) {
            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.aBool9030 |= var83;
         this.aBool9029 |= var13 != null && (var13.aByte1972 != 0 || var13.aByte1993 != 0);
      }

      Class304.method5433(var67, var8, 1045472306);
      this.anInt9032 = var2.anInt962;
      this.anInt9061 = var2.anInt946;
      this.anIntArray9034 = var2.anIntArray970;
      this.anIntArray9035 = var2.anIntArray948;
      this.anIntArray9036 = var2.anIntArray968;
      this.aShortArray9074 = var2.aShortArray953;
      Class142[] var69 = new Class142[this.anInt9061];
      this.aClass80Array9040 = var2.aClass80Array971;
      this.aClass166Array9078 = var2.aClass166Array979;
      int var77;
      if(var2.aClass92Array980 != null) {
         this.anInt9062 = var2.aClass92Array980.length;
         this.aClass157Array9080 = new Class157[this.anInt9062];
         this.aClass148Array9020 = new Class148[this.anInt9062];

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

            for(var77 = 0; var77 < this.anInt9047; ++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.aClass157Array9080[var12] = new Class157(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.aClass148Array9020[var12] = new Class148(var77);
         }
      }

      var12 = this.anInt9047 * 3;
      this.aShortArray9055 = new short[var12];
      this.aShortArray9041 = new short[var12];
      this.aShortArray9042 = new short[var12];
      this.aByteArray9077 = new byte[var12];
      this.aFloatArray9045 = new float[var12];
      this.aFloatArray9037 = new float[var12];
      this.aShortArray9049 = new short[this.anInt9047];
      this.aByteArray9050 = new byte[this.anInt9047];
      this.aShortArray9051 = new short[this.anInt9047];
      this.aShortArray9090 = new short[this.anInt9047];
      this.aShortArray9053 = new short[this.anInt9047];
      this.aShortArray9054 = new short[this.anInt9047];
      if(var2.aShortArray964 != null) {
         this.aShortArray9052 = new short[this.anInt9047];
      }

      this.aShort9028 = (short)var4;
      this.aShort9026 = (short)var5;
      this.aShortArray9031 = new short[var12];
      aLongArray9083 = new long[var12];
      int var70 = 0;

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

      this.anIntArray9075[var2.anInt946] = var70;
      Class77 var75 = this.method12058(var2, var8, this.anInt9047);
      Class139[] var76 = new Class139[var2.anInt952];

      short var74;
      int var81;
      short var82;
      int var88;
      for(var77 = 0; var77 < var2.anInt952; ++var77) {
         var74 = var2.aShortArray955[var77];
         var78 = var2.aShortArray954[var77];
         var82 = var2.aShortArray945[var77];
         var81 = this.anIntArray9034[var78] - this.anIntArray9034[var74];
         var88 = this.anIntArray9035[var78] - this.anIntArray9035[var74];
         int var84 = this.anIntArray9036[var78] - this.anIntArray9036[var74];
         int var23 = this.anIntArray9034[var82] - this.anIntArray9034[var74];
         int var24 = this.anIntArray9035[var82] - this.anIntArray9035[var74];
         int var25 = this.anIntArray9036[var82] - this.anIntArray9036[var74];
         int var26 = var88 * var25 - var24 * var84;
         int var27 = var84 * var23 - var25 * var81;

         int var28;
         for(var28 = var81 * 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) {
            Class142 var31 = var69[var74];
            var31.anInt1631 += var26;
            var31.anInt1630 += var27;
            var31.anInt1629 += var28;
            ++var31.anInt1632;
            var31 = var69[var78];
            var31.anInt1631 += var26;
            var31.anInt1630 += var27;
            var31.anInt1629 += var28;
            ++var31.anInt1632;
            var31 = var69[var82];
            var31.anInt1631 += var26;
            var31.anInt1630 += var27;
            var31.anInt1629 += var28;
            ++var31.anInt1632;
         } else if(var30 == 1) {
            Class139 var99 = var76[var77] = new Class139();
            var99.anInt1618 = var26;
            var99.anInt1619 = var27;
            var99.anInt1620 = var28;
         }
      }

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

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

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

         float var86 = 0.0F;
         float var87 = 0.0F;
         float var91 = 0.0F;
         float var90 = 0.0F;
         float var93 = 0.0F;
         float var92 = 0.0F;
         byte var95 = 0;
         byte var96 = 0;
         int var94 = 0;
         short var34;
         short var35;
         short var36;
         byte var97;
         if(var89 != -1) {
            if(var19 == -1) {
               var86 = 0.0F;
               var87 = 1.0F;
               var91 = 1.0F;
               var90 = 1.0F;
               var95 = 1;
               var93 = 0.0F;
               var92 = 0.0F;
               var96 = 2;
            } else {
               var19 &= 255;
               var97 = 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(var97 == 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;
                  var91 = (var59 * var50 + var60 * var51 + var61 * var52) * var62;
                  var93 = (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;
                  var92 = (var59 * var53 + var60 * var54 + var61 * var55) * var62;
               } else {
                  var32 = var2.aShortArray955[var79];
                  var33 = var2.aShortArray954[var79];
                  var34 = var2.aShortArray945[var79];
                  int var101 = var75.anIntArray714[var19];
                  int var100 = var75.anIntArray717[var19];
                  int var105 = var75.anIntArray716[var19];
                  float[] var103 = var75.aFloatArrayArray715[var19];
                  byte var102 = var2.aByteArray959[var19];
                  var40 = (float)var2.anIntArray973[var19] / 256.0F;
                  if(var97 == 1) {
                     var41 = (float)var2.anIntArray972[var19] / 1024.0F;
                     this.method12055(var2.anIntArray970[var32], var2.anIntArray948[var32], var2.anIntArray968[var32], var101, var100, var105, var103, var41, var102, var40, aFloatArray9084);
                     var86 = aFloatArray9084[0];
                     var87 = aFloatArray9084[1];
                     this.method12055(var2.anIntArray970[var33], var2.anIntArray948[var33], var2.anIntArray968[var33], var101, var100, var105, var103, var41, var102, var40, aFloatArray9084);
                     var91 = aFloatArray9084[0];
                     var90 = aFloatArray9084[1];
                     this.method12055(var2.anIntArray970[var34], var2.anIntArray948[var34], var2.anIntArray968[var34], var101, var100, var105, var103, var41, var102, var40, aFloatArray9084);
                     var93 = aFloatArray9084[0];
                     var92 = aFloatArray9084[1];
                     var42 = var41 / 2.0F;
                     if((var102 & 1) == 0) {
                        if(var91 - var86 > var42) {
                           var91 -= var41;
                           var95 = 1;
                        } else if(var86 - var91 > var42) {
                           var91 += var41;
                           var95 = 2;
                        }

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

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

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

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

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

         if(var97 == 0) {
            long var63 = (long)(var19 << 2) + ((long)(var94 << 24) + (long)(var80 << 8) + (long)var81 << 32);
            var34 = var2.aShortArray955[var79];
            var35 = var2.aShortArray954[var79];
            var36 = var2.aShortArray945[var79];
            Class142 var104 = var69[var34];
            this.aShortArray9051[var77] = this.method14510(var2, var34, var63, var104.anInt1631, var104.anInt1630, var104.anInt1629, var104.anInt1632, var86, var87);
            var104 = var69[var35];
            this.aShortArray9090[var77] = this.method14510(var2, var35, var63 + (long)var95, var104.anInt1631, var104.anInt1630, var104.anInt1629, var104.anInt1632, var91, var90);
            var104 = var69[var36];
            this.aShortArray9053[var77] = this.method14510(var2, var36, var63 + (long)var96, var104.anInt1631, var104.anInt1630, var104.anInt1629, var104.anInt1632, var93, var92);
         } else if(var97 == 1) {
            Class139 var98 = var76[var79];
            long var65 = (long)((var19 << 2) + (var98.anInt1618 > 0?1024:2048) + (var98.anInt1619 + 256 << 12) + (var98.anInt1620 + 256 << 22)) + ((long)(var94 << 24) + (long)(var80 << 8) + (long)var81 << 32);
            this.aShortArray9051[var77] = this.method14510(var2, var2.aShortArray955[var79], var65, var98.anInt1618, var98.anInt1619, var98.anInt1620, 0, var86, var87);
            this.aShortArray9090[var77] = this.method14510(var2, var2.aShortArray954[var79], var65 + (long)var95, var98.anInt1618, var98.anInt1619, var98.anInt1620, 0, var91, var90);
            this.aShortArray9053[var77] = this.method14510(var2, var2.aShortArray945[var79], var65 + (long)var96, var98.anInt1618, var98.anInt1619, var98.anInt1620, 0, var93, var92);
         }

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

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

         this.aShortArray9049[var77] = var2.aShortArray960[var79];
         this.aShortArray9054[var77] = var89;
      }

      var77 = 0;
      var74 = -10000;

      for(var80 = 0; var80 < this.anInt9048; ++var80) {
         var82 = this.aShortArray9054[var80];
         if(var82 != var74) {
            ++var77;
            var74 = var82;
         }
      }

      this.anIntArray9043 = new int[var77 + 1];
      var77 = 0;
      var74 = -10000;

      for(var80 = 0; var80 < this.anInt9048; ++var80) {
         var82 = this.aShortArray9054[var80];
         if(var82 != var74) {
            this.anIntArray9043[var77++] = var80;
            var74 = var82;
         }
      }

      this.anIntArray9043[var77] = this.anInt9048;
      aLongArray9083 = null;
      this.aShortArray9055 = method14499(this.aShortArray9055, this.anInt9039);
      this.aShortArray9041 = method14499(this.aShortArray9041, this.anInt9039);
      this.aShortArray9042 = method14499(this.aShortArray9042, this.anInt9039);
      this.aByteArray9077 = method14520(this.aByteArray9077, this.anInt9039);
      this.aFloatArray9045 = method14492(this.aFloatArray9045, this.anInt9039);
      this.aFloatArray9037 = method14492(this.aFloatArray9037, this.anInt9039);
      if(var2.anIntArray950 != null && Class134.method2536(var3, this.anInt9038)) {
         this.anIntArrayArray9033 = var2.method1894(false);
      }

      if(var2.aClass92Array980 != null && Class134.method2516(var3, this.anInt9038)) {
         this.anIntArrayArray9082 = var2.method1859();
      }

      if(var2.anIntArray944 != null && Class134.method2533(var3, this.anInt9038)) {
         var80 = 0;
         int[] var85 = new int[256];

         for(var81 = 0; var81 < this.anInt9047; ++var81) {
            var88 = var2.anIntArray944[var8[var81]];
            if(var88 >= 0) {
               ++var85[var88];
               if(var88 > var80) {
                  var80 = var88;
               }
            }
         }

         this.anIntArrayArray9071 = new int[var80 + 1][];

         for(var81 = 0; var81 <= var80; ++var81) {
            this.anIntArrayArray9071[var81] = new int[var85[var81]];
            var85[var81] = 0;
         }

         for(var81 = 0; var81 < this.anInt9047; ++var81) {
            var88 = var2.anIntArray944[var8[var81]];
            if(var88 >= 0) {
               this.anIntArrayArray9071[var88][var85[var88]++] = var81;
            }
         }
      }

   }

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

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

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

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

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

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

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      int var8 = var5 + this.aShort9070;
      int var9 = var5 + this.aShort9021;
      int var10 = var7 + this.aShort9067;
      int var11 = var7 + this.aShort9073;
      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.anInt9061; ++var12) {
               this.anIntArray9035[var12] = this.anIntArray9035[var12] + var3.method6791(this.anIntArray9034[var12] + var5, this.anIntArray9036[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               short var19 = this.aShort9068;
               if(var19 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9061; ++var13) {
                  var14 = (this.anIntArray9035[var13] << 16) / var19;
                  if(var14 < var2) {
                     this.anIntArray9035[var13] += (var3.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[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.aShort9069 - this.aShort9068;

                  for(var13 = 0; var13 < this.anInt9061; ++var13) {
                     this.anIntArray9035[var13] = this.anIntArray9035[var13] + (var4.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.aShort9069 - this.aShort9068;

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

         if(this.aClass150_9017 != null) {
            this.aClass150_9017.anInterface10_1716 = null;
         }

         this.aBool9057 = false;
      }
   }

   public int cl() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9068;
   }

   public boolean method12101() {
      if(this.aShortArray9054 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9054.length; ++var1) {
            if(this.aShortArray9054[var1] != -1 && !this.aClass545_Sub1_9024.aClass172_9169.method3003(this.aShortArray9054[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

   public int ha() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9073;
   }

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

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

   public int cg() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9069;
   }

   void method12088() {}

   boolean bt() {
      if(this.anIntArrayArray9033 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9032; ++var1) {
            this.anIntArray9034[var1] <<= 4;
            this.anIntArray9035[var1] <<= 4;
            this.anIntArray9036[var1] <<= 4;
         }

         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;
         return true;
      }
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var3 - this.anIntArray9036[var4] * var2 >> 14;
         this.anIntArray9036[var4] = this.anIntArray9035[var4] * var2 + this.anIntArray9036[var4] * var3 >> 14;
         this.anIntArray9035[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public boolean method12104(int var1, int var2, Class328 var3, boolean var4, int var5) {
      Class317 var6 = this.aClass545_Sub1_9024.aClass317_9200;
      var6.method5613(var3);
      var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
      boolean var7 = false;
      int var8 = Integer.MAX_VALUE;
      int var9 = Integer.MIN_VALUE;
      int var10 = Integer.MAX_VALUE;
      int var11 = Integer.MIN_VALUE;
      if(!this.aBool9057) {
         this.method14496();
      }

      int var12 = this.aShort9021 - this.aShort9070 >> 1;
      int var13 = this.aShort9069 - this.aShort9068 >> 1;
      int var14 = this.aShort9073 - this.aShort9067 >> 1;
      int var15 = this.aShort9070 + var12;
      int var16 = this.aShort9068 + var13;
      int var17 = this.aShort9067 + var14;
      int var18 = var15 - (var12 << var5);
      int var19 = var16 - (var13 << var5);
      int var20 = var17 - (var14 << var5);
      int var21 = var15 + (var12 << var5);
      int var22 = var16 + (var13 << var5);
      int var23 = var17 + (var14 << var5);
      anIntArray9085[0] = var18;
      anIntArray9086[0] = var19;
      anIntArray9087[0] = var20;
      anIntArray9085[1] = var21;
      anIntArray9086[1] = var19;
      anIntArray9087[1] = var20;
      anIntArray9085[2] = var18;
      anIntArray9086[2] = var22;
      anIntArray9087[2] = var20;
      anIntArray9085[3] = var21;
      anIntArray9086[3] = var22;
      anIntArray9087[3] = var20;
      anIntArray9085[4] = var18;
      anIntArray9086[4] = var19;
      anIntArray9087[4] = var23;
      anIntArray9085[5] = var21;
      anIntArray9086[5] = var19;
      anIntArray9087[5] = var23;
      anIntArray9085[6] = var18;
      anIntArray9086[6] = var22;
      anIntArray9087[6] = var23;
      anIntArray9085[7] = var21;
      anIntArray9086[7] = var22;
      anIntArray9087[7] = var23;

      int var25;
      int var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      int var33;
      for(int var24 = 0; var24 < 8; ++var24) {
         var25 = anIntArray9085[var24];
         var26 = anIntArray9086[var24];
         var27 = anIntArray9087[var24];
         var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
         var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
         if(var28 >= -var29) {
            var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
            var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
            int var32 = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
            var33 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
            if(var32 < var8) {
               var8 = var32;
            }

            if(var32 > var9) {
               var9 = var32;
            }

            if(var33 < var10) {
               var10 = var33;
            }

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

            var7 = true;
         }
      }

      if(var7 && var1 > var8 && var1 < var9 && var2 > var10 && var2 < var11) {
         if(var4) {
            return true;
         }

         if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
            this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
            this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
         }

         int[] var38 = this.aClass545_Sub1_9024.anIntArray9295;
         int[] var39 = this.aClass545_Sub1_9024.anIntArray9195;

         for(var33 = 0; var33 < this.anInt9061; ++var33) {
            var25 = this.anIntArray9034[var33];
            var26 = this.anIntArray9035[var33];
            var27 = this.anIntArray9036[var33];
            var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
            var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
            int var34;
            int var35;
            int var36;
            int var37;
            if(var28 >= -var29) {
               var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
               var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[var37] = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
                  var39[var37] = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
               }
            } else {
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[this.aShortArray9031[var36] - 1] = -999999;
               }
            }
         }

         for(var33 = 0; var33 < this.anInt9047; ++var33) {
            if(var38[this.aShortArray9051[var33]] != -999999 && var38[this.aShortArray9090[var33]] != -999999 && var38[this.aShortArray9053[var33]] != -999999 && this.method14502(var1, var2, var39[this.aShortArray9051[var33]], var39[this.aShortArray9090[var33]], var39[this.aShortArray9053[var33]], var38[this.aShortArray9051[var33]], var38[this.aShortArray9090[var33]], var38[this.aShortArray9053[var33]])) {
               return true;
            }
         }
      }

      return false;
   }

   public int ck() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9070;
   }

   void method12084() {}

   void bm() {
      for(int var1 = 0; var1 < this.anInt9032; ++var1) {
         this.anIntArray9034[var1] = this.anIntArray9034[var1] + 7 >> 4;
         this.anIntArray9035[var1] = this.anIntArray9035[var1] + 7 >> 4;
         this.anIntArray9036[var1] = this.anIntArray9036[var1] + 7 >> 4;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   void bh() {
      for(int var1 = 0; var1 < this.anInt9032; ++var1) {
         this.anIntArray9034[var1] = this.anIntArray9034[var1] + 7 >> 4;
         this.anIntArray9035[var1] = this.anIntArray9035[var1] + 7 >> 4;
         this.anIntArray9036[var1] = this.anIntArray9036[var1] + 7 >> 4;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = 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;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var9 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var10 = 0; var10 < var8; ++var10) {
            int var24 = var2[var10];
            if(var24 < this.anIntArrayArray9033.length) {
               int[] var25 = this.anIntArrayArray9033[var24];

               for(var23 = 0; var23 < var25.length; ++var23) {
                  var14 = var25[var23];
                  anInt9046 += this.anIntArray9034[var14];
                  anInt9089 += this.anIntArray9035[var14];
                  anInt9076 += this.anIntArray9036[var14];
                  ++var9;
               }
            }
         }

         if(var9 > 0) {
            anInt9046 = anInt9046 / var9 + var3;
            anInt9089 = anInt9089 / var9 + var4;
            anInt9076 = anInt9076 / var9 + var5;
         } else {
            anInt9046 = var3;
            anInt9089 = var4;
            anInt9076 = 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.anIntArrayArray9033.length) {
                  var11 = this.anIntArrayArray9033[var10];

                  for(var12 = 0; var12 < var11.length; ++var12) {
                     var23 = var11[var12];
                     this.anIntArray9034[var23] += var3;
                     this.anIntArray9035[var23] += var4;
                     this.anIntArray9036[var23] += var5;
                  }
               }
            }

         } else {
            int var15;
            int var17;
            int var16;
            if(var1 == 2) {
               for(var9 = 0; var9 < var8; ++var9) {
                  var10 = var2[var9];
                  if(var10 < this.anIntArrayArray9033.length) {
                     var11 = this.anIntArrayArray9033[var10];
                     if((var6 & 1) == 0) {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var23 = var11[var12];
                           this.anIntArray9034[var23] -= anInt9046;
                           this.anIntArray9035[var23] -= anInt9089;
                           this.anIntArray9036[var23] -= anInt9076;
                           if(var5 != 0) {
                              var14 = Class312.anIntArray3943[var5];
                              var15 = Class312.anIntArray3956[var5];
                              var16 = this.anIntArray9035[var23] * var14 + this.anIntArray9034[var23] * var15 + 16383 >> 14;
                              this.anIntArray9035[var23] = this.anIntArray9035[var23] * var15 - this.anIntArray9034[var23] * var14 + 16383 >> 14;
                              this.anIntArray9034[var23] = var16;
                           }

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

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

                           this.anIntArray9034[var23] += anInt9046;
                           this.anIntArray9035[var23] += anInt9089;
                           this.anIntArray9036[var23] += anInt9076;
                        }
                     } else {
                        for(var12 = 0; var12 < var11.length; ++var12) {
                           var23 = var11[var12];
                           this.anIntArray9034[var23] -= anInt9046;
                           this.anIntArray9035[var23] -= anInt9089;
                           this.anIntArray9036[var23] -= anInt9076;
                           if(var3 != 0) {
                              var14 = Class312.anIntArray3943[var3];
                              var15 = Class312.anIntArray3956[var3];
                              var16 = this.anIntArray9035[var23] * var15 - this.anIntArray9036[var23] * var14 + 16383 >> 14;
                              this.anIntArray9036[var23] = this.anIntArray9035[var23] * var14 + this.anIntArray9036[var23] * var15 + 16383 >> 14;
                              this.anIntArray9035[var23] = var16;
                           }

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

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

                           this.anIntArray9034[var23] += anInt9046;
                           this.anIntArray9035[var23] += anInt9089;
                           this.anIntArray9036[var23] += anInt9076;
                        }
                     }
                  }
               }

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

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

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

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

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

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

                  if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                     this.aClass150_9058.anInterface10_1716 = null;
                  }

                  if(this.aClass150_9081 != null) {
                     this.aClass150_9081.anInterface10_1716 = null;
                  }
               }

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

                     for(var12 = 0; var12 < var11.length; ++var12) {
                        var23 = var11[var12];
                        this.anIntArray9034[var23] -= anInt9046;
                        this.anIntArray9035[var23] -= anInt9089;
                        this.anIntArray9036[var23] -= anInt9076;
                        this.anIntArray9034[var23] = this.anIntArray9034[var23] * var3 >> 7;
                        this.anIntArray9035[var23] = this.anIntArray9035[var23] * var4 >> 7;
                        this.anIntArray9036[var23] = this.anIntArray9036[var23] * var5 >> 7;
                        this.anIntArray9034[var23] += anInt9046;
                        this.anIntArray9035[var23] += anInt9089;
                        this.anIntArray9036[var23] += anInt9076;
                     }
                  }
               }

            } else {
               Class157 var21;
               Class148 var22;
               if(var1 == 5) {
                  if(this.anIntArrayArray9071 != null) {
                     for(var9 = 0; var9 < var8; ++var9) {
                        var10 = var2[var9];
                        if(var10 < this.anIntArrayArray9071.length) {
                           var11 = this.anIntArrayArray9071[var10];

                           for(var12 = 0; var12 < var11.length; ++var12) {
                              var23 = var11[var12];
                              var14 = (this.aByteArray9050[var23] & 255) + var3 * 8;
                              if(var14 < 0) {
                                 var14 = 0;
                              } else if(var14 > 255) {
                                 var14 = 255;
                              }

                              this.aByteArray9050[var23] = (byte)var14;
                           }

                           if(var11.length > 0 && this.aClass150_9058 != null) {
                              this.aClass150_9058.anInterface10_1716 = null;
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var9 = 0; var9 < this.anInt9062; ++var9) {
                           var21 = this.aClass157Array9080[var9];
                           var22 = this.aClass148Array9020[var9];
                           var22.anInt1709 = var22.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var21.anInt1949] & 255) << 24;
                        }
                     }
                  }

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

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

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

                              this.aShortArray9049[var23] = (short)(var15 << 10 | var16 << 7 | var17);
                           }

                           if(var11.length > 0 && this.aClass150_9058 != null) {
                              this.aClass150_9058.anInterface10_1716 = null;
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var9 = 0; var9 < this.anInt9062; ++var9) {
                           var21 = this.aClass157Array9080[var9];
                           var22 = this.aClass148Array9020[var9];
                           var22.anInt1709 = var22.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var21.anInt1949] & '\uffff'] & 16777215;
                        }
                     }
                  }

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

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass148Array9020[var11[var12]];
                                 var13.anInt1712 += var3;
                                 var13.anInt1713 += var4;
                              }
                           }
                        }
                     }

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

                              for(var12 = 0; var12 < var11.length; ++var12) {
                                 var13 = this.aClass148Array9020[var11[var12]];
                                 var13.anInt1711 = var13.anInt1711 * var3 >> 7;
                                 var13.anInt1714 = var13.anInt1714 * var4 >> 7;
                              }
                           }
                        }
                     }

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

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

                  }
               }
            }
         }
      }
   }

   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 var50;
      int var49;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var50 = var2[var11];
            if(var50 < this.anIntArrayArray9033.length) {
               int[] var52 = this.anIntArrayArray9033[var50];

               for(var49 = 0; var49 < var52.length; ++var49) {
                  var15 = var52[var49];
                  if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var15]) != 0) {
                     anInt9046 += this.anIntArray9034[var15];
                     anInt9089 += this.anIntArray9035[var15];
                     anInt9076 += this.anIntArray9036[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            anInt9046 = anInt9046 / var10 + var3;
            anInt9089 = anInt9089 / var10 + var4;
            anInt9076 = anInt9076 / var10 + var5;
            aBool9091 = true;
         } else {
            anInt9046 = var3;
            anInt9089 = var4;
            anInt9076 = 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;
               var50 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var50;
            }

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

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

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var49 = var12[var13];
                     if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                        this.anIntArray9034[var49] += var3;
                        this.anIntArray9035[var49] += var4;
                        this.anIntArray9036[var49] += 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;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  int[] var51 = 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;
                  var51[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var51[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var51[2] = var20 * var17 + 8192 >> 14;
                  var51[3] = var17 * var22 + 8192 >> 14;
                  var51[4] = var17 * var21 + 8192 >> 14;
                  var51[5] = -var18;
                  var51[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var51[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var51[8] = var19 * var17 + 8192 >> 14;
                  int var53 = var51[0] * -anInt9046 + var51[1] * -anInt9089 + var51[2] * -anInt9076 + 8192 >> 14;
                  var26 = var51[3] * -anInt9046 + var51[4] * -anInt9089 + var51[5] * -anInt9076 + 8192 >> 14;
                  var27 = var51[6] * -anInt9046 + var51[7] * -anInt9089 + var51[8] * -anInt9076 + 8192 >> 14;
                  var28 = var53 + anInt9046;
                  int var54 = var26 + anInt9089;
                  var30 = var27 + anInt9076;
                  int[] var55 = new int[9];

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

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

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

                  var32 = var51[0] * var13 + var51[1] * var49 + var51[2] * var15 + 8192 >> 14;
                  var33 = var51[3] * var13 + var51[4] * var49 + var51[5] * var15 + 8192 >> 14;
                  var34 = var51[6] * var13 + var51[7] * var49 + var51[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var54;
                  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] * var55[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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9035[var49] * var15 + this.anIntArray9034[var49] * var16 + 16383 >> 14;
                                 this.anIntArray9035[var49] = this.anIntArray9035[var49] * var16 - this.anIntArray9034[var49] * var15 + 16383 >> 14;
                                 this.anIntArray9034[var49] = var17;
                              }

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

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

                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }

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

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

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

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

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

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

                     if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                        this.aClass150_9058.anInterface10_1716 = null;
                     }

                     if(this.aClass150_9081 != null) {
                        this.aClass150_9081.anInterface10_1716 = null;
                     }
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -anInt9046 + 8192 >> 14;
                  var20 = var17 * -anInt9089 + 8192 >> 14;
                  var21 = var18 * -anInt9076 + 8192 >> 14;
                  var22 = var19 + anInt9046;
                  var23 = var20 + anInt9089;
                  var24 = var21 + anInt9076;
                  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 * var49 + 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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              this.anIntArray9034[var49] = this.anIntArray9034[var49] * var3 >> 7;
                              this.anIntArray9035[var49] = this.anIntArray9035[var49] * var4 >> 7;
                              this.anIntArray9036[var49] = this.anIntArray9036[var49] * var5 >> 7;
                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }
               }

            } else {
               Class157 var47;
               Class148 var48;
               if(var1 == 5) {
                  if(this.anIntArrayArray9071 != null) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9071.length) {
                           var12 = this.anIntArrayArray9071[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = (this.aByteArray9050[var49] & 255) + var3 * 8;
                                 if(var15 < 0) {
                                    var15 = 0;
                                 } else if(var15 > 255) {
                                    var15 = 255;
                                 }

                                 this.aByteArray9050[var49] = (byte)var15;
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var47.anInt1949] & 255) << 24;
                        }
                     }
                  }

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

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = this.aShortArray9049[var49] & '\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.aShortArray9049[var49] = (short)(var16 << 10 | var17 << 7 | var18);
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var47.anInt1949] & '\uffff'] & 16777215;
                        }
                     }
                  }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1712 += var3;
                                 var14.anInt1713 += var4;
                              }
                           }
                        }
                     }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1711 = var14.anInt1711 * var3 >> 7;
                                 var14.anInt1714 = var14.anInt1714 * var4 >> 7;
                              }
                           }
                        }
                     }

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

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

                  }
               }
            }
         }
      }
   }

   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 var50;
      int var49;
      if(var1 == 0) {
         var3 <<= 4;
         var4 <<= 4;
         var5 <<= 4;
         var10 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < var9; ++var11) {
            var50 = var2[var11];
            if(var50 < this.anIntArrayArray9033.length) {
               int[] var52 = this.anIntArrayArray9033[var50];

               for(var49 = 0; var49 < var52.length; ++var49) {
                  var15 = var52[var49];
                  if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var15]) != 0) {
                     anInt9046 += this.anIntArray9034[var15];
                     anInt9089 += this.anIntArray9035[var15];
                     anInt9076 += this.anIntArray9036[var15];
                     ++var10;
                  }
               }
            }
         }

         if(var10 > 0) {
            anInt9046 = anInt9046 / var10 + var3;
            anInt9089 = anInt9089 / var10 + var4;
            anInt9076 = anInt9076 / var10 + var5;
            aBool9091 = true;
         } else {
            anInt9046 = var3;
            anInt9089 = var4;
            anInt9076 = 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;
               var50 = var8[6] * var3 + var8[7] * var4 + var8[8] * var5 + 8192 >> 14;
               var3 = var10;
               var4 = var11;
               var5 = var50;
            }

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

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

                  for(var13 = 0; var13 < var12.length; ++var13) {
                     var49 = var12[var13];
                     if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                        this.anIntArray9034[var49] += var3;
                        this.anIntArray9035[var49] += var4;
                        this.anIntArray9036[var49] += 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;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  int[] var51 = 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;
                  var51[0] = var19 * var21 + var20 * var24 + 8192 >> 14;
                  var51[1] = -var19 * var22 + var20 * var23 + 8192 >> 14;
                  var51[2] = var20 * var17 + 8192 >> 14;
                  var51[3] = var17 * var22 + 8192 >> 14;
                  var51[4] = var17 * var21 + 8192 >> 14;
                  var51[5] = -var18;
                  var51[6] = -var20 * var21 + var19 * var24 + 8192 >> 14;
                  var51[7] = var20 * var22 + var19 * var23 + 8192 >> 14;
                  var51[8] = var19 * var17 + 8192 >> 14;
                  int var53 = var51[0] * -anInt9046 + var51[1] * -anInt9089 + var51[2] * -anInt9076 + 8192 >> 14;
                  var26 = var51[3] * -anInt9046 + var51[4] * -anInt9089 + var51[5] * -anInt9076 + 8192 >> 14;
                  var27 = var51[6] * -anInt9046 + var51[7] * -anInt9089 + var51[8] * -anInt9076 + 8192 >> 14;
                  var28 = var53 + anInt9046;
                  int var54 = var26 + anInt9089;
                  var30 = var27 + anInt9076;
                  int[] var55 = new int[9];

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

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

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

                  var32 = var51[0] * var13 + var51[1] * var49 + var51[2] * var15 + 8192 >> 14;
                  var33 = var51[3] * var13 + var51[4] * var49 + var51[5] * var15 + 8192 >> 14;
                  var34 = var51[6] * var13 + var51[7] * var49 + var51[8] * var15 + 8192 >> 14;
                  var32 += var28;
                  var33 += var54;
                  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] * var55[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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              if(var5 != 0) {
                                 var15 = Class312.anIntArray3943[var5];
                                 var16 = Class312.anIntArray3956[var5];
                                 var17 = this.anIntArray9035[var49] * var15 + this.anIntArray9034[var49] * var16 + 16383 >> 14;
                                 this.anIntArray9035[var49] = this.anIntArray9035[var49] * var16 - this.anIntArray9034[var49] * var15 + 16383 >> 14;
                                 this.anIntArray9034[var49] = var17;
                              }

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

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

                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }

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

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

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

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

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

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

                     if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                        this.aClass150_9058.anInterface10_1716 = null;
                     }

                     if(this.aClass150_9081 != null) {
                        this.aClass150_9081.anInterface10_1716 = null;
                     }
                  }
               }

            } else if(var1 == 3) {
               if(var8 != null) {
                  var10 = var8[9] << 4;
                  var11 = var8[10] << 4;
                  var50 = var8[11] << 4;
                  var13 = var8[12] << 4;
                  var49 = var8[13] << 4;
                  var15 = var8[14] << 4;
                  if(aBool9091) {
                     var16 = var8[0] * anInt9046 + var8[3] * anInt9089 + var8[6] * anInt9076 + 8192 >> 14;
                     var17 = var8[1] * anInt9046 + var8[4] * anInt9089 + var8[7] * anInt9076 + 8192 >> 14;
                     var18 = var8[2] * anInt9046 + var8[5] * anInt9089 + var8[8] * anInt9076 + 8192 >> 14;
                     var16 += var13;
                     var17 += var49;
                     var18 += var15;
                     anInt9046 = var16;
                     anInt9089 = var17;
                     anInt9076 = var18;
                     aBool9091 = false;
                  }

                  var16 = var3 << 15 >> 7;
                  var17 = var4 << 15 >> 7;
                  var18 = var5 << 15 >> 7;
                  var19 = var16 * -anInt9046 + 8192 >> 14;
                  var20 = var17 * -anInt9089 + 8192 >> 14;
                  var21 = var18 * -anInt9076 + 8192 >> 14;
                  var22 = var19 + anInt9046;
                  var23 = var20 + anInt9089;
                  var24 = var21 + anInt9076;
                  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 * var49 + 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 += var50;

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

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

                        for(var13 = 0; var13 < var12.length; ++var13) {
                           var49 = var12[var13];
                           if(this.aShortArray9074 == null || (var7 & this.aShortArray9074[var49]) != 0) {
                              this.anIntArray9034[var49] -= anInt9046;
                              this.anIntArray9035[var49] -= anInt9089;
                              this.anIntArray9036[var49] -= anInt9076;
                              this.anIntArray9034[var49] = this.anIntArray9034[var49] * var3 >> 7;
                              this.anIntArray9035[var49] = this.anIntArray9035[var49] * var4 >> 7;
                              this.anIntArray9036[var49] = this.anIntArray9036[var49] * var5 >> 7;
                              this.anIntArray9034[var49] += anInt9046;
                              this.anIntArray9035[var49] += anInt9089;
                              this.anIntArray9036[var49] += anInt9076;
                           }
                        }
                     }
                  }
               }

            } else {
               Class157 var47;
               Class148 var48;
               if(var1 == 5) {
                  if(this.anIntArrayArray9071 != null) {
                     for(var10 = 0; var10 < var9; ++var10) {
                        var11 = var2[var10];
                        if(var11 < this.anIntArrayArray9071.length) {
                           var12 = this.anIntArrayArray9071[var11];

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = (this.aByteArray9050[var49] & 255) + var3 * 8;
                                 if(var15 < 0) {
                                    var15 = 0;
                                 } else if(var15 > 255) {
                                    var15 = 255;
                                 }

                                 this.aByteArray9050[var49] = (byte)var15;
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var47.anInt1949] & 255) << 24;
                        }
                     }
                  }

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

                           for(var13 = 0; var13 < var12.length; ++var13) {
                              var49 = var12[var13];
                              if(this.aShortArray9052 == null || (var7 & this.aShortArray9052[var49]) != 0) {
                                 var15 = this.aShortArray9049[var49] & '\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.aShortArray9049[var49] = (short)(var16 << 10 | var17 << 7 | var18);
                                 if(this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }

                     if(this.aClass157Array9080 != null) {
                        for(var10 = 0; var10 < this.anInt9062; ++var10) {
                           var47 = this.aClass157Array9080[var10];
                           var48 = this.aClass148Array9020[var10];
                           var48.anInt1709 = var48.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var47.anInt1949] & '\uffff'] & 16777215;
                        }
                     }
                  }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1712 += var3;
                                 var14.anInt1713 += var4;
                              }
                           }
                        }
                     }

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

                              for(var13 = 0; var13 < var12.length; ++var13) {
                                 var14 = this.aClass148Array9020[var12[var13]];
                                 var14.anInt1711 = var14.anInt1711 * var3 >> 7;
                                 var14.anInt1714 = var14.anInt1714 * var4 >> 7;
                              }
                           }
                        }
                     }

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

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

                  }
               }
            }
         }
      }
   }

   void cf(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < this.anInt9061; ++var11) {
            anInt9046 += this.anIntArray9034[var11];
            anInt9089 += this.anIntArray9035[var11];
            anInt9076 += this.anIntArray9036[var11];
            ++var5;
         }

         if(var5 > 0) {
            anInt9046 = anInt9046 / var5 + var2;
            anInt9089 = anInt9089 / var5 + var3;
            anInt9076 = anInt9076 / var5 + var4;
         } else {
            anInt9046 = var2;
            anInt9089 = var3;
            anInt9076 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9061; ++var5) {
            this.anIntArray9034[var5] += var2;
            this.anIntArray9035[var5] += var3;
            this.anIntArray9036[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9035[var5] * var11 + this.anIntArray9034[var5] * var7 + 16383 >> 14;
                  this.anIntArray9035[var5] = this.anIntArray9035[var5] * var7 - this.anIntArray9034[var5] * var11 + 16383 >> 14;
                  this.anIntArray9034[var5] = var8;
               }

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

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

               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               this.anIntArray9034[var5] = this.anIntArray9034[var5] * var2 / 128;
               this.anIntArray9035[var5] = this.anIntArray9035[var5] * var3 / 128;
               this.anIntArray9036[var5] = this.anIntArray9036[var5] * var4 / 128;
               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else {
            Class157 var10;
            Class148 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = (this.aByteArray9050[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

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

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var10.anInt1949] & 255) << 24;
                  }
               }

            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
                  }
               }

            } else {
               Class148 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1712 += var2;
                     var6.anInt1713 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1711 = var6.anInt1711 * var2 >> 7;
                     var6.anInt1714 = var6.anInt1714 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1710 = var6.anInt1710 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   void cy(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < this.anInt9061; ++var11) {
            anInt9046 += this.anIntArray9034[var11];
            anInt9089 += this.anIntArray9035[var11];
            anInt9076 += this.anIntArray9036[var11];
            ++var5;
         }

         if(var5 > 0) {
            anInt9046 = anInt9046 / var5 + var2;
            anInt9089 = anInt9089 / var5 + var3;
            anInt9076 = anInt9076 / var5 + var4;
         } else {
            anInt9046 = var2;
            anInt9089 = var3;
            anInt9076 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9061; ++var5) {
            this.anIntArray9034[var5] += var2;
            this.anIntArray9035[var5] += var3;
            this.anIntArray9036[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9035[var5] * var11 + this.anIntArray9034[var5] * var7 + 16383 >> 14;
                  this.anIntArray9035[var5] = this.anIntArray9035[var5] * var7 - this.anIntArray9034[var5] * var11 + 16383 >> 14;
                  this.anIntArray9034[var5] = var8;
               }

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

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

               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               this.anIntArray9034[var5] = this.anIntArray9034[var5] * var2 / 128;
               this.anIntArray9035[var5] = this.anIntArray9035[var5] * var3 / 128;
               this.anIntArray9036[var5] = this.anIntArray9036[var5] * var4 / 128;
               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else {
            Class157 var10;
            Class148 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = (this.aByteArray9050[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

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

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var10.anInt1949] & 255) << 24;
                  }
               }

            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
                  }
               }

            } else {
               Class148 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1712 += var2;
                     var6.anInt1713 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1711 = var6.anInt1711 * var2 >> 7;
                     var6.anInt1714 = var6.anInt1714 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1710 = var6.anInt1710 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   void cv(int var1, int var2, int var3, int var4) {
      int var5;
      int var11;
      if(var1 == 0) {
         var5 = 0;
         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;

         for(var11 = 0; var11 < this.anInt9061; ++var11) {
            anInt9046 += this.anIntArray9034[var11];
            anInt9089 += this.anIntArray9035[var11];
            anInt9076 += this.anIntArray9036[var11];
            ++var5;
         }

         if(var5 > 0) {
            anInt9046 = anInt9046 / var5 + var2;
            anInt9089 = anInt9089 / var5 + var3;
            anInt9076 = anInt9076 / var5 + var4;
         } else {
            anInt9046 = var2;
            anInt9089 = var3;
            anInt9076 = var4;
         }

      } else if(var1 == 1) {
         for(var5 = 0; var5 < this.anInt9061; ++var5) {
            this.anIntArray9034[var5] += var2;
            this.anIntArray9035[var5] += var3;
            this.anIntArray9036[var5] += var4;
         }

      } else {
         int var7;
         int var8;
         if(var1 == 2) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               if(var4 != 0) {
                  var11 = Class312.anIntArray3943[var4];
                  var7 = Class312.anIntArray3956[var4];
                  var8 = this.anIntArray9035[var5] * var11 + this.anIntArray9034[var5] * var7 + 16383 >> 14;
                  this.anIntArray9035[var5] = this.anIntArray9035[var5] * var7 - this.anIntArray9034[var5] * var11 + 16383 >> 14;
                  this.anIntArray9034[var5] = var8;
               }

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

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

               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else if(var1 == 3) {
            for(var5 = 0; var5 < this.anInt9061; ++var5) {
               this.anIntArray9034[var5] -= anInt9046;
               this.anIntArray9035[var5] -= anInt9089;
               this.anIntArray9036[var5] -= anInt9076;
               this.anIntArray9034[var5] = this.anIntArray9034[var5] * var2 / 128;
               this.anIntArray9035[var5] = this.anIntArray9035[var5] * var3 / 128;
               this.anIntArray9036[var5] = this.anIntArray9036[var5] * var4 / 128;
               this.anIntArray9034[var5] += anInt9046;
               this.anIntArray9035[var5] += anInt9089;
               this.anIntArray9036[var5] += anInt9076;
            }

         } else {
            Class157 var10;
            Class148 var12;
            if(var1 == 5) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = (this.aByteArray9050[var5] & 255) + var2 * 8;
                  if(var11 < 0) {
                     var11 = 0;
                  } else if(var11 > 255) {
                     var11 = 255;
                  }

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

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & 16777215 | 255 - (this.aByteArray9050[var10.anInt1949] & 255) << 24;
                  }
               }

            } else if(var1 == 7) {
               for(var5 = 0; var5 < this.anInt9047; ++var5) {
                  var11 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
               }

               if(this.aClass150_9058 != null) {
                  this.aClass150_9058.anInterface10_1716 = null;
               }

               if(this.aClass157Array9080 != null) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var10 = this.aClass157Array9080[var5];
                     var12 = this.aClass148Array9020[var5];
                     var12.anInt1709 = var12.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
                  }
               }

            } else {
               Class148 var6;
               if(var1 == 8) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1712 += var2;
                     var6.anInt1713 += var3;
                  }

               } else if(var1 == 10) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1711 = var6.anInt1711 * var2 >> 7;
                     var6.anInt1714 = var6.anInt1714 * var3 >> 7;
                  }

               } else if(var1 == 9) {
                  for(var5 = 0; var5 < this.anInt9062; ++var5) {
                     var6 = this.aClass148Array9020[var5];
                     var6.anInt1710 = var6.anInt1710 + var2 & 16383;
                  }

               }
            }
         }
      }
   }

   public int N() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.anInt9066;
   }

   void method14508(boolean var1) {
      if(this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9048 * 6) {
         this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2((this.anInt9048 + 100) * 6);
      } else {
         this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.position = 0;
      }

      Class225_Sub23_Sub2 var2 = this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294;
      int var3;
      if(this.aClass545_Sub1_9024.aBool9257) {
         for(var3 = 0; var3 < this.anInt9048; ++var3) {
            var2.writeShort(this.aShortArray9051[var3], -20998102);
            var2.writeShort(this.aShortArray9090[var3], 1199543205);
            var2.writeShort(this.aShortArray9053[var3], 1268801735);
         }
      } else {
         for(var3 = 0; var3 < this.anInt9048; ++var3) {
            var2.method13704(this.aShortArray9051[var3], 1094649230);
            var2.method13704(this.aShortArray9090[var3], 1094649230);
            var2.method13704(this.aShortArray9053[var3], 1094649230);
         }
      }

      if(var2.position * -543666943 != 0) {
         if(var1) {
            if(this.anInterface15_9088 == null) {
               this.anInterface15_9088 = this.aClass545_Sub1_9024.method14581(5123, var2.buffer, var2.position * -543666943, true);
            } else {
               this.anInterface15_9088.method74(5123, var2.buffer, var2.position * -543666943);
            }

            this.aClass131_9079.anInterface15_1566 = this.anInterface15_9088;
         } else {
            this.aClass131_9079.anInterface15_1566 = this.aClass545_Sub1_9024.method14581(5123, var2.buffer, var2.position * -543666943, false);
         }

         if(!var1) {
            this.aBool9072 = true;
         }

      }
   }

   public void method12092(Class328 var1, Class89 var2, int var3) {
      if((var3 & 2) != 0) {
         OpenGL.glPolygonMode(1032, 6913);
      }

      if(this.anInt9039 != 0) {
         Class317 var4 = this.aClass545_Sub1_9024.aClass317_9186;
         Class317 var5 = this.aClass545_Sub1_9024.aClass317_9200;
         Class317 var6 = this.aClass545_Sub1_9024.aClass317_9201;
         var5.method5613(var1);
         var6.method5609(var5);
         var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
         if(!this.aBool9057) {
            this.method14496();
         }

         float[] var7 = this.aClass545_Sub1_9024.aFloatArray9190;
         var5.method5618(0.0F, (float)this.aShort9068, 0.0F, var7);
         float var8 = var7[0];
         float var9 = var7[1];
         float var10 = var7[2];
         var5.method5618(0.0F, (float)this.aShort9069, 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_Sub1_9024.aFloatArrayArray9189[var14];
            var16 = var15[0] * var8 + var15[1] * var9 + var15[2] * var10 + var15[3] + (float)this.anInt9066;
            var17 = var15[0] * var11 + var15[1] * var12 + var15[2] * var13 + var15[3] + (float)this.anInt9066;
            if(var16 < 0.0F && var17 < 0.0F) {
               return;
            }
         }

         if(var2 != null) {
            boolean var18 = false;
            boolean var19 = true;
            int var20 = this.aShort9070 + this.aShort9021 >> 1;
            int var21 = this.aShort9067 + this.aShort9073 >> 1;
            short var23 = this.aShort9068;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var34 / var17);
               var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var33 / var17);
            } else {
               var18 = true;
            }

            var23 = this.aShort9069;
            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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var25 / var28);
               var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt888 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * 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_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var32);
                     var2.anInt885 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var32);
                  }
               }
            }

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

               var2.aBool886 = true;
            }
         }

         this.aClass545_Sub1_9024.method14556();
         this.aClass545_Sub1_9024.method14565(var5);
         this.method14493();
         this.aClass545_Sub1_9024.method14566();
         var5.method5612(this.aClass545_Sub1_9024.aClass317_9184);
         this.method14498(var5);
         if((var3 & 2) != 0) {
            OpenGL.glPolygonMode(1028, 6914);
         }

      }
   }

   public void method12078(Class568 var1, int var2, int var3, int var4, boolean var5) {
      Class568_Sub1 var6 = (Class568_Sub1)var1;
      if(this.anInt9047 != 0 && var6.anInt9047 != 0) {
         int var7 = var6.anInt9061;
         int[] var8 = var6.anIntArray9034;
         int[] var9 = var6.anIntArray9035;
         int[] var10 = var6.anIntArray9036;
         short[] var11 = var6.aShortArray9055;
         short[] var12 = var6.aShortArray9041;
         short[] var13 = var6.aShortArray9042;
         byte[] var14 = var6.aByteArray9077;
         short[] var15;
         short[] var17;
         short[] var16;
         byte[] var18;
         if(this.aClass165_9044 != null) {
            var15 = this.aClass165_9044.aShortArray2013;
            var16 = this.aClass165_9044.aShortArray2012;
            var17 = this.aClass165_9044.aShortArray2014;
            var18 = this.aClass165_9044.aByteArray2011;
         } else {
            var15 = null;
            var16 = null;
            var17 = null;
            var18 = null;
         }

         short[] var19;
         short[] var21;
         short[] var20;
         byte[] var22;
         if(var6.aClass165_9044 != null) {
            var19 = var6.aClass165_9044.aShortArray2013;
            var20 = var6.aClass165_9044.aShortArray2012;
            var21 = var6.aClass165_9044.aShortArray2014;
            var22 = var6.aClass165_9044.aByteArray2011;
         } else {
            var19 = null;
            var20 = null;
            var21 = null;
            var22 = null;
         }

         int[] var23 = var6.anIntArray9075;
         short[] var24 = var6.aShortArray9031;
         if(!var6.aBool9057) {
            var6.method14496();
         }

         short var25 = var6.aShort9068;
         short var26 = var6.aShort9069;
         short var27 = var6.aShort9070;
         short var28 = var6.aShort9021;
         short var29 = var6.aShort9067;
         short var30 = var6.aShort9073;

         for(int var31 = 0; var31 < this.anInt9061; ++var31) {
            int var32 = this.anIntArray9035[var31] - var3;
            if(var32 >= var25 && var32 <= var26) {
               int var33 = this.anIntArray9034[var31] - var2;
               if(var33 >= var27 && var33 <= var28) {
                  int var34 = this.anIntArray9036[var31] - var4;
                  if(var34 >= var29 && var34 <= var30) {
                     int var35 = -1;
                     int var36 = this.anIntArray9075[var31];
                     int var37 = this.anIntArray9075[var31 + 1];

                     int var38;
                     for(var38 = var36; var38 < var37; ++var38) {
                        var35 = this.aShortArray9031[var38] - 1;
                        if(var35 == -1 || this.aByteArray9077[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.aClass165_9044 = new Class165();
                                    var15 = this.aClass165_9044.aShortArray2013 = Class188.method3313(this.aShortArray9055, -64189994);
                                    var16 = this.aClass165_9044.aShortArray2012 = Class188.method3313(this.aShortArray9041, 694678801);
                                    var17 = this.aClass165_9044.aShortArray2014 = Class188.method3313(this.aShortArray9042, -579683260);
                                    var18 = this.aClass165_9044.aByteArray2011 = Class73.method1591(this.aByteArray9077, -998948415);
                                 }

                                 if(var19 == null) {
                                    Class165 var47 = var6.aClass165_9044 = new Class165();
                                    var19 = var47.aShortArray2013 = Class188.method3313(var11, 997009381);
                                    var20 = var47.aShortArray2012 = Class188.method3313(var12, 86525920);
                                    var21 = var47.aShortArray2014 = Class188.method3313(var13, -1413503692);
                                    var22 = var47.aByteArray2011 = Class73.method1591(var14, -819504250);
                                 }

                                 short var46 = this.aShortArray9055[var35];
                                 short var41 = this.aShortArray9041[var35];
                                 short var42 = this.aShortArray9042[var35];
                                 byte var43 = this.aByteArray9077[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.anIntArray9075[var31];
                                 var37 = this.anIntArray9075[var31 + 1];

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

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

                                 if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
                                    this.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(this.aClass150_9081 != null) {
                                    this.aClass150_9081.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 == null && var6.aClass150_9058 != null) {
                                    var6.aClass150_9058.anInterface10_1716 = null;
                                 }

                                 if(var6.aClass150_9081 != null) {
                                    var6.aClass150_9081.anInterface10_1716 = null;
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }

      }
   }

   public boolean method12061(int var1, int var2, Class328 var3, boolean var4, int var5) {
      Class317 var6 = this.aClass545_Sub1_9024.aClass317_9200;
      var6.method5613(var3);
      var6.method5612(this.aClass545_Sub1_9024.aClass317_9188);
      boolean var7 = false;
      int var8 = Integer.MAX_VALUE;
      int var9 = Integer.MIN_VALUE;
      int var10 = Integer.MAX_VALUE;
      int var11 = Integer.MIN_VALUE;
      if(!this.aBool9057) {
         this.method14496();
      }

      int var12 = this.aShort9021 - this.aShort9070 >> 1;
      int var13 = this.aShort9069 - this.aShort9068 >> 1;
      int var14 = this.aShort9073 - this.aShort9067 >> 1;
      int var15 = this.aShort9070 + var12;
      int var16 = this.aShort9068 + var13;
      int var17 = this.aShort9067 + var14;
      int var18 = var15 - (var12 << var5);
      int var19 = var16 - (var13 << var5);
      int var20 = var17 - (var14 << var5);
      int var21 = var15 + (var12 << var5);
      int var22 = var16 + (var13 << var5);
      int var23 = var17 + (var14 << var5);
      anIntArray9085[0] = var18;
      anIntArray9086[0] = var19;
      anIntArray9087[0] = var20;
      anIntArray9085[1] = var21;
      anIntArray9086[1] = var19;
      anIntArray9087[1] = var20;
      anIntArray9085[2] = var18;
      anIntArray9086[2] = var22;
      anIntArray9087[2] = var20;
      anIntArray9085[3] = var21;
      anIntArray9086[3] = var22;
      anIntArray9087[3] = var20;
      anIntArray9085[4] = var18;
      anIntArray9086[4] = var19;
      anIntArray9087[4] = var23;
      anIntArray9085[5] = var21;
      anIntArray9086[5] = var19;
      anIntArray9087[5] = var23;
      anIntArray9085[6] = var18;
      anIntArray9086[6] = var22;
      anIntArray9087[6] = var23;
      anIntArray9085[7] = var21;
      anIntArray9086[7] = var22;
      anIntArray9087[7] = var23;

      int var25;
      int var27;
      int var26;
      float var29;
      float var28;
      float var31;
      float var30;
      int var33;
      for(int var24 = 0; var24 < 8; ++var24) {
         var25 = anIntArray9085[var24];
         var26 = anIntArray9086[var24];
         var27 = anIntArray9087[var24];
         var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
         var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
         if(var28 >= -var29) {
            var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
            var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
            int var32 = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
            var33 = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
            if(var32 < var8) {
               var8 = var32;
            }

            if(var32 > var9) {
               var9 = var32;
            }

            if(var33 < var10) {
               var10 = var33;
            }

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

            var7 = true;
         }
      }

      if(var7 && var1 > var8 && var1 < var9 && var2 > var10 && var2 < var11) {
         if(var4) {
            return true;
         }

         if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
            this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
            this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
         }

         int[] var38 = this.aClass545_Sub1_9024.anIntArray9295;
         int[] var39 = this.aClass545_Sub1_9024.anIntArray9195;

         for(var33 = 0; var33 < this.anInt9061; ++var33) {
            var25 = this.anIntArray9034[var33];
            var26 = this.anIntArray9035[var33];
            var27 = this.anIntArray9036[var33];
            var28 = var6.aFloatArray4000[2] * (float)var25 + var6.aFloatArray4000[6] * (float)var26 + var6.aFloatArray4000[10] * (float)var27 + var6.aFloatArray4000[14];
            var29 = var6.aFloatArray4000[3] * (float)var25 + var6.aFloatArray4000[7] * (float)var26 + var6.aFloatArray4000[11] * (float)var27 + var6.aFloatArray4000[15];
            int var34;
            int var35;
            int var36;
            int var37;
            if(var28 >= -var29) {
               var30 = var6.aFloatArray4000[0] * (float)var25 + var6.aFloatArray4000[4] * (float)var26 + var6.aFloatArray4000[8] * (float)var27 + var6.aFloatArray4000[12];
               var31 = var6.aFloatArray4000[1] * (float)var25 + var6.aFloatArray4000[5] * (float)var26 + var6.aFloatArray4000[9] * (float)var27 + var6.aFloatArray4000[13];
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[var37] = (int)(this.aClass545_Sub1_9024.aFloat9191 + this.aClass545_Sub1_9024.aFloat9280 * var30 / var29);
                  var39[var37] = (int)(this.aClass545_Sub1_9024.aFloat9282 + this.aClass545_Sub1_9024.aFloat9112 * var31 / var29);
               }
            } else {
               var34 = this.anIntArray9075[var33];
               var35 = this.anIntArray9075[var33 + 1];

               for(var36 = var34; var36 < var35; ++var36) {
                  var37 = this.aShortArray9031[var36] - 1;
                  if(var37 == -1) {
                     break;
                  }

                  var38[this.aShortArray9031[var36] - 1] = -999999;
               }
            }
         }

         for(var33 = 0; var33 < this.anInt9047; ++var33) {
            if(var38[this.aShortArray9051[var33]] != -999999 && var38[this.aShortArray9090[var33]] != -999999 && var38[this.aShortArray9053[var33]] != -999999 && this.method14502(var1, var2, var39[this.aShortArray9051[var33]], var39[this.aShortArray9090[var33]], var39[this.aShortArray9053[var33]], var38[this.aShortArray9051[var33]], var38[this.aShortArray9090[var33]], var38[this.aShortArray9053[var33]])) {
               return true;
            }
         }
      }

      return false;
   }

   public Class225_Sub14_Sub16 ga(Class225_Sub14_Sub16 var1) {
      if(this.anInt9039 == 0) {
         return null;
      } else {
         if(!this.aBool9057) {
            this.method14496();
         }

         int var2;
         int var3;
         if(this.aClass545_Sub1_9024.anInt9173 > 0) {
            var2 = this.aShort9070 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var3 = this.aShort9021 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         } else {
            var2 = this.aShort9070 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var3 = this.aShort9021 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         }

         int var4;
         int var5;
         if(this.aClass545_Sub1_9024.anInt9127 > 0) {
            var4 = this.aShort9067 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var5 = this.aShort9073 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         } else {
            var4 = this.aShort9067 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var5 = this.aShort9073 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         }

         int var6 = var3 - var2 + 1;
         int var7 = var5 - var4 + 1;
         Class225_Sub14_Sub16_Sub2 var8 = (Class225_Sub14_Sub16_Sub2)var1;
         Class225_Sub14_Sub16_Sub2 var9;
         if(var8 != null && var8.method16540(var6, var7)) {
            var9 = var8;
            var8.method16541();
         } else {
            var9 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9024, var6, var7);
         }

         var9.method16538(var2, var4, var3, var5);
         this.method14503(var9);
         return var9;
      }
   }

   public Class225_Sub14_Sub16 ch(Class225_Sub14_Sub16 var1) {
      if(this.anInt9039 == 0) {
         return null;
      } else {
         if(!this.aBool9057) {
            this.method14496();
         }

         int var2;
         int var3;
         if(this.aClass545_Sub1_9024.anInt9173 > 0) {
            var2 = this.aShort9070 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var3 = this.aShort9021 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         } else {
            var2 = this.aShort9070 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var3 = this.aShort9021 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         }

         int var4;
         int var5;
         if(this.aClass545_Sub1_9024.anInt9127 > 0) {
            var4 = this.aShort9067 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var5 = this.aShort9073 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         } else {
            var4 = this.aShort9067 - (this.aShort9068 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
            var5 = this.aShort9073 - (this.aShort9069 * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160;
         }

         int var6 = var3 - var2 + 1;
         int var7 = var5 - var4 + 1;
         Class225_Sub14_Sub16_Sub2 var8 = (Class225_Sub14_Sub16_Sub2)var1;
         Class225_Sub14_Sub16_Sub2 var9;
         if(var8 != null && var8.method16540(var6, var7)) {
            var9 = var8;
            var8.method16541();
         } else {
            var9 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9024, var6, var7);
         }

         var9.method16538(var2, var4, var3, var5);
         this.method14503(var9);
         return var9;
      }
   }

   public int ca() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.anInt9065;
   }

   public int cz() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9070;
   }

   void bx() {
      for(int var1 = 0; var1 < this.anInt9032; ++var1) {
         this.anIntArray9034[var1] = this.anIntArray9034[var1] + 7 >> 4;
         this.anIntArray9035[var1] = this.anIntArray9035[var1] + 7 >> 4;
         this.anIntArray9036[var1] = this.anIntArray9036[var1] + 7 >> 4;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9035[var4] = this.anIntArray9035[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public int ct() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9021;
   }

   public int ce() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9068;
   }

   public int ci() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9068;
   }

   public void method12139(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

   public int RA() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9070;
   }

   public int cc() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9069;
   }

   public int cn() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9069;
   }

   void method14509(Class225_Sub14_Sub16_Sub2 var1) {
      if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
         this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
         this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
      }

      int[] var2 = this.aClass545_Sub1_9024.anIntArray9295;
      int[] var3 = this.aClass545_Sub1_9024.anIntArray9195;
      int var4 = 0;

      int var5;
      int var6;
      int var7;
      int var8;
      int var9;
      int var10;
      while(var4 < this.anInt9061) {
         var5 = (this.anIntArray9034[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10669;
         var6 = (this.anIntArray9036[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10673;
         var7 = this.anIntArray9075[var4];
         var8 = this.anIntArray9075[var4 + 1];
         var9 = var7;

         while(true) {
            if(var9 < var8) {
               var10 = (this.aShortArray9031[var9] & '\uffff') - 1;
               if(var10 != -1) {
                  var2[var10] = var5;
                  var3[var10] = var6;
                  ++var9;
                  continue;
               }
            }

            ++var4;
            break;
         }
      }

      for(var4 = 0; var4 < this.anInt9048; ++var4) {
         if(this.aByteArray9050 == null || this.aByteArray9050[var4] <= 128) {
            var5 = this.aShortArray9051[var4] & '\uffff';
            var6 = this.aShortArray9090[var4] & '\uffff';
            var7 = this.aShortArray9053[var4] & '\uffff';
            var8 = var2[var5];
            var9 = var2[var6];
            var10 = var2[var7];
            int var11 = var3[var5];
            int var12 = var3[var6];
            int var13 = var3[var7];
            if((var8 - var9) * (var12 - var13) - (var12 - var11) * (var10 - var9) > 0) {
               var1.method16542(var11, var12, var13, var8, var9, var10);
            }
         }
      }

   }

   public int cb() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9073;
   }

   public int de() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9073;
   }

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

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

         if(aLongArray9083[var14] == var3) {
            return (short)(var15 - 1);
         }
      }

      this.aShortArray9031[var13] = (short)(this.anInt9039 + 1);
      aLongArray9083[var13] = var3;
      this.aShortArray9055[this.anInt9039] = (short)var5;
      this.aShortArray9041[this.anInt9039] = (short)var6;
      this.aShortArray9042[this.anInt9039] = (short)var7;
      this.aByteArray9077[this.anInt9039] = (byte)var8;
      this.aFloatArray9045[this.anInt9039] = var9;
      this.aFloatArray9037[this.anInt9039] = var10;
      return (short)(this.anInt9039++);
   }

   public void dr(int var1) {
      this.aShort9028 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

      for(int var4 = 0; var4 < this.anInt9061; ++var4) {
         int var5 = this.anIntArray9035[var4] * var2 + this.anIntArray9034[var4] * var3 >> 14;
         this.anIntArray9035[var4] = this.anIntArray9035[var4] * var3 - this.anIntArray9034[var4] * var2 >> 14;
         this.anIntArray9034[var4] = var5;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      this.aBool9057 = false;
   }

   public void dc(int var1) {
      this.aShort9026 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

   }

   public boolean method12107() {
      if(this.aShortArray9054 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9054.length; ++var1) {
            if(this.aShortArray9054[var1] != -1 && !this.aClass545_Sub1_9024.aClass172_9169.method3003(this.aShortArray9054[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

   public void ds(int var1) {
      this.aShort9026 = (short)var1;
      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

   }

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

   public int o() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.aShort9069;
   }

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

   public int dd() {
      return this.aShort9026;
   }

   public void W(short var1, short var2) {
      Interface24 var3 = this.aClass545_Sub1_9024.anInterface24_7370;

      for(int var4 = 0; var4 < this.anInt9047; ++var4) {
         if(this.aShortArray9054[var4] == var1) {
            this.aShortArray9054[var4] = var2;
         }
      }

      byte var11 = 0;
      byte var5 = 0;
      if(var1 != -1) {
         Class161 var6 = var3.method113(var1 & '\uffff', -793013781);
         var11 = var6.aByte1990;
         var5 = var6.aByte1991;
      }

      byte var12 = 0;
      byte var7 = 0;
      if(var2 != -1) {
         Class161 var8 = var3.method113(var2 & '\uffff', -231874294);
         var12 = var8.aByte1990;
         var7 = var8.aByte1991;
         if(var8.aByte1972 != 0 || var8.aByte1993 != 0) {
            this.aBool9029 = true;
         }
      }

      if(var11 != var12 | var5 != var7) {
         if(this.aClass157Array9080 != null) {
            for(int var13 = 0; var13 < this.anInt9062; ++var13) {
               Class157 var9 = this.aClass157Array9080[var13];
               Class148 var10 = this.aClass148Array9020[var13];
               var10.anInt1709 = var10.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var9.anInt1949] & '\uffff'] & 16777215;
            }
         }

         if(this.aClass150_9058 != null) {
            this.aClass150_9058.anInterface10_1716 = null;
         }
      }

   }

   public int dx() {
      return this.aShort9026;
   }

   public int dv() {
      return this.aShort9026;
   }

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

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

      if(this.aClass166Array9078 != null) {
         for(var3 = 0; var3 < this.aClass166Array9078.length; ++var3) {
            Class166 var6 = this.aClass166Array9078[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.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[4] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[8] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -404024063;
            var7.anInt2015 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[5] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[9] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -212113837;
            var7.anInt2020 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[6] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[10] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -306574699;
         }
      }

   }

   public byte[] da() {
      return this.aByteArray9050;
   }

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

      if(this.aClass157Array9080 != null) {
         for(var3 = 0; var3 < this.anInt9062; ++var3) {
            Class157 var4 = this.aClass157Array9080[var3];
            Class148 var5 = this.aClass148Array9020[var3];
            var5.anInt1709 = var5.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var4.anInt1949] & '\uffff'] & 16777215;
         }
      }

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

   public void dj(short var1, short var2) {
      Interface24 var3 = this.aClass545_Sub1_9024.anInterface24_7370;

      for(int var4 = 0; var4 < this.anInt9047; ++var4) {
         if(this.aShortArray9054[var4] == var1) {
            this.aShortArray9054[var4] = var2;
         }
      }

      byte var11 = 0;
      byte var5 = 0;
      if(var1 != -1) {
         Class161 var6 = var3.method113(var1 & '\uffff', 759217355);
         var11 = var6.aByte1990;
         var5 = var6.aByte1991;
      }

      byte var12 = 0;
      byte var7 = 0;
      if(var2 != -1) {
         Class161 var8 = var3.method113(var2 & '\uffff', -373441209);
         var12 = var8.aByte1990;
         var7 = var8.aByte1991;
         if(var8.aByte1972 != 0 || var8.aByte1993 != 0) {
            this.aBool9029 = true;
         }
      }

      if(var11 != var12 | var5 != var7) {
         if(this.aClass157Array9080 != null) {
            for(int var13 = 0; var13 < this.anInt9062; ++var13) {
               Class157 var9 = this.aClass157Array9080[var13];
               Class148 var10 = this.aClass148Array9020[var13];
               var10.anInt1709 = var10.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var9.anInt1949] & '\uffff'] & 16777215;
            }
         }

         if(this.aClass150_9058 != null) {
            this.aClass150_9058.anInterface10_1716 = null;
         }
      }

   }

   public void dg(int var1, int var2, int var3, int var4) {
      int var5;
      for(var5 = 0; var5 < this.anInt9047; ++var5) {
         int var6 = this.aShortArray9049[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.aShortArray9049[var5] = (short)(var7 << 10 | var8 << 7 | var9);
      }

      if(this.aClass157Array9080 != null) {
         for(var5 = 0; var5 < this.anInt9062; ++var5) {
            Class157 var10 = this.aClass157Array9080[var5];
            Class148 var11 = this.aClass148Array9020[var5];
            var11.anInt1709 = var11.anInt1709 & -16777216 | Exception_Sub5.anIntArray10376[this.aShortArray9049[var10.anInt1949] & '\uffff'] & 16777215;
         }
      }

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

   boolean bn() {
      if(this.anIntArrayArray9033 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9032; ++var1) {
            this.anIntArray9034[var1] <<= 4;
            this.anIntArray9035[var1] <<= 4;
            this.anIntArray9036[var1] <<= 4;
         }

         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;
         return true;
      }
   }

   public Class166[] method12103() {
      return this.aClass166Array9078;
   }

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

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

      if(this.aClass166Array9078 != null) {
         for(var3 = 0; var3 < this.aClass166Array9078.length; ++var3) {
            Class166 var6 = this.aClass166Array9078[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.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[4] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[8] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -404024063;
            var7.anInt2015 = (int)(var2.aFloatArray4000[13] + var2.aFloatArray4000[1] * (float)this.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[5] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[9] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -212113837;
            var7.anInt2020 = (int)(var2.aFloatArray4000[14] + var2.aFloatArray4000[2] * (float)this.anIntArray9034[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[6] * (float)this.anIntArray9035[var6.anInt2017 * 1229316477] + var2.aFloatArray4000[10] * (float)this.anIntArray9036[var6.anInt2017 * 1229316477]) * -306574699;
         }
      }

   }

   public boolean method12108() {
      if(this.aShortArray9054 == null) {
         return true;
      } else {
         for(int var1 = 0; var1 < this.aShortArray9054.length; ++var1) {
            if(this.aShortArray9054[var1] != -1 && !this.aClass545_Sub1_9024.aClass172_9169.method3003(this.aShortArray9054[var1], -1)) {
               return false;
            }
         }

         return true;
      }
   }

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

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

   void method12087() {}

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

   public boolean eo() {
      return this.aBool9029;
   }

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

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

         if(aLongArray9083[var14] == var3) {
            return (short)(var15 - 1);
         }
      }

      this.aShortArray9031[var13] = (short)(this.anInt9039 + 1);
      aLongArray9083[var13] = var3;
      this.aShortArray9055[this.anInt9039] = (short)var5;
      this.aShortArray9041[this.anInt9039] = (short)var6;
      this.aShortArray9042[this.anInt9039] = (short)var7;
      this.aByteArray9077[this.anInt9039] = (byte)var8;
      this.aFloatArray9045[this.anInt9039] = var9;
      this.aFloatArray9037[this.anInt9039] = var10;
      return (short)(this.anInt9039++);
   }

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

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

         if(aLongArray9083[var14] == var3) {
            return (short)(var15 - 1);
         }
      }

      this.aShortArray9031[var13] = (short)(this.anInt9039 + 1);
      aLongArray9083[var13] = var3;
      this.aShortArray9055[this.anInt9039] = (short)var5;
      this.aShortArray9041[this.anInt9039] = (short)var6;
      this.aShortArray9042[this.anInt9039] = (short)var7;
      this.aByteArray9077[this.anInt9039] = (byte)var8;
      this.aFloatArray9045[this.anInt9039] = var9;
      this.aFloatArray9037[this.anInt9039] = var10;
      return (short)(this.anInt9039++);
   }

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

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

         if(aLongArray9083[var14] == var3) {
            return (short)(var15 - 1);
         }
      }

      this.aShortArray9031[var13] = (short)(this.anInt9039 + 1);
      aLongArray9083[var13] = var3;
      this.aShortArray9055[this.anInt9039] = (short)var5;
      this.aShortArray9041[this.anInt9039] = (short)var6;
      this.aShortArray9042[this.anInt9039] = (short)var7;
      this.aByteArray9077[this.anInt9039] = (byte)var8;
      this.aFloatArray9045[this.anInt9039] = var9;
      this.aFloatArray9037[this.anInt9039] = var10;
      return (short)(this.anInt9039++);
   }

   public void method12106(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

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

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

   public void method12110() {
      if(this.anInt9039 > 0 && this.anInt9048 > 0) {
         this.method14504(false);
         if((this.aByte9027 & 16) == 0 && this.aClass131_9079.anInterface15_1566 == null) {
            this.method14508(false);
         }

         this.method14495();
      }
   }

   public void method12111() {
      if(this.anInt9039 > 0 && this.anInt9048 > 0) {
         this.method14504(false);
         if((this.aByte9027 & 16) == 0 && this.aClass131_9079.anInterface15_1566 == null) {
            this.method14508(false);
         }

         this.method14495();
      }
   }

   Class568 method14516(Class568_Sub1 var1, Class568_Sub1 var2, int var3, boolean var4, boolean var5) {
      var1.aByte9027 = 0;
      var1.anInt9025 = var3;
      var1.anInt9038 = this.anInt9038;
      var1.aShort9028 = this.aShort9028;
      var1.aShort9026 = this.aShort9026;
      var1.anInt9032 = this.anInt9032;
      var1.anInt9061 = this.anInt9061;
      var1.anInt9039 = this.anInt9039;
      var1.anInt9047 = this.anInt9047;
      var1.anInt9048 = this.anInt9048;
      var1.anInt9062 = this.anInt9062;
      if((var3 & 256) != 0) {
         var1.aBool9030 = true;
      } else {
         var1.aBool9030 = this.aBool9030;
      }

      var1.aBool9029 = this.aBool9029;
      boolean var6 = Class134.method2559(var3, this.anInt9038);
      boolean var7 = Class134.method2507(var3, this.anInt9038);
      boolean var8 = Class134.method2508(var3, this.anInt9038);
      boolean var9 = var6 | var7 | var8;
      int var10;
      if(var9) {
         if(var6) {
            if(var2.anIntArray9034 != null && var2.anIntArray9034.length >= this.anInt9032) {
               var1.anIntArray9034 = var2.anIntArray9034;
            } else {
               var1.anIntArray9034 = var2.anIntArray9034 = new int[this.anInt9032];
            }
         } else {
            var1.anIntArray9034 = this.anIntArray9034;
         }

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

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

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

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

            if(var8) {
               var1.anIntArray9036[var10] = this.anIntArray9036[var10];
            }
         }
      } else {
         var1.anIntArray9034 = this.anIntArray9034;
         var1.anIntArray9035 = this.anIntArray9035;
         var1.anIntArray9036 = this.anIntArray9036;
      }

      if(Class134.method2523(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 1);
         }

         var1.aClass150_9017 = var2.aClass150_9017;
         var1.aClass150_9017.aByte1718 = this.aClass150_9017.aByte1718;
         var1.aClass150_9017.anInterface10_1716 = this.aClass150_9017.anInterface10_1716;
      } else if(Class134.method2518(var3, this.anInt9038)) {
         var1.aClass150_9017 = this.aClass150_9017;
      } else {
         var1.aClass150_9017 = null;
      }

      if(Class134.method2571(var3, this.anInt9038)) {
         if(var2.aShortArray9049 != null && var2.aShortArray9049.length >= this.anInt9047) {
            var1.aShortArray9049 = var2.aShortArray9049;
         } else {
            var1.aShortArray9049 = var2.aShortArray9049 = new short[this.anInt9047];
         }

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

      if(Class134.method2512(var3, this.anInt9038)) {
         if(var2.aByteArray9050 != null && var2.aByteArray9050.length >= this.anInt9047) {
            var1.aByteArray9050 = var2.aByteArray9050;
         } else {
            var1.aByteArray9050 = var2.aByteArray9050 = new byte[this.anInt9047];
         }

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

      if(Class134.method2590(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 2);
         }

         var1.aClass150_9058 = var2.aClass150_9058;
         var1.aClass150_9058.aByte1718 = this.aClass150_9058.aByte1718;
         var1.aClass150_9058.anInterface10_1716 = this.aClass150_9058.anInterface10_1716;
      } else if(Class134.method2551(var3, this.anInt9038)) {
         var1.aClass150_9058 = this.aClass150_9058;
      } else {
         var1.aClass150_9058 = null;
      }

      int var11;
      if(Class134.method2510(var3, this.anInt9038)) {
         if(var2.aShortArray9055 != null && var2.aShortArray9055.length >= this.anInt9039) {
            var1.aShortArray9055 = var2.aShortArray9055;
            var1.aShortArray9041 = var2.aShortArray9041;
            var1.aShortArray9042 = var2.aShortArray9042;
         } else {
            var10 = this.anInt9039;
            var1.aShortArray9055 = var2.aShortArray9055 = new short[var10];
            var1.aShortArray9041 = var2.aShortArray9041 = new short[var10];
            var1.aShortArray9042 = var2.aShortArray9042 = new short[var10];
         }

         if(this.aClass165_9044 != null) {
            if(var2.aClass165_9044 == null) {
               var2.aClass165_9044 = new Class165();
            }

            Class165 var12 = var1.aClass165_9044 = var2.aClass165_9044;
            if(var12.aShortArray2013 == null || var12.aShortArray2013.length < this.anInt9039) {
               var11 = this.anInt9039;
               var12.aShortArray2013 = new short[var11];
               var12.aShortArray2012 = new short[var11];
               var12.aShortArray2014 = new short[var11];
               var12.aByteArray2011 = new byte[var11];
            }

            for(var11 = 0; var11 < this.anInt9039; ++var11) {
               var1.aShortArray9055[var11] = this.aShortArray9055[var11];
               var1.aShortArray9041[var11] = this.aShortArray9041[var11];
               var1.aShortArray9042[var11] = this.aShortArray9042[var11];
               var12.aShortArray2013[var11] = this.aClass165_9044.aShortArray2013[var11];
               var12.aShortArray2012[var11] = this.aClass165_9044.aShortArray2012[var11];
               var12.aShortArray2014[var11] = this.aClass165_9044.aShortArray2014[var11];
               var12.aByteArray2011[var11] = this.aClass165_9044.aByteArray2011[var11];
            }
         } else {
            for(var10 = 0; var10 < this.anInt9039; ++var10) {
               var1.aShortArray9055[var10] = this.aShortArray9055[var10];
               var1.aShortArray9041[var10] = this.aShortArray9041[var10];
               var1.aShortArray9042[var10] = this.aShortArray9042[var10];
            }
         }

         var1.aByteArray9077 = this.aByteArray9077;
      } else {
         var1.aClass165_9044 = this.aClass165_9044;
         var1.aShortArray9055 = this.aShortArray9055;
         var1.aShortArray9041 = this.aShortArray9041;
         var1.aShortArray9042 = this.aShortArray9042;
         var1.aByteArray9077 = this.aByteArray9077;
      }

      if(Class134.method2578(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 4);
         }

         var1.aClass150_9081 = var2.aClass150_9081;
         var1.aClass150_9081.aByte1718 = this.aClass150_9081.aByte1718;
         var1.aClass150_9081.anInterface10_1716 = this.aClass150_9081.anInterface10_1716;
      } else if(Class134.method2519(var3, this.anInt9038)) {
         var1.aClass150_9081 = this.aClass150_9081;
      } else {
         var1.aClass150_9081 = null;
      }

      if(Class134.method2513(var3, this.anInt9038)) {
         if(var2.aFloatArray9045 != null && var2.aFloatArray9045.length >= this.anInt9047) {
            var1.aFloatArray9045 = var2.aFloatArray9045;
            var1.aFloatArray9037 = var2.aFloatArray9037;
         } else {
            var10 = this.anInt9039;
            var1.aFloatArray9045 = var2.aFloatArray9045 = new float[var10];
            var1.aFloatArray9037 = var2.aFloatArray9037 = new float[var10];
         }

         for(var10 = 0; var10 < this.anInt9039; ++var10) {
            var1.aFloatArray9045[var10] = this.aFloatArray9045[var10];
            var1.aFloatArray9037[var10] = this.aFloatArray9037[var10];
         }
      } else {
         var1.aFloatArray9045 = this.aFloatArray9045;
         var1.aFloatArray9037 = this.aFloatArray9037;
      }

      if(Class134.method2542(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 8);
         }

         var1.aClass150_9060 = var2.aClass150_9060;
         var1.aClass150_9060.aByte1718 = this.aClass150_9060.aByte1718;
         var1.aClass150_9060.anInterface10_1716 = this.aClass150_9060.anInterface10_1716;
      } else if(Class134.method2569(var3, this.anInt9038)) {
         var1.aClass150_9060 = this.aClass150_9060;
      } else {
         var1.aClass150_9060 = null;
      }

      if(Class134.method2514(var3, this.anInt9038)) {
         if(var2.aShortArray9051 != null && var2.aShortArray9051.length >= this.anInt9047) {
            var1.aShortArray9051 = var2.aShortArray9051;
            var1.aShortArray9090 = var2.aShortArray9090;
            var1.aShortArray9053 = var2.aShortArray9053;
         } else {
            var10 = this.anInt9047;
            var1.aShortArray9051 = var2.aShortArray9051 = new short[var10];
            var1.aShortArray9090 = var2.aShortArray9090 = new short[var10];
            var1.aShortArray9053 = var2.aShortArray9053 = new short[var10];
         }

         for(var10 = 0; var10 < this.anInt9047; ++var10) {
            var1.aShortArray9051[var10] = this.aShortArray9051[var10];
            var1.aShortArray9090[var10] = this.aShortArray9090[var10];
            var1.aShortArray9053[var10] = this.aShortArray9053[var10];
         }
      } else {
         var1.aShortArray9051 = this.aShortArray9051;
         var1.aShortArray9090 = this.aShortArray9090;
         var1.aShortArray9053 = this.aShortArray9053;
      }

      if(Class134.method2509(var3, this.anInt9038)) {
         if(var4) {
            var1.aByte9027 = (byte)(var1.aByte9027 | 16);
         }

         var1.aClass131_9079 = var2.aClass131_9079;
         var1.aClass131_9079.anInterface15_1566 = this.aClass131_9079.anInterface15_1566;
      } else if(Class134.method2521(var3, this.anInt9038)) {
         var1.aClass131_9079 = this.aClass131_9079;
      } else {
         var1.aClass131_9079 = null;
      }

      if(Class134.method2515(var3, this.anInt9038)) {
         if(var2.aShortArray9054 != null && var2.aShortArray9054.length >= this.anInt9047) {
            var1.aShortArray9054 = var2.aShortArray9054;
         } else {
            var10 = this.anInt9047;
            var1.aShortArray9054 = var2.aShortArray9054 = new short[var10];
         }

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

      if(Class134.method2532(var3, this.anInt9038)) {
         if(var2.aClass148Array9020 != null && var2.aClass148Array9020.length >= this.anInt9062) {
            var1.aClass148Array9020 = var2.aClass148Array9020;

            for(var10 = 0; var10 < this.anInt9062; ++var10) {
               var1.aClass148Array9020[var10].method2728(this.aClass148Array9020[var10]);
            }
         } else {
            var10 = this.anInt9062;
            var1.aClass148Array9020 = var2.aClass148Array9020 = new Class148[var10];

            for(var11 = 0; var11 < this.anInt9062; ++var11) {
               var1.aClass148Array9020[var11] = this.aClass148Array9020[var11].method2729();
            }
         }
      } else {
         var1.aClass148Array9020 = this.aClass148Array9020;
      }

      var1.aClass157Array9080 = this.aClass157Array9080;
      if(this.aBool9057) {
         var1.anInt9065 = this.anInt9065;
         var1.anInt9066 = this.anInt9066;
         var1.aShort9070 = this.aShort9070;
         var1.aShort9021 = this.aShort9021;
         var1.aShort9068 = this.aShort9068;
         var1.aShort9069 = this.aShort9069;
         var1.aShort9067 = this.aShort9067;
         var1.aShort9073 = this.aShort9073;
         var1.aBool9057 = true;
      } else {
         var1.aBool9057 = false;
      }

      var1.anIntArrayArray9033 = this.anIntArrayArray9033;
      var1.anIntArrayArray9071 = this.anIntArrayArray9071;
      var1.anIntArrayArray9082 = this.anIntArrayArray9082;
      var1.aShortArray9031 = this.aShortArray9031;
      var1.anIntArray9075 = this.anIntArray9075;
      var1.aShortArray9074 = this.aShortArray9074;
      var1.aShortArray9052 = this.aShortArray9052;
      var1.anIntArray9043 = this.anIntArray9043;
      var1.aClass80Array9040 = this.aClass80Array9040;
      var1.aClass166Array9078 = this.aClass166Array9078;
      return var1;
   }

   public int en() {
      if(!this.aBool9057) {
         this.method14496();
      }

      return this.anInt9066;
   }

   boolean ea() {
      if(this.anIntArrayArray9033 == null) {
         return false;
      } else {
         for(int var1 = 0; var1 < this.anInt9032; ++var1) {
            this.anIntArray9034[var1] <<= 4;
            this.anIntArray9035[var1] <<= 4;
            this.anIntArray9036[var1] <<= 4;
         }

         anInt9046 = 0;
         anInt9089 = 0;
         anInt9076 = 0;
         return true;
      }
   }

   public void method12112(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

   void method14517(boolean var1) {
      if(this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9048 * 6) {
         this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2((this.anInt9048 + 100) * 6);
      } else {
         this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.position = 0;
      }

      Class225_Sub23_Sub2 var2 = this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294;
      int var3;
      if(this.aClass545_Sub1_9024.aBool9257) {
         for(var3 = 0; var3 < this.anInt9048; ++var3) {
            var2.writeShort(this.aShortArray9051[var3], -1283654325);
            var2.writeShort(this.aShortArray9090[var3], -965958827);
            var2.writeShort(this.aShortArray9053[var3], -597869905);
         }
      } else {
         for(var3 = 0; var3 < this.anInt9048; ++var3) {
            var2.method13704(this.aShortArray9051[var3], 1094649230);
            var2.method13704(this.aShortArray9090[var3], 1094649230);
            var2.method13704(this.aShortArray9053[var3], 1094649230);
         }
      }

      if(var2.position * -543666943 != 0) {
         if(var1) {
            if(this.anInterface15_9088 == null) {
               this.anInterface15_9088 = this.aClass545_Sub1_9024.method14581(5123, var2.buffer, var2.position * -543666943, true);
            } else {
               this.anInterface15_9088.method74(5123, var2.buffer, var2.position * -543666943);
            }

            this.aClass131_9079.anInterface15_1566 = this.anInterface15_9088;
         } else {
            this.aClass131_9079.anInterface15_1566 = this.aClass545_Sub1_9024.method14581(5123, var2.buffer, var2.position * -543666943, false);
         }

         if(!var1) {
            this.aBool9072 = true;
         }

      }
   }

   public void method12099(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

   public void method12113(Class328 var1, int var2, boolean var3) {
      if(this.aShortArray9074 != null) {
         Class328 var4 = var1;
         if(var3) {
            var4 = this.aClass545_Sub1_9024.aClass328_9199;
            var4.method5995(var1);
         }

         float[] var5 = new float[3];

         for(int var6 = 0; var6 < this.anInt9061; ++var6) {
            if((var2 & this.aShortArray9074[var6]) != 0) {
               var4.method6008((float)this.anIntArray9034[var6], (float)this.anIntArray9035[var6], (float)this.anIntArray9036[var6], var5);
               this.anIntArray9034[var6] = (int)var5[0];
               this.anIntArray9035[var6] = (int)var5[1];
               this.anIntArray9036[var6] = (int)var5[2];
            }
         }

      }
   }

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

   void method14519(Class225_Sub14_Sub16_Sub2 var1) {
      if(this.aClass545_Sub1_9024.anIntArray9295.length < this.anInt9039) {
         this.aClass545_Sub1_9024.anIntArray9295 = new int[this.anInt9039];
         this.aClass545_Sub1_9024.anIntArray9195 = new int[this.anInt9039];
      }

      int[] var2 = this.aClass545_Sub1_9024.anIntArray9295;
      int[] var3 = this.aClass545_Sub1_9024.anIntArray9195;
      int var4 = 0;

      int var5;
      int var6;
      int var7;
      int var8;
      int var9;
      int var10;
      while(var4 < this.anInt9061) {
         var5 = (this.anIntArray9034[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9173 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10669;
         var6 = (this.anIntArray9036[var4] - (this.anIntArray9035[var4] * this.aClass545_Sub1_9024.anInt9127 >> 8) >> this.aClass545_Sub1_9024.anInt9160) - var1.anInt10673;
         var7 = this.anIntArray9075[var4];
         var8 = this.anIntArray9075[var4 + 1];
         var9 = var7;

         while(true) {
            if(var9 < var8) {
               var10 = (this.aShortArray9031[var9] & '\uffff') - 1;
               if(var10 != -1) {
                  var2[var10] = var5;
                  var3[var10] = var6;
                  ++var9;
                  continue;
               }
            }

            ++var4;
            break;
         }
      }

      for(var4 = 0; var4 < this.anInt9048; ++var4) {
         if(this.aByteArray9050 == null || this.aByteArray9050[var4] <= 128) {
            var5 = this.aShortArray9051[var4] & '\uffff';
            var6 = this.aShortArray9090[var4] & '\uffff';
            var7 = this.aShortArray9053[var4] & '\uffff';
            var8 = var2[var5];
            var9 = var2[var6];
            var10 = var2[var7];
            int var11 = var3[var5];
            int var12 = var3[var6];
            int var13 = var3[var7];
            if((var8 - var9) * (var12 - var13) - (var12 - var11) * (var10 - var9) > 0) {
               var1.method16542(var11, var12, var13, var8, var9, var10);
            }
         }
      }

   }

   public void bu(int var1, int var2, Class400 var3, Class400 var4, int var5, int var6, int var7) {
      if(!this.aBool9057) {
         this.method14496();
      }

      int var8 = var5 + this.aShort9070;
      int var9 = var5 + this.aShort9021;
      int var10 = var7 + this.aShort9067;
      int var11 = var7 + this.aShort9073;
      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.anInt9061; ++var12) {
               this.anIntArray9035[var12] = this.anIntArray9035[var12] + var3.method6791(this.anIntArray9034[var12] + var5, this.anIntArray9036[var12] + var7, 701663251) - var6;
            }
         } else {
            int var13;
            int var14;
            if(var1 == 2) {
               short var19 = this.aShort9068;
               if(var19 == 0) {
                  return;
               }

               for(var13 = 0; var13 < this.anInt9061; ++var13) {
                  var14 = (this.anIntArray9035[var13] << 16) / var19;
                  if(var14 < var2) {
                     this.anIntArray9035[var13] += (var3.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[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.aShort9069 - this.aShort9068;

                  for(var13 = 0; var13 < this.anInt9061; ++var13) {
                     this.anIntArray9035[var13] = this.anIntArray9035[var13] + (var4.method6791(this.anIntArray9034[var13] + var5, this.anIntArray9036[var13] + var7, 701663251) - var6) + var12;
                  }
               } else if(var1 == 5) {
                  var12 = this.aShort9069 - this.aShort9068;

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

         if(this.aClass150_9017 != null) {
            this.aClass150_9017.anInterface10_1716 = null;
         }

         this.aBool9057 = false;
      }
   }

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

   void method14521() {
      if(this.anInt9048 != 0) {
         if(this.aByte9027 != 0) {
            this.method14504(true);
         }

         this.method14504(false);
         if(this.aClass131_9079 != null) {
            if(this.aClass131_9079.anInterface15_1566 == null) {
               this.method14508((this.aByte9027 & 16) != 0);
            }

            if(this.aClass131_9079.anInterface15_1566 != null) {
               this.aClass545_Sub1_9024.method14634(this.aClass150_9081 != null);
               this.aClass545_Sub1_9024.method14625(this.aClass150_9017, this.aClass150_9081, this.aClass150_9058, this.aClass150_9060);
               int var1 = this.anIntArray9043.length - 1;

               for(int var2 = 0; var2 < var1; ++var2) {
                  int var3 = this.anIntArray9043[var2];
                  int var4 = this.anIntArray9043[var2 + 1];
                  int var5 = this.aShortArray9054[var3] & '\uffff';
                  if(var5 == '\uffff') {
                     var5 = -1;
                  }

                  this.aClass545_Sub1_9024.method14638(var5, this.aClass150_9081 != null);
                  this.aClass545_Sub1_9024.method14610(this.aClass131_9079.anInterface15_1566, 4, var3 * 3, (var4 - var3) * 3);
               }
            }
         }

         this.method14495();
      }
   }

   void method14522(Class317 var1) {
      if(this.aClass157Array9080 != null) {
         Class317 var2 = this.aClass545_Sub1_9024.aClass317_9264;
         this.aClass545_Sub1_9024.method14564();
         this.aClass545_Sub1_9024.RA(!this.aBool9030);
         this.aClass545_Sub1_9024.method14634(false);
         this.aClass545_Sub1_9024.method14625(this.aClass545_Sub1_9024.aClass150_9289, (Class150)null, (Class150)null, this.aClass545_Sub1_9024.aClass150_9220);

         for(int var3 = 0; var3 < this.anInt9062; ++var3) {
            Class157 var4 = this.aClass157Array9080[var3];
            Class148 var5 = this.aClass148Array9020[var3];
            if(!var4.aBool1954 || !this.aClass545_Sub1_9024.method11588()) {
               float var6 = (float)(this.anIntArray9034[var4.anInt1955] + this.anIntArray9034[var4.anInt1947] + this.anIntArray9034[var4.anInt1946]) * 0.3333333F;
               float var7 = (float)(this.anIntArray9035[var4.anInt1955] + this.anIntArray9035[var4.anInt1947] + this.anIntArray9035[var4.anInt1946]) * 0.3333333F;
               float var8 = (float)(this.anIntArray9036[var4.anInt1955] + this.anIntArray9036[var4.anInt1947] + this.anIntArray9036[var4.anInt1946]) * 0.3333333F;
               float var9 = var1.aFloatArray4000[0] * var6 + var1.aFloatArray4000[4] * var7 + var1.aFloatArray4000[8] * var8 + var1.aFloatArray4000[12];
               float var10 = var1.aFloatArray4000[1] * var6 + var1.aFloatArray4000[5] * var7 + var1.aFloatArray4000[9] * var8 + var1.aFloatArray4000[13];
               float var11 = var1.aFloatArray4000[2] * var6 + var1.aFloatArray4000[6] * var7 + var1.aFloatArray4000[10] * var8 + var1.aFloatArray4000[14];
               float var12 = (float)(1.0D / Math.sqrt((double)(var9 * var9 + var10 * var10 + var11 * var11))) * (float)var4.anInt1952;
               var2.method5643(var5.anInt1710, var5.anInt1711 * var4.aShort1948 >> 7, var5.anInt1714 * var4.aShort1951 >> 7, var9 + (float)var5.anInt1712 - var9 * var12, var10 + (float)var5.anInt1713 - var10 * var12, var11 - var11 * var12);
               this.aClass545_Sub1_9024.method14662(var2);
               int var13 = var5.anInt1709;
               OpenGL.glColor4ub((byte)(var13 >> 16), (byte)(var13 >> 8), (byte)var13, (byte)(var13 >> 24));
               this.aClass545_Sub1_9024.method14540(var4.aShort1950);
               this.aClass545_Sub1_9024.method14602(var4.aByte1953);
               this.aClass545_Sub1_9024.method14686(7, 0, 4);
            }
         }

         this.aClass545_Sub1_9024.RA(true);
         this.aClass545_Sub1_9024.method14566();
      }

   }

   public void bp() {
      int var1;
      for(var1 = 0; var1 < this.anInt9061; ++var1) {
         this.anIntArray9036[var1] = -this.anIntArray9036[var1];
      }

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

      for(var1 = 0; var1 < this.anInt9047; ++var1) {
         short var2 = this.aShortArray9051[var1];
         this.aShortArray9051[var1] = this.aShortArray9053[var1];
         this.aShortArray9053[var1] = var2;
      }

      if(this.aClass150_9081 == null && this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

      if(this.aClass150_9081 != null) {
         this.aClass150_9081.anInterface10_1716 = null;
      }

      if(this.aClass150_9017 != null) {
         this.aClass150_9017.anInterface10_1716 = null;
      }

      if(this.aClass131_9079 != null) {
         this.aClass131_9079.anInterface15_1566 = null;
      }

      this.aBool9057 = false;
   }

   void method14523(boolean var1) {
      boolean var2 = this.aClass150_9058 != null && this.aClass150_9058.anInterface10_1716 == null;
      boolean var3 = this.aClass150_9081 != null && this.aClass150_9081.anInterface10_1716 == null;
      boolean var4 = this.aClass150_9017 != null && this.aClass150_9017.anInterface10_1716 == null;
      boolean var5 = this.aClass150_9060 != null && this.aClass150_9060.anInterface10_1716 == null;
      if(var1) {
         var2 &= (this.aByte9027 & 2) != 0;
         var3 &= (this.aByte9027 & 4) != 0;
         var4 &= (this.aByte9027 & 1) != 0;
         var5 &= (this.aByte9027 & 8) != 0;
      }

      byte var6 = 0;
      byte var7 = 0;
      byte var8 = 0;
      byte var9 = 0;
      byte var10 = 0;
      if(var4) {
         var7 = var6;
         var6 = (byte)(var6 + 12);
      }

      if(var2) {
         var8 = var6;
         var6 = (byte)(var6 + 4);
      }

      if(var3) {
         var9 = var6;
         var6 = (byte)(var6 + 12);
      }

      if(var5) {
         var10 = var6;
         var6 = (byte)(var6 + 8);
      }

      if(var6 != 0) {
         if(this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9039 * var6) {
            this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2((this.anInt9039 + 100) * var6);
         } else {
            this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294.position = 0;
         }

         Class225_Sub23_Sub2 var11 = this.aClass545_Sub1_9024.aClass225_Sub23_Sub2_9294;
         int var12;
         int var13;
         int var19;
         int var18;
         if(var4) {
            int var14;
            int var15;
            int var17;
            int var16;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var12 = 0; var12 < this.anInt9061; ++var12) {
                  var13 = Stream.floatToRawIntBits((float)this.anIntArray9034[var12]);
                  var14 = Stream.floatToRawIntBits((float)this.anIntArray9035[var12]);
                  var15 = Stream.floatToRawIntBits((float)this.anIntArray9036[var12]);
                  var16 = this.anIntArray9075[var12];
                  var17 = this.anIntArray9075[var12 + 1];

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

                     var11.position = var19 * var6 * 1385214721;
                     var11.writeInt(var13, -799607353);
                     var11.writeInt(var14, -787389913);
                     var11.writeInt(var15, -21530161);
                  }
               }
            } else {
               for(var12 = 0; var12 < this.anInt9061; ++var12) {
                  var13 = Stream.floatToRawIntBits((float)this.anIntArray9034[var12]);
                  var14 = Stream.floatToRawIntBits((float)this.anIntArray9035[var12]);
                  var15 = Stream.floatToRawIntBits((float)this.anIntArray9036[var12]);
                  var16 = this.anIntArray9075[var12];
                  var17 = this.anIntArray9075[var12 + 1];

                  for(var18 = var16; var18 < var17; ++var18) {
                     var19 = (this.aShortArray9031[var18] & '\uffff') - 1;
                     if(var19 == -1) {
                        break;
                     }

                     var11.position = var19 * var6 * 1385214721;
                     var11.method13707(var13, (byte)1);
                     var11.method13707(var14, (byte)1);
                     var11.method13707(var15, (byte)1);
                  }
               }
            }
         }

         float var28;
         short[] var34;
         short[] var35;
         byte[] var38;
         float var39;
         short[] var36;
         if(var2) {
            if(this.aClass150_9081 == null) {
               if(this.aClass165_9044 != null) {
                  var35 = this.aClass165_9044.aShortArray2013;
                  var34 = this.aClass165_9044.aShortArray2012;
                  var36 = this.aClass165_9044.aShortArray2014;
                  var38 = this.aClass165_9044.aByteArray2011;
               } else {
                  var35 = this.aShortArray9055;
                  var34 = this.aShortArray9041;
                  var36 = this.aShortArray9042;
                  var38 = this.aByteArray9077;
               }

               float var20 = this.aClass545_Sub1_9024.aFloatArray9265[0];
               float var21 = this.aClass545_Sub1_9024.aFloatArray9265[1];
               float var22 = this.aClass545_Sub1_9024.aFloatArray9265[2];
               float var23 = this.aClass545_Sub1_9024.aFloat9168;
               float var24 = this.aClass545_Sub1_9024.aFloat9227 * 768.0F / (float)this.aShort9026;
               float var25 = this.aClass545_Sub1_9024.aFloat9228 * 768.0F / (float)this.aShort9026;

               for(int var26 = 0; var26 < this.anInt9047; ++var26) {
                  int var27 = this.method14501(this.aShortArray9049[var26], this.aShortArray9054[var26], this.aShort9028, this.aByteArray9050[var26]);
                  float var43 = (float)(var27 >>> 24) * this.aClass545_Sub1_9024.aFloat9130;
                  var28 = (float)(var27 >> 16 & 255) * this.aClass545_Sub1_9024.aFloat9123;
                  float var29 = (float)(var27 >> 8 & 255) * this.aClass545_Sub1_9024.aFloat9225;
                  short var30 = this.aShortArray9051[var26];
                  short var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  float var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  int var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  int var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  int var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
                  var30 = this.aShortArray9090[var26];
                  var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
                  var30 = this.aShortArray9053[var26];
                  var37 = (short)var38[var30];
                  if(var37 == 0) {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) * 0.0026041667F;
                  } else {
                     var39 = (var20 * (float)var35[var30] + var21 * (float)var34[var30] + var22 * (float)var36[var30]) / (float)(var37 * 256);
                  }

                  var41 = var23 + var39 * (var39 < 0.0F?var25:var24);
                  var31 = (int)(var43 * var41);
                  if(var31 < 0) {
                     var31 = 0;
                  } else if(var31 > 255) {
                     var31 = 255;
                  }

                  var32 = (int)(var28 * var41);
                  if(var32 < 0) {
                     var32 = 0;
                  } else if(var32 > 255) {
                     var32 = 255;
                  }

                  var33 = (int)(var29 * var41);
                  if(var33 < 0) {
                     var33 = 0;
                  } else if(var33 > 255) {
                     var33 = 255;
                  }

                  var11.position = (var8 + var30 * var6) * 1385214721;
                  var11.writeByte(var31, -765864773);
                  var11.writeByte(var32, -765864773);
                  var11.writeByte(var33, -765864773);
                  var11.writeByte(255 - (this.aByteArray9050[var26] & 255), -765864773);
               }
            } else {
               for(var12 = 0; var12 < this.anInt9047; ++var12) {
                  var13 = this.method14501(this.aShortArray9049[var12], this.aShortArray9054[var12], this.aShort9028, this.aByteArray9050[var12]);
                  var11.position = (var8 + (this.aShortArray9051[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -47867069);
                  var11.position = (var8 + (this.aShortArray9090[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -601784495);
                  var11.position = (var8 + (this.aShortArray9053[var12] & '\uffff') * var6) * 1385214721;
                  var11.writeInt(var13, -8052507);
               }
            }
         }

         if(var3) {
            if(this.aClass165_9044 != null) {
               var35 = this.aClass165_9044.aShortArray2013;
               var34 = this.aClass165_9044.aShortArray2012;
               var36 = this.aClass165_9044.aShortArray2014;
               var38 = this.aClass165_9044.aByteArray2011;
            } else {
               var35 = this.aShortArray9055;
               var34 = this.aShortArray9041;
               var36 = this.aShortArray9042;
               var38 = this.aByteArray9077;
            }

            float var40 = 3.0F / (float)this.aShort9026;
            var39 = 3.0F / (float)(this.aShort9026 + this.aShort9026 / 2);
            var11.position = var9 * 1385214721;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var18 = 0; var18 < this.anInt9039; ++var18) {
                  var19 = var38[var18] & 255;
                  if(var19 == 0) {
                     var11.method16093((float)var35[var18] * var39);
                     var11.method16093((float)var34[var18] * var39);
                     var11.method16093((float)var36[var18] * var39);
                  } else {
                     var28 = var40 / (float)var19;
                     var11.method16093((float)var35[var18] * var28);
                     var11.method16093((float)var34[var18] * var28);
                     var11.method16093((float)var36[var18] * var28);
                  }

                  var11.position += (var6 - 12) * 1385214721;
               }
            } else {
               for(var18 = 0; var18 < this.anInt9039; ++var18) {
                  var19 = var38[var18] & 255;
                  if(var19 == 0) {
                     var11.method16094((float)var35[var18] * var39);
                     var11.method16094((float)var34[var18] * var39);
                     var11.method16094((float)var36[var18] * var39);
                  } else {
                     var28 = var40 / (float)var19;
                     var11.method16094((float)var35[var18] * var28);
                     var11.method16094((float)var34[var18] * var28);
                     var11.method16094((float)var36[var18] * var28);
                  }

                  var11.position += (var6 - 12) * 1385214721;
               }
            }
         }

         if(var5) {
            var11.position = var10 * 1385214721;
            if(this.aClass545_Sub1_9024.aBool9257) {
               for(var12 = 0; var12 < this.anInt9039; ++var12) {
                  var11.method16093(this.aFloatArray9045[var12]);
                  var11.method16093(this.aFloatArray9037[var12]);
                  var11.position += (var6 - 8) * 1385214721;
               }
            } else {
               for(var12 = 0; var12 < this.anInt9039; ++var12) {
                  var11.method16094(this.aFloatArray9045[var12]);
                  var11.method16094(this.aFloatArray9037[var12]);
                  var11.position += (var6 - 8) * 1385214721;
               }
            }
         }

         var11.position = var6 * this.anInt9039 * 1385214721;
         Interface10 var42;
         if(var1) {
            if(this.anInterface10_9063 == null) {
               this.anInterface10_9063 = this.aClass545_Sub1_9024.method14582(var6, var11.buffer, var11.position * -543666943, true);
            } else {
               this.anInterface10_9063.method38(var6, var11.buffer, var11.position * -543666943);
            }

            var42 = this.anInterface10_9063;
            this.aByte9027 = 0;
         } else {
            var42 = this.aClass545_Sub1_9024.method14582(var6, var11.buffer, var11.position * -543666943, false);
            this.aBool9072 = true;
         }

         if(var4) {
            this.aClass150_9017.anInterface10_1716 = var42;
            this.aClass150_9017.aByte1718 = var7;
         }

         if(var5) {
            this.aClass150_9060.anInterface10_1716 = var42;
            this.aClass150_9060.aByte1718 = var10;
         }

         if(var2) {
            this.aClass150_9058.anInterface10_1716 = var42;
            this.aClass150_9058.aByte1718 = var8;
         }

         if(var3) {
            this.aClass150_9081.anInterface10_1716 = var42;
            this.aClass150_9081.aByte1718 = var9;
         }

      }
   }

   void method12063() {}

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

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }

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

      if(this.aClass150_9058 != null) {
         this.aClass150_9058.anInterface10_1716 = null;
      }

   }
}
