
public class Class8_Sub1 extends Class8 {

   byte[][] aByteArrayArray9011;
   Class545_Sub3 aClass545_Sub3_9012;
   int[] anIntArray9013;
   int[] anIntArray9014;
   int[] anIntArray9015;
   int[] anIntArray9016;


   void method14478(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = var3 >>> 24;
      int var11 = 255 - var10;

      for(int var12 = -var7; var12 < 0; ++var12) {
         for(int var13 = -var6; var13 < 0; ++var13) {
            if(var1[var4++] != 0) {
               int var14 = ((var3 & '\uff00') * var10 & 16711680) + ((var3 & 16711935) * var10 & -16711936) >> 8;
               int var15 = var2[var5];
               var2[var5++] = var14 + (((var15 & '\uff00') * var11 & 16711680) + (var11 * (var15 & 16711935) & -16711936) >> 8);
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   void UA(char var1, int var2, int var3, int var4, boolean var5) {
      if(null != this.aClass545_Sub3_9012.anIntArray9788) {
         var2 += this.anIntArray9016[var1];
         var3 += this.anIntArray9015[var1];
         int var6 = this.anIntArray9013[var1];
         int var7 = this.anIntArray9014[var1];
         int var8 = this.aClass545_Sub3_9012.anInt9789 * 1251184143;
         int var9 = var3 * var8 + var2;
         int var10 = var8 - var6;
         int var11 = 0;
         int var12 = 0;
         int var13;
         if(var3 < this.aClass545_Sub3_9012.anInt9800 * 493658681) {
            var13 = this.aClass545_Sub3_9012.anInt9800 * 493658681 - var3;
            var7 -= var13;
            var3 = this.aClass545_Sub3_9012.anInt9800 * 493658681;
            var12 += var13 * var6;
            var9 += var13 * var8;
         }

         if(var3 + var7 > -1644767141 * this.aClass545_Sub3_9012.anInt9795) {
            var7 -= var3 + var7 - -1644767141 * this.aClass545_Sub3_9012.anInt9795;
         }

         if(var2 < -399365585 * this.aClass545_Sub3_9012.anInt9785) {
            var13 = this.aClass545_Sub3_9012.anInt9785 * -399365585 - var2;
            var6 -= var13;
            var2 = -399365585 * this.aClass545_Sub3_9012.anInt9785;
            var12 += var13;
            var9 += var13;
            var11 += var13;
            var10 += var13;
         }

         if(var2 + var6 > this.aClass545_Sub3_9012.anInt9797 * -2090820537) {
            var13 = var2 + var6 - this.aClass545_Sub3_9012.anInt9797 * -2090820537;
            var6 -= var13;
            var11 += var13;
            var10 += var13;
         }

         if(var6 > 0 && var7 > 0) {
            if(-16777216 == (var4 & -16777216)) {
               this.method14479(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            } else if(0 != (var4 & -16777216)) {
               this.method14478(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            }

         }
      }
   }

   void method14479(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = -(var6 >> 2);
      var6 = -(var6 & 3);

      for(int var11 = -var7; var11 < 0; ++var11) {
         int var12;
         for(var12 = var10; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         for(var12 = var6; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   Class8_Sub1(Class545_Sub3 var1, Class405 var2, Class86_Sub1[] var3, int[] var4, int[] var5) {
      super(var1, var2);
      this.aClass545_Sub3_9012 = var1;
      this.anIntArray9013 = var4;
      this.anIntArray9014 = var5;
      this.aByteArrayArray9011 = new byte[var3.length][];
      this.anIntArray9015 = new int[var3.length];
      this.anIntArray9016 = new int[var3.length];

      for(int var6 = 0; var6 < var3.length; ++var6) {
         this.aByteArrayArray9011[var6] = var3[var6].aByteArray9472;
         this.anIntArray9015[var6] = var3[var6].anInt9469;
         this.anIntArray9016[var6] = var3[var6].anInt9467;
      }

   }

   void method620(char var1, int var2, int var3, int var4, boolean var5, Class496 var6, int var7, int var8) {
      if(this.aClass545_Sub3_9012.anIntArray9788 != null) {
         if(null == var6) {
            this.UA(var1, var2, var3, var4, var5);
         } else {
            var2 += this.anIntArray9016[var1];
            var3 += this.anIntArray9015[var1];
            int var9 = this.anIntArray9013[var1];
            int var10 = this.anIntArray9014[var1];
            int var11 = this.aClass545_Sub3_9012.anInt9789 * 1251184143;
            int var12 = var3 * var11 + var2;
            int var13 = var11 - var9;
            int var14 = 0;
            int var15 = 0;
            int var16;
            if(var3 < this.aClass545_Sub3_9012.anInt9800 * 493658681) {
               var16 = 493658681 * this.aClass545_Sub3_9012.anInt9800 - var3;
               var10 -= var16;
               var3 = 493658681 * this.aClass545_Sub3_9012.anInt9800;
               var15 += var9 * var16;
               var12 += var11 * var16;
            }

            if(var10 + var3 > -1644767141 * this.aClass545_Sub3_9012.anInt9795) {
               var10 -= var10 + var3 - this.aClass545_Sub3_9012.anInt9795 * -1644767141;
            }

            if(var2 < this.aClass545_Sub3_9012.anInt9785 * -399365585) {
               var16 = this.aClass545_Sub3_9012.anInt9785 * -399365585 - var2;
               var9 -= var16;
               var2 = this.aClass545_Sub3_9012.anInt9785 * -399365585;
               var15 += var16;
               var12 += var16;
               var14 += var16;
               var13 += var16;
            }

            if(var2 + var9 > this.aClass545_Sub3_9012.anInt9797 * -2090820537) {
               var16 = var9 + var2 - -2090820537 * this.aClass545_Sub3_9012.anInt9797;
               var9 -= var16;
               var14 += var16;
               var13 += var16;
            }

            if(var9 > 0 && var10 > 0) {
               if(-16777216 == (var4 & -16777216)) {
                  this.method14480(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var15, var12, var9, var10, var13, var14, var2, var3, this.anIntArray9013[var1], var6, var7, var8);
               } else {
                  this.method14486(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var15, var12, var9, var10, var13, var14, var2, var3, this.anIntArray9013[var1], var6, var7, var8);
               }

            }
         }
      }
   }

   void method14480(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var11;
      if(var15 > var11) {
         var19 = var15;
         var5 += (var15 - var11) * 1251184143 * this.aClass545_Sub3_9012.anInt9789;
         var4 += (var15 - var11) * var12;
      }

      int var20 = var17.length + var15 < var7 + var11?var17.length + var15:var11 + var7;

      for(int var21 = var19; var21 < var20; ++var21) {
         int var22 = var17[var21 - var15] + var14;
         int var23 = var18[var21 - var15];
         int var24 = var6;
         int var25;
         if(var10 > var22) {
            var25 = var10 - var22;
            if(var25 >= var23) {
               var4 += var9 + var6;
               var5 += var8 + var6;
               continue;
            }

            var23 -= var25;
         } else {
            var25 = var22 - var10;
            if(var25 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var25;
            var24 = var6 - var25;
            var5 += var25;
         }

         var25 = 0;
         if(var24 < var23) {
            var23 = var24;
         } else {
            var25 = var24 - var23;
         }

         for(int var26 = 0; var26 < var23; ++var26) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var4 += var9 + var25;
         var5 += var25 + var8;
      }

   }

   void method14481(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = var3 >>> 24;
      int var11 = 255 - var10;

      for(int var12 = -var7; var12 < 0; ++var12) {
         for(int var13 = -var6; var13 < 0; ++var13) {
            if(var1[var4++] != 0) {
               int var14 = ((var3 & '\uff00') * var10 & 16711680) + ((var3 & 16711935) * var10 & -16711936) >> 8;
               int var15 = var2[var5];
               var2[var5++] = var14 + (((var15 & '\uff00') * var11 & 16711680) + (var11 * (var15 & 16711935) & -16711936) >> 8);
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   void w(char var1, int var2, int var3, int var4, boolean var5) {
      if(null != this.aClass545_Sub3_9012.anIntArray9788) {
         var2 += this.anIntArray9016[var1];
         var3 += this.anIntArray9015[var1];
         int var6 = this.anIntArray9013[var1];
         int var7 = this.anIntArray9014[var1];
         int var8 = this.aClass545_Sub3_9012.anInt9789 * 1251184143;
         int var9 = var3 * var8 + var2;
         int var10 = var8 - var6;
         int var11 = 0;
         int var12 = 0;
         int var13;
         if(var3 < this.aClass545_Sub3_9012.anInt9800 * 493658681) {
            var13 = this.aClass545_Sub3_9012.anInt9800 * 493658681 - var3;
            var7 -= var13;
            var3 = this.aClass545_Sub3_9012.anInt9800 * 493658681;
            var12 += var13 * var6;
            var9 += var13 * var8;
         }

         if(var3 + var7 > -1644767141 * this.aClass545_Sub3_9012.anInt9795) {
            var7 -= var3 + var7 - -1644767141 * this.aClass545_Sub3_9012.anInt9795;
         }

         if(var2 < -399365585 * this.aClass545_Sub3_9012.anInt9785) {
            var13 = this.aClass545_Sub3_9012.anInt9785 * -399365585 - var2;
            var6 -= var13;
            var2 = -399365585 * this.aClass545_Sub3_9012.anInt9785;
            var12 += var13;
            var9 += var13;
            var11 += var13;
            var10 += var13;
         }

         if(var2 + var6 > this.aClass545_Sub3_9012.anInt9797 * -2090820537) {
            var13 = var2 + var6 - this.aClass545_Sub3_9012.anInt9797 * -2090820537;
            var6 -= var13;
            var11 += var13;
            var10 += var13;
         }

         if(var6 > 0 && var7 > 0) {
            if(-16777216 == (var4 & -16777216)) {
               this.method14479(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            } else if(0 != (var4 & -16777216)) {
               this.method14478(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            }

         }
      }
   }

   void k(char var1, int var2, int var3, int var4, boolean var5) {
      if(null != this.aClass545_Sub3_9012.anIntArray9788) {
         var2 += this.anIntArray9016[var1];
         var3 += this.anIntArray9015[var1];
         int var6 = this.anIntArray9013[var1];
         int var7 = this.anIntArray9014[var1];
         int var8 = this.aClass545_Sub3_9012.anInt9789 * 1251184143;
         int var9 = var3 * var8 + var2;
         int var10 = var8 - var6;
         int var11 = 0;
         int var12 = 0;
         int var13;
         if(var3 < this.aClass545_Sub3_9012.anInt9800 * 493658681) {
            var13 = this.aClass545_Sub3_9012.anInt9800 * 493658681 - var3;
            var7 -= var13;
            var3 = this.aClass545_Sub3_9012.anInt9800 * 493658681;
            var12 += var13 * var6;
            var9 += var13 * var8;
         }

         if(var3 + var7 > -1644767141 * this.aClass545_Sub3_9012.anInt9795) {
            var7 -= var3 + var7 - -1644767141 * this.aClass545_Sub3_9012.anInt9795;
         }

         if(var2 < -399365585 * this.aClass545_Sub3_9012.anInt9785) {
            var13 = this.aClass545_Sub3_9012.anInt9785 * -399365585 - var2;
            var6 -= var13;
            var2 = -399365585 * this.aClass545_Sub3_9012.anInt9785;
            var12 += var13;
            var9 += var13;
            var11 += var13;
            var10 += var13;
         }

         if(var2 + var6 > this.aClass545_Sub3_9012.anInt9797 * -2090820537) {
            var13 = var2 + var6 - this.aClass545_Sub3_9012.anInt9797 * -2090820537;
            var6 -= var13;
            var11 += var13;
            var10 += var13;
         }

         if(var6 > 0 && var7 > 0) {
            if(-16777216 == (var4 & -16777216)) {
               this.method14479(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            } else if(0 != (var4 & -16777216)) {
               this.method14478(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var12, var9, var6, var7, var10, var11);
            }

         }
      }
   }

   void method14482(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var11;
      if(var15 > var11) {
         var19 = var15;
         var5 += (var15 - var11) * 1251184143 * this.aClass545_Sub3_9012.anInt9789;
         var4 += (var15 - var11) * var12;
      }

      int var20 = var17.length + var15 < var7 + var11?var17.length + var15:var11 + var7;

      for(int var21 = var19; var21 < var20; ++var21) {
         int var22 = var17[var21 - var15] + var14;
         int var23 = var18[var21 - var15];
         int var24 = var6;
         int var25;
         if(var10 > var22) {
            var25 = var10 - var22;
            if(var25 >= var23) {
               var4 += var9 + var6;
               var5 += var8 + var6;
               continue;
            }

            var23 -= var25;
         } else {
            var25 = var22 - var10;
            if(var25 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var25;
            var24 = var6 - var25;
            var5 += var25;
         }

         var25 = 0;
         if(var24 < var23) {
            var23 = var24;
         } else {
            var25 = var24 - var23;
         }

         for(int var26 = 0; var26 < var23; ++var26) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var4 += var9 + var25;
         var5 += var25 + var8;
      }

   }

   void method14483(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = -(var6 >> 2);
      var6 = -(var6 & 3);

      for(int var11 = -var7; var11 < 0; ++var11) {
         int var12;
         for(var12 = var10; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         for(var12 = var6; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   void method14484(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var10 - this.aClass545_Sub3_9012.anInt9785 * -399365585;
      int var20 = var11;
      if(var15 > var11) {
         var20 = var15;
         var5 += 1251184143 * this.aClass545_Sub3_9012.anInt9789 * (var15 - var11);
         var4 += (var15 - var11) * var12;
      }

      int var21 = var15 + var17.length < var11 + var7?var17.length + var15:var11 + var7;
      int var22 = var3 >>> 24;
      int var23 = 255 - var22;

      for(int var24 = var20; var24 < var21; ++var24) {
         int var25 = var17[var24 - var15] + var14;
         int var26 = var18[var24 - var15];
         int var27 = var6;
         int var28;
         if(var19 > var25) {
            var28 = var19 - var25;
            if(var28 >= var26) {
               var4 += var6 + var9;
               var5 += var6 + var8;
               continue;
            }

            var26 -= var28;
         } else {
            var28 = var25 - var19;
            if(var28 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var28;
            var27 = var6 - var28;
            var5 += var28;
         }

         var28 = 0;
         if(var27 < var26) {
            var26 = var27;
         } else {
            var28 = var27 - var26;
         }

         for(int var29 = -var26; var29 < 0; ++var29) {
            if(var1[var4++] != 0) {
               int var30 = ((var3 & '\uff00') * var22 & 16711680) + (var22 * (var3 & 16711935) & -16711936) >> 8;
               int var31 = var2[var5];
               var2[var5++] = ((var23 * (var31 & '\uff00') & 16711680) + ((var31 & 16711935) * var23 & -16711936) >> 8) + var30;
            } else {
               ++var5;
            }
         }

         var4 += var28 + var9;
         var5 += var8 + var28;
      }

   }

   void method14485(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = -(var6 >> 2);
      var6 = -(var6 & 3);

      for(int var11 = -var7; var11 < 0; ++var11) {
         int var12;
         for(var12 = var10; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         for(var12 = var6; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   void method14486(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var10 - this.aClass545_Sub3_9012.anInt9785 * -399365585;
      int var20 = var11;
      if(var15 > var11) {
         var20 = var15;
         var5 += 1251184143 * this.aClass545_Sub3_9012.anInt9789 * (var15 - var11);
         var4 += (var15 - var11) * var12;
      }

      int var21 = var15 + var17.length < var11 + var7?var17.length + var15:var11 + var7;
      int var22 = var3 >>> 24;
      int var23 = 255 - var22;

      for(int var24 = var20; var24 < var21; ++var24) {
         int var25 = var17[var24 - var15] + var14;
         int var26 = var18[var24 - var15];
         int var27 = var6;
         int var28;
         if(var19 > var25) {
            var28 = var19 - var25;
            if(var28 >= var26) {
               var4 += var6 + var9;
               var5 += var6 + var8;
               continue;
            }

            var26 -= var28;
         } else {
            var28 = var25 - var19;
            if(var28 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var28;
            var27 = var6 - var28;
            var5 += var28;
         }

         var28 = 0;
         if(var27 < var26) {
            var26 = var27;
         } else {
            var28 = var27 - var26;
         }

         for(int var29 = -var26; var29 < 0; ++var29) {
            if(var1[var4++] != 0) {
               int var30 = ((var3 & '\uff00') * var22 & 16711680) + (var22 * (var3 & 16711935) & -16711936) >> 8;
               int var31 = var2[var5];
               var2[var5++] = ((var23 * (var31 & '\uff00') & 16711680) + ((var31 & 16711935) * var23 & -16711936) >> 8) + var30;
            } else {
               ++var5;
            }
         }

         var4 += var28 + var9;
         var5 += var8 + var28;
      }

   }

   void method14487(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var11;
      if(var15 > var11) {
         var19 = var15;
         var5 += (var15 - var11) * 1251184143 * this.aClass545_Sub3_9012.anInt9789;
         var4 += (var15 - var11) * var12;
      }

      int var20 = var17.length + var15 < var7 + var11?var17.length + var15:var11 + var7;

      for(int var21 = var19; var21 < var20; ++var21) {
         int var22 = var17[var21 - var15] + var14;
         int var23 = var18[var21 - var15];
         int var24 = var6;
         int var25;
         if(var10 > var22) {
            var25 = var10 - var22;
            if(var25 >= var23) {
               var4 += var9 + var6;
               var5 += var8 + var6;
               continue;
            }

            var23 -= var25;
         } else {
            var25 = var22 - var10;
            if(var25 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var25;
            var24 = var6 - var25;
            var5 += var25;
         }

         var25 = 0;
         if(var24 < var23) {
            var23 = var24;
         } else {
            var25 = var24 - var23;
         }

         for(int var26 = 0; var26 < var23; ++var26) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var4 += var9 + var25;
         var5 += var25 + var8;
      }

   }

   void method14488(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var11;
      if(var15 > var11) {
         var19 = var15;
         var5 += (var15 - var11) * 1251184143 * this.aClass545_Sub3_9012.anInt9789;
         var4 += (var15 - var11) * var12;
      }

      int var20 = var17.length + var15 < var7 + var11?var17.length + var15:var11 + var7;

      for(int var21 = var19; var21 < var20; ++var21) {
         int var22 = var17[var21 - var15] + var14;
         int var23 = var18[var21 - var15];
         int var24 = var6;
         int var25;
         if(var10 > var22) {
            var25 = var10 - var22;
            if(var25 >= var23) {
               var4 += var9 + var6;
               var5 += var8 + var6;
               continue;
            }

            var23 -= var25;
         } else {
            var25 = var22 - var10;
            if(var25 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var25;
            var24 = var6 - var25;
            var5 += var25;
         }

         var25 = 0;
         if(var24 < var23) {
            var23 = var24;
         } else {
            var25 = var24 - var23;
         }

         for(int var26 = 0; var26 < var23; ++var26) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var4 += var9 + var25;
         var5 += var25 + var8;
      }

   }

   void method14489(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
      int var10 = -(var6 >> 2);
      var6 = -(var6 & 3);

      for(int var11 = -var7; var11 < 0; ++var11) {
         int var12;
         for(var12 = var10; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }

            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         for(var12 = var6; var12 < 0; ++var12) {
            if(var1[var4++] != 0) {
               var2[var5++] = var3;
            } else {
               ++var5;
            }
         }

         var5 += var8;
         var4 += var9;
      }

   }

   void method14490(byte[] var1, int[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, Class496 var13, int var14, int var15) {
      Class496_Sub2 var16 = (Class496_Sub2)var13;
      int[] var17 = var16.anIntArray9835;
      int[] var18 = var16.anIntArray9836;
      int var19 = var10 - this.aClass545_Sub3_9012.anInt9785 * -399365585;
      int var20 = var11;
      if(var15 > var11) {
         var20 = var15;
         var5 += 1251184143 * this.aClass545_Sub3_9012.anInt9789 * (var15 - var11);
         var4 += (var15 - var11) * var12;
      }

      int var21 = var15 + var17.length < var11 + var7?var17.length + var15:var11 + var7;
      int var22 = var3 >>> 24;
      int var23 = 255 - var22;

      for(int var24 = var20; var24 < var21; ++var24) {
         int var25 = var17[var24 - var15] + var14;
         int var26 = var18[var24 - var15];
         int var27 = var6;
         int var28;
         if(var19 > var25) {
            var28 = var19 - var25;
            if(var28 >= var26) {
               var4 += var6 + var9;
               var5 += var6 + var8;
               continue;
            }

            var26 -= var28;
         } else {
            var28 = var25 - var19;
            if(var28 >= var6) {
               var4 += var9 + var6;
               var5 += var6 + var8;
               continue;
            }

            var4 += var28;
            var27 = var6 - var28;
            var5 += var28;
         }

         var28 = 0;
         if(var27 < var26) {
            var26 = var27;
         } else {
            var28 = var27 - var26;
         }

         for(int var29 = -var26; var29 < 0; ++var29) {
            if(var1[var4++] != 0) {
               int var30 = ((var3 & '\uff00') * var22 & 16711680) + (var22 * (var3 & 16711935) & -16711936) >> 8;
               int var31 = var2[var5];
               var2[var5++] = ((var23 * (var31 & '\uff00') & 16711680) + ((var31 & 16711935) * var23 & -16711936) >> 8) + var30;
            } else {
               ++var5;
            }
         }

         var4 += var28 + var9;
         var5 += var8 + var28;
      }

   }

   void method629(char var1, int var2, int var3, int var4, boolean var5, Class496 var6, int var7, int var8) {
      if(this.aClass545_Sub3_9012.anIntArray9788 != null) {
         if(null == var6) {
            this.UA(var1, var2, var3, var4, var5);
         } else {
            var2 += this.anIntArray9016[var1];
            var3 += this.anIntArray9015[var1];
            int var9 = this.anIntArray9013[var1];
            int var10 = this.anIntArray9014[var1];
            int var11 = this.aClass545_Sub3_9012.anInt9789 * 1251184143;
            int var12 = var3 * var11 + var2;
            int var13 = var11 - var9;
            int var14 = 0;
            int var15 = 0;
            int var16;
            if(var3 < this.aClass545_Sub3_9012.anInt9800 * 493658681) {
               var16 = 493658681 * this.aClass545_Sub3_9012.anInt9800 - var3;
               var10 -= var16;
               var3 = 493658681 * this.aClass545_Sub3_9012.anInt9800;
               var15 += var9 * var16;
               var12 += var11 * var16;
            }

            if(var10 + var3 > -1644767141 * this.aClass545_Sub3_9012.anInt9795) {
               var10 -= var10 + var3 - this.aClass545_Sub3_9012.anInt9795 * -1644767141;
            }

            if(var2 < this.aClass545_Sub3_9012.anInt9785 * -399365585) {
               var16 = this.aClass545_Sub3_9012.anInt9785 * -399365585 - var2;
               var9 -= var16;
               var2 = this.aClass545_Sub3_9012.anInt9785 * -399365585;
               var15 += var16;
               var12 += var16;
               var14 += var16;
               var13 += var16;
            }

            if(var2 + var9 > this.aClass545_Sub3_9012.anInt9797 * -2090820537) {
               var16 = var9 + var2 - -2090820537 * this.aClass545_Sub3_9012.anInt9797;
               var9 -= var16;
               var14 += var16;
               var13 += var16;
            }

            if(var9 > 0 && var10 > 0) {
               if(-16777216 == (var4 & -16777216)) {
                  this.method14480(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var15, var12, var9, var10, var13, var14, var2, var3, this.anIntArray9013[var1], var6, var7, var8);
               } else {
                  this.method14486(this.aByteArrayArray9011[var1], this.aClass545_Sub3_9012.anIntArray9788, var4, var15, var12, var9, var10, var13, var14, var2, var3, this.anIntArray9013[var1], var6, var7, var8);
               }

            }
         }
      }
   }

   public static void method14491(Class121 var0, Class124 var1, boolean var2, int var3) {
      Class404.method6832(var0.aClass124Array1207, var1, var2, -1814965749);
   }
}
