Files
2026-04-08 23:40:05 +02:00

676 lines
27 KiB
C#

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(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesFastEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesFastEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesFastEngine.rcon = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
AesFastEngine.T0 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.102C522344FCAC1545BDA50C0FC675C502FFEC53).FieldHandle);
AesFastEngine.T1 = array5;
uint[] array6 = new uint[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.29EC5E8FCA12DB9EC0B5E6D2DE67B624D2E2372C).FieldHandle);
AesFastEngine.T2 = array6;
uint[] array7 = new uint[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.95CA85749ADCFBF9A2B82C0381DBCF95D175524C).FieldHandle);
AesFastEngine.T3 = array7;
uint[] array8 = new uint[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
AesFastEngine.Tinv0 = array8;
uint[] array9 = new uint[256];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.D9C221237B647EC215A7BCDED447349810E6BF9C).FieldHandle);
AesFastEngine.Tinv1 = array9;
uint[] array10 = new uint[256];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.E43F6BA634642FB90FEEE1A8F9905E957741960C).FieldHandle);
AesFastEngine.Tinv2 = array10;
uint[] array11 = new uint[256];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.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;
}
}