using System; using System.Runtime.InteropServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Zlib { // Token: 0x02001352 RID: 4946 [Token(Token = "0x2001352")] [StructLayout(3)] internal sealed class Inflate { // Token: 0x06007CDE RID: 31966 RVA: 0x001A29B8 File Offset: 0x001A0BB8 [Token(Token = "0x6007CDE")] [Address(RVA = "0x2030D00", Offset = "0x202F700", VA = "0x182030D00")] internal int inflateReset(ZStream z) { if (z != 0) { Inflate istate = z.istate; if (istate != 0) { int num = 0; z.total_out = (long)num; z.total_in = (long)num; z.msg = num; istate.mode = this; InfBlocks infBlocks = z.istate.blocks; if (infBlocks.mode == 6) { } infBlocks.mode = num; infBlocks.bitk = num; infBlocks.read = num; if (infBlocks.checkfn != num) { infBlocks.check = (long)((ulong)1L); z.adler = (long)((ulong)1L); } return 0; } } return -2; } // Token: 0x06007CDF RID: 31967 RVA: 0x001A2A44 File Offset: 0x001A0C44 [Token(Token = "0x6007CDF")] [Address(RVA = "0x2030AB0", Offset = "0x202F4B0", VA = "0x182030AB0")] internal int inflateEnd(ZStream z) { InfBlocks infBlocks = this.blocks; int num = 0; if (infBlocks != 0) { if (infBlocks.mode == 6) { } infBlocks.mode = num; infBlocks.bitk = num; infBlocks.read = num; if (infBlocks.checkfn != num) { infBlocks.check = (long)((ulong)1L); z.adler = (long)((ulong)1L); } infBlocks.window = num; infBlocks.hufts = num; } this.blocks = num; return 0; } // Token: 0x06007CE0 RID: 31968 RVA: 0x001A2AB4 File Offset: 0x001A0CB4 [Token(Token = "0x6007CE0")] [Address(RVA = "0x2030B20", Offset = "0x202F520", VA = "0x182030B20")] internal int inflateInit(ZStream z, int w) { int num = 0; z.msg = num; this.blocks = num; this.nowrap = num; this.nowrap = (int)((ulong)1L); this.wbits = w; Inflate istate = z.istate; int[] array = new int[1]; InfBlocks infBlocks; infBlocks.bb = array; int[] array2 = new int[1]; infBlocks.tb = array2; int num2 = 0; InfCodes infCodes; infCodes.free(num2); infBlocks.codes = infCodes; InfTree infTree = new InfTree(); infBlocks.inftree = infTree; int[] array3 = new int[4320]; infBlocks.hufts = array3; byte[] array4 = new byte[1]; infBlocks.window = array4; infBlocks.end = (int)((uint)1); infBlocks.checkfn = this; infBlocks.mode = num; infBlocks.bitk = num; infBlocks.read = num; if (this != 0) { infBlocks.check = (long)((ulong)1L); z.adler = (long)((ulong)1L); } istate.blocks = infBlocks; int num3 = this.inflateReset(z); return 0; } // Token: 0x06007CE1 RID: 31969 RVA: 0x001A2BA8 File Offset: 0x001A0DA8 [Token(Token = "0x6007CE1")] [Address(RVA = "0x2031120", Offset = "0x202FB20", VA = "0x182031120")] internal int inflate(ZStream z, int f) { if (z != 0 && z.istate != (ulong)0L && z.next_in != (ulong)0L) { int num = 0; if (z.istate.mode <= 13) { int avail_in = z.avail_in; if (avail_in != 0) { z.avail_in = avail_in; int next_in_index = z.next_in_index; byte[] next_in = z.next_in; Inflate istate = z.istate; int num2 = next_in_index + 1; z.next_in_index = num2; byte b; istate.method = (int)b; Inflate istate2 = z.istate; int num3 = istate2.method; num3 += 8; istate2.mode = (int)((ulong)1L); int avail_in2 = z.avail_in; if (avail_in2 != 0) { z.avail_in = avail_in2; int next_in_index2 = z.next_in_index; byte[] next_in2 = z.next_in; int num4 = next_in_index2 + 1; z.next_in_index = num4; Inflate istate3 = z.istate; int num5 = istate3.method; byte b2; num5 += (int)b2; ulong num6; num6 += num6; long num7 = (long)(num6 * (ulong)((uint)31)); if ((long)num5 == num7) { istate3.mode = (int)((ulong)7L); z.istate.mode = (int)((ulong)13L); } istate.mode = (int)((ulong)13L); int num8; if (num8 != -3) { if (num != 1) { goto IL_360; } Inflate istate4 = z.istate; InfBlocks infBlocks = istate4.blocks; long[] array = istate4.was; infBlocks.reset(z, array); Inflate istate5 = z.istate; Inflate istate11; if (istate5.nowrap == num) { istate5.mode = (int)((ulong)8L); int avail_in3 = z.avail_in; if (avail_in3 == 0) { goto IL_360; } z.avail_in = avail_in3; int next_in_index3 = z.next_in_index; byte[] next_in3 = z.next_in; Inflate istate6 = z.istate; int num9 = next_in_index3 + 1; z.next_in_index = num9; byte b3; istate6.need = (long)b3; z.istate.mode = (int)((ulong)9L); int avail_in4 = z.avail_in; if (avail_in4 == 0) { goto IL_360; } z.avail_in = avail_in4; Inflate istate7 = z.istate; int next_in_index4 = z.next_in_index; byte[] next_in4 = z.next_in; long num10 = istate7.need; int num11 = next_in_index4 + 1; z.next_in_index = num11; byte b4 = (byte)((long)b4 + num10); istate7.need = (long)b4; z.istate.mode = (int)((ulong)10L); int avail_in5 = z.avail_in; if (avail_in5 == 0) { goto IL_360; } z.avail_in = avail_in5; Inflate istate8 = z.istate; int next_in_index5 = z.next_in_index; byte[] next_in5 = z.next_in; long num12 = istate8.need; int num13 = next_in_index5 + 1; z.next_in_index = num13; byte b5 = (byte)((long)b5 + num12); istate8.need = (long)b5; z.istate.mode = (int)((ulong)11L); int avail_in6 = z.avail_in; if (avail_in6 == 0) { goto IL_360; } z.avail_in = avail_in6; Inflate istate9 = z.istate; int next_in_index6 = z.next_in_index; byte[] next_in6 = z.next_in; long num14 = istate9.need; int num15 = next_in_index6 + 1; z.next_in_index = num15; byte b6 = (byte)((long)b6 + num14); istate9.need = (long)b6; Inflate istate10 = z.istate; long[] array2 = istate10.was; long num16 = istate10.need; if ("{il2cpp array field local64->}" == num16) { goto IL_39B; } istate10.mode = (int)((ulong)13L); z.msg = "incorrect data check"; istate11 = z.istate; istate11.marker = (int)((ulong)5L); } istate11.mode = (int)((ulong)12L); } z.istate.mode = (int)((ulong)13L); z.istate.marker = num; } } IL_360: int avail_in7 = z.avail_in; while (avail_in7 == 0) { } z.avail_in = avail_in7; int next_in_index7 = z.next_in_index; byte[] next_in7 = z.next_in; Inflate istate12 = z.istate; int num17 = next_in_index7 + 1; z.next_in_index = num17; IL_39B: byte b7; istate12.need = (long)b7; z.istate.mode = (int)((ulong)3L); int avail_in8 = z.avail_in; while (avail_in8 == 0) { } z.avail_in = avail_in8; Inflate istate13 = z.istate; int next_in_index8 = z.next_in_index; byte[] next_in8 = z.next_in; long num18 = istate13.need; int num19 = next_in_index8 + 1; z.next_in_index = num19; byte b8 = (byte)((long)b8 + num18); istate13.need = (long)b8; z.istate.mode = (int)((ulong)4L); int avail_in9 = z.avail_in; while (avail_in9 == 0) { } z.avail_in = avail_in9; Inflate istate14 = z.istate; int next_in_index9 = z.next_in_index; byte[] next_in9 = z.next_in; long num20 = istate14.need; int num21 = next_in_index9 + 1; z.next_in_index = num21; byte b9 = (byte)((long)b9 + num20); istate14.need = (long)b9; z.istate.mode = (int)((ulong)5L); int avail_in10 = z.avail_in; while (avail_in10 == 0) { } z.avail_in = avail_in10; Inflate istate15 = z.istate; int next_in_index10 = z.next_in_index; byte[] next_in10 = z.next_in; long num22 = istate15.need; int num23 = next_in_index10 + 1; z.next_in_index = num23; byte b10 = (byte)((long)b10 + num22); istate15.need = (long)b10; Inflate istate16 = z.istate; long num24 = istate16.need; z.adler = num24; istate16.mode = (int)((ulong)6L); istate15.mode = (int)((ulong)13L); z.msg = "need dictionary"; z.istate.marker = num; } } throw new NullReferenceException(); } // Token: 0x06007CE2 RID: 31970 RVA: 0x001A30CC File Offset: 0x001A12CC [Token(Token = "0x6007CE2")] [Address(RVA = "0x2030DA0", Offset = "0x202F7A0", VA = "0x182030DA0")] internal int inflateSetDictionary(ZStream z, byte[] dictionary, int dictLength) { if (z != 0) { Inflate istate = z.istate; if (istate != 0 && istate.mode == 6) { Adler32 adler = z._adler; int num = 0; uint num2; if (adler.adler32((long)num2, dictionary, num, dictLength) == z.adler) { Inflate istate2 = z.istate; z.adler = (long)num2; uint num3 = num2 - 1U; InfBlocks infBlocks = istate2.blocks; byte[] window = infBlocks.window; int num4 = 0; Array.Copy(dictionary, dictLength, window, num4, (int)num3); infBlocks.write = (int)num3; infBlocks.read = (int)num3; z.istate.mode = (int)((ulong)7L); return 0; } } } throw new NullReferenceException(); } // Token: 0x06007CE3 RID: 31971 RVA: 0x001A3174 File Offset: 0x001A1374 [Token(Token = "0x6007CE3")] [Address(RVA = "0x2030EF0", Offset = "0x202F8F0", VA = "0x182030EF0")] internal int inflateSync(ZStream z) { if (z != 0) { Inflate istate = z.istate; if (istate != 0) { if (istate.mode != 13) { istate.mode = (int)((ulong)13L); z.istate.marker = (int)((ulong)0L); } int avail_in = z.avail_in; if (avail_in != 0) { Inflate istate2 = z.istate; int num = z.next_in_index; int num2 = istate2.marker; int num4; if (num2 < 4) { byte b = z.next_in[num]; byte[] array = Inflate.mark; byte[] next_in = z.next_in; if ("{il2cpp array field local11->}" == (ulong)0L) { uint num3; num3 -= (uint)num2; } num4 = 0; num4++; num++; while ("{il2cpp array field local11->}" != (ulong)0L) { } } Inflate istate3 = z.istate; z.next_in_index = num; z.avail_in = avail_in; istate3.marker = num4; if (num4 == 4) { long total_in = z.total_in; long total_out = z.total_out; int num5 = this.inflateReset(z); Inflate istate4 = z.istate; z.total_in = total_in; z.total_out = total_out; istate4.mode = (int)((ulong)7L); return 0; } } } } throw new IndexOutOfRangeException(); } // Token: 0x06007CE4 RID: 31972 RVA: 0x001A328C File Offset: 0x001A148C [Token(Token = "0x6007CE4")] [Address(RVA = "0x2030EC0", Offset = "0x202F8C0", VA = "0x182030EC0")] internal int inflateSyncPoint(ZStream z) { if (z != 0) { Inflate istate = z.istate; if (istate != 0) { InfBlocks infBlocks = istate.blocks; if (infBlocks != 0) { bool flag = infBlocks.mode == 1; } } } return -2; } // Token: 0x06007CE5 RID: 31973 RVA: 0x001A32C0 File Offset: 0x001A14C0 [Token(Token = "0x6007CE5")] [Address(RVA = "0x2030A60", Offset = "0x202F460", VA = "0x182030A60")] public Inflate() { long[] array = new long[1]; this.was = array; base..ctor(); } // Token: 0x06007CE6 RID: 31974 RVA: 0x001A32E4 File Offset: 0x001A14E4 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6007CE6")] [Address(RVA = "0x20309D0", Offset = "0x202F3D0", VA = "0x1820309D0")] static Inflate() { byte[] array = new byte[4]; array[0] = (byte)((ulong)255L); array[0] = (byte)((ulong)255L); Inflate.mark = array; } // Token: 0x04005983 RID: 22915 [Token(Token = "0x4005983")] private const int MAX_WBITS = 15; // Token: 0x04005984 RID: 22916 [Token(Token = "0x4005984")] private const int PRESET_DICT = 32; // Token: 0x04005985 RID: 22917 [Token(Token = "0x4005985")] internal const int Z_NO_FLUSH = 0; // Token: 0x04005986 RID: 22918 [Token(Token = "0x4005986")] internal const int Z_PARTIAL_FLUSH = 1; // Token: 0x04005987 RID: 22919 [Token(Token = "0x4005987")] internal const int Z_SYNC_FLUSH = 2; // Token: 0x04005988 RID: 22920 [Token(Token = "0x4005988")] internal const int Z_FULL_FLUSH = 3; // Token: 0x04005989 RID: 22921 [Token(Token = "0x4005989")] internal const int Z_FINISH = 4; // Token: 0x0400598A RID: 22922 [Token(Token = "0x400598A")] private const int Z_DEFLATED = 8; // Token: 0x0400598B RID: 22923 [Token(Token = "0x400598B")] private const int Z_OK = 0; // Token: 0x0400598C RID: 22924 [Token(Token = "0x400598C")] private const int Z_STREAM_END = 1; // Token: 0x0400598D RID: 22925 [Token(Token = "0x400598D")] private const int Z_NEED_DICT = 2; // Token: 0x0400598E RID: 22926 [Token(Token = "0x400598E")] private const int Z_ERRNO = -1; // Token: 0x0400598F RID: 22927 [Token(Token = "0x400598F")] private const int Z_STREAM_ERROR = -2; // Token: 0x04005990 RID: 22928 [Token(Token = "0x4005990")] private const int Z_DATA_ERROR = -3; // Token: 0x04005991 RID: 22929 [Token(Token = "0x4005991")] private const int Z_MEM_ERROR = -4; // Token: 0x04005992 RID: 22930 [Token(Token = "0x4005992")] private const int Z_BUF_ERROR = -5; // Token: 0x04005993 RID: 22931 [Token(Token = "0x4005993")] private const int Z_VERSION_ERROR = -6; // Token: 0x04005994 RID: 22932 [Token(Token = "0x4005994")] private const int METHOD = 0; // Token: 0x04005995 RID: 22933 [Token(Token = "0x4005995")] private const int FLAG = 1; // Token: 0x04005996 RID: 22934 [Token(Token = "0x4005996")] private const int DICT4 = 2; // Token: 0x04005997 RID: 22935 [Token(Token = "0x4005997")] private const int DICT3 = 3; // Token: 0x04005998 RID: 22936 [Token(Token = "0x4005998")] private const int DICT2 = 4; // Token: 0x04005999 RID: 22937 [Token(Token = "0x4005999")] private const int DICT1 = 5; // Token: 0x0400599A RID: 22938 [Token(Token = "0x400599A")] private const int DICT0 = 6; // Token: 0x0400599B RID: 22939 [Token(Token = "0x400599B")] private const int BLOCKS = 7; // Token: 0x0400599C RID: 22940 [Token(Token = "0x400599C")] private const int CHECK4 = 8; // Token: 0x0400599D RID: 22941 [Token(Token = "0x400599D")] private const int CHECK3 = 9; // Token: 0x0400599E RID: 22942 [Token(Token = "0x400599E")] private const int CHECK2 = 10; // Token: 0x0400599F RID: 22943 [Token(Token = "0x400599F")] private const int CHECK1 = 11; // Token: 0x040059A0 RID: 22944 [Token(Token = "0x40059A0")] private const int DONE = 12; // Token: 0x040059A1 RID: 22945 [Token(Token = "0x40059A1")] private const int BAD = 13; // Token: 0x040059A2 RID: 22946 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40059A2")] internal int mode; // Token: 0x040059A3 RID: 22947 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x40059A3")] internal int method; // Token: 0x040059A4 RID: 22948 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40059A4")] internal long[] was; // Token: 0x040059A5 RID: 22949 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40059A5")] internal long need; // Token: 0x040059A6 RID: 22950 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40059A6")] internal int marker; // Token: 0x040059A7 RID: 22951 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")] [Token(Token = "0x40059A7")] internal int nowrap; // Token: 0x040059A8 RID: 22952 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40059A8")] internal int wbits; // Token: 0x040059A9 RID: 22953 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40059A9")] internal InfBlocks blocks; // Token: 0x040059AA RID: 22954 [Token(Token = "0x40059AA")] private static readonly byte[] mark; } }