⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aa.java

📁 现在非常流行的手机网游的源码,可以下载来学习学习.
💻 JAVA
字号:
import java.io.IOException;

public final class aa
{
  private static final int[] jdField_a_of_type_ArrayOfInt = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 };
  private static final int[] jdField_b_of_type_ArrayOfInt = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 };
  private static final int[] jdField_c_of_type_ArrayOfInt = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 };
  private static final int[] d = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 };
  private static final int[] e = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
  private static int jdField_a_of_type_Int;
  private static int jdField_b_of_type_Int;
  private static int jdField_c_of_type_Int;

  public static byte[] a(byte[] paramArrayOfByte)
    throws IOException
  {
    jdField_a_of_type_Int = aa.jdField_b_of_type_Int = aa.jdField_c_of_type_Int = 0;
    if ((a(paramArrayOfByte, 16) != 35615) || (a(paramArrayOfByte, 8) != 8))
      throw new IOException("Invalid GZIP format");
    int i = a(paramArrayOfByte, 8);
    jdField_a_of_type_Int += 6;
    if ((i & 0x4) != 0)
      jdField_a_of_type_Int += a(paramArrayOfByte, 16);
    while (((i & 0x8) != 0) && (paramArrayOfByte[(jdField_a_of_type_Int++)] != 0));
    while (((i & 0x10) != 0) && (paramArrayOfByte[(jdField_a_of_type_Int++)] != 0));
    if ((i & 0x2) != 0)
      jdField_a_of_type_Int += 2;
    int j = jdField_a_of_type_Int;
    jdField_a_of_type_Int = paramArrayOfByte.length - 4;
    byte[] arrayOfByte1 = new byte[a(paramArrayOfByte, 16) | a(paramArrayOfByte, 16) << 16];
    int k = 0;
    jdField_a_of_type_Int = j;
    int l = 0;
    int i1 = 0;
    do
    {
      l = a(paramArrayOfByte, 1);
      if ((i1 = a(paramArrayOfByte, 2)) == 0)
      {
        jdField_c_of_type_Int = 0;
        int i2 = a(paramArrayOfByte, 16);
        a(paramArrayOfByte, 16);
        int i3 = 0;
        System.arraycopy(paramArrayOfByte, jdField_a_of_type_Int, arrayOfByte1, k, i2);
        jdField_a_of_type_Int += i2;
        label713: k += i2;
      }
      else
      {
        int[] arrayOfInt1;
        int[] arrayOfInt2;
        int i6;
        int i8;
        if (i1 == 2)
        {
          int i4 = a(paramArrayOfByte, 5) + 257;
          i6 = a(paramArrayOfByte, 5) + 1;
          i8 = a(paramArrayOfByte, 4) + 4;
          byte[] arrayOfByte4 = new byte[19];
          for (int i10 = 0; i10 < i8; ++i10)
            arrayOfByte4[e[i10]] = (byte)a(paramArrayOfByte, 3);
          int[] arrayOfInt3 = a(arrayOfByte4, 18);
          arrayOfInt1 = a(a(paramArrayOfByte, arrayOfInt3, i4), i4 - 1);
          arrayOfInt2 = a(a(paramArrayOfByte, arrayOfInt3, i6), i6 - 1);
        }
        else
        {
          byte[] arrayOfByte2 = new byte[288];
          for (i6 = 0; i6 < 144; ++i6)
            arrayOfByte2[i6] = 8;
          for (i6 = 144; i6 < 256; ++i6)
            arrayOfByte2[i6] = 9;
          for (i6 = 256; i6 < 280; ++i6)
            arrayOfByte2[i6] = 7;
          for (i6 = 280; i6 < 288; ++i6)
            arrayOfByte2[i6] = 8;
          arrayOfInt1 = a(arrayOfByte2, 287);
          byte[] arrayOfByte3 = new byte[32];
          for (i8 = 0; i8 < arrayOfByte3.length; ++i8)
            arrayOfByte3[i8] = 5;
          arrayOfInt2 = a(arrayOfByte3, 31);
        }
        while (true)
        {
          int i5;
          while (true)
          {
            int i7;
            if ((i5 = a(paramArrayOfByte, arrayOfInt1)) == 256)
              break label713;
            if (i5 <= 256)
              break;
            i5 -= 257;
            int i9 = jdField_b_of_type_ArrayOfInt[i5];
            if ((i7 = jdField_a_of_type_ArrayOfInt[i5]) > 0)
              i9 += a(paramArrayOfByte, i7);
            i5 = a(paramArrayOfByte, arrayOfInt2);
            int i11 = d[i5];
            if ((i8 = jdField_c_of_type_ArrayOfInt[i5]) > 0)
              i11 += a(paramArrayOfByte, i8);
            int i12 = k - i11;
            while (i11 < i9)
            {
              System.arraycopy(arrayOfByte1, i12, arrayOfByte1, k, i11);
              k += i11;
              i9 -= i11;
              i11 <<= 1;
            }
            System.arraycopy(arrayOfByte1, i12, arrayOfByte1, k, i9);
            k += i9;
          }
          arrayOfByte1[(k++)] = (byte)i5;
        }
      }
    }
    while (l == 0);
    return arrayOfByte1;
  }

  private static int a(byte[] paramArrayOfByte, int paramInt)
  {
    int i = (jdField_c_of_type_Int == 0) ? (aa.jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF) : jdField_b_of_type_Int >> jdField_c_of_type_Int;
    for (int j = 8 - jdField_c_of_type_Int; j < paramInt; j += 8)
    {
      jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF;
      i |= jdField_b_of_type_Int << j;
    }
    jdField_c_of_type_Int = jdField_c_of_type_Int + paramInt & 0x7;
    return (i & (1 << paramInt) - 1);
  }

  private static int a(byte[] paramArrayOfByte, int[] paramArrayOfInt)
  {
    int i = paramArrayOfInt[0];
    while (i >= 0)
    {
      if (jdField_c_of_type_Int == 0)
        jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF;
      i = ((jdField_b_of_type_Int & 1 << jdField_c_of_type_Int) == 0) ? paramArrayOfInt[(i >> 16)] : paramArrayOfInt[(i & 0xFFFF)];
      jdField_c_of_type_Int = jdField_c_of_type_Int + 1 & 0x7;
    }
    return (i & 0xFFFF);
  }

  private static byte[] a(byte[] paramArrayOfByte, int[] paramArrayOfInt, int paramInt)
  {
    byte[] arrayOfByte = new byte[paramInt];
    int i = 0;
    int j = 0;
    for (int k = 0; i < paramInt; k = j)
      if ((j = a(paramArrayOfByte, paramArrayOfInt)) >= 16)
      {
        int l;
        if (j == 16)
        {
          l = 3 + a(paramArrayOfByte, 2);
          j = k;
        }
        else
        {
          if (j == 17)
            l = 3 + a(paramArrayOfByte, 3);
          else
            l = 11 + a(paramArrayOfByte, 7);
          j = 0;
        }
        while (l-- > 0)
          arrayOfByte[(i++)] = (byte)j;
      }
      else
      {
        arrayOfByte[(i++)] = (byte)j;
      }
    return arrayOfByte;
  }

  private static int[] a(byte[] paramArrayOfByte, int paramInt)
  {
    int[] arrayOfInt1 = new int[17];
    for (int i = 0; i < paramArrayOfByte.length; ++i)
      arrayOfInt1[paramArrayOfByte[i]] += 1;
    i = 0;
    arrayOfInt1[0] = 0;
    int[] arrayOfInt2 = new int[17];
    for (int j = 1; j <= 16; ++j)
      arrayOfInt2[j] = (i = i + arrayOfInt1[(j - 1)] << 1);
    int[] arrayOfInt3 = new int[(paramInt << 1) + 16];
    int k = 1;
    for (int l = 0; l <= paramInt; ++l)
    {
      int i1;
      if ((i1 = paramArrayOfByte[l]) != 0)
      {
        int tmp109_107 = i1;
        int[] tmp109_105 = arrayOfInt2;
        int tmp111_110 = tmp109_105[tmp109_107];
        tmp109_105[tmp109_107] = (tmp111_110 + 1);
        i = tmp111_110;
        int i2 = 0;
        for (int i3 = i1 - 1; i3 >= 0; --i3)
        {
          int i4;
          int i5;
          if ((i4 = i & 1 << i3) == 0)
          {
            if ((i5 = arrayOfInt3[i2] >> 16) == 0)
            {
              arrayOfInt3[i2] |= k << 16;
              i2 = k++;
            }
            else
            {
              i2 = i5;
            }
          }
          else if ((i5 = arrayOfInt3[i2] & 0xFFFF) == 0)
          {
            arrayOfInt3[i2] |= k;
            i2 = k++;
          }
          else
          {
            i2 = i5;
          }
        }
        arrayOfInt3[i2] = (0x80000000 | l);
      }
    }
    return arrayOfInt3;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -