
public final class Class476 {

   static final int anInt5816 = 4096;
   static final int anInt5817 = 16;
   static final int anInt5818 = 23;
   static final int anInt5819 = 0;
   static final int anInt5820 = 1;
   static final int anInt5821 = 6;
   static final int anInt5822 = 50;
   static Class449 aClass449_5823 = new Class449();


   static void method7943(Class449 var0) {
      var0.anInt5603 = 0;

      for(int var1 = 0; var1 < 256; ++var1) {
         if(var0.aBoolArray5628[var1]) {
            var0.aByteArray5623[var0.anInt5603 * -147550739] = (byte)var1;
            var0.anInt5603 += -1801988123;
         }
      }

   }

   static byte method7944(Class449 var0) {
      return (byte)method7946(8, var0);
   }

   static void method7945(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static int method7946(int var0, Class449 var1) {
      while(var1.anInt5611 * 940837503 < var0) {
         var1.anInt5610 = (var1.anInt5610 * -1499159153 << 8 | var1.aByteArray5601[var1.anInt5602 * -630172135] & 255) * 1717229935;
         var1.anInt5611 += 1861069816;
         var1.anInt5602 += -413227479;
         var1.anInt5613 += 953195693;
         if(var1.anInt5613 * -2042157275 == 0) {
            ;
         }
      }

      int var2 = var1.anInt5610 * -1499159153 >> var1.anInt5611 * 940837503 - var0 & (1 << var0) - 1;
      var1.anInt5611 -= var0 * -1914849921;
      return var2;
   }

   static byte method7947(Class449 var0) {
      return (byte)method7946(8, var0);
   }

   static byte method7948(Class449 var0) {
      return (byte)method7946(1, var0);
   }

   Class476() throws Throwable {
      throw new Error();
   }

   static void method7949(Class449 var0) {
      var0.anInt5603 = 0;

      for(int var1 = 0; var1 < 256; ++var1) {
         if(var0.aBoolArray5628[var1]) {
            var0.aByteArray5623[var0.anInt5603 * -147550739] = (byte)var1;
            var0.anInt5603 += -1801988123;
         }
      }

   }

   static byte method7950(Class449 var0) {
      return (byte)method7946(1, var0);
   }

   public static int method7951(byte[] var0, int var1, byte[] var2, int var3, int var4) {
      Class449 var5 = aClass449_5823;
      synchronized(var5) {
         aClass449_5823.aByteArray5601 = var2;
         aClass449_5823.anInt5602 = var4 * -413227479;
         aClass449_5823.aByteArray5615 = var0;
         aClass449_5823.anInt5605 = 0;
         aClass449_5823.anInt5609 = var1 * 2059316249;
         aClass449_5823.anInt5611 = 0;
         aClass449_5823.anInt5610 = 0;
         aClass449_5823.anInt5613 = 0;
         aClass449_5823.anInt5612 = 0;
         method7955(aClass449_5823);
         var1 -= aClass449_5823.anInt5609 * 452456489;
         aClass449_5823.aByteArray5601 = null;
         aClass449_5823.aByteArray5615 = null;
         return var1;
      }
   }

   public static int method7952(byte[] var0, int var1, byte[] var2, int var3, int var4) {
      Class449 var5 = aClass449_5823;
      synchronized(var5) {
         aClass449_5823.aByteArray5601 = var2;
         aClass449_5823.anInt5602 = var4 * -413227479;
         aClass449_5823.aByteArray5615 = var0;
         aClass449_5823.anInt5605 = 0;
         aClass449_5823.anInt5609 = var1 * 2059316249;
         aClass449_5823.anInt5611 = 0;
         aClass449_5823.anInt5610 = 0;
         aClass449_5823.anInt5613 = 0;
         aClass449_5823.anInt5612 = 0;
         method7955(aClass449_5823);
         var1 -= aClass449_5823.anInt5609 * 452456489;
         aClass449_5823.aByteArray5601 = null;
         aClass449_5823.aByteArray5615 = null;
         return var1;
      }
   }

   static void method7953(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static void method7954(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
      int var7 = 0;

      int var8;
      for(var8 = var4; var8 <= var5; ++var8) {
         for(int var9 = 0; var9 < var6; ++var9) {
            if(var3[var9] == var8) {
               var2[var7] = var9;
               ++var7;
            }
         }
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var1[var8] = 0;
      }

      for(var8 = 0; var8 < var6; ++var8) {
         ++var1[var3[var8] + 1];
      }

      for(var8 = 1; var8 < 23; ++var8) {
         var1[var8] += var1[var8 - 1];
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var0[var8] = 0;
      }

      int var10 = 0;

      for(var8 = var4; var8 <= var5; ++var8) {
         var10 += var1[var8 + 1] - var1[var8];
         var0[var8] = var10 - 1;
         var10 <<= 1;
      }

      for(var8 = var4 + 1; var8 <= var5; ++var8) {
         var1[var8] = (var0[var8 - 1] + 1 << 1) - var1[var8];
      }

   }

   static void method7955(Class449 var0) {
      boolean var1 = false;
      boolean var2 = false;
      boolean var3 = false;
      boolean var4 = false;
      boolean var5 = false;
      boolean var6 = false;
      boolean var7 = false;
      boolean var8 = false;
      boolean var9 = false;
      boolean var10 = false;
      boolean var11 = false;
      boolean var12 = false;
      boolean var13 = false;
      boolean var14 = false;
      boolean var15 = false;
      boolean var16 = false;
      boolean var17 = false;
      boolean var18 = false;
      int var19 = 0;
      int[] var20 = null;
      int[] var21 = null;
      int[] var22 = null;
      var0.anInt5622 = 1156100383;
      if(Class449.anIntArray5619 == null) {
         Class449.anIntArray5619 = new int[var0.anInt5622 * 570852704];
      }

      boolean var23 = true;

      while(var23) {
         byte var24 = method7947(var0);
         if(var24 == 23) {
            return;
         }

         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7947(var0);
         var24 = method7948(var0);
         if(var24 != 0) {
            ;
         }

         var0.anInt5616 = 0;
         var24 = method7947(var0);
         var0.anInt5616 = (var0.anInt5616 * -1275709009 << 8 | var24 & 255) * 166903119;
         var24 = method7947(var0);
         var0.anInt5616 = (var0.anInt5616 * -1275709009 << 8 | var24 & 255) * 166903119;
         var24 = method7947(var0);
         var0.anInt5616 = (var0.anInt5616 * -1275709009 << 8 | var24 & 255) * 166903119;

         int var35;
         for(var35 = 0; var35 < 16; ++var35) {
            var24 = method7948(var0);
            if(var24 == 1) {
               var0.aBoolArray5624[var35] = true;
            } else {
               var0.aBoolArray5624[var35] = false;
            }
         }

         for(var35 = 0; var35 < 256; ++var35) {
            var0.aBoolArray5628[var35] = false;
         }

         int var36;
         for(var35 = 0; var35 < 16; ++var35) {
            if(var0.aBoolArray5624[var35]) {
               for(var36 = 0; var36 < 16; ++var36) {
                  var24 = method7948(var0);
                  if(var24 == 1) {
                     var0.aBoolArray5628[var35 * 16 + var36] = true;
                  }
               }
            }
         }

         method7949(var0);
         int var38 = var0.anInt5603 * -147550739 + 2;
         int var39 = method7946(3, var0);
         int var40 = method7946(15, var0);
         var35 = 0;

         while(var35 < var40) {
            var36 = 0;

            while(true) {
               var24 = method7948(var0);
               if(var24 == 0) {
                  var0.aByteArray5627[var35] = (byte)var36;
                  ++var35;
                  break;
               }

               ++var36;
            }
         }

         byte[] var25 = new byte[6];

         byte var26;
         for(var26 = 0; var26 < var39; var25[var26] = var26++) {
            ;
         }

         for(var35 = 0; var35 < var40; ++var35) {
            var26 = var0.aByteArray5627[var35];

            byte var27;
            for(var27 = var25[var26]; var26 > 0; --var26) {
               var25[var26] = var25[var26 - 1];
            }

            var25[0] = var27;
            var0.aByteArray5626[var35] = var27;
         }

         int var37;
         for(var37 = 0; var37 < var39; ++var37) {
            int var50 = method7946(5, var0);
            var35 = 0;

            while(var35 < var38) {
               while(true) {
                  var24 = method7948(var0);
                  if(var24 == 0) {
                     var0.aByteArrayArray5621[var37][var35] = (byte)var50;
                     ++var35;
                     break;
                  }

                  var24 = method7948(var0);
                  if(var24 == 0) {
                     ++var50;
                  } else {
                     --var50;
                  }
               }
            }
         }

         for(var37 = 0; var37 < var39; ++var37) {
            byte var28 = 32;
            byte var29 = 0;

            for(var35 = 0; var35 < var38; ++var35) {
               if(var0.aByteArrayArray5621[var37][var35] > var29) {
                  var29 = var0.aByteArrayArray5621[var37][var35];
               }

               if(var0.aByteArrayArray5621[var37][var35] < var28) {
                  var28 = var0.aByteArrayArray5621[var37][var35];
               }
            }

            method7954(var0.anIntArrayArray5629[var37], var0.anIntArrayArray5630[var37], var0.anIntArrayArray5631[var37], var0.aByteArrayArray5621[var37], var28, var29, var38);
            var0.anIntArray5632[var37] = var28;
         }

         int var41 = var0.anInt5603 * -147550739 + 1;
         int var42 = -1;
         byte var43 = 0;

         for(var35 = 0; var35 <= 255; ++var35) {
            var0.anIntArray5595[var35] = 0;
         }

         int var56 = 4095;

         int var55;
         int var54;
         for(var54 = 15; var54 >= 0; --var54) {
            for(var55 = 15; var55 >= 0; --var55) {
               var0.aByteArray5607[var56] = (byte)(var54 * 16 + var55);
               --var56;
            }

            var0.anIntArray5625[var54] = var56 + 1;
         }

         int var44 = 0;
         byte var53;
         if(var43 == 0) {
            ++var42;
            var43 = 50;
            var53 = var0.aByteArray5626[var42];
            var19 = var0.anIntArray5632[var53];
            var20 = var0.anIntArrayArray5629[var53];
            var22 = var0.anIntArrayArray5631[var53];
            var21 = var0.anIntArrayArray5630[var53];
         }

         int var46 = var43 - 1;
         int var49 = var19;

         int var51;
         byte var52;
         for(var51 = method7946(var19, var0); var51 > var20[var49]; var51 = var51 << 1 | var52) {
            ++var49;
            var52 = method7948(var0);
         }

         int var45 = var22[var51 - var21[var49]];

         while(var45 != var41) {
            if(var45 != 0 && var45 != 1) {
               int var30 = var45 - 1;
               int var31;
               if(var30 < 16) {
                  var31 = var0.anIntArray5625[0];

                  for(var24 = var0.aByteArray5607[var31 + var30]; var30 > 3; var30 -= 4) {
                     int var32 = var31 + var30;
                     var0.aByteArray5607[var32] = var0.aByteArray5607[var32 - 1];
                     var0.aByteArray5607[var32 - 1] = var0.aByteArray5607[var32 - 2];
                     var0.aByteArray5607[var32 - 2] = var0.aByteArray5607[var32 - 3];
                     var0.aByteArray5607[var32 - 3] = var0.aByteArray5607[var32 - 4];
                  }

                  while(var30 > 0) {
                     var0.aByteArray5607[var31 + var30] = var0.aByteArray5607[var31 + var30 - 1];
                     --var30;
                  }

                  var0.aByteArray5607[var31] = var24;
               } else {
                  int var33 = var30 / 16;
                  int var34 = var30 % 16;
                  var31 = var0.anIntArray5625[var33] + var34;

                  for(var24 = var0.aByteArray5607[var31]; var31 > var0.anIntArray5625[var33]; --var31) {
                     var0.aByteArray5607[var31] = var0.aByteArray5607[var31 - 1];
                  }

                  ++var0.anIntArray5625[var33];

                  while(var33 > 0) {
                     --var0.anIntArray5625[var33];
                     var0.aByteArray5607[var0.anIntArray5625[var33]] = var0.aByteArray5607[var0.anIntArray5625[var33 - 1] + 16 - 1];
                     --var33;
                  }

                  --var0.anIntArray5625[0];
                  var0.aByteArray5607[var0.anIntArray5625[0]] = var24;
                  if(var0.anIntArray5625[0] == 0) {
                     var56 = 4095;

                     for(var54 = 15; var54 >= 0; --var54) {
                        for(var55 = 15; var55 >= 0; --var55) {
                           var0.aByteArray5607[var56] = var0.aByteArray5607[var0.anIntArray5625[var54] + var55];
                           --var56;
                        }

                        var0.anIntArray5625[var54] = var56 + 1;
                     }
                  }
               }

               ++var0.anIntArray5595[var0.aByteArray5623[var24 & 255] & 255];
               Class449.anIntArray5619[var44] = var0.aByteArray5623[var24 & 255] & 255;
               ++var44;
               if(var46 == 0) {
                  ++var42;
                  var46 = 50;
                  var53 = var0.aByteArray5626[var42];
                  var19 = var0.anIntArray5632[var53];
                  var20 = var0.anIntArrayArray5629[var53];
                  var22 = var0.anIntArrayArray5631[var53];
                  var21 = var0.anIntArrayArray5630[var53];
               }

               --var46;
               var49 = var19;

               for(var51 = method7946(var19, var0); var51 > var20[var49]; var51 = var51 << 1 | var52) {
                  ++var49;
                  var52 = method7948(var0);
               }

               var45 = var22[var51 - var21[var49]];
            } else {
               int var47 = -1;
               int var48 = 1;

               do {
                  if(var45 == 0) {
                     var47 += 1 * var48;
                  } else if(var45 == 1) {
                     var47 += 2 * var48;
                  }

                  var48 *= 2;
                  if(var46 == 0) {
                     ++var42;
                     var46 = 50;
                     var53 = var0.aByteArray5626[var42];
                     var19 = var0.anIntArray5632[var53];
                     var20 = var0.anIntArrayArray5629[var53];
                     var22 = var0.anIntArrayArray5631[var53];
                     var21 = var0.anIntArrayArray5630[var53];
                  }

                  --var46;
                  var49 = var19;

                  for(var51 = method7946(var19, var0); var51 > var20[var49]; var51 = var51 << 1 | var52) {
                     ++var49;
                     var52 = method7948(var0);
                  }

                  var45 = var22[var51 - var21[var49]];
               } while(var45 == 0 || var45 == 1);

               ++var47;
               var24 = var0.aByteArray5623[var0.aByteArray5607[var0.anIntArray5625[0]] & 255];

               for(var0.anIntArray5595[var24 & 255] += var47; var47 > 0; --var47) {
                  Class449.anIntArray5619[var44] = var24 & 255;
                  ++var44;
               }
            }
         }

         var0.anInt5604 = 0;
         var0.aByte5608 = 0;
         var0.anIntArray5618[0] = 0;

         for(var35 = 1; var35 <= 256; ++var35) {
            var0.anIntArray5618[var35] = var0.anIntArray5595[var35 - 1];
         }

         for(var35 = 1; var35 <= 256; ++var35) {
            var0.anIntArray5618[var35] += var0.anIntArray5618[var35 - 1];
         }

         for(var35 = 0; var35 < var44; ++var35) {
            var24 = (byte)(Class449.anIntArray5619[var35] & 255);
            Class449.anIntArray5619[var0.anIntArray5618[var24 & 255]] |= var35 << 8;
            ++var0.anIntArray5618[var24 & 255];
         }

         var0.anInt5614 = (Class449.anIntArray5619[var0.anInt5616 * -1275709009] >> 8) * 441931909;
         var0.anInt5617 = 0;
         var0.anInt5614 = Class449.anIntArray5619[var0.anInt5614 * 1125048397] * 441931909;
         var0.anInt5606 = (byte)(var0.anInt5614 * 1125048397 & 255) * -1138882211;
         var0.anInt5614 = (var0.anInt5614 * 1125048397 >> 8) * 441931909;
         var0.anInt5617 += -1734144233;
         var0.anInt5633 = var44 * -23119161;
         method7945(var0);
         if(var0.anInt5617 * -941549401 == var0.anInt5633 * -898275593 + 1 && var0.anInt5604 * 1060960175 == 0) {
            var23 = true;
         } else {
            var23 = false;
         }
      }

   }

   static void method7956(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static void method7957(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static void method7958(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static void method7959(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static byte method7960(Class449 var0) {
      return (byte)method7946(8, var0);
   }

   public static int method7961(byte[] var0, int var1, byte[] var2, int var3, int var4) {
      Class449 var5 = aClass449_5823;
      synchronized(var5) {
         aClass449_5823.aByteArray5601 = var2;
         aClass449_5823.anInt5602 = var4 * -413227479;
         aClass449_5823.aByteArray5615 = var0;
         aClass449_5823.anInt5605 = 0;
         aClass449_5823.anInt5609 = var1 * 2059316249;
         aClass449_5823.anInt5611 = 0;
         aClass449_5823.anInt5610 = 0;
         aClass449_5823.anInt5613 = 0;
         aClass449_5823.anInt5612 = 0;
         method7955(aClass449_5823);
         var1 -= aClass449_5823.anInt5609 * 452456489;
         aClass449_5823.aByteArray5601 = null;
         aClass449_5823.aByteArray5615 = null;
         return var1;
      }
   }

   static void method7962(Class449 var0) {
      var0.anInt5603 = 0;

      for(int var1 = 0; var1 < 256; ++var1) {
         if(var0.aBoolArray5628[var1]) {
            var0.aByteArray5623[var0.anInt5603 * -147550739] = (byte)var1;
            var0.anInt5603 += -1801988123;
         }
      }

   }

   static void method7963(Class449 var0) {
      var0.anInt5603 = 0;

      for(int var1 = 0; var1 < 256; ++var1) {
         if(var0.aBoolArray5628[var1]) {
            var0.aByteArray5623[var0.anInt5603 * -147550739] = (byte)var1;
            var0.anInt5603 += -1801988123;
         }
      }

   }

   static void method7964(Class449 var0) {
      byte var1 = var0.aByte5608;
      int var2 = var0.anInt5604 * 1060960175;
      int var3 = var0.anInt5617 * -941549401;
      int var4 = var0.anInt5606 * 754094837;
      int[] var5 = Class449.anIntArray5619;
      int var6 = var0.anInt5614 * 1125048397;
      byte[] var7 = var0.aByteArray5615;
      int var8 = var0.anInt5605 * 1215185355;
      int var9 = var0.anInt5609 * 452456489;
      int var11 = var0.anInt5633 * -898275593 + 1;

      label61:
      while(true) {
         if(var2 > 0) {
            while(true) {
               if(var9 == 0) {
                  break label61;
               }

               if(var2 == 1) {
                  if(var9 == 0) {
                     var2 = 1;
                     break label61;
                  }

                  var7[var8] = var1;
                  ++var8;
                  --var9;
                  break;
               }

               var7[var8] = var1;
               --var2;
               ++var8;
               --var9;
            }
         }

         while(var3 != var11) {
            var1 = (byte)var4;
            var6 = var5[var6];
            byte var12 = (byte)var6;
            var6 >>= 8;
            ++var3;
            if(var12 != var4) {
               var4 = var12;
               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            } else {
               if(var3 != var11) {
                  var2 = 2;
                  var6 = var5[var6];
                  var12 = (byte)var6;
                  var6 >>= 8;
                  ++var3;
                  if(var3 != var11) {
                     if(var12 != var4) {
                        var4 = var12;
                     } else {
                        var2 = 3;
                        var6 = var5[var6];
                        var12 = (byte)var6;
                        var6 >>= 8;
                        ++var3;
                        if(var3 != var11) {
                           if(var12 != var4) {
                              var4 = var12;
                           } else {
                              var6 = var5[var6];
                              var12 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                              var2 = (var12 & 255) + 4;
                              var6 = var5[var6];
                              var4 = (byte)var6;
                              var6 >>= 8;
                              ++var3;
                           }
                        }
                     }
                  }
                  continue label61;
               }

               if(var9 == 0) {
                  var2 = 1;
                  break label61;
               }

               var7[var8] = var1;
               ++var8;
               --var9;
            }
         }

         var2 = 0;
         break;
      }

      int var13 = var0.anInt5612 * 985125983;
      var0.anInt5612 += (var9 - var9) * 21727135;
      if(var0.anInt5612 * 985125983 < var13) {
         ;
      }

      var0.aByte5608 = var1;
      var0.anInt5604 = var2 * 1809629007;
      var0.anInt5617 = var3 * -1734144233;
      var0.anInt5606 = var4 * -1138882211;
      Class449.anIntArray5619 = var5;
      var0.anInt5614 = var6 * 441931909;
      var0.aByteArray5615 = var7;
      var0.anInt5605 = var8 * -1317413917;
      var0.anInt5609 = var9 * 2059316249;
   }

   static void method7965(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
      int var7 = 0;

      int var8;
      for(var8 = var4; var8 <= var5; ++var8) {
         for(int var9 = 0; var9 < var6; ++var9) {
            if(var3[var9] == var8) {
               var2[var7] = var9;
               ++var7;
            }
         }
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var1[var8] = 0;
      }

      for(var8 = 0; var8 < var6; ++var8) {
         ++var1[var3[var8] + 1];
      }

      for(var8 = 1; var8 < 23; ++var8) {
         var1[var8] += var1[var8 - 1];
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var0[var8] = 0;
      }

      int var10 = 0;

      for(var8 = var4; var8 <= var5; ++var8) {
         var10 += var1[var8 + 1] - var1[var8];
         var0[var8] = var10 - 1;
         var10 <<= 1;
      }

      for(var8 = var4 + 1; var8 <= var5; ++var8) {
         var1[var8] = (var0[var8 - 1] + 1 << 1) - var1[var8];
      }

   }

   static void method7966(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
      int var7 = 0;

      int var8;
      for(var8 = var4; var8 <= var5; ++var8) {
         for(int var9 = 0; var9 < var6; ++var9) {
            if(var3[var9] == var8) {
               var2[var7] = var9;
               ++var7;
            }
         }
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var1[var8] = 0;
      }

      for(var8 = 0; var8 < var6; ++var8) {
         ++var1[var3[var8] + 1];
      }

      for(var8 = 1; var8 < 23; ++var8) {
         var1[var8] += var1[var8 - 1];
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var0[var8] = 0;
      }

      int var10 = 0;

      for(var8 = var4; var8 <= var5; ++var8) {
         var10 += var1[var8 + 1] - var1[var8];
         var0[var8] = var10 - 1;
         var10 <<= 1;
      }

      for(var8 = var4 + 1; var8 <= var5; ++var8) {
         var1[var8] = (var0[var8 - 1] + 1 << 1) - var1[var8];
      }

   }

   static void method7967(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
      int var7 = 0;

      int var8;
      for(var8 = var4; var8 <= var5; ++var8) {
         for(int var9 = 0; var9 < var6; ++var9) {
            if(var3[var9] == var8) {
               var2[var7] = var9;
               ++var7;
            }
         }
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var1[var8] = 0;
      }

      for(var8 = 0; var8 < var6; ++var8) {
         ++var1[var3[var8] + 1];
      }

      for(var8 = 1; var8 < 23; ++var8) {
         var1[var8] += var1[var8 - 1];
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var0[var8] = 0;
      }

      int var10 = 0;

      for(var8 = var4; var8 <= var5; ++var8) {
         var10 += var1[var8 + 1] - var1[var8];
         var0[var8] = var10 - 1;
         var10 <<= 1;
      }

      for(var8 = var4 + 1; var8 <= var5; ++var8) {
         var1[var8] = (var0[var8 - 1] + 1 << 1) - var1[var8];
      }

   }

   static void method7968(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
      int var7 = 0;

      int var8;
      for(var8 = var4; var8 <= var5; ++var8) {
         for(int var9 = 0; var9 < var6; ++var9) {
            if(var3[var9] == var8) {
               var2[var7] = var9;
               ++var7;
            }
         }
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var1[var8] = 0;
      }

      for(var8 = 0; var8 < var6; ++var8) {
         ++var1[var3[var8] + 1];
      }

      for(var8 = 1; var8 < 23; ++var8) {
         var1[var8] += var1[var8 - 1];
      }

      for(var8 = 0; var8 < 23; ++var8) {
         var0[var8] = 0;
      }

      int var10 = 0;

      for(var8 = var4; var8 <= var5; ++var8) {
         var10 += var1[var8 + 1] - var1[var8];
         var0[var8] = var10 - 1;
         var10 <<= 1;
      }

      for(var8 = var4 + 1; var8 <= var5; ++var8) {
         var1[var8] = (var0[var8 - 1] + 1 << 1) - var1[var8];
      }

   }
}
