Beispiel #1
0
        public int method_18(long long6)
        {
            var num = method_15(-1);

            if (!_bool0)
            {
                return(-1);
            }
            if (long6 < 0L || long6 > num)
            {
                _long4 = -1L;
                method_5();
                return(-1);
            }
            int i;

            for (i = _int20 - 1; i >= 0; i--)
            {
                num -= _long3[i];
                if (long6 >= num)
                {
                    break;
                }
            }
            var num2   = long6 - num;
            var num3   = _long1[i + 1];
            var num4   = _long1[i];
            var int_   = (int)num4;
            var @class = new Class48();

            while (num4 < num3)
            {
                long num5;
                if (num3 - num4 < Int2)
                {
                    num5 = num4;
                }
                else
                {
                    num5 = (num3 + num4) / 2L;
                }
                method_8(num5);
                var num6 = method_0(@class, num3 - num5);
                if (num6 == -1)
                {
                    num3 = num5;
                }
                else
                {
                    var num7 = @class.method_4();
                    if (num7 < num2)
                    {
                        int_ = num6;
                        num4 = _long0;
                    }
                    else
                    {
                        num3 = num5;
                    }
                }
            }
            if (method_17(int_) != 0)
            {
                _long4 = -1L;
                method_5();
                return(-1);
            }
            if (_long4 >= long6)
            {
                _long4 = -1L;
                method_5();
                return(-1);
            }
            if (long6 > method_15(-1))
            {
                _long4 = -1L;
                method_5();
                return(-1);
            }
            while (_long4 < long6)
            {
                var num8 = (int)(long6 - _long4);
                var num9 = _oggClass1.method_3();
                if (num9 > num8)
                {
                    num9 = num8;
                }
                _oggClass1.method_6(num9);
                _long4 += num9;
                if (num9 < num8 && method_6(1) == 0)
                {
                    _long4 = method_15(-1);
                }
            }
            return(0);
        }
Beispiel #2
0
        public bool method_6(Class48 class480)
        {
            var array = class480.Byte0;
            var num   = class480.Int0;
            var src   = class480.Byte1;
            var num2  = class480.Int2;
            var num3  = class480.Int3;
            var i     = 0;
            var num4  = class480.method_0();
            var num5  = class480.method_1();
            var num6  = class480.method_2();
            var num7  = class480.method_3();
            var num8  = class480.method_4();
            var num9  = class480.method_5();
            var num10 = class480.method_6();
            var num11 = array[num + 26] & 255;
            var num12 = _int7;
            var num13 = _int2;

            if (num13 != 0)
            {
                _int1 -= num13;
                if (_int1 != 0)
                {
                    Buffer.BlockCopy(_byte0, num13, _byte0, 0, _int1);
                }
                _int2 = 0;
            }
            if (num12 != 0)
            {
                if (_int5 - num12 != 0)
                {
                    Buffer.BlockCopy(_int3, num12 << 2, _int3, 0, _int5 - num12 << 2);
                    Buffer.BlockCopy(_long0, num12 << 3, _long0, 0, _int5 - num12 << 3);
                }
                _int5 -= num12;
                _int6 -= num12;
                _int7  = 0;
            }
            if (num9 != _int11)
            {
                return(false);
            }
            if (num4 > 0)
            {
                return(false);
            }
            method_4(num11 + 1);
            if (num10 != _int12)
            {
                for (var j = _int6; j < _int5; j++)
                {
                    _int1 -= (_int3[j] & 255);
                }
                _int5 = _int6;
                if (_int12 != -1)
                {
                    _int3[_int5++] = 1024;
                    _int6++;
                }
                if (num5 != 0)
                {
                    num6 = 0;
                    while (i < num11)
                    {
                        var num14 = array[num + 27 + i] & 255;
                        num2 += num14;
                        num3 -= num14;
                        if (num14 < 255)
                        {
                            i++;
                            break;
                        }
                        i++;
                    }
                }
            }
            if (num3 != 0)
            {
                method_3(num3);
                Buffer.BlockCopy(src, num2, _byte0, _int1, num3);
                _int1 += num3;
            }
            var num15 = -1;

            while (i < num11)
            {
                var num16 = array[num + 27 + i] & 255;
                _int3[_int5]  = num16;
                _long0[_int5] = -1L;
                if (num6 != 0)
                {
                    _int3[_int5] |= 256;
                    num6          = 0;
                }
                if (num16 < 255)
                {
                    num15 = _int5;
                }
                _int5++;
                i++;
                if (num16 < 255)
                {
                    _int6 = _int5;
                }
            }
            if (num15 != -1)
            {
                _long0[num15] = num8;
            }
            if (num7 != 0)
            {
                Int9 = 1;
                if (_int5 > 0)
                {
                    _int3[_int5 - 1] |= 512;
                }
            }
            _int12 = num10 + 1;
            return(true);
        }
Beispiel #3
0
        private void method_3(OggClass5 class491, Class47 class471, int int24)
        {
            var @class = new Class48();

            _oggClass5 = new OggClass5[_int20];
            _class470  = new Class47[_int20];
            _long2     = new long[_int20];
            _long3     = new long[_int20];
            _int21     = new int[_int20];
            var i = 0;

            while (i < _int20)
            {
                if (class491 != null && class471 != null && i == 0)
                {
                    _oggClass5[i] = class491;
                    _class470[i]  = class471;
                    _long2[i]     = int24;
                }
                else
                {
                    method_8(_long1[i]);
                    if (method_2(_oggClass5[i], _class470[i], null, null) == -1)
                    {
                        Console.Error.WriteLine("Error opening logical bitstream #" + (i + 1) + "\n");
                        _long2[i] = -1L;
                    }
                    else
                    {
                        _long2[i] = _long0;
                        _class560.method_2();
                    }
                }
                var long_ = _long1[i + 1];
                method_8(long_);
                long num2;
                while (true)
                {
                    var num = method_1(@class);
                    if (num == -1)
                    {
                        goto Block_6;
                    }
                    num2 = @class.method_4();
                    if (num2 != -1L)
                    {
                        goto Block_5;
                    }
                }
IL_189:
                i++;
                continue;
Block_5:
                _int21[i] = @class.method_5();
                _long3[i] = num2;
                goto IL_189;
Block_6:
                Console.Error.WriteLine("Could not find last page of logical bitstream #" + i + "\n");
                _oggClass5[i].method_1();
                _class470[i].method_2();
                goto IL_189;
            }
        }