using System; using System.IO; using System.Runtime.CompilerServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders { // Token: 0x0200194A RID: 6474 [Token(Token = "0x200194A")] public class Base64Encoder : IEncoder { // Token: 0x060099AB RID: 39339 RVA: 0x001FDE78 File Offset: 0x001FC078 [Token(Token = "0x60099AB")] [Address(RVA = "0x18D5150", Offset = "0x18D3F50", VA = "0x1818D5150")] 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: 0x060099AC RID: 39340 RVA: 0x001FDEC4 File Offset: 0x001FC0C4 [Token(Token = "0x60099AC")] [Address(RVA = "0x18D5260", Offset = "0x18D4060", VA = "0x1818D5260")] 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: 0x060099AD RID: 39341 RVA: 0x001FDF14 File Offset: 0x001FC114 [Token(Token = "0x60099AD")] [Address(RVA = "0x18D4CC0", Offset = "0x18D3AC0", VA = "0x1818D4CC0", 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: 0x060099AE RID: 39342 RVA: 0x001FDFA8 File Offset: 0x001FC1A8 [Token(Token = "0x60099AE")] [Address(RVA = "0x18D56F0", Offset = "0x18D44F0", VA = "0x1818D56F0")] private bool ignore(char c) { return true; } // Token: 0x060099AF RID: 39343 RVA: 0x001FDFB8 File Offset: 0x001FC1B8 [Token(Token = "0x60099AF")] [Address(RVA = "0x18D47B0", Offset = "0x18D35B0", VA = "0x1818D47B0", 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: 0x060099B0 RID: 39344 RVA: 0x001FE054 File Offset: 0x001FC254 [Token(Token = "0x60099B0")] [Address(RVA = "0x18D5710", Offset = "0x18D4510", VA = "0x1818D5710")] private int nextI(byte[] data, int i, int finish) { if (i >= finish || i == 250) { } return i; } // Token: 0x060099B1 RID: 39345 RVA: 0x001FE074 File Offset: 0x001FC274 [Token(Token = "0x60099B1")] [Address(RVA = "0x18D43F0", Offset = "0x18D31F0", VA = "0x1818D43F0", 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: 0x060099B2 RID: 39346 RVA: 0x001FE1A4 File Offset: 0x001FC3A4 [Token(Token = "0x60099B2")] [Address(RVA = "0x18D52F0", Offset = "0x18D40F0", VA = "0x1818D52F0")] 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: 0x060099B3 RID: 39347 RVA: 0x001FE1E8 File Offset: 0x001FC3E8 [Token(Token = "0x60099B3")] [Address(RVA = "0x18D5770", Offset = "0x18D4570", VA = "0x1818D5770")] private int nextI(string data, int i, int finish) { if (i < finish) { char c = data[i]; if ((uint)65530 == data) { } } return i; } // Token: 0x04006880 RID: 26752 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4006880")] protected readonly byte[] encodingTable; // Token: 0x04006881 RID: 26753 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4006881")] protected byte padding; // Token: 0x04006882 RID: 26754 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4006882")] protected readonly byte[] decodingTable; } }