using System; using System.Runtime.CompilerServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests { // Token: 0x02001D04 RID: 7428 [Token(Token = "0x2001D04")] public sealed class WhirlpoolDigest : IDigest, IMemoable { // Token: 0x0600BC1A RID: 48154 RVA: 0x002AB5CC File Offset: 0x002A97CC [Token(Token = "0x600BC1A")] [Address(RVA = "0x1FE95A0", Offset = "0x1FE83A0", VA = "0x181FE95A0")] 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: 0x0600BC1B RID: 48155 RVA: 0x002AB70C File Offset: 0x002A990C [Token(Token = "0x600BC1B")] [Address(RVA = "0x1FE9CB0", Offset = "0x1FE8AB0", VA = "0x181FE9CB0")] 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: 0x0600BC1C RID: 48156 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BC1C")] [Address(RVA = "0x1FEA690", Offset = "0x1FE9490", VA = "0x181FEA690")] 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: 0x0600BC1D RID: 48157 RVA: 0x002AB814 File Offset: 0x002A9A14 [Token(Token = "0x600BC1D")] [Address(RVA = "0x1FEA670", Offset = "0x1FE9470", VA = "0x181FEA670")] private static int maskWithReductionPolynomial(int input) { return input; } // Token: 0x0600BC1E RID: 48158 RVA: 0x002AB824 File Offset: 0x002A9A24 [Token(Token = "0x600BC1E")] [Address(RVA = "0x1FE9BB0", Offset = "0x1FE89B0", VA = "0x181FE9BB0")] 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: 0x17001D2F RID: 7471 // (get) Token: 0x0600BC1F RID: 48159 RVA: 0x002AB8BC File Offset: 0x002A9ABC [Token(Token = "0x17001D2F")] public string AlgorithmName { [Token(Token = "0x600BC1F")] [Address(RVA = "0x1FEA4F0", Offset = "0x1FE92F0", VA = "0x181FEA4F0", Slot = "4")] get { return "Whirlpool"; } } // Token: 0x0600BC20 RID: 48160 RVA: 0x002AB8D0 File Offset: 0x002A9AD0 [Token(Token = "0x600BC20")] [Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "5")] public int GetDigestSize() { return 64; } // Token: 0x0600BC21 RID: 48161 RVA: 0x002AB8E0 File Offset: 0x002A9AE0 [Token(Token = "0x600BC21")] [Address(RVA = "0x1FE8F90", Offset = "0x1FE7D90", VA = "0x181FE8F90", 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: 0x0600BC22 RID: 48162 RVA: 0x002AB9E8 File Offset: 0x002A9BE8 [Token(Token = "0x600BC22")] [Address(RVA = "0x1FE9170", Offset = "0x1FE7F70", VA = "0x181FE9170", 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: 0x0600BC23 RID: 48163 RVA: 0x002ABAD4 File Offset: 0x002A9CD4 [Token(Token = "0x600BC23")] [Address(RVA = "0x1FEB440", Offset = "0x1FEA240", VA = "0x181FEB440")] 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: 0x0600BC24 RID: 48164 RVA: 0x002ABB54 File Offset: 0x002A9D54 [Token(Token = "0x600BC24")] [Address(RVA = "0x1FEA0B0", Offset = "0x1FE8EB0", VA = "0x181FEA0B0")] private static long bytesToLongFromBuffer(byte[] buffer, int startPos) { int length = buffer.Length; int num = startPos + 1; throw new NullReferenceException(); } // Token: 0x0600BC25 RID: 48165 RVA: 0x002ABB74 File Offset: 0x002A9D74 [Token(Token = "0x600BC25")] [Address(RVA = "0x1FEA260", Offset = "0x1FE9060", VA = "0x181FEA260")] private static void convertLongToByteArray(long inputLong, byte[] outputArray, int offSet) { } // Token: 0x0600BC26 RID: 48166 RVA: 0x002ABB88 File Offset: 0x002A9D88 [Token(Token = "0x600BC26")] [Address(RVA = "0x1FEA6F0", Offset = "0x1FE94F0", VA = "0x181FEA6F0")] 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: 0x0600BC27 RID: 48167 RVA: 0x002ABE1C File Offset: 0x002AA01C [Token(Token = "0x600BC27")] [Address(RVA = "0x1FE9400", Offset = "0x1FE8200", VA = "0x181FE9400", 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: 0x0600BC28 RID: 48168 RVA: 0x002ABE8C File Offset: 0x002AA08C [Token(Token = "0x600BC28")] [Address(RVA = "0x1FEA520", Offset = "0x1FE9320", VA = "0x181FEA520")] private void increment() { int length = this._bitCount.Length; short[] bitCount = this._bitCount; short[] eight = WhirlpoolDigest.EIGHT; short[] bitCount2 = this._bitCount; } // Token: 0x0600BC29 RID: 48169 RVA: 0x002ABEC0 File Offset: 0x002AA0C0 [Token(Token = "0x600BC29")] [Address(RVA = "0x1FE8DF0", Offset = "0x1FE7BF0", VA = "0x181FE8DF0", Slot = "8")] public void BlockUpdate(byte[] input, int inOff, int length) { if (length > 0) { byte b; this.Update(b); } } // Token: 0x0600BC2A RID: 48170 RVA: 0x002ABEE0 File Offset: 0x002AA0E0 [Token(Token = "0x600BC2A")] [Address(RVA = "0x1FEA370", Offset = "0x1FE9170", VA = "0x181FEA370")] 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: 0x0600BC2B RID: 48171 RVA: 0x002ABFC0 File Offset: 0x002AA1C0 [Token(Token = "0x600BC2B")] [Address(RVA = "0x1FEA2D0", Offset = "0x1FE90D0", VA = "0x181FEA2D0")] 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: 0x0600BC2C RID: 48172 RVA: 0x002ABFFC File Offset: 0x002AA1FC [Token(Token = "0x600BC2C")] [Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")] public int GetByteLength() { return 64; } // Token: 0x0600BC2D RID: 48173 RVA: 0x002AC00C File Offset: 0x002AA20C [Token(Token = "0x600BC2D")] [Address(RVA = "0x1FE8E70", Offset = "0x1FE7C70", VA = "0x181FE8E70", Slot = "11")] public IMemoable Copy() { /* An exception occurred when decompiling this method (0600BC2D) 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: 0x0600BC2E RID: 48174 RVA: 0x002AC0A4 File Offset: 0x002AA2A4 [Token(Token = "0x600BC2E")] [Address(RVA = "0x1FE9240", Offset = "0x1FE8040", VA = "0x181FE9240", 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: 0x04007774 RID: 30580 [Token(Token = "0x4007774")] private const int BYTE_LENGTH = 64; // Token: 0x04007775 RID: 30581 [Token(Token = "0x4007775")] private const int DIGEST_LENGTH_BYTES = 64; // Token: 0x04007776 RID: 30582 [Token(Token = "0x4007776")] private const int ROUNDS = 10; // Token: 0x04007777 RID: 30583 [Token(Token = "0x4007777")] private const int REDUCTION_POLYNOMIAL = 285; // Token: 0x04007778 RID: 30584 [Token(Token = "0x4007778")] private static readonly int[] SBOX; // Token: 0x04007779 RID: 30585 [Token(Token = "0x4007779")] private static readonly long[] C0; // Token: 0x0400777A RID: 30586 [Token(Token = "0x400777A")] private static readonly long[] C1; // Token: 0x0400777B RID: 30587 [Token(Token = "0x400777B")] private static readonly long[] C2; // Token: 0x0400777C RID: 30588 [Token(Token = "0x400777C")] private static readonly long[] C3; // Token: 0x0400777D RID: 30589 [Token(Token = "0x400777D")] private static readonly long[] C4; // Token: 0x0400777E RID: 30590 [Token(Token = "0x400777E")] private static readonly long[] C5; // Token: 0x0400777F RID: 30591 [Token(Token = "0x400777F")] private static readonly long[] C6; // Token: 0x04007780 RID: 30592 [Token(Token = "0x4007780")] private static readonly long[] C7; // Token: 0x04007781 RID: 30593 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4007781")] private readonly long[] _rc; // Token: 0x04007782 RID: 30594 [Token(Token = "0x4007782")] private static readonly short[] EIGHT; // Token: 0x04007783 RID: 30595 [Token(Token = "0x4007783")] private const int BITCOUNT_ARRAY_SIZE = 32; // Token: 0x04007784 RID: 30596 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007784")] private byte[] _buffer; // Token: 0x04007785 RID: 30597 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007785")] private int _bufferPos; // Token: 0x04007786 RID: 30598 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007786")] private short[] _bitCount; // Token: 0x04007787 RID: 30599 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007787")] private long[] _hash; // Token: 0x04007788 RID: 30600 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007788")] private long[] _K; // Token: 0x04007789 RID: 30601 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007789")] private long[] _L; // Token: 0x0400778A RID: 30602 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400778A")] private long[] _block; // Token: 0x0400778B RID: 30603 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400778B")] private long[] _state; } }