示例#1
0
 // Token: 0x06001176 RID: 4470
 // RVA: 0x0005FB7C File Offset: 0x0005DD7C
 public int method_2()
 {
     if (this.class137_0 == null)
     {
         throw new GException0("No Deflate State!");
     }
     int result = this.class137_0.method_16();
     this.class137_0 = null;
     return result;
 }
示例#2
0
 // Token: 0x0600115A RID: 4442
 // RVA: 0x0005EDB4 File Offset: 0x0005CFB4
 internal void method_1(Class137 class137_0)
 {
     short[] array = this.short_0;
     short[] short_ = this.class144_0.short_2;
     int[] array2 = this.class144_0.int_2;
     int num = this.class144_0.int_1;
     int num2 = this.class144_0.int_4;
     int num3 = 0;
     for (int i = 0; i <= 15; i++)
     {
         class137_0.short_1[i] = 0;
     }
     array[class137_0.int_7[class137_0.int_9] * 2 + 1] = 0;
     int j;
     for (j = class137_0.int_9 + 1; j < Class145.int_5; j++)
     {
         int num4 = class137_0.int_7[j];
         int i = (int)(array[(int)(array[num4 * 2 + 1] * 2 + 1)] + 1);
         if (i > num2)
         {
             i = num2;
             num3++;
         }
         array[num4 * 2 + 1] = (short)i;
         if (num4 <= this.int_6)
         {
             class137_0.short_1[i] = class137_0.short_1[i] + 1;
             int num5 = 0;
             if (num4 >= num)
             {
                 num5 = array2[num4 - num];
             }
             short num6 = array[num4 * 2];
             class137_0.int_24 += (int)num6 * (i + num5);
             if (short_ != null)
             {
                 class137_0.int_28 += (int)num6 * ((int)short_[num4 * 2 + 1] + num5);
             }
         }
     }
     if (num3 != 0)
     {
         do
         {
             int i = num2 - 1;
             while (class137_0.short_1[i] == 0)
             {
                 i--;
             }
             class137_0.short_1[i] = class137_0.short_1[i] - 1;
             class137_0.short_1[i + 1] = class137_0.short_1[i + 1] + 2;
             class137_0.short_1[num2] = class137_0.short_1[num2] - 1;
             num3 -= 2;
         }
         while (num3 > 0);
         for (int i = num2; i != 0; i--)
         {
             int num4 = (int)class137_0.short_1[i];
             while (num4 != 0)
             {
                 int num7 = class137_0.int_7[--j];
                 if (num7 <= this.int_6)
                 {
                     if ((int)array[num7 * 2 + 1] != i)
                     {
                         class137_0.int_24 += (i - (int)array[num7 * 2 + 1]) * (int)array[num7 * 2];
                         array[num7 * 2 + 1] = (short)i;
                     }
                     num4--;
                 }
             }
         }
     }
 }
示例#3
0
 // Token: 0x06001174 RID: 4468
 // RVA: 0x0005FB24 File Offset: 0x0005DD24
 private int method_0(bool bool_0)
 {
     if (this.class141_0 != null)
     {
         throw new GException0("You may not call InitializeDeflate() after calling InitializeInflate().");
     }
     this.class137_0 = new Class137();
     this.class137_0.method_32(bool_0);
     return this.class137_0.Initialize(this, this.enum11_0, this.int_4, this.enum13_0);
 }
示例#4
0
 // Token: 0x06001158 RID: 4440
 // RVA: 0x0005EB80 File Offset: 0x0005CD80
 internal void method_0(Class137 class137_0)
 {
     short[] array = this.short_0;
     short[] short_ = this.class144_0.short_2;
     int num = this.class144_0.int_0;
     int num2 = -1;
     class137_0.int_8 = 0;
     class137_0.int_9 = Class145.int_5;
     for (int i = 0; i < num; i++)
     {
         if (array[i * 2] != 0)
         {
             num2 = (class137_0.int_7[++class137_0.int_8] = i);
             class137_0.sbyte_1[i] = 0;
         }
         else
         {
             array[i * 2 + 1] = 0;
         }
     }
     int num3;
     while (class137_0.int_8 < 2)
     {
         num3 = (class137_0.int_7[++class137_0.int_8] = ((num2 < 2) ? (++num2) : 0));
         array[num3 * 2] = 1;
         class137_0.sbyte_1[num3] = 0;
         class137_0.int_24--;
         if (short_ != null)
         {
             class137_0.int_28 -= (int)short_[num3 * 2 + 1];
         }
     }
     this.int_6 = num2;
     for (int i = class137_0.int_8 / 2; i >= 1; i--)
     {
         class137_0.method_19(array, i);
     }
     num3 = num;
     do
     {
         int i = class137_0.int_7[1];
         class137_0.int_7[1] = class137_0.int_7[class137_0.int_8--];
         class137_0.method_19(array, 1);
         int num4 = class137_0.int_7[1];
         class137_0.int_7[--class137_0.int_9] = i;
         class137_0.int_7[--class137_0.int_9] = num4;
         array[num3 * 2] = array[i * 2] + array[num4 * 2];
         class137_0.sbyte_1[num3] = (sbyte)(Math.Max((byte)class137_0.sbyte_1[i], (byte)class137_0.sbyte_1[num4]) + 1);
         array[i * 2 + 1] = (array[num4 * 2 + 1] = (short)num3);
         class137_0.int_7[1] = num3++;
         class137_0.method_19(array, 1);
     }
     while (class137_0.int_8 >= 2);
     class137_0.int_7[--class137_0.int_9] = class137_0.int_7[1];
     this.method_1(class137_0);
     Class145.smethod_2(array, num2, class137_0.short_1);
 }