예제 #1
0
 public void method_0()
 {
     this.int_4  = (this.bool_1 ? 2 : 0);
     this.long_1 = 0L;
     this.long_0 = 0L;
     this.class187_0.method_7();
     this.class203_0.method_7();
     this.class198_0 = null;
     this.class197_0 = null;
     this.class197_1 = null;
     this.bool_0     = false;
     this.class200_0.vmethod_1();
 }
예제 #2
0
 static Class197()
 {
     try
     {
         byte[] array = new byte[288];
         int    i     = 0;
         while (i < 144)
         {
             array[i++] = 8;
         }
         while (i < 256)
         {
             array[i++] = 9;
         }
         while (i < 280)
         {
             array[i++] = 7;
         }
         while (i < 288)
         {
             array[i++] = 8;
         }
         Class197.class197_0 = new Class197(array);
         array = new byte[32];
         i     = 0;
         while (i < 32)
         {
             array[i++] = 5;
         }
         Class197.class197_1 = new Class197(array);
     }
     catch (Exception)
     {
         throw new SharpZipBaseException("InflaterHuffmanTree: static tree length illegal");
     }
 }
예제 #3
0
 static Class197()
 {
     try
     {
         byte[] array = new byte[288];
         int i = 0;
         while (i < 144)
         {
             array[i++] = 8;
         }
         while (i < 256)
         {
             array[i++] = 9;
         }
         while (i < 280)
         {
             array[i++] = 7;
         }
         while (i < 288)
         {
             array[i++] = 8;
         }
         Class197.class197_0 = new Class197(array);
         array = new byte[32];
         i = 0;
         while (i < 32)
         {
             array[i++] = 5;
         }
         Class197.class197_1 = new Class197(array);
     }
     catch (Exception)
     {
         throw new SharpZipBaseException("InflaterHuffmanTree: static tree length illegal");
     }
 }
예제 #4
0
        private bool method_5()
        {
            switch (this.int_4)
            {
            case 0:
                return(this.method_1());

            case 1:
                return(this.method_2());

            case 2:
                if (this.bool_0)
                {
                    if (this.bool_1)
                    {
                        this.int_4 = 12;
                        return(false);
                    }
                    this.class187_0.method_4();
                    this.int_6 = 32;
                    this.int_4 = 11;
                    return(true);
                }
                else
                {
                    int num = this.class187_0.method_0(3);
                    if (num < 0)
                    {
                        return(false);
                    }
                    this.class187_0.method_1(3);
                    if ((num & 1) != 0)
                    {
                        this.bool_0 = true;
                    }
                    switch (num >> 1)
                    {
                    case 0:
                        this.class187_0.method_4();
                        this.int_4 = 3;
                        break;

                    case 1:
                        this.class197_0 = Class197.class197_0;
                        this.class197_1 = Class197.class197_1;
                        this.int_4      = 7;
                        break;

                    case 2:
                        this.class198_0 = new Class198();
                        this.int_4      = 6;
                        break;

                    default:
                        throw new SharpZipBaseException("Unknown block type " + num);
                    }
                    return(true);
                }
                break;

            case 3:
                if ((this.int_9 = this.class187_0.method_0(16)) < 0)
                {
                    return(false);
                }
                this.class187_0.method_1(16);
                this.int_4 = 4;
                break;

            case 4:
                break;

            case 5:
                goto IL_1A4;

            case 6:
                if (!this.class198_0.method_0(this.class187_0))
                {
                    return(false);
                }
                this.class197_0 = this.class198_0.method_1();
                this.class197_1 = this.class198_0.method_2();
                this.int_4      = 7;
                goto IL_228;

            case 7:
            case 8:
            case 9:
            case 10:
                goto IL_228;

            case 11:
                return(this.method_4());

            case 12:
                return(false);

            default:
                throw new SharpZipBaseException("Inflater.Decode unknown mode");
            }
            int num2 = this.class187_0.method_0(16);

            if (num2 < 0)
            {
                return(false);
            }
            this.class187_0.method_1(16);
            if (num2 != (this.int_9 ^ 65535))
            {
                throw new SharpZipBaseException("broken uncompressed block");
            }
            this.int_4 = 5;
IL_1A4:
            int num3 = this.class203_0.method_3(this.class187_0, this.int_9);

            this.int_9 -= num3;
            if (this.int_9 == 0)
            {
                this.int_4 = 2;
                return(true);
            }
            return(!this.class187_0.method_5());

IL_228:
            return(this.method_3());
        }
