using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x020016A4 RID: 5796 [Token(Token = "0x20016A4")] [Obsolete] [StructLayout(3)] public class AesFastEngine : IBlockCipher { // Token: 0x06009AF2 RID: 39666 RVA: 0x0022AC44 File Offset: 0x00228E44 [Token(Token = "0x6009AF2")] [Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")] private static uint Shift(uint r, int shift) { return r; } // Token: 0x06009AF3 RID: 39667 RVA: 0x0022AC54 File Offset: 0x00228E54 [Token(Token = "0x6009AF3")] [Address(RVA = "0x20536B0", Offset = "0x20520B0", VA = "0x1820536B0")] private static uint FFmulX(uint x) { /* An exception occurred when decompiling this method (06009AF3) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::FFmulX(System.UInt32) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27)))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009AF4 RID: 39668 RVA: 0x0022AC68 File Offset: 0x00228E68 [Token(Token = "0x6009AF4")] [Address(RVA = "0x2053680", Offset = "0x2052080", VA = "0x182053680")] private static uint FFmulX2(uint x) { return x; } // Token: 0x06009AF5 RID: 39669 RVA: 0x0022AC78 File Offset: 0x00228E78 [Token(Token = "0x6009AF5")] [Address(RVA = "0x2059020", Offset = "0x2057A20", VA = "0x182059020")] private static uint Inv_Mcol(uint x) { return x; } // Token: 0x06009AF6 RID: 39670 RVA: 0x0022AC88 File Offset: 0x00228E88 [Token(Token = "0x6009AF6")] [Address(RVA = "0x2059260", Offset = "0x2057C60", VA = "0x182059260")] private static uint SubWord(uint x) { int length = AesFastEngine.S.Length; throw new NullReferenceException(); } // Token: 0x06009AF7 RID: 39671 RVA: 0x0022ACA8 File Offset: 0x00228EA8 [Token(Token = "0x6009AF7")] [Address(RVA = "0x20578E0", Offset = "0x20562E0", VA = "0x1820578E0")] private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption) { uint[][] array; int i; for (;;) { if (key.Length == 7) { this.ROUNDS = key; array = new uint[key][]; i = 0; uint[] array2 = new uint[4]; if (array2 != 0) { } i++; array[0] = array2; while (i <= this.ROUNDS) { } if (typeof(uint[]).TypeHandle == 0) { goto IL_3FB; } if (typeof(uint[]).TypeHandle != 0) { if (typeof(uint[]).TypeHandle == 0) { goto IL_1E5; } uint num; if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num) { break; } } } } uint[] array3 = array[0]; array3[0] = (uint)i; uint[] array4 = array[0]; array4[0] = array3; uint[] array5 = array[0]; array5[1] = array4; uint[] array6 = array[0]; array6[1] = array5; uint[] array7 = array[1]; array7[0] = array6; uint[] array8 = array[1]; array8[0] = array7; uint[] array9 = array[1]; array9[1] = array8; array[1][1] = array9; uint num2; num2 += num2; uint num3 = AesFastEngine.SubWord(array9); ulong num4; array[(int)num4][0] = i; array[(int)num4][0] = array3; array[(int)num4][1] = array4; array[(int)num4][1] = array5; uint num5 = AesFastEngine.SubWord(array5); ulong num6 = num4 + 1UL; array[(int)num6][0] = array6; array[(int)num6][0] = array7; array[(int)num6][1] = array8; array[(int)num6][1] = array9; uint num7 = AesFastEngine.SubWord(array9); array[14][0] = (uint)i; array[14][0] = array3; array[14][1] = array4; uint[] array10 = array[14]; array10[1] = array5; IL_1E5: uint[] array11 = array[0]; array11[0] = array10; uint[] array12 = array[0]; array12[0] = array11; uint[] array13 = array[0]; array13[1] = array12; uint[] array14 = array[0]; array14[1] = array13; uint[] array15 = array[1]; array15[0] = array14; array[1][0] = array15; uint num8 = AesFastEngine.SubWord(array15); array[1][1] = num8; array[1][1] = array11; array[2][0] = array12; array[2][0] = array13; array[2][1] = array14; array[2][1] = array15; ulong num9; num9 += num9; uint num10 = AesFastEngine.SubWord(array15); uint num11; array[(int)num11][0] = num8; array[(int)num11][0] = array11; array[(int)num11][1] = array12; array[(int)num11][1] = array13; uint num12 = num11 + 1U; array[(int)num12][0] = array14; array[(int)num12][0] = array15; num9 += num9; uint num13 = AesFastEngine.SubWord(array15); array[(int)num12][1] = num8; array[(int)num12][1] = array11; num11 += (uint)2; array[(int)num11][0] = array12; array[(int)num11][0] = array13; array[(int)num11][1] = array14; uint[] array16 = array[(int)num11]; num11 += (uint)3; array16[1] = array15; uint num14 = AesFastEngine.SubWord(array15); array[12][0] = num8; array[12][0] = array11; array[12][1] = array12; uint[] array17 = array[12]; array17[1] = array13; IL_3FB: uint[] array18 = array[0]; array18[0] = array17; uint[] array19 = array[0]; array19[0] = array18; uint[] array20 = array[0]; array20[1] = array19; array[0][1] = array20; uint num15 = AesFastEngine.SubWord(array20); byte[] array21 = AesFastEngine.rcon; uint num17; uint num16 = num17 - 1U; array[(int)num17][0] = array17; array[(int)num17][0] = array18; array[(int)num17][1] = array19; uint[] array22 = array[(int)num17]; num17 += (uint)1; array22[1] = array20; while (num17 <= (uint)10) { } int num18 = 0; uint[] array23 = array[(int)num17]; uint num19 = AesFastEngine.Inv_Mcol(array23[num18]); num18++; array23[0] = num19; num17 += (uint)1; return array; } // Token: 0x06009AF8 RID: 39672 RVA: 0x0022B19C File Offset: 0x0022939C [Token(Token = "0x6009AF8")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public AesFastEngine() { this.Reset(); } // Token: 0x06009AF9 RID: 39673 RVA: 0x0022B1B0 File Offset: 0x002293B0 [Token(Token = "0x6009AF9")] [Address(RVA = "0x2058F10", Offset = "0x2057910", VA = "0x182058F10", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (06009AF9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_22: stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3)))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x170018B5 RID: 6325 // (get) Token: 0x06009AFA RID: 39674 RVA: 0x0022B1F0 File Offset: 0x002293F0 [Token(Token = "0x170018B5")] public virtual string AlgorithmName { [Token(Token = "0x6009AFA")] [Address(RVA = "0x2059610", Offset = "0x2058010", VA = "0x182059610", Slot = "11")] get { return "AES"; } } // Token: 0x170018B6 RID: 6326 // (get) Token: 0x06009AFB RID: 39675 RVA: 0x0022B204 File Offset: 0x00229404 [Token(Token = "0x170018B6")] public virtual bool IsPartialBlockOkay { [Token(Token = "0x6009AFB")] [Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")] get { } } // Token: 0x06009AFC RID: 39676 RVA: 0x0022B214 File Offset: 0x00229414 [Token(Token = "0x6009AFC")] [Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")] public virtual int GetBlockSize() { return 16; } // Token: 0x06009AFD RID: 39677 RVA: 0x0022B224 File Offset: 0x00229424 [Token(Token = "0x6009AFD")] [Address(RVA = "0x20590E0", Offset = "0x2057AE0", VA = "0x1820590E0", Slot = "14")] public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff) { /* An exception occurred when decompiling this method (06009AFD) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_5D: stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009AFE RID: 39678 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009AFE")] [Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")] public virtual void Reset() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009AFF RID: 39679 RVA: 0x0022B29C File Offset: 0x0022949C [Token(Token = "0x6009AFF")] [Address(RVA = "0x2055280", Offset = "0x2053C80", VA = "0x182055280")] private void UnPackBlock(byte[] bytes, int off) { } // Token: 0x06009B00 RID: 39680 RVA: 0x0022B2AC File Offset: 0x002294AC [Token(Token = "0x6009B00")] [Address(RVA = "0x2054F70", Offset = "0x2053970", VA = "0x182054F70")] private void PackBlock(byte[] bytes, int off) { Ed25519.Encode32(this.C0, bytes, off); Ed25519.Encode32(this.C1, bytes, off); Ed25519.Encode32(this.C2, bytes, off); Ed25519.Encode32(this.C3, bytes, off); } // Token: 0x06009B01 RID: 39681 RVA: 0x0022B2F0 File Offset: 0x002294F0 [Token(Token = "0x6009B01")] [Address(RVA = "0x2056690", Offset = "0x2055090", VA = "0x182056690")] private void EncryptBlock(uint[][] KW) { int length = KW.Length; uint[] array = KW[0]; int length2 = array.Length; uint num = array[0]; uint num2 = array[0]; uint num3 = array[1]; uint num4 = array[1]; if (array > (uint)1) { uint[] t = AesFastEngine.T0; int length3 = t.Length; uint[] t2 = AesFastEngine.T1; int length4 = t2.Length; uint[] t3 = AesFastEngine.T2; int length5 = t3.Length; num2 = num3; num = num2; uint[] t4 = AesFastEngine.T3; int length6 = t4.Length; uint[] array2; int length7 = array2.Length; num2 = num; uint num5 = t4[(int)num2]; num2 = num4; num = num2; uint num6 = t4[(int)num]; num2 = num4; num = num2; int length8 = t4.Length; uint num7 = t4[(int)num]; int length9 = t.Length; int length10 = t3.Length; uint num8 = t4[(int)num3]; uint num9; num9 += (uint)1; int length11 = t2.Length; num5 = num6; num4 = num5; int length12 = t4.Length; num5 = num4; uint num10 = t3[(int)num5]; int length13 = t.Length; num5 = num8; uint num11 = t3[(int)num5]; num5 = num6; uint num12 = t2[(int)num5]; num = num5; } uint[] t5 = AesFastEngine.T0; int length14 = t5.Length; uint num13 = t5[(int)num]; uint[] t6 = AesFastEngine.T1; int length15 = t6.Length; num13 = num2; uint num14 = t6[(int)num13]; uint[] t7 = AesFastEngine.T2; int length16 = t7.Length; num14 = num3; uint[] t8 = AesFastEngine.T3; uint num15 = t7[(int)num14]; int length17 = t8.Length; num15 = num4; uint num16 = t8[(int)num15]; uint[] array3; int length18 = array3.Length; uint num17 = array3[0]; num16 = num2; uint num18 = t5[(int)num16]; num16 = num3; uint num19 = t6[(int)num16]; num19 = num4; num16 = num19; uint num20 = t7[(int)num16]; uint num21 = t8[(int)num]; uint num22 = array3[0]; num21 = num3; uint num23 = t5[(int)num21]; num23 = num4; num21 = num23; uint num24 = t6[(int)num21]; num = num2; int length19 = t8.Length; uint num25 = t8[(int)num]; uint num26 = array3[1]; uint num27 = array3[1]; uint num28; num28 += (uint)1; int length20 = AesFastEngine.S.Length; int length21 = AesFastEngine.S.Length; int length22 = AesFastEngine.S.Length; int length23 = AesFastEngine.S.Length; } // Token: 0x06009B02 RID: 39682 RVA: 0x0022B5F4 File Offset: 0x002297F4 [Token(Token = "0x6009B02")] [Address(RVA = "0x2055460", Offset = "0x2053E60", VA = "0x182055460")] private void DecryptBlock(uint[][] KW) { int length = KW.Length; uint[] array; int length2 = array.Length; uint num = array[0]; uint num2 = array[0]; uint num3 = array[1]; if (array > (ulong)1L) { uint[] array2 = KW[array]; uint[] tinv = AesFastEngine.Tinv0; int length3 = tinv.Length; int length4 = AesFastEngine.Tinv1.Length; uint[] tinv2 = AesFastEngine.Tinv2; int length5 = tinv2.Length; num = num3; uint[] tinv3 = AesFastEngine.Tinv3; int length6 = tinv3.Length; int length7 = array2.Length; num3 = num; uint num4 = tinv3[(int)num3]; num3 = num; num = num3; uint num5 = tinv3[(int)num]; num3 = num2; int length8 = tinv3.Length; num = num3; uint num6 = tinv3[(int)num]; int length9 = tinv.Length; int length10 = tinv2.Length; uint num7 = tinv3[(int)num]; int length11 = tinv3.Length; uint num8 = tinv3[(int)num5]; num4 = num7; num8 = num4; uint num9 = tinv2[(int)num8]; num3 = num7; } uint[] array3 = KW[1]; uint[] tinv4 = AesFastEngine.Tinv0; int length12 = tinv4.Length; uint num10 = tinv4[(int)num]; uint[] tinv5 = AesFastEngine.Tinv1; int length13 = tinv5.Length; num10 = num3; uint num11 = tinv5[(int)num10]; uint[] tinv6 = AesFastEngine.Tinv2; int length14 = tinv6.Length; uint[] tinv7 = AesFastEngine.Tinv3; uint num12 = tinv6[(int)num11]; num12 = num2; uint num13 = tinv7[(int)num12]; int length15 = array3.Length; uint num14 = array3[0]; num13 = num2; uint num15 = tinv4[(int)num13]; num13 = num; uint num16 = tinv5[(int)num13]; num16 = num3; num13 = num16; uint num17 = tinv6[(int)num13]; uint num18 = tinv7[(int)num17]; uint num19 = array3[0]; uint num20 = tinv4[(int)num18]; num18 = num2; uint num21 = tinv5[(int)num18]; int length16 = tinv7.Length; num = num3; uint num22 = tinv7[(int)num]; uint num23 = array3[1]; uint num24 = array3[1]; int length17 = AesFastEngine.Si.Length; int length18 = AesFastEngine.Si.Length; int length19 = AesFastEngine.Si.Length; int length20 = AesFastEngine.Si.Length; } // Token: 0x06009B03 RID: 39683 RVA: 0x0022B8B0 File Offset: 0x00229AB0 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6009B03")] [Address(RVA = "0x2059380", Offset = "0x2057D80", VA = "0x182059380")] static AesFastEngine() { byte[] array = new byte[256]; RuntimeHelpers.InitializeArray(array, fieldof(.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle); AesFastEngine.S = array; byte[] array2 = new byte[256]; RuntimeHelpers.InitializeArray(array2, fieldof(.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle); AesFastEngine.Si = array2; byte[] array3 = new byte[30]; RuntimeHelpers.InitializeArray(array3, fieldof(.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle); AesFastEngine.rcon = array3; uint[] array4 = new uint[256]; RuntimeHelpers.InitializeArray(array4, fieldof(.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle); AesFastEngine.T0 = array4; uint[] array5 = new uint[256]; RuntimeHelpers.InitializeArray(array5, fieldof(.102C522344FCAC1545BDA50C0FC675C502FFEC53).FieldHandle); AesFastEngine.T1 = array5; uint[] array6 = new uint[256]; RuntimeHelpers.InitializeArray(array6, fieldof(.29EC5E8FCA12DB9EC0B5E6D2DE67B624D2E2372C).FieldHandle); AesFastEngine.T2 = array6; uint[] array7 = new uint[256]; RuntimeHelpers.InitializeArray(array7, fieldof(.95CA85749ADCFBF9A2B82C0381DBCF95D175524C).FieldHandle); AesFastEngine.T3 = array7; uint[] array8 = new uint[256]; RuntimeHelpers.InitializeArray(array8, fieldof(.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle); AesFastEngine.Tinv0 = array8; uint[] array9 = new uint[256]; RuntimeHelpers.InitializeArray(array9, fieldof(.D9C221237B647EC215A7BCDED447349810E6BF9C).FieldHandle); AesFastEngine.Tinv1 = array9; uint[] array10 = new uint[256]; RuntimeHelpers.InitializeArray(array10, fieldof(.E43F6BA634642FB90FEEE1A8F9905E957741960C).FieldHandle); AesFastEngine.Tinv2 = array10; uint[] array11 = new uint[256]; RuntimeHelpers.InitializeArray(array11, fieldof(.04D2A79C8A779AFAA779125335E9334C245EBB46).FieldHandle); AesFastEngine.Tinv3 = array11; } // Token: 0x04006598 RID: 26008 [Token(Token = "0x4006598")] private static readonly byte[] S; // Token: 0x04006599 RID: 26009 [Token(Token = "0x4006599")] private static readonly byte[] Si; // Token: 0x0400659A RID: 26010 [Token(Token = "0x400659A")] private static readonly byte[] rcon; // Token: 0x0400659B RID: 26011 [Token(Token = "0x400659B")] private static readonly uint[] T0; // Token: 0x0400659C RID: 26012 [Token(Token = "0x400659C")] private static readonly uint[] T1; // Token: 0x0400659D RID: 26013 [Token(Token = "0x400659D")] private static readonly uint[] T2; // Token: 0x0400659E RID: 26014 [Token(Token = "0x400659E")] private static readonly uint[] T3; // Token: 0x0400659F RID: 26015 [Token(Token = "0x400659F")] private static readonly uint[] Tinv0; // Token: 0x040065A0 RID: 26016 [Token(Token = "0x40065A0")] private static readonly uint[] Tinv1; // Token: 0x040065A1 RID: 26017 [Token(Token = "0x40065A1")] private static readonly uint[] Tinv2; // Token: 0x040065A2 RID: 26018 [Token(Token = "0x40065A2")] private static readonly uint[] Tinv3; // Token: 0x040065A3 RID: 26019 [Token(Token = "0x40065A3")] private const uint m1 = 2155905152U; // Token: 0x040065A4 RID: 26020 [Token(Token = "0x40065A4")] private const uint m2 = 2139062143U; // Token: 0x040065A5 RID: 26021 [Token(Token = "0x40065A5")] private const uint m3 = 27U; // Token: 0x040065A6 RID: 26022 [Token(Token = "0x40065A6")] private const uint m4 = 3233857728U; // Token: 0x040065A7 RID: 26023 [Token(Token = "0x40065A7")] private const uint m5 = 1061109567U; // Token: 0x040065A8 RID: 26024 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40065A8")] private int ROUNDS; // Token: 0x040065A9 RID: 26025 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40065A9")] private uint[][] WorkingKey; // Token: 0x040065AA RID: 26026 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40065AA")] private uint C0; // Token: 0x040065AB RID: 26027 [global::Cpp2IlInjected.FieldOffset(Offset = "0x24")] [Token(Token = "0x40065AB")] private uint C1; // Token: 0x040065AC RID: 26028 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40065AC")] private uint C2; // Token: 0x040065AD RID: 26029 [global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")] [Token(Token = "0x40065AD")] private uint C3; // Token: 0x040065AE RID: 26030 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40065AE")] private bool forEncryption; // Token: 0x040065AF RID: 26031 [Token(Token = "0x40065AF")] private const int BLOCK_SIZE = 16; } }