import java.nio.ByteBuffer;

public class Class343 {

   int anInt4376;
   int anInt4377;
   int anInt4378;
   Class400_Sub2 aClass400_Sub2_4379;
   byte[] aByteArray4380;
   int anInt4381;
   int anInt4382;
   Class545_Sub2 aClass545_Sub2_4383;
   Class59[][] aClass59ArrayArray4384;


   void method6274(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6292(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   void method6275() {
      this.aClass59ArrayArray4384 = new Class59[this.anInt4381][this.anInt4382];

      for(int var1 = 0; var1 < this.anInt4382; ++var1) {
         for(int var2 = 0; var2 < this.anInt4381; ++var2) {
            this.aClass59ArrayArray4384[var2][var1] = new Class59(this.aClass545_Sub2_4383, this, this.aClass400_Sub2_4379, var2, var1, this.anInt4376, var2 * 128 + 1, var1 * 128 + 1);
            if(this.aClass59ArrayArray4384[var2][var1].anInt549 == 0) {
               this.aClass59ArrayArray4384[var2][var1] = null;
            }
         }
      }

   }

   boolean method6276(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = var4.anInt10643;
      int var7 = var4.anInt10642;
      int var8 = this.anInt4378 - var7;
      int var9;
      if(var3 <= 0) {
         var9 = 1 - var3;
         var6 -= var9;
         var5 += var9 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var6 >= this.anInt4377) {
         var9 = var3 + var6 + 1 - this.anInt4377;
         var6 -= var9;
      }

      if(var2 <= 0) {
         var9 = 1 - var2;
         var7 -= var9;
         var5 += var9;
         var8 += var9;
         var2 = 1;
      }

      if(var2 + var7 >= this.anInt4378) {
         var9 = var2 + var7 + 1 - this.anInt4378;
         var7 -= var9;
         var8 += var9;
      }

      if(var7 > 0 && var6 > 0) {
         byte var10 = 8;
         var8 += (var10 - 1) * this.anInt4378;
         return method6293(this.aByteArray4380, var5, var7, var6, var8, var10);
      } else {
         return false;
      }
   }

   void method6277(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6292(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   void method6278(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6284(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   boolean method6279(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = var4.anInt10643;
      int var7 = var4.anInt10642;
      int var8 = this.anInt4378 - var7;
      int var9;
      if(var3 <= 0) {
         var9 = 1 - var3;
         var6 -= var9;
         var5 += var9 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var6 >= this.anInt4377) {
         var9 = var3 + var6 + 1 - this.anInt4377;
         var6 -= var9;
      }

      if(var2 <= 0) {
         var9 = 1 - var2;
         var7 -= var9;
         var5 += var9;
         var8 += var9;
         var2 = 1;
      }

      if(var2 + var7 >= this.anInt4378) {
         var9 = var2 + var7 + 1 - this.anInt4378;
         var7 -= var9;
         var8 += var9;
      }

      if(var7 > 0 && var6 > 0) {
         byte var10 = 8;
         var8 += (var10 - 1) * this.anInt4378;
         return method6293(this.aByteArray4380, var5, var7, var6, var8, var10);
      } else {
         return false;
      }
   }

   void method6280(int var1, int var2, int var3, int var4) {
      if(this.aClass59ArrayArray4384 != null) {
         int var5 = var1 - 1 >> 7;
         int var6 = var1 - 1 + var3 - 1 >> 7;
         int var7 = var2 - 1 >> 7;
         int var8 = var2 - 1 + var4 - 1 >> 7;

         for(int var9 = var5; var9 <= var6; ++var9) {
            Class59[] var10 = this.aClass59ArrayArray4384[var9];

            for(int var11 = var7; var11 <= var8; ++var11) {
               if(var10[var11] != null) {
                  var10[var11].aBool547 = true;
               }
            }
         }

      }
   }

   void method6281(Class68 var1, int var2, int var3, int var4, boolean[][] var5, boolean var6) {
      this.aClass545_Sub2_4383.RA(false);
      float var7 = 1.0F / (float)(this.aClass545_Sub2_4383.anInt9710 * 128);
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      if(var6) {
         for(int var8 = 0; var8 < this.anInt4382; ++var8) {
            int var9 = var8 << this.anInt4376;
            var10 = var8 + 1 << this.anInt4376;

            label129:
            for(var11 = 0; var11 < this.anInt4381; ++var11) {
               if(this.aClass59ArrayArray4384[var11][var8] != null) {
                  var12 = var11 << this.anInt4376;
                  var13 = var11 + 1 << this.anInt4376;

                  for(var14 = var12; var14 < var13; ++var14) {
                     if(var14 - var2 >= -var4 && var14 - var2 <= var4) {
                        for(var15 = var9; var15 < var10; ++var15) {
                           if(var15 - var3 >= -var4 && var15 - var3 <= var4 && var5[var14 - var2 + var4][var15 - var3 + var4]) {
                              var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                              var1.aClass317_654.aFloatArray4000[12] = (float)(-var11);
                              var1.aClass317_654.aFloatArray4000[13] = (float)(-var8);
                              this.aClass59ArrayArray4384[var11][var8].method1282(var1);
                              continue label129;
                           }
                        }
                     }
                  }
               }
            }
         }
      } else {
         int[] var24 = new int[this.anInt4382 * this.anInt4381];
         ByteBuffer var25 = this.aClass545_Sub2_4383.aByteBuffer9763;
         var25.clear();
         var10 = 0;

         for(var11 = 0; var11 < this.anInt4382; ++var11) {
            var12 = var11 << this.anInt4376;
            var13 = var11 + 1 << this.anInt4376;

            for(var14 = 0; var14 < this.anInt4381; ++var14) {
               Class59 var27 = this.aClass59ArrayArray4384[var14][var11];
               int var16 = 0;
               if(var27 != null) {
                  int var17 = var14 << this.anInt4376;
                  int var18 = var14 + 1 << this.anInt4376;

                  for(int var19 = var12; var19 < var13; ++var19) {
                     if(var19 - var3 >= -var4 && var19 - var3 <= var4) {
                        int var20 = var19 * this.aClass400_Sub2_4379.anInt4911 * 1724373523 + var17;

                        for(int var21 = var17; var21 < var18; ++var21) {
                           if(var21 - var2 >= -var4 && var21 - var2 <= var4 && var5[var21 - var2 + var4][var19 - var3 + var4]) {
                              short[] var22 = this.aClass400_Sub2_4379.aShortArrayArray9431[var20];
                              if(var22 != null) {
                                 for(int var23 = 0; var23 < var22.length; ++var23) {
                                    var25.putShort(var22[var23]);
                                    ++var16;
                                 }
                              }
                           }

                           ++var20;
                        }
                     }
                  }
               }

               var24[var10] = var16;
               ++var10;
            }
         }

         if(var25.position() != 0) {
            var11 = var25.position();
            Interface40 var26 = this.aClass545_Sub2_4383.method14992(var11 / 2);
            var26.method217(0, var11, this.aClass545_Sub2_4383.aLong9730);
            var13 = 0;
            var10 = 0;

            for(var14 = 0; var14 < this.anInt4382; ++var14) {
               for(var15 = 0; var15 < this.anInt4381; ++var15) {
                  if(var24[var10] != 0) {
                     var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                     var1.aClass317_654.aFloatArray4000[12] = (float)(-var15);
                     var1.aClass317_654.aFloatArray4000[13] = (float)(-var14);
                     this.aClass59ArrayArray4384[var15][var14].method1283(var1, var26, var13, var24[var10] / 3);
                     var13 += var24[var10];
                  }

                  ++var10;
               }
            }
         }
      }

      this.aClass545_Sub2_4383.RA(true);
   }

   void method6282() {
      this.aClass59ArrayArray4384 = new Class59[this.anInt4381][this.anInt4382];

      for(int var1 = 0; var1 < this.anInt4382; ++var1) {
         for(int var2 = 0; var2 < this.anInt4381; ++var2) {
            this.aClass59ArrayArray4384[var2][var1] = new Class59(this.aClass545_Sub2_4383, this, this.aClass400_Sub2_4379, var2, var1, this.anInt4376, var2 * 128 + 1, var1 * 128 + 1);
            if(this.aClass59ArrayArray4384[var2][var1].anInt549 == 0) {
               this.aClass59ArrayArray4384[var2][var1] = null;
            }
         }
      }

   }

   void method6283(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6284(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   static final void method6284(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7) {
      int var8 = -(var4 >> 2);
      var4 = -(var4 & 3);

      for(int var9 = -var5; var9 < 0; ++var9) {
         int var10;
         int var10001;
         for(var10 = var8; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] -= var1[var2++];
            var10001 = var3++;
            var0[var10001] -= var1[var2++];
            var10001 = var3++;
            var0[var10001] -= var1[var2++];
            var10001 = var3++;
            var0[var10001] -= var1[var2++];
         }

         for(var10 = var4; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] -= var1[var2++];
         }

         var3 += var6;
         var2 += var7;
      }

   }

   void method6285(Class68 var1, int var2, int var3, int var4, boolean[][] var5, boolean var6) {
      this.aClass545_Sub2_4383.RA(false);
      float var7 = 1.0F / (float)(this.aClass545_Sub2_4383.anInt9710 * 128);
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      if(var6) {
         for(int var8 = 0; var8 < this.anInt4382; ++var8) {
            int var9 = var8 << this.anInt4376;
            var10 = var8 + 1 << this.anInt4376;

            label129:
            for(var11 = 0; var11 < this.anInt4381; ++var11) {
               if(this.aClass59ArrayArray4384[var11][var8] != null) {
                  var12 = var11 << this.anInt4376;
                  var13 = var11 + 1 << this.anInt4376;

                  for(var14 = var12; var14 < var13; ++var14) {
                     if(var14 - var2 >= -var4 && var14 - var2 <= var4) {
                        for(var15 = var9; var15 < var10; ++var15) {
                           if(var15 - var3 >= -var4 && var15 - var3 <= var4 && var5[var14 - var2 + var4][var15 - var3 + var4]) {
                              var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                              var1.aClass317_654.aFloatArray4000[12] = (float)(-var11);
                              var1.aClass317_654.aFloatArray4000[13] = (float)(-var8);
                              this.aClass59ArrayArray4384[var11][var8].method1282(var1);
                              continue label129;
                           }
                        }
                     }
                  }
               }
            }
         }
      } else {
         int[] var24 = new int[this.anInt4382 * this.anInt4381];
         ByteBuffer var25 = this.aClass545_Sub2_4383.aByteBuffer9763;
         var25.clear();
         var10 = 0;

         for(var11 = 0; var11 < this.anInt4382; ++var11) {
            var12 = var11 << this.anInt4376;
            var13 = var11 + 1 << this.anInt4376;

            for(var14 = 0; var14 < this.anInt4381; ++var14) {
               Class59 var27 = this.aClass59ArrayArray4384[var14][var11];
               int var16 = 0;
               if(var27 != null) {
                  int var17 = var14 << this.anInt4376;
                  int var18 = var14 + 1 << this.anInt4376;

                  for(int var19 = var12; var19 < var13; ++var19) {
                     if(var19 - var3 >= -var4 && var19 - var3 <= var4) {
                        int var20 = var19 * this.aClass400_Sub2_4379.anInt4911 * 1724373523 + var17;

                        for(int var21 = var17; var21 < var18; ++var21) {
                           if(var21 - var2 >= -var4 && var21 - var2 <= var4 && var5[var21 - var2 + var4][var19 - var3 + var4]) {
                              short[] var22 = this.aClass400_Sub2_4379.aShortArrayArray9431[var20];
                              if(var22 != null) {
                                 for(int var23 = 0; var23 < var22.length; ++var23) {
                                    var25.putShort(var22[var23]);
                                    ++var16;
                                 }
                              }
                           }

                           ++var20;
                        }
                     }
                  }
               }

               var24[var10] = var16;
               ++var10;
            }
         }

         if(var25.position() != 0) {
            var11 = var25.position();
            Interface40 var26 = this.aClass545_Sub2_4383.method14992(var11 / 2);
            var26.method217(0, var11, this.aClass545_Sub2_4383.aLong9730);
            var13 = 0;
            var10 = 0;

            for(var14 = 0; var14 < this.anInt4382; ++var14) {
               for(var15 = 0; var15 < this.anInt4381; ++var15) {
                  if(var24[var10] != 0) {
                     var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                     var1.aClass317_654.aFloatArray4000[12] = (float)(-var15);
                     var1.aClass317_654.aFloatArray4000[13] = (float)(-var14);
                     this.aClass59ArrayArray4384[var15][var14].method1283(var1, var26, var13, var24[var10] / 3);
                     var13 += var24[var10];
                  }

                  ++var10;
               }
            }
         }
      }

      this.aClass545_Sub2_4383.RA(true);
   }

   void method6286(Class68 var1, int var2, int var3, int var4, boolean[][] var5, boolean var6) {
      this.aClass545_Sub2_4383.RA(false);
      float var7 = 1.0F / (float)(this.aClass545_Sub2_4383.anInt9710 * 128);
      int var10;
      int var11;
      int var12;
      int var13;
      int var14;
      int var15;
      if(var6) {
         for(int var8 = 0; var8 < this.anInt4382; ++var8) {
            int var9 = var8 << this.anInt4376;
            var10 = var8 + 1 << this.anInt4376;

            label129:
            for(var11 = 0; var11 < this.anInt4381; ++var11) {
               if(this.aClass59ArrayArray4384[var11][var8] != null) {
                  var12 = var11 << this.anInt4376;
                  var13 = var11 + 1 << this.anInt4376;

                  for(var14 = var12; var14 < var13; ++var14) {
                     if(var14 - var2 >= -var4 && var14 - var2 <= var4) {
                        for(var15 = var9; var15 < var10; ++var15) {
                           if(var15 - var3 >= -var4 && var15 - var3 <= var4 && var5[var14 - var2 + var4][var15 - var3 + var4]) {
                              var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                              var1.aClass317_654.aFloatArray4000[12] = (float)(-var11);
                              var1.aClass317_654.aFloatArray4000[13] = (float)(-var8);
                              this.aClass59ArrayArray4384[var11][var8].method1282(var1);
                              continue label129;
                           }
                        }
                     }
                  }
               }
            }
         }
      } else {
         int[] var24 = new int[this.anInt4382 * this.anInt4381];
         ByteBuffer var25 = this.aClass545_Sub2_4383.aByteBuffer9763;
         var25.clear();
         var10 = 0;

         for(var11 = 0; var11 < this.anInt4382; ++var11) {
            var12 = var11 << this.anInt4376;
            var13 = var11 + 1 << this.anInt4376;

            for(var14 = 0; var14 < this.anInt4381; ++var14) {
               Class59 var27 = this.aClass59ArrayArray4384[var14][var11];
               int var16 = 0;
               if(var27 != null) {
                  int var17 = var14 << this.anInt4376;
                  int var18 = var14 + 1 << this.anInt4376;

                  for(int var19 = var12; var19 < var13; ++var19) {
                     if(var19 - var3 >= -var4 && var19 - var3 <= var4) {
                        int var20 = var19 * this.aClass400_Sub2_4379.anInt4911 * 1724373523 + var17;

                        for(int var21 = var17; var21 < var18; ++var21) {
                           if(var21 - var2 >= -var4 && var21 - var2 <= var4 && var5[var21 - var2 + var4][var19 - var3 + var4]) {
                              short[] var22 = this.aClass400_Sub2_4379.aShortArrayArray9431[var20];
                              if(var22 != null) {
                                 for(int var23 = 0; var23 < var22.length; ++var23) {
                                    var25.putShort(var22[var23]);
                                    ++var16;
                                 }
                              }
                           }

                           ++var20;
                        }
                     }
                  }
               }

               var24[var10] = var16;
               ++var10;
            }
         }

         if(var25.position() != 0) {
            var11 = var25.position();
            Interface40 var26 = this.aClass545_Sub2_4383.method14992(var11 / 2);
            var26.method217(0, var11, this.aClass545_Sub2_4383.aLong9730);
            var13 = 0;
            var10 = 0;

            for(var14 = 0; var14 < this.anInt4382; ++var14) {
               for(var15 = 0; var15 < this.anInt4381; ++var15) {
                  if(var24[var10] != 0) {
                     var1.aClass317_654.method5616(var7, var7, 1.0F, 1.0F);
                     var1.aClass317_654.aFloatArray4000[12] = (float)(-var15);
                     var1.aClass317_654.aFloatArray4000[13] = (float)(-var14);
                     this.aClass59ArrayArray4384[var15][var14].method1283(var1, var26, var13, var24[var10] / 3);
                     var13 += var24[var10];
                  }

                  ++var10;
               }
            }
         }
      }

      this.aClass545_Sub2_4383.RA(true);
   }

   boolean method6287(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = var4.anInt10643;
      int var7 = var4.anInt10642;
      int var8 = this.anInt4378 - var7;
      int var9;
      if(var3 <= 0) {
         var9 = 1 - var3;
         var6 -= var9;
         var5 += var9 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var6 >= this.anInt4377) {
         var9 = var3 + var6 + 1 - this.anInt4377;
         var6 -= var9;
      }

      if(var2 <= 0) {
         var9 = 1 - var2;
         var7 -= var9;
         var5 += var9;
         var8 += var9;
         var2 = 1;
      }

      if(var2 + var7 >= this.anInt4378) {
         var9 = var2 + var7 + 1 - this.anInt4378;
         var7 -= var9;
         var8 += var9;
      }

      if(var7 > 0 && var6 > 0) {
         byte var10 = 8;
         var8 += (var10 - 1) * this.anInt4378;
         return method6293(this.aByteArray4380, var5, var7, var6, var8, var10);
      } else {
         return false;
      }
   }

   void method6288(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6292(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   void method6289(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6292(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   static final boolean method6290(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
      int var6 = var2 % var5;
      int var7;
      if(var6 != 0) {
         var7 = var5 - var6;
      } else {
         var7 = 0;
      }

      int var8 = -((var3 + var5 - 1) / var5);
      int var9 = -((var2 + var5 - 1) / var5);

      for(int var10 = var8; var10 < 0; ++var10) {
         for(int var11 = var9; var11 < 0; ++var11) {
            if(var0[var1] == 0) {
               return true;
            }

            var1 += var5;
         }

         var1 -= var7;
         if(var0[var1 - 1] == 0) {
            return true;
         }

         var1 += var4;
      }

      return false;
   }

   void method6291(Class225_Sub14_Sub16 var1, int var2, int var3) {
      Class225_Sub14_Sub16_Sub1 var4 = (Class225_Sub14_Sub16_Sub1)var1;
      var2 += var4.anInt10644 + 1;
      var3 += var4.anInt10645 + 1;
      int var5 = var2 + var3 * this.anInt4378;
      int var6 = 0;
      int var7 = var4.anInt10643;
      int var8 = var4.anInt10642;
      int var9 = this.anInt4378 - var8;
      int var10 = 0;
      int var11;
      if(var3 <= 0) {
         var11 = 1 - var3;
         var7 -= var11;
         var6 += var11 * var8;
         var5 += var11 * this.anInt4378;
         var3 = 1;
      }

      if(var3 + var7 >= this.anInt4377) {
         var11 = var3 + var7 + 1 - this.anInt4377;
         var7 -= var11;
      }

      if(var2 <= 0) {
         var11 = 1 - var2;
         var8 -= var11;
         var6 += var11;
         var5 += var11;
         var10 += var11;
         var9 += var11;
         var2 = 1;
      }

      if(var2 + var8 >= this.anInt4378) {
         var11 = var2 + var8 + 1 - this.anInt4378;
         var8 -= var11;
         var10 += var11;
         var9 += var11;
      }

      if(var8 > 0 && var7 > 0) {
         method6284(this.aByteArray4380, var4.aByteArray10641, var6, var5, var8, var7, var9, var10);
         this.method6280(var2, var3, var8, var7);
      }
   }

   static final void method6292(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7) {
      int var8 = -(var4 >> 2);
      var4 = -(var4 & 3);

      for(int var9 = -var5; var9 < 0; ++var9) {
         int var10;
         int var10001;
         for(var10 = var8; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
         }

         for(var10 = var4; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] += var1[var2++];
         }

         var3 += var6;
         var2 += var7;
      }

   }

   static final boolean method6293(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
      int var6 = var2 % var5;
      int var7;
      if(var6 != 0) {
         var7 = var5 - var6;
      } else {
         var7 = 0;
      }

      int var8 = -((var3 + var5 - 1) / var5);
      int var9 = -((var2 + var5 - 1) / var5);

      for(int var10 = var8; var10 < 0; ++var10) {
         for(int var11 = var9; var11 < 0; ++var11) {
            if(var0[var1] == 0) {
               return true;
            }

            var1 += var5;
         }

         var1 -= var7;
         if(var0[var1 - 1] == 0) {
            return true;
         }

         var1 += var4;
      }

      return false;
   }

   void method6294(int var1, int var2, int var3, int var4) {
      if(this.aClass59ArrayArray4384 != null) {
         int var5 = var1 - 1 >> 7;
         int var6 = var1 - 1 + var3 - 1 >> 7;
         int var7 = var2 - 1 >> 7;
         int var8 = var2 - 1 + var4 - 1 >> 7;

         for(int var9 = var5; var9 <= var6; ++var9) {
            Class59[] var10 = this.aClass59ArrayArray4384[var9];

            for(int var11 = var7; var11 <= var8; ++var11) {
               if(var10[var11] != null) {
                  var10[var11].aBool547 = true;
               }
            }
         }

      }
   }

   void method6295(int var1, int var2, int var3, int var4) {
      if(this.aClass59ArrayArray4384 != null) {
         int var5 = var1 - 1 >> 7;
         int var6 = var1 - 1 + var3 - 1 >> 7;
         int var7 = var2 - 1 >> 7;
         int var8 = var2 - 1 + var4 - 1 >> 7;

         for(int var9 = var5; var9 <= var6; ++var9) {
            Class59[] var10 = this.aClass59ArrayArray4384[var9];

            for(int var11 = var7; var11 <= var8; ++var11) {
               if(var10[var11] != null) {
                  var10[var11].aBool547 = true;
               }
            }
         }

      }
   }

   static final void method6296(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7) {
      int var8 = -(var4 >> 2);
      var4 = -(var4 & 3);

      for(int var9 = -var5; var9 < 0; ++var9) {
         int var10;
         int var10001;
         for(var10 = var8; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
            var10001 = var3++;
            var0[var10001] += var1[var2++];
         }

         for(var10 = var4; var10 < 0; ++var10) {
            var10001 = var3++;
            var0[var10001] += var1[var2++];
         }

         var3 += var6;
         var2 += var7;
      }

   }

   Class343(Class545_Sub2 var1, Class400_Sub2 var2) {
      this.aClass545_Sub2_4383 = var1;
      this.aClass400_Sub2_4379 = var2;
      this.anInt4378 = 2 + (this.aClass400_Sub2_4379.anInt4911 * 1724373523 * this.aClass400_Sub2_4379.anInt4910 * 2111724147 >> this.aClass545_Sub2_4383.anInt9711);
      this.anInt4377 = 2 + (this.aClass400_Sub2_4379.anInt4908 * 1696648095 * this.aClass400_Sub2_4379.anInt4910 * 2111724147 >> this.aClass545_Sub2_4383.anInt9711);
      this.aByteArray4380 = new byte[this.anInt4378 * this.anInt4377];
      this.anInt4376 = 7 + this.aClass545_Sub2_4383.anInt9711 - this.aClass400_Sub2_4379.anInt4909 * -1451148795;
      this.anInt4381 = this.aClass400_Sub2_4379.anInt4911 * 1724373523 >> this.anInt4376;
      this.anInt4382 = this.aClass400_Sub2_4379.anInt4908 * 1696648095 >> this.anInt4376;
   }

   static final boolean method6297(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
      int var6 = var2 % var5;
      int var7;
      if(var6 != 0) {
         var7 = var5 - var6;
      } else {
         var7 = 0;
      }

      int var8 = -((var3 + var5 - 1) / var5);
      int var9 = -((var2 + var5 - 1) / var5);

      for(int var10 = var8; var10 < 0; ++var10) {
         for(int var11 = var9; var11 < 0; ++var11) {
            if(var0[var1] == 0) {
               return true;
            }

            var1 += var5;
         }

         var1 -= var7;
         if(var0[var1 - 1] == 0) {
            return true;
         }

         var1 += var4;
      }

      return false;
   }

   static final boolean method6298(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
      int var6 = var2 % var5;
      int var7;
      if(var6 != 0) {
         var7 = var5 - var6;
      } else {
         var7 = 0;
      }

      int var8 = -((var3 + var5 - 1) / var5);
      int var9 = -((var2 + var5 - 1) / var5);

      for(int var10 = var8; var10 < 0; ++var10) {
         for(int var11 = var9; var11 < 0; ++var11) {
            if(var0[var1] == 0) {
               return true;
            }

            var1 += var5;
         }

         var1 -= var7;
         if(var0[var1 - 1] == 0) {
            return true;
         }

         var1 += var4;
      }

      return false;
   }
}