예제 #5
0
        private bool method_3()
        {
            int i = this.class203_0.method_4();

            while (i >= 258)
            {
                int num;
                switch (this.int_4)
                {
                case 7:
                    while (((num = this.class197_0.method_1(this.class187_0)) & -256) == 0)
                    {
                        this.class203_0.method_0(num);
                        if (--i < 258)
                        {
                            return(true);
                        }
                    }
                    if (num >= 257)
                    {
                        try
                        {
                            this.int_7 = Class196.int_0[num - 257];
                            this.int_6 = Class196.int_1[num - 257];
                        }
                        catch (Exception)
                        {
                            throw new SharpZipBaseException("Illegal rep length code");
                        }
                        goto IL_AC;
                    }
                    if (num < 0)
                    {
                        return(false);
                    }
                    this.class197_1 = null;
                    this.class197_0 = null;
                    this.int_4      = 2;
                    return(true);

                case 8:
                    goto IL_AC;

                case 9:
                    goto IL_FC;

                case 10:
                    break;

                default:
                    throw new SharpZipBaseException("Inflater unknown mode");
                }
IL_13D:
                if (this.int_6 > 0)
                {
                    this.int_4 = 10;
                    int num2 = this.class187_0.method_0(this.int_6);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    this.class187_0.method_1(this.int_6);
                    this.int_8 += num2;
                }
                this.class203_0.method_2(this.int_7, this.int_8);
                i         -= this.int_7;
                this.int_4 = 7;
                continue;
IL_FC:
                num = this.class197_1.method_1(this.class187_0);
                if (num >= 0)
                {
                    try
                    {
                        this.int_8 = Class196.int_2[num];
                        this.int_6 = Class196.int_3[num];
                    }
                    catch (Exception)
                    {
                        throw new SharpZipBaseException("Illegal rep dist code");
                    }
                    goto IL_13D;
                }
                return(false);

IL_AC:
                if (this.int_6 > 0)
                {
                    this.int_4 = 8;
                    int num3 = this.class187_0.method_0(this.int_6);
                    if (num3 < 0)
                    {
                        return(false);
                    }
                    this.class187_0.method_1(this.int_6);
                    this.int_7 += num3;
                }
                this.int_4 = 9;
                goto IL_FC;
            }
            return(true);
        }
예제 #6
0
        public bool method_0(Class187 class187_0)
        {
            while (true)
            {
                switch (this.int_3)
                {
                case 0:
                    this.int_4 = class187_0.method_0(5);
                    if (this.int_4 >= 0)
                    {
                        this.int_4 += 257;
                        class187_0.method_1(5);
                        this.int_3 = 1;
                        goto IL_1FD;
                    }
                    return(false);

                case 1:
                    goto IL_1FD;

                case 2:
                    goto IL_1AF;

                case 3:
                    goto IL_176;

                case 4:
                    break;

                case 5:
                    goto IL_2C;

                default:
                    continue;
                }
IL_F4:
                int num;
                while (((num = this.class197_0.method_1(class187_0)) & -16) == 0)
                {
                    this.byte_1[this.int_9++] = (this.byte_2 = (byte)num);
                    if (this.int_9 == this.int_7)
                    {
                        return(true);
                    }
                }
                if (num >= 0)
                {
                    if (num >= 17)
                    {
                        this.byte_2 = 0;
                    }
                    else if (this.int_9 == 0)
                    {
                        goto IL_2A6;
                    }
                    this.int_8 = num - 16;
                    this.int_3 = 5;
                    goto IL_2C;
                }
                return(false);

IL_176:
                while (this.int_9 < this.int_6)
                {
                    int num2 = class187_0.method_0(3);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    class187_0.method_1(3);
                    this.byte_0[Class198.int_2[this.int_9]] = (byte)num2;
                    this.int_9++;
                }
                this.class197_0 = new Class197(this.byte_0);
                this.byte_0     = null;
                this.int_9      = 0;
                this.int_3      = 4;
                goto IL_F4;
IL_2C:
                int num3 = Class198.int_1[this.int_8];
                int num4 = class187_0.method_0(num3);
                if (num4 < 0)
                {
                    return(false);
                }
                class187_0.method_1(num3);
                num4 += Class198.int_0[this.int_8];
                if (this.int_9 + num4 > this.int_7)
                {
                    break;
                }
                while (num4-- > 0)
                {
                    this.byte_1[this.int_9++] = this.byte_2;
                }
                if (this.int_9 == this.int_7)
                {
                    return(true);
                }
                this.int_3 = 4;
                continue;
IL_1AF:
                this.int_6 = class187_0.method_0(4);
                if (this.int_6 >= 0)
                {
                    this.int_6 += 4;
                    class187_0.method_1(4);
                    this.byte_0 = new byte[19];
                    this.int_9  = 0;
                    this.int_3  = 3;
                    goto IL_176;
                }
                return(false);

IL_1FD:
                this.int_5 = class187_0.method_0(5);
                if (this.int_5 >= 0)
                {
                    this.int_5++;
                    class187_0.method_1(5);
                    this.int_7  = this.int_4 + this.int_5;
                    this.byte_1 = new byte[this.int_7];
                    this.int_3  = 2;
                    goto IL_1AF;
                }
                return(false);
            }
            throw new SharpZipBaseException();
IL_2A6:
            throw new SharpZipBaseException();
        }
