using System; using System.IO; using System.Runtime.CompilerServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders { // Token: 0x02001A2A RID: 6698 [Token(Token = "0x2001A2A")] public class Base64Encoder : IEncoder { // Token: 0x06009D79 RID: 40313 RVA: 0x00206F10 File Offset: 0x00205110 [Token(Token = "0x6009D79")] [Address(RVA = "0x4DECA0", Offset = "0x4DDCA0", VA = "0x1804DECA0")] 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: 0x06009D7A RID: 40314 RVA: 0x00206F5C File Offset: 0x0020515C [Token(Token = "0x6009D7A")] [Address(RVA = "0x4DEDB0", Offset = "0x4DDDB0", VA = "0x1804DEDB0")] 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(); this.InitialiseDecodingTable(); } // Token: 0x06009D7B RID: 40315 RVA: 0x00206FAC File Offset: 0x002051AC [Token(Token = "0x6009D7B")] [Address(RVA = "0x4DE810", Offset = "0x4DD810", VA = "0x1804DE810", 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: 0x06009D7C RID: 40316 RVA: 0x00207040 File Offset: 0x00205240 [Token(Token = "0x6009D7C")] [Address(RVA = "0x4DF240", Offset = "0x4DE240", VA = "0x1804DF240")] private bool ignore(char c) { return true; } // Token: 0x06009D7D RID: 40317 RVA: 0x00207050 File Offset: 0x00205250 [Token(Token = "0x6009D7D")] [Address(RVA = "0x4DE300", Offset = "0x4DD300", VA = "0x1804DE300", 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: 0x06009D7E RID: 40318 RVA: 0x002070EC File Offset: 0x002052EC [Token(Token = "0x6009D7E")] [Address(RVA = "0x4DF260", Offset = "0x4DE260", VA = "0x1804DF260")] private int nextI(byte[] data, int i, int finish) { if (i >= finish || i == 250) { } return i; } // Token: 0x06009D7F RID: 40319 RVA: 0x0020710C File Offset: 0x0020530C [Token(Token = "0x6009D7F")] [Address(RVA = "0x4DDF40", Offset = "0x4DCF40", VA = "0x1804DDF40", 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: 0x06009D80 RID: 40320 RVA: 0x0020723C File Offset: 0x0020543C [Token(Token = "0x6009D80")] [Address(RVA = "0x4DEE40", Offset = "0x4DDE40", VA = "0x1804DEE40")] 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: 0x06009D81 RID: 40321 RVA: 0x00207280 File Offset: 0x00205480 [Token(Token = "0x6009D81")] [Address(RVA = "0x4DF2C0", Offset = "0x4DE2C0", VA = "0x1804DF2C0")] private int nextI(string data, int i, int finish) { if (i < finish) { char c = data[i]; if ((uint)65530 == data) { } } return i; } // Token: 0x04006A39 RID: 27193 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4006A39")] protected readonly byte[] encodingTable; // Token: 0x04006A3A RID: 27194 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4006A3A")] protected byte padding; // Token: 0x04006A3B RID: 27195 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4006A3B")] protected readonly byte[] decodingTable; } }