internal int method_34(Class1068 A_0, CompressionLevel A_1, int A_2, int A_3, CompressionStrategy A_4) { int num = 6; this.class1068_0 = A_0; this.class1068_0.string_0 = null; if ((A_2 < 9) || (A_2 > 15)) { throw new Exception0(BookmarkStart.b("嬫䜭帯嘱嬳䄵稷匹䠻䴽怿⽁ㅃ㕅㱇橉⹋⭍灏㭑㩓癕ⱗ㉙㥛繝͡ť൧䩩啫䁭幯䍱䅳塵", num)); } if ((A_3 < 1) || (A_3 > 9)) { throw new Exception0(string.Format(BookmarkStart.b("䄫䬭崯縱儳䀵崷嘹᰻匽㔿ㅁぃ晅⩇⽉汋❍㹏牑⁓㹕㵗穙⹛㽝աţ䙥奧䑩䉫乭୯䉱ॳ", num), 9)); } this.class1068_0.class935_0 = this; this.int_57 = A_2; this.int_59 = ((int)1) << this.int_57; this.int_58 = this.int_59 - 1; this.int_32 = A_3 + 7; this.int_35 = ((int)1) << this.int_32; this.int_33 = this.int_35 - 1; this.int_34 = ((this.int_32 + 3) - 1) / 3; this.byte_1 = new byte[this.int_59 * 2]; this.short_6 = new short[this.int_59]; this.short_5 = new short[this.int_35]; this.int_43 = ((int)1) << (A_3 + 6); this.byte_0 = new byte[this.int_43 * 4]; this.int_28 = this.int_43; this.int_29 = 3 * this.int_43; this.compressionLevel_0 = A_1; this.compressionStrategy_0 = A_4; this.method_35(); return(0); }
internal static int smethod_0(int[] A_0, int[] A_1, int[][] A_2, int[][] A_3, Class1068 A_4) { A_0[0] = 9; A_1[0] = 5; A_2[0] = int_13; A_3[0] = int_14; return(0); }
internal Class607(Class1068 A_0, object A_1, int A_2) { this.class1068_0 = A_0; this.int_18 = new int[0x10e0]; this.byte_0 = new byte[A_2]; this.int_17 = A_2; this.object_0 = A_1; this.int_22 = 0; this.method_0(null); }
private void method_5() { if (this.method_2() != null) { if (this.method_1()) { this.class1068_0.method_15(); } else { this.class1068_0.method_6(); } this.class1068_0 = null; } }
private Class1068 method_2() { if (this.class1068_0 == null) { bool flag = this.zlibStreamFlavor_0 == ZlibStreamFlavor.ZLIB; this.class1068_0 = new Class1068(); if (this.compressionMode_0 == CompressionMode.Decompress) { this.class1068_0.method_2(flag); } else { this.class1068_0.compressionStrategy_0 = this.compressionStrategy_0; this.class1068_0.method_10(this.compressionLevel_0, flag); } } return(this.class1068_0); }
internal int method_4(Class1068 A_0, int A_1) { int num = 7; this.class1068_0 = A_0; this.class1068_0.string_0 = null; this.class607_0 = null; if ((A_1 >= 8) && (A_1 <= 15)) { this.int_19 = A_1; } else { this.method_3(); throw new Exception0(BookmarkStart.b("漬丮唰ጲ䈴帶圸强刼䠾慀あⱄ㵆ⱈ敊", num)); } this.class607_0 = new Class607(A_0, this.method_0() ? this : null, ((int)1) << A_1); this.method_2(); return(0); }
internal int method_1(int[] A_0, int[] A_1, int[] A_2, int[] A_3, Class1068 A_4) { int num = 14; this.method_3(0x13); this.int_20[0] = 0; int num2 = this.method_0(A_0, 0, 0x13, 0x13, null, null, A_2, A_1, A_3, this.int_20, this.int_23); if (num2 == -3) { A_4.string_0 = BookmarkStart.b("嬳䀵崷䠹伻䬽∿ㅁ❃㑅ⅇ⡉⥋⩍灏㙑ⵓ㡕㥗㝙㕛㵝䁟aൣብ䡧٩५mᝯٱᱳյ塷᭽", num); return(num2); } if ((num2 != -5) && (A_1[0] != 0)) { return(num2); } A_4.string_0 = BookmarkStart.b("崳堵嬷唹儻丽ⰿ❁ぃ⍅桇⹉㕋⁍ㅏ㽑㵓㕕硗㡙㕛⩝䁟ţࡥཧṩѫᵭ偯ٱٳ፵ᵷ", num); return(-3); }
internal int method_8(Class1068 A_0) { return(this.class607_0.method_4()); }
internal int method_2(int A_0, int A_1, int[] A_2, int[] A_3, int[] A_4, int[] A_5, int[] A_6, int[] A_7, Class1068 A_8) { int num = 11; this.method_3(0x120); this.int_20[0] = 0; int num2 = this.method_0(A_2, 0, A_0, 0x101, int_15, int_16, A_5, A_3, A_7, this.int_20, this.int_23); if ((num2 == 0) && (A_3[0] != 0)) { this.method_3(0x120); num2 = this.method_0(A_2, A_0, A_1, 0, int_17, int_18, A_6, A_4, A_7, this.int_20, this.int_23); if ((num2 == 0) && ((A_4[0] != 0) || (A_0 <= 0x101))) { return(0); } switch (num2) { case -3: A_8.string_0 = BookmarkStart.b("帰䔲倴䔶䨸为弼䰾≀ㅂⱄ╆ⱈ⽊浌⭎㡐⁒⅔㙖㝘㡚㡜罞ᕠᅢdɦ", num); return(num2); case -5: A_8.string_0 = BookmarkStart.b("堰崲嘴堶吸䬺儼娾㕀♂敄⍆⁈㡊㥌⹎㽐げご睖ⵘ⥚㡜㩞", num); return(-3); } if (num2 != -4) { A_8.string_0 = BookmarkStart.b("吰帲䔴䌶䀸ᬺ夼嘾㉀㝂⑄⥆⩈⹊浌㭎⍐㙒ご睖⹘㉚⥜㝞䅠རd०Ὢլᱮ", num); num2 = -3; } return(num2); } if (num2 == -3) { A_8.string_0 = BookmarkStart.b("帰䔲倴䔶䨸为弼䰾≀ㅂⱄ╆ⱈ⽊浌⍎㡐❒ご╖㡘㝚牜㍞Ѡൢɤ፦Ũ䭪ᥬᵮᑰᙲ", num); return(num2); } if (num2 != -4) { A_8.string_0 = BookmarkStart.b("堰崲嘴堶吸䬺儼娾㕀♂敄⭆⁈㽊⡌㵎ぐ㽒穔㭖㱘㕚㩜⭞ॠ䍢ᅤᕦ౨", num); num2 = -3; } return(num2); }
internal int method_1(Class607 A_0, int A_1) { int num9; int num12; int num = 7; int num2 = 0; int num3 = 0; int num4 = 0; Class1068 class2 = A_0.class1068_0; num4 = class2.int_0; int num5 = class2.int_1; num2 = A_0.int_14; num3 = A_0.int_15; int num6 = A_0.int_26; int num7 = (num6 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); goto Label_066B; Label_0145: num12 = num6 - this.int_11; while (num12 < 0) { num12 += A_0.int_17; } while (this.int_15 != 0) { if (num7 == 0) { if ((num6 == A_0.int_17) && (A_0.int_23 != 0)) { num6 = 0; num7 = (0 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); } if (num7 == 0) { A_0.int_26 = num6; A_1 = A_0.method_5(A_1); num6 = A_0.int_26; num7 = (num6 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); if ((num6 == A_0.int_17) && (A_0.int_23 != 0)) { num6 = 0; num7 = (0 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); } if (num7 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } } } A_0.byte_0[num6++] = A_0.byte_0[num12++]; num7--; if (num12 == A_0.int_17) { num12 = 0; } this.int_15--; } this.int_19 = 0; goto Label_066B; Label_02E2: num9 = this.int_20; while (num3 < num9) { if (num5 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } A_1 = 0; num5--; num2 |= (class2.byte_0[num4++] & 0xff) << num3; num3 += 8; } int index = (this.int_22 + (num2 & int_10[num9])) * 3; num2 = num2 >> this.int_21[index + 1]; num3 -= this.int_21[index + 1]; int num11 = this.int_21[index]; if ((num11 & 0x10) != 0) { this.int_14 = num11 & 15; this.int_11 = this.int_21[index + 2]; this.int_19 = 4; } else { if ((num11 & 0x40) != 0) { this.int_19 = 9; class2.string_0 = BookmarkStart.b("䐬䄮䜰刲头帶崸ᬺ夼嘾㉀㝂⑄⥆⩈⹊浌ⱎ㹐㝒ご", num); A_1 = -3; A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(-3)); } this.int_20 = num11; this.int_22 = (index / 3) + this.int_21[index + 2]; } goto Label_066B; Label_044D: num9 = this.int_20; while (num3 < num9) { if (num5 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } A_1 = 0; num5--; num2 |= (class2.byte_0[num4++] & 0xff) << num3; num3 += 8; } index = (this.int_22 + (num2 & int_10[num9])) * 3; num2 = Class604.smethod_0(num2, this.int_21[index + 1]); num3 -= this.int_21[index + 1]; num11 = this.int_21[index]; if (num11 == 0) { this.int_16 = this.int_21[index + 2]; this.int_19 = 6; } else if ((num11 & 0x10) != 0) { this.int_14 = num11 & 15; this.int_15 = this.int_21[index + 2]; this.int_19 = 2; } else if ((num11 & 0x40) == 0) { this.int_20 = num11; this.int_22 = (index / 3) + this.int_21[index + 2]; } else { if ((num11 & 0x20) == 0) { this.int_19 = 9; class2.string_0 = BookmarkStart.b("䐬䄮䜰刲头帶崸ᬺ儼嘾㕀♂㝄♆╈摊⅌⩎㽐㑒⅔㽖祘㡚㉜㭞Ѡ", num); A_1 = -3; A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(-3)); } this.int_19 = 7; } Label_066B: switch (this.int_19) { case 0: if ((num7 >= 0x102) && (num5 >= 10)) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; A_1 = this.method_2(this.byte_1, this.byte_0, this.int_17, this.int_18, this.int_12, this.int_13, A_0, class2); num4 = class2.int_0; num5 = class2.int_1; num2 = A_0.int_14; num3 = A_0.int_15; num6 = A_0.int_26; num7 = (num6 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); if (A_1 != 0) { this.int_19 = (A_1 == 1) ? 7 : 9; goto Label_066B; } } this.int_20 = this.byte_1; this.int_21 = this.int_17; this.int_22 = this.int_18; this.int_19 = 1; goto Label_044D; case 1: goto Label_044D; case 2: num9 = this.int_14; while (num3 < num9) { if (num5 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } A_1 = 0; num5--; num2 |= (class2.byte_0[num4++] & 0xff) << num3; num3 += 8; } this.int_15 += num2 & int_10[num9]; num2 = num2 >> num9; num3 -= num9; this.int_20 = this.byte_0; this.int_21 = this.int_12; this.int_22 = this.int_13; this.int_19 = 3; goto Label_02E2; case 3: goto Label_02E2; case 4: num9 = this.int_14; while (num3 < num9) { if (num5 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } A_1 = 0; num5--; num2 |= (class2.byte_0[num4++] & 0xff) << num3; num3 += 8; } this.int_11 += num2 & int_10[num9]; num2 = num2 >> num9; num3 -= num9; this.int_19 = 5; goto Label_0145; case 5: goto Label_0145; case 6: if (num7 == 0) { if ((num6 == A_0.int_17) && (A_0.int_23 != 0)) { num6 = 0; num7 = (0 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); } if (num7 == 0) { A_0.int_26 = num6; A_1 = A_0.method_5(A_1); num6 = A_0.int_26; num7 = (num6 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); if ((num6 == A_0.int_17) && (A_0.int_23 != 0)) { num6 = 0; num7 = (0 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); } if (num7 == 0) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } } } A_1 = 0; A_0.byte_0[num6++] = (byte)this.int_16; num7--; this.int_19 = 0; goto Label_066B; case 7: if (num3 > 7) { num3 -= 8; num5++; num4--; } A_0.int_26 = num6; A_1 = A_0.method_5(A_1); num6 = A_0.int_26; num7 = (num6 < A_0.int_23) ? ((A_0.int_23 - num6) - 1) : (A_0.int_17 - num6); if (A_0.int_23 != A_0.int_26) { A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(A_1)); } this.int_19 = 8; break; case 8: break; case 9: A_1 = -3; A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(-3)); default: A_1 = -2; A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(-2)); } A_1 = 1; A_0.int_14 = num2; A_0.int_15 = num3; class2.int_1 = num5; class2.long_0 += num4 - class2.int_0; class2.int_0 = num4; A_0.int_26 = num6; return(A_0.method_5(1)); }
internal int method_2(int A_0, int A_1, int[] A_2, int A_3, int[] A_4, int A_5, Class607 A_6, Class1068 A_7) { int num = 0x13; int num2 = A_7.int_0; int num3 = A_7.int_1; int num4 = A_6.int_14; int num5 = A_6.int_15; int destinationIndex = A_6.int_26; int num15 = (destinationIndex < A_6.int_23) ? ((A_6.int_23 - destinationIndex) - 1) : (A_6.int_17 - destinationIndex); int num7 = int_10[A_0]; int num16 = int_10[A_1]; while (num5 < 20) { int num8; int num12; int num13; num3--; num4 |= (A_7.byte_0[num2++] & 0xff) << num5; num5 += 8; continue; Label_0097: num8 = num4 & num7; int[] numArray = A_2; int num9 = A_3; int index = (num9 + num8) * 3; int num11 = numArray[index]; if (num11 != 0) { goto Label_012D; } num4 = num4 >> numArray[index + 1]; num5 -= numArray[index + 1]; A_6.byte_0[destinationIndex++] = (byte)numArray[index + 2]; num15--; goto Label_0443; Label_00F2: if ((num11 & 0x40) != 0) { if ((num11 & 0x20) != 0) { num12 = A_7.int_1 - num3; num12 = ((num5 >> 3) < num12) ? (num5 >> 3) : num12; num3 += num12; num2 -= num12; num5 -= num12 << 3; A_6.int_14 = num4; A_6.int_15 = num5; A_7.int_1 = num3; A_7.long_0 += num2 - A_7.int_0; A_7.int_0 = num2; A_6.int_26 = destinationIndex; return(1); } A_7.string_0 = BookmarkStart.b("倸唺䬼帾ⵀ⩂⅄杆╈≊㥌⩎⍐㉒㥔硖㕘㹚㍜㡞ᕠୢ䕤Ѧ٨ཪ", num); num12 = A_7.int_1 - num3; num12 = ((num5 >> 3) < num12) ? (num5 >> 3) : num12; num3 += num12; num2 -= num12; num5 -= num12 << 3; A_6.int_14 = num4; A_6.int_15 = num5; A_7.int_1 = num3; A_7.long_0 += num2 - A_7.int_0; A_7.int_0 = num2; A_6.int_26 = destinationIndex; return(-3); } num8 += numArray[index + 2]; num8 += num4 & int_10[num11]; index = (num9 + num8) * 3; num11 = numArray[index]; if (num11 == 0) { goto Label_040D; } Label_012D: num4 = num4 >> numArray[index + 1]; num5 -= numArray[index + 1]; if ((num11 & 0x10) == 0) { goto Label_00F2; } num11 &= 15; num12 = numArray[index + 2] + (num4 & int_10[num11]); num4 = num4 >> num11; num5 -= num11; while (num5 < 15) { num3--; num4 |= (A_7.byte_0[num2++] & 0xff) << num5; num5 += 8; } num8 = num4 & num16; numArray = A_4; num9 = A_5; index = (num9 + num8) * 3; num11 = numArray[index]; goto Label_01FA; Label_01C5: if ((num11 & 0x40) != 0) { A_7.string_0 = BookmarkStart.b("倸唺䬼帾ⵀ⩂⅄杆ⵈ≊㹌㭎ぐ㵒㙔㉖祘㡚㉜㭞Ѡ", num); num12 = A_7.int_1 - num3; num12 = ((num5 >> 3) < num12) ? (num5 >> 3) : num12; num3 += num12; num2 -= num12; num5 -= num12 << 3; A_6.int_14 = num4; A_6.int_15 = num5; A_7.int_1 = num3; A_7.long_0 += num2 - A_7.int_0; A_7.int_0 = num2; A_6.int_26 = destinationIndex; return(-3); } num8 += numArray[index + 2]; num8 += num4 & int_10[num11]; index = (num9 + num8) * 3; num11 = numArray[index]; Label_01FA: num4 = num4 >> numArray[index + 1]; num5 -= numArray[index + 1]; if ((num11 & 0x10) == 0) { goto Label_01C5; } num11 &= 15; while (num5 < num11) { num3--; num4 |= (A_7.byte_0[num2++] & 0xff) << num5; num5 += 8; } int num14 = numArray[index + 2] + (num4 & int_10[num11]); num4 = num4 >> num11; num5 -= num11; num15 -= num12; if (destinationIndex >= num14) { num13 = destinationIndex - num14; if (((destinationIndex - num13) > 0) && (2 > (destinationIndex - num13))) { A_6.byte_0[destinationIndex++] = A_6.byte_0[num13++]; A_6.byte_0[destinationIndex++] = A_6.byte_0[num13++]; num12 -= 2; } else { Array.Copy(A_6.byte_0, num13, A_6.byte_0, destinationIndex, 2); destinationIndex += 2; num13 += 2; num12 -= 2; } } else { num13 = destinationIndex - num14; do { num13 += A_6.int_17; }while (num13 < 0); num11 = A_6.int_17 - num13; if (num12 > num11) { num12 -= num11; if (((destinationIndex - num13) > 0) && (num11 > (destinationIndex - num13))) { do { A_6.byte_0[destinationIndex++] = A_6.byte_0[num13++]; }while (--num11 != 0); } else { Array.Copy(A_6.byte_0, num13, A_6.byte_0, destinationIndex, num11); destinationIndex += num11; num13 += num11; num11 = 0; } num13 = 0; } } if (((destinationIndex - num13) > 0) && (num12 > (destinationIndex - num13))) { do { A_6.byte_0[destinationIndex++] = A_6.byte_0[num13++]; }while (--num12 != 0); } else { Array.Copy(A_6.byte_0, num13, A_6.byte_0, destinationIndex, num12); destinationIndex += num12; num13 += num12; num12 = 0; } goto Label_0443; Label_040D: num4 = num4 >> numArray[index + 1]; num5 -= numArray[index + 1]; A_6.byte_0[destinationIndex++] = (byte)numArray[index + 2]; num15--; Label_0443: if ((num15 < 0x102) || (num3 < 10)) { num12 = A_7.int_1 - num3; num12 = ((num5 >> 3) < num12) ? (num5 >> 3) : num12; num3 += num12; num2 -= num12; num5 -= num12 << 3; A_6.int_14 = num4; A_6.int_15 = num5; A_7.int_1 = num3; A_7.long_0 += num2 - A_7.int_0; A_7.int_0 = num2; A_6.int_26 = destinationIndex; return(0); } } goto Label_0097; }
internal int method_33(Class1068 A_0, CompressionLevel A_1, int A_2, CompressionStrategy A_3) { return(this.method_34(A_0, A_1, A_2, 8, A_3)); }
internal int method_32(Class1068 A_0, CompressionLevel A_1, int A_2) { return(this.method_34(A_0, A_1, A_2, 8, CompressionStrategy.Default)); }
internal int method_31(Class1068 A_0, CompressionLevel A_1) { return(this.method_32(A_0, A_1, 15)); }