Beispiel #1
0
 // Token: 0x06001149 RID: 4425
 // RVA: 0x0005E2D0 File Offset: 0x0005C4D0
 internal int Initialize(GClass1 gclass1_1, int int_4)
 {
     this.gclass1_0 = gclass1_1;
     this.gclass1_0.string_0 = null;
     this.class139_0 = null;
     if (int_4 >= 8 && int_4 <= 15)
     {
         this.int_3 = int_4;
         this.class139_0 = new Class139(gclass1_1, this.method_2() ? this : null, 1 << int_4);
         this.Reset();
         return 0;
     }
     this.method_0();
     throw new GException0("Bad window size.");
 }
Beispiel #2
0
 // Token: 0x0600114D RID: 4429
 // RVA: 0x0005E7C0 File Offset: 0x0005C9C0
 internal int method_1(int[] int_12, int[] int_13, int[] int_14, int[] int_15, GClass1 gclass1_0)
 {
     this.method_3(19);
     this.int_7[0] = 0;
     int num = this.method_0(int_12, 0, 19, 19, null, null, int_14, int_13, int_15, this.int_7, this.int_10);
     if (num == -3)
     {
         gclass1_0.string_0 = "oversubscribed dynamic bit lengths tree";
         return num;
     }
     if (num == -5 || int_13[0] == 0)
     {
         gclass1_0.string_0 = "incomplete dynamic bit lengths tree";
         num = -3;
     }
     return num;
 }
Beispiel #3
0
 // Token: 0x0600114E RID: 4430
 // RVA: 0x0005E82C File Offset: 0x0005CA2C
 internal int method_2(int int_12, int int_13, int[] int_14, int[] int_15, int[] int_16, int[] int_17, int[] int_18, int[] int_19, GClass1 gclass1_0)
 {
     this.method_3(288);
     this.int_7[0] = 0;
     int num = this.method_0(int_14, 0, int_12, 257, Class142.int_3, Class142.int_4, int_17, int_15, int_19, this.int_7, this.int_10);
     if (num == 0 && int_15[0] != 0)
     {
         this.method_3(288);
         num = this.method_0(int_14, int_12, int_13, 0, Class142.int_2, Class142.int_1, int_18, int_16, int_19, this.int_7, this.int_10);
         if (num == 0 && (int_16[0] != 0 || int_12 <= 257))
         {
             return 0;
         }
         if (num == -3)
         {
             gclass1_0.string_0 = "oversubscribed distance tree";
             return num;
         }
         if (num == -5)
         {
             gclass1_0.string_0 = "incomplete distance tree";
             return -3;
         }
         if (num != -4)
         {
             gclass1_0.string_0 = "empty distance tree with lengths";
             num = -3;
         }
         return num;
     }
     else
     {
         if (num == -3)
         {
             gclass1_0.string_0 = "oversubscribed literal/length tree";
             return num;
         }
         if (num != -4)
         {
             gclass1_0.string_0 = "incomplete literal/length tree";
             num = -3;
         }
         return num;
     }
 }
Beispiel #4
0
 // Token: 0x0600114F RID: 4431
 // RVA: 0x000108C8 File Offset: 0x0000EAC8
 internal static int smethod_0(int[] int_12, int[] int_13, int[][] int_14, int[][] int_15, GClass1 gclass1_0)
 {
     int_12[0] = 9;
     int_13[0] = 5;
     int_14[0] = Class142.int_6;
     int_15[0] = Class142.int_5;
     return 0;
 }
Beispiel #5
0
 // Token: 0x0600110D RID: 4365
 // RVA: 0x0005A80C File Offset: 0x00058A0C
 internal int Initialize(GClass1 gclass1_1, Enum11 enum11_1, int int_35, int int_36, Enum13 enum13_1)
 {
     this.gclass1_0 = gclass1_1;
     this.gclass1_0.string_0 = null;
     if (int_35 < 9 || int_35 > 15)
     {
         throw new GException0("windowBits must be in the range 9..15.");
     }
     if (int_36 < 1 || int_36 > 9)
     {
         throw new GException0(string.Format("memLevel must be in the range 1.. {0}", 9));
     }
     this.gclass1_0.class137_0 = this;
     this.int_31 = int_35;
     this.int_33 = 1 << this.int_31;
     this.int_32 = this.int_33 - 1;
     this.int_3 = int_36 + 7;
     this.int_6 = 1 << this.int_3;
     this.int_4 = this.int_6 - 1;
     this.int_5 = (this.int_3 + 3 - 1) / 3;
     this.byte_1 = new byte[this.int_33 * 2];
     this.short_6 = new short[this.int_33];
     this.short_5 = new short[this.int_6];
     this.int_16 = 1 << int_36 + 6;
     this.byte_0 = new byte[this.int_16 * 4];
     this.int_2 = this.int_16 / 2;
     this.int_12 = 3 * this.int_16;
     this.enum11_0 = enum11_1;
     this.enum13_0 = enum13_1;
     this.sbyte_2 = 8;
     this.Reset();
     return 0;
 }
