// Token: 0x0600001C RID: 28 RVA: 0x000171F0 File Offset: 0x000153F0
            public int method_1(Class1.Class3 class3_0)
            {
                int num;

                if ((num = class3_0.method_0(9)) >= 0)
                {
                    int num2;
                    if ((num2 = (int)this.short_0[num]) >= 0)
                    {
                        class3_0.method_1(num2 & 15);
                        return(num2 >> 4);
                    }
                    int num3 = -(num2 >> 4);
                    int int_ = num2 & 15;
                    if ((num = class3_0.method_0(int_)) >= 0)
                    {
                        num2 = (int)this.short_0[num3 | num >> 9];
                        class3_0.method_1(num2 & 15);
                        return(num2 >> 4);
                    }
                    int num4 = class3_0.method_2();
                    num  = class3_0.method_0(num4);
                    num2 = (int)this.short_0[num3 | num >> 9];
                    if ((num2 & 15) <= num4)
                    {
                        class3_0.method_1(num2 & 15);
                        return(num2 >> 4);
                    }
                    return(-1);
                }
                else
                {
                    int num5 = class3_0.method_2();
                    num = class3_0.method_0(num5);
                    int num2 = (int)this.short_0[num];
                    if (num2 >= 0 && (num2 & 15) <= num5)
                    {
                        class3_0.method_1(num2 & 15);
                        return(num2 >> 4);
                    }
                    return(-1);
                }
            }
            // Token: 0x06000013 RID: 19 RVA: 0x00016E1C File Offset: 0x0001501C
            public int method_3(Class1.Class3 class3_0, int int_4)
            {
                int_4 = Math.Min(Math.Min(int_4, Class1.Class4.int_0 - this.int_3), class3_0.method_3());
                int num = Class1.Class4.int_0 - this.int_2;
                int num2;

                if (int_4 > num)
                {
                    num2 = class3_0.method_6(this.byte_0, this.int_2, num);
                    if (num2 == num)
                    {
                        num2 += class3_0.method_6(this.byte_0, 0, int_4 - num);
                    }
                }
                else
                {
                    num2 = class3_0.method_6(this.byte_0, this.int_2, int_4);
                }
                this.int_2  = (this.int_2 + num2 & Class1.Class4.int_1);
                this.int_3 += num2;
                return(num2);
            }
            // Token: 0x0600001E RID: 30 RVA: 0x000172C8 File Offset: 0x000154C8
            public bool method_0(Class1.Class3 class3_0)
            {
                for (;;)
                {
                    switch (this.int_2)
                    {
                    case 0:
                        this.int_3 = class3_0.method_0(5);
                        if (this.int_3 >= 0)
                        {
                            this.int_3 += 257;
                            class3_0.method_1(5);
                            this.int_2 = 1;
                            goto IL_1DD;
                        }
                        return(false);

                    case 1:
                        goto IL_1DD;

                    case 2:
                        goto IL_18F;

                    case 3:
                        goto IL_156;

                    case 4:
                        break;

                    case 5:
                        goto IL_2C;

                    default:
                        continue;
                    }
IL_E1:
                    int num;
                    while (((num = this.class5_0.method_1(class3_0)) & -16) == 0)
                    {
                        this.byte_1[this.int_8++] = (this.byte_2 = (byte)num);
                        if (this.int_8 == this.int_6)
                        {
                            return(true);
                        }
                    }
                    if (num >= 0)
                    {
                        if (num >= 17)
                        {
                            this.byte_2 = 0;
                        }
                        this.int_7 = num - 16;
                        this.int_2 = 5;
                        goto IL_2C;
                    }
                    return(false);

IL_156:
                    while (this.int_8 < this.int_5)
                    {
                        int num2 = class3_0.method_0(3);
                        if (num2 < 0)
                        {
                            return(false);
                        }
                        class3_0.method_1(3);
                        this.byte_0[Class1.Class6.int_9[this.int_8]] = (byte)num2;
                        this.int_8++;
                    }
                    this.class5_0 = new Class1.Class5(this.byte_0);
                    this.byte_0   = null;
                    this.int_8    = 0;
                    this.int_2    = 4;
                    goto IL_E1;
IL_2C:
                    int num3 = Class1.Class6.int_1[this.int_7];
                    int num4 = class3_0.method_0(num3);
                    if (num4 < 0)
                    {
                        return(false);
                    }
                    class3_0.method_1(num3);
                    num4 += Class1.Class6.int_0[this.int_7];
                    while (num4-- > 0)
                    {
                        this.byte_1[this.int_8++] = this.byte_2;
                    }
                    if (this.int_8 == this.int_6)
                    {
                        break;
                    }
                    this.int_2 = 4;
                    continue;
IL_18F:
                    this.int_5 = class3_0.method_0(4);
                    if (this.int_5 >= 0)
                    {
                        this.int_5 += 4;
                        class3_0.method_1(4);
                        this.byte_0 = new byte[19];
                        this.int_8  = 0;
                        this.int_2  = 3;
                        goto IL_156;
                    }
                    return(false);

IL_1DD:
                    this.int_4 = class3_0.method_0(5);
                    if (this.int_4 >= 0)
                    {
                        this.int_4++;
                        class3_0.method_1(5);
                        this.int_6  = this.int_3 + this.int_4;
                        this.byte_1 = new byte[checked ((uint)this.int_6)];
                        this.int_2  = 2;
                        goto IL_18F;
                    }
                    return(false);
                }
                return(true);
            }