예제 #7
0
 public bool method_0(Class187 class187_0)
 {
     while (true)
     {
         switch (this.int_3)
         {
         case 0:
             this.int_4 = class187_0.method_0(5);
             if (this.int_4 >= 0)
             {
                 this.int_4 += 257;
                 class187_0.method_1(5);
                 this.int_3 = 1;
                 goto IL_1FD;
             }
             return false;
         case 1:
             goto IL_1FD;
         case 2:
             goto IL_1AF;
         case 3:
             goto IL_176;
         case 4:
             break;
         case 5:
             goto IL_2C;
         default:
             continue;
         }
         IL_F4:
         int num;
         while (((num = this.class197_0.method_1(class187_0)) & -16) == 0)
         {
             this.byte_1[this.int_9++] = (this.byte_2 = (byte)num);
             if (this.int_9 == this.int_7)
             {
                 return true;
             }
         }
         if (num >= 0)
         {
             if (num >= 17)
             {
                 this.byte_2 = 0;
             }
             else if (this.int_9 == 0)
             {
                 goto IL_2A6;
             }
             this.int_8 = num - 16;
             this.int_3 = 5;
             goto IL_2C;
         }
         return false;
         IL_176:
         while (this.int_9 < this.int_6)
         {
             int num2 = class187_0.method_0(3);
             if (num2 < 0)
             {
                 return false;
             }
             class187_0.method_1(3);
             this.byte_0[Class198.int_2[this.int_9]] = (byte)num2;
             this.int_9++;
         }
         this.class197_0 = new Class197(this.byte_0);
         this.byte_0 = null;
         this.int_9 = 0;
         this.int_3 = 4;
         goto IL_F4;
         IL_2C:
         int num3 = Class198.int_1[this.int_8];
         int num4 = class187_0.method_0(num3);
         if (num4 < 0)
         {
             return false;
         }
         class187_0.method_1(num3);
         num4 += Class198.int_0[this.int_8];
         if (this.int_9 + num4 > this.int_7)
         {
             break;
         }
         while (num4-- > 0)
         {
             this.byte_1[this.int_9++] = this.byte_2;
         }
         if (this.int_9 == this.int_7)
         {
             return true;
         }
         this.int_3 = 4;
         continue;
         IL_1AF:
         this.int_6 = class187_0.method_0(4);
         if (this.int_6 >= 0)
         {
             this.int_6 += 4;
             class187_0.method_1(4);
             this.byte_0 = new byte[19];
             this.int_9 = 0;
             this.int_3 = 3;
             goto IL_176;
         }
         return false;
         IL_1FD:
         this.int_5 = class187_0.method_0(5);
         if (this.int_5 >= 0)
         {
             this.int_5++;
             class187_0.method_1(5);
             this.int_7 = this.int_4 + this.int_5;
             this.byte_1 = new byte[this.int_7];
             this.int_3 = 2;
             goto IL_1AF;
         }
         return false;
     }
     throw new SharpZipBaseException();
     IL_2A6:
     throw new SharpZipBaseException();
 }