Beispiel #6
0
 // Token: 0x0600110C RID: 4364
 // RVA: 0x00010658 File Offset: 0x0000E858
 internal int Initialize(GClass1 gclass1_1, Enum11 enum11_1, int int_35, Enum13 enum13_1)
 {
     return this.Initialize(gclass1_1, enum11_1, int_35, 8, enum13_1);
 }
Beispiel #7
0
 // Token: 0x0600113A RID: 4410
 // RVA: 0x0005B74C File Offset: 0x0005994C
 internal Class139(GClass1 gclass1_1, object object_1, int int_16)
 {
     this.gclass1_0 = gclass1_1;
     this.int_6 = new int[4320];
     this.byte_0 = new byte[int_16];
     this.int_5 = int_16;
     this.object_0 = object_1;
     this.int_11 = 0;
     this.Reset(null);
 }
Beispiel #8
0
 // Token: 0x06001141 RID: 4417
 // RVA: 0x0005CA40 File Offset: 0x0005AC40
 internal int method_0(int int_13, int int_14, int[] int_15, int int_16, int[] int_17, int int_18, Class139 class139_0, GClass1 gclass1_0)
 {
     int num = gclass1_0.int_2;
     int num2 = gclass1_0.int_0;
     int num3 = class139_0.int_1;
     int i = class139_0.int_2;
     int num4 = class139_0.int_15;
     int num5 = (num4 < class139_0.int_12) ? (class139_0.int_12 - num4 - 1) : (class139_0.int_5 - num4);
     int num6 = Class140.int_4[int_13];
     int num7 = Class140.int_4[int_14];
     int num10;
     int num11;
     while (true)
     {
         if (i >= 20)
         {
             int num8 = num3 & num6;
             int num9 = (int_16 + num8) * 3;
             num10 = int_15[num9];
             if (num10 == 0)
             {
                 num3 >>= int_15[num9 + 1];
                 i -= int_15[num9 + 1];
                 class139_0.byte_0[num4++] = (byte)int_15[num9 + 2];
                 num5--;
             }
             else
             {
                 while (true)
                 {
                     num3 >>= int_15[num9 + 1];
                     i -= int_15[num9 + 1];
                     if ((num10 & 16) != 0)
                     {
                         break;
                     }
                     if ((num10 & 64) != 0)
                     {
                         goto IL_538;
                     }
                     num8 += int_15[num9 + 2];
                     num8 += (num3 & Class140.int_4[num10]);
                     num9 = (int_16 + num8) * 3;
                     num10 = int_15[num9];
                     if (num10 == 0)
                     {
                         goto IL_3F9;
                     }
                 }
                 num10 &= 15;
                 num11 = int_15[num9 + 2] + (num3 & Class140.int_4[num10]);
                 num3 >>= num10;
                 for (i -= num10; i < 15; i += 8)
                 {
                     num2--;
                     num3 |= (int)(gclass1_0.byte_0[num++] & 255) << i;
                 }
                 num8 = (num3 & num7);
                 num9 = (int_18 + num8) * 3;
                 num10 = int_17[num9];
                 while (true)
                 {
                     num3 >>= int_17[num9 + 1];
                     i -= int_17[num9 + 1];
                     if ((num10 & 16) != 0)
                     {
                         break;
                     }
                     if ((num10 & 64) != 0)
                     {
                         goto IL_451;
                     }
                     num8 += int_17[num9 + 2];
                     num8 += (num3 & Class140.int_4[num10]);
                     num9 = (int_18 + num8) * 3;
                     num10 = int_17[num9];
                 }
                 num10 &= 15;
                 while (i < num10)
                 {
                     num2--;
                     num3 |= (int)(gclass1_0.byte_0[num++] & 255) << i;
                     i += 8;
                 }
                 int num12 = int_17[num9 + 2] + (num3 & Class140.int_4[num10]);
                 num3 >>= num10;
                 i -= num10;
                 num5 -= num11;
                 int num13;
                 if (num4 >= num12)
                 {
                     num13 = num4 - num12;
                     if (num4 - num13 > 0 && 2 > num4 - num13)
                     {
                         class139_0.byte_0[num4++] = class139_0.byte_0[num13++];
                         class139_0.byte_0[num4++] = class139_0.byte_0[num13++];
                         num11 -= 2;
                     }
                     else
                     {
                         Array.Copy(class139_0.byte_0, num13, class139_0.byte_0, num4, 2);
                         num4 += 2;
                         num13 += 2;
                         num11 -= 2;
                     }
                 }
                 else
                 {
                     num13 = num4 - num12;
                     do
                     {
                         num13 += class139_0.int_5;
                     }
                     while (num13 < 0);
                     num10 = class139_0.int_5 - num13;
                     if (num11 > num10)
                     {
                         num11 -= num10;
                         if (num4 - num13 > 0 && num10 > num4 - num13)
                         {
                             do
                             {
                                 class139_0.byte_0[num4++] = class139_0.byte_0[num13++];
                             }
                             while (--num10 != 0);
                         }
                         else
                         {
                             Array.Copy(class139_0.byte_0, num13, class139_0.byte_0, num4, num10);
                             num4 += num10;
                             num13 += num10;
                         }
                         num13 = 0;
                     }
                 }
                 if (num4 - num13 > 0 && num11 > num4 - num13)
                 {
                     do
                     {
                         class139_0.byte_0[num4++] = class139_0.byte_0[num13++];
                     }
                     while (--num11 != 0);
                     goto IL_42F;
                 }
                 Array.Copy(class139_0.byte_0, num13, class139_0.byte_0, num4, num11);
                 num4 += num11;
                 num13 += num11;
                 goto IL_42F;
                 IL_3F9:
                 num3 >>= int_15[num9 + 1];
                 i -= int_15[num9 + 1];
                 class139_0.byte_0[num4++] = (byte)int_15[num9 + 2];
                 num5--;
             }
             IL_42F:
             if (num5 < 258 || num2 < 10)
             {
                 goto IL_4CB;
             }
         }
         else
         {
             num2--;
             num3 |= (int)(gclass1_0.byte_0[num++] & 255) << i;
             i += 8;
         }
     }
     IL_451:
     gclass1_0.string_0 = "invalid distance code";
     num11 = gclass1_0.int_0 - num2;
     num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
     num2 += num11;
     num -= num11;
     i -= num11 << 3;
     class139_0.int_1 = num3;
     class139_0.int_2 = i;
     gclass1_0.int_0 = num2;
     gclass1_0.long_1 += (long)(num - gclass1_0.int_2);
     gclass1_0.int_2 = num;
     class139_0.int_15 = num4;
     return -3;
     IL_4CB:
     num11 = gclass1_0.int_0 - num2;
     num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
     num2 += num11;
     num -= num11;
     i -= num11 << 3;
     class139_0.int_1 = num3;
     class139_0.int_2 = i;
     gclass1_0.int_0 = num2;
     gclass1_0.long_1 += (long)(num - gclass1_0.int_2);
     gclass1_0.int_2 = num;
     class139_0.int_15 = num4;
     return 0;
     IL_538:
     if ((num10 & 32) != 0)
     {
         num11 = gclass1_0.int_0 - num2;
         num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
         num2 += num11;
         num -= num11;
         i -= num11 << 3;
         class139_0.int_1 = num3;
         class139_0.int_2 = i;
         gclass1_0.int_0 = num2;
         gclass1_0.long_1 += (long)(num - gclass1_0.int_2);
         gclass1_0.int_2 = num;
         class139_0.int_15 = num4;
         return 1;
     }
     gclass1_0.string_0 = "invalid literal/length code";
     num11 = gclass1_0.int_0 - num2;
     num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
     num2 += num11;
     num -= num11;
     i -= num11 << 3;
     class139_0.int_1 = num3;
     class139_0.int_2 = i;
     gclass1_0.int_0 = num2;
     gclass1_0.long_1 += (long)(num - gclass1_0.int_2);
     gclass1_0.int_2 = num;
     class139_0.int_15 = num4;
     return -3;
 }