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

public class Class400_Sub3 extends Class400 {

   int[][][] anIntArrayArrayArray9557;
   Class545_Sub1 aClass545_Sub1_9558;
   Class225[] aClass225Array9559;
   int anInt9560;
   int anInt9561;
   int[][][] anIntArrayArrayArray9562;
   int anInt9563;
   int anInt9564;
   int anInt9565;
   short[][] aShortArrayArray9566;
   Class225_Sub52[][][] aClass225_Sub52ArrayArrayArray9567;
   byte[][] aByteArrayArray9568;
   Class150 aClass150_9569;
   int[][][] anIntArrayArrayArray9570;
   int[][][] anIntArrayArrayArray9571;
   int[][][] anIntArrayArrayArray9572;
   static final int anInt9573 = 74;
   byte[][] aByteArrayArray9574;
   Class155 aClass155_9575;
   Class456 aClass456_9576 = new Class456();
   static float[] aFloatArray9577 = new float[16];
   Interface10 anInterface10_9578;
   Class150 aClass150_9579;
   int anInt9580;
   int anInt9581;
   Class150 aClass150_9582;
   int anInt9583;
   Class150 aClass150_9584;
   static final int anInt9585 = 1;
   float[][] aFloatArrayArray9586;
   float[][] aFloatArrayArray9587;
   float[][] aFloatArrayArray9588;
   Class423 aClass423_9589;
   int[][][] anIntArrayArrayArray9590;


