
public class Class41 {

   int[] anIntArray440;
   byte[] aByteArray441;
   int[] anIntArray442;


   int method1106(byte[] var1, int var2, int var3, byte[] var4, int var5) {
      int var6 = 0;
      int var7 = var5 << 3;

      for(var3 += var2; var2 < var3; ++var2) {
         int var8 = var1[var2] & 255;
         int var9 = this.anIntArray440[var8];
         byte var10 = this.aByteArray441[var8];
         if(0 == var10) {
            throw new RuntimeException("" + var8);
         }

         int var11 = var7 >> 3;
         int var12 = var7 & 7;
         var6 &= -var12 >> 31;
         int var13 = (var12 + var10 - 1 >> 3) + var11;
         var12 += 24;
         var4[var11] = (byte)(var6 |= var9 >>> var12);
         if(var11 < var13) {
            ++var11;
            var12 -= 8;
            var4[var11] = (byte)(var6 = var9 >>> var12);
            if(var11 < var13) {
               ++var11;
               var12 -= 8;
               var4[var11] = (byte)(var6 = var9 >>> var12);
               if(var11 < var13) {
                  ++var11;
                  var12 -= 8;
                  var4[var11] = (byte)(var6 = var9 >>> var12);
                  if(var11 < var13) {
                     ++var11;
                     var12 -= 8;
                     var4[var11] = (byte)(var6 = var9 << -var12);
                  }
               }
            }
         }

         var7 += var10;
      }

      return (var7 + 7 >> 3) - var5;
   }

   int method1107(byte[] var1, int var2, int var3, byte[] var4, int var5, int var6) {
      int var7 = 0;
      int var8 = var5 << 3;

      for(var3 += var2; var2 < var3; ++var2) {
         int var9 = var1[var2] & 255;
         int var10 = this.anIntArray440[var9];
         byte var11 = this.aByteArray441[var9];
         if(0 == var11) {
            throw new RuntimeException("" + var9);
         }

         int var12 = var8 >> 3;
         int var13 = var8 & 7;
         var7 &= -var13 >> 31;
         int var14 = (var13 + var11 - 1 >> 3) + var12;
         var13 += 24;
         var4[var12] = (byte)(var7 |= var10 >>> var13);
         if(var12 < var14) {
            ++var12;
            var13 -= 8;
            var4[var12] = (byte)(var7 = var10 >>> var13);
            if(var12 < var14) {
               ++var12;
               var13 -= 8;
               var4[var12] = (byte)(var7 = var10 >>> var13);
               if(var12 < var14) {
                  ++var12;
                  var13 -= 8;
                  var4[var12] = (byte)(var7 = var10 >>> var13);
                  if(var12 < var14) {
                     ++var12;
                     var13 -= 8;
                     var4[var12] = (byte)(var7 = var10 << -var13);
                  }
               }
            }
         }

         var8 += var11;
      }

      return (var8 + 7 >> 3) - var5;
   }

