using System; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001D97 RID: 7575 [Token(Token = "0x2001D97")] public sealed class TwofishEngine : IBlockCipher { // Token: 0x0600BD03 RID: 48387 RVA: 0x002A1A20 File Offset: 0x0029FC20 [Token(Token = "0x600BD03")] [Address(RVA = "0x2593F40", Offset = "0x2592F40", VA = "0x182593F40")] public TwofishEngine() { int[] array = new int[256]; this.gMDS0 = array; int[] array2 = new int[256]; this.gMDS1 = array2; int[] array3 = new int[256]; this.gMDS2 = array3; int[] array4 = new int[256]; this.gMDS3 = array4; base..ctor(); int[] array5 = new int[2]; int[] array6 = new int[2]; int[] array7 = new int[2]; byte[,] p = TwofishEngine.P; throw new IndexOutOfRangeException(); } // Token: 0x0600BD04 RID: 48388 RVA: 0x002A1B5C File Offset: 0x0029FD5C [Token(Token = "0x600BD04")] [Address(RVA = "0x2592D20", Offset = "0x2591D20", VA = "0x182592D20", Slot = "5")] public void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (0600BD04) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_47: stloc:ArgumentException(var_7_58, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Twofish init - "), ldloc:string(var_6)))) } 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: 0x17001D98 RID: 7576 // (get) Token: 0x0600BD05 RID: 48389 RVA: 0x002A1BC4 File Offset: 0x0029FDC4 [Token(Token = "0x17001D98")] public string AlgorithmName { [Token(Token = "0x600BD05")] [Address(RVA = "0x2594460", Offset = "0x2593460", VA = "0x182594460", Slot = "4")] get { return "Twofish"; } } // Token: 0x17001D99 RID: 7577 // (get) Token: 0x0600BD06 RID: 48390 RVA: 0x002A1BD8 File Offset: 0x0029FDD8 [Token(Token = "0x17001D99")] public bool IsPartialBlockOkay { [Token(Token = "0x600BD06")] [Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")] get { } } // Token: 0x0600BD07 RID: 48391 RVA: 0x002A1BE8 File Offset: 0x0029FDE8 [Token(Token = "0x600BD07")] [Address(RVA = "0x2592FD0", Offset = "0x2591FD0", VA = "0x182592FD0", Slot = "8")] public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff) { /* An exception occurred when decompiling this method (0600BD07) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_27: stloc:InvalidOperationException(var_1_31, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Twofish 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: 0x0600BD08 RID: 48392 RVA: 0x002A1C28 File Offset: 0x0029FE28 [Token(Token = "0x600BD08")] [Address(RVA = "0x25931F0", Offset = "0x25921F0", VA = "0x1825931F0", Slot = "9")] public void Reset() { byte[] array = this.workingKey; if (array != 0) { this.SetKey(array); return; } } // Token: 0x0600BD09 RID: 48393 RVA: 0x002A1C48 File Offset: 0x0029FE48 [Token(Token = "0x600BD09")] [Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "6")] public int GetBlockSize() { return 16; } // Token: 0x0600BD0A RID: 48394 RVA: 0x002A1C58 File Offset: 0x0029FE58 [Token(Token = "0x600BD0A")] [Address(RVA = "0x2593210", Offset = "0x2592210", VA = "0x182593210")] private void SetKey(byte[] key) { int[] array = new int[4]; int[] array2 = new int[4]; int[] array3 = new int[4]; int[] array4 = new int[40]; int num = this.k64Cnt; this.gSubKeys = array4; int num2 = 0; if (num > 0) { int num3 = this.BytesTo32Bits(key, num2); int length = key.Length; num2 += 7; int num4 = this.k64Cnt; while (num2 != array2.Length) { } while (num2 != array2.Length) { } num4 -= num2; num2++; byte b; array3[0] = (int)b; num2 += 8; } int num5 = this.F32(num2, array); int num6 = this.F32(16843009, array2); int[] array5 = this.gSubKeys; num5 += num6; array5[0] = num5; num5 += num6; int[] array6 = this.gSubKeys; num2++; num2 += 33686018; num2 += 2; array6[0] = num5; int length2 = array3.Length; int num7 = array3[0]; int num8 = array3[0]; int num9 = array3[1]; int num10 = array3[1]; int[] array7 = new int[1024]; this.gSBox = array7; int num11 = this.k64Cnt; if (length2 != 3) { if (length2 != 3) { if (length2 == 3) { int[] array8 = this.gMDS0; int[] array9 = this.gSBox; byte[,] p = TwofishEngine.P; throw new IndexOutOfRangeException(); } if (num11 == 1) { byte[,] p2 = TwofishEngine.P; throw new IndexOutOfRangeException(); } } int[] array10 = this.gSBox; int[] array11 = this.gMDS0; byte[,] p3 = TwofishEngine.P; throw new IndexOutOfRangeException(); } byte[,] p4 = TwofishEngine.P; throw new IndexOutOfRangeException(); } // Token: 0x0600BD0B RID: 48395 RVA: 0x002A1FDC File Offset: 0x002A01DC [Token(Token = "0x600BD0B")] [Address(RVA = "0x2591AB0", Offset = "0x2590AB0", VA = "0x182591AB0")] private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex) { int num = this.BytesTo32Bits(src, srcIndex); int length = this.gSubKeys.Length; int length2 = src.Length; int num2 = this.Fe32_0(length2); byte b; int num3 = this.Fe32_3((int)b); int[] array = this.gSubKeys; int length3 = array.Length; uint num5; int num4 = array[(int)num5]; num4 += num3; num4 += num2; uint num6 = num5 + 1U; array += num2; int[] array2 = this.gSBox; int length4 = array2.Length; byte b2; b2 += b2; int num7 = array2[(int)b2]; int num8 = this.Fe32_3(array); int[] array3 = this.gSubKeys; int length5 = array3.Length; int num9 = array3[this]; num9 += num8; num9 += num7; num5 += (uint)3; uint num10 = num5 + 1U; num8 += num7; int num11 = array3[2]; array3[0] = num11; array3[0] = num11; int[] array4 = this.gSubKeys; int num12 = array4[2]; array4[0] = num12; array3[0] = num12; array3[0] = num12; int[] array5 = this.gSubKeys; int num13 = array5[3]; array5[0] = num13; array3[0] = num13; array3[0] = num13; int[] array6 = this.gSubKeys; int num14 = array6[3]; array6[0] = num14; array3[0] = num14; array3[0] = num14; } // Token: 0x0600BD0C RID: 48396 RVA: 0x002A216C File Offset: 0x002A036C [Token(Token = "0x600BD0C")] [Address(RVA = "0x2591250", Offset = "0x2590250", VA = "0x182591250")] private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex) { int num = this.BytesTo32Bits(src, srcIndex); int length = this.gSubKeys.Length; int length2 = src.Length; byte b2; byte b = b2; int num2 = this.Fe32_0(length2); byte b3; int num3 = this.Fe32_3((int)b3); int[] array = this.gSubKeys; int length3 = array.Length; b3 = (byte)((int)b3 + num2); uint num5; uint num4 = num5 - 1U; byte b4 = b; int num6 = array[(int)num4]; int[] array2 = this.gSBox; num6 += num3; num6 += num2; int length4 = array2.Length; b4 += b4; b = b4; b4 = b; num3++; b = b4; int num7 = array2[(int)b4]; int num8 = this.Fe32_3((int)b); int[] array3 = this.gSubKeys; num3 = num8; int length5 = array3.Length; num5 += (uint)(-2); b = (byte)((int)b + num7); num5 += (uint)(-3); uint num9 = num5 - 1U; int num10 = array3[(int)num5]; num10 += num3; num10 += num7; int num11 = array3[0]; array3[0] = num11; array3[0] = num11; int[] array4 = this.gSubKeys; int num12 = array4[0]; array4[0] = num12; array3[0] = num12; array3[0] = num12; int[] array5 = this.gSubKeys; int num13 = array5[1]; array5[0] = num13; array3[0] = num13; array3[0] = num13; int[] array6 = this.gSubKeys; int num14 = array6[1]; array6[0] = num14; array3[0] = num14; array3[0] = num14; } // Token: 0x0600BD0D RID: 48397 RVA: 0x002A2328 File Offset: 0x002A0528 [Token(Token = "0x600BD0D")] [Address(RVA = "0x2592310", Offset = "0x2591310", VA = "0x182592310")] private int F32(int x, int[] k32) { int length = k32.Length; int num = k32[0]; int num2 = k32[1]; int num3 = this.k64Cnt; int num4 = 0; int num5 = k32[1]; if (length != 3) { if (length != 3 && length != 3 && num3 != 1) { return num4; } int[] array = this.gMDS0; byte[,] p = TwofishEngine.P; int[] array2 = this.gMDS1; int[] array3 = this.gMDS2; int[] array4 = this.gMDS3; } byte[,] p2 = TwofishEngine.P; num5 = x + k32; byte[,] p3 = TwofishEngine.P; byte b; b += k32; byte b2; b2 += k32; int[] array5 = this.gMDS0; byte[,] p4 = TwofishEngine.P; int[] array6 = this.gMDS1; byte b3 = (byte)((int)b3 + num); int[] array7 = this.gMDS2; int[] array8 = this.gMDS3; byte b5; byte b4 = b5; b4 = (byte)((int)b4 + num); return num4; } // Token: 0x0600BD0E RID: 48398 RVA: 0x002A2400 File Offset: 0x002A0600 [Token(Token = "0x600BD0E")] [Address(RVA = "0x25930D0", Offset = "0x25920D0", VA = "0x1825930D0")] private int RS_MDS_Encode(int k0, int k1) { return k1; } // Token: 0x0600BD0F RID: 48399 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BD0F")] [Address(RVA = "0x25931A0", Offset = "0x25921A0", VA = "0x1825931A0")] private int RS_rem(int x) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600BD10 RID: 48400 RVA: 0x002A2410 File Offset: 0x002A0610 [Token(Token = "0x600BD10")] [Address(RVA = "0x2592EE0", Offset = "0x2591EE0", VA = "0x182592EE0")] private int LFSR1(int x) { return x; } // Token: 0x0600BD11 RID: 48401 RVA: 0x002A2420 File Offset: 0x002A0620 [Token(Token = "0x600BD11")] [Address(RVA = "0x2592F00", Offset = "0x2591F00", VA = "0x182592F00")] private int LFSR2(int x) { return x; } // Token: 0x0600BD12 RID: 48402 RVA: 0x002A2430 File Offset: 0x002A0630 [Token(Token = "0x600BD12")] [Address(RVA = "0x2592F60", Offset = "0x2591F60", VA = "0x182592F60")] private int Mx_X(int x) { return x; } // Token: 0x0600BD13 RID: 48403 RVA: 0x002A2440 File Offset: 0x002A0640 [Token(Token = "0x600BD13")] [Address(RVA = "0x2592F90", Offset = "0x2591F90", VA = "0x182592F90")] private int Mx_Y(int x) { return x; } // Token: 0x0600BD14 RID: 48404 RVA: 0x002A2450 File Offset: 0x002A0650 [Token(Token = "0x600BD14")] [Address(RVA = "0x16A3490", Offset = "0x16A2490", VA = "0x1816A3490")] private int M_b0(int x) { return x; } // Token: 0x0600BD15 RID: 48405 RVA: 0x002A2460 File Offset: 0x002A0660 [Token(Token = "0x600BD15")] [Address(RVA = "0x2592F30", Offset = "0x2591F30", VA = "0x182592F30")] private int M_b1(int x) { return x; } // Token: 0x0600BD16 RID: 48406 RVA: 0x002A2470 File Offset: 0x002A0670 [Token(Token = "0x600BD16")] [Address(RVA = "0x2592F40", Offset = "0x2591F40", VA = "0x182592F40")] private int M_b2(int x) { return x; } // Token: 0x0600BD17 RID: 48407 RVA: 0x002A2480 File Offset: 0x002A0680 [Token(Token = "0x600BD17")] [Address(RVA = "0x2592F50", Offset = "0x2591F50", VA = "0x182592F50")] private int M_b3(int x) { return x; } // Token: 0x0600BD18 RID: 48408 RVA: 0x002A2490 File Offset: 0x002A0690 [Token(Token = "0x600BD18")] [Address(RVA = "0x2592B80", Offset = "0x2591B80", VA = "0x182592B80")] private int Fe32_0(int x) { int[] array = this.gSBox; int length = array.Length; return array[x]; } // Token: 0x0600BD19 RID: 48409 RVA: 0x002A24B8 File Offset: 0x002A06B8 [Token(Token = "0x600BD19")] [Address(RVA = "0x2592C50", Offset = "0x2591C50", VA = "0x182592C50")] private int Fe32_3(int x) { int[] array = this.gSBox; int length = array.Length; return array[this]; } // Token: 0x0600BD1A RID: 48410 RVA: 0x002A24E0 File Offset: 0x002A06E0 [Token(Token = "0x600BD1A")] [Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")] private int BytesTo32Bits(byte[] b, int p) { int length = b.Length; int num = p + 1; throw new NullReferenceException(); } // Token: 0x0600BD1B RID: 48411 RVA: 0x002A2500 File Offset: 0x002A0700 [Token(Token = "0x600BD1B")] [Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")] private void Bits32ToBytes(int inData, byte[] b, int offset) { int num = offset + 1; } // Token: 0x04007781 RID: 30593 [Token(Token = "0x4007781")] private static readonly byte[,] P; // Token: 0x04007782 RID: 30594 [Token(Token = "0x4007782")] private const int P_00 = 1; // Token: 0x04007783 RID: 30595 [Token(Token = "0x4007783")] private const int P_01 = 0; // Token: 0x04007784 RID: 30596 [Token(Token = "0x4007784")] private const int P_02 = 0; // Token: 0x04007785 RID: 30597 [Token(Token = "0x4007785")] private const int P_03 = 1; // Token: 0x04007786 RID: 30598 [Token(Token = "0x4007786")] private const int P_04 = 1; // Token: 0x04007787 RID: 30599 [Token(Token = "0x4007787")] private const int P_10 = 0; // Token: 0x04007788 RID: 30600 [Token(Token = "0x4007788")] private const int P_11 = 0; // Token: 0x04007789 RID: 30601 [Token(Token = "0x4007789")] private const int P_12 = 1; // Token: 0x0400778A RID: 30602 [Token(Token = "0x400778A")] private const int P_13 = 1; // Token: 0x0400778B RID: 30603 [Token(Token = "0x400778B")] private const int P_14 = 0; // Token: 0x0400778C RID: 30604 [Token(Token = "0x400778C")] private const int P_20 = 1; // Token: 0x0400778D RID: 30605 [Token(Token = "0x400778D")] private const int P_21 = 1; // Token: 0x0400778E RID: 30606 [Token(Token = "0x400778E")] private const int P_22 = 0; // Token: 0x0400778F RID: 30607 [Token(Token = "0x400778F")] private const int P_23 = 0; // Token: 0x04007790 RID: 30608 [Token(Token = "0x4007790")] private const int P_24 = 0; // Token: 0x04007791 RID: 30609 [Token(Token = "0x4007791")] private const int P_30 = 0; // Token: 0x04007792 RID: 30610 [Token(Token = "0x4007792")] private const int P_31 = 1; // Token: 0x04007793 RID: 30611 [Token(Token = "0x4007793")] private const int P_32 = 1; // Token: 0x04007794 RID: 30612 [Token(Token = "0x4007794")] private const int P_33 = 0; // Token: 0x04007795 RID: 30613 [Token(Token = "0x4007795")] private const int P_34 = 1; // Token: 0x04007796 RID: 30614 [Token(Token = "0x4007796")] private const int GF256_FDBK = 361; // Token: 0x04007797 RID: 30615 [Token(Token = "0x4007797")] private const int GF256_FDBK_2 = 180; // Token: 0x04007798 RID: 30616 [Token(Token = "0x4007798")] private const int GF256_FDBK_4 = 90; // Token: 0x04007799 RID: 30617 [Token(Token = "0x4007799")] private const int RS_GF_FDBK = 333; // Token: 0x0400779A RID: 30618 [Token(Token = "0x400779A")] private const int ROUNDS = 16; // Token: 0x0400779B RID: 30619 [Token(Token = "0x400779B")] private const int MAX_ROUNDS = 16; // Token: 0x0400779C RID: 30620 [Token(Token = "0x400779C")] private const int BLOCK_SIZE = 16; // Token: 0x0400779D RID: 30621 [Token(Token = "0x400779D")] private const int MAX_KEY_BITS = 256; // Token: 0x0400779E RID: 30622 [Token(Token = "0x400779E")] private const int INPUT_WHITEN = 0; // Token: 0x0400779F RID: 30623 [Token(Token = "0x400779F")] private const int OUTPUT_WHITEN = 4; // Token: 0x040077A0 RID: 30624 [Token(Token = "0x40077A0")] private const int ROUND_SUBKEYS = 8; // Token: 0x040077A1 RID: 30625 [Token(Token = "0x40077A1")] private const int TOTAL_SUBKEYS = 40; // Token: 0x040077A2 RID: 30626 [Token(Token = "0x40077A2")] private const int SK_STEP = 33686018; // Token: 0x040077A3 RID: 30627 [Token(Token = "0x40077A3")] private const int SK_BUMP = 16843009; // Token: 0x040077A4 RID: 30628 [Token(Token = "0x40077A4")] private const int SK_ROTL = 9; // Token: 0x040077A5 RID: 30629 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40077A5")] private bool encrypting; // Token: 0x040077A6 RID: 30630 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40077A6")] private int[] gMDS0; // Token: 0x040077A7 RID: 30631 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40077A7")] private int[] gMDS1; // Token: 0x040077A8 RID: 30632 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40077A8")] private int[] gMDS2; // Token: 0x040077A9 RID: 30633 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40077A9")] private int[] gMDS3; // Token: 0x040077AA RID: 30634 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40077AA")] private int[] gSubKeys; // Token: 0x040077AB RID: 30635 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40077AB")] private int[] gSBox; // Token: 0x040077AC RID: 30636 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40077AC")] private int k64Cnt; // Token: 0x040077AD RID: 30637 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40077AD")] private byte[] workingKey; } }