import java.util.Random;

public abstract class Class378 {

   short[] aShortArray4694 = new short[512];
   static final int anInt4695 = 4096;
   static final int anInt4696 = 4095;
   static final int anInt4697 = 12;
   int anInt4698 = 4;
   short[] aShortArray4699;
   int anInt4700 = 4;
   int anInt4701 = 4;
   int anInt4702 = 0;
   int anInt4703 = 4;
   public static int[] anIntArray4704 = new int[4096];


   void method6557(int var1, int var2, int var3) {
      int[] var4 = new int[var1];
      int[] var5 = new int[var2];
      int[] var6 = new int[var3];

      int var7;
      for(var7 = 0; var7 < var1; ++var7) {
         var4[var7] = (var7 << 12) / var1;
      }

      for(var7 = 0; var7 < var2; ++var7) {
         var5[var7] = (var7 << 12) / var2;
      }

      for(var7 = 0; var7 < var3; ++var7) {
         var6[var7] = (var7 << 12) / var3;
      }

      this.method6559();

      for(int var8 = 0; var8 < var3; ++var8) {
         for(int var9 = 0; var9 < var2; ++var9) {
            for(int var10 = 0; var10 < var1; ++var10) {
               for(int var11 = 0; var11 < this.anInt4703; ++var11) {
                  var7 = this.aShortArray4699[var11] << 12;
                  int var12 = this.anInt4700 * var7 >> 12;
                  int var13 = this.anInt4701 * var7 >> 12;
                  int var14 = this.anInt4698 * var7 >> 12;
                  int var15 = var4[var10] * var7 >> 12;
                  int var16 = var5[var9] * var7 >> 12;
                  int var17 = var6[var8] * var7 >> 12;
                  var15 *= this.anInt4700;
                  var16 *= this.anInt4701;
                  var17 *= this.anInt4698;
                  int var18 = var15 >> 12;
                  int var19 = var18 + 1;
                  var18 &= 255;
                  int var20 = var16 >> 12;
                  int var21 = var20 + 1;
                  var20 &= 255;
                  int var22 = var17 >> 12;
                  int var23 = var22 + 1;
                  var22 &= 255;
                  if(var19 >= var12) {
                     var19 = 0;
                  } else {
                     var19 &= 255;
                  }

                  if(var21 >= var13) {
                     var21 = 0;
                  } else {
                     var21 &= 255;
                  }

                  if(var23 >= var14) {
                     var23 = 0;
                  } else {
                     var23 &= 255;
                  }

                  var15 &= 4095;
                  var16 &= 4095;
                  var17 &= 4095;
                  int var24 = anIntArray4704[var15];
                  int var25 = anIntArray4704[var16];
                  int var26 = anIntArray4704[var17];
                  int var27 = var15 - 4096;
                  int var28 = var16 - 4096;
                  int var29 = var17 - 4096;
                  short var30 = this.aShortArray4694[var22];
                  short var31 = this.aShortArray4694[var23];
                  short var32 = this.aShortArray4694[var20 + var30];
                  short var33 = this.aShortArray4694[var21 + var30];
                  short var34 = this.aShortArray4694[var20 + var31];
                  short var35 = this.aShortArray4694[var21 + var31];
                  int var36 = method6563(this.aShortArray4694[var18 + var32], var15, var16, var17);
                  int var37 = method6563(this.aShortArray4694[var19 + var32], var27, var16, var17);
                  int var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var33], var15, var28, var17);
                  var37 = method6563(this.aShortArray4694[var19 + var33], var27, var28, var17);
                  int var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var40 = var38 + (var25 * (var39 - var38) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var34], var15, var16, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var34], var27, var16, var29);
                  var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var35], var15, var28, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var35], var27, var28, var29);
                  var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var41 = var38 + (var25 * (var39 - var38) >> 12);
                  this.method6561(var11, var40 + (var26 * (var41 - var40) >> 12));
               }

               this.method6560();
            }
         }
      }

   }

   void method6558() {
      this.aShortArray4699 = new short[this.anInt4703];

      for(int var1 = 0; var1 < this.anInt4703; ++var1) {
         this.aShortArray4699[var1] = (short)((int)Math.pow(2.0D, (double)var1));
      }

   }

   abstract void method6559();

   abstract void method6560();

   abstract void method6561(int var1, int var2);

   void method6562() {
      this.aShortArray4699 = new short[this.anInt4703];

      for(int var1 = 0; var1 < this.anInt4703; ++var1) {
         this.aShortArray4699[var1] = (short)((int)Math.pow(2.0D, (double)var1));
      }

   }

   static int method6563(int var0, int var1, int var2, int var3) {
      int var4 = var0 & 15;
      int var5 = var4 < 8?var1:var2;
      int var6 = var4 < 4?var2:(var4 != 12 && var4 != 14?var3:var1);
      return ((var4 & 1) == 0?var5:-var5) + ((var4 & 2) == 0?var6:-var6);
   }

   void method6564() {
      Random var1 = new Random((long)this.anInt4702);

      int var2;
      for(var2 = 0; var2 < 255; ++var2) {
         this.aShortArray4694[var2] = (short)var2;
      }

      for(var2 = 0; var2 < 255; ++var2) {
         int var3 = 255 - var2;
         int var4 = Class300.method5381(var1, var3, (byte)-9);
         short var5 = this.aShortArray4694[var4];
         this.aShortArray4694[var4] = this.aShortArray4694[var3];
         this.aShortArray4694[var3] = this.aShortArray4694[var3 + 256] = var5;
      }

   }

   Class378(int var1, int var2, int var3, int var4, int var5) {
      this.anInt4702 = var1;
      this.anInt4700 = var3;
      this.anInt4701 = var4;
      this.anInt4698 = var5;
      this.anInt4703 = var2;
      this.method6562();
      this.method6564();
   }

   abstract void method6565(int var1, int var2);

   static final int method6566(int var0) {
      int var1 = var0 * (var0 * var0 >> 12) >> 12;
      int var2 = var0 * 6 - '\uf000';
      int var3 = '\ua000' + (var2 * var0 >> 12);
      return var3 * var1 >> 12;
   }

   static {
      for(int var0 = 0; var0 < 4096; ++var0) {
         anIntArray4704[var0] = method6566(var0);
      }

   }

   abstract void method6567();

   abstract void method6568();

   abstract void method6569();

   abstract void method6570();

   void method6571(int var1, int var2, int var3) {
      int[] var4 = new int[var1];
      int[] var5 = new int[var2];
      int[] var6 = new int[var3];

      int var7;
      for(var7 = 0; var7 < var1; ++var7) {
         var4[var7] = (var7 << 12) / var1;
      }

      for(var7 = 0; var7 < var2; ++var7) {
         var5[var7] = (var7 << 12) / var2;
      }

      for(var7 = 0; var7 < var3; ++var7) {
         var6[var7] = (var7 << 12) / var3;
      }

      this.method6559();

      for(int var8 = 0; var8 < var3; ++var8) {
         for(int var9 = 0; var9 < var2; ++var9) {
            for(int var10 = 0; var10 < var1; ++var10) {
               for(int var11 = 0; var11 < this.anInt4703; ++var11) {
                  var7 = this.aShortArray4699[var11] << 12;
                  int var12 = this.anInt4700 * var7 >> 12;
                  int var13 = this.anInt4701 * var7 >> 12;
                  int var14 = this.anInt4698 * var7 >> 12;
                  int var15 = var4[var10] * var7 >> 12;
                  int var16 = var5[var9] * var7 >> 12;
                  int var17 = var6[var8] * var7 >> 12;
                  var15 *= this.anInt4700;
                  var16 *= this.anInt4701;
                  var17 *= this.anInt4698;
                  int var18 = var15 >> 12;
                  int var19 = var18 + 1;
                  var18 &= 255;
                  int var20 = var16 >> 12;
                  int var21 = var20 + 1;
                  var20 &= 255;
                  int var22 = var17 >> 12;
                  int var23 = var22 + 1;
                  var22 &= 255;
                  if(var19 >= var12) {
                     var19 = 0;
                  } else {
                     var19 &= 255;
                  }

                  if(var21 >= var13) {
                     var21 = 0;
                  } else {
                     var21 &= 255;
                  }

                  if(var23 >= var14) {
                     var23 = 0;
                  } else {
                     var23 &= 255;
                  }

                  var15 &= 4095;
                  var16 &= 4095;
                  var17 &= 4095;
                  int var24 = anIntArray4704[var15];
                  int var25 = anIntArray4704[var16];
                  int var26 = anIntArray4704[var17];
                  int var27 = var15 - 4096;
                  int var28 = var16 - 4096;
                  int var29 = var17 - 4096;
                  short var30 = this.aShortArray4694[var22];
                  short var31 = this.aShortArray4694[var23];
                  short var32 = this.aShortArray4694[var20 + var30];
                  short var33 = this.aShortArray4694[var21 + var30];
                  short var34 = this.aShortArray4694[var20 + var31];
                  short var35 = this.aShortArray4694[var21 + var31];
                  int var36 = method6563(this.aShortArray4694[var18 + var32], var15, var16, var17);
                  int var37 = method6563(this.aShortArray4694[var19 + var32], var27, var16, var17);
                  int var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var33], var15, var28, var17);
                  var37 = method6563(this.aShortArray4694[var19 + var33], var27, var28, var17);
                  int var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var40 = var38 + (var25 * (var39 - var38) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var34], var15, var16, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var34], var27, var16, var29);
                  var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var35], var15, var28, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var35], var27, var28, var29);
                  var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var41 = var38 + (var25 * (var39 - var38) >> 12);
                  this.method6561(var11, var40 + (var26 * (var41 - var40) >> 12));
               }

               this.method6560();
            }
         }
      }

   }

   abstract void method6572(int var1, int var2);

   void method6573() {
      this.aShortArray4699 = new short[this.anInt4703];

      for(int var1 = 0; var1 < this.anInt4703; ++var1) {
         this.aShortArray4699[var1] = (short)((int)Math.pow(2.0D, (double)var1));
      }

   }

   static final int method6574(int var0) {
      int var1 = var0 * (var0 * var0 >> 12) >> 12;
      int var2 = var0 * 6 - '\uf000';
      int var3 = '\ua000' + (var2 * var0 >> 12);
      return var3 * var1 >> 12;
   }

   void method6575() {
      this.aShortArray4699 = new short[this.anInt4703];

      for(int var1 = 0; var1 < this.anInt4703; ++var1) {
         this.aShortArray4699[var1] = (short)((int)Math.pow(2.0D, (double)var1));
      }

   }

   static int method6576(int var0, int var1, int var2, int var3) {
      int var4 = var0 & 15;
      int var5 = var4 < 8?var1:var2;
      int var6 = var4 < 4?var2:(var4 != 12 && var4 != 14?var3:var1);
      return ((var4 & 1) == 0?var5:-var5) + ((var4 & 2) == 0?var6:-var6);
   }

   void method6577() {
      Random var1 = new Random((long)this.anInt4702);

      int var2;
      for(var2 = 0; var2 < 255; ++var2) {
         this.aShortArray4694[var2] = (short)var2;
      }

      for(var2 = 0; var2 < 255; ++var2) {
         int var3 = 255 - var2;
         int var4 = Class300.method5381(var1, var3, (byte)-121);
         short var5 = this.aShortArray4694[var4];
         this.aShortArray4694[var4] = this.aShortArray4694[var3];
         this.aShortArray4694[var3] = this.aShortArray4694[var3 + 256] = var5;
      }

   }

   static final int method6578(int var0) {
      int var1 = var0 * (var0 * var0 >> 12) >> 12;
      int var2 = var0 * 6 - '\uf000';
      int var3 = '\ua000' + (var2 * var0 >> 12);
      return var3 * var1 >> 12;
   }

   static final int method6579(int var0) {
      int var1 = var0 * (var0 * var0 >> 12) >> 12;
      int var2 = var0 * 6 - '\uf000';
      int var3 = '\ua000' + (var2 * var0 >> 12);
      return var3 * var1 >> 12;
   }

   void method6580(int var1, int var2, int var3) {
      int[] var4 = new int[var1];
      int[] var5 = new int[var2];
      int[] var6 = new int[var3];

      int var7;
      for(var7 = 0; var7 < var1; ++var7) {
         var4[var7] = (var7 << 12) / var1;
      }

      for(var7 = 0; var7 < var2; ++var7) {
         var5[var7] = (var7 << 12) / var2;
      }

      for(var7 = 0; var7 < var3; ++var7) {
         var6[var7] = (var7 << 12) / var3;
      }

      this.method6559();

      for(int var8 = 0; var8 < var3; ++var8) {
         for(int var9 = 0; var9 < var2; ++var9) {
            for(int var10 = 0; var10 < var1; ++var10) {
               for(int var11 = 0; var11 < this.anInt4703; ++var11) {
                  var7 = this.aShortArray4699[var11] << 12;
                  int var12 = this.anInt4700 * var7 >> 12;
                  int var13 = this.anInt4701 * var7 >> 12;
                  int var14 = this.anInt4698 * var7 >> 12;
                  int var15 = var4[var10] * var7 >> 12;
                  int var16 = var5[var9] * var7 >> 12;
                  int var17 = var6[var8] * var7 >> 12;
                  var15 *= this.anInt4700;
                  var16 *= this.anInt4701;
                  var17 *= this.anInt4698;
                  int var18 = var15 >> 12;
                  int var19 = var18 + 1;
                  var18 &= 255;
                  int var20 = var16 >> 12;
                  int var21 = var20 + 1;
                  var20 &= 255;
                  int var22 = var17 >> 12;
                  int var23 = var22 + 1;
                  var22 &= 255;
                  if(var19 >= var12) {
                     var19 = 0;
                  } else {
                     var19 &= 255;
                  }

                  if(var21 >= var13) {
                     var21 = 0;
                  } else {
                     var21 &= 255;
                  }

                  if(var23 >= var14) {
                     var23 = 0;
                  } else {
                     var23 &= 255;
                  }

                  var15 &= 4095;
                  var16 &= 4095;
                  var17 &= 4095;
                  int var24 = anIntArray4704[var15];
                  int var25 = anIntArray4704[var16];
                  int var26 = anIntArray4704[var17];
                  int var27 = var15 - 4096;
                  int var28 = var16 - 4096;
                  int var29 = var17 - 4096;
                  short var30 = this.aShortArray4694[var22];
                  short var31 = this.aShortArray4694[var23];
                  short var32 = this.aShortArray4694[var20 + var30];
                  short var33 = this.aShortArray4694[var21 + var30];
                  short var34 = this.aShortArray4694[var20 + var31];
                  short var35 = this.aShortArray4694[var21 + var31];
                  int var36 = method6563(this.aShortArray4694[var18 + var32], var15, var16, var17);
                  int var37 = method6563(this.aShortArray4694[var19 + var32], var27, var16, var17);
                  int var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var33], var15, var28, var17);
                  var37 = method6563(this.aShortArray4694[var19 + var33], var27, var28, var17);
                  int var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var40 = var38 + (var25 * (var39 - var38) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var34], var15, var16, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var34], var27, var16, var29);
                  var38 = var36 + (var24 * (var37 - var36) >> 12);
                  var36 = method6563(this.aShortArray4694[var18 + var35], var15, var28, var29);
                  var37 = method6563(this.aShortArray4694[var19 + var35], var27, var28, var29);
                  var39 = var36 + (var24 * (var37 - var36) >> 12);
                  int var41 = var38 + (var25 * (var39 - var38) >> 12);
                  this.method6561(var11, var40 + (var26 * (var41 - var40) >> 12));
               }

               this.method6560();
            }
         }
      }

   }
}
