using System; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders { // Token: 0x0200136D RID: 4973 [Token(Token = "0x200136D")] [StructLayout(3)] public class Base64Encoder : IEncoder { // Token: 0x06007DD1 RID: 32209 RVA: 0x001A6878 File Offset: 0x001A4A78 [Token(Token = "0x6007DD1")] [Address(RVA = "0x1C5CCE0", Offset = "0x1C5B6E0", VA = "0x181C5CCE0")] protected void InitialiseDecodingTable() { int num = this.decodingTable.Length; if (num > 0) { num--; } byte[] array = this.encodingTable; int num2 = 0; if (num2 < array.Length) { byte[] array2 = this.decodingTable; num2++; byte[] array3 = this.encodingTable; } } // Token: 0x06007DD2 RID: 32210 RVA: 0x001A68C4 File Offset: 0x001A4AC4 [Token(Token = "0x6007DD2")] [Address(RVA = "0x1C5CDF0", Offset = "0x1C5B7F0", VA = "0x181C5CDF0")] public Base64Encoder() { byte[] array = new byte[64]; RuntimeHelpers.InitializeArray(array, fieldof(.0953DF544832295E4A5B19928F95C351F25DA86A).FieldHandle); this.encodingTable = array; this.padding = (byte)((ulong)61L); byte[] array2 = new byte[128]; this.decodingTable = array2; base..ctor(); int num = this.decodingTable.Length; if (num > 0) { num--; } byte[] array3 = this.encodingTable; int num2 = 0; if (num2 < array3.Length) { byte[] array4 = this.decodingTable; num2++; byte[] array5 = this.encodingTable; } } // Token: 0x06007DD3 RID: 32211 RVA: 0x001A6954 File Offset: 0x001A4B54 [Token(Token = "0x6007DD3")] [Address(RVA = "0x1C5C850", Offset = "0x1C5B250", VA = "0x181C5C850", Slot = "4")] public int Encode(byte[] data, int off, int length, Stream outStream) { int length2 = data.Length; int num = off + 1; byte b = data[num]; byte[] array = this.encodingTable; byte[] array2 = this.encodingTable; byte[] array3 = this.encodingTable; byte[] array4 = this.encodingTable; byte b2; if (length != 0) { if (length == 0) { goto IL_70; } if (length == 1) { int length3 = data.Length; byte[] array5 = this.encodingTable; byte[] array6 = this.encodingTable; byte[] array7 = this.encodingTable; b2 = this.padding; } } b2 += b2; IL_70: byte[] array8 = this.encodingTable; byte[] array9 = this.encodingTable; throw new NullReferenceException(); } // Token: 0x06007DD4 RID: 32212 RVA: 0x001A69E8 File Offset: 0x001A4BE8 [Token(Token = "0x6007DD4")] [Address(RVA = "0x1C5D360", Offset = "0x1C5BD60", VA = "0x181C5D360")] private bool ignore(char c) { return true; } // Token: 0x06007DD5 RID: 32213 RVA: 0x001A69F8 File Offset: 0x001A4BF8 [Token(Token = "0x6007DD5")] [Address(RVA = "0x1C5C340", Offset = "0x1C5AD40", VA = "0x181C5C340", Slot = "5")] public int Decode(byte[] data, int off, int length, Stream outStream) { int num = 0; if (off >= length || off == 250) { } if (off < length) { byte[] array = this.decodingTable; int length2 = data.Length; int length3 = array.Length; if (off >= length || off == 250) { } if (off < length) { if (off == 250) { } bool flag; if (flag) { } } if (off < length) { if (off == 250) { } bool flag2; if (flag2) { } } num += 3; if (off < length) { int length4 = data.Length; if (off == 250) { } if (off < length) { } } } int length5 = data.Length; int num2; num2 += num; return num2; } // Token: 0x06007DD6 RID: 32214 RVA: 0x001A6A94 File Offset: 0x001A4C94 [Token(Token = "0x6007DD6")] [Address(RVA = "0x1C5D380", Offset = "0x1C5BD80", VA = "0x181C5D380")] private int nextI(byte[] data, int i, int finish) { if (i >= finish || i == 250) { } return i; } // Token: 0x06007DD7 RID: 32215 RVA: 0x001A6AB4 File Offset: 0x001A4CB4 [Token(Token = "0x6007DD7")] [Address(RVA = "0x1C5BF80", Offset = "0x1C5A980", VA = "0x181C5BF80", Slot = "6")] public int DecodeString(string data, Stream outStream) { int num = 0; int num2 = data.m_stringLength; uint num4; if (num2 > 0) { int num3 = num2 - 1; char c = data[num3]; if (num4 == data) { } num2 = num3; } int num5 = 0; int num6 = this.nextI(data, num5, (int)num4); if (num6 < (int)num4) { byte[] array = this.decodingTable; char c2 = data[num6]; int num7 = num6 + 1; int num8 = this.nextI(data, num7, (int)num4); byte[] array2 = this.decodingTable; char c3 = data[num8]; int num9 = num8 + 1; int num10 = this.nextI(data, num9, (int)num4); byte[] array3 = this.decodingTable; char c4 = data[num10]; int num11 = num10 + 1; int num12 = this.nextI(data, num11, (int)num4); byte[] array4 = this.decodingTable; num10 = num12; char c5 = data[num12]; int num13 = num10 + 1; if (num13 < (int)num4) { char c6 = data[num13]; uint num14; if (num14 == data) { } num13++; } } char c7 = data[(int)num4]; char c8 = data[(int)num4]; char c9 = data[(int)num4]; int num15 = num2 - 1; char c10 = data[num15]; int num16; num16 += num; return num16; } // Token: 0x06007DD8 RID: 32216 RVA: 0x001A6BE4 File Offset: 0x001A4DE4 [Token(Token = "0x6007DD8")] [Address(RVA = "0x1C5CF60", Offset = "0x1C5B960", VA = "0x181C5CF60")] private int decodeLastBlock(Stream outStream, char c1, char c2, char c3, char c4) { byte b = this.padding; byte[] array = this.decodingTable; int length = array.Length; return 3; } // Token: 0x06007DD9 RID: 32217 RVA: 0x001A6C28 File Offset: 0x001A4E28 [Token(Token = "0x6007DD9")] [Address(RVA = "0x1C5D3E0", Offset = "0x1C5BDE0", VA = "0x181C5D3E0")] private int nextI(string data, int i, int finish) { if (i < finish) { char c = data[i]; if ((uint)65530 == data) { } } return i; } // Token: 0x04005A3D RID: 23101 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005A3D")] protected readonly byte[] encodingTable; // Token: 0x04005A3E RID: 23102 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005A3E")] protected byte padding; // Token: 0x04005A3F RID: 23103 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005A3F")] protected readonly byte[] decodingTable; } }