Exemple #1
0
 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++;
         }
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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++;
                        }
                    }
Exemple #5
0
 public static void clearBlockEntryInstance()
 {
     entryInstance = null;
 }
Exemple #6
0
 private static byte method1789(BZip2BlockEntry entry)
 {
     return((byte)method1790(8, entry));
 }