private static void method1785(BZip2BlockEntry entry) { entry.anInt2215 = 0; for (int i = 0; i < 256; i++) { if (entry.aBooleanArray2213[i]) { entry.aByteArray2211[entry.anInt2215] = (byte)i; entry.anInt2215++; } } }
private static int method1790(int i, BZip2BlockEntry entry) { int j; for (; ;) { if (entry.anInt2232 >= i) { int k = entry.anInt2207 >> entry.anInt2232 - i & (1 << i) - 1; entry.anInt2232 -= i; j = k; break; } entry.anInt2207 = (entry.anInt2207 << 8 | entry.aByteArray2224[entry.anInt2209] & 0xff); entry.anInt2232 += 8; entry.anInt2209++; entry.anInt2217++; } return(j); }
private static void method1787(BZip2BlockEntry entry) { byte byte4 = entry.aByte2201; int i = entry.anInt2222; int j = entry.anInt2227; int k = entry.anInt2221; int[] ai = anIntArray257; int l = entry.anInt2208; byte[] abyte0 = entry.aByteArray2212; int i1 = entry.anInt2203; int j1 = entry.anInt2206; int k1 = j1; int l1 = entry.anInt2225 + 1; for (; ;) { if (i > 0) { for (; ;) { if (j1 == 0) { goto while_2_; } if (i == 1) { break; } abyte0[i1] = byte4; i--; i1++; j1--; } if (j1 == 0) { i = 1; break; } abyte0[i1] = byte4; i1++; j1--; } bool flag = true; while (flag) { flag = false; if (j == l1) { i = 0; goto while_2_; } byte4 = (byte)k; l = ai[l]; byte byte0 = (byte)(l & 0xff); l >>= 8; j++; if (byte0 != k) { k = byte0; if (j1 == 0) { i = 1; goto while_2_; } abyte0[i1] = byte4; i1++; j1--; flag = true; } else if (j == l1) { if (j1 == 0) { i = 1; goto while_2_; } abyte0[i1] = byte4; i1++; j1--; flag = true; } } i = 2; l = ai[l]; byte byte1 = (byte)(l & 0xff); l >>= 8; if (++j != l1) { if (byte1 != k) { k = byte1; } else { i = 3; l = ai[l]; byte byte2 = (byte)(l & 0xff); l >>= 8; if (++j != l1) { if (byte2 != k) { k = byte2; } else { l = ai[l]; byte byte3 = (byte)(l & 0xff); l >>= 8; j++; i = (byte3 & 0xff) + 4; l = ai[l]; k = (byte)(l & 0xff); l >>= 8; j++; } } } } } while_2_: entry.anInt2216 += k1 - j1; entry.aByte2201 = byte4; entry.anInt2222 = i; entry.anInt2227 = j; entry.anInt2221 = k; anIntArray257 = ai; entry.anInt2208 = l; entry.aByteArray2212 = abyte0; entry.anInt2203 = i1; entry.anInt2206 = j1; }
private static void method1793(BZip2BlockEntry entry) { int j8 = 0; int[] ai = null; int[] ai1 = null; int[] ai2 = null; entry.anInt2202 = 1; if (anIntArray257 == null) { anIntArray257 = new int[entry.anInt2202 * 100000]; } bool flag18 = true; while (flag18) { byte byte0 = method1789(entry); if (byte0 == 23) { break; } byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1789(entry); byte0 = method1788(entry); entry.anInt2223 = 0; byte0 = method1789(entry); entry.anInt2223 = entry.anInt2223 << 8 | byte0 & 0xff; byte0 = method1789(entry); entry.anInt2223 = entry.anInt2223 << 8 | byte0 & 0xff; byte0 = method1789(entry); entry.anInt2223 = entry.anInt2223 << 8 | byte0 & 0xff; for (int j = 0; j < 16; j++) { byte byte1 = method1788(entry); if (byte1 == 1) { entry.aBooleanArray2205[j] = true; } else { entry.aBooleanArray2205[j] = false; } } for (int k = 0; k < 256; k++) { entry.aBooleanArray2213[k] = false; } for (int l = 0; l < 16; l++) { if (entry.aBooleanArray2205[l]) { for (int i3 = 0; i3 < 16; i3++) { byte byte2 = method1788(entry); if (byte2 == 1) { entry.aBooleanArray2213[l * 16 + i3] = true; } } } } method1785(entry); int i4 = entry.anInt2215 + 2; int j4 = method1790(3, entry); int k4 = method1790(15, entry); for (int i1 = 0; i1 < k4; i1++) { int j3 = 0; for (; ;) { byte byte3 = method1788(entry); if (byte3 == 0) { break; } j3++; } entry.aByteArray2214[i1] = (byte)j3; } byte[] abyte0 = new byte[6]; for (byte byte16 = 0; byte16 < j4; byte16++) { abyte0[byte16] = byte16; } for (int j1 = 0; j1 < k4; j1++) { byte byte17 = entry.aByteArray2214[j1]; byte byte15 = abyte0[byte17]; for (/**/; byte17 > 0; byte17--) { abyte0[byte17] = abyte0[byte17 - 1]; } abyte0[0] = byte15; entry.aByteArray2219[j1] = byte15; } for (int k3 = 0; k3 < j4; k3++) { int k6 = method1790(5, entry); for (int k1 = 0; k1 < i4; k1++) { for (; ;) { byte byte4 = method1788(entry); if (byte4 == 0) { break; } byte4 = method1788(entry); if (byte4 == 0) { k6++; } else { k6--; } } entry.aByteArrayArray2229[k3][k1] = (byte)k6; } } for (int l3 = 0; l3 < j4; l3++) { byte byte8 = 32; int i = 0; for (int l1 = 0; l1 < i4; l1++) { if (entry.aByteArrayArray2229[l3][l1] > i) { i = entry.aByteArrayArray2229[l3][l1]; } if (entry.aByteArrayArray2229[l3][l1] < byte8) { byte8 = entry.aByteArrayArray2229[l3][l1]; } } method1786(entry.anIntArrayArray2230[l3], entry.anIntArrayArray2218[l3], entry.anIntArrayArray2210[l3], entry.aByteArrayArray2229[l3], byte8, i, i4); entry.anIntArray2200[l3] = byte8; } int l4 = entry.anInt2215 + 1; int i5 = -1; int j5 = 0; for (int i2 = 0; i2 <= 255; i2++) { entry.anIntArray2228[i2] = 0; } int i9 = 4095; for (int k8 = 15; k8 >= 0; k8--) { for (int l8 = 15; l8 >= 0; l8--) { entry.aByteArray2204[i9] = (byte)(k8 * 16 + l8); i9--; } entry.anIntArray2226[k8] = i9 + 1; } int l5 = 0; if (j5 == 0) { i5++; j5 = 50; byte byte12 = entry.aByteArray2219[i5]; j8 = entry.anIntArray2200[byte12]; ai = entry.anIntArrayArray2230[byte12]; ai2 = entry.anIntArrayArray2210[byte12]; ai1 = entry.anIntArrayArray2218[byte12]; } j5--; int l6 = j8; byte byte9; int k7; for (k7 = method1790(l6, entry); k7 > ai[l6]; k7 = k7 << 1 | byte9) { l6++; byte9 = method1788(entry); } int k5 = ai2[k7 - ai1[l6]]; while (k5 != l4) { if (k5 == 0 || k5 == 1) { int i6 = -1; int j6 = 1; do { if (k5 == 0) { i6 += j6; } else if (k5 == 1) { i6 += 2 * j6; } j6 *= 2; if (j5 == 0) { i5++; j5 = 50; byte byte13 = entry.aByteArray2219[i5]; j8 = entry.anIntArray2200[byte13]; ai = entry.anIntArrayArray2230[byte13]; ai2 = entry.anIntArrayArray2210[byte13]; ai1 = entry.anIntArrayArray2218[byte13]; } j5--; int i7 = j8; byte byte10; int l7; for (l7 = method1790(i7, entry); l7 > ai[i7]; l7 = l7 << 1 | byte10) { i7++; byte10 = method1788(entry); } k5 = ai2[l7 - ai1[i7]]; } while (k5 == 0 || k5 == 1); i6++; byte byte5 = (entry.aByteArray2211[(entry.aByteArray2204[entry.anIntArray2226[0]] & 0xff)]); entry.anIntArray2228[byte5 & 0xff] += i6; for (/**/; i6 > 0; i6--) { anIntArray257[l5] = byte5 & 0xff; l5++; } }
public static void clearBlockEntryInstance() { entryInstance = null; }
private static byte method1789(BZip2BlockEntry entry) { return((byte)method1790(8, entry)); }