Пример #1
0
        public bool method_0(Class187 class1870)
        {
            while (true)
            {
                switch (_int3)
                {
                case 0:
                    _int4 = class1870.method_0(5);
                    if (_int4 >= 0)
                    {
                        _int4 += 257;
                        class1870.method_1(5);
                        _int3 = 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 = _class1970.method_1(class1870)) & -16) == 0)
                {
                    _byte1[_int9++] = (_byte2 = (byte)num);
                    if (_int9 == _int7)
                    {
                        return(true);
                    }
                }
                if (num >= 0)
                {
                    if (num >= 17)
                    {
                        _byte2 = 0;
                    }
                    else if (_int9 == 0)
                    {
                        goto IL_2A6;
                    }
                    _int8 = num - 16;
                    _int3 = 5;
                    goto IL_2C;
                }
                return(false);

IL_176:
                while (_int9 < _int6)
                {
                    var num2 = class1870.method_0(3);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    class1870.method_1(3);
                    _byte0[Int2[_int9]] = (byte)num2;
                    _int9++;
                }
                _class1970 = new Class197(_byte0);
                _byte0     = null;
                _int9      = 0;
                _int3      = 4;
                goto IL_F4;
IL_2C:
                var num3 = Int1[_int8];
                var num4 = class1870.method_0(num3);
                if (num4 < 0)
                {
                    return(false);
                }
                class1870.method_1(num3);
                num4 += Int0[_int8];
                if (_int9 + num4 > _int7)
                {
                    break;
                }
                while (num4-- > 0)
                {
                    _byte1[_int9++] = _byte2;
                }
                if (_int9 == _int7)
                {
                    return(true);
                }
                _int3 = 4;
                continue;
IL_1AF:
                _int6 = class1870.method_0(4);
                if (_int6 >= 0)
                {
                    _int6 += 4;
                    class1870.method_1(4);
                    _byte0 = new byte[19];
                    _int9  = 0;
                    _int3  = 3;
                    goto IL_176;
                }
                return(false);

IL_1FD:
                _int5 = class1870.method_0(5);
                if (_int5 >= 0)
                {
                    _int5++;
                    class1870.method_1(5);
                    _int7  = _int4 + _int5;
                    _byte1 = new byte[_int7];
                    _int3  = 2;
                    goto IL_1AF;
                }
                return(false);
            }
            throw new SharpZipBaseException();
IL_2A6:
            throw new SharpZipBaseException();
        }
Пример #2
0
        private bool method_3()
        {
            var i = _class2030.method_4();

            while (i >= 258)
            {
                int num;
                switch (_int4)
                {
                case 7:
                    while (((num = _class1970.method_1(_class1870)) & -256) == 0)
                    {
                        _class2030.method_0(num);
                        if (--i < 258)
                        {
                            return(true);
                        }
                    }
                    if (num >= 257)
                    {
                        try
                        {
                            _int7 = Int0[num - 257];
                            _int6 = Int1[num - 257];
                        }
                        catch (Exception)
                        {
                            throw new SharpZipBaseException("Illegal rep length code");
                        }
                        goto IL_AC;
                    }
                    if (num < 0)
                    {
                        return(false);
                    }
                    _class1971 = null;
                    _class1970 = null;
                    _int4      = 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 (_int6 > 0)
                {
                    _int4 = 10;
                    var num2 = _class1870.method_0(_int6);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    _class1870.method_1(_int6);
                    _int8 += num2;
                }
                _class2030.method_2(_int7, _int8);
                i    -= _int7;
                _int4 = 7;
                continue;
IL_FC:
                num = _class1971.method_1(_class1870);
                if (num >= 0)
                {
                    try
                    {
                        _int8 = Int2[num];
                        _int6 = Int3[num];
                    }
                    catch (Exception)
                    {
                        throw new SharpZipBaseException("Illegal rep dist code");
                    }
                    goto IL_13D;
                }
                return(false);

IL_AC:
                if (_int6 > 0)
                {
                    _int4 = 8;
                    var num3 = _class1870.method_0(_int6);
                    if (num3 < 0)
                    {
                        return(false);
                    }
                    _class1870.method_1(_int6);
                    _int7 += num3;
                }
                _int4 = 9;
                goto IL_FC;
            }
            return(true);
        }