using System; using System.Runtime.CompilerServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests { // Token: 0x02001DE4 RID: 7652 [Token(Token = "0x2001DE4")] public sealed class WhirlpoolDigest : IDigest, IMemoable { // Token: 0x0600BFE8 RID: 49128 RVA: 0x002B3E84 File Offset: 0x002B2084 [Token(Token = "0x600BFE8")] [Address(RVA = "0x24A8440", Offset = "0x24A7440", VA = "0x1824A8440")] static WhirlpoolDigest() { int[] array = new int[256]; RuntimeHelpers.InitializeArray(array, fieldof(.840B3A53AAF3595FDF3313D46FFD246A7EA6E89E).FieldHandle); WhirlpoolDigest.SBOX = array; WhirlpoolDigest.C0 = new long[256]; WhirlpoolDigest.C1 = new long[256]; WhirlpoolDigest.C2 = new long[256]; WhirlpoolDigest.C3 = new long[256]; WhirlpoolDigest.C4 = new long[256]; WhirlpoolDigest.C5 = new long[256]; WhirlpoolDigest.C6 = new long[256]; WhirlpoolDigest.C7 = new long[256]; WhirlpoolDigest.EIGHT = new short[32]; short[] eight = WhirlpoolDigest.EIGHT; int num = 0; eight[7] = (short)((uint)8); int[] sbox = WhirlpoolDigest.SBOX; int num2 = sbox[num]; WhirlpoolDigest.C0[0] = (long)num2; WhirlpoolDigest.C1[0] = sbox; WhirlpoolDigest.C2[0] = sbox; WhirlpoolDigest.C3[0] = sbox; WhirlpoolDigest.C4[0] = sbox; WhirlpoolDigest.C5[0] = (long)num2; WhirlpoolDigest.C6[0] = sbox; long[] c = WhirlpoolDigest.C7; num++; c[0] = (long)num2; } // Token: 0x0600BFE9 RID: 49129 RVA: 0x002B3FC4 File Offset: 0x002B21C4 [Token(Token = "0x600BFE9")] [Address(RVA = "0x24A8B50", Offset = "0x24A7B50", VA = "0x1824A8B50")] public WhirlpoolDigest() { long[] array = new long[11]; this._rc = array; byte[] array2 = new byte[64]; this._buffer = array2; short[] array3 = new short[32]; this._bitCount = array3; long[] array4 = new long[8]; this._hash = array4; long[] array5 = new long[8]; this._K = array5; long[] array6 = new long[8]; this._L = array6; long[] array7 = new long[8]; this._block = array7; long[] array8 = new long[8]; this._state = array8; base..ctor(); long[] rc = this._rc; long[] rc2 = this._rc; long[] c = WhirlpoolDigest.C0; long[] c2 = WhirlpoolDigest.C1; long[] c3 = WhirlpoolDigest.C2; long[] c4 = WhirlpoolDigest.C3; long[] c5 = WhirlpoolDigest.C4; long[] c6 = WhirlpoolDigest.C5; long[] c7 = WhirlpoolDigest.C6; uint num2; long num = WhirlpoolDigest.C7[(int)num2]; num2 += (uint)8; rc2[0] = num; ulong num3; num3 += (ulong)1L; while (num2 <= (uint)80) { } } // Token: 0x0600BFEA RID: 49130 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BFEA")] [Address(RVA = "0x24A9530", Offset = "0x24A8530", VA = "0x1824A9530")] private static long packIntoLong(int b7, int b6, int b5, int b4, int b3, int b2, int b1, int b0) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600BFEB RID: 49131 RVA: 0x002B40CC File Offset: 0x002B22CC [Token(Token = "0x600BFEB")] [Address(RVA = "0x24A9510", Offset = "0x24A8510", VA = "0x1824A9510")] private static int maskWithReductionPolynomial(int input) { return input; } // Token: 0x0600BFEC RID: 49132 RVA: 0x002B40DC File Offset: 0x002B22DC [Token(Token = "0x600BFEC")] [Address(RVA = "0x24A8A50", Offset = "0x24A7A50", VA = "0x1824A8A50")] public WhirlpoolDigest(WhirlpoolDigest originalDigest) { long[] array = new long[11]; this._rc = array; byte[] array2 = new byte[64]; this._buffer = array2; short[] array3 = new short[32]; this._bitCount = array3; long[] array4 = new long[8]; this._hash = array4; long[] array5 = new long[8]; this._K = array5; long[] array6 = new long[8]; this._L = array6; long[] array7 = new long[8]; this._block = array7; long[] array8 = new long[8]; this._state = array8; base..ctor(); this.Reset(originalDigest); } // Token: 0x17001DCC RID: 7628 // (get) Token: 0x0600BFED RID: 49133 RVA: 0x002B4174 File Offset: 0x002B2374 [Token(Token = "0x17001DCC")] public string AlgorithmName { [Token(Token = "0x600BFED")] [Address(RVA = "0x24A9390", Offset = "0x24A8390", VA = "0x1824A9390", Slot = "4")] get { return "Whirlpool"; } } // Token: 0x0600BFEE RID: 49134 RVA: 0x002B4188 File Offset: 0x002B2388 [Token(Token = "0x600BFEE")] [Address(RVA = "0x8BCFC0", Offset = "0x8BBFC0", VA = "0x1808BCFC0", Slot = "5")] public int GetDigestSize() { return 64; } // Token: 0x0600BFEF RID: 49135 RVA: 0x002B4198 File Offset: 0x002B2398 [Token(Token = "0x600BFEF")] [Address(RVA = "0x24A7E30", Offset = "0x24A6E30", VA = "0x1824A7E30", Slot = "9")] public int DoFinal(byte[] output, int outOff) { this.finish(); int num = 0; long num2 = this._hash[num]; int num3 = 0; num3++; num++; short[] bitCount = this._bitCount; int length = bitCount.Length; int num4 = 0; Array.Clear(bitCount, num4, length); byte[] buffer = this._buffer; int length2 = buffer.Length; int num5 = 0; Array.Clear(buffer, num5, length2); long[] hash = this._hash; int length3 = hash.Length; int num6 = 0; Array.Clear(hash, num6, length3); long[] k = this._K; int length4 = k.Length; int num7 = 0; Array.Clear(k, num7, length4); long[] l = this._L; int length5 = l.Length; int num8 = 0; Array.Clear(l, num8, length5); long[] block = this._block; int length6 = block.Length; int num9 = 0; Array.Clear(block, num9, length6); long[] state = this._state; int length7 = state.Length; int num10 = 0; Array.Clear(state, num10, length7); throw new NullReferenceException(); } // Token: 0x0600BFF0 RID: 49136 RVA: 0x002B42A0 File Offset: 0x002B24A0 [Token(Token = "0x600BFF0")] [Address(RVA = "0x24A8010", Offset = "0x24A7010", VA = "0x1824A8010", Slot = "10")] public void Reset() { this._bufferPos = (int)((ulong)0L); short[] bitCount = this._bitCount; int length = bitCount.Length; int num = 0; Array.Clear(bitCount, num, length); byte[] buffer = this._buffer; int length2 = buffer.Length; int num2 = 0; Array.Clear(buffer, num2, length2); long[] hash = this._hash; int length3 = hash.Length; int num3 = 0; Array.Clear(hash, num3, length3); long[] k = this._K; int length4 = k.Length; int num4 = 0; Array.Clear(k, num4, length4); long[] l = this._L; int length5 = l.Length; int num5 = 0; Array.Clear(l, num5, length5); long[] block = this._block; int length6 = block.Length; int num6 = 0; Array.Clear(block, num6, length6); long[] state = this._state; int length7 = state.Length; int num7 = 0; Array.Clear(state, num7, length7); } // Token: 0x0600BFF1 RID: 49137 RVA: 0x002B438C File Offset: 0x002B258C [Token(Token = "0x600BFF1")] [Address(RVA = "0x24AA2E0", Offset = "0x24A92E0", VA = "0x1824AA2E0")] private void processFilledBuffer() { long[] state = this._state; int num = 0; int num2 = 0; if (num2 < state.Length) { long[] block = this._block; byte[] buffer = this._buffer; num++; long num3; block[0] = num3; long[] state2 = this._state; } this.processBlock(); byte[] buffer2 = this._buffer; this._bufferPos = (int)((ulong)0L); int length = buffer2.Length; int num4 = 0; Array.Clear(buffer2, num4, length); } // Token: 0x0600BFF2 RID: 49138 RVA: 0x002B440C File Offset: 0x002B260C [Token(Token = "0x600BFF2")] [Address(RVA = "0x24A8F50", Offset = "0x24A7F50", VA = "0x1824A8F50")] private static long bytesToLongFromBuffer(byte[] buffer, int startPos) { int length = buffer.Length; int num = startPos + 1; throw new NullReferenceException(); } // Token: 0x0600BFF3 RID: 49139 RVA: 0x002B442C File Offset: 0x002B262C [Token(Token = "0x600BFF3")] [Address(RVA = "0x24A9100", Offset = "0x24A8100", VA = "0x1824A9100")] private static void convertLongToByteArray(long inputLong, byte[] outputArray, int offSet) { } // Token: 0x0600BFF4 RID: 49140 RVA: 0x002B4440 File Offset: 0x002B2640 [Token(Token = "0x600BFF4")] [Address(RVA = "0x24A9590", Offset = "0x24A8590", VA = "0x1824A9590")] private void processBlock() { int num = 0; long[] block = this._block; long[] state = this._state; long[] hash = this._hash; long[] k = this._K; long num2 = hash[num]; k[0] = num2; num++; state[0] = num2; this._L[0] = (long)num; long[] l = this._L; long[] k2 = this._K; long[] c = WhirlpoolDigest.C0; long[] l2 = this._L; long[] c2 = WhirlpoolDigest.C1; long[] k3 = this._K; long[] l3 = this._L; long[] c3 = WhirlpoolDigest.C2; long[] k4 = this._K; long[] l4 = this._L; long[] c4 = WhirlpoolDigest.C3; long[] k5 = this._K; long[] l5 = this._L; long[] c5 = WhirlpoolDigest.C4; long[] k6 = this._K; long[] l6 = this._L; long[] c6 = WhirlpoolDigest.C5; long[] k7 = this._K; long[] l7 = this._L; long[] c7 = WhirlpoolDigest.C6; long[] k8 = this._K; long[] l8 = this._L; long[] c8 = WhirlpoolDigest.C7; long[] k9 = this._K; num++; long[] k10 = this._K; int length = k10.Length; int num3 = 0; long[] l9 = this._L; int num4 = 0; Array.Copy(l9, num4, k10, num3, length); long[] k11 = this._K; long[] rc = this._rc; long[] k12 = this._K; long[] l10 = this._L; long num5 = k12[num]; l10[0] = num5; long[] l11 = this._L; long[] state2 = this._state; long[] c9 = WhirlpoolDigest.C0; long[] l12 = this._L; long[] c10 = WhirlpoolDigest.C1; long[] state3 = this._state; long[] l13 = this._L; long[] c11 = WhirlpoolDigest.C2; long[] state4 = this._state; long[] l14 = this._L; long[] c12 = WhirlpoolDigest.C3; long[] state5 = this._state; long[] l15 = this._L; long[] c13 = WhirlpoolDigest.C4; long[] state6 = this._state; long[] l16 = this._L; long[] c14 = WhirlpoolDigest.C5; long[] state7 = this._state; long[] l17 = this._L; long[] c15 = WhirlpoolDigest.C6; long[] state8 = this._state; long[] l18 = this._L; long[] c16 = WhirlpoolDigest.C7; long[] state9 = this._state; num++; long[] state10 = this._state; int length2 = state10.Length; int num6 = 0; long[] l19 = this._L; int num7 = 0; Array.Copy(l19, num7, state10, num6, length2); while ((ulong)((uint)1) <= (ulong)10L) { } long[] hash2 = this._hash; long[] state11 = this._state; long num8 = this._block[num]; num++; } // Token: 0x0600BFF5 RID: 49141 RVA: 0x002B46D4 File Offset: 0x002B28D4 [Token(Token = "0x600BFF5")] [Address(RVA = "0x24A82A0", Offset = "0x24A72A0", VA = "0x1824A82A0", Slot = "7")] public void Update(byte input) { byte[] buffer = this._buffer; int bufferPos = this._bufferPos; int num = this._bufferPos; byte[] buffer2 = this._buffer; num++; this._bufferPos = num; if (num == buffer2.Length) { this.processFilledBuffer(); } int length = this._bitCount.Length; short[] bitCount = this._bitCount; short[] eight = WhirlpoolDigest.EIGHT; short[] bitCount2 = this._bitCount; } // Token: 0x0600BFF6 RID: 49142 RVA: 0x002B4744 File Offset: 0x002B2944 [Token(Token = "0x600BFF6")] [Address(RVA = "0x24A93C0", Offset = "0x24A83C0", VA = "0x1824A93C0")] private void increment() { int length = this._bitCount.Length; short[] bitCount = this._bitCount; short[] eight = WhirlpoolDigest.EIGHT; short[] bitCount2 = this._bitCount; } // Token: 0x0600BFF7 RID: 49143 RVA: 0x002B4778 File Offset: 0x002B2978 [Token(Token = "0x600BFF7")] [Address(RVA = "0x24A7C90", Offset = "0x24A6C90", VA = "0x1824A7C90", Slot = "8")] public void BlockUpdate(byte[] input, int inOff, int length) { if (length > 0) { byte b; this.Update(b); } } // Token: 0x0600BFF8 RID: 49144 RVA: 0x002B4798 File Offset: 0x002B2998 [Token(Token = "0x600BFF8")] [Address(RVA = "0x24A9210", Offset = "0x24A8210", VA = "0x1824A9210")] private void finish() { byte[] array = new byte[32]; int num = 0; int num2 = 0; int length = array.Length; if (num2 < length) { short num3 = this._bitCount[num]; num++; } int bufferPos = this._bufferPos; byte[] buffer = this._buffer; int num4 = bufferPos + 1; this._bufferPos = num4; byte[] buffer2 = this._buffer; int bufferPos2; if (this._bufferPos == buffer2.Length) { this.processFilledBuffer(); bufferPos2 = this._bufferPos; } if (bufferPos2 > 32) { if (bufferPos2 == 0) { goto IL_A4; } int num5 = 0; this.Update((byte)num5); while (this.C3 != (ulong)0L) { } } int num6 = 0; this.Update((byte)num6); while (this.C3 <= (ulong)32L) { } IL_A4: int length2 = array.Length; byte[] buffer3 = this._buffer; int num7 = 0; Array.Copy(array, num7, buffer3, 32, length2); this.processFilledBuffer(); } // Token: 0x0600BFF9 RID: 49145 RVA: 0x002B4878 File Offset: 0x002B2A78 [Token(Token = "0x600BFF9")] [Address(RVA = "0x24A9170", Offset = "0x24A8170", VA = "0x1824A9170")] private byte[] copyBitLength() { byte[] array = new byte[32]; int num = 0; int length = array.Length; if (num < length) { short num2 = this._bitCount[num]; num++; } return array; } // Token: 0x0600BFFA RID: 49146 RVA: 0x002B48B4 File Offset: 0x002B2AB4 [Token(Token = "0x600BFFA")] [Address(RVA = "0x8BCFC0", Offset = "0x8BBFC0", VA = "0x1808BCFC0", Slot = "6")] public int GetByteLength() { return 64; } // Token: 0x0600BFFB RID: 49147 RVA: 0x002B48C4 File Offset: 0x002B2AC4 [Token(Token = "0x600BFFB")] [Address(RVA = "0x24A7D10", Offset = "0x24A6D10", VA = "0x1824A7D10", Slot = "11")] public IMemoable Copy() { /* An exception occurred when decompiling this method (0600BFFB) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest::Copy() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:WhirlpoolDigest(var_0_05, newobj:WhirlpoolDigest(WhirlpoolDigest::.ctor)) stloc:int64[](var_1_0D, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(11))) stfld:int64[](WhirlpoolDigest::_rc, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_1_0D)) stloc:uint8[](var_2_1C, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(64))) stfld:uint8[](WhirlpoolDigest::_buffer, ldloc:WhirlpoolDigest(var_0_05), ldloc:uint8[](var_2_1C)) stloc:int16[](var_3_2B, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(32))) stfld:int16[](WhirlpoolDigest::_bitCount, ldloc:WhirlpoolDigest(var_0_05), ldloc:int16[](var_3_2B)) stloc:int64[](var_4_39, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8))) stfld:int64[](WhirlpoolDigest::_hash, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_4_39)) stloc:int64[](var_5_49, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8))) stfld:int64[](WhirlpoolDigest::_K, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_5_49)) stloc:int64[](var_6_59, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8))) stfld:int64[](WhirlpoolDigest::_L, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_6_59)) stloc:int64[](var_7_69, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8))) stfld:int64[](WhirlpoolDigest::_block, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_7_69)) stloc:int64[](var_8_79, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8))) stfld:int64[](WhirlpoolDigest::_state, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_8_79)) call:void(WhirlpoolDigest::Reset, ldloc:WhirlpoolDigest(var_0_05), ldloc:WhirlpoolDigest[exp:IMemoable](this)) } 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: 0x0600BFFC RID: 49148 RVA: 0x002B495C File Offset: 0x002B2B5C [Token(Token = "0x600BFFC")] [Address(RVA = "0x24A80E0", Offset = "0x24A70E0", VA = "0x1824A80E0", Slot = "12")] public void Reset(IMemoable other) { while (other == 0) { } int length = this._rc.Length; int length2 = this._buffer.Length; short[] bitCount = this._bitCount; this._bufferPos = length2; int length3 = bitCount.Length; int length4 = this._hash.Length; int length5 = this._K.Length; int length6 = this._L.Length; int length7 = this._block.Length; int length8 = this._state.Length; } // Token: 0x0400792D RID: 31021 [Token(Token = "0x400792D")] private const int BYTE_LENGTH = 64; // Token: 0x0400792E RID: 31022 [Token(Token = "0x400792E")] private const int DIGEST_LENGTH_BYTES = 64; // Token: 0x0400792F RID: 31023 [Token(Token = "0x400792F")] private const int ROUNDS = 10; // Token: 0x04007930 RID: 31024 [Token(Token = "0x4007930")] private const int REDUCTION_POLYNOMIAL = 285; // Token: 0x04007931 RID: 31025 [Token(Token = "0x4007931")] private static readonly int[] SBOX; // Token: 0x04007932 RID: 31026 [Token(Token = "0x4007932")] private static readonly long[] C0; // Token: 0x04007933 RID: 31027 [Token(Token = "0x4007933")] private static readonly long[] C1; // Token: 0x04007934 RID: 31028 [Token(Token = "0x4007934")] private static readonly long[] C2; // Token: 0x04007935 RID: 31029 [Token(Token = "0x4007935")] private static readonly long[] C3; // Token: 0x04007936 RID: 31030 [Token(Token = "0x4007936")] private static readonly long[] C4; // Token: 0x04007937 RID: 31031 [Token(Token = "0x4007937")] private static readonly long[] C5; // Token: 0x04007938 RID: 31032 [Token(Token = "0x4007938")] private static readonly long[] C6; // Token: 0x04007939 RID: 31033 [Token(Token = "0x4007939")] private static readonly long[] C7; // Token: 0x0400793A RID: 31034 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400793A")] private readonly long[] _rc; // Token: 0x0400793B RID: 31035 [Token(Token = "0x400793B")] private static readonly short[] EIGHT; // Token: 0x0400793C RID: 31036 [Token(Token = "0x400793C")] private const int BITCOUNT_ARRAY_SIZE = 32; // Token: 0x0400793D RID: 31037 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400793D")] private byte[] _buffer; // Token: 0x0400793E RID: 31038 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400793E")] private int _bufferPos; // Token: 0x0400793F RID: 31039 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400793F")] private short[] _bitCount; // Token: 0x04007940 RID: 31040 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007940")] private long[] _hash; // Token: 0x04007941 RID: 31041 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007941")] private long[] _K; // Token: 0x04007942 RID: 31042 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007942")] private long[] _L; // Token: 0x04007943 RID: 31043 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007943")] private long[] _block; // Token: 0x04007944 RID: 31044 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4007944")] private long[] _state; } }