// 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; }
// 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--; } } } } }
// 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); }
// 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); }