예제 #8
0
 private bool method_5()
 {
     switch (this.int_4)
     {
     case 0:
         return this.method_1();
     case 1:
         return this.method_2();
     case 2:
         if (this.bool_0)
         {
             if (this.bool_1)
             {
                 this.int_4 = 12;
                 return false;
             }
             this.class187_0.method_4();
             this.int_6 = 32;
             this.int_4 = 11;
             return true;
         }
         else
         {
             int num = this.class187_0.method_0(3);
             if (num < 0)
             {
                 return false;
             }
             this.class187_0.method_1(3);
             if ((num & 1) != 0)
             {
                 this.bool_0 = true;
             }
             switch (num >> 1)
             {
             case 0:
                 this.class187_0.method_4();
                 this.int_4 = 3;
                 break;
             case 1:
                 this.class197_0 = Class197.class197_0;
                 this.class197_1 = Class197.class197_1;
                 this.int_4 = 7;
                 break;
             case 2:
                 this.class198_0 = new Class198();
                 this.int_4 = 6;
                 break;
             default:
                 throw new SharpZipBaseException("Unknown block type " + num);
             }
             return true;
         }
         break;
     case 3:
         if ((this.int_9 = this.class187_0.method_0(16)) < 0)
         {
             return false;
         }
         this.class187_0.method_1(16);
         this.int_4 = 4;
         break;
     case 4:
         break;
     case 5:
         goto IL_1A4;
     case 6:
         if (!this.class198_0.method_0(this.class187_0))
         {
             return false;
         }
         this.class197_0 = this.class198_0.method_1();
         this.class197_1 = this.class198_0.method_2();
         this.int_4 = 7;
         goto IL_228;
     case 7:
     case 8:
     case 9:
     case 10:
         goto IL_228;
     case 11:
         return this.method_4();
     case 12:
         return false;
     default:
         throw new SharpZipBaseException("Inflater.Decode unknown mode");
     }
     int num2 = this.class187_0.method_0(16);
     if (num2 < 0)
     {
         return false;
     }
     this.class187_0.method_1(16);
     if (num2 != (this.int_9 ^ 65535))
     {
         throw new SharpZipBaseException("broken uncompressed block");
     }
     this.int_4 = 5;
     IL_1A4:
     int num3 = this.class203_0.method_3(this.class187_0, this.int_9);
     this.int_9 -= num3;
     if (this.int_9 == 0)
     {
         this.int_4 = 2;
         return true;
     }
     return !this.class187_0.method_5();
     IL_228:
     return this.method_3();
 }
예제 #9
0
 private bool method_3()
 {
     int i = this.class203_0.method_4();
     while (i >= 258)
     {
         int num;
         switch (this.int_4)
         {
         case 7:
             while (((num = this.class197_0.method_1(this.class187_0)) & -256) == 0)
             {
                 this.class203_0.method_0(num);
                 if (--i < 258)
                 {
                     return true;
                 }
             }
             if (num >= 257)
             {
                 try
                 {
                     this.int_7 = Class196.int_0[num - 257];
                     this.int_6 = Class196.int_1[num - 257];
                 }
                 catch (Exception)
                 {
                     throw new SharpZipBaseException("Illegal rep length code");
                 }
                 goto IL_AC;
             }
             if (num < 0)
             {
                 return false;
             }
             this.class197_1 = null;
             this.class197_0 = null;
             this.int_4 = 2;
             return true;
         case 8:
             goto IL_AC;
         case 9:
             goto IL_FC;
         case 10:
             break;
         default:
             throw new SharpZipBaseException("Inflater unknown mode");
         }
         IL_13D:
         if (this.int_6 > 0)
         {
             this.int_4 = 10;
             int num2 = this.class187_0.method_0(this.int_6);
             if (num2 < 0)
             {
                 return false;
             }
             this.class187_0.method_1(this.int_6);
             this.int_8 += num2;
         }
         this.class203_0.method_2(this.int_7, this.int_8);
         i -= this.int_7;
         this.int_4 = 7;
         continue;
         IL_FC:
         num = this.class197_1.method_1(this.class187_0);
         if (num >= 0)
         {
             try
             {
                 this.int_8 = Class196.int_2[num];
                 this.int_6 = Class196.int_3[num];
             }
             catch (Exception)
             {
                 throw new SharpZipBaseException("Illegal rep dist code");
             }
             goto IL_13D;
         }
         return false;
         IL_AC:
         if (this.int_6 > 0)
         {
             this.int_4 = 8;
             int num3 = this.class187_0.method_0(this.int_6);
             if (num3 < 0)
             {
                 return false;
             }
             this.class187_0.method_1(this.int_6);
             this.int_7 += num3;
         }
         this.int_4 = 9;
         goto IL_FC;
     }
     return true;
 }
예제 #10
0
 public void method_0()
 {
     this.int_4 = (this.bool_1 ? 2 : 0);
     this.long_1 = 0L;
     this.long_0 = 0L;
     this.class187_0.method_7();
     this.class203_0.method_7();
     this.class198_0 = null;
     this.class197_0 = null;
     this.class197_1 = null;
     this.bool_0 = false;
     this.class200_0.vmethod_1();
 }