   int method1108(byte[] var1, int var2, byte[] var3, int var4, int var5) {
      if(0 == var5) {
         return 0;
      } else {
         int var6 = 0;
         var5 += var4;
         int var7 = var2;

         while(true) {
            byte var8 = var1[var7];
            if(var8 < 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            int var9;
            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 64)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 32) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 16)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 8) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 4) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 2)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 1) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            ++var7;
         }

         return 1 + var7 - var2;
      }
   }

   int method1109(byte[] var1, int var2, byte[] var3, int var4, int var5, int var6) {
      if(0 == var5) {
         return 0;
      } else {
         int var7 = 0;
         var5 += var4;
         int var8 = var2;

         while(true) {
            byte var9 = var1[var8];
            if(var9 < 0) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            int var10;
            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if(0 != (var9 & 64)) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if((var9 & 32) != 0) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if(0 != (var9 & 16)) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if((var9 & 8) != 0) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if((var9 & 4) != 0) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if(0 != (var9 & 2)) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            if((var9 & 1) != 0) {
               var7 = this.anIntArray442[var7];
            } else {
               ++var7;
            }

            if((var10 = this.anIntArray442[var7]) < 0) {
               var3[var4++] = (byte)(~var10);
               if(var4 >= var5) {
                  break;
               }

               var7 = 0;
            }

            ++var8;
         }

         return 1 + var8 - var2;
      }
   }

   int method1110(byte[] var1, int var2, int var3, byte[] var4, int var5) {
      int var6 = 0;
      int var7 = var5 << 3;

      for(var3 += var2; var2 < var3; ++var2) {
         int var8 = var1[var2] & 255;
         int var9 = this.anIntArray440[var8];
         byte var10 = this.aByteArray441[var8];
         if(0 == var10) {
            throw new RuntimeException("" + var8);
         }

         int var11 = var7 >> 3;
         int var12 = var7 & 7;
         var6 &= -var12 >> 31;
         int var13 = (var12 + var10 - 1 >> 3) + var11;
         var12 += 24;
         var4[var11] = (byte)(var6 |= var9 >>> var12);
         if(var11 < var13) {
            ++var11;
            var12 -= 8;
            var4[var11] = (byte)(var6 = var9 >>> var12);
            if(var11 < var13) {
               ++var11;
               var12 -= 8;
               var4[var11] = (byte)(var6 = var9 >>> var12);
               if(var11 < var13) {
                  ++var11;
                  var12 -= 8;
                  var4[var11] = (byte)(var6 = var9 >>> var12);
                  if(var11 < var13) {
                     ++var11;
                     var12 -= 8;
                     var4[var11] = (byte)(var6 = var9 << -var12);
                  }
               }
            }
         }

         var7 += var10;
      }

      return (var7 + 7 >> 3) - var5;
   }

   public Class41(byte[] var1) {
      int var2 = var1.length;
      this.anIntArray440 = new int[var2];
      this.aByteArray441 = var1;
      int[] var3 = new int[33];
      this.anIntArray442 = new int[8];
      int var4 = 0;

      for(int var5 = 0; var5 < var2; ++var5) {
         byte var6 = var1[var5];
         if(0 != var6) {
            int var7 = 1 << 32 - var6;
            int var8 = var3[var6];
            this.anIntArray440[var5] = var8;
            int var9;
            int var10;
            int var11;
            int var12;
            if((var8 & var7) != 0) {
               var9 = var3[var6 - 1];
            } else {
               var9 = var8 | var7;

               for(var10 = var6 - 1; var10 >= 1; --var10) {
                  var11 = var3[var10];
                  if(var11 != var8) {
                     break;
                  }

                  var12 = 1 << 32 - var10;
                  if(0 != (var11 & var12)) {
                     var3[var10] = var3[var10 - 1];
                     break;
                  }

                  var3[var10] = var11 | var12;
               }
            }

            var3[var6] = var9;

            for(var10 = 1 + var6; var10 <= 32; ++var10) {
               if(var3[var10] == var8) {
                  var3[var10] = var9;
               }
            }

            var10 = 0;

            for(var11 = 0; var11 < var6; ++var11) {
               var12 = Integer.MIN_VALUE >>> var11;
               if((var8 & var12) != 0) {
                  if(0 == this.anIntArray442[var10]) {
                     this.anIntArray442[var10] = var4;
                  }

                  var10 = this.anIntArray442[var10];
               } else {
                  ++var10;
               }

               if(var10 >= this.anIntArray442.length) {
                  int[] var13 = new int[this.anIntArray442.length * 2];

                  for(int var14 = 0; var14 < this.anIntArray442.length; ++var14) {
                     var13[var14] = this.anIntArray442[var14];
                  }

                  this.anIntArray442 = var13;
               }

               var12 >>>= 1;
            }

            this.anIntArray442[var10] = ~var5;
            if(var10 >= var4) {
               var4 = var10 + 1;
            }
         }
      }

   }

   int method1111(byte[] var1, int var2, byte[] var3, int var4, int var5) {
      if(0 == var5) {
         return 0;
      } else {
         int var6 = 0;
         var5 += var4;
         int var7 = var2;

         while(true) {
            byte var8 = var1[var7];
            if(var8 < 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            int var9;
            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 64)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 32) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 16)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 8) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 4) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if(0 != (var8 & 2)) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            if((var8 & 1) != 0) {
               var6 = this.anIntArray442[var6];
            } else {
               ++var6;
            }

            if((var9 = this.anIntArray442[var6]) < 0) {
               var3[var4++] = (byte)(~var9);
               if(var4 >= var5) {
                  break;
               }

               var6 = 0;
            }

            ++var7;
         }

         return 1 + var7 - var2;
      }
   }

   static final void method1112(Class508 var0, short var1) {
      var0.anInt6003 -= 196624946;
      if(var0.anIntArray6027[-937710807 * var0.anInt6003] == var0.anIntArray6027[-937710807 * var0.anInt6003 + 1]) {
         if(var1 <= 751) {
            return;
         }

         var0.anInt6025 += 2029505775 * var0.anIntArray6023[1651565071 * var0.anInt6025];
      }

   }

   static final void method1113(Class508 var0, int var1) {
      boolean var2 = true;
      String var3 = (String)var0.anObjectArray6004[(var0.anInt6005 -= -46848683) * 639741949];
      if(client.aBool7738) {
         try {
            Object var4 = Class294.aClass294_3477.method5317(new Object[]{var3}, -2077657218);
            if(null != var4) {
               var2 = ((Boolean)var4).booleanValue();
            }
         } catch (Throwable var5) {
            ;
         }
      }

      var0.anIntArray6027[(var0.anInt6003 += 98312473) * -937710807 - 1] = var2?1:0;
   }

   static boolean method1114(int var0) {
      if(null == Class550_Sub1.aClass225_Sub14_Sub3_8322) {
         return false;
      } else {
         if(Class550_Sub1.aClass225_Sub14_Sub3_8322.anInt10024 * 1158601069 >= 2000) {
            Class550_Sub1.aClass225_Sub14_Sub3_8322.anInt10024 -= -1226926832;
         }

         return Class550_Sub1.aClass225_Sub14_Sub3_8322.anInt10024 * 1158601069 == 1007;
      }
   }

   static final void method1115(Class508 var0, int var1) {
      String var2 = null;
      if(null != Class67.aClass10_638) {
         if(var1 <= -2077007287) {
            ;
         }

         var2 = Class67.aClass10_638.method679((byte)59);
      }

      if(null == var2) {
         if(var1 <= -2077007287) {
            ;
         }

         var2 = "";
      }

      var0.anObjectArray6004[(var0.anInt6005 += -46848683) * 639741949 - 1] = var2;
   }

   static final void method1116(Class124 var0, Class121 var1, Class508 var2, byte var3) {
      var0.anInt1410 = -934554554;
      var0.aClass396_1535 = null;
      var0.anInt1411 = var2.anIntArray6027[(var2.anInt6003 -= 98312473) * -937710807] * 1431494067;
      if(-1 == -875927841 * var0.anInt1369 && !var1.aBool1206) {
         Class477_Sub2.method12815(var0.anInt1406 * 34646887, (byte)2);
      }

   }

   public static Class550 method1117(int var0, int var1, int var2, int var3, int var4) {
      Class235.aClass550_Sub1_2790.anInt7426 = -1970438059 * var0;
      Class235.aClass550_Sub1_2790.anInt7424 = -779311591 * var1;
      Class235.aClass550_Sub1_2790.anInt7425 = var2 * 1221545435;
      Class235.aClass550_Sub1_2790.anInt7423 = 1177895915 * var3;
      return Class235.aClass550_Sub1_2790;
   }
}
