// Token: 0x060014CA RID: 5322 // RVA: 0x0006BAB0 File Offset: 0x00069CB0 static Class198() { try { byte[] array = new byte[288]; int i = 0; while (i < 144) { array[i++] = 8; } while (i < 256) { array[i++] = 9; } while (i < 280) { array[i++] = 7; } while (i < 288) { array[i++] = 8; } Class198.class198_0 = new Class198(array); array = new byte[32]; i = 0; while (i < 32) { array[i++] = 5; } Class198.class198_1 = new Class198(array); } catch (Exception) { throw new Exception6("InflaterHuffmanTree: static tree length illegal"); } }
// Token: 0x060014C6 RID: 5318 // RVA: 0x0006B730 File Offset: 0x00069930 public bool method_0(Class201 class201_0) { while (true) { switch (this.int_3) { case 0: this.int_4 = class201_0.method_0(5); if (this.int_4 >= 0) { this.int_4 += 257; class201_0.method_1(5); this.int_3 = 1; goto IL_1FD; } return false; case 1: goto IL_1FD; case 2: goto IL_1AF; case 3: goto IL_176; case 4: break; case 5: goto IL_2C; default: continue; } IL_F4: int num; while (((num = this.class198_0.method_1(class201_0)) & -16) == 0) { this.byte_1[this.int_9++] = (this.byte_2 = (byte)num); if (this.int_9 == this.int_7) { return true; } } if (num >= 0) { if (num >= 17) { this.byte_2 = 0; } else if (this.int_9 == 0) { goto IL_2A6; } this.int_8 = num - 16; this.int_3 = 5; goto IL_2C; } return false; IL_176: while (this.int_9 < this.int_6) { int num2 = class201_0.method_0(3); if (num2 < 0) { return false; } class201_0.method_1(3); this.byte_0[Class197.int_2[this.int_9]] = (byte)num2; this.int_9++; } this.class198_0 = new Class198(this.byte_0); this.byte_0 = null; this.int_9 = 0; this.int_3 = 4; goto IL_F4; IL_2C: int num3 = Class197.int_1[this.int_8]; int num4 = class201_0.method_0(num3); if (num4 < 0) { return false; } class201_0.method_1(num3); num4 += Class197.int_0[this.int_8]; if (this.int_9 + num4 > this.int_7) { break; } while (num4-- > 0) { this.byte_1[this.int_9++] = this.byte_2; } if (this.int_9 == this.int_7) { return true; } this.int_3 = 4; continue; IL_1AF: this.int_6 = class201_0.method_0(4); if (this.int_6 >= 0) { this.int_6 += 4; class201_0.method_1(4); this.byte_0 = new byte[19]; this.int_9 = 0; this.int_3 = 3; goto IL_176; } return false; IL_1FD: this.int_5 = class201_0.method_0(5); if (this.int_5 >= 0) { this.int_5++; class201_0.method_1(5); this.int_7 = this.int_4 + this.int_5; this.byte_1 = new byte[this.int_7]; this.int_3 = 2; goto IL_1AF; } return false; } throw new Exception6(); IL_2A6: throw new Exception6(); }
// Token: 0x060014BE RID: 5310 // RVA: 0x0006B39C File Offset: 0x0006959C private bool method_4() { switch (this.int_4) { case 0: return this.method_0(); case 1: return this.method_1(); case 2: if (this.bool_0) { if (this.bool_1) { this.int_4 = 12; return false; } this.class201_0.method_4(); this.int_6 = 32; this.int_4 = 11; return true; } else { int num = this.class201_0.method_0(3); if (num < 0) { return false; } this.class201_0.method_1(3); if ((num & 1) != 0) { this.bool_0 = true; } switch (num >> 1) { case 0: this.class201_0.method_4(); this.int_4 = 3; break; case 1: this.class198_0 = Class198.class198_0; this.class198_1 = Class198.class198_1; this.int_4 = 7; break; case 2: this.class197_0 = new Class197(); this.int_4 = 6; break; default: throw new Exception6("Unknown block type " + num); } return true; } break; case 3: if ((this.int_9 = this.class201_0.method_0(16)) < 0) { return false; } this.class201_0.method_1(16); this.int_4 = 4; break; case 4: break; case 5: goto IL_1A4; case 6: if (!this.class197_0.method_0(this.class201_0)) { return false; } this.class198_0 = this.class197_0.method_1(); this.class198_1 = this.class197_0.method_2(); this.int_4 = 7; goto IL_228; case 7: case 8: case 9: case 10: goto IL_228; case 11: return this.method_3(); case 12: return false; default: throw new Exception6("Inflater.Decode unknown mode"); } int num2 = this.class201_0.method_0(16); if (num2 < 0) { return false; } this.class201_0.method_1(16); if (num2 != (this.int_9 ^ 65535)) { throw new Exception6("broken uncompressed block"); } this.int_4 = 5; IL_1A4: int num3 = this.class200_0.method_1(this.class201_0, this.int_9); this.int_9 -= num3; if (this.int_9 == 0) { this.int_4 = 2; return true; } return !this.class201_0.method_5(); IL_228: return this.method_2(); }
// Token: 0x060014BC RID: 5308 // RVA: 0x0006B0CC File Offset: 0x000692CC private bool method_2() { int i = this.class200_0.method_2(); while (i >= 258) { int num; switch (this.int_4) { case 7: while (((num = this.class198_0.method_1(this.class201_0)) & -256) == 0) { this.class200_0.Write(num); if (--i < 258) { return true; } } if (num >= 257) { try { this.int_7 = Class196.int_0[num - 257]; this.int_6 = Class196.int_1[num - 257]; } catch (Exception) { throw new Exception6("Illegal rep length code"); } goto IL_AC; } if (num < 0) { return false; } this.class198_1 = null; this.class198_0 = null; this.int_4 = 2; return true; case 8: goto IL_AC; case 9: goto IL_FC; case 10: break; default: throw new Exception6("Inflater unknown mode"); } IL_13D: if (this.int_6 > 0) { this.int_4 = 10; int num2 = this.class201_0.method_0(this.int_6); if (num2 < 0) { return false; } this.class201_0.method_1(this.int_6); this.int_8 += num2; } this.class200_0.Repeat(this.int_7, this.int_8); i -= this.int_7; this.int_4 = 7; continue; IL_FC: num = this.class198_1.method_1(this.class201_0); if (num >= 0) { try { this.int_8 = Class196.int_2[num]; this.int_6 = Class196.int_3[num]; } catch (Exception) { throw new Exception6("Illegal rep dist code"); } goto IL_13D; } return false; IL_AC: if (this.int_6 > 0) { this.int_4 = 8; int num3 = this.class201_0.method_0(this.int_6); if (num3 < 0) { return false; } this.class201_0.method_1(this.int_6); this.int_7 += num3; } this.int_4 = 9; goto IL_FC; } return true; }