   public boolean method6799(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         return this.aClass155_9575.method2793(var1, var7, var8);
      } else {
         return false;
      }
   }

   public void LA(int var1, int var2, int var3) {
      if((this.aByteArrayArray9568[var1][var2] & 255) < var3) {
         this.aByteArrayArray9568[var1][var2] = (byte)var3;
      }

   }

   public void q() {
      if(this.anInt9583 > 0) {
         byte[][] var1 = new byte[this.anInt4911 * 1724373523 + 1][this.anInt4908 * 1696648095 + 1];

         int var2;
         for(var2 = 1; var2 < this.anInt4911 * 1724373523; ++var2) {
            for(int var3 = 1; var3 < this.anInt4908 * 1696648095; ++var3) {
               var1[var2][var3] = (byte)((this.aByteArrayArray9568[var2 - 1][var3] >> 2) + (this.aByteArrayArray9568[var2 + 1][var3] >> 3) + (this.aByteArrayArray9568[var2][var3 - 1] >> 2) + (this.aByteArrayArray9568[var2][var3 + 1] >> 3) + (this.aByteArrayArray9568[var2][var3] >> 1));
            }
         }

         this.aClass225Array9559 = new Class225[this.aClass423_9589.method7230(788847014)];
         this.aClass423_9589.method7221(this.aClass225Array9559, 601539699);

         for(var2 = 0; var2 < this.aClass225Array9559.length; ++var2) {
            ((Class225_Sub52)this.aClass225Array9559[var2]).method14365(this.anInt9583);
         }

         var2 = 24;
         if(this.anIntArrayArrayArray9570 != null) {
            var2 += 4;
         }

         if((this.anInt9563 & 7) != 0) {
            var2 += 12;
         }

         NativeHeapBuffer var65 = this.aClass545_Sub1_9558.aNativeHeap9162.method825(this.anInt9583 * var2, false);
         Stream var4 = new Stream(var65);
         Class225_Sub52[] var5 = new Class225_Sub52[this.anInt9583];
         int var6 = Class526.method11090(this.anInt9583 / 4, (byte)-73);
         if(var6 < 1) {
            var6 = 1;
         }

         Class423 var7 = new Class423(var6);
         Class225_Sub52[] var8 = new Class225_Sub52[this.anInt9581];

         int var9;
         int var10;
         for(var9 = 0; var9 < this.anInt4911 * 1724373523; ++var9) {
            for(var10 = 0; var10 < this.anInt4908 * 1696648095; ++var10) {
               if(this.anIntArrayArrayArray9557[var9][var10] != null) {
                  Class225_Sub52[] var11 = this.aClass225_Sub52ArrayArrayArray9567[var9][var10];
                  int[] var12 = this.anIntArrayArrayArray9562[var9][var10];
                  int[] var13 = this.anIntArrayArrayArray9571[var9][var10];
                  int[] var14 = this.anIntArrayArrayArray9590[var9][var10];
                  int[] var15 = this.anIntArrayArrayArray9557[var9][var10];
                  int[] var16 = this.anIntArrayArrayArray9572 != null?this.anIntArrayArrayArray9572[var9][var10]:null;
                  int[] var17 = this.anIntArrayArrayArray9570 != null?this.anIntArrayArrayArray9570[var9][var10]:null;
                  if(var14 == null) {
                     var14 = var15;
                  }

                  float var18 = this.aFloatArrayArray9586[var9][var10];
                  float var19 = this.aFloatArrayArray9587[var9][var10];
                  float var20 = this.aFloatArrayArray9588[var9][var10];
                  float var21 = this.aFloatArrayArray9586[var9][var10 + 1];
                  float var22 = this.aFloatArrayArray9587[var9][var10 + 1];
                  float var23 = this.aFloatArrayArray9588[var9][var10 + 1];
                  float var24 = this.aFloatArrayArray9586[var9 + 1][var10 + 1];
                  float var25 = this.aFloatArrayArray9587[var9 + 1][var10 + 1];
                  float var26 = this.aFloatArrayArray9588[var9 + 1][var10 + 1];
                  float var27 = this.aFloatArrayArray9586[var9 + 1][var10];
                  float var28 = this.aFloatArrayArray9587[var9 + 1][var10];
                  float var29 = this.aFloatArrayArray9588[var9 + 1][var10];
                  int var30 = var1[var9][var10] & 255;
                  int var31 = var1[var9][var10 + 1] & 255;
                  int var32 = var1[var9 + 1][var10 + 1] & 255;
                  int var33 = var1[var9 + 1][var10] & 255;
                  int var34 = 0;
                  int var35 = 0;

                  int var37;
                  while(var35 < var15.length) {
                     Class225_Sub52 var36 = var11[var35];
                     var37 = 0;

                     while(true) {
                        if(var37 < var34) {
                           if(var8[var37] != var36) {
                              ++var37;
                              continue;
                           }
                        } else {
                           var8[var34++] = var36;
                        }

                        ++var35;
                        break;
                     }
                  }

                  short[] var82 = this.aShortArrayArray9566[var10 * this.anInt4911 * 1724373523 + var9] = new short[var15.length];

                  for(int var81 = 0; var81 < var15.length; ++var81) {
                     int var38 = (var9 << this.anInt4909 * -1451148795) + var12[var81];
                     int var39 = (var10 << this.anInt4909 * -1451148795) + var13[var81];
                     int var40 = var38 >> this.anInt9560;
                     int var41 = var39 >> this.anInt9560;
                     int var42 = var15[var81];
                     int var43 = var14[var81];
                     int var44 = var16 != null?var16[var81]:0;
                     long var45 = (long)var43 << 48 | (long)var42 << 32 | (long)(var40 << 16) | (long)var41;
                     int var47 = var12[var81];
                     int var48 = var13[var81];
                     byte var49 = 74;
                     int var50 = 0;
                     float var51 = 1.0F;
                     float var54;
                     float var53;
                     float var52;
                     float var58;
                     int var83;
                     if(var47 == 0 && var48 == 0) {
                        var52 = var18;
                        var53 = var19;
                        var54 = var20;
                        var83 = var49 - var30;
                     } else if(var47 == 0 && var48 == this.anInt4910 * 2111724147) {
                        var52 = var21;
                        var53 = var22;
                        var54 = var23;
                        var83 = var49 - var31;
                     } else if(var47 == this.anInt4910 * 2111724147 && var48 == this.anInt4910 * 2111724147) {
                        var52 = var24;
                        var53 = var25;
                        var54 = var26;
                        var83 = var49 - var32;
                     } else if(var47 == this.anInt4910 * 2111724147 && var48 == 0) {
                        var52 = var27;
                        var53 = var28;
                        var54 = var29;
                        var83 = var49 - var33;
                     } else {
                        float var55 = (float)var47 / (float)(this.anInt4910 * 2111724147);
                        float var56 = (float)var48 / (float)(this.anInt4910 * 2111724147);
                        float var57 = var18 + (var27 - var18) * var55;
                        var58 = var19 + (var28 - var19) * var55;
                        float var59 = var20 + (var29 - var20) * var55;
                        float var60 = var21 + (var24 - var21) * var55;
                        float var61 = var22 + (var25 - var22) * var55;
                        float var62 = var23 + (var26 - var23) * var55;
                        var52 = var57 + (var60 - var57) * var56;
                        var53 = var58 + (var61 - var58) * var56;
                        var54 = var59 + (var62 - var59) * var56;
                        int var63 = var30 + ((var33 - var30) * var47 >> this.anInt4909 * -1451148795);
                        int var64 = var31 + ((var32 - var31) * var47 >> this.anInt4909 * -1451148795);
                        var83 = var49 - (var63 + ((var64 - var63) * var48 >> this.anInt4909 * -1451148795));
                     }

                     if(var42 != -1) {
                        int var87 = (var42 & 127) * var83 >> 7;
                        if(var87 < 2) {
                           var87 = 2;
                        } else if(var87 > 126) {
                           var87 = 126;
                        }

                        var50 = Exception_Sub5.anIntArray10376[var42 & '\uff80' | var87];
                        if((this.anInt9563 & 7) == 0) {
                           var51 = this.aClass545_Sub1_9558.aFloatArray9265[0] * var52 + this.aClass545_Sub1_9558.aFloatArray9265[1] * var53 + this.aClass545_Sub1_9558.aFloatArray9265[2] * var54;
                           var51 = this.aClass545_Sub1_9558.aFloat9168 + var51 * (var51 > 0.0F?this.aClass545_Sub1_9558.aFloat9227:this.aClass545_Sub1_9558.aFloat9228);
                        }
                     }

                     Class225 var84 = null;
                     if((var38 & this.anInt9561 - 1) == 0 && (var39 & this.anInt9561 - 1) == 0) {
                        var84 = var7.method7211(var45);
                     }

                     int var85;
                     if(var84 == null) {
                        if(var43 != var42) {
                           int var86 = (var43 & 127) * var83 >> 7;
                           if(var86 < 2) {
                              var86 = 2;
                           } else if(var86 > 126) {
                              var86 = 126;
                           }

                           var85 = Exception_Sub5.anIntArray10376[var43 & '\uff80' | var86];
                           if((this.anInt9563 & 7) == 0) {
                              float var10000 = this.aClass545_Sub1_9558.aFloatArray9265[0] * var52 + this.aClass545_Sub1_9558.aFloatArray9265[1] * var53 + this.aClass545_Sub1_9558.aFloatArray9265[2] * var54;
                              var58 = this.aClass545_Sub1_9558.aFloat9168 + var51 * (var51 > 0.0F?this.aClass545_Sub1_9558.aFloat9227:this.aClass545_Sub1_9558.aFloat9228);
                              int var89 = var85 >> 16 & 255;
                              int var90 = var85 >> 8 & 255;
                              int var88 = var85 & 255;
                              var89 = (int)((float)var89 * var58);
                              if(var89 < 0) {
                                 var89 = 0;
                              } else if(var89 > 255) {
                                 var89 = 255;
                              }

                              var90 = (int)((float)var90 * var58);
                              if(var90 < 0) {
                                 var90 = 0;
                              } else if(var90 > 255) {
                                 var90 = 255;
                              }

                              var88 = (int)((float)var88 * var58);
                              if(var88 < 0) {
                                 var88 = 0;
                              } else if(var88 > 255) {
                                 var88 = 255;
                              }

                              var85 = var89 << 16 | var90 << 8 | var88;
                           }
                        } else {
                           var85 = var50;
                        }

                        if(this.aClass545_Sub1_9558.aBool9257) {
                           var4.method3019((float)var38);
                           var4.method3019((float)(this.method6791(var38, var39, 701663251) + var44));
                           var4.method3019((float)var39);
                           var4.method3018((byte)(var85 >> 16));
                           var4.method3018((byte)(var85 >> 8));
                           var4.method3018((byte)var85);
                           var4.method3018(-1);
                           var4.method3019((float)var38);
                           var4.method3019((float)var39);
                           if(this.anIntArrayArrayArray9570 != null) {
                              var4.method3019(var17 != null?(float)(var17[var81] - 1):0.0F);
                           }

                           if((this.anInt9563 & 7) != 0) {
                              var4.method3019(var52);
                              var4.method3019(var53);
                              var4.method3019(var54);
                           }
                        } else {
                           var4.method3020((float)var38);
                           var4.method3020((float)(this.method6791(var38, var39, 701663251) + var44));
                           var4.method3020((float)var39);
                           var4.method3018((byte)(var85 >> 16));
                           var4.method3018((byte)(var85 >> 8));
                           var4.method3018((byte)var85);
                           var4.method3018(-1);
                           var4.method3020((float)var38);
                           var4.method3020((float)var39);
                           if(this.anIntArrayArrayArray9570 != null) {
                              var4.method3020(var17 != null?(float)(var17[var81] - 1):0.0F);
                           }

                           if((this.anInt9563 & 7) != 0) {
                              var4.method3020(var52);
                              var4.method3020(var53);
                              var4.method3020(var54);
                           }
                        }

                        var37 = this.anInt9564++;
                        var82[var81] = (short)var37;
                        if(var42 != -1) {
                           var5[var37] = var11[var81];
                        }

                        var7.method7206(new Class225_Sub18(var82[var81]), var45);
                     } else {
                        var82[var81] = ((Class225_Sub18)var84).aShort8562;
                        var37 = var82[var81] & '\uffff';
                        if(var42 != -1 && var11[var81].aLong2606 * -7222396723785363401L < var5[var37].aLong2606 * -7222396723785363401L) {
                           var5[var37] = var11[var81];
                        }
                     }

                     for(var85 = 0; var85 < var34; ++var85) {
                        var8[var85].method14367(var37, var50, var83, var51);
                     }

                     ++this.anInt9565;
                  }
               }
            }
         }

         for(var9 = 0; var9 < this.anInt9564; ++var9) {
            Class225_Sub52 var68 = var5[var9];
            if(var68 != null) {
               var68.method14369(var9);
            }
         }

         for(var9 = 0; var9 < this.anInt4911 * 1724373523; ++var9) {
            for(var10 = 0; var10 < this.anInt4908 * 1696648095; ++var10) {
               short[] var67 = this.aShortArrayArray9566[var10 * this.anInt4911 * 1724373523 + var9];
               if(var67 != null) {
                  int var69 = 0;

                  for(int var73 = 0; var73 < var67.length; ++var69) {
                     int var74 = var67[var73++] & '\uffff';
                     int var75 = var67[var73++] & '\uffff';
                     int var76 = var67[var73++] & '\uffff';
                     Class225_Sub52 var77 = var5[var74];
                     Class225_Sub52 var79 = var5[var75];
                     Class225_Sub52 var78 = var5[var76];
                     Class225_Sub52 var80 = null;
                     if(var77 != null) {
                        var77.method14366(var9, var10, var69);
                        var80 = var77;
                     }

                     if(var79 != null) {
                        var79.method14366(var9, var10, var69);
                        if(var80 == null || var79.aLong2606 * -7222396723785363401L < var80.aLong2606 * -7222396723785363401L) {
                           var80 = var79;
                        }
                     }

                     if(var78 != null) {
                        var78.method14366(var9, var10, var69);
                        if(var80 == null || var78.aLong2606 * -7222396723785363401L < var80.aLong2606 * -7222396723785363401L) {
                           var80 = var78;
                        }
                     }

                     if(var80 != null) {
                        if(var77 != null) {
                           var80.method14369(var74);
                        }

                        if(var79 != null) {
                           var80.method14369(var75);
                        }

                        if(var78 != null) {
                           var80.method14369(var76);
                        }

                        var80.method14366(var9, var10, var69);
                     }
                  }
               }
            }
         }

         var4.method3021();
         this.anInterface10_9578 = this.aClass545_Sub1_9558.method14583(var2, var65, var4.method3016(), false);
         if(this.anInterface10_9578 instanceof Class145_Sub1) {
            var65.method1290();
         }

         this.aClass150_9579 = new Class150(this.anInterface10_9578, 5126, 3, 0);
         this.aClass150_9582 = new Class150(this.anInterface10_9578, 5121, 4, 12);
         byte var66;
         if(this.anIntArrayArrayArray9570 != null) {
            this.aClass150_9569 = new Class150(this.anInterface10_9578, 5126, 3, 16);
            var66 = 28;
         } else {
            this.aClass150_9569 = new Class150(this.anInterface10_9578, 5126, 2, 16);
            var66 = 24;
         }

         if((this.anInt9563 & 7) != 0) {
            this.aClass150_9584 = new Class150(this.anInterface10_9578, 5126, 3, var66);
         }

         long[] var71 = new long[this.aClass225Array9559.length];

         for(int var70 = 0; var70 < this.aClass225Array9559.length; ++var70) {
            Class225_Sub52 var72 = (Class225_Sub52)this.aClass225Array9559[var70];
            var71[var70] = var72.aLong2606 * -7222396723785363401L;
            var72.method14368(this.anInt9564);
         }

         Class100.method1979(var71, this.aClass225Array9559, 1378528042);
         if(this.aClass155_9575 != null) {
            this.aClass155_9575.method2798();
         }
      } else {
         this.aClass155_9575 = null;
      }

      if((this.anInt9580 & 2) == 0) {
         this.anIntArrayArrayArray9571 = (int[][][])null;
         this.anIntArrayArrayArray9562 = (int[][][])null;
         this.anIntArrayArrayArray9557 = (int[][][])null;
      }

      this.anIntArrayArrayArray9570 = (int[][][])null;
      this.anIntArrayArrayArray9590 = (int[][][])null;
      this.anIntArrayArrayArray9572 = (int[][][])null;
      this.aClass225_Sub52ArrayArrayArray9567 = (Class225_Sub52[][][])null;
      this.aByteArrayArray9568 = (byte[][])null;
      this.aClass423_9589 = null;
      this.aFloatArrayArray9588 = (float[][])null;
      this.aFloatArrayArray9587 = (float[][])null;
      this.aFloatArrayArray9586 = (float[][])null;
   }

   void method14934(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(698294252)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)46); var21 != null; var21 = this.aClass456_9576.method7666(-1985201367)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   public void SA() {
      if(this.anInt9583 > 0) {
         byte[][] var1 = new byte[this.anInt4911 * 1724373523 + 1][this.anInt4908 * 1696648095 + 1];

         int var2;
         for(var2 = 1; var2 < this.anInt4911 * 1724373523; ++var2) {
            for(int var3 = 1; var3 < this.anInt4908 * 1696648095; ++var3) {
               var1[var2][var3] = (byte)((this.aByteArrayArray9568[var2 - 1][var3] >> 2) + (this.aByteArrayArray9568[var2 + 1][var3] >> 3) + (this.aByteArrayArray9568[var2][var3 - 1] >> 2) + (this.aByteArrayArray9568[var2][var3 + 1] >> 3) + (this.aByteArrayArray9568[var2][var3] >> 1));
            }
         }

         this.aClass225Array9559 = new Class225[this.aClass423_9589.method7230(1282949036)];
         this.aClass423_9589.method7221(this.aClass225Array9559, 1066785905);

         for(var2 = 0; var2 < this.aClass225Array9559.length; ++var2) {
            ((Class225_Sub52)this.aClass225Array9559[var2]).method14365(this.anInt9583);
         }

         var2 = 24;
         if(this.anIntArrayArrayArray9570 != null) {
            var2 += 4;
         }

         if((this.anInt9563 & 7) != 0) {
            var2 += 12;
         }

         NativeHeapBuffer var65 = this.aClass545_Sub1_9558.aNativeHeap9162.method825(this.anInt9583 * var2, false);
         Stream var4 = new Stream(var65);
         Class225_Sub52[] var5 = new Class225_Sub52[this.anInt9583];
         int var6 = Class526.method11090(this.anInt9583 / 4, (byte)73);
         if(var6 < 1) {
            var6 = 1;
         }

         Class423 var7 = new Class423(var6);
         Class225_Sub52[] var8 = new Class225_Sub52[this.anInt9581];

         int var9;
         int var10;
         for(var9 = 0; var9 < this.anInt4911 * 1724373523; ++var9) {
            for(var10 = 0; var10 < this.anInt4908 * 1696648095; ++var10) {
               if(this.anIntArrayArrayArray9557[var9][var10] != null) {
                  Class225_Sub52[] var11 = this.aClass225_Sub52ArrayArrayArray9567[var9][var10];
                  int[] var12 = this.anIntArrayArrayArray9562[var9][var10];
                  int[] var13 = this.anIntArrayArrayArray9571[var9][var10];
                  int[] var14 = this.anIntArrayArrayArray9590[var9][var10];
                  int[] var15 = this.anIntArrayArrayArray9557[var9][var10];
                  int[] var16 = this.anIntArrayArrayArray9572 != null?this.anIntArrayArrayArray9572[var9][var10]:null;
                  int[] var17 = this.anIntArrayArrayArray9570 != null?this.anIntArrayArrayArray9570[var9][var10]:null;
                  if(var14 == null) {
                     var14 = var15;
                  }

                  float var18 = this.aFloatArrayArray9586[var9][var10];
                  float var19 = this.aFloatArrayArray9587[var9][var10];
                  float var20 = this.aFloatArrayArray9588[var9][var10];
                  float var21 = this.aFloatArrayArray9586[var9][var10 + 1];
                  float var22 = this.aFloatArrayArray9587[var9][var10 + 1];
                  float var23 = this.aFloatArrayArray9588[var9][var10 + 1];
                  float var24 = this.aFloatArrayArray9586[var9 + 1][var10 + 1];
                  float var25 = this.aFloatArrayArray9587[var9 + 1][var10 + 1];
                  float var26 = this.aFloatArrayArray9588[var9 + 1][var10 + 1];
                  float var27 = this.aFloatArrayArray9586[var9 + 1][var10];
                  float var28 = this.aFloatArrayArray9587[var9 + 1][var10];
                  float var29 = this.aFloatArrayArray9588[var9 + 1][var10];
                  int var30 = var1[var9][var10] & 255;
                  int var31 = var1[var9][var10 + 1] & 255;
                  int var32 = var1[var9 + 1][var10 + 1] & 255;
                  int var33 = var1[var9 + 1][var10] & 255;
                  int var34 = 0;
                  int var35 = 0;

                  int var37;
                  while(var35 < var15.length) {
                     Class225_Sub52 var36 = var11[var35];
                     var37 = 0;

                     while(true) {
                        if(var37 < var34) {
                           if(var8[var37] != var36) {
                              ++var37;
                              continue;
                           }
                        } else {
                           var8[var34++] = var36;
                        }

                        ++var35;
                        break;
                     }
                  }

                  short[] var82 = this.aShortArrayArray9566[var10 * this.anInt4911 * 1724373523 + var9] = new short[var15.length];

                  for(int var81 = 0; var81 < var15.length; ++var81) {
                     int var38 = (var9 << this.anInt4909 * -1451148795) + var12[var81];
                     int var39 = (var10 << this.anInt4909 * -1451148795) + var13[var81];
                     int var40 = var38 >> this.anInt9560;
                     int var41 = var39 >> this.anInt9560;
                     int var42 = var15[var81];
                     int var43 = var14[var81];
                     int var44 = var16 != null?var16[var81]:0;
                     long var45 = (long)var43 << 48 | (long)var42 << 32 | (long)(var40 << 16) | (long)var41;
                     int var47 = var12[var81];
                     int var48 = var13[var81];
                     byte var49 = 74;
                     int var50 = 0;
                     float var51 = 1.0F;
                     float var54;
                     float var53;
                     float var52;
                     float var58;
                     int var83;
                     if(var47 == 0 && var48 == 0) {
                        var52 = var18;
                        var53 = var19;
                        var54 = var20;
                        var83 = var49 - var30;
                     } else if(var47 == 0 && var48 == this.anInt4910 * 2111724147) {
                        var52 = var21;
                        var53 = var22;
                        var54 = var23;
                        var83 = var49 - var31;
                     } else if(var47 == this.anInt4910 * 2111724147 && var48 == this.anInt4910 * 2111724147) {
                        var52 = var24;
                        var53 = var25;
                        var54 = var26;
                        var83 = var49 - var32;
                     } else if(var47 == this.anInt4910 * 2111724147 && var48 == 0) {
                        var52 = var27;
                        var53 = var28;
                        var54 = var29;
                        var83 = var49 - var33;
                     } else {
                        float var55 = (float)var47 / (float)(this.anInt4910 * 2111724147);
                        float var56 = (float)var48 / (float)(this.anInt4910 * 2111724147);
                        float var57 = var18 + (var27 - var18) * var55;
                        var58 = var19 + (var28 - var19) * var55;
                        float var59 = var20 + (var29 - var20) * var55;
                        float var60 = var21 + (var24 - var21) * var55;
                        float var61 = var22 + (var25 - var22) * var55;
                        float var62 = var23 + (var26 - var23) * var55;
                        var52 = var57 + (var60 - var57) * var56;
                        var53 = var58 + (var61 - var58) * var56;
                        var54 = var59 + (var62 - var59) * var56;
                        int var63 = var30 + ((var33 - var30) * var47 >> this.anInt4909 * -1451148795);
                        int var64 = var31 + ((var32 - var31) * var47 >> this.anInt4909 * -1451148795);
                        var83 = var49 - (var63 + ((var64 - var63) * var48 >> this.anInt4909 * -1451148795));
                     }

                     if(var42 != -1) {
                        int var87 = (var42 & 127) * var83 >> 7;
                        if(var87 < 2) {
                           var87 = 2;
                        } else if(var87 > 126) {
                           var87 = 126;
                        }

                        var50 = Exception_Sub5.anIntArray10376[var42 & '\uff80' | var87];
                        if((this.anInt9563 & 7) == 0) {
                           var51 = this.aClass545_Sub1_9558.aFloatArray9265[0] * var52 + this.aClass545_Sub1_9558.aFloatArray9265[1] * var53 + this.aClass545_Sub1_9558.aFloatArray9265[2] * var54;
                           var51 = this.aClass545_Sub1_9558.aFloat9168 + var51 * (var51 > 0.0F?this.aClass545_Sub1_9558.aFloat9227:this.aClass545_Sub1_9558.aFloat9228);
                        }
                     }

                     Class225 var84 = null;
                     if((var38 & this.anInt9561 - 1) == 0 && (var39 & this.anInt9561 - 1) == 0) {
                        var84 = var7.method7211(var45);
                     }

                     int var85;
                     if(var84 == null) {
                        if(var43 != var42) {
                           int var86 = (var43 & 127) * var83 >> 7;
                           if(var86 < 2) {
                              var86 = 2;
                           } else if(var86 > 126) {
                              var86 = 126;
                           }

                           var85 = Exception_Sub5.anIntArray10376[var43 & '\uff80' | var86];
                           if((this.anInt9563 & 7) == 0) {
                              float var10000 = this.aClass545_Sub1_9558.aFloatArray9265[0] * var52 + this.aClass545_Sub1_9558.aFloatArray9265[1] * var53 + this.aClass545_Sub1_9558.aFloatArray9265[2] * var54;
                              var58 = this.aClass545_Sub1_9558.aFloat9168 + var51 * (var51 > 0.0F?this.aClass545_Sub1_9558.aFloat9227:this.aClass545_Sub1_9558.aFloat9228);
                              int var89 = var85 >> 16 & 255;
                              int var90 = var85 >> 8 & 255;
                              int var88 = var85 & 255;
                              var89 = (int)((float)var89 * var58);
                              if(var89 < 0) {
                                 var89 = 0;
                              } else if(var89 > 255) {
                                 var89 = 255;
                              }

                              var90 = (int)((float)var90 * var58);
                              if(var90 < 0) {
                                 var90 = 0;
                              } else if(var90 > 255) {
                                 var90 = 255;
                              }

                              var88 = (int)((float)var88 * var58);
                              if(var88 < 0) {
                                 var88 = 0;
                              } else if(var88 > 255) {
                                 var88 = 255;
                              }

                              var85 = var89 << 16 | var90 << 8 | var88;
                           }
                        } else {
                           var85 = var50;
                        }

                        if(this.aClass545_Sub1_9558.aBool9257) {
                           var4.method3019((float)var38);
                           var4.method3019((float)(this.method6791(var38, var39, 701663251) + var44));
                           var4.method3019((float)var39);
                           var4.method3018((byte)(var85 >> 16));
                           var4.method3018((byte)(var85 >> 8));
                           var4.method3018((byte)var85);
                           var4.method3018(-1);
                           var4.method3019((float)var38);
                           var4.method3019((float)var39);
                           if(this.anIntArrayArrayArray9570 != null) {
                              var4.method3019(var17 != null?(float)(var17[var81] - 1):0.0F);
                           }

                           if((this.anInt9563 & 7) != 0) {
                              var4.method3019(var52);
                              var4.method3019(var53);
                              var4.method3019(var54);
                           }
                        } else {
                           var4.method3020((float)var38);
                           var4.method3020((float)(this.method6791(var38, var39, 701663251) + var44));
                           var4.method3020((float)var39);
                           var4.method3018((byte)(var85 >> 16));
                           var4.method3018((byte)(var85 >> 8));
                           var4.method3018((byte)var85);
                           var4.method3018(-1);
                           var4.method3020((float)var38);
                           var4.method3020((float)var39);
                           if(this.anIntArrayArrayArray9570 != null) {
                              var4.method3020(var17 != null?(float)(var17[var81] - 1):0.0F);
                           }

                           if((this.anInt9563 & 7) != 0) {
                              var4.method3020(var52);
                              var4.method3020(var53);
                              var4.method3020(var54);
                           }
                        }

                        var37 = this.anInt9564++;
                        var82[var81] = (short)var37;
                        if(var42 != -1) {
                           var5[var37] = var11[var81];
                        }

                        var7.method7206(new Class225_Sub18(var82[var81]), var45);
                     } else {
                        var82[var81] = ((Class225_Sub18)var84).aShort8562;
                        var37 = var82[var81] & '\uffff';
                        if(var42 != -1 && var11[var81].aLong2606 * -7222396723785363401L < var5[var37].aLong2606 * -7222396723785363401L) {
                           var5[var37] = var11[var81];
                        }
                     }

                     for(var85 = 0; var85 < var34; ++var85) {
                        var8[var85].method14367(var37, var50, var83, var51);
                     }

                     ++this.anInt9565;
                  }
               }
            }
         }

         for(var9 = 0; var9 < this.anInt9564; ++var9) {
            Class225_Sub52 var68 = var5[var9];
            if(var68 != null) {
               var68.method14369(var9);
            }
         }

         for(var9 = 0; var9 < this.anInt4911 * 1724373523; ++var9) {
            for(var10 = 0; var10 < this.anInt4908 * 1696648095; ++var10) {
               short[] var67 = this.aShortArrayArray9566[var10 * this.anInt4911 * 1724373523 + var9];
               if(var67 != null) {
                  int var69 = 0;

                  for(int var73 = 0; var73 < var67.length; ++var69) {
                     int var74 = var67[var73++] & '\uffff';
                     int var75 = var67[var73++] & '\uffff';
                     int var76 = var67[var73++] & '\uffff';
                     Class225_Sub52 var77 = var5[var74];
                     Class225_Sub52 var79 = var5[var75];
                     Class225_Sub52 var78 = var5[var76];
                     Class225_Sub52 var80 = null;
                     if(var77 != null) {
                        var77.method14366(var9, var10, var69);
                        var80 = var77;
                     }

                     if(var79 != null) {
                        var79.method14366(var9, var10, var69);
                        if(var80 == null || var79.aLong2606 * -7222396723785363401L < var80.aLong2606 * -7222396723785363401L) {
                           var80 = var79;
                        }
                     }

                     if(var78 != null) {
                        var78.method14366(var9, var10, var69);
                        if(var80 == null || var78.aLong2606 * -7222396723785363401L < var80.aLong2606 * -7222396723785363401L) {
                           var80 = var78;
                        }
                     }

                     if(var80 != null) {
                        if(var77 != null) {
                           var80.method14369(var74);
                        }

                        if(var79 != null) {
                           var80.method14369(var75);
                        }

                        if(var78 != null) {
                           var80.method14369(var76);
                        }

                        var80.method14366(var9, var10, var69);
                     }
                  }
               }
            }
         }

         var4.method3021();
         this.anInterface10_9578 = this.aClass545_Sub1_9558.method14583(var2, var65, var4.method3016(), false);
         if(this.anInterface10_9578 instanceof Class145_Sub1) {
            var65.method1290();
         }

         this.aClass150_9579 = new Class150(this.anInterface10_9578, 5126, 3, 0);
         this.aClass150_9582 = new Class150(this.anInterface10_9578, 5121, 4, 12);
         byte var66;
         if(this.anIntArrayArrayArray9570 != null) {
            this.aClass150_9569 = new Class150(this.anInterface10_9578, 5126, 3, 16);
            var66 = 28;
         } else {
            this.aClass150_9569 = new Class150(this.anInterface10_9578, 5126, 2, 16);
            var66 = 24;
         }

         if((this.anInt9563 & 7) != 0) {
            this.aClass150_9584 = new Class150(this.anInterface10_9578, 5126, 3, var66);
         }

         long[] var71 = new long[this.aClass225Array9559.length];

         for(int var70 = 0; var70 < this.aClass225Array9559.length; ++var70) {
            Class225_Sub52 var72 = (Class225_Sub52)this.aClass225Array9559[var70];
            var71[var70] = var72.aLong2606 * -7222396723785363401L;
            var72.method14368(this.anInt9564);
         }

         Class100.method1979(var71, this.aClass225Array9559, 717351612);
         if(this.aClass155_9575 != null) {
            this.aClass155_9575.method2798();
         }
      } else {
         this.aClass155_9575 = null;
      }

      if((this.anInt9580 & 2) == 0) {
         this.anIntArrayArrayArray9571 = (int[][][])null;
         this.anIntArrayArrayArray9562 = (int[][][])null;
         this.anIntArrayArrayArray9557 = (int[][][])null;
      }

      this.anIntArrayArrayArray9570 = (int[][][])null;
      this.anIntArrayArrayArray9590 = (int[][][])null;
      this.anIntArrayArrayArray9572 = (int[][][])null;
      this.aClass225_Sub52ArrayArrayArray9567 = (Class225_Sub52[][][])null;
      this.aByteArrayArray9568 = (byte[][])null;
      this.aClass423_9589 = null;
      this.aFloatArrayArray9588 = (float[][])null;
      this.aFloatArrayArray9587 = (float[][])null;
      this.aFloatArrayArray9586 = (float[][])null;
   }

   public void method6794(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, Class153 var11, boolean var12) {
      Interface24 var13 = this.aClass545_Sub1_9558.anInterface24_7370;
      if(var6 != null && this.anIntArrayArrayArray9570 == null) {
         this.anIntArrayArrayArray9570 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      if(var4 != null && this.anIntArrayArrayArray9572 == null) {
         this.anIntArrayArrayArray9572 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      this.anIntArrayArrayArray9562[var1][var2] = var3;
      this.anIntArrayArrayArray9571[var1][var2] = var5;
      this.anIntArrayArrayArray9557[var1][var2] = var7;
      this.anIntArrayArrayArray9590[var1][var2] = var8;
      if(this.anIntArrayArrayArray9570 != null) {
         this.anIntArrayArrayArray9570[var1][var2] = var6;
      }

      if(this.anIntArrayArrayArray9572 != null) {
         this.anIntArrayArrayArray9572[var1][var2] = var4;
      }

      Class225_Sub52[] var14 = this.aClass225_Sub52ArrayArrayArray9567[var1][var2] = new Class225_Sub52[var7.length];
      int var15 = 0;

      while(var15 < var7.length) {
         int var16 = var9[var15];
         int var17 = var10[var15];
         if((this.anInt9563 & 32) != 0 && var16 != -1 && var13.method113(var16, 65620573).aBool1994) {
            var17 = 128;
            var16 = -1;
         }

         long var18 = (long)(var11.anInt1725 * 495453869) << 48 | (long)(var11.anInt1731 * -663176343) << 42 | (long)(var11.anInt1727 * 1679980725) << 28 | (long)(var17 << 14) | (long)var16;
         Class225 var20 = this.aClass423_9589.method7211(var18);

         while(true) {
            if(var20 != null) {
               Class225_Sub52 var21 = (Class225_Sub52)var20;
               if(var21.anInt8968 != var16 || var21.aFloat8969 != (float)var17 || !var21.aClass153_8970.method2768(var11, -525418409)) {
                  var20 = this.aClass423_9589.method7204(1319869918);
                  continue;
               }
            }

            if(var20 == null) {
               var14[var15] = new Class225_Sub52(this, var16, var17, var11);
               this.aClass423_9589.method7206(var14[var15], var18);
            } else {
               var14[var15] = (Class225_Sub52)var20;
            }

            ++var15;
            break;
         }
      }

      if(var12) {
         this.aByteArrayArray9574[var1][var2] = (byte)(this.aByteArrayArray9574[var1][var2] | 1);
      }

      if(var7.length > this.anInt9581) {
         this.anInt9581 = var7.length;
      }

      this.anInt9583 += var7.length;
   }

   void method14935(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(1563550553)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)33); var21 != null; var21 = this.aClass456_9576.method7666(-2128931995)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   public void method6788(int var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean[][] var8) {
      Class151 var9 = this.aClass545_Sub1_9558.method11482((byte)14);
      if(this.anInt9583 > 0 && var9 != null) {
         this.aClass545_Sub1_9558.method14568();
         this.aClass545_Sub1_9558.method14657(false);
         this.aClass545_Sub1_9558.method14634(false);
         this.aClass545_Sub1_9558.method14600(false);
         this.aClass545_Sub1_9558.method14549(false);
         this.aClass545_Sub1_9558.method14602(0);
         this.aClass545_Sub1_9558.method14540(-2);
         this.aClass545_Sub1_9558.method14725((Class147)null);
         aFloatArray9577[0] = (float)var3 / (128.0F * (float)(this.anInt4910 * 2111724147) * (float)var9.method2741());
         aFloatArray9577[1] = 0.0F;
         aFloatArray9577[2] = 0.0F;
         aFloatArray9577[3] = 0.0F;
         aFloatArray9577[4] = 0.0F;
         aFloatArray9577[5] = (float)var3 / (128.0F * (float)(this.anInt4910 * 2111724147) * (float)var9.method2742());
         aFloatArray9577[6] = 0.0F;
         aFloatArray9577[7] = 0.0F;
         aFloatArray9577[8] = 0.0F;
         aFloatArray9577[9] = 0.0F;
         aFloatArray9577[10] = 0.0F;
         aFloatArray9577[11] = 0.0F;
         aFloatArray9577[12] = -1.0F - ((float)(var4 * var3) / 128.0F - (float)(var1 * 2)) / (float)var9.method2741();
         aFloatArray9577[13] = 1.0F - ((float)(2 * var2) + (float)(var7 * var3) / 128.0F) / (float)var9.method2742();
         aFloatArray9577[14] = 0.0F;
         aFloatArray9577[15] = 1.0F;
         OpenGL.glMatrixMode(5889);
         OpenGL.glLoadMatrixf(aFloatArray9577, 0);
         aFloatArray9577[0] = 1.0F;
         aFloatArray9577[1] = 0.0F;
         aFloatArray9577[2] = 0.0F;
         aFloatArray9577[3] = 0.0F;
         aFloatArray9577[4] = 0.0F;
         aFloatArray9577[5] = 0.0F;
         aFloatArray9577[6] = 1.0F;
         aFloatArray9577[7] = 0.0F;
         aFloatArray9577[8] = 0.0F;
         aFloatArray9577[9] = 1.0F;
         aFloatArray9577[10] = 0.0F;
         aFloatArray9577[11] = 0.0F;
         aFloatArray9577[12] = 0.0F;
         aFloatArray9577[13] = 0.0F;
         aFloatArray9577[14] = 0.0F;
         aFloatArray9577[15] = 1.0F;
         OpenGL.glMatrixMode(5888);
         OpenGL.glLoadMatrixf(aFloatArray9577, 0);
         if((this.anInt9563 & 7) != 0) {
            this.aClass545_Sub1_9558.method14634(true);
            this.aClass545_Sub1_9558.method14576();
         } else {
            this.aClass545_Sub1_9558.method14634(false);
         }

         this.aClass545_Sub1_9558.method14625(this.aClass150_9579, this.aClass150_9584, this.aClass150_9582, this.aClass150_9569);
         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         } else {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.position = 0;
         }

         int var10 = 0;
         Class225_Sub23_Sub2 var11 = this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294;
         int var12;
         int var13;
         int var14;
         short[] var15;
         int var16;
         if(this.aClass545_Sub1_9558.aBool9257) {
            for(var12 = var5; var12 < var7; ++var12) {
               var13 = var12 * this.anInt4911 * 1724373523 + var4;

               for(var14 = var4; var14 < var6; ++var14) {
                  if(var8[var14 - var4][var12 - var5]) {
                     var15 = this.aShortArrayArray9566[var13];
                     if(var15 != null) {
                        for(var16 = 0; var16 < var15.length; ++var16) {
                           var11.writeShort(var15[var16] & '\uffff', 1852014841);
                           ++var10;
                        }
                     }
                  }

                  ++var13;
               }
            }
         } else {
            for(var12 = var5; var12 < var7; ++var12) {
               var13 = var12 * this.anInt4911 * 1724373523 + var4;

               for(var14 = var4; var14 < var6; ++var14) {
                  if(var8[var14 - var4][var12 - var5]) {
                     var15 = this.aShortArrayArray9566[var13];
                     if(var15 != null) {
                        for(var16 = 0; var16 < var15.length; ++var16) {
                           var11.method13704(var15[var16] & '\uffff', 1094649230);
                           ++var10;
                        }
                     }
                  }

                  ++var13;
               }
            }
         }

         if(var10 > 0) {
            Class162_Sub2 var17 = new Class162_Sub2(this.aClass545_Sub1_9558, 5123, var11.buffer, var11.position * -543666943);
            this.aClass545_Sub1_9558.method14610(var17, 4, 0, var10);
         }

      }
   }

   public Class225_Sub14_Sub16 w(int var1, int var2, Class225_Sub14_Sub16 var3) {
      if((this.aByteArrayArray9574[var1][var2] & 1) == 0) {
         return null;
      } else {
         int var4 = this.anInt4910 * 2111724147 >> this.aClass545_Sub1_9558.anInt9160;
         Class225_Sub14_Sub16_Sub2 var5 = (Class225_Sub14_Sub16_Sub2)var3;
         Class225_Sub14_Sub16_Sub2 var6;
         if(var5 != null && var5.method16540(var4, var4)) {
            var6 = var5;
            var5.method16541();
         } else {
            var6 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9558, var4, var4);
         }

         var6.method16538(0, 0, var4, var4);
         this.method14936(var6, var1, var2);
         return var6;
      }
   }

   void method14936(Class225_Sub14_Sub16_Sub2 var1, int var2, int var3) {
      int[] var4 = this.anIntArrayArrayArray9562[var2][var3];
      int[] var5 = this.anIntArrayArrayArray9571[var2][var3];
      int var6 = var4.length;
      if(this.aClass545_Sub1_9558.anIntArray9295.length < var6) {
         this.aClass545_Sub1_9558.anIntArray9295 = new int[var6];
         this.aClass545_Sub1_9558.anIntArray9195 = new int[var6];
      }

      int[] var7 = this.aClass545_Sub1_9558.anIntArray9295;
      int[] var8 = this.aClass545_Sub1_9558.anIntArray9195;

      int var9;
      for(var9 = 0; var9 < var6; ++var9) {
         var7[var9] = var4[var9] >> this.aClass545_Sub1_9558.anInt9160;
         var8[var9] = var5[var9] >> this.aClass545_Sub1_9558.anInt9160;
      }

      var9 = 0;

      while(var9 < var6) {
         int var10 = var7[var9];
         int var11 = var8[var9++];
         int var12 = var7[var9];
         int var13 = var8[var9++];
         int var14 = var7[var9];
         int var15 = var8[var9++];
         if((var10 - var12) * (var13 - var15) - (var13 - var11) * (var14 - var12) > 0) {
            var1.method16542(var11, var13, var15, var10, var12, var14);
         }
      }

   }

   public boolean method6792(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         return this.aClass155_9575.method2793(var1, var7, var8);
      } else {
         return false;
      }
   }

   Class400_Sub3(Class545_Sub1 var1, int var2, int var3, int var4, int var5, int[][] var6, int[][] var7, int var8) {
      super(var4, var5, var8, var6);
      this.aClass545_Sub1_9558 = var1;
      this.anInt9560 = this.anInt4909 * -1451148795 - 2;
      this.anInt9561 = 1 << this.anInt9560;
      this.anInt9580 = var2;
      this.anInt9563 = var3;
      this.anIntArrayArrayArray9572 = new int[var4][var5][];
      this.aClass225_Sub52ArrayArrayArray9567 = new Class225_Sub52[var4][var5][];
      this.anIntArrayArrayArray9562 = new int[var4][var5][];
      this.anIntArrayArrayArray9571 = new int[var4][var5][];
      this.anIntArrayArrayArray9557 = new int[var4][var5][];
      this.anIntArrayArrayArray9590 = new int[var4][var5][];
      this.aShortArrayArray9566 = new short[var4 * var5][];
      this.aByteArrayArray9574 = new byte[var4][var5];
      this.aByteArrayArray9568 = new byte[var4 + 1][var5 + 1];
      this.aFloatArrayArray9586 = new float[this.anInt4911 * 1724373523 + 1][this.anInt4908 * 1696648095 + 1];
      this.aFloatArrayArray9587 = new float[this.anInt4911 * 1724373523 + 1][this.anInt4908 * 1696648095 + 1];
      this.aFloatArrayArray9588 = new float[this.anInt4911 * 1724373523 + 1][this.anInt4908 * 1696648095 + 1];

      for(int var9 = 1; var9 < this.anInt4908 * 1696648095; ++var9) {
         for(int var10 = 1; var10 < this.anInt4911 * 1724373523; ++var10) {
            int var11 = var7[var10 + 1][var9] - var7[var10 - 1][var9];
            int var12 = var7[var10][var9 + 1] - var7[var10][var9 - 1];
            float var13 = (float)(1.0D / Math.sqrt((double)(var11 * var11 + 4 * var8 * var8 + var12 * var12)));
            this.aFloatArrayArray9586[var10][var9] = (float)var11 * var13;
            this.aFloatArrayArray9587[var10][var9] = (float)(-var8 * 2) * var13;
            this.aFloatArrayArray9588[var10][var9] = (float)var12 * var13;
         }
      }

      this.aClass423_9589 = new Class423(128);
      if((this.anInt9563 & 16) != 0) {
         this.aClass155_9575 = new Class155(this.aClass545_Sub1_9558, this);
      }

   }

   public void NA(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2799(var1, var7, var8);
      }
   }

   public void method6797(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      this.method14935(var1, var2, var3, var4, var5, var6);
   }

   public void b(int var1, int var2, int var3) {
      if((this.aByteArrayArray9568[var1][var2] & 255) < var3) {
         this.aByteArrayArray9568[var1][var2] = (byte)var3;
      }

   }

   public void h(int var1, int var2, int var3) {
      if((this.aByteArrayArray9568[var1][var2] & 255) < var3) {
         this.aByteArrayArray9568[var1][var2] = (byte)var3;
      }

   }

   void method14937(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(314948663)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)109); var21 != null; var21 = this.aClass456_9576.method7666(-14001836)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   public Class225_Sub14_Sub16 z(int var1, int var2, Class225_Sub14_Sub16 var3) {
      if((this.aByteArrayArray9574[var1][var2] & 1) == 0) {
         return null;
      } else {
         int var4 = this.anInt4910 * 2111724147 >> this.aClass545_Sub1_9558.anInt9160;
         Class225_Sub14_Sub16_Sub2 var5 = (Class225_Sub14_Sub16_Sub2)var3;
         Class225_Sub14_Sub16_Sub2 var6;
         if(var5 != null && var5.method16540(var4, var4)) {
            var6 = var5;
            var5.method16541();
         } else {
            var6 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9558, var4, var4);
         }

         var6.method16538(0, 0, var4, var4);
         this.method14936(var6, var1, var2);
         return var6;
      }
   }

   public void ah(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void UA(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void m(int var1, int var2, int var3) {
      if((this.aByteArrayArray9568[var1][var2] & 255) < var3) {
         this.aByteArrayArray9568[var1][var2] = (byte)var3;
      }

   }

   public void method6800(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      this.method14935(var1, var2, var3, var4, var5, var6);
   }

   public void method6787(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      this.method14935(var1, var2, var3, var4, var5, var6);
   }

   public Class225_Sub14_Sub16 k(int var1, int var2, Class225_Sub14_Sub16 var3) {
      if((this.aByteArrayArray9574[var1][var2] & 1) == 0) {
         return null;
      } else {
         int var4 = this.anInt4910 * 2111724147 >> this.aClass545_Sub1_9558.anInt9160;
         Class225_Sub14_Sub16_Sub2 var5 = (Class225_Sub14_Sub16_Sub2)var3;
         Class225_Sub14_Sub16_Sub2 var6;
         if(var5 != null && var5.method16540(var4, var4)) {
            var6 = var5;
            var5.method16541();
         } else {
            var6 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9558, var4, var4);
         }

         var6.method16538(0, 0, var4, var4);
         this.method14936(var6, var1, var2);
         return var6;
      }
   }

   public Class225_Sub14_Sub16 j(int var1, int var2, Class225_Sub14_Sub16 var3) {
      if((this.aByteArrayArray9574[var1][var2] & 1) == 0) {
         return null;
      } else {
         int var4 = this.anInt4910 * 2111724147 >> this.aClass545_Sub1_9558.anInt9160;
         Class225_Sub14_Sub16_Sub2 var5 = (Class225_Sub14_Sub16_Sub2)var3;
         Class225_Sub14_Sub16_Sub2 var6;
         if(var5 != null && var5.method16540(var4, var4)) {
            var6 = var5;
            var5.method16541();
         } else {
            var6 = new Class225_Sub14_Sub16_Sub2(this.aClass545_Sub1_9558, var4, var4);
         }

         var6.method16538(0, 0, var4, var4);
         this.method14936(var6, var1, var2);
         return var6;
      }
   }

   public void method6798(int var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean[][] var8) {
      Class151 var9 = this.aClass545_Sub1_9558.method11482((byte)14);
      if(this.anInt9583 > 0 && var9 != null) {
         this.aClass545_Sub1_9558.method14568();
         this.aClass545_Sub1_9558.method14657(false);
         this.aClass545_Sub1_9558.method14634(false);
         this.aClass545_Sub1_9558.method14600(false);
         this.aClass545_Sub1_9558.method14549(false);
         this.aClass545_Sub1_9558.method14602(0);
         this.aClass545_Sub1_9558.method14540(-2);
         this.aClass545_Sub1_9558.method14725((Class147)null);
         aFloatArray9577[0] = (float)var3 / (128.0F * (float)(this.anInt4910 * 2111724147) * (float)var9.method2741());
         aFloatArray9577[1] = 0.0F;
         aFloatArray9577[2] = 0.0F;
         aFloatArray9577[3] = 0.0F;
         aFloatArray9577[4] = 0.0F;
         aFloatArray9577[5] = (float)var3 / (128.0F * (float)(this.anInt4910 * 2111724147) * (float)var9.method2742());
         aFloatArray9577[6] = 0.0F;
         aFloatArray9577[7] = 0.0F;
         aFloatArray9577[8] = 0.0F;
         aFloatArray9577[9] = 0.0F;
         aFloatArray9577[10] = 0.0F;
         aFloatArray9577[11] = 0.0F;
         aFloatArray9577[12] = -1.0F - ((float)(var4 * var3) / 128.0F - (float)(var1 * 2)) / (float)var9.method2741();
         aFloatArray9577[13] = 1.0F - ((float)(2 * var2) + (float)(var7 * var3) / 128.0F) / (float)var9.method2742();
         aFloatArray9577[14] = 0.0F;
         aFloatArray9577[15] = 1.0F;
         OpenGL.glMatrixMode(5889);
         OpenGL.glLoadMatrixf(aFloatArray9577, 0);
         aFloatArray9577[0] = 1.0F;
         aFloatArray9577[1] = 0.0F;
         aFloatArray9577[2] = 0.0F;
         aFloatArray9577[3] = 0.0F;
         aFloatArray9577[4] = 0.0F;
         aFloatArray9577[5] = 0.0F;
         aFloatArray9577[6] = 1.0F;
         aFloatArray9577[7] = 0.0F;
         aFloatArray9577[8] = 0.0F;
         aFloatArray9577[9] = 1.0F;
         aFloatArray9577[10] = 0.0F;
         aFloatArray9577[11] = 0.0F;
         aFloatArray9577[12] = 0.0F;
         aFloatArray9577[13] = 0.0F;
         aFloatArray9577[14] = 0.0F;
         aFloatArray9577[15] = 1.0F;
         OpenGL.glMatrixMode(5888);
         OpenGL.glLoadMatrixf(aFloatArray9577, 0);
         if((this.anInt9563 & 7) != 0) {
            this.aClass545_Sub1_9558.method14634(true);
            this.aClass545_Sub1_9558.method14576();
         } else {
            this.aClass545_Sub1_9558.method14634(false);
         }

         this.aClass545_Sub1_9558.method14625(this.aClass150_9579, this.aClass150_9584, this.aClass150_9582, this.aClass150_9569);
         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         } else {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.position = 0;
         }

         int var10 = 0;
         Class225_Sub23_Sub2 var11 = this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294;
         int var12;
         int var13;
         int var14;
         short[] var15;
         int var16;
         if(this.aClass545_Sub1_9558.aBool9257) {
            for(var12 = var5; var12 < var7; ++var12) {
               var13 = var12 * this.anInt4911 * 1724373523 + var4;

               for(var14 = var4; var14 < var6; ++var14) {
                  if(var8[var14 - var4][var12 - var5]) {
                     var15 = this.aShortArrayArray9566[var13];
                     if(var15 != null) {
                        for(var16 = 0; var16 < var15.length; ++var16) {
                           var11.writeShort(var15[var16] & '\uffff', -410945607);
                           ++var10;
                        }
                     }
                  }

                  ++var13;
               }
            }
         } else {
            for(var12 = var5; var12 < var7; ++var12) {
               var13 = var12 * this.anInt4911 * 1724373523 + var4;

               for(var14 = var4; var14 < var6; ++var14) {
                  if(var8[var14 - var4][var12 - var5]) {
                     var15 = this.aShortArrayArray9566[var13];
                     if(var15 != null) {
                        for(var16 = 0; var16 < var15.length; ++var16) {
                           var11.method13704(var15[var16] & '\uffff', 1094649230);
                           ++var10;
                        }
                     }
                  }

                  ++var13;
               }
            }
         }

         if(var10 > 0) {
            Class162_Sub2 var17 = new Class162_Sub2(this.aClass545_Sub1_9558, 5123, var11.buffer, var11.position * -543666943);
            this.aClass545_Sub1_9558.method14610(var17, 4, 0, var10);
         }

      }
   }

   public void i(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void s(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void e(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void ad(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2800(var1, var7, var8);
      }
   }

   public void method6795(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, Class153 var11, boolean var12) {
      Interface24 var13 = this.aClass545_Sub1_9558.anInterface24_7370;
      if(var6 != null && this.anIntArrayArrayArray9570 == null) {
         this.anIntArrayArrayArray9570 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      if(var4 != null && this.anIntArrayArrayArray9572 == null) {
         this.anIntArrayArrayArray9572 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      this.anIntArrayArrayArray9562[var1][var2] = var3;
      this.anIntArrayArrayArray9571[var1][var2] = var5;
      this.anIntArrayArrayArray9557[var1][var2] = var7;
      this.anIntArrayArrayArray9590[var1][var2] = var8;
      if(this.anIntArrayArrayArray9570 != null) {
         this.anIntArrayArrayArray9570[var1][var2] = var6;
      }

      if(this.anIntArrayArrayArray9572 != null) {
         this.anIntArrayArrayArray9572[var1][var2] = var4;
      }

      Class225_Sub52[] var14 = this.aClass225_Sub52ArrayArrayArray9567[var1][var2] = new Class225_Sub52[var7.length];
      int var15 = 0;

      while(var15 < var7.length) {
         int var16 = var9[var15];
         int var17 = var10[var15];
         if((this.anInt9563 & 32) != 0 && var16 != -1 && var13.method113(var16, 1904196042).aBool1994) {
            var17 = 128;
            var16 = -1;
         }

         long var18 = (long)(var11.anInt1725 * 495453869) << 48 | (long)(var11.anInt1731 * -663176343) << 42 | (long)(var11.anInt1727 * 1679980725) << 28 | (long)(var17 << 14) | (long)var16;
         Class225 var20 = this.aClass423_9589.method7211(var18);

         while(true) {
            if(var20 != null) {
               Class225_Sub52 var21 = (Class225_Sub52)var20;
               if(var21.anInt8968 != var16 || var21.aFloat8969 != (float)var17 || !var21.aClass153_8970.method2768(var11, -927385995)) {
                  var20 = this.aClass423_9589.method7204(1319869918);
                  continue;
               }
            }

            if(var20 == null) {
               var14[var15] = new Class225_Sub52(this, var16, var17, var11);
               this.aClass423_9589.method7206(var14[var15], var18);
            } else {
               var14[var15] = (Class225_Sub52)var20;
            }

            ++var15;
            break;
         }
      }

      if(var12) {
         this.aByteArrayArray9574[var1][var2] = (byte)(this.aByteArrayArray9574[var1][var2] | 1);
      }

      if(var7.length > this.anInt9581) {
         this.anInt9581 = var7.length;
      }

      this.anInt9583 += var7.length;
   }

   public void method6785(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, Class153 var11, boolean var12) {
      Interface24 var13 = this.aClass545_Sub1_9558.anInterface24_7370;
      if(var6 != null && this.anIntArrayArrayArray9570 == null) {
         this.anIntArrayArrayArray9570 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      if(var4 != null && this.anIntArrayArrayArray9572 == null) {
         this.anIntArrayArrayArray9572 = new int[this.anInt4911 * 1724373523][this.anInt4908 * 1696648095][];
      }

      this.anIntArrayArrayArray9562[var1][var2] = var3;
      this.anIntArrayArrayArray9571[var1][var2] = var5;
      this.anIntArrayArrayArray9557[var1][var2] = var7;
      this.anIntArrayArrayArray9590[var1][var2] = var8;
      if(this.anIntArrayArrayArray9570 != null) {
         this.anIntArrayArrayArray9570[var1][var2] = var6;
      }

      if(this.anIntArrayArrayArray9572 != null) {
         this.anIntArrayArrayArray9572[var1][var2] = var4;
      }

      Class225_Sub52[] var14 = this.aClass225_Sub52ArrayArrayArray9567[var1][var2] = new Class225_Sub52[var7.length];
      int var15 = 0;

      while(var15 < var7.length) {
         int var16 = var9[var15];
         int var17 = var10[var15];
         if((this.anInt9563 & 32) != 0 && var16 != -1 && var13.method113(var16, -1215078741).aBool1994) {
            var17 = 128;
            var16 = -1;
         }

         long var18 = (long)(var11.anInt1725 * 495453869) << 48 | (long)(var11.anInt1731 * -663176343) << 42 | (long)(var11.anInt1727 * 1679980725) << 28 | (long)(var17 << 14) | (long)var16;
         Class225 var20 = this.aClass423_9589.method7211(var18);

         while(true) {
            if(var20 != null) {
               Class225_Sub52 var21 = (Class225_Sub52)var20;
               if(var21.anInt8968 != var16 || var21.aFloat8969 != (float)var17 || !var21.aClass153_8970.method2768(var11, -669707377)) {
                  var20 = this.aClass423_9589.method7204(1319869918);
                  continue;
               }
            }

            if(var20 == null) {
               var14[var15] = new Class225_Sub52(this, var16, var17, var11);
               this.aClass423_9589.method7206(var14[var15], var18);
            } else {
               var14[var15] = (Class225_Sub52)var20;
            }

            ++var15;
            break;
         }
      }

      if(var12) {
         this.aByteArrayArray9574[var1][var2] = (byte)(this.aByteArrayArray9574[var1][var2] | 1);
      }

      if(var7.length > this.anInt9581) {
         this.anInt9581 = var7.length;
      }

      this.anInt9583 += var7.length;
   }

   public boolean method6801(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         return this.aClass155_9575.method2793(var1, var7, var8);
      } else {
         return false;
      }
   }

   public boolean method6802(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         return this.aClass155_9575.method2793(var1, var7, var8);
      } else {
         return false;
      }
   }

   public void al(Class225_Sub14_Sub16 var1, int var2, int var3, int var4, int var5, boolean var6) {
      if(this.aClass155_9575 != null && var1 != null) {
         int var7 = var2 - (var3 * this.aClass545_Sub1_9558.anInt9173 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         int var8 = var4 - (var3 * this.aClass545_Sub1_9558.anInt9127 >> 8) >> this.aClass545_Sub1_9558.anInt9160;
         this.aClass155_9575.method2799(var1, var7, var8);
      }
   }

   public void method6803(Class225_Sub40 var1, int[] var2) {
      this.aClass456_9576.method7712(new Class225_Sub41(this.aClass545_Sub1_9558, this, var1, var2), (byte)72);
   }

   public void method6793(Class225_Sub40 var1, int[] var2) {
      this.aClass456_9576.method7712(new Class225_Sub41(this.aClass545_Sub1_9558, this, var1, var2), (byte)66);
   }

   public void method6805(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, int[] var11, int[] var12, int[] var13, Class153 var14, boolean var15) {
      int var16 = var10.length;
      int[] var17 = new int[var16 * 3];
      int[] var18 = new int[var16 * 3];
      int[] var19 = new int[var16 * 3];
      int[] var20 = var11 != null?new int[var16 * 3]:null;
      int[] var21 = new int[var16 * 3];
      int[] var22 = new int[var16 * 3];
      int[] var23 = var4 != null?new int[var16 * 3]:null;
      int[] var24 = var6 != null?new int[var16 * 3]:null;
      int var25 = 0;

      for(int var26 = 0; var26 < var16; ++var26) {
         int var27 = var7[var26];
         int var28 = var8[var26];
         int var29 = var9[var26];
         var17[var25] = var3[var27];
         var18[var25] = var5[var27];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var27];
         }

         if(var6 != null) {
            var24[var25] = var6[var27];
         }

         ++var25;
         var17[var25] = var3[var28];
         var18[var25] = var5[var28];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var28];
         }

         if(var6 != null) {
            var24[var25] = var6[var28];
         }

         ++var25;
         var17[var25] = var3[var29];
         var18[var25] = var5[var29];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var29];
         }

         if(var6 != null) {
            var24[var25] = var6[var29];
         }

         ++var25;
      }

      this.method6785(var1, var2, var17, var23, var18, var24, var19, var20, var21, var22, var14, var15);
   }

   public void method6790(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, int[] var11, int[] var12, int[] var13, Class153 var14, boolean var15) {
      int var16 = var10.length;
      int[] var17 = new int[var16 * 3];
      int[] var18 = new int[var16 * 3];
      int[] var19 = new int[var16 * 3];
      int[] var20 = var11 != null?new int[var16 * 3]:null;
      int[] var21 = new int[var16 * 3];
      int[] var22 = new int[var16 * 3];
      int[] var23 = var4 != null?new int[var16 * 3]:null;
      int[] var24 = var6 != null?new int[var16 * 3]:null;
      int var25 = 0;

      for(int var26 = 0; var26 < var16; ++var26) {
         int var27 = var7[var26];
         int var28 = var8[var26];
         int var29 = var9[var26];
         var17[var25] = var3[var27];
         var18[var25] = var5[var27];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var27];
         }

         if(var6 != null) {
            var24[var25] = var6[var27];
         }

         ++var25;
         var17[var25] = var3[var28];
         var18[var25] = var5[var28];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var28];
         }

         if(var6 != null) {
            var24[var25] = var6[var28];
         }

         ++var25;
         var17[var25] = var3[var29];
         var18[var25] = var5[var29];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var29];
         }

         if(var6 != null) {
            var24[var25] = var6[var29];
         }

         ++var25;
      }

      this.method6785(var1, var2, var17, var23, var18, var24, var19, var20, var21, var22, var14, var15);
   }

   public void method6804(Class225_Sub40 var1, int[] var2) {
      this.aClass456_9576.method7712(new Class225_Sub41(this.aClass545_Sub1_9558, this, var1, var2), (byte)61);
   }

   void method14938(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(-821445369)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)52); var21 != null; var21 = this.aClass456_9576.method7666(-88149790)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   void method14939(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(1162812356)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)87); var21 != null; var21 = this.aClass456_9576.method7666(-1223528401)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   void method14940(int var1, int var2, int var3, boolean[][] var4, boolean var5, int var6) {
      if(this.aClass225Array9559 != null) {
         int var7 = var3 + var3 + 1;
         var7 *= var7;
         if(this.aClass545_Sub1_9558.anIntArray9297.length < var7) {
            this.aClass545_Sub1_9558.anIntArray9297 = new int[var7];
         }

         if(this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294.buffer.length < this.anInt9565 * 2) {
            this.aClass545_Sub1_9558.aClass225_Sub23_Sub2_9294 = new Class225_Sub23_Sub2(this.anInt9565 * 2);
         }

         int var8 = var1 - var3;
         int var9 = var8;
         if(var8 < 0) {
            var8 = 0;
         }

         int var10 = var2 - var3;
         int var11 = var10;
         if(var10 < 0) {
            var10 = 0;
         }

         int var12 = var1 + var3;
         if(var12 > this.anInt4911 * 1724373523 - 1) {
            var12 = this.anInt4911 * 1724373523 - 1;
         }

         int var13 = var2 + var3;
         if(var13 > this.anInt4908 * 1696648095 - 1) {
            var13 = this.anInt4908 * 1696648095 - 1;
         }

         int var14 = 0;
         int[] var15 = this.aClass545_Sub1_9558.anIntArray9297;

         int var16;
         for(var16 = var8; var16 <= var12; ++var16) {
            boolean[] var17 = var4[var16 - var9];

            for(int var18 = var10; var18 <= var13; ++var18) {
               if(var17[var18 - var11]) {
                  var15[var14++] = var18 * this.anInt4911 * 1724373523 + var16;
               }
            }
         }

         this.aClass545_Sub1_9558.method14556();
         this.aClass545_Sub1_9558.method14634((this.anInt9563 & 7) != 0);

         for(var16 = 0; var16 < this.aClass225Array9559.length - 0; ++var16) {
            ((Class225_Sub52)this.aClass225Array9559[var16]).method14373(var15, var14);
         }

         if(!this.aClass456_9576.method7640(-1060538972)) {
            var16 = this.aClass545_Sub1_9558.anInt9235;
            int var20 = this.aClass545_Sub1_9558.anInt9167;
            this.aClass545_Sub1_9558.c(0, var20, this.aClass545_Sub1_9558.anInt9149);
            this.aClass545_Sub1_9558.method14634(false);
            this.aClass545_Sub1_9558.method14549(false);
            this.aClass545_Sub1_9558.method14602(128);
            this.aClass545_Sub1_9558.method14540(-2);
            this.aClass545_Sub1_9558.method14725(this.aClass545_Sub1_9558.aClass147_Sub4_9254);
            this.aClass545_Sub1_9558.method14553(8448, 7681);
            this.aClass545_Sub1_9558.method14679(0, '\u8576', 770);
            this.aClass545_Sub1_9558.method14630(0, '\u8577', 770);

            for(Class225 var21 = this.aClass456_9576.method7682((byte)92); var21 != null; var21 = this.aClass456_9576.method7666(-1327290087)) {
               Class225_Sub41 var19 = (Class225_Sub41)var21;
               var19.method14124(var1, var2, var3, var4);
            }

            this.aClass545_Sub1_9558.method14679(0, 5890, 768);
            this.aClass545_Sub1_9558.method14630(0, 5890, 770);
            this.aClass545_Sub1_9558.method14725((Class147)null);
            this.aClass545_Sub1_9558.c(var16, var20, this.aClass545_Sub1_9558.anInt9149);
         }

         if(this.aClass155_9575 != null) {
            OpenGL.glPushMatrix();
            OpenGL.glTranslatef(0.0F, -1.0F, 0.0F);
            this.aClass545_Sub1_9558.method14625(this.aClass150_9579, (Class150)null, (Class150)null, this.aClass150_9569);
            this.aClass155_9575.method2791(var1, var2, var3, var4, var5);
            OpenGL.glPopMatrix();
         }
      }

   }

   public void method6786(int var1, int var2, int[] var3, int[] var4, int[] var5, int[] var6, int[] var7, int[] var8, int[] var9, int[] var10, int[] var11, int[] var12, int[] var13, Class153 var14, boolean var15) {
      int var16 = var10.length;
      int[] var17 = new int[var16 * 3];
      int[] var18 = new int[var16 * 3];
      int[] var19 = new int[var16 * 3];
      int[] var20 = var11 != null?new int[var16 * 3]:null;
      int[] var21 = new int[var16 * 3];
      int[] var22 = new int[var16 * 3];
      int[] var23 = var4 != null?new int[var16 * 3]:null;
      int[] var24 = var6 != null?new int[var16 * 3]:null;
      int var25 = 0;

      for(int var26 = 0; var26 < var16; ++var26) {
         int var27 = var7[var26];
         int var28 = var8[var26];
         int var29 = var9[var26];
         var17[var25] = var3[var27];
         var18[var25] = var5[var27];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var27];
         }

         if(var6 != null) {
            var24[var25] = var6[var27];
         }

         ++var25;
         var17[var25] = var3[var28];
         var18[var25] = var5[var28];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var28];
         }

         if(var6 != null) {
            var24[var25] = var6[var28];
         }

         ++var25;
         var17[var25] = var3[var29];
         var18[var25] = var5[var29];
         var19[var25] = var10[var26];
         var21[var25] = var12[var26];
         var22[var25] = var13[var26];
         if(var11 != null) {
            var20[var25] = var11[var26];
         }

         if(var4 != null) {
            var23[var25] = var4[var29];
         }

         if(var6 != null) {
            var24[var25] = var6[var29];
         }

         ++var25;
      }

      this.method6785(var1, var2, var17, var23, var18, var24, var19, var20, var21, var22, var14, var15);
   }

   void method14941(Class225_Sub14_Sub16_Sub2 var1, int var2, int var3) {
      int[] var4 = this.anIntArrayArrayArray9562[var2][var3];
      int[] var5 = this.anIntArrayArrayArray9571[var2][var3];
      int var6 = var4.length;
      if(this.aClass545_Sub1_9558.anIntArray9295.length < var6) {
         this.aClass545_Sub1_9558.anIntArray9295 = new int[var6];
         this.aClass545_Sub1_9558.anIntArray9195 = new int[var6];
      }

      int[] var7 = this.aClass545_Sub1_9558.anIntArray9295;
      int[] var8 = this.aClass545_Sub1_9558.anIntArray9195;

      int var9;
      for(var9 = 0; var9 < var6; ++var9) {
         var7[var9] = var4[var9] >> this.aClass545_Sub1_9558.anInt9160;
         var8[var9] = var5[var9] >> this.aClass545_Sub1_9558.anInt9160;
      }

      var9 = 0;

      while(var9 < var6) {
         int var10 = var7[var9];
         int var11 = var8[var9++];
         int var12 = var7[var9];
         int var13 = var8[var9++];
         int var14 = var7[var9];
         int var15 = var8[var9++];
         if((var10 - var12) * (var13 - var15) - (var13 - var11) * (var14 - var12) > 0) {
            var1.method16542(var11, var13, var15, var10, var12, var14);
         }
      }

   }

   void method14942(Class225_Sub14_Sub16_Sub2 var1, int var2, int var3) {
      int[] var4 = this.anIntArrayArrayArray9562[var2][var3];
      int[] var5 = this.anIntArrayArrayArray9571[var2][var3];
      int var6 = var4.length;
      if(this.aClass545_Sub1_9558.anIntArray9295.length < var6) {
         this.aClass545_Sub1_9558.anIntArray9295 = new int[var6];
         this.aClass545_Sub1_9558.anIntArray9195 = new int[var6];
      }

      int[] var7 = this.aClass545_Sub1_9558.anIntArray9295;
      int[] var8 = this.aClass545_Sub1_9558.anIntArray9195;

      int var9;
      for(var9 = 0; var9 < var6; ++var9) {
         var7[var9] = var4[var9] >> this.aClass545_Sub1_9558.anInt9160;
         var8[var9] = var5[var9] >> this.aClass545_Sub1_9558.anInt9160;
      }

      var9 = 0;

      while(var9 < var6) {
         int var10 = var7[var9];
         int var11 = var8[var9++];
         int var12 = var7[var9];
         int var13 = var8[var9++];
         int var14 = var7[var9];
         int var15 = var8[var9++];
         if((var10 - var12) * (var13 - var15) - (var13 - var11) * (var14 - var12) > 0) {
            var1.method16542(var11, var13, var15, var10, var12, var14);
         }
      }

   }

   void method14943(Class225_Sub14_Sub16_Sub2 var1, int var2, int var3) {
      int[] var4 = this.anIntArrayArrayArray9562[var2][var3];
      int[] var5 = this.anIntArrayArrayArray9571[var2][var3];
      int var6 = var4.length;
      if(this.aClass545_Sub1_9558.anIntArray9295.length < var6) {
         this.aClass545_Sub1_9558.anIntArray9295 = new int[var6];
         this.aClass545_Sub1_9558.anIntArray9195 = new int[var6];
      }

      int[] var7 = this.aClass545_Sub1_9558.anIntArray9295;
      int[] var8 = this.aClass545_Sub1_9558.anIntArray9195;

      int var9;
      for(var9 = 0; var9 < var6; ++var9) {
         var7[var9] = var4[var9] >> this.aClass545_Sub1_9558.anInt9160;
         var8[var9] = var5[var9] >> this.aClass545_Sub1_9558.anInt9160;
      }

      var9 = 0;

      while(var9 < var6) {
         int var10 = var7[var9];
         int var11 = var8[var9++];
         int var12 = var7[var9];
         int var13 = var8[var9++];
         int var14 = var7[var9];
         int var15 = var8[var9++];
         if((var10 - var12) * (var13 - var15) - (var13 - var11) * (var14 - var12) > 0) {
            var1.method16542(var11, var13, var15, var10, var12, var14);
         }
      }

   }
}
