This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,587 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001703 RID: 5891
[Token(Token = "0x2001703")]
[StructLayout(3)]
public class Blake2bDigest : IDigest
{
// Token: 0x06009E25 RID: 40485 RVA: 0x00244810 File Offset: 0x00242A10
[Token(Token = "0x6009E25")]
[Address(RVA = "0x2174670", Offset = "0x2173070", VA = "0x182174670")]
public Blake2bDigest()
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[128];
this.buffer = array2;
this.digestLength = (int)((ulong)64L);
this.Init();
}
// Token: 0x06009E26 RID: 40486 RVA: 0x00244860 File Offset: 0x00242A60
[Token(Token = "0x6009E26")]
[Address(RVA = "0x21746F0", Offset = "0x21730F0", VA = "0x1821746F0")]
public Blake2bDigest(Blake2bDigest digest)
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
int num = digest.bufferPos;
this.bufferPos = num;
byte[] array2 = Arrays.Clone(digest.buffer);
this.buffer = array2;
int num2 = digest.keyLength;
this.keyLength = num2;
byte[] array3 = Arrays.Clone(digest.key);
this.key = array3;
int num3 = digest.digestLength;
this.digestLength = num3;
ulong[] array4 = Arrays.Clone(digest.chainValue);
this.chainValue = array4;
byte[] array5 = Arrays.Clone(digest.personalization);
this.personalization = array5;
byte[] array6 = Arrays.Clone(digest.salt);
this.salt = array6;
ulong num4 = digest.t0;
this.t0 = num4;
ulong num5 = digest.t1;
this.t1 = num5;
ulong num6 = digest.f0;
this.f0 = num6;
}
// Token: 0x06009E27 RID: 40487 RVA: 0x00244958 File Offset: 0x00242B58
[Token(Token = "0x6009E27")]
[Address(RVA = "0x2174590", Offset = "0x2172F90", VA = "0x182174590")]
public Blake2bDigest(int digestSize)
{
/*
An exception occurred when decompiling this method (06009E27)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2bDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5A:
stloc:ArgumentException(var_5_64, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BLAKE2b digest bit length must be a multiple of 8 and not greater than 512")))
}
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: 0x06009E28 RID: 40488 RVA: 0x002449CC File Offset: 0x00242BCC
[Token(Token = "0x6009E28")]
[Address(RVA = "0x2174470", Offset = "0x2172E70", VA = "0x182174470")]
public Blake2bDigest(byte[] key)
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[128];
this.buffer = array2;
if (key != 0)
{
byte[] array3 = new byte[key.Length];
this.key = array3;
int num = 0;
int length = key.Length;
int num2 = 0;
Array.Copy(key, num2, array3, num, length);
int length2 = key.Length;
byte[] array4 = this.buffer;
int num3 = 0;
this.keyLength = length2;
int num4 = 0;
int length3 = key.Length;
Array.Copy(key, num4, array4, num3, length3);
this.bufferPos = (int)((ulong)128L);
}
this.digestLength = (int)((ulong)64L);
this.Init();
}
// Token: 0x06009E29 RID: 40489 RVA: 0x00244A98 File Offset: 0x00242C98
[Token(Token = "0x6009E29")]
[Address(RVA = "0x2174800", Offset = "0x2173200", VA = "0x182174800")]
public Blake2bDigest(byte[] key, int digestLength, byte[] salt, byte[] personalization)
{
/*
An exception occurred when decompiling this method (06009E29)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2bDigest::.ctor(System.Byte[],System.Int32,System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_118:
stloc:ArgumentException(var_19_122, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("salt length must be exactly 16 bytes")))
}
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: 0x06009E2A RID: 40490 RVA: 0x00244BC8 File Offset: 0x00242DC8
[Token(Token = "0x6009E2A")]
[Address(RVA = "0x2173B50", Offset = "0x2172550", VA = "0x182173B50")]
private void Init()
{
if (this.chainValue == (ulong)0L)
{
ulong[] array = new ulong[8];
this.chainValue = array;
ulong[] array2 = Blake2bDigest.blake2b_IV;
int num = this.keyLength;
array[0] = (ulong)num;
ulong[] array3 = this.chainValue;
ulong num2 = Blake2bDigest.blake2b_IV[1];
array3[1] = num2;
ulong[] array4 = this.chainValue;
ulong num3 = Blake2bDigest.blake2b_IV[2];
array4[2] = num3;
ulong[] array5 = this.chainValue;
ulong num4 = Blake2bDigest.blake2b_IV[3];
array5[3] = num4;
ulong[] array6 = this.chainValue;
ulong num5 = Blake2bDigest.blake2b_IV[4];
array6[4] = num5;
ulong[] array7 = this.chainValue;
ulong num6 = Blake2bDigest.blake2b_IV[5];
array7[5] = num6;
byte[] array8 = this.salt;
if (array8 != 0)
{
ulong[] array9 = this.chainValue;
int num7 = 0;
ulong num8 = Pack.LE_To_UInt64(array8, num7);
array9[4] = num8;
ulong[] array10 = this.chainValue;
ulong num9 = Pack.LE_To_UInt64(this.salt, 8);
array10[5] = num9;
}
ulong[] array11 = this.chainValue;
ulong num10 = Blake2bDigest.blake2b_IV[6];
array11[6] = num10;
ulong[] array12 = this.chainValue;
ulong num11 = Blake2bDigest.blake2b_IV[7];
array12[7] = num11;
byte[] array13 = this.personalization;
if (array13 != 0)
{
ulong[] array14 = this.chainValue;
int num12 = 0;
ulong num13 = Pack.LE_To_UInt64(array13, num12);
array14[6] = num13;
ulong[] array15 = this.chainValue;
ulong num14 = Pack.LE_To_UInt64(this.personalization, 8);
array15[7] = num14;
}
}
}
// Token: 0x06009E2B RID: 40491 RVA: 0x00244D80 File Offset: 0x00242F80
[Token(Token = "0x6009E2B")]
[Address(RVA = "0x2174030", Offset = "0x2172A30", VA = "0x182174030")]
private void InitializeInternalState()
{
ulong[] array = this.chainValue;
int length = array.Length;
int num = 0;
ulong[] array2 = this.internalState;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
ulong[] array3 = this.chainValue;
int num3 = 0;
int length2 = array3.Length;
ulong[] array4 = this.internalState;
ulong num4;
Array.Copy(Blake2bDigest.blake2b_IV, num3, array4, length2, (int)num4);
ulong[] array5 = this.internalState;
ulong num5 = Blake2bDigest.blake2b_IV[4];
array5[12] = num5;
ulong[] array6 = this.internalState;
ulong num6 = Blake2bDigest.blake2b_IV[5];
array6[13] = num6;
ulong[] array7 = this.internalState;
ulong num7 = Blake2bDigest.blake2b_IV[6];
array7[14] = num7;
ulong[] array8 = this.internalState;
ulong num8 = Blake2bDigest.blake2b_IV[7];
array8[15] = num8;
}
// Token: 0x06009E2C RID: 40492 RVA: 0x00244E68 File Offset: 0x00243068
[Token(Token = "0x6009E2C")]
[Address(RVA = "0x2174300", Offset = "0x2172D00", VA = "0x182174300", Slot = "11")]
public virtual void Update(byte b)
{
int num = this.bufferPos;
uint num2;
byte[] array;
if (num2 != (uint)num)
{
array = this.buffer;
return;
}
if (num == array.Length)
{
}
byte[] array2 = this.buffer;
int num3 = 0;
this.Compress(array2, num3);
byte[] array3 = this.buffer;
int length = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length);
this.buffer[0] = b;
this.bufferPos = (int)((ulong)1L);
}
// Token: 0x06009E2D RID: 40493 RVA: 0x00244EE0 File Offset: 0x002430E0
[Token(Token = "0x6009E2D")]
[Address(RVA = "0x2172C20", Offset = "0x2171620", VA = "0x182172C20", Slot = "12")]
public virtual void BlockUpdate(byte[] message, int offset, int len)
{
if (message != 0 && len != 0)
{
int num = this.bufferPos;
int num2 = 0;
if (num != 0)
{
byte[] array = this.buffer;
uint num3;
num3 -= (uint)num;
Array.Copy(message, offset, array, num, len);
Array.Copy(message, offset, array, num, (int)num3);
if (num3 == (uint)len)
{
}
byte[] array2 = this.buffer;
int num4 = 0;
this.Compress(array2, num4);
byte[] array3 = this.buffer;
this.bufferPos = num2;
int length = array3.Length;
int num5 = 0;
Array.Clear(array3, num5, length);
}
num2 += offset;
this.Compress(message, num2);
byte[] array4 = this.buffer;
int num6 = 0;
Array.Copy(message, num2, array4, num6, offset);
}
}
// Token: 0x06009E2E RID: 40494 RVA: 0x00244F90 File Offset: 0x00243190
[Token(Token = "0x6009E2E")]
[Address(RVA = "0x2173590", Offset = "0x2171F90", VA = "0x182173590", Slot = "13")]
public virtual int DoFinal(byte[] output, int outOffset)
{
int num = this.bufferPos;
this.f0 = (ulong)(-1L);
this.t0 = (ulong)num;
if (num <= 0 || num == 0)
{
}
byte[] array = this.buffer;
int num2 = 0;
this.Compress(array, num2);
byte[] array2 = this.buffer;
int length = array2.Length;
int num3 = 0;
Array.Clear(array2, num3, length);
ulong[] array3 = this.internalState;
int length2 = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length2);
ulong[] array4 = this.chainValue;
int num5 = 0;
ulong[] array6;
if (num5 < array4.Length && num5 < this.digestLength)
{
byte[] array5 = Pack.UInt64_To_LE(array4[num5]);
int num6 = this.digestLength;
num6 -= num5;
int num7 = 0;
uint num8;
Array.Copy(array5, num7, output, 0, (int)num8);
array6 = this.chainValue;
num5++;
num5 += 8;
}
int length3 = array6.Length;
int num9 = 0;
Array.Clear(array6, num9, length3);
return this.digestLength;
}
// Token: 0x06009E2F RID: 40495 RVA: 0x00245090 File Offset: 0x00243290
[Token(Token = "0x6009E2F")]
[Address(RVA = "0x2174280", Offset = "0x2172C80", VA = "0x182174280", Slot = "14")]
public virtual void Reset()
{
int num = 0;
this.bufferPos = num;
this.f0 = (ulong)num;
this.t0 = (ulong)num;
this.t1 = (ulong)num;
this.chainValue = num;
byte[] array = this.buffer;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
byte[] array2 = this.key;
if (array2 != 0)
{
int length2 = array2.Length;
int num3 = 0;
byte[] array3 = this.buffer;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, length2);
this.bufferPos = (int)((ulong)128L);
}
this.Init();
}
// Token: 0x06009E30 RID: 40496 RVA: 0x00245128 File Offset: 0x00243328
[Token(Token = "0x6009E30")]
[Address(RVA = "0x2172DE0", Offset = "0x21717E0", VA = "0x182172DE0")]
private void Compress(byte[] message, int messagePos)
{
this.InitializeInternalState();
ulong[] array = new ulong[16];
int num = 0;
ulong num2 = Pack.LE_To_UInt64(message, messagePos);
num++;
array[0] = num2;
byte[,] array2 = Blake2bDigest.blake2b_sigma;
throw new IndexOutOfRangeException();
}
// Token: 0x06009E31 RID: 40497 RVA: 0x00245394 File Offset: 0x00243594
[Token(Token = "0x6009E31")]
[Address(RVA = "0x2173710", Offset = "0x2172110", VA = "0x182173710")]
private void G(ulong m1, ulong m2, int posA, int posB, int posC, int posD)
{
ulong[] array = this.internalState;
int length = array.Length;
ulong num;
ulong num2;
num += num2;
num += m1;
int length2 = this.internalState.Length;
ulong num3;
array.m_value = num3;
ulong[] array2 = this.internalState;
int length3 = array2.Length;
ulong num4;
ulong num5;
num4 += num5;
array2[0] = num4;
int length4 = this.internalState.Length;
int length5 = this.internalState.Length;
ulong num6;
ulong num7;
num6 += num7;
int length6 = this.internalState.Length;
ulong num8;
array.m_value = num8;
ulong[] array3 = this.internalState;
int length7 = array3.Length;
ulong num9;
ulong num10;
num9 += num10;
array3[0] = num9;
int length8 = this.internalState.Length;
ulong num11;
num11 += num11;
}
// Token: 0x06009E32 RID: 40498 RVA: 0x00245460 File Offset: 0x00243660
[Token(Token = "0x6009E32")]
[Address(RVA = "0x706530", Offset = "0x704F30", VA = "0x180706530")]
private static ulong Rotr64(ulong x, int rot)
{
return x;
}
// Token: 0x17001907 RID: 6407
// (get) Token: 0x06009E33 RID: 40499 RVA: 0x00245470 File Offset: 0x00243670
[Token(Token = "0x17001907")]
public virtual string AlgorithmName
{
[Token(Token = "0x6009E33")]
[Address(RVA = "0x2174A60", Offset = "0x2173460", VA = "0x182174A60", Slot = "15")]
get
{
return "BLAKE2b";
}
}
// Token: 0x06009E34 RID: 40500 RVA: 0x00245484 File Offset: 0x00243684
[Token(Token = "0x6009E34")]
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "16")]
public virtual int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x06009E35 RID: 40501 RVA: 0x00245498 File Offset: 0x00243698
[Token(Token = "0x6009E35")]
[Address(RVA = "0x2173B40", Offset = "0x2172540", VA = "0x182173B40", Slot = "17")]
public virtual int GetByteLength()
{
return 128;
}
// Token: 0x06009E36 RID: 40502 RVA: 0x002454AC File Offset: 0x002436AC
[Token(Token = "0x6009E36")]
[Address(RVA = "0x2172D70", Offset = "0x2171770", VA = "0x182172D70", Slot = "18")]
public virtual void ClearKey()
{
byte[] array = this.key;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
byte[] array2 = this.buffer;
int length2 = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length2);
return;
}
}
// Token: 0x06009E37 RID: 40503 RVA: 0x002454F8 File Offset: 0x002436F8
[Token(Token = "0x6009E37")]
[Address(RVA = "0x2172DC0", Offset = "0x21717C0", VA = "0x182172DC0", Slot = "19")]
public virtual void ClearSalt()
{
byte[] array = this.salt;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
return;
}
}
// Token: 0x06009E38 RID: 40504 RVA: 0x00245524 File Offset: 0x00243724
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E38")]
[Address(RVA = "0x21743C0", Offset = "0x2172DC0", VA = "0x1821743C0")]
static Blake2bDigest()
{
ulong[] array = new ulong[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.22F13A28C218AA9B43303043F2CF664790D12BD7).FieldHandle);
Blake2bDigest.blake2b_IV = array;
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.DB8FE39060DF4E7BC9CC190D08EFF78F0C61F289).FieldHandle);
Blake2bDigest.blake2b_sigma = array;
}
// Token: 0x040067FD RID: 26621
[Token(Token = "0x40067FD")]
private static readonly ulong[] blake2b_IV;
// Token: 0x040067FE RID: 26622
[Token(Token = "0x40067FE")]
private static readonly byte[,] blake2b_sigma;
// Token: 0x040067FF RID: 26623
[Token(Token = "0x40067FF")]
private const int ROUNDS = 12;
// Token: 0x04006800 RID: 26624
[Token(Token = "0x4006800")]
private const int BLOCK_LENGTH_BYTES = 128;
// Token: 0x04006801 RID: 26625
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006801")]
private int digestLength;
// Token: 0x04006802 RID: 26626
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
[Token(Token = "0x4006802")]
private int keyLength;
// Token: 0x04006803 RID: 26627
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006803")]
private byte[] salt;
// Token: 0x04006804 RID: 26628
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006804")]
private byte[] personalization;
// Token: 0x04006805 RID: 26629
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006805")]
private byte[] key;
// Token: 0x04006806 RID: 26630
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006806")]
private byte[] buffer;
// Token: 0x04006807 RID: 26631
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006807")]
private int bufferPos;
// Token: 0x04006808 RID: 26632
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006808")]
private ulong[] internalState;
// Token: 0x04006809 RID: 26633
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006809")]
private ulong[] chainValue;
// Token: 0x0400680A RID: 26634
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x400680A")]
private ulong t0;
// Token: 0x0400680B RID: 26635
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x400680B")]
private ulong t1;
// Token: 0x0400680C RID: 26636
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x400680C")]
private ulong f0;
}
}
@@ -0,0 +1,575 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters.Binary;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001704 RID: 5892
[Token(Token = "0x2001704")]
[StructLayout(3)]
public class Blake2sDigest : IDigest
{
// Token: 0x06009E39 RID: 40505 RVA: 0x0024555C File Offset: 0x0024375C
[Token(Token = "0x6009E39")]
[Address(RVA = "0x2176680", Offset = "0x2175080", VA = "0x182176680")]
public Blake2sDigest()
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[64];
this.buffer = array2;
this.digestLength = (int)((ulong)32L);
this.Init();
}
// Token: 0x06009E3A RID: 40506 RVA: 0x002455A8 File Offset: 0x002437A8
[Token(Token = "0x6009E3A")]
[Address(RVA = "0x2176130", Offset = "0x2174B30", VA = "0x182176130")]
public Blake2sDigest(Blake2sDigest digest)
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
int num = digest.bufferPos;
this.bufferPos = num;
byte[] array2 = Arrays.Clone(digest.buffer);
this.buffer = array2;
int num2 = digest.keyLength;
this.keyLength = num2;
byte[] array3 = Arrays.Clone(digest.key);
this.key = array3;
int num3 = digest.digestLength;
this.digestLength = num3;
uint[] array4 = Arrays.Clone(digest.chainValue);
this.chainValue = array4;
byte[] array5 = Arrays.Clone(digest.personalization);
this.personalization = array5;
}
// Token: 0x06009E3B RID: 40507 RVA: 0x00245658 File Offset: 0x00243858
[Token(Token = "0x6009E3B")]
[Address(RVA = "0x2176340", Offset = "0x2174D40", VA = "0x182176340")]
public Blake2sDigest(int digestBits)
{
/*
An exception occurred when decompiling this method (06009E3B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_57:
stloc:ArgumentException(var_5_61, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BLAKE2s digest bit length must be a multiple of 8 and not greater than 256")))
}
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: 0x06009E3C RID: 40508 RVA: 0x002456C8 File Offset: 0x002438C8
[Token(Token = "0x6009E3C")]
[Address(RVA = "0x2176220", Offset = "0x2174C20", VA = "0x182176220")]
public Blake2sDigest(byte[] key)
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[64];
this.buffer = array2;
if (key != 0)
{
byte[] array3 = new byte[key.Length];
this.key = array3;
int num = 0;
int length = key.Length;
int num2 = 0;
Array.Copy(key, num2, array3, num, length);
int length2 = key.Length;
int num3 = 0;
byte[] array4 = this.buffer;
int num4 = 0;
this.keyLength = length2;
int length3 = key.Length;
Array.Copy(key, num4, array4, num3, length3);
this.bufferPos = (int)((ulong)64L);
}
this.digestLength = (int)((ulong)32L);
this.Init();
}
// Token: 0x06009E3D RID: 40509 RVA: 0x00245790 File Offset: 0x00243990
[Token(Token = "0x6009E3D")]
[Address(RVA = "0x2176420", Offset = "0x2174E20", VA = "0x182176420")]
public Blake2sDigest(byte[] key, int digestBytes, byte[] salt, byte[] personalization)
{
/*
An exception occurred when decompiling this method (06009E3D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Byte[],System.Int32,System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_110:
stloc:ArgumentException(var_19_11A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Salt length must be exactly 8 bytes")))
}
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: 0x06009E3E RID: 40510 RVA: 0x002458B8 File Offset: 0x00243AB8
[Token(Token = "0x6009E3E")]
[Address(RVA = "0x2175850", Offset = "0x2174250", VA = "0x182175850")]
private void Init()
{
if (this.chainValue == (ulong)0L)
{
uint[] array = new uint[8];
this.chainValue = array;
uint[] array2 = Blake2sDigest.blake2s_IV;
int num = this.keyLength;
array[0] = (uint)num;
uint[] array3 = this.chainValue;
uint num2 = Blake2sDigest.blake2s_IV[0];
array3[0] = num2;
uint[] array4 = this.chainValue;
uint num3 = Blake2sDigest.blake2s_IV[1];
array4[1] = num3;
uint[] array5 = this.chainValue;
uint num4 = Blake2sDigest.blake2s_IV[1];
array5[1] = num4;
uint[] array6 = this.chainValue;
uint num5 = Blake2sDigest.blake2s_IV[2];
array6[2] = num5;
uint[] array7 = this.chainValue;
uint num6 = Blake2sDigest.blake2s_IV[2];
array7[2] = num6;
byte[] array8 = this.salt;
if (array8 != 0)
{
uint[] array9 = this.chainValue;
int num7 = 0;
int @int = SerializationHeaderRecord.GetInt32(array8, num7);
array9[2] = (uint)@int;
uint[] array10 = this.chainValue;
int int2 = SerializationHeaderRecord.GetInt32(this.salt, 4);
array10[2] = (uint)int2;
}
uint[] array11 = this.chainValue;
uint num8 = Blake2sDigest.blake2s_IV[3];
array11[3] = num8;
uint[] array12 = this.chainValue;
uint num9 = Blake2sDigest.blake2s_IV[3];
array12[3] = num9;
byte[] array13 = this.personalization;
if (array13 != 0)
{
uint[] array14 = this.chainValue;
int num10 = 0;
int int3 = SerializationHeaderRecord.GetInt32(array13, num10);
array14[3] = (uint)int3;
uint[] array15 = this.chainValue;
int int4 = SerializationHeaderRecord.GetInt32(this.personalization, 4);
array15[3] = (uint)int4;
}
}
}
// Token: 0x06009E3F RID: 40511 RVA: 0x00245A70 File Offset: 0x00243C70
[Token(Token = "0x6009E3F")]
[Address(RVA = "0x2175D10", Offset = "0x2174710", VA = "0x182175D10")]
private void InitializeInternalState()
{
uint[] array = this.chainValue;
int length = array.Length;
int num = 0;
uint[] array2 = this.internalState;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
uint[] array3 = this.chainValue;
int num3 = 0;
int length2 = array3.Length;
uint[] array4 = this.internalState;
ulong num4;
Array.Copy(Blake2sDigest.blake2s_IV, num3, array4, length2, (int)num4);
uint[] array5 = this.internalState;
uint num5 = Blake2sDigest.blake2s_IV[2];
array5[6] = num5;
uint[] array6 = this.internalState;
uint num6 = Blake2sDigest.blake2s_IV[2];
array6[6] = num6;
uint[] array7 = this.internalState;
uint num7 = Blake2sDigest.blake2s_IV[3];
array7[7] = num7;
uint[] array8 = this.internalState;
uint num8 = Blake2sDigest.blake2s_IV[3];
array8[7] = num8;
}
// Token: 0x06009E40 RID: 40512 RVA: 0x00245B54 File Offset: 0x00243D54
[Token(Token = "0x6009E40")]
[Address(RVA = "0x2175FC0", Offset = "0x21749C0", VA = "0x182175FC0", Slot = "11")]
public virtual void Update(byte b)
{
int num = this.bufferPos;
uint num2;
byte[] array;
if (num2 != (uint)num)
{
array = this.buffer;
return;
}
if (num == array.Length)
{
}
byte[] array2 = this.buffer;
int num3 = 0;
this.Compress(array2, num3);
byte[] array3 = this.buffer;
int length = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length);
this.buffer[0] = b;
this.bufferPos = (int)((ulong)1L);
}
// Token: 0x06009E41 RID: 40513 RVA: 0x00245BCC File Offset: 0x00243DCC
[Token(Token = "0x6009E41")]
[Address(RVA = "0x2174A90", Offset = "0x2173490", VA = "0x182174A90", Slot = "12")]
public virtual void BlockUpdate(byte[] message, int offset, int len)
{
if (message != 0 && len != 0)
{
int num = this.bufferPos;
int num2 = 0;
if (num != 0)
{
byte[] array = this.buffer;
uint num3;
num3 -= (uint)num;
Array.Copy(message, offset, array, num, len);
Array.Copy(message, offset, array, num, (int)num3);
if (num3 == (uint)len)
{
}
byte[] array2 = this.buffer;
int num4 = 0;
this.Compress(array2, num4);
byte[] array3 = this.buffer;
this.bufferPos = num2;
int length = array3.Length;
int num5 = 0;
Array.Clear(array3, num5, length);
}
num2 += offset;
this.Compress(message, num2);
num2 += 64;
byte[] array4 = this.buffer;
int num6 = 0;
Array.Copy(message, num2, array4, num6, offset);
}
}
// Token: 0x06009E42 RID: 40514 RVA: 0x00245C80 File Offset: 0x00243E80
[Token(Token = "0x6009E42")]
[Address(RVA = "0x2175360", Offset = "0x2173D60", VA = "0x182175360", Slot = "13")]
public virtual int DoFinal(byte[] output, int outOffset)
{
this.f0 = (uint)((ulong)4294967295L);
byte[] array = this.buffer;
int num = 0;
this.Compress(array, num);
byte[] array2 = this.buffer;
int length = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length);
uint[] array3 = this.internalState;
int length2 = array3.Length;
int num3 = 0;
Array.Clear(array3, num3, length2);
uint[] array4 = this.chainValue;
int num4 = 0;
uint[] array6;
if (num4 < array4.Length && num4 < this.digestLength)
{
byte[] array5 = Pack.UInt32_To_LE(array4[num4]);
int num5 = this.digestLength;
num5 -= num4;
int num6 = 0;
uint num7;
Array.Copy(array5, num6, output, 0, (int)num7);
array6 = this.chainValue;
num4++;
num4 += 4;
}
int length3 = array6.Length;
int num8 = 0;
Array.Clear(array6, num8, length3);
return this.digestLength;
}
// Token: 0x06009E43 RID: 40515 RVA: 0x00245D70 File Offset: 0x00243F70
[Token(Token = "0x6009E43")]
[Address(RVA = "0x2175F40", Offset = "0x2174940", VA = "0x182175F40", Slot = "14")]
public virtual void Reset()
{
int num = 0;
this.bufferPos = num;
this.t1 = (uint)num;
this.t0 = (uint)num;
this.chainValue = num;
byte[] array = this.buffer;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
byte[] array2 = this.key;
if (array2 != 0)
{
int length2 = array2.Length;
int num3 = 0;
byte[] array3 = this.buffer;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, length2);
this.bufferPos = (int)((ulong)64L);
}
this.Init();
}
// Token: 0x06009E44 RID: 40516 RVA: 0x00245DFC File Offset: 0x00243FFC
[Token(Token = "0x6009E44")]
[Address(RVA = "0x2174BD0", Offset = "0x21735D0", VA = "0x182174BD0")]
private void Compress(byte[] message, int messagePos)
{
this.InitializeInternalState();
uint[] array = new uint[16];
int num = 0;
num++;
array[0] = array;
byte[,] array2 = Blake2sDigest.blake2s_sigma;
throw new IndexOutOfRangeException();
}
// Token: 0x06009E45 RID: 40517 RVA: 0x00246064 File Offset: 0x00244264
[Token(Token = "0x6009E45")]
[Address(RVA = "0x21754C0", Offset = "0x2173EC0", VA = "0x1821754C0")]
private void G(uint m1, uint m2, int posA, int posB, int posC, int posD)
{
uint[] array = this.internalState;
int length = array.Length;
uint num;
uint num2;
num += num2;
num += m1;
posA.m_value = (int)num;
int length2 = this.internalState.Length;
uint num3;
array.m_value = num3;
uint[] array2 = this.internalState;
int length3 = array2.Length;
uint num4;
uint num5;
num4 += num5;
array2[0] = num4;
int length4 = this.internalState.Length;
int length5 = this.internalState.Length;
uint num6;
uint num7;
num6 += num7;
num6 += m2;
posA.m_value = (int)num6;
int length6 = this.internalState.Length;
uint num8;
array.m_value = num8;
uint[] array3 = this.internalState;
int length7 = array3.Length;
uint num9;
uint num10;
num9 += num10;
array3[0] = num9;
int length8 = this.internalState.Length;
}
// Token: 0x06009E46 RID: 40518 RVA: 0x00246140 File Offset: 0x00244340
[Token(Token = "0x6009E46")]
[Address(RVA = "0x2176730", Offset = "0x2175130", VA = "0x182176730")]
private uint rotr32(uint x, int rot)
{
return x;
}
// Token: 0x17001908 RID: 6408
// (get) Token: 0x06009E47 RID: 40519 RVA: 0x00246150 File Offset: 0x00244350
[Token(Token = "0x17001908")]
public virtual string AlgorithmName
{
[Token(Token = "0x6009E47")]
[Address(RVA = "0x2176700", Offset = "0x2175100", VA = "0x182176700", Slot = "15")]
get
{
return "BLAKE2s";
}
}
// Token: 0x06009E48 RID: 40520 RVA: 0x00246164 File Offset: 0x00244364
[Token(Token = "0x6009E48")]
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "16")]
public virtual int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x06009E49 RID: 40521 RVA: 0x00246178 File Offset: 0x00244378
[Token(Token = "0x6009E49")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "17")]
public virtual int GetByteLength()
{
return 64;
}
// Token: 0x06009E4A RID: 40522 RVA: 0x00246188 File Offset: 0x00244388
[Token(Token = "0x6009E4A")]
[Address(RVA = "0x2172D70", Offset = "0x2171770", VA = "0x182172D70", Slot = "18")]
public virtual void ClearKey()
{
byte[] array = this.key;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
byte[] array2 = this.buffer;
int length2 = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length2);
return;
}
}
// Token: 0x06009E4B RID: 40523 RVA: 0x002461D4 File Offset: 0x002443D4
[Token(Token = "0x6009E4B")]
[Address(RVA = "0x2172DC0", Offset = "0x21717C0", VA = "0x182172DC0", Slot = "19")]
public virtual void ClearSalt()
{
byte[] array = this.salt;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
return;
}
}
// Token: 0x06009E4C RID: 40524 RVA: 0x00246200 File Offset: 0x00244400
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E4C")]
[Address(RVA = "0x2176080", Offset = "0x2174A80", VA = "0x182176080")]
static Blake2sDigest()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.013B76F7DD3E0346CB351F079CC062EFBD293457).FieldHandle);
Blake2sDigest.blake2s_IV = array;
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.7F817443C1F736721DD92BD67C7C8994C7B8DEBF).FieldHandle);
Blake2sDigest.blake2s_sigma = array;
}
// Token: 0x0400680D RID: 26637
[Token(Token = "0x400680D")]
private static readonly uint[] blake2s_IV;
// Token: 0x0400680E RID: 26638
[Token(Token = "0x400680E")]
private static readonly byte[,] blake2s_sigma;
// Token: 0x0400680F RID: 26639
[Token(Token = "0x400680F")]
private const int ROUNDS = 10;
// Token: 0x04006810 RID: 26640
[Token(Token = "0x4006810")]
private const int BLOCK_LENGTH_BYTES = 64;
// Token: 0x04006811 RID: 26641
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006811")]
private int digestLength;
// Token: 0x04006812 RID: 26642
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
[Token(Token = "0x4006812")]
private int keyLength;
// Token: 0x04006813 RID: 26643
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006813")]
private byte[] salt;
// Token: 0x04006814 RID: 26644
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006814")]
private byte[] personalization;
// Token: 0x04006815 RID: 26645
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006815")]
private byte[] key;
// Token: 0x04006816 RID: 26646
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006816")]
private byte[] buffer;
// Token: 0x04006817 RID: 26647
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006817")]
private int bufferPos;
// Token: 0x04006818 RID: 26648
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006818")]
private uint[] internalState;
// Token: 0x04006819 RID: 26649
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006819")]
private uint[] chainValue;
// Token: 0x0400681A RID: 26650
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x400681A")]
private uint t0;
// Token: 0x0400681B RID: 26651
[global::Cpp2IlInjected.FieldOffset(Offset = "0x54")]
[Token(Token = "0x400681B")]
private uint t1;
// Token: 0x0400681C RID: 26652
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x400681C")]
private uint f0;
}
}
@@ -0,0 +1,559 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001705 RID: 5893
[Token(Token = "0x2001705")]
[StructLayout(3)]
public class Dstu7564Digest : IDigest, IMemoable
{
// Token: 0x06009E4D RID: 40525 RVA: 0x00246238 File Offset: 0x00244438
[Token(Token = "0x6009E4D")]
[Address(RVA = "0x217B5F0", Offset = "0x2179FF0", VA = "0x18217B5F0")]
public Dstu7564Digest(Dstu7564Digest digest)
{
this.CopyIn(digest);
}
// Token: 0x06009E4E RID: 40526 RVA: 0x00246254 File Offset: 0x00244454
[Token(Token = "0x6009E4E")]
[Address(RVA = "0x2179B60", Offset = "0x2178560", VA = "0x182179B60")]
private void CopyIn(Dstu7564Digest digest)
{
int num = digest.hashSize;
this.hashSize = num;
int num2 = digest.blockSize;
this.blockSize = num2;
int num3 = digest.rounds;
this.rounds = num3;
int num4 = this.columns;
if (num4 > 0 && num4 == digest.S3)
{
ulong[] array = this.state;
ulong[] array2 = digest.state;
int num5 = 0;
int num6 = 0;
Array.Copy(array2, num6, array, num5, num4);
int num7 = this.blockSize;
int num8 = 0;
byte[] array3 = this.buf;
int num9 = 0;
Array.Copy(digest.buf, num9, array3, num8, num7);
}
int num10 = digest.columns;
this.columns = num10;
ulong[] array4 = Arrays.Clone(digest.state);
int num11 = this.columns;
this.state = array4;
ulong[] array5 = new ulong[num11];
int num12 = this.columns;
this.tempState1 = array5;
ulong[] array6 = new ulong[num12];
this.tempState2 = array6;
byte[] array7 = Arrays.Clone(digest.buf);
this.buf = array7;
ulong num13 = digest.inputBlocks;
this.inputBlocks = num13;
int num14 = digest.bufOff;
this.bufOff = num14;
}
// Token: 0x06009E4F RID: 40527 RVA: 0x00246384 File Offset: 0x00244584
[Token(Token = "0x6009E4F")]
[Address(RVA = "0x217B620", Offset = "0x217A020", VA = "0x18217B620")]
public Dstu7564Digest(int hashSizeBits)
{
/*
An exception occurred when decompiling this method (06009E4F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A6:
stloc:ArgumentException(var_11_B0, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Hash size is not recommended. Use 256/384/512 instead")))
}
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: 0x17001909 RID: 6409
// (get) Token: 0x06009E50 RID: 40528 RVA: 0x00246444 File Offset: 0x00244644
[Token(Token = "0x17001909")]
public virtual string AlgorithmName
{
[Token(Token = "0x6009E50")]
[Address(RVA = "0x217B770", Offset = "0x217A170", VA = "0x18217B770", Slot = "13")]
get
{
return "DSTU7564";
}
}
// Token: 0x06009E51 RID: 40529 RVA: 0x00246458 File Offset: 0x00244658
[Token(Token = "0x6009E51")]
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "14")]
public virtual int GetDigestSize()
{
return this.hashSize;
}
// Token: 0x06009E52 RID: 40530 RVA: 0x0024646C File Offset: 0x0024466C
[Token(Token = "0x6009E52")]
[Address(RVA = "0x55D550", Offset = "0x55BF50", VA = "0x18055D550", Slot = "15")]
public virtual int GetByteLength()
{
return this.blockSize;
}
// Token: 0x06009E53 RID: 40531 RVA: 0x00246480 File Offset: 0x00244680
[Token(Token = "0x6009E53")]
[Address(RVA = "0x217B460", Offset = "0x2179E60", VA = "0x18217B460", Slot = "16")]
public virtual void Update(byte input)
{
byte[] array = this.buf;
int num = this.bufOff + 1;
this.bufOff = num;
int num2 = this.blockSize;
if (this.bufOff == num2)
{
this.Reset();
this.bufOff = (int)((ulong)0L);
}
}
// Token: 0x06009E54 RID: 40532 RVA: 0x002464CC File Offset: 0x002446CC
[Token(Token = "0x6009E54")]
[Address(RVA = "0x2179A40", Offset = "0x2178440", VA = "0x182179A40", Slot = "17")]
public virtual void BlockUpdate(byte[] input, int inOff, int length)
{
if (this.bufOff != 0)
{
if (length <= 0)
{
return;
}
int byteLength = this.GetByteLength();
while (this.bufOff != 0)
{
}
}
if (length > 0)
{
this.Reset();
int num = this.blockSize;
while (length >= num)
{
}
if (length > 0)
{
int byteLength2 = this.GetByteLength();
}
}
}
// Token: 0x06009E55 RID: 40533 RVA: 0x00246520 File Offset: 0x00244720
[Token(Token = "0x6009E55")]
[Address(RVA = "0x2179CF0", Offset = "0x21786F0", VA = "0x182179CF0", Slot = "18")]
public virtual int DoFinal(byte[] output, int outOff)
{
int num = this.bufOff;
byte[] array = this.buf;
int num2 = num + 1;
this.bufOff = num2;
int num3 = 0;
int num4 = this.blockSize;
int num5 = this.bufOff;
if (num5 < num4)
{
byte[] array2 = this.buf;
int num6 = num5 + 1;
this.bufOff = num6;
int num7 = this.bufOff;
}
this.bufOff = num3;
this.Reset();
int num8 = this.bufOff;
byte[] array3 = this.buf;
int num9 = num5 + 1;
this.bufOff = num9;
int num10 = this.bufOff;
ulong num11 = this.inputBlocks;
int num12 = this.blockSize;
byte[] array4 = this.buf;
ulong num13 = num11 * (ulong)num12;
num13 += (ulong)num;
Ed25519.Encode32((uint)num13, array4, num10);
ulong num14 = this.inputBlocks;
int num15 = this.blockSize;
int num16 = this.bufOff;
byte[] array5 = this.buf;
Pack.UInt64_To_LE(num14 * (ulong)num15, array5, num16);
this.Reset();
int num17 = this.columns;
int num18 = 0;
ulong[] array6 = this.tempState1;
int num19 = 0;
Array.Copy(this.state, num19, array6, num18, num17);
ulong[] array7 = this.tempState1;
this.P(array7);
int num20;
if (this.columns > 0)
{
ulong[] array8 = this.state;
ulong[] array9 = this.tempState1;
num3++;
num20 = this.columns;
}
int num21 = this.hashSize;
num21 += num3;
num20 -= num21;
if (num20 < num20)
{
Pack.UInt64_To_LE(this.state[num20], output, outOff);
num20++;
}
return this.hashSize;
}
// Token: 0x06009E56 RID: 40534 RVA: 0x002466BC File Offset: 0x002448BC
[Token(Token = "0x6009E56")]
[Address(RVA = "0x217A590", Offset = "0x2178F90", VA = "0x18217A590", Slot = "19")]
public virtual void Reset()
{
ulong[] array = this.state;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
ulong[] array2 = this.state;
int num2 = this.blockSize;
array2[0] = (ulong)num2;
int num3 = 0;
this.inputBlocks = (ulong)num3;
this.bufOff = num3;
}
// Token: 0x06009E57 RID: 40535 RVA: 0x00246714 File Offset: 0x00244914
[Token(Token = "0x6009E57")]
[Address(RVA = "0x217A270", Offset = "0x2178C70", VA = "0x18217A270", Slot = "20")]
protected virtual void ProcessBlock(byte[] input, int inOff)
{
int num = 0;
if (this.S3 > num)
{
ulong num2 = Pack.LE_To_UInt64(input, inOff);
ulong[] array = this.state;
ulong[] array2 = this.tempState1;
ulong num3 = array[num];
array2[0] = num3;
ulong[] array3 = this.tempState2;
num++;
array3[0] = num2;
}
ulong[] array4 = this.tempState1;
this.P(array4);
ulong[] array5 = this.tempState2;
if (this.rounds > num)
{
int num4 = this.columns;
if (num4 > 0)
{
num++;
ulong num5;
num4 = (int)((ulong)num4 - num5);
}
this.ShiftRows(array5);
this.SubBytes(array5);
this.MixColumns(array5);
num++;
}
if (this.S3 > num)
{
ulong[] array6 = this.state;
ulong[] array7 = this.tempState1;
ulong num6 = this.tempState2[num];
num++;
}
}
// Token: 0x06009E58 RID: 40536 RVA: 0x002467F0 File Offset: 0x002449F0
[Token(Token = "0x6009E58")]
[Address(RVA = "0x217A1C0", Offset = "0x2178BC0", VA = "0x18217A1C0")]
private void P(ulong[] s)
{
int num = 0;
if (this.rounds > num)
{
int num2 = 0;
if (this.S3 > num2)
{
num2++;
num += 16;
}
this.ShiftRows(s);
this.SubBytes(s);
this.MixColumns(s);
num++;
}
}
// Token: 0x06009E59 RID: 40537 RVA: 0x0024683C File Offset: 0x00244A3C
[Token(Token = "0x6009E59")]
[Address(RVA = "0x217A4B0", Offset = "0x2178EB0", VA = "0x18217A4B0")]
private void Q(ulong[] s)
{
int num = 0;
if (this.rounds > num)
{
int num2 = this.columns;
int num3 = 0;
if (num2 > 0)
{
num3++;
ulong num4;
num2 = (int)((ulong)num2 - num4);
}
this.ShiftRows(s);
this.SubBytes(s);
this.MixColumns(s);
num++;
}
}
// Token: 0x06009E5A RID: 40538 RVA: 0x00246888 File Offset: 0x00244A88
[Token(Token = "0x6009E5A")]
[Address(RVA = "0x2179FB0", Offset = "0x21789B0", VA = "0x182179FB0")]
private static ulong MixColumn(ulong c)
{
return c;
}
// Token: 0x06009E5B RID: 40539 RVA: 0x00246898 File Offset: 0x00244A98
[Token(Token = "0x6009E5B")]
[Address(RVA = "0x217A0F0", Offset = "0x2178AF0", VA = "0x18217A0F0")]
private void MixColumns(ulong[] s)
{
int num = 0;
if (this.S3 > num)
{
ulong num2 = Dstu7564Digest.MixColumn(s[num]);
num++;
s[0] = num2;
}
}
// Token: 0x06009E5C RID: 40540 RVA: 0x002468D0 File Offset: 0x00244AD0
[Token(Token = "0x6009E5C")]
[Address(RVA = "0x211C540", Offset = "0x211AF40", VA = "0x18211C540")]
private static ulong Rotate(int n, ulong x)
{
return x;
}
// Token: 0x06009E5D RID: 40541 RVA: 0x002468E0 File Offset: 0x00244AE0
[Token(Token = "0x6009E5D")]
[Address(RVA = "0x217A690", Offset = "0x2179090", VA = "0x18217A690")]
private void ShiftRows(ulong[] s)
{
/*
An exception occurred when decompiling this method (06009E5D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::ShiftRows(System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_13E:
stloc:InvalidOperationException(var_18_148, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported state size: only 512/1024 are allowed")))
}
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: 0x06009E5E RID: 40542 RVA: 0x00246A38 File Offset: 0x00244C38
[Token(Token = "0x6009E5E")]
[Address(RVA = "0x217B160", Offset = "0x2179B60", VA = "0x18217B160")]
private void SubBytes(ulong[] s)
{
int num = 0;
if (this.S3 > num)
{
num += 4;
int length = Dstu7564Digest.S0.Length;
int length2 = Dstu7564Digest.S1.Length;
int length3 = Dstu7564Digest.S2.Length;
int length4 = Dstu7564Digest.S3.Length;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x06009E5F RID: 40543 RVA: 0x00246A94 File Offset: 0x00244C94
[Token(Token = "0x6009E5F")]
[Address(RVA = "0x2179C90", Offset = "0x2178690", VA = "0x182179C90", Slot = "21")]
public virtual IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009E5F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(Dstu7564Digest::CopyIn, ldloc:Dstu7564Digest(var_0), ldloc:Dstu7564Digest(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: 0x06009E60 RID: 40544 RVA: 0x00246AA8 File Offset: 0x00244CA8
[Token(Token = "0x6009E60")]
[Address(RVA = "0x217A5F0", Offset = "0x2178FF0", VA = "0x18217A5F0", Slot = "22")]
public virtual void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009E61 RID: 40545 RVA: 0x00246AC0 File Offset: 0x00244CC0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E61")]
[Address(RVA = "0x217B4E0", Offset = "0x2179EE0", VA = "0x18217B4E0")]
static Dstu7564Digest()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6F5D2C37DFCDB1E72B86BC606C0E717C70E188A4).FieldHandle);
Dstu7564Digest.S0 = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79039C5C22F863E8EAE0E08E1318F343680E50A8).FieldHandle);
Dstu7564Digest.S1 = array2;
byte[] array3 = new byte[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.340B4B55E1DFD4BADC69CA57007FC1A4CDBA7943).FieldHandle);
Dstu7564Digest.S2 = array3;
byte[] array4 = new byte[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.5CFF612F2058DE2C287ECA5C6407ECC471F65576).FieldHandle);
Dstu7564Digest.S3 = array4;
}
// Token: 0x0400681D RID: 26653
[Token(Token = "0x400681D")]
private const int NB_512 = 8;
// Token: 0x0400681E RID: 26654
[Token(Token = "0x400681E")]
private const int NB_1024 = 16;
// Token: 0x0400681F RID: 26655
[Token(Token = "0x400681F")]
private const int NR_512 = 10;
// Token: 0x04006820 RID: 26656
[Token(Token = "0x4006820")]
private const int NR_1024 = 14;
// Token: 0x04006821 RID: 26657
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006821")]
private int hashSize;
// Token: 0x04006822 RID: 26658
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
[Token(Token = "0x4006822")]
private int blockSize;
// Token: 0x04006823 RID: 26659
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006823")]
private int columns;
// Token: 0x04006824 RID: 26660
[global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4006824")]
private int rounds;
// Token: 0x04006825 RID: 26661
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006825")]
private ulong[] state;
// Token: 0x04006826 RID: 26662
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006826")]
private ulong[] tempState1;
// Token: 0x04006827 RID: 26663
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006827")]
private ulong[] tempState2;
// Token: 0x04006828 RID: 26664
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006828")]
private ulong inputBlocks;
// Token: 0x04006829 RID: 26665
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006829")]
private int bufOff;
// Token: 0x0400682A RID: 26666
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x400682A")]
private byte[] buf;
// Token: 0x0400682B RID: 26667
[Token(Token = "0x400682B")]
private static readonly byte[] S0;
// Token: 0x0400682C RID: 26668
[Token(Token = "0x400682C")]
private static readonly byte[] S1;
// Token: 0x0400682D RID: 26669
[Token(Token = "0x400682D")]
private static readonly byte[] S2;
// Token: 0x0400682E RID: 26670
[Token(Token = "0x400682E")]
private static readonly byte[] S3;
}
}
@@ -0,0 +1,878 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001707 RID: 5895
[Token(Token = "0x2001707")]
[StructLayout(3)]
public abstract class GOST3411_2012Digest : IDigest, IMemoable
{
// Token: 0x06009E79 RID: 40569 RVA: 0x00247958 File Offset: 0x00245B58
[Token(Token = "0x6009E79")]
[Address(RVA = "0x217F4B0", Offset = "0x217DEB0", VA = "0x18217F4B0")]
protected GOST3411_2012Digest(byte[] IV)
{
byte[] array = new byte[64];
this.IV = array;
byte[] array2 = new byte[64];
this.N = array2;
byte[] array3 = new byte[64];
this.Sigma = array3;
byte[] array4 = new byte[64];
this.Ki = array4;
byte[] array5 = new byte[64];
this.m = array5;
byte[] array6 = new byte[64];
this.h = array6;
byte[] array7 = new byte[64];
this.tmp = array7;
byte[] array8 = new byte[64];
this.block = array8;
this.bOff = (int)((ulong)64L);
base..ctor();
byte[] iv = this.IV;
Array.Copy(IV, iv, 64);
byte[] array9 = this.h;
Array.Copy(IV, array9, 64);
}
// Token: 0x1700190B RID: 6411
// (get) Token: 0x06009E7A RID: 40570
[Token(Token = "0x1700190B")]
public abstract string AlgorithmName
{
[Token(Token = "0x6009E7A")]
[Address(Slot = "13")]
get;
}
// Token: 0x06009E7B RID: 40571
[Token(Token = "0x6009E7B")]
[Address(Slot = "14")]
public abstract IMemoable Copy();
// Token: 0x06009E7C RID: 40572 RVA: 0x00247A1C File Offset: 0x00245C1C
[Token(Token = "0x6009E7C")]
[Address(RVA = "0x217BCC0", Offset = "0x217A6C0", VA = "0x18217BCC0", Slot = "15")]
public virtual int DoFinal(byte[] output, int outOff)
{
int num = this.bOff;
int num2 = 0;
uint num3;
num3 -= (uint)num;
if (num != 0)
{
byte[] array = this.m;
num2++;
while (num2 != num)
{
}
}
byte[] array2 = this.m;
uint num4;
num4 -= num3;
int num5 = this.bOff;
if (num5 != 64)
{
byte[] array3 = this.m;
Array.Copy(this.block, num5, array3, num, (int)num3);
}
byte[] array4 = this.m;
byte[] n = this.N;
byte[] array5 = this.h;
this.g_N(array5, n, array4);
byte[] sigma = this.Sigma;
byte[] array6 = this.m;
byte b = (byte)((int)b + num2);
byte b2;
b2 += b;
byte[] array7 = this.h;
byte[] n2 = this.N;
byte[] zero = GOST3411_2012Digest.Zero;
this.g_N(array7, zero, n2);
byte[] sigma2 = this.Sigma;
byte[] array8 = this.h;
byte[] zero2 = GOST3411_2012Digest.Zero;
this.g_N(array8, zero2, sigma2);
byte[] array9 = this.h;
byte[] array10 = this.tmp;
int length = array9.Length;
byte[] array11;
if (length > 0)
{
num2++;
array11 = this.tmp;
}
int num6 = 0;
ulong num7;
Array.Copy(array11, num6, output, outOff, (int)num7);
byte[] n3 = this.N;
this.bOff = (int)((ulong)64L);
int num8 = 0;
Arrays.Fill(n3, (byte)num8);
byte[] sigma3 = this.Sigma;
int num9 = 0;
Arrays.Fill(sigma3, (byte)num9);
byte[] array12 = this.h;
int num10 = 0;
byte[] iv = this.IV;
int num11 = 0;
ulong num12;
Array.Copy(iv, num11, array12, num10, (int)num12);
byte[] array13 = this.block;
int num13 = 0;
Arrays.Fill(array13, (byte)num13);
throw new NullReferenceException();
}
// Token: 0x06009E7D RID: 40573 RVA: 0x00247BB4 File Offset: 0x00245DB4
[Token(Token = "0x6009E7D")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x06009E7E RID: 40574
[Token(Token = "0x6009E7E")]
[Address(Slot = "16")]
public abstract int GetDigestSize();
// Token: 0x06009E7F RID: 40575 RVA: 0x00247BC4 File Offset: 0x00245DC4
[Token(Token = "0x6009E7F")]
[Address(RVA = "0x217E840", Offset = "0x217D240", VA = "0x18217E840", Slot = "10")]
public void Reset()
{
byte[] n = this.N;
this.bOff = (int)((ulong)64L);
int num = 0;
Arrays.Fill(n, (byte)num);
byte[] sigma = this.Sigma;
int num2 = 0;
Arrays.Fill(sigma, (byte)num2);
byte[] array = this.h;
int num3 = 0;
byte[] iv = this.IV;
int num4 = 0;
ulong num5;
Array.Copy(iv, num4, array, num3, (int)num5);
byte[] array2 = this.block;
int num6 = 0;
Arrays.Fill(array2, (byte)num6);
}
// Token: 0x06009E80 RID: 40576 RVA: 0x00247C34 File Offset: 0x00245E34
[Token(Token = "0x6009E80")]
[Address(RVA = "0x217E8F0", Offset = "0x217D2F0", VA = "0x18217E8F0", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0);
this.bOff = num;
}
// Token: 0x06009E81 RID: 40577 RVA: 0x00247C58 File Offset: 0x00245E58
[Token(Token = "0x6009E81")]
[Address(RVA = "0x217EA80", Offset = "0x217D480", VA = "0x18217EA80", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.block;
int num = this.bOff;
int num2 = num - 1;
this.bOff = num2;
int num3 = num - 1;
if (this.bOff == 0)
{
byte[] array2 = this.block;
byte[] n = this.N;
byte[] array3 = this.h;
this.g_N(array3, n, array2);
byte[] n2 = this.N;
this.addMod512(n2, 512);
byte[] array4 = this.block;
byte[] sigma = this.Sigma;
this.addMod512(sigma, array4);
this.bOff = (int)((ulong)64L);
}
}
// Token: 0x06009E82 RID: 40578 RVA: 0x00247CF0 File Offset: 0x00245EF0
[Token(Token = "0x6009E82")]
[Address(RVA = "0x217B7A0", Offset = "0x217A1A0", VA = "0x18217B7A0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int len)
{
int num = 0;
int num2 = this.bOff;
if (num2 != 64 && len > 0)
{
int num3 = num2 - 1;
byte[] array = this.block;
this.bOff = num3;
int num4 = this.bOff;
if (num4 == 0)
{
byte[] array2 = this.block;
byte[] n = this.N;
byte[] array3 = this.h;
this.g_N(array3, n, array2);
byte[] n2 = this.N;
uint num5;
this.addMod512(n2, (int)num5);
byte[] sigma = this.Sigma;
uint num6;
byte b = this.block[(int)num6];
b = (byte)((int)b + num);
byte b2;
b2 += b;
this.bOff = (int)((ulong)64L);
}
while (num4 != 64)
{
}
}
byte[] array4 = this.tmp;
int num7 = 0;
ulong num8;
Array.Copy(input, inOff, array4, num7, (int)num8);
if (this.tmp.Length > 0)
{
byte[] array5 = this.block;
num++;
}
byte[] array6 = this.block;
byte[] n3 = this.N;
byte[] array7 = this.h;
this.g_N(array7, n3, array6);
byte[] n4 = this.N;
int length = n4.Length;
byte b3 = n4[7];
n4[7] = b3;
byte b4;
b3 += b4;
byte[] sigma2 = this.Sigma;
uint num9;
byte b5 = this.block[(int)num9];
b5 = (byte)((int)b5 + num);
byte b6;
b6 += b5;
while (len >= 64)
{
}
if (len > 0)
{
int num10 = this.bOff;
byte[] array8 = this.block;
int num11 = num10 - 1;
this.bOff = num11;
int num12 = num10 - 1;
if (this.bOff == num)
{
byte[] array9 = this.block;
byte[] n5 = this.N;
byte[] array10 = this.h;
this.g_N(array10, n5, array9);
byte[] n6 = this.N;
int length2 = n6.Length;
byte b7 = n6[7];
n6[7] = b7;
byte b8;
b7 += b8;
byte[] sigma3 = this.Sigma;
byte[] array11 = this.block;
byte b9 = (byte)((int)b9 + num);
byte b10;
b10 += b9;
this.bOff = (int)((ulong)64L);
}
}
}
// Token: 0x06009E83 RID: 40579 RVA: 0x00247F00 File Offset: 0x00246100
[Token(Token = "0x6009E83")]
[Address(RVA = "0x217C2B0", Offset = "0x217ACB0", VA = "0x18217C2B0")]
private void F(byte[] V)
{
/*
An exception occurred when decompiling this method (06009E83)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012Digest::F(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_0_06, newarr:uint64[]([mscorlib]System.UInt64, ldc.i4:int32(8)))
stloc:uint64[][](var_1_0C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_2_13, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_1_0C)))
stloc:uint64[](var_3_1B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(0)))
stloc:int32(var_4_22, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint8(var_5_2B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_6_34, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(1)))
stloc:uint8(var_7_3D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_8_46, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(2)))
stloc:uint8(var_9_4F, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_10_58, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(3)))
stloc:uint8(var_11_61, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_12_6A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(4)))
stloc:uint8(var_13_73, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_14_7C, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(5)))
stloc:uint8(var_15_85, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_16_8E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(6)))
stloc:uint8(var_17_97, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_18_A0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(7)))
stloc:uint8(var_19_A9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_20_B4, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_18_A0), ldloc:uint8[exp:int32](var_19_A9)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(0), ldloc:uint64(var_20_B4))
stloc:uint64[][](var_21_C4, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_22_CD, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_21_C4)))
stloc:int32(var_23_D5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_24_DF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(0)))
stloc:uint8(var_25_E8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_26_F2, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(1)))
stloc:uint8(var_27_FB, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_28_105, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(2)))
stloc:uint8(var_29_10E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_30_118, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(3)))
stloc:uint8(var_31_121, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_32_12B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(4)))
stloc:uint8(var_33_134, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_34_13E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(5)))
stloc:uint8(var_35_147, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_36_151, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(6)))
stloc:uint8(var_37_15A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_38_164, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(7)))
stloc:uint8(var_39_16D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_40_178, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_38_164), ldloc:uint8[exp:int32](var_39_16D)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(1), ldloc:uint64(var_40_178))
stloc:uint64[][](var_41_188, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_42_191, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_41_188)))
stloc:int32(var_43_199, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_44_1A3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(0)))
stloc:uint8(var_45_1AC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_46_1B6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(1)))
stloc:uint8(var_47_1BF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_48_1C9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(2)))
stloc:uint8(var_49_1D2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_50_1DC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(3)))
stloc:uint8(var_51_1E5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_52_1EF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(4)))
stloc:uint8(var_53_1F8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_54_202, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(5)))
stloc:uint8(var_55_20B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_56_215, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(6)))
stloc:uint8(var_57_21E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_58_228, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(7)))
stloc:uint8(var_59_231, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_60_23C, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_58_228), ldloc:uint8[exp:int32](var_59_231)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(2), ldloc:uint64(var_60_23C))
stloc:uint64[][](var_61_24C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_62_255, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_61_24C)))
stloc:int32(var_63_25D, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_64_267, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(0)))
stloc:uint8(var_65_270, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_66_27A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(1)))
stloc:uint8(var_67_283, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_68_28D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(2)))
stloc:uint8(var_69_296, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_70_2A0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(3)))
stloc:uint8(var_71_2A9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_72_2B3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(4)))
stloc:uint8(var_73_2BC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_74_2C6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(5)))
stloc:uint8(var_75_2CF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_76_2D9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(6)))
stloc:uint8(var_77_2E2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_78_2EC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(7)))
stloc:uint8(var_79_2F5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_80_300, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_78_2EC), ldloc:uint8[exp:int32](var_79_2F5)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(3), ldloc:uint64(var_80_300))
stloc:uint64[][](var_81_310, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_82_319, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_81_310)))
stloc:int32(var_83_321, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_84_32B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(0)))
stloc:uint8(var_85_334, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_86_33E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(1)))
stloc:uint8(var_87_347, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_88_351, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(2)))
stloc:uint8(var_89_35A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_90_364, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(3)))
stloc:uint8(var_91_36D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_92_377, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(4)))
stloc:uint8(var_93_380, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_94_38A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(5)))
stloc:uint8(var_95_393, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_96_39D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(6)))
stloc:uint8(var_97_3A6, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_98_3B0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(7)))
stloc:uint8(var_99_3B9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_100_3C4, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_98_3B0), ldloc:uint8[exp:int32](var_99_3B9)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(4), ldloc:uint64(var_100_3C4))
stloc:uint64[][](var_101_3D4, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_102_3DD, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_101_3D4)))
stloc:int32(var_103_3E5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_104_3EF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(0)))
stloc:uint8(var_105_3F8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_106_402, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(1)))
stloc:uint8(var_107_40B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_108_415, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(2)))
stloc:uint8(var_109_41E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_110_428, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(3)))
stloc:uint8(var_111_431, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_112_43B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(4)))
stloc:uint8(var_113_444, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_114_44E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(5)))
stloc:uint8(var_115_457, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_116_461, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(6)))
stloc:uint8(var_117_46A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_118_474, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(7)))
stloc:uint8(var_119_47D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_120_488, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_118_474), ldloc:uint8[exp:int32](var_119_47D)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(5), ldloc:uint64(var_120_488))
stloc:uint64[][](var_121_498, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_122_4A1, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_121_498)))
stloc:int32(var_123_4A9, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_124_4B3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(0)))
stloc:uint8(var_125_4BC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_126_4C6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(1)))
stloc:uint8(var_127_4CF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_128_4D9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(2)))
stloc:uint8(var_129_4E2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_130_4EC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(3)))
stloc:uint8(var_131_4F5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_132_4FF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(4)))
stloc:uint8(var_133_508, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_134_512, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(5)))
stloc:uint8(var_135_51B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_136_525, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(6)))
stloc:uint8(var_137_52E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_138_538, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(7)))
stloc:uint8(var_139_541, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_140_54C, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_138_538), ldloc:uint8[exp:int32](var_139_541)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(6), ldloc:uint64(var_140_54C))
stloc:uint64[][](var_141_55C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_142_565, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_141_55C)))
stloc:int32(var_143_56D, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_144_577, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(0)))
stloc:uint8(var_145_580, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_146_58A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(1)))
stloc:uint8(var_147_593, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_148_59D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(2)))
stloc:uint8(var_149_5A6, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_150_5B0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(3)))
stloc:uint8(var_151_5B9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_152_5C3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(4)))
stloc:uint8(var_153_5CC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_154_5D6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(5)))
stloc:uint8(var_155_5DF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_156_5E9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(6)))
stloc:uint8(var_157_5F2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_158_5FC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(7)))
stloc:uint8(var_159_605, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_160_610, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_158_5FC), ldloc:uint8[exp:int32](var_159_605)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(7), ldloc:uint64(var_160_610))
stloc:uint64(var_161_622, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(0)))
stloc:uint64(var_160_626, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_626))
stloc:uint64(var_160_633, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_633))
stloc:uint64(var_160_640, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_640))
stloc:uint64(var_160_64D, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_64D))
stloc:uint64(var_160_65A, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_65A))
stloc:uint64(var_160_667, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_667))
stloc:uint64(var_160_674, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_674))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_161_622))
stloc:uint64(var_162_68F, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(1)))
stloc:uint64(var_160_693, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_693))
stloc:uint64(var_160_6A0, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6A0))
stloc:uint64(var_160_6AD, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6AD))
stloc:uint64(var_160_6BA, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6BA))
stloc:uint64(var_160_6C7, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6C7))
stloc:uint64(var_160_6D4, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6D4))
stloc:uint64(var_160_6E1, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6E1))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_162_68F))
stloc:uint64(var_163_6FC, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(2)))
stloc:uint64(var_160_700, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_700))
stloc:uint64(var_160_70D, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_70D))
stloc:uint64(var_160_71A, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_71A))
stloc:uint64(var_160_727, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_727))
stloc:uint64(var_160_734, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_734))
stloc:uint64(var_160_741, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_741))
stloc:uint64(var_160_74E, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_74E))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_163_6FC))
stloc:uint64(var_164_769, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(3)))
stloc:uint64(var_160_76D, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_76D))
stloc:uint64(var_160_77A, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_77A))
stloc:uint64(var_160_787, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_787))
stloc:uint64(var_160_794, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_794))
stloc:uint64(var_160_7A1, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7A1))
stloc:uint64(var_160_7AE, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7AE))
stloc:uint64(var_160_7BB, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7BB))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_164_769))
stloc:uint64(var_165_7D6, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(4)))
stloc:uint64(var_160_7DA, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7DA))
stloc:uint64(var_160_7E7, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7E7))
stloc:uint64(var_160_7F4, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7F4))
stloc:uint64(var_160_801, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_801))
stloc:uint64(var_160_80E, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_80E))
stloc:uint64(var_160_81B, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_81B))
stloc:uint64(var_160_828, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_828))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_165_7D6))
stloc:uint64(var_166_843, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(5)))
stloc:uint64(var_160_847, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_847))
stloc:uint64(var_160_854, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_854))
stloc:uint64(var_160_861, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_861))
stloc:uint64(var_160_86E, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_86E))
stloc:uint64(var_160_87B, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_87B))
stloc:uint64(var_160_888, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_888))
stloc:uint64(var_160_895, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
}
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: 0x06009E84 RID: 40580 RVA: 0x002487DC File Offset: 0x002469DC
[Token(Token = "0x6009E84")]
[Address(RVA = "0x217F910", Offset = "0x217E310", VA = "0x18217F910")]
private void xor512(byte[] A, byte[] B)
{
int num = 0;
num++;
}
// Token: 0x06009E85 RID: 40581 RVA: 0x002487F8 File Offset: 0x002469F8
[Token(Token = "0x6009E85")]
[Address(RVA = "0x217C000", Offset = "0x217AA00", VA = "0x18217C000")]
private void E(byte[] K, byte[] m)
{
byte[] ki = this.Ki;
int num = 0;
int num2 = 0;
int num3 = 0;
ulong num4;
Array.Copy(K, num3, ki, num2, (int)num4);
num++;
this.F(K);
byte[] ki2 = this.Ki;
byte[] array = GOST3411_2012Digest.C[num];
this.xor512(ki2, array);
byte[] ki3 = this.Ki;
this.F(ki3);
byte[] ki4 = this.Ki;
this.xor512(K, ki4);
this.F(K);
num++;
byte[] ki5 = this.Ki;
byte[] array2 = GOST3411_2012Digest.C[11];
num++;
byte[] ki6 = this.Ki;
this.F(ki6);
byte[] ki7 = this.Ki;
num++;
}
// Token: 0x06009E86 RID: 40582 RVA: 0x002488B0 File Offset: 0x00246AB0
[Token(Token = "0x6009E86")]
[Address(RVA = "0x217F700", Offset = "0x217E100", VA = "0x18217F700")]
private void g_N(byte[] h, byte[] N, byte[] m)
{
byte[] array = this.tmp;
int num = 0;
int num2 = 0;
int num3 = 0;
ulong num4;
Array.Copy(h, num3, array, num2, (int)num4);
num++;
this.F(h);
this.E(h, m);
byte[] array2 = this.tmp;
num++;
num++;
}
// Token: 0x06009E87 RID: 40583 RVA: 0x00248900 File Offset: 0x00246B00
[Token(Token = "0x6009E87")]
[Address(RVA = "0x217F650", Offset = "0x217E050", VA = "0x18217F650")]
private void addMod512(byte[] A, int num)
{
byte b = A[7];
byte b2 = A[7];
b2 = (byte)((int)b2 + num);
A[7] = b2;
byte b3;
b2 += b3;
}
// Token: 0x06009E88 RID: 40584 RVA: 0x00248934 File Offset: 0x00246B34
[Token(Token = "0x6009E88")]
[Address(RVA = "0x217F5D0", Offset = "0x217DFD0", VA = "0x18217F5D0")]
private void addMod512(byte[] A, byte[] B)
{
int num = 0;
byte b = (byte)((int)b + num);
byte b2;
b2 += b;
}
// Token: 0x06009E89 RID: 40585 RVA: 0x00248954 File Offset: 0x00246B54
[Token(Token = "0x6009E89")]
[Address(RVA = "0x217F890", Offset = "0x217E290", VA = "0x18217F890")]
private void reverse(byte[] src, byte[] dst)
{
int length = src.Length;
int num = 0;
if (length > 0)
{
num++;
}
}
// Token: 0x06009E8A RID: 40586 RVA: 0x00248978 File Offset: 0x00246B78
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E8A")]
[Address(RVA = "0x217EB20", Offset = "0x217D520", VA = "0x18217EB20")]
static GOST3411_2012Digest()
{
byte[][] array = new byte[12][];
byte[] array2 = new byte[64];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.498B9317C14CF9004FE6CB88782D926B3E379350).FieldHandle);
if (array2 != 0)
{
}
array[0] = array2;
byte[] array3 = new byte[64];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.499A21DC530CE4D5D71E97C5D8DB1B3C60F0FC2E).FieldHandle);
if (array3 != 0)
{
}
array[1] = array3;
byte[] array4 = new byte[64];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.0BE6B8194AB353640CA66F0A661EA93A3132393A).FieldHandle);
if (array4 != 0)
{
}
array[2] = array4;
byte[] array5 = new byte[64];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.7E68A6B197A3AF443FDA77CD8B492D4C72B3CF03).FieldHandle);
if (array5 != 0)
{
}
array[3] = array5;
byte[] array6 = new byte[64];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.21305ABEF36592B9C636A4DDFFB419BBEB14AC71).FieldHandle);
if (array6 != 0)
{
}
array[4] = array6;
byte[] array7 = new byte[64];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.3BA78FFB102A191597BAC4A2418C57CDF377FEE6).FieldHandle);
if (array7 != 0)
{
}
array[5] = array7;
byte[] array8 = new byte[64];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.87BAD4D818823E27FF0CBB935FF88DD21DAD3CC4).FieldHandle);
if (array8 != 0)
{
}
array[6] = array8;
byte[] array9 = new byte[64];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.103752E99F3718E46F1AA9EED70682BF3A9B8A65).FieldHandle);
if (array9 != 0)
{
}
array[7] = array9;
byte[] array10 = new byte[64];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.A32D5F33452B98E86BE15ED849ED6DF543B5F243).FieldHandle);
if (array10 != 0)
{
}
array[8] = array10;
byte[] array11 = new byte[64];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.30A6392FC8DA4E1BBE29B5EEA977D84BE673CAF7).FieldHandle);
if (array11 != 0)
{
}
array[9] = array11;
byte[] array12 = new byte[64];
RuntimeHelpers.InitializeArray(array12, fieldof(<PrivateImplementationDetails>.4A080107805D8F7103F56DD3B0D8FD5D55735937).FieldHandle);
if (array12 != 0)
{
}
array[10] = array12;
byte[] array13 = new byte[64];
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.083EF765A34AC9DEC41761B4DCEA48EC009115E9).FieldHandle);
if (array13 != 0)
{
}
array[11] = array13;
GOST3411_2012Digest.C = array;
GOST3411_2012Digest.Zero = new byte[64];
ulong[][] array14 = new ulong[8][];
ulong[] array15 = new ulong[256];
RuntimeHelpers.InitializeArray(array15, fieldof(<PrivateImplementationDetails>.547AF924C0A210AD3D72D199002D3CDBC2DBD0CA).FieldHandle);
if (array15 != 0)
{
}
array14[0] = array15;
ulong[] array16 = new ulong[256];
RuntimeHelpers.InitializeArray(array16, fieldof(<PrivateImplementationDetails>.929747B3E91297D56A461EE1B9E054EA31C70EC1).FieldHandle);
if (array16 != 0)
{
}
array14[1] = array16;
ulong[] array17 = new ulong[256];
RuntimeHelpers.InitializeArray(array17, fieldof(<PrivateImplementationDetails>.D73609A97D6906CFFB02ADDA320A4809483C458D).FieldHandle);
if (array17 != 0)
{
}
array14[2] = array17;
ulong[] array18 = new ulong[256];
RuntimeHelpers.InitializeArray(array18, fieldof(<PrivateImplementationDetails>.7C57CFE9FF25243824AF38485BBF41F9E57ECF21).FieldHandle);
if (array18 != 0)
{
}
array14[3] = array18;
ulong[] array19 = new ulong[256];
RuntimeHelpers.InitializeArray(array19, fieldof(<PrivateImplementationDetails>.A19414BB17AF83ECF276AD49117E7F2EE344D567).FieldHandle);
if (array19 != 0)
{
}
array14[4] = array19;
ulong[] array20 = new ulong[256];
RuntimeHelpers.InitializeArray(array20, fieldof(<PrivateImplementationDetails>.7B18F6A671FF25FBD5F195673DAF4902FB2DA4C5).FieldHandle);
if (array20 != 0)
{
}
array14[5] = array20;
ulong[] array21 = new ulong[256];
RuntimeHelpers.InitializeArray(array21, fieldof(<PrivateImplementationDetails>.A43F35160EEC5F8DD047667DD94358EDCD29BA27).FieldHandle);
if (array21 != 0)
{
}
array14[6] = array21;
ulong[] array22 = new ulong[256];
RuntimeHelpers.InitializeArray(array22, fieldof(<PrivateImplementationDetails>.4E16474F9D4C9E164E5F3C5FF50D0FB922D244DD).FieldHandle);
if (array22 != 0)
{
}
array14[7] = array22;
GOST3411_2012Digest.T = array14;
}
// Token: 0x04006843 RID: 26691
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006843")]
private readonly byte[] IV;
// Token: 0x04006844 RID: 26692
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006844")]
private readonly byte[] N;
// Token: 0x04006845 RID: 26693
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006845")]
private readonly byte[] Sigma;
// Token: 0x04006846 RID: 26694
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006846")]
private readonly byte[] Ki;
// Token: 0x04006847 RID: 26695
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006847")]
private readonly byte[] m;
// Token: 0x04006848 RID: 26696
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006848")]
private readonly byte[] h;
// Token: 0x04006849 RID: 26697
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006849")]
private readonly byte[] tmp;
// Token: 0x0400684A RID: 26698
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x400684A")]
private readonly byte[] block;
// Token: 0x0400684B RID: 26699
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x400684B")]
private int bOff;
// Token: 0x0400684C RID: 26700
[Token(Token = "0x400684C")]
private static readonly byte[][] C;
// Token: 0x0400684D RID: 26701
[Token(Token = "0x400684D")]
private static readonly byte[] Zero;
// Token: 0x0400684E RID: 26702
[Token(Token = "0x400684E")]
private static readonly ulong[][] T;
}
}
@@ -0,0 +1,102 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001708 RID: 5896
[Token(Token = "0x2001708")]
[StructLayout(3)]
public class GOST3411_2012_256Digest : GOST3411_2012Digest
{
// Token: 0x1700190C RID: 6412
// (get) Token: 0x06009E8B RID: 40587 RVA: 0x00248C88 File Offset: 0x00246E88
[Token(Token = "0x1700190C")]
public override string AlgorithmName
{
[Token(Token = "0x6009E8B")]
[Address(RVA = "0x217FC90", Offset = "0x217E690", VA = "0x18217FC90", Slot = "13")]
get
{
return "GOST3411-2012-256";
}
}
// Token: 0x06009E8C RID: 40588 RVA: 0x00248C9C File Offset: 0x00246E9C
[Token(Token = "0x6009E8C")]
[Address(RVA = "0x217FB50", Offset = "0x217E550", VA = "0x18217FB50")]
public GOST3411_2012_256Digest()
{
}
// Token: 0x06009E8D RID: 40589 RVA: 0x00248CAC File Offset: 0x00246EAC
[Token(Token = "0x6009E8D")]
[Address(RVA = "0x217FBE0", Offset = "0x217E5E0", VA = "0x18217FBE0")]
public GOST3411_2012_256Digest(GOST3411_2012_256Digest other)
{
base.Reset(other);
}
// Token: 0x06009E8E RID: 40590 RVA: 0x00248CC0 File Offset: 0x00246EC0
[Token(Token = "0x6009E8E")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "16")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x06009E8F RID: 40591 RVA: 0x00248CD0 File Offset: 0x00246ED0
[Token(Token = "0x6009E8F")]
[Address(RVA = "0x217FA50", Offset = "0x217E450", VA = "0x18217FA50", Slot = "15")]
public override int DoFinal(byte[] output, int outOff)
{
byte[] array = new byte[64];
int num = 0;
int num2 = base.DoFinal(array, num);
ulong num3;
Array.Copy(array, 32, output, outOff, (int)num3);
return 32;
}
// Token: 0x06009E90 RID: 40592 RVA: 0x00248D00 File Offset: 0x00246F00
[Token(Token = "0x6009E90")]
[Address(RVA = "0x217F970", Offset = "0x217E370", VA = "0x18217F970", Slot = "14")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009E90)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012_256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(GOST3411_2012Digest::Reset, ldloc:GOST3411_2012_256Digest[exp:GOST3411_2012Digest](var_0), ldloc:GOST3411_2012_256Digest[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: 0x06009E91 RID: 40593 RVA: 0x00248D14 File Offset: 0x00246F14
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E91")]
[Address(RVA = "0x217FAF0", Offset = "0x217E4F0", VA = "0x18217FAF0")]
static GOST3411_2012_256Digest()
{
RuntimeHelpers.InitializeArray(new byte[64], fieldof(<PrivateImplementationDetails>.320B018758ECE3752FFEDBAEB1A6DB67C80B9359).FieldHandle);
}
// Token: 0x0400684F RID: 26703
[Token(Token = "0x400684F")]
private static readonly byte[] IV;
}
}
@@ -0,0 +1,88 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001709 RID: 5897
[Token(Token = "0x2001709")]
[StructLayout(3)]
public class GOST3411_2012_512Digest : GOST3411_2012Digest
{
// Token: 0x1700190D RID: 6413
// (get) Token: 0x06009E92 RID: 40594 RVA: 0x00248D34 File Offset: 0x00246F34
[Token(Token = "0x1700190D")]
public override string AlgorithmName
{
[Token(Token = "0x6009E92")]
[Address(RVA = "0x217FF30", Offset = "0x217E930", VA = "0x18217FF30", Slot = "13")]
get
{
return "GOST3411-2012-512";
}
}
// Token: 0x06009E93 RID: 40595 RVA: 0x00248D48 File Offset: 0x00246F48
[Token(Token = "0x6009E93")]
[Address(RVA = "0x217FDF0", Offset = "0x217E7F0", VA = "0x18217FDF0")]
public GOST3411_2012_512Digest()
{
}
// Token: 0x06009E94 RID: 40596 RVA: 0x00248D58 File Offset: 0x00246F58
[Token(Token = "0x6009E94")]
[Address(RVA = "0x217FE80", Offset = "0x217E880", VA = "0x18217FE80")]
public GOST3411_2012_512Digest(GOST3411_2012_512Digest other)
{
base.Reset(other);
}
// Token: 0x06009E95 RID: 40597 RVA: 0x00248D6C File Offset: 0x00246F6C
[Token(Token = "0x6009E95")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "16")]
public override int GetDigestSize()
{
return 64;
}
// Token: 0x06009E96 RID: 40598 RVA: 0x00248D7C File Offset: 0x00246F7C
[Token(Token = "0x6009E96")]
[Address(RVA = "0x217FCC0", Offset = "0x217E6C0", VA = "0x18217FCC0", Slot = "14")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009E96)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012_512Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(GOST3411_2012Digest::Reset, ldloc:GOST3411_2012_512Digest[exp:GOST3411_2012Digest](var_0), ldloc:GOST3411_2012_512Digest[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: 0x06009E97 RID: 40599 RVA: 0x00248D90 File Offset: 0x00246F90
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E97")]
[Address(RVA = "0x217FDA0", Offset = "0x217E7A0", VA = "0x18217FDA0")]
static GOST3411_2012_512Digest()
{
byte[] array = new byte[64];
}
// Token: 0x04006850 RID: 26704
[Token(Token = "0x4006850")]
private static readonly byte[] IV;
}
}
@@ -0,0 +1,234 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170A RID: 5898
[Token(Token = "0x200170A")]
[StructLayout(3)]
public abstract class GeneralDigest : IDigest, IMemoable
{
// Token: 0x06009E98 RID: 40600 RVA: 0x00248DA8 File Offset: 0x00246FA8
[Token(Token = "0x6009E98")]
[Address(RVA = "0x21803A0", Offset = "0x217EDA0", VA = "0x1821803A0")]
internal GeneralDigest()
{
byte[] array = new byte[4];
this.xBuf = array;
}
// Token: 0x06009E99 RID: 40601 RVA: 0x00248DCC File Offset: 0x00246FCC
[Token(Token = "0x6009E99")]
[Address(RVA = "0x21803F0", Offset = "0x217EDF0", VA = "0x1821803F0")]
internal GeneralDigest(GeneralDigest t)
{
byte[] array = new byte[t.xBuf.Length];
this.xBuf = array;
byte[] array2 = t.xBuf;
int length = array2.Length;
int num = 0;
int num2 = 0;
Array.Copy(array2, num2, array, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount;
this.byteCount = num4;
}
// Token: 0x06009E9A RID: 40602 RVA: 0x00248E3C File Offset: 0x0024703C
[Token(Token = "0x6009E9A")]
[Address(RVA = "0x2180150", Offset = "0x217EB50", VA = "0x182180150")]
protected void CopyIn(GeneralDigest t)
{
byte[] array = t.xBuf;
int length = array.Length;
int num = 0;
byte[] array2 = this.xBuf;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount;
this.byteCount = num4;
}
// Token: 0x06009E9B RID: 40603 RVA: 0x00248E94 File Offset: 0x00247094
[Token(Token = "0x6009E9B")]
[Address(RVA = "0x2180320", Offset = "0x217ED20", VA = "0x182180320", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
int length = this.xBuf.Length;
if (this.xBufOff == length)
{
this.Reset();
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x06009E9C RID: 40604 RVA: 0x00248EE4 File Offset: 0x002470E4
[Token(Token = "0x6009E9C")]
[Address(RVA = "0x217FF60", Offset = "0x217E960", VA = "0x18217FF60", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = Math.Max(0, length);
int num2 = this.xBufOff;
int num3 = 0;
if (num2 != 0 && num > 0)
{
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
num3++;
num3 += inOff;
int num5 = this.xBufOff;
if (num5 == 4)
{
this.Reset();
this.xBufOff = (int)((ulong)0L);
throw new NullReferenceException();
}
}
num -= num3;
num += num3;
if (num3 < num)
{
this.Reset();
num3 += 4;
}
if (num3 < num)
{
int num6 = this.xBufOff;
byte[] array2 = this.xBuf;
int num7 = num6 + 1;
this.xBufOff = num7;
num3++;
num3 += inOff;
}
}
// Token: 0x06009E9D RID: 40605 RVA: 0x00248F8C File Offset: 0x0024718C
[Token(Token = "0x6009E9D")]
[Address(RVA = "0x21801B0", Offset = "0x217EBB0", VA = "0x1821801B0")]
public void Finish()
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int num2 = this.xBufOff;
int num3 = 0;
if (num2 == array2.Length)
{
this.Reset();
this.xBufOff = num3;
}
if (num2 != 0)
{
byte[] array3 = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array4 = this.xBuf;
if (this.xBufOff == array4.Length)
{
this.Reset();
this.xBufOff = num3;
}
while (num3 != 0)
{
}
}
this.ProcessBlock();
}
// Token: 0x06009E9E RID: 40606 RVA: 0x0024902C File Offset: 0x0024722C
[Token(Token = "0x6009E9E")]
[Address(RVA = "0x21802F0", Offset = "0x217ECF0", VA = "0x1821802F0", Slot = "13")]
public virtual void Reset()
{
int num = 0;
this.byteCount = (long)num;
this.xBufOff = num;
byte[] array = this.xBuf;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
}
// Token: 0x06009E9F RID: 40607 RVA: 0x00249068 File Offset: 0x00247268
[Token(Token = "0x6009E9F")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x06009EA0 RID: 40608
[Token(Token = "0x6009EA0")]
[Address(Slot = "14")]
internal abstract void ProcessWord(byte[] input, int inOff);
// Token: 0x06009EA1 RID: 40609
[Token(Token = "0x6009EA1")]
[Address(Slot = "15")]
internal abstract void ProcessLength(long bitLength);
// Token: 0x06009EA2 RID: 40610
[Token(Token = "0x6009EA2")]
[Address(Slot = "16")]
internal abstract void ProcessBlock();
// Token: 0x1700190E RID: 6414
// (get) Token: 0x06009EA3 RID: 40611
[Token(Token = "0x1700190E")]
public abstract string AlgorithmName
{
[Token(Token = "0x6009EA3")]
[Address(Slot = "17")]
get;
}
// Token: 0x06009EA4 RID: 40612
[Token(Token = "0x6009EA4")]
[Address(Slot = "18")]
public abstract int GetDigestSize();
// Token: 0x06009EA5 RID: 40613
[Token(Token = "0x6009EA5")]
[Address(Slot = "19")]
public abstract int DoFinal(byte[] output, int outOff);
// Token: 0x06009EA6 RID: 40614
[Token(Token = "0x6009EA6")]
[Address(Slot = "20")]
public abstract IMemoable Copy();
// Token: 0x06009EA7 RID: 40615
[Token(Token = "0x6009EA7")]
[Address(Slot = "21")]
public abstract void Reset(IMemoable t);
// Token: 0x04006851 RID: 26705
[Token(Token = "0x4006851")]
private const int BYTE_LENGTH = 64;
// Token: 0x04006852 RID: 26706
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006852")]
private byte[] xBuf;
// Token: 0x04006853 RID: 26707
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006853")]
private int xBufOff;
// Token: 0x04006854 RID: 26708
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006854")]
private long byteCount;
}
}
@@ -0,0 +1,790 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001706 RID: 5894
[Token(Token = "0x2001706")]
[StructLayout(3)]
public class Gost3411Digest : IDigest, IMemoable
{
// Token: 0x06009E62 RID: 40546 RVA: 0x00246B40 File Offset: 0x00244D40
[Token(Token = "0x6009E62")]
[Address(RVA = "0x2180CB0", Offset = "0x217F6B0", VA = "0x182180CB0")]
private static byte[][] MakeC()
{
byte[][] array = new byte[4][];
int num = 0;
byte[] array2 = new byte[32];
if (array2 != 0)
{
}
num++;
array[0] = array2;
return array;
}
// Token: 0x06009E63 RID: 40547 RVA: 0x00246B78 File Offset: 0x00244D78
[Token(Token = "0x6009E63")]
[Address(RVA = "0x21814F0", Offset = "0x217FEF0", VA = "0x1821814F0")]
public Gost3411Digest()
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
byte[] sbox = Gost28147Engine.GetSBox("D-A");
IBlockCipher blockCipher = this.cipher;
this.sBox = sbox;
int num;
ParametersWithSBox parametersWithSBox = new ParametersWithSBox(num, sbox);
num = 0;
this.Reset();
}
// Token: 0x06009E64 RID: 40548 RVA: 0x00246CB8 File Offset: 0x00244EB8
[Token(Token = "0x6009E64")]
[Address(RVA = "0x21818F0", Offset = "0x21802F0", VA = "0x1821818F0")]
public Gost3411Digest(byte[] sBoxParam)
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
byte[] array15 = Arrays.Clone(sBoxParam);
IBlockCipher blockCipher = this.cipher;
this.sBox = array15;
int num;
ParametersWithSBox parametersWithSBox = new ParametersWithSBox(num, array15);
num = 0;
this.Reset();
}
// Token: 0x06009E65 RID: 40549 RVA: 0x00246DF4 File Offset: 0x00244FF4
[Token(Token = "0x6009E65")]
[Address(RVA = "0x2181730", Offset = "0x2180130", VA = "0x182181730")]
public Gost3411Digest(Gost3411Digest t)
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
this.Reset(t);
}
// Token: 0x1700190A RID: 6410
// (get) Token: 0x06009E66 RID: 40550 RVA: 0x00246F04 File Offset: 0x00245104
[Token(Token = "0x1700190A")]
public string AlgorithmName
{
[Token(Token = "0x6009E66")]
[Address(RVA = "0x21820A0", Offset = "0x2180AA0", VA = "0x1821820A0", Slot = "4")]
get
{
return "Gost3411";
}
}
// Token: 0x06009E67 RID: 40551 RVA: 0x00246F18 File Offset: 0x00245118
[Token(Token = "0x6009E67")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "5")]
public int GetDigestSize()
{
return 32;
}
// Token: 0x06009E68 RID: 40552 RVA: 0x00246F28 File Offset: 0x00245128
[Token(Token = "0x6009E68")]
[Address(RVA = "0x2181410", Offset = "0x217FE10", VA = "0x182181410", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int length = array2.Length;
if (this.xBufOff == length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num2 = 0;
this.processBlock(array3, num2);
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x06009E69 RID: 40553 RVA: 0x00246F90 File Offset: 0x00245190
[Token(Token = "0x6009E69")]
[Address(RVA = "0x2180580", Offset = "0x217EF80", VA = "0x182180580", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.xBufOff;
if (num2 != 0 && length > 0)
{
byte[] array = this.xBuf;
int num3 = num2 + 1;
this.xBufOff = num3;
byte[] array2 = this.xBuf;
int num4 = this.xBufOff;
if (num4 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num5 = 0;
this.processBlock(array3, num5);
this.xBufOff = num;
}
while (num4 != 0)
{
}
}
byte[] array4 = this.xBuf;
if (length > array4.Length)
{
int length2 = array4.Length;
int num6 = 0;
Array.Copy(input, inOff, array4, num6, length2);
byte[] array5 = this.xBuf;
int length3 = this.Sum.Length;
if (num != length3)
{
byte b;
num += (int)b;
byte b2;
num += (int)b2;
num++;
}
byte[] array6 = this.xBuf;
int num7 = 0;
this.processBlock(array6, num7);
int length4 = this.xBuf.Length;
}
if (length > 0)
{
int num8 = this.xBufOff;
byte[] array7 = this.xBuf;
int num9 = num8 + 1;
this.xBufOff = num9;
int length5 = this.xBuf.Length;
if (this.xBufOff == length5)
{
int length6 = this.Sum.Length;
if (num != length6)
{
byte b3;
num += (int)b3;
byte b4;
num += (int)b4;
num++;
}
byte[] array8 = this.xBuf;
int num10 = 0;
this.processBlock(array8, num10);
this.xBufOff = num;
}
}
}
// Token: 0x06009E6A RID: 40554 RVA: 0x002470FC File Offset: 0x002452FC
[Token(Token = "0x6009E6A")]
[Address(RVA = "0x2180D70", Offset = "0x217F770", VA = "0x182180D70")]
private byte[] P(byte[] input)
{
int num = 0;
byte[] k = this.K;
byte[] k2 = this.K;
byte[] k3 = this.K;
num += 2;
byte[] k4 = this.K;
num++;
return this.K;
}
// Token: 0x06009E6B RID: 40555 RVA: 0x00247140 File Offset: 0x00245340
[Token(Token = "0x6009E6B")]
[Address(RVA = "0x2180490", Offset = "0x217EE90", VA = "0x182180490")]
private byte[] A(byte[] input)
{
int num = 0;
int length = input.Length;
byte[] array = this.a;
byte b = input[num];
num++;
int num2 = 0;
ulong num3;
Array.Copy(input, 8, input, num2, (int)num3);
byte[] array2 = this.a;
int num4 = 0;
ulong num5;
Array.Copy(array2, num4, input, 24, (int)num5);
return input;
}
// Token: 0x06009E6C RID: 40556 RVA: 0x00247198 File Offset: 0x00245398
[Token(Token = "0x6009E6C")]
[Address(RVA = "0x2180BD0", Offset = "0x217F5D0", VA = "0x182180BD0")]
private void E(byte[] key, byte[] s, int sOff, byte[] input, int inOff)
{
IBlockCipher blockCipher = this.cipher;
KeyParameter keyParameter = new KeyParameter(key);
IBlockCipher blockCipher2 = this.cipher;
throw new NullReferenceException();
}
// Token: 0x06009E6D RID: 40557 RVA: 0x002471C0 File Offset: 0x002453C0
[Token(Token = "0x6009E6D")]
[Address(RVA = "0x2181D80", Offset = "0x2180780", VA = "0x182181D80")]
private void fw(byte[] input)
{
short[] array = this.wS;
int num = 0;
int num2 = input.Length;
num2 -= input;
if (num < num2)
{
num++;
num += 2;
byte b;
array[0] = (short)b;
}
short[] array2 = this.wS;
short[] array3 = this.w_S;
int length = array2.Length;
short num3 = array2[3];
int num4 = 0;
array3[3] = num3;
short[] array4 = this.w_S;
ulong num5;
Array.Copy(this.wS, 1, array4, num4, (int)num5);
short[] array5 = this.w_S;
int num6 = input.Length;
num6--;
if (num < num6)
{
short num7 = array5[num];
num++;
num += 2;
}
}
// Token: 0x06009E6E RID: 40558 RVA: 0x00247274 File Offset: 0x00245474
[Token(Token = "0x6009E6E")]
[Address(RVA = "0x21820D0", Offset = "0x2180AD0", VA = "0x1821820D0")]
private void processBlock(byte[] input, int inOff)
{
byte[] m = this.M;
int num = 0;
int num2 = 0;
ulong num3;
Array.Copy(input, inOff, m, num2, (int)num3);
byte[] h = this.H;
byte[] u = this.U;
byte[] m2 = this.M;
byte[] v = this.V;
byte[] u2 = this.U;
byte[] v2 = this.V;
byte[] w = this.W;
num++;
byte[] w2 = this.W;
byte[] array = this.P(w2);
byte[] h2 = this.H;
int num4 = 0;
byte[] s = this.S;
this.E(array, s, num4, h2, num);
byte[] u3 = this.U;
byte[] array2 = this.A(u3);
uint num5;
byte[] array3 = this.C[(int)num5];
byte[] u4 = this.U;
num++;
byte[] v3 = this.V;
byte[] array4 = this.A(v3);
byte[] array5 = this.A(array4);
this.V = array5;
byte[] u5 = this.U;
byte[] v4 = this.V;
byte[] w3 = this.W;
num++;
byte[] w4 = this.W;
byte[] array6 = this.P(w4);
byte[] h3 = this.H;
byte[] s2 = this.S;
this.E(array6, s2, num, h3, num);
num5 += (uint)1;
byte[] s3 = this.S;
this.fw(s3);
byte[] s4 = this.S;
byte[] m3 = this.M;
num++;
byte[] s5 = this.S;
this.fw(s5);
byte[] h4 = this.H;
byte[] s6 = this.S;
num++;
byte[] s7 = this.S;
this.fw(s7);
while (num != 32)
{
}
byte[] h5 = this.H;
int length = h5.Length;
int num6 = 0;
byte[] s8 = this.S;
int num7 = 0;
Array.Copy(s8, num7, h5, num6, length);
}
// Token: 0x06009E6F RID: 40559 RVA: 0x00247444 File Offset: 0x00245644
[Token(Token = "0x6009E6F")]
[Address(RVA = "0x2181CB0", Offset = "0x21806B0", VA = "0x182181CB0")]
private void finish()
{
ulong num = this.byteCount;
byte[] l = this.L;
Pack.UInt64_To_LE(num, l);
int num2 = this.xBufOff;
if (num2 != 0)
{
int num3 = 0;
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array2 = this.xBuf;
int num5 = this.xBufOff;
if (num5 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num6 = 0;
this.processBlock(array3, num6);
this.xBufOff = num3;
}
while (num5 != 0)
{
}
}
byte[] l2 = this.L;
int num7 = 0;
this.processBlock(l2, num7);
byte[] sum = this.Sum;
int num8 = 0;
this.processBlock(sum, num8);
}
// Token: 0x06009E70 RID: 40560 RVA: 0x00247500 File Offset: 0x00245700
[Token(Token = "0x6009E70")]
[Address(RVA = "0x2180AB0", Offset = "0x217F4B0", VA = "0x182180AB0", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
ulong num = this.byteCount;
byte[] l = this.L;
Pack.UInt64_To_LE(num, l);
int num2 = this.xBufOff;
if (num2 != 0)
{
int num3 = 0;
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array2 = this.xBuf;
int num5 = this.xBufOff;
if (num5 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num6 = 0;
this.processBlock(array3, num6);
this.xBufOff = num3;
}
while (num5 != 0)
{
}
}
byte[] l2 = this.L;
int num7 = 0;
this.processBlock(l2, num7);
byte[] sum = this.Sum;
int num8 = 0;
this.processBlock(sum, num8);
byte[] h = this.H;
this.Reset();
return 32;
}
// Token: 0x06009E71 RID: 40561 RVA: 0x002475CC File Offset: 0x002457CC
[Token(Token = "0x6009E71")]
[Address(RVA = "0x2180EF0", Offset = "0x217F8F0", VA = "0x182180EF0", Slot = "10")]
public void Reset()
{
byte[] h = this.H;
int num = 0;
this.byteCount = (ulong)num;
this.xBufOff = num;
int length = h.Length;
int num2 = 0;
Array.Clear(h, num2, length);
byte[] l = this.L;
int length2 = l.Length;
int num3 = 0;
Array.Clear(l, num3, length2);
byte[] m = this.M;
int length3 = m.Length;
int num4 = 0;
Array.Clear(m, num4, length3);
byte[] array = this.C[1];
int length4 = array.Length;
int num5 = 0;
Array.Clear(array, num5, length4);
byte[] array2 = this.C[3];
int length5 = array2.Length;
int num6 = 0;
Array.Clear(array2, num6, length5);
byte[] sum = this.Sum;
int length6 = sum.Length;
int num7 = 0;
Array.Clear(sum, num7, length6);
byte[] array3 = this.xBuf;
int length7 = array3.Length;
int num8 = 0;
Array.Clear(array3, num8, length7);
byte[][] c = this.C;
byte[] c2 = Gost3411Digest.C2;
byte[] array4 = c[2];
}
// Token: 0x06009E72 RID: 40562 RVA: 0x002476EC File Offset: 0x002458EC
[Token(Token = "0x6009E72")]
[Address(RVA = "0x2182590", Offset = "0x2180F90", VA = "0x182182590")]
private void sumByteArray(byte[] input)
{
int num = 0;
byte[] sum = this.Sum;
if (num != sum.Length)
{
num++;
byte b;
num += (int)b;
byte b2;
num += (int)b2;
byte[] sum2 = this.Sum;
}
}
// Token: 0x06009E73 RID: 40563 RVA: 0x00247728 File Offset: 0x00245928
[Token(Token = "0x6009E73")]
[Address(RVA = "0x2181B30", Offset = "0x2180530", VA = "0x182181B30")]
private static void cpyBytesToShort(byte[] S, short[] wS)
{
int num = 0;
int num2 = S.Length;
num2 -= wS;
if (num < num2)
{
num++;
num += 2;
byte b;
wS[0] = (short)b;
}
}
// Token: 0x06009E74 RID: 40564 RVA: 0x0024775C File Offset: 0x0024595C
[Token(Token = "0x6009E74")]
[Address(RVA = "0x2181BE0", Offset = "0x21805E0", VA = "0x182181BE0")]
private static void cpyShortToBytes(short[] wS, byte[] S)
{
int num = 0;
int num2 = S.Length;
num2 -= S;
if (num < num2)
{
short num3 = wS[num];
num++;
num += 2;
}
}
// Token: 0x06009E75 RID: 40565 RVA: 0x00247790 File Offset: 0x00245990
[Token(Token = "0x6009E75")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "6")]
public int GetByteLength()
{
return 32;
}
// Token: 0x06009E76 RID: 40566 RVA: 0x002477A0 File Offset: 0x002459A0
[Token(Token = "0x6009E76")]
[Address(RVA = "0x21808C0", Offset = "0x217F2C0", VA = "0x1821808C0", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009E76)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Gost3411Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_1_07, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::H, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_1_07))
stloc:uint8[](var_2_16, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::L, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_2_16))
stloc:uint8[](var_3_25, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::M, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_3_25))
stloc:uint8[](var_4_34, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::Sum, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_4_34))
stloc:uint8[][](var_6_46, call:uint8[][](Gost3411Digest::MakeC))
stfld:uint8[][](Gost3411Digest::C, ldloc:Gost3411Digest(var_0), ldloc:uint8[][](var_6_46))
stloc:uint8[](var_7_57, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::xBuf, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_7_57))
stloc:Gost28147Engine(var_8_66, newobj:Gost28147Engine(Gost28147Engine::.ctor))
stfld:IBlockCipher(Gost3411Digest::cipher, ldloc:Gost3411Digest(var_0), ldloc:Gost28147Engine[exp:IBlockCipher](var_8_66))
stloc:uint8[](var_9_77, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::K, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_9_77))
stloc:uint8[](var_10_87, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(8)))
stfld:uint8[](Gost3411Digest::a, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_10_87))
stloc:int16[](var_11_98, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(16)))
stfld:int16[](Gost3411Digest::wS, ldloc:Gost3411Digest(var_0), ldloc:int16[](var_11_98))
stloc:int16[](var_12_A9, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(16)))
stfld:int16[](Gost3411Digest::w_S, ldloc:Gost3411Digest(var_0), ldloc:int16[](var_12_A9))
stloc:uint8[](var_13_BA, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::S, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_13_BA))
stloc:uint8[](var_14_CB, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::U, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_14_CB))
stloc:uint8[](var_15_DC, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::V, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_15_DC))
stloc:uint8[](var_16_ED, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::W, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_16_ED))
call:void(Gost3411Digest::Reset, ldloc:Gost3411Digest(var_0), ldloc:Gost3411Digest[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: 0x06009E77 RID: 40567 RVA: 0x002478AC File Offset: 0x00245AAC
[Token(Token = "0x6009E77")]
[Address(RVA = "0x21810B0", Offset = "0x217FAB0", VA = "0x1821810B0", Slot = "12")]
public void Reset(IMemoable other)
{
while (other == 0)
{
}
IBlockCipher blockCipher = this.cipher;
this.sBox = other;
this.Reset();
byte[] l = this.L;
byte[] l2 = this.L;
byte[] l3 = this.L;
byte[] l4 = this.L;
byte[][] c = this.C;
byte b = l4[1];
byte[][] c2 = this.C;
byte[][] c3 = this.C;
this.xBufOff = c3;
this.byteCount = c3;
}
// Token: 0x06009E78 RID: 40568 RVA: 0x00247930 File Offset: 0x00245B30
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009E78")]
[Address(RVA = "0x2181490", Offset = "0x217FE90", VA = "0x182181490")]
static Gost3411Digest()
{
byte[] array = new byte[32];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.CC5B8B6FA17DA57B26C3ACA4DA8B2A477C609D63).FieldHandle);
Gost3411Digest.C2 = array;
}
// Token: 0x0400682F RID: 26671
[Token(Token = "0x400682F")]
private const int DIGEST_LENGTH = 32;
// Token: 0x04006830 RID: 26672
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006830")]
private byte[] H;
// Token: 0x04006831 RID: 26673
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006831")]
private byte[] L;
// Token: 0x04006832 RID: 26674
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006832")]
private byte[] M;
// Token: 0x04006833 RID: 26675
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006833")]
private byte[] Sum;
// Token: 0x04006834 RID: 26676
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006834")]
private byte[][] C;
// Token: 0x04006835 RID: 26677
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006835")]
private byte[] xBuf;
// Token: 0x04006836 RID: 26678
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006836")]
private int xBufOff;
// Token: 0x04006837 RID: 26679
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006837")]
private ulong byteCount;
// Token: 0x04006838 RID: 26680
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006838")]
private readonly IBlockCipher cipher;
// Token: 0x04006839 RID: 26681
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006839")]
private byte[] sBox;
// Token: 0x0400683A RID: 26682
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x400683A")]
private byte[] K;
// Token: 0x0400683B RID: 26683
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x400683B")]
private byte[] a;
// Token: 0x0400683C RID: 26684
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x400683C")]
internal short[] wS;
// Token: 0x0400683D RID: 26685
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x400683D")]
internal short[] w_S;
// Token: 0x0400683E RID: 26686
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x400683E")]
internal byte[] S;
// Token: 0x0400683F RID: 26687
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x400683F")]
internal byte[] U;
// Token: 0x04006840 RID: 26688
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x4006840")]
internal byte[] V;
// Token: 0x04006841 RID: 26689
[global::Cpp2IlInjected.FieldOffset(Offset = "0x98")]
[Token(Token = "0x4006841")]
internal byte[] W;
// Token: 0x04006842 RID: 26690
[Token(Token = "0x4006842")]
private static readonly byte[] C2;
}
}
@@ -0,0 +1,579 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170B RID: 5899
[Token(Token = "0x200170B")]
[StructLayout(3)]
public class KeccakDigest : IDigest, IMemoable
{
// Token: 0x06009EA8 RID: 40616 RVA: 0x00249078 File Offset: 0x00247278
[Token(Token = "0x6009EA8")]
[Address(RVA = "0x2184400", Offset = "0x2182E00", VA = "0x182184400")]
public KeccakDigest()
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.Init(288);
}
// Token: 0x06009EA9 RID: 40617 RVA: 0x002490B8 File Offset: 0x002472B8
[Token(Token = "0x6009EA9")]
[Address(RVA = "0x2184380", Offset = "0x2182D80", VA = "0x182184380")]
public KeccakDigest(int bitLength)
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.Init(bitLength);
}
// Token: 0x06009EAA RID: 40618 RVA: 0x002490F4 File Offset: 0x002472F4
[Token(Token = "0x6009EAA")]
[Address(RVA = "0x2184300", Offset = "0x2182D00", VA = "0x182184300")]
public KeccakDigest(KeccakDigest source)
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.CopyIn(source);
}
// Token: 0x06009EAB RID: 40619 RVA: 0x00249130 File Offset: 0x00247330
[Token(Token = "0x6009EAB")]
[Address(RVA = "0x2182930", Offset = "0x2181330", VA = "0x182182930")]
private void CopyIn(KeccakDigest source)
{
ulong[] array = source.state;
int length = array.Length;
int num = 0;
ulong[] array2 = this.state;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
byte[] array3 = source.dataQueue;
int length2 = array3.Length;
int num3 = 0;
byte[] array4 = this.dataQueue;
int num4 = 0;
Array.Copy(array3, num4, array4, num3, length2);
int num5 = source.rate;
this.rate = num5;
int num6 = source.bitsInQueue;
this.bitsInQueue = num6;
int num7 = source.fixedOutputLength;
this.fixedOutputLength = num7;
bool flag = source.squeezing;
this.squeezing = flag;
}
// Token: 0x1700190F RID: 6415
// (get) Token: 0x06009EAC RID: 40620 RVA: 0x002491D8 File Offset: 0x002473D8
[Token(Token = "0x1700190F")]
public virtual string AlgorithmName
{
[Token(Token = "0x6009EAC")]
[Address(RVA = "0x2184470", Offset = "0x2182E70", VA = "0x182184470", Slot = "13")]
get
{
int num = this.fixedOutputLength;
return "Keccak-" + num;
}
}
// Token: 0x06009EAD RID: 40621 RVA: 0x002491F8 File Offset: 0x002473F8
[Token(Token = "0x6009EAD")]
[Address(RVA = "0x2182C90", Offset = "0x2181690", VA = "0x182182C90", Slot = "14")]
public virtual int GetDigestSize()
{
return this.fixedOutputLength;
}
// Token: 0x06009EAE RID: 40622 RVA: 0x0024920C File Offset: 0x0024740C
[Token(Token = "0x6009EAE")]
[Address(RVA = "0x2184210", Offset = "0x2182C10", VA = "0x182184210", Slot = "15")]
public virtual void Update(byte input)
{
byte[] array = new byte[] { input };
int num = 0;
this.Absorb(array, num, 1);
}
// Token: 0x06009EAF RID: 40623 RVA: 0x0024923C File Offset: 0x0024743C
[Token(Token = "0x6009EAF")]
[Address(RVA = "0x2182920", Offset = "0x2181320", VA = "0x182182920", Slot = "16")]
public virtual void BlockUpdate(byte[] input, int inOff, int len)
{
this.Absorb(input, inOff, len);
}
// Token: 0x06009EB0 RID: 40624 RVA: 0x00249254 File Offset: 0x00247454
[Token(Token = "0x6009EB0")]
[Address(RVA = "0x2182C30", Offset = "0x2181630", VA = "0x182182C30", Slot = "17")]
public virtual int DoFinal(byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (06009EB0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::DoFinal(System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, ldfld:int32(KeccakDigest::fixedOutputLength, ldloc:KeccakDigest(this)))
call:void(KeccakDigest::Squeeze, ldloc:KeccakDigest(this), ldloc:uint8[](output), ldloc:int32(outOff), ldloc:int32[exp:int64](var_0_06))
stloc:IMemoable(var_3_16, call:IMemoable(IMemoable::Copy, ldloc:KeccakDigest[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: 0x06009EB1 RID: 40625 RVA: 0x00249278 File Offset: 0x00247478
[Token(Token = "0x6009EB1")]
[Address(RVA = "0x2182A70", Offset = "0x2181470", VA = "0x182182A70", Slot = "18")]
protected virtual int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
/*
An exception occurred when decompiling this method (06009EB1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::DoFinal(System.Byte[],System.Int32,System.Byte,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_42:
stloc:InvalidOperationException(var_7_4C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x06009EB2 RID: 40626 RVA: 0x002492D4 File Offset: 0x002474D4
[Token(Token = "0x6009EB2")]
[Address(RVA = "0x2184090", Offset = "0x2182A90", VA = "0x182184090", Slot = "19")]
public virtual void Reset()
{
int num = this.fixedOutputLength;
this.Init(num);
}
// Token: 0x06009EB3 RID: 40627 RVA: 0x002492F0 File Offset: 0x002474F0
[Token(Token = "0x6009EB3")]
[Address(RVA = "0x2182C80", Offset = "0x2181680", VA = "0x182182C80", Slot = "20")]
public virtual int GetByteLength()
{
return this.rate;
}
// Token: 0x06009EB4 RID: 40628 RVA: 0x00249304 File Offset: 0x00247504
[Token(Token = "0x6009EB4")]
[Address(RVA = "0x2182D90", Offset = "0x2181790", VA = "0x182182D90")]
private void Init(int bitLength)
{
/*
An exception occurred when decompiling this method (06009EB4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Init(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_9C:
stloc:ArgumentException(var_7_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("must be one of 128, 224, 256, 288, 384, or 512."), ldstr:string("bitLength")))
}
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: 0x06009EB5 RID: 40629 RVA: 0x002493C0 File Offset: 0x002475C0
[Token(Token = "0x6009EB5")]
[Address(RVA = "0x2182CA0", Offset = "0x21816A0", VA = "0x182182CA0")]
private void InitSponge(int rate)
{
/*
An exception occurred when decompiling this method (06009EB5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::InitSponge(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5F:
stloc:InvalidOperationException(var_6_69, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("invalid rate value")))
}
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: 0x06009EB6 RID: 40630 RVA: 0x00249438 File Offset: 0x00247638
[Token(Token = "0x6009EB6")]
[Address(RVA = "0x2182780", Offset = "0x2181180", VA = "0x182182780")]
protected void Absorb(byte[] data, int off, int len)
{
/*
An exception occurred when decompiling this method (06009EB6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Absorb(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_82:
stloc:InvalidOperationException(var_9_8C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x06009EB7 RID: 40631 RVA: 0x002494D4 File Offset: 0x002476D4
[Token(Token = "0x6009EB7")]
[Address(RVA = "0x2182630", Offset = "0x2181030", VA = "0x182182630")]
protected void AbsorbBits(int data, int bits)
{
/*
An exception occurred when decompiling this method (06009EB7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::AbsorbBits(System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_37:
stloc:InvalidOperationException(var_5_41, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x06009EB8 RID: 40632 RVA: 0x00249524 File Offset: 0x00247724
[Token(Token = "0x6009EB8")]
[Address(RVA = "0x2183E00", Offset = "0x2182800", VA = "0x182183E00")]
private void PadAndSwitchToSqueezingPhase()
{
byte[] array = this.dataQueue;
int num = this.bitsInQueue;
array += num;
int num2 = 0;
array[0] = (byte)num;
int num3 = this.bitsInQueue;
num3++;
this.bitsInQueue = num3;
if (num3 == this.rate)
{
byte[] array2 = this.dataQueue;
int num4 = 0;
this.KeccakAbsorb(array2, num4);
this.bitsInQueue = num2;
}
ulong[] array3;
int num6;
if (num3 > 0)
{
array3 = this.state;
ulong num5 = Pack.LE_To_UInt64(this.dataQueue, num2);
num2 += 8;
num2++;
array3[0] = num5;
num6 = 0;
}
if (num3 != 0)
{
ulong[] array4 = this.state;
ulong num7 = Pack.LE_To_UInt64(this.dataQueue, num2);
array3[0] = num7;
}
ulong[] array5 = this.state;
int num8 = this.rate;
this.KeccakPermutation();
int num9 = this.rate;
int num10 = 0;
byte[] array6 = this.dataQueue;
Pack.UInt64_To_LE(this.state, num10, num9, array6, num6);
int num11 = this.rate;
this.bitsInQueue = num11;
this.squeezing = true;
}
// Token: 0x06009EB9 RID: 40633 RVA: 0x00249630 File Offset: 0x00247830
[Token(Token = "0x6009EB9")]
[Address(RVA = "0x21840A0", Offset = "0x2182AA0", VA = "0x1821840A0")]
protected void Squeeze(byte[] output, int offset, long outputLength)
{
if (!this.squeezing)
{
this.PadAndSwitchToSqueezingPhase();
}
int num = 0;
int num4;
if (this.bitsInQueue == 0)
{
this.KeccakPermutation();
int num2 = this.rate;
int num3 = 0;
byte[] array = this.dataQueue;
Pack.UInt64_To_LE(this.state, num3, num2, array, num);
num4 = this.rate;
this.bitsInQueue = num4;
}
long num5 = Math.Min((long)num4, outputLength);
int num6 = this.rate;
byte[] array2 = this.dataQueue;
num += offset;
Array.Copy(array2, num6, output, num, (int)num5);
num = (int)((long)num + num5);
}
// Token: 0x06009EBA RID: 40634 RVA: 0x002496C8 File Offset: 0x002478C8
[Token(Token = "0x6009EBA")]
[Address(RVA = "0x2182F30", Offset = "0x2181930", VA = "0x182182F30")]
private void KeccakAbsorb(byte[] data, int off)
{
int num = this.rate;
int num2 = 0;
if (num > 0)
{
ulong[] array = this.state;
ulong num3 = Pack.LE_To_UInt64(data, off);
num2++;
}
this.KeccakPermutation();
}
// Token: 0x06009EBB RID: 40635 RVA: 0x00249704 File Offset: 0x00247904
[Token(Token = "0x6009EBB")]
[Address(RVA = "0x2182FE0", Offset = "0x21819E0", VA = "0x182182FE0")]
private void KeccakExtract()
{
int num = this.rate;
int num2 = 0;
byte[] array = this.dataQueue;
int num3 = 0;
Pack.UInt64_To_LE(this.state, num3, num, array, num2);
}
// Token: 0x06009EBC RID: 40636 RVA: 0x00249734 File Offset: 0x00247934
[Token(Token = "0x6009EBC")]
[Address(RVA = "0x2183010", Offset = "0x2181A10", VA = "0x182183010")]
private void KeccakPermutation()
{
ulong[] array = this.state;
int length = array.Length;
ulong num = array[0];
ulong num2 = array[1];
ulong num3 = array[2];
ulong num4 = array[3];
ulong num5 = array[4];
ulong num6 = array[5];
ulong num7 = array[6];
ulong num8 = array[7];
ulong num9 = array[8];
ulong num10 = array[9];
ulong num11 = array[10];
ulong num12 = array[11];
ulong num13 = array[12];
ulong num14 = array[13];
ulong num15 = array[14];
ulong num16 = array[15];
ulong num17 = array[16];
ulong num18 = array[17];
ulong num19 = array[18];
ulong num20 = array[19];
ulong num21 = array[20];
ulong num22 = array[21];
ulong num23 = array[22];
ulong num24 = array[23];
ulong num25 = array[24];
int num26 = 0;
num22 = num23;
num3 = num24;
num10 = num3;
num15 = num21;
num21 = num13;
num20 = num24;
num3 = num25;
num24 = num16;
num25 = num22;
num5 = num19;
num6 = num5;
num7 = num6;
num12 = num3;
num3 = num15;
num2 = num12;
num19 = num20;
num6 = num7;
num5 = num7;
num12 = num24;
num16 = num5;
ulong[] keccakRoundConstants = KeccakDigest.KeccakRoundConstants;
num26++;
array[0] = num;
array[1] = num7;
array[2] = num21;
array[3] = num5;
array[4] = num3;
array[5] = num6;
num7 = num6;
array[6] = num7;
array[7] = num12;
array[8] = num5;
array[9] = num7;
array[10] = num2;
array[11] = num12;
array[12] = num3;
array[13] = num3;
array[14] = num15;
array[15] = num16;
array[16] = num5;
array[17] = num19;
array[18] = num19;
num6 = num20;
array[19] = num6;
array[20] = num10;
array[21] = num5;
array[22] = num7;
array[23] = num24;
array[24] = num25;
}
// Token: 0x06009EBD RID: 40637 RVA: 0x00249A30 File Offset: 0x00247C30
[Token(Token = "0x6009EBD")]
[Address(RVA = "0x21829C0", Offset = "0x21813C0", VA = "0x1821829C0", Slot = "21")]
public virtual IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009EBD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:KeccakDigest(var_0_05, newobj:KeccakDigest(KeccakDigest::.ctor))
stloc:uint64[](var_1_0D, newarr:uint64[]([mscorlib]System.UInt64, ldc.i4:int32(25)))
stfld:uint64[](KeccakDigest::state, ldloc:KeccakDigest(var_0_05), ldloc:uint64[](var_1_0D))
stloc:uint8[](var_2_1F, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(192)))
stfld:uint8[](KeccakDigest::dataQueue, ldloc:KeccakDigest(var_0_05), ldloc:uint8[](var_2_1F))
call:void(KeccakDigest::CopyIn, ldloc:KeccakDigest(var_0_05), ldloc:KeccakDigest(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: 0x06009EBE RID: 40638 RVA: 0x00249A6C File Offset: 0x00247C6C
[Token(Token = "0x6009EBE")]
[Address(RVA = "0x2183FF0", Offset = "0x21829F0", VA = "0x182183FF0", Slot = "22")]
public virtual void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009EBF RID: 40639 RVA: 0x00249A84 File Offset: 0x00247C84
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009EBF")]
[Address(RVA = "0x21842A0", Offset = "0x2182CA0", VA = "0x1821842A0")]
static KeccakDigest()
{
ulong[] array = new ulong[24];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6BBA9E7ACC5D57E30438CC78FF7E308399E10FE1).FieldHandle);
KeccakDigest.KeccakRoundConstants = array;
}
// Token: 0x04006855 RID: 26709
[Token(Token = "0x4006855")]
private static readonly ulong[] KeccakRoundConstants;
// Token: 0x04006856 RID: 26710
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006856")]
private ulong[] state;
// Token: 0x04006857 RID: 26711
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006857")]
protected byte[] dataQueue;
// Token: 0x04006858 RID: 26712
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006858")]
protected int rate;
// Token: 0x04006859 RID: 26713
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
[Token(Token = "0x4006859")]
protected int bitsInQueue;
// Token: 0x0400685A RID: 26714
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400685A")]
protected int fixedOutputLength;
// Token: 0x0400685B RID: 26715
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400685B")]
protected bool squeezing;
}
}
@@ -0,0 +1,631 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170C RID: 5900
[Token(Token = "0x200170C")]
[StructLayout(3)]
public abstract class LongDigest : IDigest, IMemoable
{
// Token: 0x06009EC0 RID: 40640 RVA: 0x00249AAC File Offset: 0x00247CAC
[Token(Token = "0x6009EC0")]
[Address(RVA = "0x2185B60", Offset = "0x2184560", VA = "0x182185B60")]
internal LongDigest()
{
ulong[] array = new ulong[80];
this.W = array;
base..ctor();
byte[] array2 = new byte[8];
this.xBuf = array2;
string algorithmName = this.AlgorithmName;
}
// Token: 0x06009EC1 RID: 40641 RVA: 0x00249AF0 File Offset: 0x00247CF0
[Token(Token = "0x6009EC1")]
[Address(RVA = "0x2185A20", Offset = "0x2184420", VA = "0x182185A20")]
internal LongDigest(LongDigest t)
{
ulong[] array = new ulong[80];
this.W = array;
base..ctor();
byte[] array2 = new byte[t.xBuf.Length];
this.xBuf = array2;
byte[] array3 = t.xBuf;
int length = array3.Length;
int num = 0;
int num2 = 0;
Array.Copy(array3, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount1;
this.byteCount1 = num4;
long num5 = t.byteCount2;
this.byteCount2 = num5;
ulong h = t.H1;
this.H1 = h;
ulong h2 = t.H2;
this.H2 = h2;
ulong h3 = t.H3;
this.H3 = h3;
ulong h4 = t.H4;
this.H4 = h4;
ulong h5 = t.H5;
this.H5 = h5;
ulong h6 = t.H6;
this.H6 = h6;
ulong h7 = t.H7;
this.H7 = h7;
ulong h8 = t.H8;
this.H8 = h8;
ulong[] w = t.W;
int length2 = w.Length;
int num6 = 0;
ulong[] w2 = this.W;
int num7 = 0;
Array.Copy(w, num7, w2, num6, length2);
int num8 = t.wOff;
this.wOff = num8;
}
// Token: 0x06009EC2 RID: 40642 RVA: 0x00249C4C File Offset: 0x00247E4C
[Token(Token = "0x6009EC2")]
[Address(RVA = "0x21847D0", Offset = "0x21831D0", VA = "0x1821847D0")]
protected void CopyIn(LongDigest t)
{
byte[] array = t.xBuf;
int length = array.Length;
int num = 0;
byte[] array2 = this.xBuf;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount1;
this.byteCount1 = num4;
long num5 = t.byteCount2;
this.byteCount2 = num5;
ulong h = t.H1;
this.H1 = h;
ulong h2 = t.H2;
this.H2 = h2;
ulong h3 = t.H3;
this.H3 = h3;
ulong h4 = t.H4;
this.H4 = h4;
ulong h5 = t.H5;
this.H5 = h5;
ulong h6 = t.H6;
this.H6 = h6;
ulong h7 = t.H7;
this.H7 = h7;
ulong h8 = t.H8;
this.H8 = h8;
ulong[] w = t.W;
int length2 = w.Length;
int num6 = 0;
ulong[] w2 = this.W;
int num7 = 0;
Array.Copy(w, num7, w2, num6, length2);
int num8 = t.wOff;
this.wOff = num8;
}
// Token: 0x06009EC3 RID: 40643 RVA: 0x00249D74 File Offset: 0x00247F74
[Token(Token = "0x6009EC3")]
[Address(RVA = "0x2185950", Offset = "0x2184350", VA = "0x182185950", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int length = array2.Length;
if (this.xBufOff == length)
{
int num2 = 0;
this.ProcessWord(array2, num2);
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x06009EC4 RID: 40644 RVA: 0x00249DCC File Offset: 0x00247FCC
[Token(Token = "0x6009EC4")]
[Address(RVA = "0x2184500", Offset = "0x2182F00", VA = "0x182184500", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.xBufOff;
if (num2 != 0 && length > 0)
{
byte[] array = this.xBuf;
int num3 = num2 + 1;
this.xBufOff = num3;
byte[] array2 = this.xBuf;
int num4 = this.xBufOff;
if (num4 == array2.Length)
{
ulong[] w = this.W;
int num5 = this.wOff;
int num6 = 0;
ulong num7 = Pack.BE_To_UInt64(array2, num6);
w[0] = num7;
int num8 = this.wOff;
num8++;
this.wOff = num8;
if (num8 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num;
}
while (num4 != 0)
{
}
}
byte[] array3 = this.xBuf;
if (length > array3.Length)
{
ulong[] w2 = this.W;
int num9 = this.wOff;
ulong num10 = Pack.BE_To_UInt64(input, inOff);
w2[0] = num10;
int num11 = this.wOff;
num11++;
this.wOff = num11;
if (num11 == 16)
{
this.ProcessBlock();
}
int length2 = this.xBuf.Length;
}
if (length > 0)
{
int num12 = this.xBufOff;
byte[] array4 = this.xBuf;
int num13 = num12 + 1;
this.xBufOff = num13;
byte[] array5 = this.xBuf;
int length3 = array5.Length;
if (this.xBufOff == length3)
{
ulong[] w3 = this.W;
int num14 = this.wOff;
int num15 = 0;
ulong num16 = Pack.BE_To_UInt64(array5, num15);
w3[0] = num16;
int num17 = this.wOff;
num17++;
this.wOff = num17;
if (num17 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num;
}
}
}
// Token: 0x06009EC5 RID: 40645 RVA: 0x00249F78 File Offset: 0x00248178
[Token(Token = "0x6009EC5")]
[Address(RVA = "0x21848B0", Offset = "0x21832B0", VA = "0x1821848B0")]
public void Finish()
{
long num = this.byteCount1;
long num2 = this.byteCount2;
ulong num3;
if (num > (long)num3)
{
num2 += num;
this.byteCount2 = num2;
this.byteCount1 = num;
}
int num4 = this.xBufOff;
byte[] array = this.xBuf;
int num5 = num4 + 1;
this.xBufOff = num5;
byte[] array2 = this.xBuf;
int num6 = this.xBufOff;
int num7 = 0;
if (num6 == array2.Length)
{
int num8 = 0;
this.ProcessWord(array2, num8);
this.xBufOff = num7;
}
if (num7 != 0)
{
byte[] array3 = this.xBuf;
this.xBufOff = 1;
byte[] array4 = this.xBuf;
if (this.xBufOff == array4.Length)
{
ulong[] w = this.W;
int num9 = this.wOff;
int num10 = 0;
ulong num11 = Pack.BE_To_UInt64(array4, num10);
w[0] = num11;
int num12 = this.wOff;
num12++;
this.wOff = num12;
if (num12 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num7;
}
while (num7 != 0)
{
}
}
if (this.wOff > 14)
{
this.ProcessBlock();
}
this.W[14] = (ulong)num2;
ulong[] w2 = this.W;
this.ProcessBlock();
}
// Token: 0x06009EC6 RID: 40646 RVA: 0x0024A0B0 File Offset: 0x002482B0
[Token(Token = "0x6009EC6")]
[Address(RVA = "0x21857E0", Offset = "0x21841E0", VA = "0x1821857E0", Slot = "13")]
public virtual void Reset()
{
byte[] array = this.xBuf;
int num = 0;
this.byteCount1 = (long)num;
this.byteCount2 = (long)num;
this.xBufOff = num;
if (num < array.Length)
{
num++;
byte[] array2 = this.xBuf;
}
this.wOff = num;
ulong[] w = this.W;
int length = w.Length;
int num2 = 0;
Array.Clear(w, num2, length);
}
// Token: 0x06009EC7 RID: 40647 RVA: 0x0024A118 File Offset: 0x00248318
[Token(Token = "0x6009EC7")]
[Address(RVA = "0x2185750", Offset = "0x2184150", VA = "0x182185750")]
internal void ProcessWord(byte[] input, int inOff)
{
ulong[] w = this.W;
int num = this.wOff;
ulong num2 = Pack.BE_To_UInt64(input, inOff);
w[0] = num2;
int num3 = this.wOff;
num3++;
this.wOff = num3;
if (num3 == 16)
{
this.ProcessBlock();
}
}
// Token: 0x06009EC8 RID: 40648 RVA: 0x0024A168 File Offset: 0x00248368
[Token(Token = "0x6009EC8")]
[Address(RVA = "0x21844D0", Offset = "0x2182ED0", VA = "0x1821844D0")]
private void AdjustByteCounts()
{
long num = this.byteCount1;
ulong num2;
if (num > (long)num2)
{
this.byteCount1 = num;
}
}
// Token: 0x06009EC9 RID: 40649 RVA: 0x0024A188 File Offset: 0x00248388
[Token(Token = "0x6009EC9")]
[Address(RVA = "0x21856C0", Offset = "0x21840C0", VA = "0x1821856C0")]
internal void ProcessLength(long lowW, long hiW)
{
if (this.wOff > 14)
{
this.ProcessBlock();
}
this.W[14] = (ulong)hiW;
this.W[15] = (ulong)lowW;
}
// Token: 0x06009ECA RID: 40650 RVA: 0x0024A1C8 File Offset: 0x002483C8
[Token(Token = "0x6009ECA")]
[Address(RVA = "0x2184AB0", Offset = "0x21834B0", VA = "0x182184AB0")]
internal void ProcessBlock()
{
long num = this.byteCount1;
ulong num2;
if (num > (long)num2)
{
this.byteCount1 = num;
}
ulong[] w = this.W;
ulong[] w2 = this.W;
int length = w2.Length;
ulong num3 = w2[(int)num2];
uint num4;
num4 += (uint)1;
num3 += num3;
w[0] = num3;
while (num4 <= (uint)79)
{
}
ulong num5 = this.H4;
int num6 = 0;
ulong num7 = this.H3;
ulong num8 = this.H5;
ulong num9 = this.H1;
ulong num10 = this.H2;
ulong num11 = this.H6;
ulong num12 = this.H7;
ulong num13 = this.H8;
num8 = num3;
int length2 = LongDigest.K.Length;
int length3 = this.W.Length;
num3 = num8;
num8 = num11;
num3 += num8;
num13 += num3;
num3 = num9;
num13 = num10;
num13 += num3;
num3 = num5;
num13 = num5;
num3 += num5;
num8 = num13;
num12 += num3;
num3 = num13;
num13 += num12;
num13 += num3;
num3 = num7;
num13 = num7;
num3 += num7;
num11 += num3;
num10 += num11;
num3 = num13;
num5 = num13;
num7 = num13;
num11 += num7;
num11 += num3;
num6 += 3;
num3 = num10;
num13 = num10;
num7 = num10;
num3 += num7;
num8 += num3;
num9 += num8;
num3 = num11;
num8 = num13;
num8 += num3;
num3 = num9;
num9 = num10;
num7 = num9;
num3 += num7;
num5 += num3;
num3 = num8;
num8 = num11;
num8 += num3;
num6 += 5;
num3 = num13;
num8 = num13;
num3 += num13;
num13 = num8;
num7 += num3;
num3 = num8;
num8 += num7;
num8 += num3;
num3 = num13;
num8 = num13;
num3 += num8;
num10 += num3;
num11 += num10;
num3 = num8;
num10 += num8;
num10 += num3;
num6 += 7;
num3 = num11;
num6 += 8;
num8 = num10;
num3 += num8;
num8 = num10;
num9 += num3;
num8 += num9;
num3 = num10;
num8 = num10;
num9 += num8;
num6++;
num9 += num3;
int num14 = 0;
ulong[] w3 = this.W;
this.H5 = num8;
this.H6 = num8;
this.H7 = num8;
Array.Clear(w3, num14, 16);
}
// Token: 0x06009ECB RID: 40651 RVA: 0x0024A4F0 File Offset: 0x002486F0
[Token(Token = "0x6009ECB")]
[Address(RVA = "0x7062E0", Offset = "0x704CE0", VA = "0x1807062E0")]
private static ulong Ch(ulong x, ulong y, ulong z)
{
return x;
}
// Token: 0x06009ECC RID: 40652 RVA: 0x0024A500 File Offset: 0x00248700
[Token(Token = "0x6009ECC")]
[Address(RVA = "0x706520", Offset = "0x704F20", VA = "0x180706520")]
private static ulong Maj(ulong x, ulong y, ulong z)
{
return y;
}
// Token: 0x06009ECD RID: 40653 RVA: 0x0024A510 File Offset: 0x00248710
[Token(Token = "0x6009ECD")]
[Address(RVA = "0x21858D0", Offset = "0x21842D0", VA = "0x1821858D0")]
private static ulong Sum0(ulong x)
{
return x;
}
// Token: 0x06009ECE RID: 40654 RVA: 0x0024A520 File Offset: 0x00248720
[Token(Token = "0x6009ECE")]
[Address(RVA = "0x2185910", Offset = "0x2184310", VA = "0x182185910")]
private static ulong Sum1(ulong x)
{
return x;
}
// Token: 0x06009ECF RID: 40655 RVA: 0x0024A530 File Offset: 0x00248730
[Token(Token = "0x6009ECF")]
[Address(RVA = "0x2185870", Offset = "0x2184270", VA = "0x182185870")]
private static ulong Sigma0(ulong x)
{
return x;
}
// Token: 0x06009ED0 RID: 40656 RVA: 0x0024A540 File Offset: 0x00248740
[Token(Token = "0x6009ED0")]
[Address(RVA = "0x21858A0", Offset = "0x21842A0", VA = "0x1821858A0")]
private static ulong Sigma1(ulong x)
{
return x;
}
// Token: 0x06009ED1 RID: 40657 RVA: 0x0024A550 File Offset: 0x00248750
[Token(Token = "0x6009ED1")]
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "6")]
public int GetByteLength()
{
return this.MyByteLength;
}
// Token: 0x17001910 RID: 6416
// (get) Token: 0x06009ED2 RID: 40658
[Token(Token = "0x17001910")]
public abstract string AlgorithmName
{
[Token(Token = "0x6009ED2")]
[Address(Slot = "14")]
get;
}
// Token: 0x06009ED3 RID: 40659
[Token(Token = "0x6009ED3")]
[Address(Slot = "15")]
public abstract int GetDigestSize();
// Token: 0x06009ED4 RID: 40660
[Token(Token = "0x6009ED4")]
[Address(Slot = "16")]
public abstract int DoFinal(byte[] output, int outOff);
// Token: 0x06009ED5 RID: 40661
[Token(Token = "0x6009ED5")]
[Address(Slot = "17")]
public abstract IMemoable Copy();
// Token: 0x06009ED6 RID: 40662
[Token(Token = "0x6009ED6")]
[Address(Slot = "18")]
public abstract void Reset(IMemoable t);
// Token: 0x06009ED7 RID: 40663 RVA: 0x0024A564 File Offset: 0x00248764
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009ED7")]
[Address(RVA = "0x21859C0", Offset = "0x21843C0", VA = "0x1821859C0")]
static LongDigest()
{
ulong[] array = new ulong[80];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.90A0542282A011472F94E97CEAE59F8B3B1A3291).FieldHandle);
LongDigest.K = array;
}
// Token: 0x0400685C RID: 26716
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400685C")]
private int MyByteLength = (int)((ulong)128L);
// Token: 0x0400685D RID: 26717
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400685D")]
private byte[] xBuf;
// Token: 0x0400685E RID: 26718
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400685E")]
private int xBufOff;
// Token: 0x0400685F RID: 26719
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400685F")]
private long byteCount1;
// Token: 0x04006860 RID: 26720
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006860")]
private long byteCount2;
// Token: 0x04006861 RID: 26721
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006861")]
internal ulong H1;
// Token: 0x04006862 RID: 26722
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006862")]
internal ulong H2;
// Token: 0x04006863 RID: 26723
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006863")]
internal ulong H3;
// Token: 0x04006864 RID: 26724
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006864")]
internal ulong H4;
// Token: 0x04006865 RID: 26725
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006865")]
internal ulong H5;
// Token: 0x04006866 RID: 26726
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4006866")]
internal ulong H6;
// Token: 0x04006867 RID: 26727
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4006867")]
internal ulong H7;
// Token: 0x04006868 RID: 26728
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4006868")]
internal ulong H8;
// Token: 0x04006869 RID: 26729
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4006869")]
private ulong[] W;
// Token: 0x0400686A RID: 26730
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x400686A")]
private int wOff;
// Token: 0x0400686B RID: 26731
[Token(Token = "0x400686B")]
internal static readonly ulong[] K;
}
}
@@ -0,0 +1,378 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170D RID: 5901
[Token(Token = "0x200170D")]
[StructLayout(3)]
public class MD2Digest : IDigest, IMemoable
{
// Token: 0x06009ED8 RID: 40664 RVA: 0x0024A58C File Offset: 0x0024878C
[Token(Token = "0x6009ED8")]
[Address(RVA = "0x2186640", Offset = "0x2185040", VA = "0x182186640")]
public MD2Digest()
{
byte[] array = new byte[48];
this.X = array;
byte[] array2 = new byte[16];
this.M = array2;
byte[] array3 = new byte[16];
this.C = array3;
base..ctor();
this.Reset();
}
// Token: 0x06009ED9 RID: 40665 RVA: 0x0024A5D4 File Offset: 0x002487D4
[Token(Token = "0x6009ED9")]
[Address(RVA = "0x21866C0", Offset = "0x21850C0", VA = "0x1821866C0")]
public MD2Digest(MD2Digest t)
{
byte[] array = new byte[48];
this.X = array;
byte[] array2 = new byte[16];
this.M = array2;
byte[] array3 = new byte[16];
this.C = array3;
base..ctor();
this.CopyIn(t);
}
// Token: 0x06009EDA RID: 40666 RVA: 0x0024A61C File Offset: 0x0024881C
[Token(Token = "0x6009EDA")]
[Address(RVA = "0x2185DB0", Offset = "0x21847B0", VA = "0x182185DB0")]
private void CopyIn(MD2Digest t)
{
byte[] x = t.X;
int length = x.Length;
int num = 0;
byte[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
byte[] m = t.M;
int length2 = m.Length;
int num4 = 0;
byte[] m2 = this.M;
int num5 = 0;
Array.Copy(m, num5, m2, num4, length2);
int num6 = t.mOff;
this.mOff = num6;
byte[] c = t.C;
int length3 = c.Length;
int num7 = 0;
byte[] c2 = this.C;
int num8 = 0;
Array.Copy(c, num8, c2, num7, length3);
int coff = t.COff;
this.COff = coff;
}
// Token: 0x17001911 RID: 6417
// (get) Token: 0x06009EDB RID: 40667 RVA: 0x0024A6E0 File Offset: 0x002488E0
[Token(Token = "0x17001911")]
public string AlgorithmName
{
[Token(Token = "0x6009EDB")]
[Address(RVA = "0x2186750", Offset = "0x2185150", VA = "0x182186750", Slot = "4")]
get
{
return "MD2";
}
}
// Token: 0x06009EDC RID: 40668 RVA: 0x0024A6F4 File Offset: 0x002488F4
[Token(Token = "0x6009EDC")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "5")]
public int GetDigestSize()
{
return 16;
}
// Token: 0x06009EDD RID: 40669 RVA: 0x0024A704 File Offset: 0x00248904
[Token(Token = "0x6009EDD")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "6")]
public int GetByteLength()
{
return 16;
}
// Token: 0x06009EDE RID: 40670 RVA: 0x0024A714 File Offset: 0x00248914
[Token(Token = "0x6009EDE")]
[Address(RVA = "0x2185F30", Offset = "0x2184930", VA = "0x182185F30", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
byte[] m = this.M;
int length = m.Length;
int num = this.mOff;
byte[] m2;
if (num < m.Length)
{
num++;
m2 = this.M;
}
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
byte[] c = this.C;
this.ProcessBlock(c);
int num2 = this.xOff;
ulong num3;
Array.Copy(this.X, num2, output, outOff, (int)num3);
this.Reset();
throw new NullReferenceException();
}
// Token: 0x06009EDF RID: 40671 RVA: 0x0024A798 File Offset: 0x00248998
[Token(Token = "0x6009EDF")]
[Address(RVA = "0x21863B0", Offset = "0x2184DB0", VA = "0x1821863B0", Slot = "10")]
public void Reset()
{
do
{
int num = 0;
this.xOff = num;
byte[] x = this.X;
if (num != x.Length)
{
num++;
byte[] x2 = this.X;
}
byte[] m = this.M;
this.mOff = num;
if (num != m.Length)
{
num++;
if (this.M != 0)
{
continue;
}
}
byte[] c = this.C;
this.COff = num;
if (num == c.Length)
{
break;
}
num++;
}
while (this.C != 0);
}
// Token: 0x06009EE0 RID: 40672 RVA: 0x0024A81C File Offset: 0x00248A1C
[Token(Token = "0x6009EE0")]
[Address(RVA = "0x2186570", Offset = "0x2184F70", VA = "0x182186570", Slot = "7")]
public void Update(byte input)
{
byte[] m = this.M;
int num = this.mOff + 1;
this.mOff = num;
if (this.mOff == 16)
{
byte[] m2 = this.M;
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
this.mOff = (int)((ulong)0L);
}
}
// Token: 0x06009EE1 RID: 40673 RVA: 0x0024A878 File Offset: 0x00248A78
[Token(Token = "0x6009EE1")]
[Address(RVA = "0x2185BE0", Offset = "0x21845E0", VA = "0x182185BE0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.mOff;
int num3;
if (num2 != 0 && length > 0)
{
byte[] m = this.M;
num3 = num2 + 1;
this.mOff = num3;
num3 = num2;
int num4 = this.mOff;
if (num4 == 16)
{
byte[] m2 = this.M;
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
this.mOff = num;
}
while (num4 != 0)
{
}
}
if (length > 16)
{
num3++;
byte[] m4 = this.M;
int num5 = 0;
ulong num6;
Array.Copy(input, inOff, m4, num5, (int)num6);
byte[] m5 = this.M;
this.ProcessChecksum(m5);
byte[] m6 = this.M;
this.ProcessBlock(m6);
while (length != 16)
{
}
}
if (length > 0)
{
int num7 = this.mOff;
byte[] m7 = this.M;
num3 = inOff;
int num8 = num7 + 1;
this.mOff = num8;
if (this.mOff == 16)
{
byte[] m8 = this.M;
this.ProcessChecksum(m8);
byte[] m9 = this.M;
this.ProcessBlock(m9);
this.mOff = num;
}
}
}
// Token: 0x06009EE2 RID: 40674 RVA: 0x0024A98C File Offset: 0x00248B8C
[Token(Token = "0x6009EE2")]
[Address(RVA = "0x2186230", Offset = "0x2184C30", VA = "0x182186230")]
internal void ProcessChecksum(byte[] m)
{
byte b = this.C[1];
int num = 0;
byte[] s = MD2Digest.S;
byte[] c = this.C;
num++;
}
// Token: 0x06009EE3 RID: 40675 RVA: 0x0024A9C0 File Offset: 0x00248BC0
[Token(Token = "0x6009EE3")]
[Address(RVA = "0x2186020", Offset = "0x2184A20", VA = "0x182186020")]
internal void ProcessBlock(byte[] m)
{
int num = 0;
byte[] x = this.X;
int length = this.X.Length;
num++;
int num2 = 0;
int num3 = 0;
byte[] x2 = this.X;
num3 += x2;
byte[] s = MD2Digest.S;
num3++;
byte b = (byte)((int)b + num2);
if (num3 < 48)
{
}
num2++;
}
// Token: 0x06009EE4 RID: 40676 RVA: 0x0024AA24 File Offset: 0x00248C24
[Token(Token = "0x6009EE4")]
[Address(RVA = "0x2185E70", Offset = "0x2184870", VA = "0x182185E70", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009EE4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD2Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:MD2Digest(var_0_05, newobj:MD2Digest(MD2Digest::.ctor))
stloc:uint8[](var_1_0D, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(48)))
stfld:uint8[](MD2Digest::X, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_1_0D))
stloc:uint8[](var_2_1C, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(16)))
stfld:uint8[](MD2Digest::M, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_2_1C))
stloc:uint8[](var_3_2B, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(16)))
stfld:uint8[](MD2Digest::C, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_3_2B))
call:void(MD2Digest::CopyIn, ldloc:MD2Digest(var_0_05), ldloc:MD2Digest(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: 0x06009EE5 RID: 40677 RVA: 0x0024AA6C File Offset: 0x00248C6C
[Token(Token = "0x6009EE5")]
[Address(RVA = "0x21864D0", Offset = "0x2184ED0", VA = "0x1821864D0", Slot = "12")]
public void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009EE6 RID: 40678 RVA: 0x0024AA84 File Offset: 0x00248C84
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009EE6")]
[Address(RVA = "0x21865E0", Offset = "0x2184FE0", VA = "0x1821865E0")]
static MD2Digest()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D2C5BAE967587C6F3D9F2C4551911E0575A1101F).FieldHandle);
MD2Digest.S = array;
}
// Token: 0x0400686C RID: 26732
[Token(Token = "0x400686C")]
private const int DigestLength = 16;
// Token: 0x0400686D RID: 26733
[Token(Token = "0x400686D")]
private const int BYTE_LENGTH = 16;
// Token: 0x0400686E RID: 26734
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400686E")]
private byte[] X;
// Token: 0x0400686F RID: 26735
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400686F")]
private int xOff;
// Token: 0x04006870 RID: 26736
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006870")]
private byte[] M;
// Token: 0x04006871 RID: 26737
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006871")]
private int mOff;
// Token: 0x04006872 RID: 26738
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006872")]
private byte[] C;
// Token: 0x04006873 RID: 26739
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006873")]
private int COff;
// Token: 0x04006874 RID: 26740
[Token(Token = "0x4006874")]
private static readonly byte[] S;
}
}
@@ -0,0 +1,476 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170E RID: 5902
[Token(Token = "0x200170E")]
[StructLayout(3)]
public class MD4Digest : GeneralDigest
{
// Token: 0x06009EE7 RID: 40679 RVA: 0x0024AAB0 File Offset: 0x00248CB0
[Token(Token = "0x6009EE7")]
[Address(RVA = "0x21879D0", Offset = "0x21863D0", VA = "0x1821879D0")]
public MD4Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
byte[] array2 = new byte[4];
this.xBuf = array2;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009EE8 RID: 40680 RVA: 0x0024AAE8 File Offset: 0x00248CE8
[Token(Token = "0x6009EE8")]
[Address(RVA = "0x21878F0", Offset = "0x21862F0", VA = "0x1821878F0")]
public MD4Digest(MD4Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor();
byte[] array2 = new byte[t.xBuf.Length];
this.xBuf = array2;
byte[] xBuf = t.xBuf;
int length = xBuf.Length;
int num = 0;
int num2 = 0;
Array.Copy(xBuf, num2, array2, num, length);
int xBufOff = t.xBufOff;
this.xBufOff = xBufOff;
long byteCount = t.byteCount;
this.byteCount = byteCount;
this.CopyIn(t);
}
// Token: 0x06009EE9 RID: 40681 RVA: 0x0024AB70 File Offset: 0x00248D70
[Token(Token = "0x6009EE9")]
[Address(RVA = "0x2186780", Offset = "0x2185180", VA = "0x182186780")]
private void CopyIn(MD4Digest t)
{
byte[] xBuf = t.xBuf;
int length = xBuf.Length;
int num = 0;
byte[] xBuf2 = this.xBuf;
int num2 = 0;
Array.Copy(xBuf, num2, xBuf2, num, length);
int xBufOff = t.xBufOff;
this.xBufOff = xBufOff;
long byteCount = t.byteCount;
this.byteCount = byteCount;
int h = t.H1;
this.H1 = h;
int h2 = t.H2;
this.H2 = h2;
int h3 = t.H3;
this.H3 = h3;
int h4 = t.H4;
this.H4 = h4;
int[] x = t.X;
int length2 = x.Length;
int num3 = 0;
int[] x2 = this.X;
int num4 = 0;
Array.Copy(x, num4, x2, num3, length2);
int num5 = t.xOff;
this.xOff = num5;
}
// Token: 0x17001912 RID: 6418
// (get) Token: 0x06009EEA RID: 40682 RVA: 0x0024AC48 File Offset: 0x00248E48
[Token(Token = "0x17001912")]
public override string AlgorithmName
{
[Token(Token = "0x6009EEA")]
[Address(RVA = "0x2187A60", Offset = "0x2186460", VA = "0x182187A60", Slot = "17")]
get
{
return "MD4";
}
}
// Token: 0x06009EEB RID: 40683 RVA: 0x0024AC5C File Offset: 0x00248E5C
[Token(Token = "0x6009EEB")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x06009EEC RID: 40684 RVA: 0x0024AC6C File Offset: 0x00248E6C
[Token(Token = "0x6009EEC")]
[Address(RVA = "0x21875E0", Offset = "0x2185FE0", VA = "0x1821875E0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x06009EED RID: 40685 RVA: 0x0024ACB8 File Offset: 0x00248EB8
[Token(Token = "0x6009EED")]
[Address(RVA = "0x2187560", Offset = "0x2185F60", VA = "0x182187560", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x06009EEE RID: 40686 RVA: 0x0024ACF0 File Offset: 0x00248EF0
[Token(Token = "0x6009EEE")]
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x06009EEF RID: 40687 RVA: 0x0024AD08 File Offset: 0x00248F08
[Token(Token = "0x6009EEF")]
[Address(RVA = "0x2186940", Offset = "0x2185340", VA = "0x182186940", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H1;
this.UnpackWord(h, output, outOff);
int num = this.H2;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H3;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H4;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x06009EF0 RID: 40688 RVA: 0x0024AD80 File Offset: 0x00248F80
[Token(Token = "0x6009EF0")]
[Address(RVA = "0x2187700", Offset = "0x2186100", VA = "0x182187700", Slot = "13")]
public override void Reset()
{
int num = 0;
this.byteCount = (long)num;
this.xBufOff = num;
byte[] xBuf = this.xBuf;
int length = xBuf.Length;
int num2 = 0;
Array.Clear(xBuf, num2, length);
int[] x = this.X;
this.H1 = (int)((ulong)1732584193L);
this.H2 = (int)((ulong)4023233417L);
this.H3 = (int)((ulong)2562383102L);
this.H4 = (int)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x06009EF1 RID: 40689 RVA: 0x0024AE24 File Offset: 0x00249024
[Token(Token = "0x6009EF1")]
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
private int RotateLeft(int x, int n)
{
return x;
}
// Token: 0x06009EF2 RID: 40690 RVA: 0x0024AE34 File Offset: 0x00249034
[Token(Token = "0x6009EF2")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private int F(int u, int v, int w)
{
return u;
}
// Token: 0x06009EF3 RID: 40691 RVA: 0x0024AE44 File Offset: 0x00249044
[Token(Token = "0x6009EF3")]
[Address(RVA = "0xB6B7D0", Offset = "0xB6A1D0", VA = "0x180B6B7D0")]
private int G(int u, int v, int w)
{
return v;
}
// Token: 0x06009EF4 RID: 40692 RVA: 0x0024AE54 File Offset: 0x00249054
[Token(Token = "0x6009EF4")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private int H(int u, int v, int w)
{
return u;
}
// Token: 0x06009EF5 RID: 40693 RVA: 0x0024AE64 File Offset: 0x00249064
[Token(Token = "0x6009EF5")]
[Address(RVA = "0x2186B80", Offset = "0x2185580", VA = "0x182186B80", Slot = "16")]
internal override void ProcessBlock()
{
int[] x = this.X;
int num = this.H2;
int num2 = this.H3;
int h = this.H4;
int h2 = this.H1;
int num3 = x.Length;
num += h2;
num += h;
num2 = num;
num += num2;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
int num4 = x[6];
num += num4;
num += num;
num += num;
num += num;
num += num;
num2 = num;
num2 += num;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num4;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num2 = num;
num2 += 1518500249;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num;
num4 = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num4;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num4;
num3 = num2;
num2 = num;
num += 1859775393;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num3;
num += num2;
num2 = num;
num3 = num;
num += num2;
num2 = num3;
num += num2;
num2 += num3;
num = num2;
num2 = num;
num += num2;
num2 = num;
num3 = num;
num += num2;
num2 = num3;
num += num2;
num2 += num3;
num = num2;
num2 = num;
num += num2;
num4 = num;
num2 = num4;
num3 = num4;
num += num2;
num = num3;
num += 1859775393;
num += num;
num2 += num3;
num = num2;
num += 1859775393;
num += num4;
num2 = num;
num += num2;
num += 1859775393;
this.H1 = num2;
num += num;
num2 = num;
num2 += num;
this.H2 = num2;
this.H3 = num2;
int num5 = 0;
this.H4 = num2;
this.xOff = num5;
if (num5 != x.Length)
{
num5++;
x[0] = num5;
int[] x2 = this.X;
}
}
// Token: 0x06009EF6 RID: 40694 RVA: 0x0024B0A4 File Offset: 0x002492A4
[Token(Token = "0x6009EF6")]
[Address(RVA = "0x2186830", Offset = "0x2185230", VA = "0x182186830", Slot = "20")]
public override IMemoable Copy()
{
MD4Digest md4Digest = new MD4Digest();
int[] array = new int[16];
md4Digest.X = array;
byte[] array2 = new byte[this.xBuf.Length];
md4Digest.xBuf = array2;
byte[] xBuf = this.xBuf;
int length = xBuf.Length;
int num = 0;
int num2 = 0;
Array.Copy(xBuf, num2, array2, num, length);
int xBufOff = this.xBufOff;
md4Digest.xBufOff = xBufOff;
long byteCount = this.byteCount;
md4Digest.byteCount = byteCount;
md4Digest.CopyIn(this);
throw new NullReferenceException();
}
// Token: 0x06009EF7 RID: 40695 RVA: 0x0024B12C File Offset: 0x0024932C
[Token(Token = "0x6009EF7")]
[Address(RVA = "0x21877B0", Offset = "0x21861B0", VA = "0x1821877B0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x04006875 RID: 26741
[Token(Token = "0x4006875")]
private const int DigestLength = 16;
// Token: 0x04006876 RID: 26742
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006876")]
private int H1;
// Token: 0x04006877 RID: 26743
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4006877")]
private int H2;
// Token: 0x04006878 RID: 26744
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006878")]
private int H3;
// Token: 0x04006879 RID: 26745
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x4006879")]
private int H4;
// Token: 0x0400687A RID: 26746
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x400687A")]
private int[] X;
// Token: 0x0400687B RID: 26747
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x400687B")]
private int xOff;
// Token: 0x0400687C RID: 26748
[Token(Token = "0x400687C")]
private const int S11 = 3;
// Token: 0x0400687D RID: 26749
[Token(Token = "0x400687D")]
private const int S12 = 7;
// Token: 0x0400687E RID: 26750
[Token(Token = "0x400687E")]
private const int S13 = 11;
// Token: 0x0400687F RID: 26751
[Token(Token = "0x400687F")]
private const int S14 = 19;
// Token: 0x04006880 RID: 26752
[Token(Token = "0x4006880")]
private const int S21 = 3;
// Token: 0x04006881 RID: 26753
[Token(Token = "0x4006881")]
private const int S22 = 5;
// Token: 0x04006882 RID: 26754
[Token(Token = "0x4006882")]
private const int S23 = 9;
// Token: 0x04006883 RID: 26755
[Token(Token = "0x4006883")]
private const int S24 = 13;
// Token: 0x04006884 RID: 26756
[Token(Token = "0x4006884")]
private const int S31 = 3;
// Token: 0x04006885 RID: 26757
[Token(Token = "0x4006885")]
private const int S32 = 9;
// Token: 0x04006886 RID: 26758
[Token(Token = "0x4006886")]
private const int S33 = 11;
// Token: 0x04006887 RID: 26759
[Token(Token = "0x4006887")]
private const int S34 = 15;
}
}
@@ -0,0 +1,347 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200170F RID: 5903
[Token(Token = "0x200170F")]
[StructLayout(3)]
public class MD5Digest : GeneralDigest
{
// Token: 0x06009EF8 RID: 40696 RVA: 0x0024B144 File Offset: 0x00249344
[Token(Token = "0x6009EF8")]
[Address(RVA = "0x2241BC0", Offset = "0x22405C0", VA = "0x182241BC0")]
public MD5Digest()
{
uint[] array = new uint[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009EF9 RID: 40697 RVA: 0x0024B170 File Offset: 0x00249370
[Token(Token = "0x6009EF9")]
[Address(RVA = "0x2241C20", Offset = "0x2240620", VA = "0x182241C20")]
public MD5Digest(MD5Digest t)
{
uint[] array = new uint[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009EFA RID: 40698 RVA: 0x0024B19C File Offset: 0x0024939C
[Token(Token = "0x6009EFA")]
[Address(RVA = "0x2240580", Offset = "0x223EF80", VA = "0x182240580")]
private void CopyIn(MD5Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001913 RID: 6419
// (get) Token: 0x06009EFB RID: 40699 RVA: 0x0024B22C File Offset: 0x0024942C
[Token(Token = "0x17001913")]
public override string AlgorithmName
{
[Token(Token = "0x6009EFB")]
[Address(RVA = "0x2241C90", Offset = "0x2240690", VA = "0x182241C90", Slot = "17")]
get
{
return "MD5";
}
}
// Token: 0x06009EFC RID: 40700 RVA: 0x0024B240 File Offset: 0x00249440
[Token(Token = "0x6009EFC")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x06009EFD RID: 40701 RVA: 0x0024B250 File Offset: 0x00249450
[Token(Token = "0x6009EFD")]
[Address(RVA = "0x2241880", Offset = "0x2240280", VA = "0x182241880", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
x[0] = (uint)inOff;
int num2 = this.xOff;
num2++;
this.xOff = num2;
if (num2 == 16)
{
}
}
// Token: 0x06009EFE RID: 40702 RVA: 0x0024B290 File Offset: 0x00249490
[Token(Token = "0x6009EFE")]
[Address(RVA = "0x2241790", Offset = "0x2240190", VA = "0x182241790", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
int num = this.xOff;
int num2 = 0;
if (num > 14 && num == 15)
{
this.X[7] = (uint)num2;
}
int num3 = this.xOff;
if (num3 < 14)
{
uint[] x = this.X;
num3++;
x[0] = (uint)num2;
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x06009EFF RID: 40703 RVA: 0x0024B300 File Offset: 0x00249500
[Token(Token = "0x6009EFF")]
[Address(RVA = "0x22406A0", Offset = "0x223F0A0", VA = "0x1822406A0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Ed25519.Encode32(this.H1, output, outOff);
Ed25519.Encode32(this.H2, output, outOff);
Ed25519.Encode32(this.H3, output, outOff);
Ed25519.Encode32(this.H4, output, outOff);
return 16;
}
// Token: 0x06009F00 RID: 40704 RVA: 0x0024B34C File Offset: 0x0024954C
[Token(Token = "0x6009F00")]
[Address(RVA = "0x2241910", Offset = "0x2240310", VA = "0x182241910", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
int num = 0;
this.H1 = (uint)((ulong)1732584193L);
this.H2 = (uint)((ulong)4023233417L);
this.H3 = (uint)((ulong)2562383102L);
this.H4 = (uint)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = (uint)num;
uint[] x2 = this.X;
}
}
// Token: 0x06009F01 RID: 40705 RVA: 0x0024B3CC File Offset: 0x002495CC
[Token(Token = "0x6009F01")]
[Address(RVA = "0x21009B0", Offset = "0x20FF3B0", VA = "0x1821009B0")]
private static uint RotateLeft(uint x, int n)
{
return x;
}
// Token: 0x06009F02 RID: 40706 RVA: 0x0024B3DC File Offset: 0x002495DC
[Token(Token = "0x6009F02")]
[Address(RVA = "0xA94430", Offset = "0xA92E30", VA = "0x180A94430")]
private static uint F(uint u, uint v, uint w)
{
return u;
}
// Token: 0x06009F03 RID: 40707 RVA: 0x0024B3EC File Offset: 0x002495EC
[Token(Token = "0x6009F03")]
[Address(RVA = "0xA94470", Offset = "0xA92E70", VA = "0x180A94470")]
private static uint G(uint u, uint v, uint w)
{
return w;
}
// Token: 0x06009F04 RID: 40708 RVA: 0x0024B3FC File Offset: 0x002495FC
[Token(Token = "0x6009F04")]
[Address(RVA = "0xA94420", Offset = "0xA92E20", VA = "0x180A94420")]
private static uint H(uint u, uint v, uint w)
{
return u;
}
// Token: 0x06009F05 RID: 40709 RVA: 0x0024B40C File Offset: 0x0024960C
[Token(Token = "0x6009F05")]
[Address(RVA = "0x2240730", Offset = "0x223F130", VA = "0x182240730")]
private static uint K(uint u, uint v, uint w)
{
return w;
}
// Token: 0x06009F06 RID: 40710 RVA: 0x0024B41C File Offset: 0x0024961C
[Token(Token = "0x6009F06")]
[Address(RVA = "0x2240740", Offset = "0x223F140", VA = "0x182240740", Slot = "16")]
internal override void ProcessBlock()
{
uint h = this.H2;
uint[] x = this.X;
int length = x.Length;
int num = MD5Digest.S21;
uint num2 = x[7];
num += -2022574463;
}
// Token: 0x06009F07 RID: 40711 RVA: 0x0024B45C File Offset: 0x0024965C
[Token(Token = "0x6009F07")]
[Address(RVA = "0x2240600", Offset = "0x223F000", VA = "0x182240600", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F07)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD5Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:MD5Digest(var_0_06, newobj:MD5Digest(MD5Digest::.ctor, ldloc:MD5Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(16)))
stfld:uint32[](MD5Digest::X, ldloc:MD5Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(MD5Digest::CopyIn, ldloc:MD5Digest(var_0_06), ldloc:MD5Digest(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: 0x06009F08 RID: 40712 RVA: 0x0024B488 File Offset: 0x00249688
[Token(Token = "0x6009F08")]
[Address(RVA = "0x22419A0", Offset = "0x22403A0", VA = "0x1822419A0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x04006888 RID: 26760
[Token(Token = "0x4006888")]
private const int DigestLength = 16;
// Token: 0x04006889 RID: 26761
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006889")]
private uint H1;
// Token: 0x0400688A RID: 26762
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400688A")]
private uint H2;
// Token: 0x0400688B RID: 26763
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x400688B")]
private uint H3;
// Token: 0x0400688C RID: 26764
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x400688C")]
private uint H4;
// Token: 0x0400688D RID: 26765
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x400688D")]
private uint[] X;
// Token: 0x0400688E RID: 26766
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x400688E")]
private int xOff;
// Token: 0x0400688F RID: 26767
[Token(Token = "0x400688F")]
private static readonly int S11;
// Token: 0x04006890 RID: 26768
[Token(Token = "0x4006890")]
private static readonly int S12;
// Token: 0x04006891 RID: 26769
[Token(Token = "0x4006891")]
private static readonly int S13;
// Token: 0x04006892 RID: 26770
[Token(Token = "0x4006892")]
private static readonly int S14;
// Token: 0x04006893 RID: 26771
[Token(Token = "0x4006893")]
private static readonly int S21;
// Token: 0x04006894 RID: 26772
[Token(Token = "0x4006894")]
private static readonly int S22;
// Token: 0x04006895 RID: 26773
[Token(Token = "0x4006895")]
private static readonly int S23;
// Token: 0x04006896 RID: 26774
[Token(Token = "0x4006896")]
private static readonly int S24;
// Token: 0x04006897 RID: 26775
[Token(Token = "0x4006897")]
private static readonly int S31;
// Token: 0x04006898 RID: 26776
[Token(Token = "0x4006898")]
private static readonly int S32;
// Token: 0x04006899 RID: 26777
[Token(Token = "0x4006899")]
private static readonly int S33;
// Token: 0x0400689A RID: 26778
[Token(Token = "0x400689A")]
private static readonly int S34;
// Token: 0x0400689B RID: 26779
[Token(Token = "0x400689B")]
private static readonly int S41;
// Token: 0x0400689C RID: 26780
[Token(Token = "0x400689C")]
private static readonly int S42;
// Token: 0x0400689D RID: 26781
[Token(Token = "0x400689D")]
private static readonly int S43;
// Token: 0x0400689E RID: 26782
[Token(Token = "0x400689E")]
private static readonly int S44;
}
}
@@ -0,0 +1,113 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001710 RID: 5904
[Token(Token = "0x2001710")]
[StructLayout(3)]
public class NonMemoableDigest : IDigest
{
// Token: 0x06009F0A RID: 40714 RVA: 0x0024B4B0 File Offset: 0x002496B0
[Token(Token = "0x6009F0A")]
[Address(RVA = "0x2241F00", Offset = "0x2240900", VA = "0x182241F00")]
public NonMemoableDigest(IDigest baseDigest)
{
/*
An exception occurred when decompiling this method (06009F0A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.NonMemoableDigest::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentNullException(var_0_1C, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("baseDigest")))
}
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: 0x17001914 RID: 6420
// (get) Token: 0x06009F0B RID: 40715 RVA: 0x0024B4DC File Offset: 0x002496DC
[Token(Token = "0x17001914")]
public virtual string AlgorithmName
{
[Token(Token = "0x6009F0B")]
[Address(RVA = "0x2241F80", Offset = "0x2240980", VA = "0x182241F80", Slot = "11")]
get
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
}
// Token: 0x06009F0C RID: 40716 RVA: 0x0024B4F8 File Offset: 0x002496F8
[Token(Token = "0x6009F0C")]
[Address(RVA = "0x2241E00", Offset = "0x2240800", VA = "0x182241E00", Slot = "12")]
public virtual int GetDigestSize()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x06009F0D RID: 40717 RVA: 0x0024B514 File Offset: 0x00249714
[Token(Token = "0x6009F0D")]
[Address(RVA = "0x2241EA0", Offset = "0x22408A0", VA = "0x182241EA0", Slot = "13")]
public virtual void Update(byte input)
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x06009F0E RID: 40718 RVA: 0x0024B530 File Offset: 0x00249730
[Token(Token = "0x6009F0E")]
[Address(RVA = "0x2241CC0", Offset = "0x22406C0", VA = "0x182241CC0", Slot = "14")]
public virtual void BlockUpdate(byte[] input, int inOff, int len)
{
IDigest digest = this.mBaseDigest;
}
// Token: 0x06009F0F RID: 40719 RVA: 0x0024B54C File Offset: 0x0024974C
[Token(Token = "0x6009F0F")]
[Address(RVA = "0x2241D40", Offset = "0x2240740", VA = "0x182241D40", Slot = "15")]
public virtual int DoFinal(byte[] output, int outOff)
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x06009F10 RID: 40720 RVA: 0x0024B568 File Offset: 0x00249768
[Token(Token = "0x6009F10")]
[Address(RVA = "0x2241E50", Offset = "0x2240850", VA = "0x182241E50", Slot = "16")]
public virtual void Reset()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x06009F11 RID: 40721 RVA: 0x0024B584 File Offset: 0x00249784
[Token(Token = "0x6009F11")]
[Address(RVA = "0x2241DB0", Offset = "0x22407B0", VA = "0x182241DB0", Slot = "17")]
public virtual int GetByteLength()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x0400689F RID: 26783
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400689F")]
protected readonly IDigest mBaseDigest;
}
}
@@ -0,0 +1,103 @@
using System;
using System.IO;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001711 RID: 5905
[Token(Token = "0x2001711")]
[StructLayout(3)]
public class NullDigest : IDigest
{
// Token: 0x17001915 RID: 6421
// (get) Token: 0x06009F12 RID: 40722 RVA: 0x0024B5A0 File Offset: 0x002497A0
[Token(Token = "0x17001915")]
public string AlgorithmName
{
[Token(Token = "0x6009F12")]
[Address(RVA = "0x2242130", Offset = "0x2240B30", VA = "0x182242130", Slot = "4")]
get
{
return "NULL";
}
}
// Token: 0x06009F13 RID: 40723 RVA: 0x0024B5B4 File Offset: 0x002497B4
[Token(Token = "0x6009F13")]
[Address(RVA = "0x3F8880", Offset = "0x3F7280", VA = "0x1803F8880", Slot = "6")]
public int GetByteLength()
{
return 0;
}
// Token: 0x06009F14 RID: 40724 RVA: 0x0024B5C4 File Offset: 0x002497C4
[Token(Token = "0x6009F14")]
[Address(RVA = "0x78FE10", Offset = "0x78E810", VA = "0x18078FE10", Slot = "5")]
public int GetDigestSize()
{
((IDisposable)this.bOut).Dispose();
throw new NullReferenceException();
}
// Token: 0x06009F15 RID: 40725 RVA: 0x0024B5E4 File Offset: 0x002497E4
[Token(Token = "0x6009F15")]
[Address(RVA = "0xA20E50", Offset = "0xA1F850", VA = "0x180A20E50", Slot = "7")]
public void Update(byte b)
{
((IDisposable)this.bOut).Dispose();
}
// Token: 0x06009F16 RID: 40726 RVA: 0x0024B604 File Offset: 0x00249804
[Token(Token = "0x6009F16")]
[Address(RVA = "0xA20FC0", Offset = "0xA1F9C0", VA = "0x180A20FC0", Slot = "8")]
public void BlockUpdate(byte[] inBytes, int inOff, int len)
{
int num = this.bOut.Read(inBytes, inOff, len);
}
// Token: 0x06009F17 RID: 40727 RVA: 0x0024B628 File Offset: 0x00249828
[Token(Token = "0x6009F17")]
[Address(RVA = "0x2241FD0", Offset = "0x22409D0", VA = "0x182241FD0", Slot = "9")]
public int DoFinal(byte[] outBytes, int outOff)
{
int num;
int num2;
do
{
num = 0;
num2 = Streams.WriteBufTo(this.bOut, outBytes, outOff);
MemoryStream memoryStream = this.bOut;
if (num != -1)
{
}
}
while (num != 0);
return num2;
}
// Token: 0x06009F18 RID: 40728 RVA: 0x0024B65C File Offset: 0x0024985C
[Token(Token = "0x6009F18")]
[Address(RVA = "0x22420A0", Offset = "0x2240AA0", VA = "0x1822420A0", Slot = "10")]
public void Reset()
{
((IDisposable)this.bOut).Dispose();
}
// Token: 0x06009F19 RID: 40729 RVA: 0x0024B67C File Offset: 0x0024987C
[Token(Token = "0x6009F19")]
[Address(RVA = "0x22420D0", Offset = "0x2240AD0", VA = "0x1822420D0")]
public NullDigest()
{
MemoryStream memoryStream = new MemoryStream();
this.bOut = memoryStream;
base..ctor();
}
// Token: 0x040068A0 RID: 26784
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40068A0")]
private readonly MemoryStream bOut;
}
}
@@ -0,0 +1,818 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001712 RID: 5906
[Token(Token = "0x2001712")]
[StructLayout(3)]
public class RipeMD128Digest : GeneralDigest
{
// Token: 0x06009F1A RID: 40730 RVA: 0x0024B69C File Offset: 0x0024989C
[Token(Token = "0x6009F1A")]
[Address(RVA = "0x2243940", Offset = "0x2242340", VA = "0x182243940")]
public RipeMD128Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F1B RID: 40731 RVA: 0x0024B6C8 File Offset: 0x002498C8
[Token(Token = "0x6009F1B")]
[Address(RVA = "0x22439A0", Offset = "0x22423A0", VA = "0x1822439A0")]
public RipeMD128Digest(RipeMD128Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F1C RID: 40732 RVA: 0x0024B6F4 File Offset: 0x002498F4
[Token(Token = "0x6009F1C")]
[Address(RVA = "0x2240580", Offset = "0x223EF80", VA = "0x182240580")]
private void CopyIn(RipeMD128Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001916 RID: 6422
// (get) Token: 0x06009F1D RID: 40733 RVA: 0x0024B784 File Offset: 0x00249984
[Token(Token = "0x17001916")]
public override string AlgorithmName
{
[Token(Token = "0x6009F1D")]
[Address(RVA = "0x2243A10", Offset = "0x2242410", VA = "0x182243A10", Slot = "17")]
get
{
return "RIPEMD128";
}
}
// Token: 0x06009F1E RID: 40734 RVA: 0x0024B798 File Offset: 0x00249998
[Token(Token = "0x6009F1E")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x06009F1F RID: 40735 RVA: 0x0024B7A8 File Offset: 0x002499A8
[Token(Token = "0x6009F1F")]
[Address(RVA = "0x21875E0", Offset = "0x2185FE0", VA = "0x1821875E0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x06009F20 RID: 40736 RVA: 0x0024B7F4 File Offset: 0x002499F4
[Token(Token = "0x6009F20")]
[Address(RVA = "0x2187560", Offset = "0x2185F60", VA = "0x182187560", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x06009F21 RID: 40737 RVA: 0x0024B82C File Offset: 0x00249A2C
[Token(Token = "0x6009F21")]
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x06009F22 RID: 40738 RVA: 0x0024B844 File Offset: 0x00249A44
[Token(Token = "0x6009F22")]
[Address(RVA = "0x2186940", Offset = "0x2185340", VA = "0x182186940", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x06009F23 RID: 40739 RVA: 0x0024B8BC File Offset: 0x00249ABC
[Token(Token = "0x6009F23")]
[Address(RVA = "0x2241910", Offset = "0x2240310", VA = "0x182241910", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x06009F24 RID: 40740 RVA: 0x0024B93C File Offset: 0x00249B3C
[Token(Token = "0x6009F24")]
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x06009F25 RID: 40741 RVA: 0x0024B94C File Offset: 0x00249B4C
[Token(Token = "0x6009F25")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x06009F26 RID: 40742 RVA: 0x0024B95C File Offset: 0x00249B5C
[Token(Token = "0x6009F26")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x06009F27 RID: 40743 RVA: 0x0024B96C File Offset: 0x00249B6C
[Token(Token = "0x6009F27")]
[Address(RVA = "0x2242270", Offset = "0x2240C70", VA = "0x182242270")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x06009F28 RID: 40744 RVA: 0x0024B97C File Offset: 0x00249B7C
[Token(Token = "0x6009F28")]
[Address(RVA = "0x2242300", Offset = "0x2240D00", VA = "0x182242300")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x06009F29 RID: 40745 RVA: 0x0024B98C File Offset: 0x00249B8C
[Token(Token = "0x6009F29")]
[Address(RVA = "0x2242200", Offset = "0x2240C00", VA = "0x182242200")]
private int F1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x06009F2A RID: 40746 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F2A")]
[Address(RVA = "0x2242230", Offset = "0x2240C30", VA = "0x182242230")]
private int F2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F2B RID: 40747 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F2B")]
[Address(RVA = "0x2242280", Offset = "0x2240C80", VA = "0x182242280")]
private int F3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F2C RID: 40748 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F2C")]
[Address(RVA = "0x22422C0", Offset = "0x2240CC0", VA = "0x1822422C0")]
private int F4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F2D RID: 40749 RVA: 0x0024B99C File Offset: 0x00249B9C
[Token(Token = "0x6009F2D")]
[Address(RVA = "0x2242200", Offset = "0x2240C00", VA = "0x182242200")]
private int FF1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x06009F2E RID: 40750 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F2E")]
[Address(RVA = "0x2242310", Offset = "0x2240D10", VA = "0x182242310")]
private int FF2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F2F RID: 40751 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F2F")]
[Address(RVA = "0x2242350", Offset = "0x2240D50", VA = "0x182242350")]
private int FF3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F30 RID: 40752 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F30")]
[Address(RVA = "0x2242390", Offset = "0x2240D90", VA = "0x182242390")]
private int FF4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F31 RID: 40753 RVA: 0x0024B9AC File Offset: 0x00249BAC
[Token(Token = "0x6009F31")]
[Address(RVA = "0x22423D0", Offset = "0x2240DD0", VA = "0x1822423D0", Slot = "16")]
internal override void ProcessBlock()
{
int[] x = this.X;
int num = this.H0;
int h = this.H1;
int num2 = this.H2;
int num3 = this.H3;
int num4 = x.Length;
num3 += num;
num = num3;
num3 = num2;
num3 += num3;
num3 = h;
num3 += num2;
num2 = num3;
num3 = num2;
num3 += h;
num2 += num;
num = num2;
num3 += num3;
num3 += num3;
num2 = num3;
num3 = num2;
num3 += num3;
num2 += num;
num = num2;
num3 += num3;
num3 += num3;
num2 = num3;
num3 = num2;
num3 += num3;
num2 += num;
int num5 = x[6];
num3 += num5;
num3 += num3;
num2 = num3;
int num6 = x[7];
num3 = num2;
num3 += num6;
num3 += num3;
int num7 = x[7];
num3 = num2;
num3 += num7;
num3 += num3;
num4 = num3;
num3 += num4;
num = num3;
num4 = num;
num3 += num4;
num3 += 1518500249;
num3 += num5;
int num8 = x[1];
num3 += num3;
num4 = num3;
num3 += num4;
num4 = num3;
num3 += num4;
num3 += 1518500249;
num3 += num3;
num = num3;
num4 = num;
num3 = num;
num4 += num7;
num3 += num4;
num3 = num;
num3 += 1518500249;
num3 += num8;
num3 += num3;
num4 = num3;
num3 += num4;
num4 = num3;
num3 += num4;
num = num3;
num4 = num;
num3 = num;
num3 += num4;
num2 = num3;
num3 = num;
num3 += 1518500249;
num3 += num3;
num3 = num2;
num4 = num3;
num3 += num4;
num4 = num3;
num4 += num6;
num3 += num4;
num = num3;
num4 = num;
num3 = num;
int num9 = x[5];
num4 += num9;
num3 += num4;
num3 = num;
num3 += 1518500249;
num3 += num3;
num4 = num3;
num += 1859775393;
num3 += 1859775393;
num3 += num3;
num2 = num3;
num3 = num4;
num3 += 1859775393;
num3 += num;
num = num3;
num3 = num2;
num4 += 1859775393;
num3 += num6;
num3 += num3;
num3 = num;
num2 += 1859775393;
num3 += num4;
num4 = num3;
num3 += num2;
num2 = num3;
num3 = num4;
num3 += num7;
num += 1859775393;
num3 += num;
num3 += 1859775393;
num = num3;
num3 = num2;
num4 += 1859775393;
num3 += num3;
num3 = num;
num2 += 1859775393;
num3 += num4;
num += 1859775393;
num3 += num2;
num4 = num3;
num3 += 1859775393;
num3 += num;
num2 = num3;
num3 = num4;
num3 += 1859775393;
num3 += num3;
num = num3;
num3 = num2;
num3 += num3;
int num10 = x[6];
num10 += 1859775393;
num3 = num;
num3 += num10;
num3 += num4;
num10 = num3;
num2 += 1859775393;
num += 1859775393;
num3 += num9;
num9 += -1894007588;
num3 += num2;
num3 = num10;
num2 = num3;
num3 += num;
num = num3;
num3 = num2;
num4 += num3;
num3 = num4;
num4 = num;
num3 += -1894007588;
num3 += num10;
num3 = num;
num3 += num4;
num3 += num9;
num3 += num;
num9 = num3;
num3 = num9;
num3 += -1894007588;
num4 = num3;
num3 += num3;
num3 += num4;
num2 = num3;
num3 = num9;
num3 += -1894007588;
num3 += num3;
num = num3;
num3 = num;
num4 = num2;
num3 += -1894007588;
num3 += num9;
num3 += num4;
num4 = num;
num10 = num3;
num3 = num;
num3 += num4;
num4 = num3;
num2 = num3;
num4 += num8;
num3 += num4;
num = num3;
num4 = num10;
num6 += -1894007588;
num3 = num;
num3 += num4;
num4 = num2;
num4 += num7;
num3 += num4;
num10 = num3;
num3 = num;
num4 = num3;
num3 += num6;
num3 += num2;
num6 = num3;
num8 = num6;
int num11 = this.H3;
num3 += num4;
num4 = num10;
num3 += num4;
num4 = num11;
num7 = num3;
num8 += -1894007588;
num8 += num10;
int num12 = this.H2;
int num13 = this.H0;
num13 += 1352829926;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = h;
num11 = num13;
num13 = h;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num12 = num13;
num13 = num12;
num2 += 1548603684;
num13 += 1352829926;
num13 += num10;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num13 += num12;
num12 = num13;
num13 = num11;
num4 += 1548603684;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num4 += 1548603684;
num13 += num12;
num12 = num13;
num13 = num11;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num13 += num11;
num11 = num13;
num13 = num2;
num12 += 1548603684;
num13 += num12;
num4 += 1548603684;
num12 = num13;
num13 = num11;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num4 += 1548603684;
num13 += num12;
num12 = num13;
num13 = num11;
num13 += num4;
num10 = num13;
num13 = num12;
num4 = num10;
num13 += num4;
num3 = num13;
num13 = num10;
num4 = num3;
num13 += num4;
num2 = num13;
num4 = num2;
num13 = num2;
num13 += num4;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num12 = num13;
num13 = num11;
num4 = num12;
num13 += num4;
num10 = num13;
num13 = num12;
num4 = num10;
num13 += num4;
num3 = num13;
num4 = num3;
num13 = num3;
num13 += num4;
num2 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num12;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num10 = num13;
num13 = num11;
num4 = num10;
num13 += num4;
num3 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num2;
num9 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num11;
num12 = num13;
num13 = num9;
num4 = num12;
num13 += num4;
num10 = num13;
num13 = num12;
num13 += 1836072691;
num13 += num3;
num2 = num13;
num13 = num2;
num13 += 1836072691;
num13 += num9;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num12 = num13;
num13 = num2;
num13 += num10;
num10 = num13;
num13 = num11;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num11;
num11 = num13;
num13 = num4;
num13 += num12;
num12 = num13;
num13 = num11;
num4 += num10;
num10 = num4;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num11;
num3 = num13;
num13 = num4;
num13 += num12;
num11 = num13;
num13 = num3;
num4 += num10;
num12 = num4;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num3;
num3 = num13;
num13 = num4;
num13 += num11;
num10 = num13;
num13 = num3;
num4 += num12;
num11 = num4;
num13 += num2;
num12 = num13;
num13 = num12;
num4 = num12;
num13 += num3;
num2 = num13;
num4 += num10;
int num14 = this.H2;
num14 += num3;
num14 += num11;
this.H1 = num14;
num14 = num4;
num14 += num6;
this.H2 = num14;
num14 = num8;
num14 += num2;
this.H3 = num14;
num14 += num7;
int num15 = 0;
this.H0 = num14;
this.xOff = num15;
if (num15 != x.Length)
{
num15++;
x[0] = num15;
}
}
// Token: 0x06009F32 RID: 40754 RVA: 0x0024C40C File Offset: 0x0024A60C
[Token(Token = "0x6009F32")]
[Address(RVA = "0x2242160", Offset = "0x2240B60", VA = "0x182242160", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F32)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD128Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD128Digest(var_0_06, newobj:RipeMD128Digest(RipeMD128Digest::.ctor, ldloc:RipeMD128Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD128Digest::X, ldloc:RipeMD128Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD128Digest::CopyIn, ldloc:RipeMD128Digest(var_0_06), ldloc:RipeMD128Digest(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: 0x06009F33 RID: 40755 RVA: 0x0024C438 File Offset: 0x0024A638
[Token(Token = "0x6009F33")]
[Address(RVA = "0x22438A0", Offset = "0x22422A0", VA = "0x1822438A0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068A1 RID: 26785
[Token(Token = "0x40068A1")]
private const int DigestLength = 16;
// Token: 0x040068A2 RID: 26786
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068A2")]
private int H0;
// Token: 0x040068A3 RID: 26787
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068A3")]
private int H1;
// Token: 0x040068A4 RID: 26788
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068A4")]
private int H2;
// Token: 0x040068A5 RID: 26789
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068A5")]
private int H3;
// Token: 0x040068A6 RID: 26790
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068A6")]
private int[] X;
// Token: 0x040068A7 RID: 26791
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068A7")]
private int xOff;
}
}
@@ -0,0 +1,757 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001713 RID: 5907
[Token(Token = "0x2001713")]
[StructLayout(3)]
public class RipeMD160Digest : GeneralDigest
{
// Token: 0x06009F34 RID: 40756 RVA: 0x0024C450 File Offset: 0x0024A650
[Token(Token = "0x6009F34")]
[Address(RVA = "0x22464F0", Offset = "0x2244EF0", VA = "0x1822464F0")]
public RipeMD160Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F35 RID: 40757 RVA: 0x0024C47C File Offset: 0x0024A67C
[Token(Token = "0x6009F35")]
[Address(RVA = "0x2246550", Offset = "0x2244F50", VA = "0x182246550")]
public RipeMD160Digest(RipeMD160Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F36 RID: 40758 RVA: 0x0024C4A8 File Offset: 0x0024A6A8
[Token(Token = "0x6009F36")]
[Address(RVA = "0x2243A40", Offset = "0x2242440", VA = "0x182243A40")]
private void CopyIn(RipeMD160Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001917 RID: 6423
// (get) Token: 0x06009F37 RID: 40759 RVA: 0x0024C548 File Offset: 0x0024A748
[Token(Token = "0x17001917")]
public override string AlgorithmName
{
[Token(Token = "0x6009F37")]
[Address(RVA = "0x22465C0", Offset = "0x2244FC0", VA = "0x1822465C0", Slot = "17")]
get
{
return "RIPEMD160";
}
}
// Token: 0x06009F38 RID: 40760 RVA: 0x0024C55C File Offset: 0x0024A75C
[Token(Token = "0x6009F38")]
[Address(RVA = "0x15A18C0", Offset = "0x15A02C0", VA = "0x1815A18C0", Slot = "18")]
public override int GetDigestSize()
{
return 20;
}
// Token: 0x06009F39 RID: 40761 RVA: 0x0024C56C File Offset: 0x0024A76C
[Token(Token = "0x6009F39")]
[Address(RVA = "0x2246290", Offset = "0x2244C90", VA = "0x182246290", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x06009F3A RID: 40762 RVA: 0x0024C5B8 File Offset: 0x0024A7B8
[Token(Token = "0x6009F3A")]
[Address(RVA = "0x2246210", Offset = "0x2244C10", VA = "0x182246210", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x06009F3B RID: 40763 RVA: 0x0024C5F0 File Offset: 0x0024A7F0
[Token(Token = "0x6009F3B")]
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x06009F3C RID: 40764 RVA: 0x0024C608 File Offset: 0x0024A808
[Token(Token = "0x6009F3C")]
[Address(RVA = "0x2243B60", Offset = "0x2242560", VA = "0x182243B60", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x06009F3D RID: 40765 RVA: 0x0024C6A0 File Offset: 0x0024A8A0
[Token(Token = "0x6009F3D")]
[Address(RVA = "0x2246450", Offset = "0x2244E50", VA = "0x182246450", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)3285377520L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x06009F3E RID: 40766 RVA: 0x0024C730 File Offset: 0x0024A930
[Token(Token = "0x6009F3E")]
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x06009F3F RID: 40767 RVA: 0x0024C740 File Offset: 0x0024A940
[Token(Token = "0x6009F3F")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x06009F40 RID: 40768 RVA: 0x0024C750 File Offset: 0x0024A950
[Token(Token = "0x6009F40")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x06009F41 RID: 40769 RVA: 0x0024C760 File Offset: 0x0024A960
[Token(Token = "0x6009F41")]
[Address(RVA = "0x2242270", Offset = "0x2240C70", VA = "0x182242270")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x06009F42 RID: 40770 RVA: 0x0024C770 File Offset: 0x0024A970
[Token(Token = "0x6009F42")]
[Address(RVA = "0x2242300", Offset = "0x2240D00", VA = "0x182242300")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x06009F43 RID: 40771 RVA: 0x0024C780 File Offset: 0x0024A980
[Token(Token = "0x6009F43")]
[Address(RVA = "0x2243E40", Offset = "0x2242840", VA = "0x182243E40")]
private int F5(int x, int y, int z)
{
return z;
}
// Token: 0x06009F44 RID: 40772 RVA: 0x0024C790 File Offset: 0x0024A990
[Token(Token = "0x6009F44")]
[Address(RVA = "0x2243E50", Offset = "0x2242850", VA = "0x182243E50", Slot = "16")]
internal override void ProcessBlock()
{
/*
An exception occurred when decompiling this method (06009F44)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD160Digest::ProcessBlock()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32[](var_0_06, ldfld:int32[](RipeMD160Digest::X, ldloc:RipeMD160Digest(this)))
stloc:int32(var_1_0D, ldfld:int32(RipeMD160Digest::H0, ldloc:RipeMD160Digest(this)))
stloc:int32(var_2_14, ldfld:int32(RipeMD160Digest::H1, ldloc:RipeMD160Digest(this)))
stloc:int32(var_3_1B, ldfld:int32(RipeMD160Digest::H2, ldloc:RipeMD160Digest(this)))
stloc:int32(var_4_22, ldfld:int32(RipeMD160Digest::H4, ldloc:RipeMD160Digest(this)))
stloc:int32(var_5_2A, ldfld:int32(RipeMD160Digest::H3, ldloc:RipeMD160Digest(this)))
stloc:int32(var_6_32, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_0_06)))
stloc:int32(var_5_38, add:int32(ldloc:int32(var_5_2A), ldloc:int32(var_1_0D)))
stloc:int32(var_1_3C, ldloc:int32(var_5_38))
stloc:int32(var_1_44, add:int32(ldloc:int32(var_1_3C), ldloc:int32(var_4_22)))
stloc:int32(var_5_46, ldloc:int32(var_2_14))
stloc:int32(var_5_4D, add:int32(ldloc:int32(var_5_46), ldloc:int32(var_4_22)))
stloc:int32(var_4_51, ldloc:int32(var_5_4D))
stloc:int32(var_5_54, ldloc:int32(var_2_14))
stloc:int32(var_4_5B, add:int32(ldloc:int32(var_4_51), ldloc:int32(var_5_54)))
stloc:int32(var_5_5F, ldloc:int32(var_4_5B))
stloc:int32(var_5_66, add:int32(ldloc:int32(var_5_5F), ldloc:int32(var_5_5F)))
stloc:int32(var_5_6C, add:int32(ldloc:int32(var_5_66), ldloc:int32(var_3_1B)))
stloc:int32(var_5_70, ldloc:int32(var_4_5B))
stloc:int32(var_5_76, add:int32(ldloc:int32(var_5_70), ldloc:int32(var_3_1B)))
stloc:int32(var_1_7A, ldloc:int32(var_5_76))
stloc:int32(var_1_7E, add:int32(ldloc:int32(var_1_7A), ldloc:int32(var_2_14)))
stloc:int32(var_5_81, ldloc:int32(var_4_5B))
stloc:int32(var_5_87, add:int32(ldloc:int32(var_5_81), ldloc:int32(var_2_14)))
stloc:int32(var_4_8B, ldloc:int32(var_5_87))
stloc:int32(var_4_91, add:int32(ldloc:int32(var_4_8B), ldloc:int32(var_1_7E)))
stloc:int32(var_5_97, add:int32(ldloc:int32(var_5_87), ldloc:int32(var_1_7E)))
stloc:int32(var_5_9E, add:int32(ldloc:int32(var_5_97), ldloc:int32(var_4_91)))
stloc:int32(var_5_A1, ldloc:int32(var_1_7E))
stloc:int32(var_5_A8, add:int32(ldloc:int32(var_5_A1), ldloc:int32(var_4_91)))
stloc:int32(var_1_AC, ldloc:int32(var_5_A8))
stloc:int32(var_1_B1, add:int32(ldloc:int32(var_1_AC), ldloc:int32(var_5_A8)))
stloc:int32(var_5_B3, ldloc:int32(var_1_B1))
stloc:int32(var_5_BA, add:int32(ldloc:int32(var_5_B3), ldloc:int32(var_5_B3)))
stloc:int32(var_4_BE, ldloc:int32(var_5_BA))
stloc:int32(var_4_C4, add:int32(ldloc:int32(var_4_BE), ldloc:int32(var_1_B1)))
stloc:int32(var_5_C7, ldloc:int32(var_1_B1))
stloc:int32(var_5_CD, add:int32(ldloc:int32(var_5_C7), ldloc:int32(var_1_B1)))
stloc:int32(var_5_D4, add:int32(ldloc:int32(var_5_CD), ldloc:int32(var_4_C4)))
stloc:int32(var_5_D7, ldloc:int32(var_1_B1))
stloc:int32(var_5_DE, add:int32(ldloc:int32(var_5_D7), ldloc:int32(var_4_C4)))
stloc:int32(var_1_E2, ldloc:int32(var_5_DE))
stloc:int32(var_1_E7, add:int32(ldloc:int32(var_1_E2), ldloc:int32(var_5_DE)))
stloc:int32(var_5_EA, ldloc:int32(var_4_C4))
stloc:int32(var_5_F1, add:int32(ldloc:int32(var_5_EA), ldloc:int32(var_5_EA)))
stloc:int32(var_4_F5, ldloc:int32(var_5_F1))
stloc:int32(var_4_FB, add:int32(ldloc:int32(var_4_F5), ldloc:int32(var_1_E7)))
stloc:int32(var_5_101, add:int32(ldloc:int32(var_5_F1), ldloc:int32(var_1_E7)))
stloc:int32(var_5_108, add:int32(ldloc:int32(var_5_101), ldloc:int32(var_4_FB)))
stloc:int32(var_5_10F, add:int32(ldloc:int32(var_5_108), ldloc:int32(var_4_FB)))
stloc:int32(var_1_113, ldloc:int32(var_5_10F))
stloc:int32(var_1_118, add:int32(ldloc:int32(var_1_113), ldloc:int32(var_5_10F)))
stloc:int32(var_5_11E, add:int32(ldloc:int32(var_5_10F), ldloc:int32(var_5_10F)))
stloc:int32(var_4_122, ldloc:int32(var_5_11E))
stloc:int32(var_4_128, add:int32(ldloc:int32(var_4_122), ldloc:int32(var_1_118)))
stloc:int32(var_7_131, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(7)))
stloc:int32(var_5_138, add:int32(ldloc:int32(var_5_11E), ldloc:int32(var_7_131)))
stloc:int32(var_5_13E, add:int32(ldloc:int32(var_5_138), ldloc:int32(var_1_118)))
stloc:int32(var_5_141, ldloc:int32(var_1_118))
stloc:int32(var_5_148, add:int32(ldloc:int32(var_5_141), ldloc:int32(var_4_128)))
stloc:int32(var_5_14F, add:int32(ldloc:int32(var_5_148), ldloc:int32(var_4_128)))
stloc:int32(var_6_153, ldloc:int32(var_5_14F))
stloc:int32(var_5_157, ldloc:int32(var_4_128))
stloc:int32(var_6_15E, add:int32(ldloc:int32(var_6_153), ldloc:int32(var_5_157)))
stloc:int32(var_1_167, add:int32(ldloc:int32(var_1_118), ldc.i4:int32(1352829926)))
stloc:int32(var_5_16C, add:int32(ldloc:int32(var_5_157), ldloc:int32(var_1_167)))
stloc:int32(var_4_170, ldloc:int32(var_5_16C))
stloc:int32(var_4_177, add:int32(ldloc:int32(var_4_170), ldloc:int32(var_4_170)))
stloc:int32(var_4_181, add:int32(ldloc:int32(var_4_177), ldc.i4:int32(1352829926)))
stloc:int32(var_5_184, ldloc:int32(var_3_1B))
stloc:int32(var_5_18B, add:int32(ldloc:int32(var_5_184), ldloc:int32(var_7_131)))
stloc:int32(var_7_18F, ldloc:int32(var_4_181))
stloc:int32(var_5_196, add:int32(ldloc:int32(var_5_18B), ldloc:int32(var_4_181)))
stloc:int32(var_4_19A, ldloc:int32(var_5_196))
stloc:int32(var_5_19D, ldloc:int32(var_2_14))
stloc:int32(var_4_1A4, add:int32(ldloc:int32(var_4_19A), ldloc:int32(var_5_19D)))
stloc:int32(var_5_1B1, add:int32(ldloc:int32(var_5_19D), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1B8, add:int32(ldloc:int32(var_5_1B1), ldloc:int32(var_5_1B1)))
stloc:int32(var_1_1BC, ldloc:int32(var_5_1B8))
stloc:int32(var_5_1BF, ldloc:int32(var_7_18F))
stloc:int32(var_1_1C4, add:int32(ldloc:int32(var_1_1BC), ldloc:int32(var_3_1B)))
stloc:int32(var_5_1D0, add:int32(ldloc:int32(var_5_1BF), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1D6, add:int32(ldloc:int32(var_5_1D0), ldloc:int32(var_3_1B)))
stloc:int32(var_4_1DA, ldloc:int32(var_5_1D6))
stloc:int32(var_5_1DD, ldloc:int32(var_1_1C4))
stloc:int32(var_4_1E3, add:int32(ldloc:int32(var_4_1DA), ldloc:int32(var_2_14)))
stloc:int32(var_5_1ED, add:int32(ldloc:int32(var_5_1DD), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1F3, add:int32(ldloc:int32(var_5_1ED), ldloc:int32(var_2_14)))
stloc:int32(var_4_1F7, ldloc:int32(var_5_1F3))
stloc:int32(var_5_1FB, ldloc:int32(var_4_1F7))
stloc:int32(var_4_202, add:int32(ldloc:int32(var_4_1F7), ldloc:int32(var_7_18F)))
stloc:int32(var_7_20C, add:int32(ldloc:int32(var_7_18F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_213, add:int32(ldloc:int32(var_5_1FB), ldloc:int32(var_7_20C)))
stloc:int32(var_7_217, ldloc:int32(var_4_202))
stloc:int32(var_1_21B, ldloc:int32(var_5_213))
stloc:int32(var_1_21F, add:int32(ldloc:int32(var_1_21B), ldloc:int32(var_1_21B)))
stloc:int32(var_5_226, ldloc:int32(var_4_202))
stloc:int32(var_1_22F, add:int32(ldloc:int32(var_1_21F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_234, add:int32(ldloc:int32(var_5_226), ldloc:int32(var_1_22F)))
stloc:int32(var_4_238, ldloc:int32(var_5_234))
stloc:int32(var_4_23F, add:int32(ldloc:int32(var_4_238), ldloc:int32(var_4_238)))
stloc:int32(var_5_249, add:int32(ldloc:int32(var_5_234), ldc.i4:int32(1352829926)))
stloc:int32(var_5_250, add:int32(ldloc:int32(var_5_249), ldloc:int32(var_4_23F)))
stloc:int32(var_4_254, ldloc:int32(var_5_250))
stloc:int32(var_5_257, ldloc:int32(var_1_22F))
stloc:int32(var_4_25E, add:int32(ldloc:int32(var_4_254), ldloc:int32(var_7_217)))
stloc:int32(var_7_268, add:int32(ldloc:int32(var_7_217), ldc.i4:int32(1352829926)))
stloc:int32(var_5_26F, add:int32(ldloc:int32(var_5_257), ldloc:int32(var_7_268)))
stloc:int32(var_7_273, ldloc:int32(var_4_25E))
stloc:int32(var_1_277, ldloc:int32(var_5_26F))
stloc:int32(var_1_27C, add:int32(ldloc:int32(var_1_277), ldloc:int32(var_5_26F)))
stloc:int32(var_5_27F, ldloc:int32(var_7_273))
stloc:int32(var_5_289, add:int32(ldloc:int32(var_5_27F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_290, add:int32(ldloc:int32(var_5_289), ldloc:int32(var_5_289)))
stloc:int32(var_4_294, ldloc:int32(var_5_290))
stloc:int32(var_5_298, ldloc:int32(var_4_294))
stloc:int32(var_4_29E, add:int32(ldloc:int32(var_4_294), ldloc:int32(var_1_27C)))
stloc:int32(var_1_2A7, add:int32(ldloc:int32(var_1_27C), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2AC, add:int32(ldloc:int32(var_5_298), ldloc:int32(var_1_2A7)))
stloc:int32(var_4_2B0, ldloc:int32(var_5_2AC))
stloc:int32(var_4_2B7, add:int32(ldloc:int32(var_4_2B0), ldloc:int32(var_7_273)))
stloc:int32(var_5_2BA, ldloc:int32(var_1_2A7))
stloc:int32(var_7_2C4, add:int32(ldloc:int32(var_7_273), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2CB, add:int32(ldloc:int32(var_5_2BA), ldloc:int32(var_7_2C4)))
stloc:int32(var_5_2CF, ldloc:int32(var_4_2B7))
stloc:int32(var_1_2D3, ldloc:int32(var_5_2CF))
stloc:int32(var_7_2D6, ldloc:int32(var_4_2B7))
stloc:int32(var_1_2DC, add:int32(ldloc:int32(var_1_2D3), ldloc:int32(var_4_2B7)))
stloc:int32(var_5_2DE, ldloc:int32(var_1_2DC))
stloc:int32(var_5_2E8, add:int32(ldloc:int32(var_5_2DE), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2EF, add:int32(ldloc:int32(var_5_2E8), ldloc:int32(var_4_2B7)))
stloc:int32(var_4_2F3, ldloc:int32(var_5_2EF))
stloc:int32(var_5_2F7, ldloc:int32(var_7_2D6))
stloc:int32(var_4_2FD, add:int32(ldloc:int32(var_4_2F3), ldloc:int32(var_1_2DC)))
stloc:int32(var_5_307, add:int32(ldloc:int32(var_5_2F7), ldc.i4:int32(1352829926)))
stloc:int32(var_5_30D, add:int32(ldloc:int32(var_5_307), ldloc:int32(var_1_2DC)))
stloc:int32(var_4_311, ldloc:int32(var_5_30D))
stloc:int32(var_4_318, add:int32(ldloc:int32(var_4_311), ldloc:int32(var_5_30D)))
stloc:int32(var_5_322, add:int32(ldloc:int32(var_5_30D), ldc.i4:int32(1352829926)))
stloc:int32(var_5_329, add:int32(ldloc:int32(var_5_322), ldloc:int32(var_5_322)))
stloc:int32(var_2_32D, ldloc:int32(var_5_329))
stloc:int32(var_5_330, ldloc:int32(var_4_318))
stloc:int32(var_2_336, add:int32(ldloc:int32(var_2_32D), ldloc:int32(var_7_2D6)))
stloc:int32(var_7_33F, add:int32(ldloc:int32(var_7_2D6), ldc.i4:int32(1352829926)))
stloc:int32(var_5_346, add:int32(ldloc:int32(var_5_330), ldloc:int32(var_7_33F)))
stloc:int32(var_3_34A, ldloc:int32(var_5_346))
stloc:int32(var_5_34D, ldloc:int32(var_4_318))
stloc:int32(var_3_353, add:int32(ldloc:int32(var_3_34A), ldloc:int32(var_5_34D)))
stloc:int32(var_4_35A, ldloc:int32(var_6_15E))
stloc:int32(var_5_367, add:int32(ldloc:int32(var_5_34D), ldc.i4:int32(1518500249)))
stloc:int32(var_5_36E, add:int32(ldloc:int32(var_5_367), ldloc:int32(var_4_35A)))
stloc:int32(var_1_372, ldloc:int32(var_5_36E))
stloc:int32(var_1_377, add:int32(ldloc:int32(var_1_372), ldloc:int32(var_5_36E)))
stloc:int32(var_4_379, ldloc:int32(var_1_377))
stloc:int32(var_5_37C, ldloc:int32(var_1_377))
stloc:int32(var_5_383, add:int32(ldloc:int32(var_5_37C), ldloc:int32(var_4_379)))
stloc:int32(var_3_386, ldloc:int32(var_1_377))
stloc:int32(var_5_388, ldloc:int32(var_1_377))
stloc:int32(var_5_38F, add:int32(ldloc:int32(var_5_388), ldloc:int32(var_5_388)))
stloc:int32(var_4_393, ldloc:int32(var_5_38F))
stloc:int32(var_5_39A, add:int32(ldloc:int32(var_5_38F), ldloc:int32(var_4_393)))
stloc:int32(var_6_39E, ldloc:int32(var_5_39A))
stloc:int32(var_6_3A4, add:int32(ldloc:int32(var_6_39E), ldloc:int32(var_1_377)))
stloc:int32(var_4_3A8, ldloc:int32(var_6_3A4))
stloc:int32(var_5_3AF, add:int32(ldloc:int32(var_5_39A), ldloc:int32(var_4_3A8)))
stloc:int32(var_1_3B3, ldloc:int32(var_5_3AF))
stloc:int32(var_5_3B6, ldloc:int32(var_6_3A4))
stloc:int32(var_1_3BC, add:int32(ldloc:int32(var_1_3B3), ldloc:int32(var_4_3A8)))
stloc:int32(var_4_3BE, ldloc:int32(var_1_3BC))
stloc:int32(var_5_3C5, add:int32(ldloc:int32(var_5_3B6), ldloc:int32(var_4_3BE)))
stloc:int32(var_1_3C9, ldloc:int32(var_5_3C5))
stloc:int32(var_1_3D1, add:int32(ldloc:int32(var_1_3C9), ldloc:int32(var_3_386)))
stloc:int32(var_5_3D6, ldloc:int32(var_1_3D1))
stloc:int32(var_5_3E3, add:int32(ldloc:int32(var_5_3D6), ldc.i4:int32(1518500249)))
stloc:int32(var_5_3E9, add:int32(ldloc:int32(var_5_3E3), ldloc:int32(var_3_386)))
stloc:int32(var_5_3F0, add:int32(ldloc:int32(var_5_3E9), ldloc:int32(var_5_3E9)))
stloc:int32(var_4_3F4, ldloc:int32(var_5_3F0))
stloc:int32(var_5_3F7, ldloc:int32(var_1_3D1))
stloc:int32(var_5_3FE, add:int32(ldloc:int32(var_5_3F7), ldloc:int32(var_4_3F4)))
stloc:int32(var_6_402, ldloc:int32(var_5_3FE))
stloc:int32(var_6_409, add:int32(ldloc:int32(var_6_402), ldloc:int32(var_5_3FE)))
stloc:int32(var_4_40D, ldloc:int32(var_6_409))
stloc:int32(var_3_411, ldloc:int32(var_6_409))
stloc:int32(var_5_417, add:int32(ldloc:int32(var_5_3FE), ldloc:int32(var_4_40D)))
stloc:int32(var_1_41B, ldloc:int32(var_5_417))
stloc:int32(var_5_41E, ldloc:int32(var_6_409))
stloc:int32(var_1_424, add:int32(ldloc:int32(var_1_41B), ldloc:int32(var_4_40D)))
stloc:int32(var_4_426, ldloc:int32(var_1_424))
stloc:int32(var_5_430, add:int32(ldloc:int32(var_5_41E), ldc.i4:int32(1518500249)))
stloc:int32(var_5_437, add:int32(ldloc:int32(var_5_430), ldloc:int32(var_4_426)))
stloc:int32(var_1_43B, ldloc:int32(var_5_437))
stloc:int32(var_1_440, add:int32(ldloc:int32(var_1_43B), ldloc:int32(var_5_437)))
stloc:int32(var_5_445, ldloc:int32(var_1_440))
stloc:int32(var_2_448, ldloc:int32(var_1_440))
stloc:int32(var_5_451, add:int32(ldloc:int32(var_5_445), ldc.i4:int32(1518500249)))
stloc:int32(var_5_458, add:int32(ldloc:int32(var_5_451), ldloc:int32(var_5_451)))
stloc:int32(var_5_45E, ldloc:int32(var_1_440))
stloc:int32(var_5_465, add:int32(ldloc:int32(var_5_45E), ldloc:int32(var_5_45E)))
stloc:int32(var_5_473, add:int32(ldloc:int32(var_5_465), ldc.i4:int32(1518500249)))
stloc:int32(var_5_47A, add:int32(ldloc:int32(var_5_473), ldloc:int32(var_5_473)))
stloc:int32(var_6_47E, ldloc:int32(var_5_47A))
stloc:int32(var_6_484, add:int32(ldloc:int32(var_6_47E), ldloc:int32(var_3_411)))
stloc:int32(var_5_48C, ldloc:int32(var_6_484))
stloc:int32(var_5_496, add:int32(ldloc:int32(var_5_48C), ldc.i4:int32(1518500249)))
stloc:int32(var_5_49A, ldloc:int32(var_6_484))
stloc:int32(var_5_4A0, add:int32(ldloc:int32(var_5_49A), ldloc:int32(var_3_411)))
stloc:int32(var_1_4A4, ldloc:int32(var_5_4A0))
stloc:int32(var_5_4A7, ldloc:int32(var_6_484))
stloc:int32(var_1_4AC, add:int32(ldloc:int32(var_1_4A4), ldloc:int32(var_2_448)))
stloc:int32(var_4_4AE, ldloc:int32(var_1_4AC))
stloc:int32(var_5_4B8, add:int32(ldloc:int32(var_5_4A7), ldc.i4:int32(1518500249)))
stloc:int32(var_5_4BE, add:int32(ldloc:int32(var_5_4B8), ldloc:int32(var_2_448)))
stloc:int32(var_1_4C2, ldloc:int32(var_5_4BE))
stloc:int32(var_5_4C4, ldloc:int32(var_1_4C2))
stloc:int32(var_1_4CA, add:int32(ldloc:int32(var_1_4C2), ldloc:int32(var_4_4AE)))
stloc:int32(var_4_4CC, ldloc:int32(var_1_4CA))
stloc:int32(var_5_4D3, add:int32(ldloc:int32(var_5_4C4), ldloc:int32(var_4_4CC)))
stloc:int32(var_5_4DD, add:int32(ldloc:int32(var_5_4D3), ldloc:int32(var_5_4D3)))
stloc:int32(var_5_4E0, ldloc:int32(var_1_4CA))
stloc:int32(var_5_4EE, add:int32(ldloc:int32(var_5_4E0), ldc.i4:int32(1518500249)))
stloc:int32(var_5_4F5, add:int32(ldloc:int32(var_5_4EE), ldloc:int32(var_5_4EE)))
stloc:int32(var_6_4F9, ldloc:int32(var_5_4F5))
stloc:int32(var_5_4FC, ldloc:int32(var_1_4CA))
stloc:int32(var_6_503, add:int32(ldloc:int32(var_6_4F9), ldloc:int32(var_5_4FC)))
stloc:int32(var_3_507, ldloc:int32(var_6_503))
stloc:int32(var_5_513, add:int32(ldloc:int32(var_5_4FC), ldc.i4:int32(1518500249)))
stloc:int32(var_5_51A, add:int32(ldloc:int32(var_5_513), ldloc:int32(var_5_513)))
stloc:int32(var_4_51E, ldloc:int32(var_5_51A))
stloc:int32(var_4_525, add:int32(ldloc:int32(var_4_51E), ldloc:int32(var_4_51E)))
stloc:int32(var_5_52C, ldloc:int32(var_2_448))
stloc:int32(var_5_536, add:int32(ldloc:int32(var_5_52C), ldc.i4:int32(1548603684)))
stloc:int32(var_4_53A, ldloc:int32(var_5_536))
stloc:int32(var_5_541, add:int32(ldloc:int32(var_5_536), ldloc:int32(var_5_536)))
stloc:int32(var_1_545, ldloc:int32(var_5_541))
stloc:int32(var_1_54A, add:int32(ldloc:int32(var_1_545), ldloc:int32(var_5_541)))
stloc:int32(var_5_54C, ldloc:int32(var_1_54A))
stloc:int32(var_5_553, add:int32(ldloc:int32(var_5_54C), ldloc:int32(var_4_53A)))
stloc:int32(var_5_556, ldloc:int32(var_1_54A))
stloc:int32(var_5_55D, add:int32(ldloc:int32(var_5_556), ldloc:int32(var_5_556)))
stloc:int32(var_5_564, ldloc:int32(var_3_507))
stloc:int32(var_4_568, ldloc:int32(var_5_564))
stloc:int32(var_5_56F, add:int32(ldloc:int32(var_5_564), ldloc:int32(var_4_568)))
stloc:int32(var_4_573, ldloc:int32(var_5_56F))
stloc:int32(var_5_57A, add:int32(ldloc:int32(var_5_56F), ldloc:int32(var_5_56F)))
stloc:int32(var_5_581, add:int32(ldloc:int32(var_5_57A), ldloc:int32(var_4_573)))
stloc:int32(var_5_585, ldloc:int32(var_4_573))
stloc:int32(var_5_58C, add:int32(ldloc:int32(var_5_585), ldloc:int32(var_5_585)))
stloc:int32(var_5_593, add:int32(ldloc:int32(var_5_58C), ldloc:int32(var_4_573)))
stloc:int32(var_1_597, ldloc:int32(var_5_593))
stloc:int32(var_1_59C, add:int32(ldloc:int32(var_1_597), ldloc:int32(var_5_593)))
stloc:int32(var_5_5A9, add:int32(ldloc:int32(var_5_593), ldc.i4:int32(1548603684)))
stloc:int32(var_4_5AD, ldloc:int32(var_5_5A9))
stloc:int32(var_5_5B4, add:int32(ldloc:int32(var_5_5A9), ldloc:int32(var_5_5A9)))
stloc:int32(var_5_5BB, add:int32(ldloc:int32(var_5_5B4), ldloc:int32(var_4_5AD)))
stloc:int32(var_4_5BE, ldloc:int32(var_1_59C))
stloc:int32(var_5_5C5, add:int32(ldloc:int32(var_5_5BB), ldloc:int32(var_4_5BE)))
stloc:int32(var_5_5CC, add:int32(ldloc:int32(var_5_5C5), ldloc:int32(var_5_5C5)))
stloc:int32(var_5_5D3, add:int32(ldloc:int32(var_5_5CC), ldloc:int32(var_4_5BE)))
stloc:int32(var_1_5D7, ldloc:int32(var_5_5D3))
stloc:int32(var_4_5DA, ldloc:int32(var_5_5D3))
stloc:int32(var_1_5E0, add:int32(ldloc:int32(var_1_5D7), ldloc:int32(var_5_5D3)))
stloc:int32(var_5_5E6, add:int32(ldloc:int32(var_5_5D3), ldloc:int32(var_4_5DA)))
stloc:int32(var_4_5EA, ldloc:int32(var_5_5E6))
stloc:int32(var_5_5F1, add:int32(ldloc:int32(var_5_5E6), ldloc:int32(var_4_5EA)))
stloc:int32(var_4_5F4, ldloc:int32(var_1_5E0))
stloc:int32(var_5_5FB, add:int32(ldloc:int32(var_5_5F1), ldloc:int32(var_4_5F4)))
stloc:int32(var_5_602, add:int32(ldloc:int32(var_5_5FB), ldloc:int32(var_5_5FB)))
stloc:int32(var_5_606, ldloc:int32(var_4_5F4))
stloc:int32(var_5_60D, add:int32(ldloc:int32(var_5_606), ldloc:int32(var_4_5F4)))
stloc:int32(var_1_611, ldloc:int32(var_5_60D))
stloc:int32(var_1_616, add:int32(ldloc:int32(var_1_611), ldloc:int32(var_5_60D)))
stloc:int32(var_5_618, ldloc:int32(var_1_616))
stloc:int32(var_4_61C, ldloc:int32(var_5_618))
stloc:int32(var_5_623, add:int32(ldloc:int32(var_5_618), ldloc:int32(var_4_61C)))
stloc:int32(var_4_627, ldloc:int32(var_5_623))
stloc:int32(var_5_62E, add:int32(ldloc:int32(var_5_623), ldloc:int32(var_4_627)))
stloc:int32(var_4_631, ldloc:int32(var_1_616))
stloc:int32(var_5_638, add:int32(ldloc:int32(var_5_62E), ldloc:int32(var_4_631)))
stloc:int32(var_5_63F, add:int32(ldloc:int32(var_5_638), ldloc:int32(var_5_638)))
stloc:int32(var_5_643, ldloc:int32(var_4_631))
stloc:int32(var_3_647, ldloc:int32(var_5_643))
stloc:int32(var_5_64D, add:int32(ldloc:int32(var_5_643), ldloc:int32(var_4_631)))
stloc:int32(var_1_651, ldloc:int32(var_5_64D))
stloc:int32(var_4_654, ldloc:int32(var_5_64D))
stloc:int32(var_1_65A, add:int32(ldloc:int32(var_1_651), ldloc:int32(var_5_64D)))
stloc:int32(var_5_663, add:int32(ldloc:int32(var_5_64D), ldc.i4:int32(1548603684)))
stloc:int32(var_5_66A, add:int32(ldloc:int32(var_5_663), ldloc:int32(var_5_663)))
stloc:int32(var_5_671, add:int32(ldloc:int32(var_5_66A), ldloc:int32(var_4_654)))
stloc:int32(var_4_674, ldloc:int32(var_3_647))
stloc:int32(var_5_67D, ldloc:int32(var_3_647))
stloc:int32(var_5_684, add:int32(ldloc:int32(var_5_67D), ldloc:int32(var_4_674)))
stloc:int32(var_2_688, ldloc:int32(var_5_684))
stloc:int32(var_4_691, add:int32(ldloc:int32(var_4_674), ldc.i4:int32(1859775393)))
stloc:int32(var_2_697, add:int32(ldloc:int32(var_2_688), ldloc:int32(var_5_684)))
stloc:int32(var_4_69C, add:int32(ldloc:int32(var_4_691), ldloc:int32(var_3_647)))
stloc:int32(var_5_6A0, ldloc:int32(var_6_503))
stloc:int32(var_4_6A7, add:int32(ldloc:int32(var_4_69C), ldloc:int32(var_5_6A0)))
stloc:int32(var_5_6B1, add:int32(ldloc:int32(var_5_6A0), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6B5, ldloc:int32(var_4_6A7))
stloc:int32(var_6_6BC, add:int32(ldloc:int32(var_6_6B5), ldloc:int32(var_5_6B1)))
stloc:int32(var_5_6C0, ldloc:int32(var_6_6BC))
stloc:int32(var_6_6C4, ldloc:int32(var_4_6A7))
stloc:int32(var_5_6CB, add:int32(ldloc:int32(var_5_6C0), ldloc:int32(var_5_6C0)))
stloc:int32(var_5_6D5, add:int32(ldloc:int32(var_5_6CB), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6DC, add:int32(ldloc:int32(var_6_6C4), ldloc:int32(var_5_6D5)))
stloc:int32(var_5_6E0, ldloc:int32(var_4_6A7))
stloc:int32(var_4_6E4, ldloc:int32(var_6_6DC))
stloc:int32(var_4_6EB, add:int32(ldloc:int32(var_4_6E4), ldloc:int32(var_5_6E0)))
stloc:int32(var_5_6F5, add:int32(ldloc:int32(var_5_6E0), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6F9, ldloc:int32(var_5_6F5))
stloc:int32(var_6_700, add:int32(ldloc:int32(var_6_6F9), ldloc:int32(var_5_6F5)))
stloc:int32(var_4_704, ldloc:int32(var_6_700))
stloc:int32(var_4_70B, add:int32(ldloc:int32(var_4_704), ldloc:int32(var_5_6F5)))
stloc:int32(var_6_70F, ldloc:int32(var_4_70B))
stloc:int32(var_5_719, add:int32(ldloc:int32(var_5_6F5), ldc.i4:int32(1859775393)))
stloc:int32(var_6_720, add:int32(ldloc:int32(var_6_70F), ldloc:int32(var_5_719)))
stloc:int32(var_5_728, ldloc:int32(var_6_720))
stloc:int32(var_5_72F, add:int32(ldloc:int32(var_5_728), ldloc:int32(var_5_728)))
stloc:int32(var_6_733, ldloc:int32(var_4_70B))
stloc:int32(var_5_73D, add:int32(ldloc:int32(var_5_72F), ldc.i4:int32(1859775393)))
stloc:int32(var_6_744, add:int32(ldloc:int32(var_6_733), ldloc:int32(var_5_73D)))
stloc:int32(var_5_748, ldloc:int32(var_4_70B))
stloc:int32(var_4_74C, ldloc:int32(var_6_744))
stloc:int32(var_4_753, add:int32(ldloc:int32(var_4_74C), ldloc:int32(var_5_748)))
stloc:int32(var_6_757, ldloc:int32(var_5_748))
stloc:int32(var_5_75B, ldloc:int32(var_4_753))
stloc:int32(var_6_765, add:int32(ldloc:int32(var_6_757), ldc.i4:int32(1859775393)))
stloc:int32(var_6_76C, add:int32(ldloc:int32(var_6_765), ldloc:int32(var_5_75B)))
stloc:int32(var_4_770, ldloc:int32(var_6_76C))
stloc:int32(var_6_774, ldloc:int32(var_4_770))
stloc:int32(var_4_77B, add:int32(ldloc:int32(var_4_770), ldloc:int32(var_5_75B)))
stloc:int32(var_3_77F, ldloc:int32(var_4_77B))
stloc:int32(var_6_788, add:int32(ldloc:int32(var_6_774), ldc.i4:int32(1859775393)))
stloc:int32(var_6_78F, add:int32(ldloc:int32(var_6_788), ldloc:int32(var_5_75B)))
stloc:int32(var_5_793, ldloc:int32(var_6_78F))
stloc:int32(var_6_797, ldloc:int32(var_4_77B))
stloc:int32(var_5_79E, add:int32(ldloc:int32(var_5_793), ldloc:int32(var_5_793)))
stloc:int32(var_6_7A8, add:int32(ldloc:int32(var_6_797), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7AF, add:int32(ldloc:int32(var_6_7A8), ldloc:int32(var_5_79E)))
stloc:int32(var_5_7B3, ldloc:int32(var_6_7AF))
stloc:int32(var_5_7BA, add:int32(ldloc:int32(var_5_7B3), ldloc:int32(var_5_7B3)))
stloc:int32(var_6_7BE, ldloc:int32(var_5_7BA))
stloc:int32(var_5_7C8, add:int32(ldloc:int32(var_5_7BA), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7CF, add:int32(ldloc:int32(var_6_7BE), ldloc:int32(var_5_7C8)))
stloc:int32(var_5_7D3, ldloc:int32(var_6_7CF))
stloc:int32(var_5_7DA, add:int32(ldloc:int32(var_5_7D3), ldloc:int32(var_5_7D3)))
stloc:int32(var_6_7DE, ldloc:int32(var_5_7DA))
stloc:int32(var_6_7E8, add:int32(ldloc:int32(var_6_7DE), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7EF, add:int32(ldloc:int32(var_6_7E8), ldloc:int32(var_5_7DA)))
stloc:int32(var_4_7F3, ldloc:int32(var_6_7EF))
stloc:int32(var_6_7F7, ldloc:int32(var_5_7DA))
stloc:int32(var_4_7FD, add:int32(ldloc:int32(var_4_7F3), ldloc:int32(var_3_77F)))
stloc:int32(var_8_806, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(6)))
stloc:int32(var_8_810, add:int32(ldloc:int32(var_8_806), ldc.i4:int32(1859775393)))
stloc:int32(var_6_81A, add:int32(ldloc:int32(var_6_7F7), ldc.i4:int32(1859775393)))
stloc:int32(var_6_820, add:int32(ldloc:int32(var_6_81A), ldloc:int32(var_3_77F)))
stloc:int32(var_4_824, ldloc:int32(var_6_820))
stloc:int32(var_6_828, ldloc:int32(var_4_824))
stloc:int32(var_4_82F, add:int32(ldloc:int32(var_4_824), ldloc:int32(var_5_7DA)))
stloc:int32(var_6_836, add:int32(ldloc:int32(var_6_828), ldloc:int32(var_8_810)))
stloc:int32(var_8_83A, ldloc:int32(var_4_82F))
stloc:int32(var_6_841, add:int32(ldloc:int32(var_6_836), ldloc:int32(var_5_7DA)))
stloc:int32(var_5_845, ldloc:int32(var_6_841))
stloc:int32(var_6_849, ldloc:int32(var_4_82F))
stloc:int32(var_5_850, add:int32(ldloc:int32(var_5_845), ldloc:int32(var_5_845)))
stloc:int32(var_5_85A, add:int32(ldloc:int32(var_5_850), ldc.i4:int32(1859775393)))
stloc:int32(var_6_861, add:int32(ldloc:int32(var_6_849), ldloc:int32(var_5_85A)))
stloc:int32(var_5_865, ldloc:int32(var_4_82F))
stloc:int32(var_4_869, ldloc:int32(var_6_861))
stloc:int32(var_4_870, add:int32(ldloc:int32(var_4_869), ldloc:int32(var_5_865)))
stloc:int32(var_9_879, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(6)))
stloc:int32(var_6_87D, ldloc:int32(var_5_865))
stloc:int32(var_4_881, ldloc:int32(var_5_865))
stloc:int32(var_6_88B, add:int32(ldloc:int32(var_6_87D), ldc.i4:int32(1859775393)))
stloc:int32(var_6_892, add:int32(ldloc:int32(var_6_88B), ldloc:int32(var_5_865)))
stloc:int32(var_3_896, ldloc:int32(var_6_892))
stloc:int32(var_6_899, ldloc:int32(var_4_881))
stloc:int32(var_3_89F, add:int32(ldloc:int32(var_3_896), ldloc:int32(var_8_83A)))
stloc:int32(var_6_8A8, add:int32(ldloc:int32(var_6_899), ldc.i4:int32(1859775393)))
stloc:int32(var_6_8AF, add:int32(ldloc:int32(var_6_8A8), ldloc:int32(var_9_879)))
stloc:int32(var_6_8B6, add:int32(ldloc:int32(var_6_8AF), ldloc:int32(var_8_83A)))
stloc:int32(var_4_8BA, ldloc:int32(var_6_8B6))
stloc:int32(var_4_8C5, add:int32(ldloc:int32(var_4_8BA), ldloc:int32(var_5_865)))
stloc:int32(var_5_8C8, ldloc:int32(var_2_697))
stloc:int32(var_5_8D2, add:int32(ldloc:int32(var_5_8C8), ldc.i4:int32(1836072691)))
stloc:int32(var_6_8D6, ldloc:int32(var_5_8D2))
stloc:int32(var_6_8DD, add:int32(ldloc:int32(var_6_8D6), ldloc:int32(var_5_8D2)))
stloc:int32(var_5_8E1, ldloc:int32(var_6_8DD))
stloc:int32(var_6_8E4, ldloc:int32(var_2_697))
stloc:int32(var_5_8EA, add:int32(ldloc:int32(var_5_8E1), ldloc:int32(var_3_89F)))
stloc:int32(var_6_8F4, add:int32(ldloc:int32(var_6_8E4), ldc.i4:int32(1836072691)))
stloc:int32(var_6_8FA, add:int32(ldloc:int32(var_6_8F4), ldloc:int32(var_3_89F)))
stloc:int32(var_5_8FE, ldloc:int32(var_6_8FA))
stloc:int32(var_6_902, ldloc:int32(var_5_8FE))
stloc:int32(var_5_908, add:int32(ldloc:int32(var_5_8FE), ldloc:int32(var_2_697)))
stloc:int32(var_6_912, add:int32(ldloc:int32(var_6_902), ldc.i4:int32(1836072691)))
stloc:int32(var_6_918, add:int32(ldloc:int32(var_6_912), ldloc:int32(var_2_697)))
stloc:int32(var_4_91C, ldloc:int32(var_6_918))
stloc:int32(var_8_920, ldloc:int32(var_5_908))
stloc:int32(var_4_927, add:int32(ldloc:int32(var_4_91C), ldloc:int32(var_5_908)))
stloc:int32(var_6_92B, ldloc:int32(var_5_908))
stloc:int32(var_5_935, add:int32(ldloc:int32(var_5_908), ldc.i4:int32(1836072691)))
stloc:int32(var_6_93C, add:int32(ldloc:int32(var_6_92B), ldloc:int32(var_5_935)))
stloc:int32(var_5_940, ldloc:int32(var_6_93C))
stloc:int32(var_5_947, add:int32(ldloc:int32(var_5_940), ldloc:int32(var_5_940)))
stloc:int32(var_6_94B, ldloc:int32(var_4_927))
stloc:int32(var_5_955, add:int32(ldloc:int32(var_5_947), ldc.i4:int32(1836072691)))
stloc:int32(var_6_95C, add:int32(ldloc:int32(var_6_94B), ldloc:int32(var_5_955)))
stloc:int32(var_5_964, ldloc:int32(var_6_95C))
stloc:int32(var_5_96B, add:int32(ldloc:int32(var_5_964), ldloc:int32(var_8_920)))
stloc:int32(var_6_96F, ldloc:int32(var_5_96B))
stloc:int32(var_8_979, add:int32(ldloc:int32(var_8_920), ldc.i4:int32(1836072691)))
stloc:int32(var_6_980, add:int32(ldloc:int32(var_6_96F), ldloc:int32(var_8_979)))
stloc:int32(var_8_984, ldloc:int32(var_5_96B))
stloc:int32(var_4_988, ldloc:int32(var_6_980))
stloc:int32(var_6_98C, ldloc:int32(var_5_96B))
stloc:int32(var_4_993, add:int32(ldloc:int32(var_4_988), ldloc:int32(var_5_96B)))
stloc:int32(var_5_99D, add:int32(ldloc:int32(var_5_96B), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9A4, add:int32(ldloc:int32(var_6_98C), ldloc:int32(var_5_99D)))
stloc:int32(var_5_9A8, ldloc:int32(var_6_9A4))
stloc:int32(var_6_9AC, ldloc:int32(var_4_993))
stloc:int32(var_5_9B3, add:int32(ldloc:int32(var_5_9A8), ldloc:int32(var_5_9A8)))
stloc:int32(var_6_9BD, add:int32(ldloc:int32(var_6_9AC), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9C4, add:int32(ldloc:int32(var_6_9BD), ldloc:int32(var_5_9B3)))
stloc:int32(var_5_9C8, ldloc:int32(var_6_9C4))
stloc:int32(var_5_9CF, add:int32(ldloc:int32(var_5_9C8), ldloc:int32(var_8_984)))
stloc:int32(var_5_9D3, ldloc:int32(var_4_993))
stloc:int32(var_6_9D7, ldloc:int32(var_5_9D3))
stloc:int32(var_8_9E1, add:int32(ldloc:int32(var_8_984), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9E8, add:int32(ldloc:int32(var_6_9D7), ldloc:int32(var_8_9E1)))
stloc:int32(var_9_9FA, add:int32(ldloc:int32(var_9_879), ldc.i4:int32(1836072691)))
}
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: 0x06009F45 RID: 40773 RVA: 0x0024D198 File Offset: 0x0024B398
[Token(Token = "0x6009F45")]
[Address(RVA = "0x2243AC0", Offset = "0x22424C0", VA = "0x182243AC0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F45)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD160Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD160Digest(var_0_06, newobj:RipeMD160Digest(RipeMD160Digest::.ctor, ldloc:RipeMD160Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD160Digest::X, ldloc:RipeMD160Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD160Digest::CopyIn, ldloc:RipeMD160Digest(var_0_06), ldloc:RipeMD160Digest(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: 0x06009F46 RID: 40774 RVA: 0x0024D1C4 File Offset: 0x0024B3C4
[Token(Token = "0x6009F46")]
[Address(RVA = "0x22463B0", Offset = "0x2244DB0", VA = "0x1822463B0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068A8 RID: 26792
[Token(Token = "0x40068A8")]
private const int DigestLength = 20;
// Token: 0x040068A9 RID: 26793
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068A9")]
private int H0;
// Token: 0x040068AA RID: 26794
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068AA")]
private int H1;
// Token: 0x040068AB RID: 26795
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068AB")]
private int H2;
// Token: 0x040068AC RID: 26796
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068AC")]
private int H3;
// Token: 0x040068AD RID: 26797
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068AD")]
private int H4;
// Token: 0x040068AE RID: 26798
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068AE")]
private int[] X;
// Token: 0x040068AF RID: 26799
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068AF")]
private int xOff;
}
}
@@ -0,0 +1,874 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001714 RID: 5908
[Token(Token = "0x2001714")]
[StructLayout(3)]
public class RipeMD256Digest : GeneralDigest
{
// Token: 0x17001918 RID: 6424
// (get) Token: 0x06009F47 RID: 40775 RVA: 0x0024D1DC File Offset: 0x0024B3DC
[Token(Token = "0x17001918")]
public override string AlgorithmName
{
[Token(Token = "0x6009F47")]
[Address(RVA = "0x2248470", Offset = "0x2246E70", VA = "0x182248470", Slot = "17")]
get
{
return "RIPEMD256";
}
}
// Token: 0x06009F48 RID: 40776 RVA: 0x0024D1F0 File Offset: 0x0024B3F0
[Token(Token = "0x6009F48")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x06009F49 RID: 40777 RVA: 0x0024D200 File Offset: 0x0024B400
[Token(Token = "0x6009F49")]
[Address(RVA = "0x22483A0", Offset = "0x2246DA0", VA = "0x1822483A0")]
public RipeMD256Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F4A RID: 40778 RVA: 0x0024D22C File Offset: 0x0024B42C
[Token(Token = "0x6009F4A")]
[Address(RVA = "0x2248400", Offset = "0x2246E00", VA = "0x182248400")]
public RipeMD256Digest(RipeMD256Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F4B RID: 40779 RVA: 0x0024D258 File Offset: 0x0024B458
[Token(Token = "0x6009F4B")]
[Address(RVA = "0x22465F0", Offset = "0x2244FF0", VA = "0x1822465F0")]
private void CopyIn(RipeMD256Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int h6 = t.H5;
this.H5 = h6;
int h7 = t.H6;
this.H6 = h7;
int h8 = t.H7;
this.H7 = h8;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x06009F4C RID: 40780 RVA: 0x0024D328 File Offset: 0x0024B528
[Token(Token = "0x6009F4C")]
[Address(RVA = "0x2248130", Offset = "0x2246B30", VA = "0x182248130", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x06009F4D RID: 40781 RVA: 0x0024D374 File Offset: 0x0024B574
[Token(Token = "0x6009F4D")]
[Address(RVA = "0x22480B0", Offset = "0x2246AB0", VA = "0x1822480B0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x06009F4E RID: 40782 RVA: 0x0024D3AC File Offset: 0x0024B5AC
[Token(Token = "0x6009F4E")]
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x06009F4F RID: 40783 RVA: 0x0024D3C4 File Offset: 0x0024B5C4
[Token(Token = "0x6009F4F")]
[Address(RVA = "0x2246720", Offset = "0x2245120", VA = "0x182246720", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
int h5 = this.H5;
num = h5;
output[0] = (byte)num;
num = h5;
output[0] = (byte)num;
int h6 = this.H6;
num = h6;
output[0] = (byte)num;
num = h6;
output[0] = (byte)num;
int h7 = this.H7;
num = h7;
output[0] = (byte)num;
num = h7;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x06009F50 RID: 40784 RVA: 0x0024D4B4 File Offset: 0x0024B6B4
[Token(Token = "0x6009F50")]
[Address(RVA = "0x22482F0", Offset = "0x2246CF0", VA = "0x1822482F0", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)1985229328L);
this.H5 = (int)((ulong)4275878552L);
this.H6 = (int)((ulong)2309737967L);
this.H7 = (int)((ulong)19088743L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x06009F51 RID: 40785 RVA: 0x0024D570 File Offset: 0x0024B770
[Token(Token = "0x6009F51")]
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x06009F52 RID: 40786 RVA: 0x0024D580 File Offset: 0x0024B780
[Token(Token = "0x6009F52")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x06009F53 RID: 40787 RVA: 0x0024D590 File Offset: 0x0024B790
[Token(Token = "0x6009F53")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x06009F54 RID: 40788 RVA: 0x0024D5A0 File Offset: 0x0024B7A0
[Token(Token = "0x6009F54")]
[Address(RVA = "0x2242270", Offset = "0x2240C70", VA = "0x182242270")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x06009F55 RID: 40789 RVA: 0x0024D5B0 File Offset: 0x0024B7B0
[Token(Token = "0x6009F55")]
[Address(RVA = "0x2242300", Offset = "0x2240D00", VA = "0x182242300")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x06009F56 RID: 40790 RVA: 0x0024D5C0 File Offset: 0x0024B7C0
[Token(Token = "0x6009F56")]
[Address(RVA = "0x2242200", Offset = "0x2240C00", VA = "0x182242200")]
private int F1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x06009F57 RID: 40791 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F57")]
[Address(RVA = "0x2242230", Offset = "0x2240C30", VA = "0x182242230")]
private int F2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F58 RID: 40792 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F58")]
[Address(RVA = "0x2242280", Offset = "0x2240C80", VA = "0x182242280")]
private int F3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F59 RID: 40793 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F59")]
[Address(RVA = "0x22422C0", Offset = "0x2240CC0", VA = "0x1822422C0")]
private int F4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F5A RID: 40794 RVA: 0x0024D5D0 File Offset: 0x0024B7D0
[Token(Token = "0x6009F5A")]
[Address(RVA = "0x2242200", Offset = "0x2240C00", VA = "0x182242200")]
private int FF1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x06009F5B RID: 40795 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F5B")]
[Address(RVA = "0x2242310", Offset = "0x2240D10", VA = "0x182242310")]
private int FF2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F5C RID: 40796 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F5C")]
[Address(RVA = "0x2242350", Offset = "0x2240D50", VA = "0x182242350")]
private int FF3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F5D RID: 40797 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F5D")]
[Address(RVA = "0x2242390", Offset = "0x2240D90", VA = "0x182242390")]
private int FF4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F5E RID: 40798 RVA: 0x0024D5E0 File Offset: 0x0024B7E0
[Token(Token = "0x6009F5E")]
[Address(RVA = "0x2246BC0", Offset = "0x22455C0", VA = "0x182246BC0", Slot = "16")]
internal override void ProcessBlock()
{
int num = this.H4;
int num2 = this.H5;
int num3 = this.H0;
int num4 = this.H1;
int num5 = this.H2;
int num6 = this.H3;
int num7 = this.H6;
int num8 = this.H7;
int[] x = this.X;
int num9 = x.Length;
num6 += num3;
num3 = num6;
num6 = num5;
num6 += num6;
num6 += num5;
num5 = num6;
num6 = num5;
num6 += num4;
num4 = num6;
num5 += num3;
num3 = num5;
num6 += num6;
num6 += num6;
num5 = num6;
num6 = num5;
num6 += num4;
num4 = num6;
num5 += num3;
num3 = num5;
num6 += num6;
num6 += num6;
int num10 = x[5];
num5 = num6;
num6 = num5;
num6 += num10;
num6 += num4;
num4 = num6;
num5 += num3;
int num11 = x[6];
num6 += num11;
num6 += num6;
int num12 = x[7];
num6 += num12;
num6 += num6;
int num13 = x[7];
num6 += num13;
num6 += num4;
num9 = num8;
num += 1352829926;
num += num9;
num3 = num;
num9 = num7;
num = num7;
num9 += num12;
num += num9;
num9 = num2;
num4 = num;
num = num4;
num += num9;
num9 = num3;
num12 = num;
num = num12;
num += num9;
num9 = num4;
num6 = num;
num = num4;
num += num9;
num9 = num12;
num = num12;
num += num9;
num9 = num6;
num4 = num;
num = num4;
num9 += num10;
num += num9;
num2 = num;
num = num2;
num9 = num4;
num += 1352829926;
num += num6;
num12 = num;
num = num4;
num9 += num11;
num += num9;
num9 = num2;
num3 = num;
num = num2;
num += num9;
num9 = num12;
num4 = num;
num = num4;
num9 += num13;
num += num9;
num9 = num3;
num2 = num;
num = num2;
num += num9;
num9 = num4;
num12 = num;
num = num4;
num += num9;
num3 = num;
num = num2;
num += 1352829926;
num9 = num12;
num += num4;
num10 = num;
num = num10;
num += num9;
num11 = num;
num9 = num3;
num = num11;
num += num9;
num13 = num;
num = num6;
num += num9;
num = num9;
num += 1518500249;
num += num6;
num3 = num;
num = num3;
num += 1518500249;
num += num6;
num4 = num;
num = num3;
num9 = num4;
num += num9;
num9 = num;
num = num4;
num += num9;
num12 = num;
num = num9;
num9 = num12;
num += num9;
num3 = num;
num9 = num3;
num = num3;
num += num9;
num6 = num;
num = num3;
num9 = num6;
num += num9;
num4 = num;
num = num6;
num9 = num4;
num += num9;
num9 = num;
num = num4;
num += num9;
num3 = num;
num = num3;
num += 1518500249;
num += num6;
num12 = num;
num = num3;
num9 = num12;
num += num9;
num4 = num;
num = num12;
num9 = num4;
num += 1518500249;
num += num9;
num6 = num;
num = num4;
num9 = num6;
int num14 = x[5];
num += num9;
num6 = num;
num = num6;
num += 1518500249;
num += num14;
num += num12;
num7 = num;
num8 = num7;
num6 = num8;
num = num11;
num6 += 1518500249;
num6 += num4;
num3 += 1548603684;
num += num3;
num14 += 1548603684;
num3 = num;
num = num13;
num += num14;
num += num10;
num12 = num;
num = num3;
num += 1548603684;
num += num11;
num14 = num;
num = num12;
num3 += 1548603684;
num += 1548603684;
num += num13;
num4 = num;
num = num14;
num12 += 1548603684;
num += num3;
num3 = num;
num = num4;
num14 += 1548603684;
num += num12;
num12 = num;
num = num3;
num += num14;
num9 = num;
num = num12;
num += 1548603684;
num += num4;
num3 += 1548603684;
num14 = num;
num = num9;
num12 += 1548603684;
num += num3;
num3 = num;
num = num14;
num += num12;
num12 = num;
num = num3;
num14 += 1548603684;
num += 1548603684;
num += num9;
num4 = num;
num = num12;
num3 += 1548603684;
num += num14;
num14 = num;
num = num4;
num += num3;
num11 = num;
num = num14;
num4 += 1548603684;
num += 1548603684;
num += num12;
num10 = num;
num = num11;
num += num4;
num13 = num6;
num = num10;
num += 1548603684;
num += num14;
num4 = num;
num += num8;
num12 = num;
num = num4;
num += 1859775393;
num += num6;
num3 = num;
num = num12;
num4 += 1859775393;
num += 1859775393;
num += num7;
num14 = num;
num = num3;
num12 += 1859775393;
num += num4;
num4 = num;
num = num14;
num3 += 1859775393;
num += num12;
num12 = num;
num = num4;
num += num3;
num3 = num;
num = num12;
num4 += 1859775393;
num += 1859775393;
num += num14;
num9 = num;
num = num3;
num += num4;
num6 = num;
num = num9;
num3 += 1859775393;
num += 1859775393;
num += num12;
num4 = num;
num = num6;
num += num3;
num14 = num;
num = num4;
num += 1859775393;
num += num9;
num3 = num;
num = num14;
num += 1859775393;
num += num6;
num12 = num;
num = num3;
num += 1859775393;
num += num4;
num7 = num;
num = num12;
num3 += 1859775393;
num14 += 1859775393;
num += num14;
int num15 = x[2];
num6 = num;
num = num7;
num8 = num6;
num += num15;
num15 += 1836072691;
num += num3;
num3 = num;
num = num8;
num3 += num;
num = num3;
num += 1836072691;
num += num11;
num = num13;
num += num15;
num += num10;
num15 = num;
num3 = num15;
num = num15;
num += num3;
num3 = num;
num = num15;
num += 1836072691;
num += num13;
num9 = num;
num = num3;
num3 = num9;
num += num3;
num12 = num;
num = num9;
num3 = num12;
num += num3;
num6 = num;
num3 = num6;
num = num6;
num += num3;
num15 = num;
num = num6;
num3 = num15;
num += num3;
num3 = num;
num = num15;
num += num3;
num = num3;
num += 1836072691;
num += num6;
num9 = num;
num3 = num9;
num = num9;
num += num3;
num15 = num;
num = num9;
num3 = num15;
num += num3;
num3 = num;
num = num15;
num += num3;
num10 = num;
num = num3;
num += 1836072691;
num += num9;
num11 = num;
num3 = num11;
num = num11;
num += num3;
num15 = num;
num = num11;
num12 = num15;
num3 = num12;
num += num3;
num13 = num;
num = num6;
num += num8;
num = num15;
num += num12;
num9 = num;
num = num9;
num += -1894007588;
num += num15;
num6 = num;
num = num6;
num += -1894007588;
num += num6;
num8 = num;
num = num9;
num3 = num6;
num += -1894007588;
num += num3;
num = num6;
num3 = num8;
num += -1894007588;
num += num9;
num15 = num;
num = num15;
num += num3;
num6 = num;
num = num6;
num += -1894007588;
num += num8;
num3 = num;
num = num15;
num += num3;
num3 = num6;
num9 = num;
num = num6;
num += num3;
num12 = num;
num = num12;
num3 = num9;
num += -1894007588;
num += num6;
num15 = num;
num = num15;
num += num3;
num = num12;
num += -1894007588;
num += num9;
num3 = num15;
num = num15;
num += -1894007588;
num += num12;
num6 = num;
num = num6;
num += num3;
num3 = num6;
num8 += num3;
num = num3;
num += num10;
num15 = num;
num = num3;
num += num11;
num6 = num;
num = num6;
num += num3;
num3 = num;
num = num3;
num += num13;
num9 = num;
num3 += num15;
num12 = num3;
num = num3;
num += num6;
num15 = num;
num = num15;
num3 = num15;
num += num3;
num6 = num;
num = num3;
num += num9;
num3 = num;
num = num6;
num3 += num12;
num12 = num3;
num += num15;
num15 = num;
num = num15;
num3 = num15;
num += num6;
num9 = num;
num = num3;
num += num3;
num3 = num;
num = num9;
num3 += num12;
num6 = num3;
num += num15;
num15 = num;
num = num15;
num3 = num15;
num += num9;
num3 += num6;
num3 += num3;
if (0 != x.Length)
{
}
}
// Token: 0x06009F5F RID: 40799 RVA: 0x0024DE3C File Offset: 0x0024C03C
[Token(Token = "0x6009F5F")]
[Address(RVA = "0x2246680", Offset = "0x2245080", VA = "0x182246680", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F5F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD256Digest(var_0_06, newobj:RipeMD256Digest(RipeMD256Digest::.ctor, ldloc:RipeMD256Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD256Digest::X, ldloc:RipeMD256Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD256Digest::CopyIn, ldloc:RipeMD256Digest(var_0_06), ldloc:RipeMD256Digest(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: 0x06009F60 RID: 40800 RVA: 0x0024DE68 File Offset: 0x0024C068
[Token(Token = "0x6009F60")]
[Address(RVA = "0x2248250", Offset = "0x2246C50", VA = "0x182248250", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068B0 RID: 26800
[Token(Token = "0x40068B0")]
private const int DigestLength = 32;
// Token: 0x040068B1 RID: 26801
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068B1")]
private int H0;
// Token: 0x040068B2 RID: 26802
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068B2")]
private int H1;
// Token: 0x040068B3 RID: 26803
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068B3")]
private int H2;
// Token: 0x040068B4 RID: 26804
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068B4")]
private int H3;
// Token: 0x040068B5 RID: 26805
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068B5")]
private int H4;
// Token: 0x040068B6 RID: 26806
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40068B6")]
private int H5;
// Token: 0x040068B7 RID: 26807
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068B7")]
private int H6;
// Token: 0x040068B8 RID: 26808
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
[Token(Token = "0x40068B8")]
private int H7;
// Token: 0x040068B9 RID: 26809
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068B9")]
private int[] X;
// Token: 0x040068BA RID: 26810
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40068BA")]
private int xOff;
}
}
@@ -0,0 +1,864 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001715 RID: 5909
[Token(Token = "0x2001715")]
[StructLayout(3)]
public class RipeMD320Digest : GeneralDigest
{
// Token: 0x17001919 RID: 6425
// (get) Token: 0x06009F61 RID: 40801 RVA: 0x0024DE80 File Offset: 0x0024C080
[Token(Token = "0x17001919")]
public override string AlgorithmName
{
[Token(Token = "0x6009F61")]
[Address(RVA = "0x224B350", Offset = "0x2249D50", VA = "0x18224B350", Slot = "17")]
get
{
return "RIPEMD320";
}
}
// Token: 0x06009F62 RID: 40802 RVA: 0x0024DE94 File Offset: 0x0024C094
[Token(Token = "0x6009F62")]
[Address(RVA = "0x6A9540", Offset = "0x6A7F40", VA = "0x1806A9540", Slot = "18")]
public override int GetDigestSize()
{
return 40;
}
// Token: 0x06009F63 RID: 40803 RVA: 0x0024DEA4 File Offset: 0x0024C0A4
[Token(Token = "0x6009F63")]
[Address(RVA = "0x224B280", Offset = "0x2249C80", VA = "0x18224B280")]
public RipeMD320Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F64 RID: 40804 RVA: 0x0024DED0 File Offset: 0x0024C0D0
[Token(Token = "0x6009F64")]
[Address(RVA = "0x224B2E0", Offset = "0x2249CE0", VA = "0x18224B2E0")]
public RipeMD320Digest(RipeMD320Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F65 RID: 40805 RVA: 0x0024DEFC File Offset: 0x0024C0FC
[Token(Token = "0x6009F65")]
[Address(RVA = "0x22484A0", Offset = "0x2246EA0", VA = "0x1822484A0")]
private void CopyIn(RipeMD320Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int h6 = t.H5;
this.H5 = h6;
int h7 = t.H6;
this.H6 = h7;
int h8 = t.H7;
this.H7 = h8;
int h9 = t.H8;
this.H8 = h9;
int h10 = t.H9;
this.H9 = h10;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x06009F66 RID: 40806 RVA: 0x0024DFEC File Offset: 0x0024C1EC
[Token(Token = "0x6009F66")]
[Address(RVA = "0x224B000", Offset = "0x2249A00", VA = "0x18224B000", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x06009F67 RID: 40807 RVA: 0x0024E038 File Offset: 0x0024C238
[Token(Token = "0x6009F67")]
[Address(RVA = "0x224AF80", Offset = "0x2249980", VA = "0x18224AF80", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x06009F68 RID: 40808 RVA: 0x0024E070 File Offset: 0x0024C270
[Token(Token = "0x6009F68")]
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x06009F69 RID: 40809 RVA: 0x0024E088 File Offset: 0x0024C288
[Token(Token = "0x6009F69")]
[Address(RVA = "0x22485E0", Offset = "0x2246FE0", VA = "0x1822485E0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
int h5 = this.H5;
num = h5;
output[0] = (byte)num;
num = h5;
output[0] = (byte)num;
int h6 = this.H6;
num = h6;
output[0] = (byte)num;
num = h6;
output[0] = (byte)num;
int h7 = this.H7;
num = h7;
output[0] = (byte)num;
num = h7;
output[0] = (byte)num;
int h8 = this.H8;
num = h8;
output[0] = (byte)num;
num = h8;
output[0] = (byte)num;
int h9 = this.H9;
num = h9;
output[0] = (byte)num;
num = h9;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x06009F6A RID: 40810 RVA: 0x0024E1B4 File Offset: 0x0024C3B4
[Token(Token = "0x6009F6A")]
[Address(RVA = "0x224B120", Offset = "0x2249B20", VA = "0x18224B120", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)3285377520L);
this.H5 = (int)((ulong)1985229328L);
this.H6 = (int)((ulong)4275878552L);
this.H7 = (int)((ulong)2309737967L);
this.H8 = (int)((ulong)19088743L);
this.H9 = (int)((ulong)1009589775L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x06009F6B RID: 40811 RVA: 0x0024E28C File Offset: 0x0024C48C
[Token(Token = "0x6009F6B")]
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x06009F6C RID: 40812 RVA: 0x0024E29C File Offset: 0x0024C49C
[Token(Token = "0x6009F6C")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x06009F6D RID: 40813 RVA: 0x0024E2AC File Offset: 0x0024C4AC
[Token(Token = "0x6009F6D")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x06009F6E RID: 40814 RVA: 0x0024E2BC File Offset: 0x0024C4BC
[Token(Token = "0x6009F6E")]
[Address(RVA = "0x2242270", Offset = "0x2240C70", VA = "0x182242270")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x06009F6F RID: 40815 RVA: 0x0024E2CC File Offset: 0x0024C4CC
[Token(Token = "0x6009F6F")]
[Address(RVA = "0x2242300", Offset = "0x2240D00", VA = "0x182242300")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x06009F70 RID: 40816 RVA: 0x0024E2DC File Offset: 0x0024C4DC
[Token(Token = "0x6009F70")]
[Address(RVA = "0x2243E40", Offset = "0x2242840", VA = "0x182243E40")]
private int F5(int x, int y, int z)
{
return z;
}
// Token: 0x06009F71 RID: 40817 RVA: 0x0024E2EC File Offset: 0x0024C4EC
[Token(Token = "0x6009F71")]
[Address(RVA = "0x2248BB0", Offset = "0x22475B0", VA = "0x182248BB0", Slot = "16")]
internal override void ProcessBlock()
{
/*
An exception occurred when decompiling this method (06009F71)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD320Digest::ProcessBlock()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, ldfld:int32(RipeMD320Digest::H5, ldloc:RipeMD320Digest(this)))
stloc:int32(var_1_0D, ldfld:int32(RipeMD320Digest::H0, ldloc:RipeMD320Digest(this)))
stloc:int32(var_2_14, ldfld:int32(RipeMD320Digest::H1, ldloc:RipeMD320Digest(this)))
stloc:int32(var_3_1B, ldfld:int32(RipeMD320Digest::H2, ldloc:RipeMD320Digest(this)))
stloc:int32(var_4_22, ldfld:int32(RipeMD320Digest::H3, ldloc:RipeMD320Digest(this)))
stloc:int32(var_5_2A, ldfld:int32(RipeMD320Digest::H4, ldloc:RipeMD320Digest(this)))
stloc:int32(var_6_32, ldfld:int32(RipeMD320Digest::H7, ldloc:RipeMD320Digest(this)))
stloc:int32(var_7_3A, ldfld:int32(RipeMD320Digest::H6, ldloc:RipeMD320Digest(this)))
stloc:int32(var_8_42, ldfld:int32(RipeMD320Digest::H8, ldloc:RipeMD320Digest(this)))
stloc:int32(var_9_4A, ldfld:int32(RipeMD320Digest::H9, ldloc:RipeMD320Digest(this)))
stloc:int32[](var_10_52, ldfld:int32[](RipeMD320Digest::X, ldloc:RipeMD320Digest(this)))
stloc:int32(var_11_5B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_10_52)))
stloc:int32(var_4_61, add:int32(ldloc:int32(var_4_22), ldloc:int32(var_1_0D)))
stloc:int32(var_1_65, ldloc:int32(var_4_61))
stloc:int32(var_1_6A, add:int32(ldloc:int32(var_1_65), ldloc:int32(var_5_2A)))
stloc:int32(var_4_6C, ldloc:int32(var_3_1B))
stloc:int32(var_4_73, add:int32(ldloc:int32(var_4_6C), ldloc:int32(var_5_2A)))
stloc:int32(var_5_76, ldloc:int32(var_2_14))
stloc:int32(var_3_7A, ldloc:int32(var_4_73))
stloc:int32(var_3_7F, add:int32(ldloc:int32(var_3_7A), ldloc:int32(var_4_73)))
stloc:int32(var_4_81, ldloc:int32(var_3_7F))
stloc:int32(var_4_88, add:int32(ldloc:int32(var_4_81), ldloc:int32(var_4_81)))
stloc:int32(var_4_8B, ldloc:int32(var_1_6A))
stloc:int32(var_2_8F, ldloc:int32(var_4_8B))
stloc:int32(var_2_93, add:int32(ldloc:int32(var_2_8F), ldloc:int32(var_3_7F)))
stloc:int32(var_4_95, ldloc:int32(var_3_7F))
stloc:int32(var_4_9B, add:int32(ldloc:int32(var_4_95), ldloc:int32(var_3_7F)))
stloc:int32(var_1_9F, ldloc:int32(var_4_9B))
stloc:int32(var_1_A4, add:int32(ldloc:int32(var_1_9F), ldloc:int32(var_5_76)))
stloc:int32(var_4_A6, ldloc:int32(var_3_7F))
stloc:int32(var_4_AD, add:int32(ldloc:int32(var_4_A6), ldloc:int32(var_5_76)))
stloc:int32(var_5_B0, ldloc:int32(var_2_93))
stloc:int32(var_3_B4, ldloc:int32(var_4_AD))
stloc:int32(var_3_B9, add:int32(ldloc:int32(var_3_B4), ldloc:int32(var_4_AD)))
stloc:int32(var_4_BC, ldloc:int32(var_5_B0))
stloc:int32(var_4_C3, add:int32(ldloc:int32(var_4_BC), ldloc:int32(var_4_BC)))
stloc:int32(var_4_C6, ldloc:int32(var_1_A4))
stloc:int32(var_2_CA, ldloc:int32(var_4_C6))
stloc:int32(var_2_CE, add:int32(ldloc:int32(var_2_CA), ldloc:int32(var_3_B9)))
stloc:int32(var_4_D3, add:int32(ldloc:int32(var_4_C6), ldloc:int32(var_3_B9)))
stloc:int32(var_1_D7, ldloc:int32(var_4_D3))
stloc:int32(var_1_DC, add:int32(ldloc:int32(var_1_D7), ldloc:int32(var_5_B0)))
stloc:int32(var_4_DE, ldloc:int32(var_1_DC))
stloc:int32(var_4_E5, add:int32(ldloc:int32(var_4_DE), ldloc:int32(var_5_B0)))
stloc:int32(var_5_E8, ldloc:int32(var_2_CE))
stloc:int32(var_3_EC, ldloc:int32(var_4_E5))
stloc:int32(var_3_F1, add:int32(ldloc:int32(var_3_EC), ldloc:int32(var_4_E5)))
stloc:int32(var_4_F3, ldloc:int32(var_1_DC))
stloc:int32(var_4_FA, add:int32(ldloc:int32(var_4_F3), ldloc:int32(var_4_F3)))
stloc:int32(var_4_FD, ldloc:int32(var_1_DC))
stloc:int32(var_2_101, ldloc:int32(var_4_FD))
stloc:int32(var_2_105, add:int32(ldloc:int32(var_2_101), ldloc:int32(var_3_F1)))
stloc:int32(var_4_10A, add:int32(ldloc:int32(var_4_FD), ldloc:int32(var_3_F1)))
stloc:int32(var_1_10E, ldloc:int32(var_4_10A))
stloc:int32(var_1_113, add:int32(ldloc:int32(var_1_10E), ldloc:int32(var_5_E8)))
stloc:int32(var_4_115, ldloc:int32(var_3_F1))
stloc:int32(var_4_11C, add:int32(ldloc:int32(var_4_115), ldloc:int32(var_5_E8)))
stloc:int32(var_5_11F, ldloc:int32(var_2_105))
stloc:int32(var_3_123, ldloc:int32(var_4_11C))
stloc:int32(var_3_128, add:int32(ldloc:int32(var_3_123), ldloc:int32(var_4_11C)))
stloc:int32(var_4_12B, ldloc:int32(var_5_11F))
stloc:int32(var_4_132, add:int32(ldloc:int32(var_4_12B), ldloc:int32(var_4_12B)))
stloc:int32(var_4_135, ldloc:int32(var_1_113))
stloc:int32(var_2_139, ldloc:int32(var_4_135))
stloc:int32(var_2_13D, add:int32(ldloc:int32(var_2_139), ldloc:int32(var_3_128)))
stloc:int32(var_4_13F, ldloc:int32(var_2_13D))
stloc:int32(var_4_145, add:int32(ldloc:int32(var_4_13F), ldloc:int32(var_3_128)))
stloc:int32(var_3_149, ldloc:int32(var_4_145))
stloc:int32(var_3_14E, add:int32(ldloc:int32(var_3_149), ldloc:int32(var_5_11F)))
stloc:int32(var_4_150, ldloc:int32(var_2_13D))
stloc:int32(var_4_157, add:int32(ldloc:int32(var_4_150), ldloc:int32(var_5_11F)))
stloc:int32(var_1_15B, ldloc:int32(var_4_157))
stloc:int32(var_4_15D, ldloc:int32(var_2_13D))
stloc:int32(var_1_163, add:int32(ldloc:int32(var_1_15B), ldloc:int32(var_4_15D)))
stloc:int32(var_12_16C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(7)))
stloc:int32(var_4_173, add:int32(ldloc:int32(var_4_15D), ldloc:int32(var_12_16C)))
stloc:int32(var_4_17A, add:int32(ldloc:int32(var_4_173), ldloc:int32(var_4_173)))
stloc:int32(var_4_180, add:int32(ldloc:int32(var_4_17A), ldloc:int32(var_3_14E)))
stloc:int32(var_13_18A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(7)))
stloc:int32(var_3_193, add:int32(ldloc:int32(var_3_14E), ldloc:int32(var_13_18A)))
stloc:int32(var_3_197, add:int32(ldloc:int32(var_3_193), ldloc:int32(var_3_193)))
stloc:int32(var_4_19D, ldloc:int32(var_8_42))
stloc:int32(var_0_1A6, add:int32(ldloc:int32(var_0_06), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1AB, add:int32(ldloc:int32(var_4_19D), ldloc:int32(var_0_1A6)))
stloc:int32(var_3_1AF, ldloc:int32(var_4_1AB))
stloc:int32(var_3_1B4, add:int32(ldloc:int32(var_3_1AF), ldloc:int32(var_9_4A)))
stloc:int32(var_9_1BD, add:int32(ldloc:int32(var_9_4A), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1C3, ldloc:int32(var_3_1B4))
stloc:int32(var_4_1CA, add:int32(ldloc:int32(var_4_1C3), ldloc:int32(var_12_16C)))
stloc:int32(var_12_1CE, ldloc:int32(var_7_3A))
stloc:int32(var_4_1D5, add:int32(ldloc:int32(var_4_1CA), ldloc:int32(var_9_1BD)))
stloc:int32(var_9_1D9, ldloc:int32(var_4_1D5))
stloc:int32(var_4_1DD, ldloc:int32(var_12_1CE))
stloc:int32(var_9_1E4, add:int32(ldloc:int32(var_9_1D9), ldloc:int32(var_8_42)))
stloc:int32(var_4_1EE, add:int32(ldloc:int32(var_4_1DD), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1F5, add:int32(ldloc:int32(var_4_1EE), ldloc:int32(var_8_42)))
stloc:int32(var_7_1F9, ldloc:int32(var_4_1F5))
stloc:int32(var_7_1FF, add:int32(ldloc:int32(var_7_1F9), ldloc:int32(var_3_1B4)))
stloc:int32(var_8_203, ldloc:int32(var_7_1FF))
stloc:int32(var_3_20C, add:int32(ldloc:int32(var_3_1B4), ldc.i4:int32(1352829926)))
stloc:int32(var_4_211, add:int32(ldloc:int32(var_4_1F5), ldloc:int32(var_3_20C)))
stloc:int32(var_3_218, ldloc:int32(var_4_211))
stloc:int32(var_3_21D, add:int32(ldloc:int32(var_3_218), ldloc:int32(var_12_1CE)))
stloc:int32(var_12_226, add:int32(ldloc:int32(var_12_1CE), ldc.i4:int32(1352829926)))
stloc:int32(var_4_229, ldloc:int32(var_3_21D))
stloc:int32(var_4_230, add:int32(ldloc:int32(var_4_229), ldloc:int32(var_12_226)))
stloc:int32(var_12_233, ldloc:int32(var_3_21D))
stloc:int32(var_9_237, ldloc:int32(var_4_230))
stloc:int32(var_4_23B, ldloc:int32(var_8_203))
stloc:int32(var_9_242, add:int32(ldloc:int32(var_9_237), ldloc:int32(var_4_23B)))
stloc:int32(var_4_24C, add:int32(ldloc:int32(var_4_23B), ldc.i4:int32(1352829926)))
stloc:int32(var_4_253, add:int32(ldloc:int32(var_4_24C), ldloc:int32(var_4_24C)))
stloc:int32(var_7_257, ldloc:int32(var_4_253))
stloc:int32(var_7_25D, add:int32(ldloc:int32(var_7_257), ldloc:int32(var_3_21D)))
stloc:int32(var_4_265, ldloc:int32(var_9_242))
stloc:int32(var_3_26E, add:int32(ldloc:int32(var_3_21D), ldc.i4:int32(1352829926)))
stloc:int32(var_4_273, add:int32(ldloc:int32(var_4_265), ldloc:int32(var_3_26E)))
stloc:int32(var_3_27A, ldloc:int32(var_4_273))
stloc:int32(var_3_27F, add:int32(ldloc:int32(var_3_27A), ldloc:int32(var_8_203)))
stloc:int32(var_4_288, add:int32(ldloc:int32(var_4_273), ldc.i4:int32(1352829926)))
stloc:int32(var_4_28F, add:int32(ldloc:int32(var_4_288), ldloc:int32(var_8_203)))
stloc:int32(var_9_293, ldloc:int32(var_4_28F))
stloc:int32(var_4_296, ldloc:int32(var_3_27F))
stloc:int32(var_9_29D, add:int32(ldloc:int32(var_9_293), ldloc:int32(var_12_233)))
stloc:int32(var_8_2A1, ldloc:int32(var_9_29D))
stloc:int32(var_12_2AB, add:int32(ldloc:int32(var_12_233), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2B2, add:int32(ldloc:int32(var_4_296), ldloc:int32(var_12_2AB)))
stloc:int32(var_12_2B5, ldloc:int32(var_3_27F))
stloc:int32(var_7_2B9, ldloc:int32(var_4_2B2))
stloc:int32(var_7_2C0, add:int32(ldloc:int32(var_7_2B9), ldloc:int32(var_4_2B2)))
stloc:int32(var_4_2CA, add:int32(ldloc:int32(var_4_2B2), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2CE, ldloc:int32(var_12_2B5))
stloc:int32(var_4_2D5, add:int32(ldloc:int32(var_4_2CE), ldloc:int32(var_4_2CE)))
stloc:int32(var_4_2D9, ldloc:int32(var_7_2C0))
stloc:int32(var_3_2DD, ldloc:int32(var_4_2D9))
stloc:int32(var_4_2E0, ldloc:int32(var_8_2A1))
stloc:int32(var_3_2E5, add:int32(ldloc:int32(var_3_2DD), ldloc:int32(var_3_2DD)))
stloc:int32(var_4_2EE, add:int32(ldloc:int32(var_4_2E0), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2F5, add:int32(ldloc:int32(var_4_2EE), ldloc:int32(var_13_18A)))
stloc:int32(var_4_2FB, add:int32(ldloc:int32(var_4_2F5), ldloc:int32(var_3_2E5)))
stloc:int32(var_9_2FF, ldloc:int32(var_4_2FB))
stloc:int32(var_9_306, add:int32(ldloc:int32(var_9_2FF), ldloc:int32(var_12_2B5)))
stloc:int32(var_12_310, add:int32(ldloc:int32(var_12_2B5), ldc.i4:int32(1352829926)))
stloc:int32(var_3_314, ldloc:int32(var_9_306))
stloc:int32(var_4_31A, add:int32(ldloc:int32(var_4_2FB), ldloc:int32(var_12_310)))
stloc:int32(var_12_31E, ldloc:int32(var_4_31A))
stloc:int32(var_12_325, add:int32(ldloc:int32(var_12_31E), ldloc:int32(var_8_2A1)))
stloc:int32(var_4_328, ldloc:int32(var_3_314))
stloc:int32(var_8_332, add:int32(ldloc:int32(var_8_2A1), ldc.i4:int32(1352829926)))
stloc:int32(var_14_33C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(6)))
stloc:int32(var_4_343, add:int32(ldloc:int32(var_4_328), ldloc:int32(var_8_332)))
stloc:int32(var_3_347, ldloc:int32(var_4_343))
stloc:int32(var_8_34A, ldloc:int32(var_12_325))
stloc:int32(var_14_354, add:int32(ldloc:int32(var_14_33C), ldc.i4:int32(1352829926)))
stloc:int32(var_3_35A, add:int32(ldloc:int32(var_3_347), ldloc:int32(var_4_343)))
stloc:int32(var_4_35C, ldloc:int32(var_3_35A))
stloc:int32(var_4_366, add:int32(ldloc:int32(var_4_35C), ldc.i4:int32(1352829926)))
stloc:int32(var_4_36D, add:int32(ldloc:int32(var_4_366), ldloc:int32(var_4_366)))
stloc:int32(var_7_371, ldloc:int32(var_4_36D))
stloc:int32(var_4_375, ldloc:int32(var_8_34A))
stloc:int32(var_7_37B, add:int32(ldloc:int32(var_7_371), ldloc:int32(var_3_35A)))
stloc:int32(var_4_385, add:int32(ldloc:int32(var_4_375), ldc.i4:int32(1352829926)))
stloc:int32(var_4_38B, add:int32(ldloc:int32(var_4_385), ldloc:int32(var_3_35A)))
stloc:int32(var_13_38F, ldloc:int32(var_4_38B))
stloc:int32(var_4_392, ldloc:int32(var_3_35A))
stloc:int32(var_13_398, add:int32(ldloc:int32(var_13_38F), ldloc:int32(var_3_35A)))
stloc:int32(var_14_39F, add:int32(ldloc:int32(var_14_354), ldloc:int32(var_4_392)))
stloc:int32(var_4_3A3, ldloc:int32(var_7_37B))
stloc:int32(var_14_3A9, add:int32(ldloc:int32(var_14_39F), ldloc:int32(var_3_35A)))
stloc:int32(var_12_3AD, ldloc:int32(var_14_3A9))
stloc:int32(var_12_3B4, add:int32(ldloc:int32(var_12_3AD), ldloc:int32(var_8_34A)))
stloc:int32(var_14_3B8, ldloc:int32(var_12_3B4))
stloc:int32(var_6_3BB, ldloc:int32(var_3_35A))
stloc:int32(var_8_3BF, ldloc:int32(var_12_3B4))
stloc:int32(var_4_3C6, add:int32(ldloc:int32(var_4_3A3), ldloc:int32(var_14_3B8)))
stloc:int32(var_6_3CD, add:int32(ldloc:int32(var_6_3BB), ldloc:int32(var_4_3C6)))
stloc:int32(var_3_3D1, ldloc:int32(var_4_3C6))
stloc:int32(var_4_3D6, add:int32(ldloc:int32(var_4_3C6), ldloc:int32(var_3_3D1)))
stloc:int32(var_4_3E4, add:int32(ldloc:int32(var_4_3D6), ldc.i4:int32(1518500249)))
stloc:int32(var_3_3E8, ldloc:int32(var_4_3E4))
stloc:int32(var_4_3ED, add:int32(ldloc:int32(var_4_3E4), ldloc:int32(var_3_3E8)))
stloc:int32(var_3_3F1, ldloc:int32(var_4_3ED))
stloc:int32(var_3_3F6, add:int32(ldloc:int32(var_3_3F1), ldloc:int32(var_4_3ED)))
stloc:int32(var_14_3F8, ldloc:int32(var_3_3F6))
stloc:int32(var_4_3FB, ldloc:int32(var_3_3F6))
stloc:int32(var_4_402, add:int32(ldloc:int32(var_4_3FB), ldloc:int32(var_14_3F8)))
stloc:int32(var_12_406, ldloc:int32(var_4_402))
stloc:int32(var_4_409, ldloc:int32(var_3_3F6))
stloc:int32(var_12_40F, add:int32(ldloc:int32(var_12_406), ldloc:int32(var_3_3F6)))
stloc:int32(var_14_413, ldloc:int32(var_12_40F))
stloc:int32(var_4_41A, add:int32(ldloc:int32(var_4_409), ldloc:int32(var_14_413)))
stloc:int32(var_3_41E, ldloc:int32(var_4_41A))
stloc:int32(var_3_423, add:int32(ldloc:int32(var_3_41E), ldloc:int32(var_8_3BF)))
stloc:int32(var_14_425, ldloc:int32(var_3_423))
stloc:int32(var_4_429, ldloc:int32(var_12_40F))
stloc:int32(var_3_42D, ldloc:int32(var_12_40F))
stloc:int32(var_4_433, add:int32(ldloc:int32(var_4_429), ldloc:int32(var_14_425)))
stloc:int32(var_8_436, ldloc:int32(var_3_42D))
stloc:int32(var_4_43C, add:int32(ldloc:int32(var_4_433), ldloc:int32(var_3_42D)))
stloc:int32(var_4_43F, ldloc:int32(var_3_42D))
stloc:int32(var_4_44D, add:int32(ldloc:int32(var_4_43F), ldc.i4:int32(1518500249)))
stloc:int32(var_4_453, add:int32(ldloc:int32(var_4_44D), ldloc:int32(var_3_42D)))
stloc:int32(var_3_457, ldloc:int32(var_4_453))
stloc:int32(var_3_45C, add:int32(ldloc:int32(var_3_457), ldloc:int32(var_4_453)))
stloc:int32(var_14_45E, ldloc:int32(var_3_45C))
stloc:int32(var_4_461, ldloc:int32(var_3_45C))
stloc:int32(var_4_468, add:int32(ldloc:int32(var_4_461), ldloc:int32(var_14_45E)))
stloc:int32(var_12_46C, ldloc:int32(var_4_468))
stloc:int32(var_4_46F, ldloc:int32(var_3_45C))
stloc:int32(var_12_475, add:int32(ldloc:int32(var_12_46C), ldloc:int32(var_3_45C)))
stloc:int32(var_14_479, ldloc:int32(var_12_475))
stloc:int32(var_4_480, add:int32(ldloc:int32(var_4_46F), ldloc:int32(var_14_479)))
stloc:int32(var_4_484, ldloc:int32(var_12_475))
stloc:int32(var_4_48B, add:int32(ldloc:int32(var_4_484), ldloc:int32(var_8_436)))
stloc:int32(var_4_499, add:int32(ldloc:int32(var_4_48B), ldc.i4:int32(1518500249)))
stloc:int32(var_4_4A0, add:int32(ldloc:int32(var_4_499), ldloc:int32(var_8_436)))
stloc:int32(var_3_4A7, ldloc:int32(var_12_475))
stloc:int32(var_3_4AC, add:int32(ldloc:int32(var_3_4A7), ldloc:int32(var_4_4A0)))
stloc:int32(var_4_4B8, add:int32(ldloc:int32(var_4_4A0), ldc.i4:int32(1518500249)))
stloc:int32(var_8_4BB, ldloc:int32(var_3_4AC))
stloc:int32(var_4_4C2, add:int32(ldloc:int32(var_4_4B8), ldloc:int32(var_4_4B8)))
stloc:int32(var_15_4CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(2)))
stloc:int32(var_3_4D0, ldloc:int32(var_4_4C2))
stloc:int32(var_15_4D9, add:int32(ldloc:int32(var_15_4CC), ldc.i4:int32(1518500249)))
stloc:int32(var_3_4DE, add:int32(ldloc:int32(var_3_4D0), ldloc:int32(var_3_4D0)))
stloc:int32(var_4_4E0, ldloc:int32(var_3_4DE))
stloc:int32(var_4_4ED, add:int32(ldloc:int32(var_4_4E0), ldc.i4:int32(1518500249)))
stloc:int32(var_4_4F3, add:int32(ldloc:int32(var_4_4ED), ldloc:int32(var_3_4DE)))
stloc:int32(var_12_4F7, ldloc:int32(var_4_4F3))
stloc:int32(var_12_4FD, add:int32(ldloc:int32(var_12_4F7), ldloc:int32(var_3_4DE)))
stloc:int32(var_4_505, ldloc:int32(var_12_4FD))
stloc:int32(var_4_50C, add:int32(ldloc:int32(var_4_505), ldloc:int32(var_15_4D9)))
stloc:int32(var_15_50F, ldloc:int32(var_3_4DE))
stloc:int32(var_4_515, add:int32(ldloc:int32(var_4_50C), ldloc:int32(var_3_4DE)))
stloc:int32(var_3_51C, ldloc:int32(var_12_4FD))
stloc:int32(var_3_521, add:int32(ldloc:int32(var_3_51C), ldloc:int32(var_4_515)))
stloc:int32(var_4_524, ldloc:int32(var_12_4FD))
stloc:int32(var_14_527, ldloc:int32(var_3_521))
stloc:int32(var_4_52E, add:int32(ldloc:int32(var_4_524), ldloc:int32(var_14_527)))
stloc:int32(var_4_535, add:int32(ldloc:int32(var_4_52E), ldloc:int32(var_8_4BB)))
stloc:int32(var_14_539, ldloc:int32(var_4_535))
stloc:int32(var_4_53C, ldloc:int32(var_3_521))
stloc:int32(var_8_53F, ldloc:int32(var_3_521))
stloc:int32(var_4_546, add:int32(ldloc:int32(var_4_53C), ldloc:int32(var_14_539)))
stloc:int32(var_4_54D, add:int32(ldloc:int32(var_4_546), ldloc:int32(var_15_50F)))
stloc:int32(var_4_55B, add:int32(ldloc:int32(var_4_54D), ldc.i4:int32(1518500249)))
stloc:int32(var_4_562, add:int32(ldloc:int32(var_4_55B), ldloc:int32(var_15_50F)))
stloc:int32(var_12_566, ldloc:int32(var_4_562))
stloc:int32(var_12_56C, add:int32(ldloc:int32(var_12_566), ldloc:int32(var_3_521)))
stloc:int32(var_3_570, ldloc:int32(var_12_56C))
stloc:int32(var_14_572, ldloc:int32(var_3_570))
stloc:int32(var_4_57C, add:int32(ldloc:int32(var_4_562), ldloc:int32(var_14_572)))
stloc:int32(var_3_580, ldloc:int32(var_4_57C))
stloc:int32(var_14_583, ldloc:int32(var_4_57C))
stloc:int32(var_3_589, add:int32(ldloc:int32(var_3_580), ldloc:int32(var_8_53F)))
stloc:int32(var_8_592, add:int32(ldloc:int32(var_8_53F), ldc.i4:int32(1548603684)))
stloc:int32(var_8_599, add:int32(ldloc:int32(var_8_592), ldloc:int32(var_14_583)))
stloc:int32(var_14_59C, ldloc:int32(var_3_589))
stloc:int32(var_4_5A0, ldloc:int32(var_8_599))
stloc:int32(var_4_5A7, add:int32(ldloc:int32(var_4_5A0), ldloc:int32(var_4_5A0)))
stloc:int32(var_8_5AB, ldloc:int32(var_4_5A7))
stloc:int32(var_8_5B2, add:int32(ldloc:int32(var_8_5AB), ldloc:int32(var_14_59C)))
stloc:int32(var_3_5B6, ldloc:int32(var_4_5A7))
stloc:int32(var_4_5B9, ldloc:int32(var_8_5B2))
stloc:int32(var_15_5BD, ldloc:int32(var_6_3CD))
stloc:int32(var_4_5C4, add:int32(ldloc:int32(var_4_5B9), ldloc:int32(var_4_5B9)))
stloc:int32(var_8_5CC, ldloc:int32(var_4_5C4))
stloc:int32(var_14_5D0, ldloc:int32(var_15_5BD))
stloc:int32(var_8_5D7, add:int32(ldloc:int32(var_8_5CC), ldloc:int32(var_14_5D0)))
stloc:int32(var_14_5DA, ldloc:int32(var_3_5B6))
stloc:int32(var_4_5DE, ldloc:int32(var_8_5D7))
stloc:int32(var_4_5E4, add:int32(ldloc:int32(var_4_5DE), ldloc:int32(var_3_5B6)))
stloc:int32(var_8_5E7, ldloc:int32(var_3_5B6))
stloc:int32(var_8_5EE, add:int32(ldloc:int32(var_8_5E7), ldloc:int32(var_14_5DA)))
stloc:int32(var_14_5F2, ldloc:int32(var_8_5EE))
stloc:int32(var_3_5F6, ldloc:int32(var_8_5EE))
stloc:int32(var_3_5FB, add:int32(ldloc:int32(var_3_5F6), ldloc:int32(var_15_5BD)))
stloc:int32(var_15_5FE, ldloc:int32(var_4_5E4))
stloc:int32(var_8_605, add:int32(ldloc:int32(var_8_5EE), ldloc:int32(var_14_5F2)))
stloc:int32(var_4_609, ldloc:int32(var_8_605))
stloc:int32(var_4_613, add:int32(ldloc:int32(var_4_609), ldloc:int32(var_3_5FB)))
stloc:int32(var_8_617, ldloc:int32(var_15_5FE))
stloc:int32(var_8_624, add:int32(ldloc:int32(var_8_617), ldc.i4:int32(1548603684)))
stloc:int32(var_8_62A, add:int32(ldloc:int32(var_8_624), ldloc:int32(var_3_5FB)))
stloc:int32(var_4_62E, ldloc:int32(var_8_62A))
stloc:int32(var_4_635, add:int32(ldloc:int32(var_4_62E), ldloc:int32(var_8_62A)))
stloc:int32(var_14_63D, ldloc:int32(var_4_635))
stloc:int32(var_8_641, ldloc:int32(var_4_635))
stloc:int32(var_8_648, add:int32(ldloc:int32(var_8_641), ldloc:int32(var_14_63D)))
stloc:int32(var_3_64C, ldloc:int32(var_8_648))
stloc:int32(var_14_64F, ldloc:int32(var_8_648))
stloc:int32(var_3_655, add:int32(ldloc:int32(var_3_64C), ldloc:int32(var_15_5FE)))
stloc:int32(var_8_657, ldloc:int32(var_3_655))
stloc:int32(var_15_65B, ldloc:int32(var_4_635))
stloc:int32(var_8_662, add:int32(ldloc:int32(var_8_657), ldloc:int32(var_14_64F)))
stloc:int32(var_4_666, ldloc:int32(var_8_662))
stloc:int32(var_14_66A, ldloc:int32(var_15_65B))
stloc:int32(var_4_671, add:int32(ldloc:int32(var_4_666), ldloc:int32(var_4_666)))
stloc:int32(var_8_675, ldloc:int32(var_15_65B))
stloc:int32(var_8_67F, add:int32(ldloc:int32(var_8_675), ldloc:int32(var_14_66A)))
stloc:int32(var_4_683, ldloc:int32(var_8_67F))
stloc:int32(var_14_687, ldloc:int32(var_4_683))
stloc:int32(var_4_68E, add:int32(ldloc:int32(var_4_683), ldloc:int32(var_8_67F)))
stloc:int32(var_8_696, ldloc:int32(var_4_68E))
stloc:int32(var_8_69D, add:int32(ldloc:int32(var_8_696), ldloc:int32(var_14_687)))
stloc:int32(var_3_6A1, ldloc:int32(var_8_69D))
stloc:int32(var_14_6A4, ldloc:int32(var_8_69D))
stloc:int32(var_3_6AA, add:int32(ldloc:int32(var_3_6A1), ldloc:int32(var_15_65B)))
stloc:int32(var_8_6B0, add:int32(ldloc:int32(var_8_69D), ldloc:int32(var_14_6A4)))
stloc:int32(var_15_6B4, ldloc:int32(var_4_68E))
stloc:int32(var_4_6B8, ldloc:int32(var_8_6B0))
stloc:int32(var_4_6BF, add:int32(ldloc:int32(var_4_6B8), ldloc:int32(var_4_6B8)))
stloc:int32(var_8_6C3, ldloc:int32(var_4_6BF))
stloc:int32(var_14_6C7, ldloc:int32(var_15_6B4))
stloc:int32(var_8_6D1, add:int32(ldloc:int32(var_8_6C3), ldloc:int32(var_14_6C7)))
stloc:int32(var_4_6D5, ldloc:int32(var_8_6D1))
stloc:int32(var_14_6D9, ldloc:int32(var_4_6D5))
stloc:int32(var_4_6E0, add:int32(ldloc:int32(var_4_6D5), ldloc:int32(var_8_6D1)))
stloc:int32(var_8_6E8, ldloc:int32(var_4_6E0))
stloc:int32(var_8_6EF, add:int32(ldloc:int32(var_8_6E8), ldloc:int32(var_14_6D9)))
stloc:int32(var_3_6F3, ldloc:int32(var_8_6EF))
stloc:int32(var_14_6F6, ldloc:int32(var_8_6EF))
stloc:int32(var_3_6FC, add:int32(ldloc:int32(var_3_6F3), ldloc:int32(var_15_6B4)))
stloc:int32(var_15_6FF, ldloc:int32(var_4_6E0))
stloc:int32(var_8_706, add:int32(ldloc:int32(var_8_6EF), ldloc:int32(var_14_6F6)))
stloc:int32(var_4_70A, ldloc:int32(var_8_706))
stloc:int32(var_4_715, add:int32(ldloc:int32(var_4_70A), ldloc:int32(var_4_70A)))
stloc:int32(var_8_719, ldloc:int32(var_15_6FF))
stloc:int32(var_8_723, add:int32(ldloc:int32(var_8_719), ldc.i4:int32(1548603684)))
stloc:int32(var_8_72A, add:int32(ldloc:int32(var_8_723), ldloc:int32(var_4_715)))
stloc:int32(var_13_72E, ldloc:int32(var_8_72A))
stloc:int32(var_13_735, add:int32(ldloc:int32(var_13_72E), ldloc:int32(var_8_72A)))
stloc:int32(var_8_738, ldloc:int32(var_3_6FC))
stloc:int32(var_4_73B, ldloc:int32(var_3_6FC))
stloc:int32(var_3_743, ldloc:int32(var_4_73B))
stloc:int32(var_8_74C, add:int32(ldloc:int32(var_8_738), ldc.i4:int32(1548603684)))
stloc:int32(var_8_753, add:int32(ldloc:int32(var_8_74C), ldloc:int32(var_8_74C)))
stloc:int32(var_6_757, ldloc:int32(var_8_753))
stloc:int32(var_6_75E, add:int32(ldloc:int32(var_6_757), ldloc:int32(var_15_6FF)))
stloc:int32(var_8_768, add:int32(ldloc:int32(var_8_753), ldc.i4:int32(1859775393)))
stloc:int32(var_8_76E, add:int32(ldloc:int32(var_8_768), ldloc:int32(var_3_743)))
stloc:int32(var_14_772, ldloc:int32(var_8_76E))
stloc:int32(var_4_776, ldloc:int32(var_12_56C))
stloc:int32(var_14_77D, add:int32(ldloc:int32(var_14_772), ldloc:int32(var_4_776)))
stloc:int32(var_4_787, add:int32(ldloc:int32(var_4_776), ldc.i4:int32(1859775393)))
stloc:int32(var_8_78B, ldloc:int32(var_14_77D))
stloc:int32(var_12_78E, ldloc:int32(var_3_743))
stloc:int32(var_12_795, add:int32(ldloc:int32(var_12_78E), ldloc:int32(var_4_787)))
stloc:int32(var_4_799, ldloc:int32(var_12_795))
stloc:int32(var_12_79D, ldloc:int32(var_14_77D))
stloc:int32(var_4_7A3, add:int32(ldloc:int32(var_4_799), ldloc:int32(var_3_743)))
stloc:int32(var_3_7AC, add:int32(ldloc:int32(var_3_743), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7B1, add:int32(ldloc:int32(var_12_79D), ldloc:int32(var_3_7AC)))
stloc:int32(var_3_7B5, ldloc:int32(var_12_7B1))
stloc:int32(var_12_7B8, ldloc:int32(var_4_7A3))
stloc:int32(var_3_7BE, add:int32(ldloc:int32(var_3_7B5), ldloc:int32(var_4_7A3)))
stloc:int32(var_4_7C7, add:int32(ldloc:int32(var_4_7A3), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7CE, add:int32(ldloc:int32(var_12_7B8), ldloc:int32(var_4_7C7)))
stloc:int32(var_14_7D2, ldloc:int32(var_12_7CE))
stloc:int32(var_14_7D9, add:int32(ldloc:int32(var_14_7D2), ldloc:int32(var_4_7C7)))
stloc:int32(var_12_7DC, ldloc:int32(var_3_7BE))
stloc:int32(var_4_7E6, add:int32(ldloc:int32(var_4_7C7), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7ED, add:int32(ldloc:int32(var_12_7DC), ldloc:int32(var_4_7E6)))
stloc:int32(var_4_7F4, ldloc:int32(var_12_7ED))
stloc:int32(var_4_7FB, add:int32(ldloc:int32(var_4_7F4), ldloc:int32(var_8_78B)))
stloc:int32(var_12_7FF, ldloc:int32(var_14_7D9))
stloc:int32(var_15_803, ldloc:int32(var_4_7FB))
stloc:int32(var_8_80D, add:int32(ldloc:int32(var_8_78B), ldc.i4:int32(1859775393)))
stloc:int32(var_12_814, add:int32(ldloc:int32(var_12_7FF), ldloc:int32(var_8_80D)))
stloc:int32(var_8_818, ldloc:int32(var_14_7D9))
stloc:int32(var_3_81C, ldloc:int32(var_12_814))
stloc:int32(var_12_81F, ldloc:int32(var_4_7FB))
stloc:int32(var_3_825, add:int32(ldloc:int32(var_3_81C), ldloc:int32(var_4_7FB)))
stloc:int32(var_12_82E, add:int32(ldloc:int32(var_12_81F), ldc.i4:int32(1859775393)))
stloc:int32(var_12_835, add:int32(ldloc:int32(var_12_82E), ldloc:int32(var_4_7FB)))
stloc:int32(var_14_839, ldloc:int32(var_12_835))
stloc:int32(var_12_83C, ldloc:int32(var_3_825))
stloc:int32(var_14_843, add:int32(ldloc:int32(var_14_839), ldloc:int32(var_4_7FB)))
stloc:int32(var_12_84D, add:int32(ldloc:int32(var_12_83C), ldc.i4:int32(1859775393)))
stloc:int32(var_12_854, add:int32(ldloc:int32(var_12_84D), ldloc:int32(var_4_7FB)))
stloc:int32(var_4_858, ldloc:int32(var_12_854))
stloc:int32(var_12_85C, ldloc:int32(var_14_843))
stloc:int32(var_4_863, add:int32(ldloc:int32(var_4_858), ldloc:int32(var_8_818)))
stloc:int32(var_12_86D, add:int32(ldloc:int32(var_12_85C), ldc.i4:int32(1859775393)))
stloc:int32(var_12_874, add:int32(ldloc:int32(var_12_86D), ldloc:int32(var_8_818)))
stloc:int32(var_4_878, ldloc:int32(var_12_874))
stloc:int32(var_3_87C, ldloc:int32(var_14_843))
stloc:int32(var_4_882, add:int32(ldloc:int32(var_4_878), ldloc:int32(var_15_803)))
stloc:int32(var_12_886, ldloc:int32(var_4_882))
stloc:int32(var_15_890, add:int32(ldloc:int32(var_15_803), ldc.i4:int32(1859775393)))
stloc:int32(var_8_894, ldloc:int32(var_4_882))
stloc:int32(var_12_89B, add:int32(ldloc:int32(var_12_886), ldloc:int32(var_15_890)))
stloc:int32(var_15_89F, ldloc:int32(var_4_882))
stloc:int32(var_4_8A3, ldloc:int32(var_12_89B))
stloc:int32(var_4_8A9, add:int32(ldloc:int32(var_4_8A3), ldloc:int32(var_3_87C)))
stloc:int32(var_12_8AD, ldloc:int32(var_4_8A9))
stloc:int32(var_12_8B7, add:int32(ldloc:int32(var_12_8AD), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8BD, add:int32(ldloc:int32(var_12_8B7), ldloc:int32(var_3_87C)))
stloc:int32(var_3_8C1, ldloc:int32(var_12_8BD))
stloc:int32(var_12_8C4, ldloc:int32(var_4_8A9))
stloc:int32(var_3_8C9, add:int32(ldloc:int32(var_3_8C1), ldloc:int32(var_3_8C1)))
stloc:int32(var_12_8D5, add:int32(ldloc:int32(var_12_8C4), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8DB, add:int32(ldloc:int32(var_12_8D5), ldloc:int32(var_3_8C9)))
stloc:int32(var_14_8DF, ldloc:int32(var_12_8DB))
stloc:int32(var_12_8E2, ldloc:int32(var_3_8C9))
stloc:int32(var_14_8E9, add:int32(ldloc:int32(var_14_8DF), ldloc:int32(var_15_89F)))
stloc:int32(var_12_8F3, add:int32(ldloc:int32(var_12_8E2), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8FA, add:int32(ldloc:int32(var_12_8F3), ldloc:int32(var_15_89F)))
stloc:int32(var_4_8FE, ldloc:int32(var_12_8FA))
stloc:int32(var_12_902, ldloc:int32(var_14_8E9))
stloc:int32(var_4_909, add:int32(ldloc:int32(var_4_8FE), ldloc:int32(var_8_894)))
stloc:int32(var_8_913, add:int32(ldloc:int32(var_8_894), ldc.i4:int32(1859775393)))
stloc:int32(var_12_91A, add:int32(ldloc:int32(var_12_902), ldloc:int32(var_8_913)))
stloc:int32(var_3_91E, ldloc:int32(var_12_91A))
stloc:int32(var_8_921, ldloc:int32(var_14_8E9))
stloc:int32(var_16_92B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(6)))
stloc:int32(var_12_92F, ldloc:int32(var_4_909))
stloc:int32(var_3_935, add:int32(ldloc:int32(var_3_91E), ldloc:int32(var_4_909)))
stloc:int32(var_12_942, add:int32(ldloc:int32(var_12_92F), ldc.i4:int32(1859775393)))
stloc:int32(var_12_949, add:int32(ldloc:int32(var_12_942), ldloc:int32(var_4_909)))
stloc:int32(var_3_94D, ldloc:int32(var_12_949))
stloc:int32(var_4_950, ldloc:int32(var_13_735))
stloc:int32(var_12_953, ldloc:int32(var_3_94D))
stloc:int32(var_3_959, add:int32(ldloc:int32(var_3_94D), ldloc:int32(var_4_950)))
stloc:int32(var_12_962, add:int32(ldloc:int32(var_12_953), ldc.i4:int32(1859775393)))
stloc:int32(var_15_96C, add:int32(ldloc:int32(var_15_89F), ldc.i4:int32(1836072691)))
stloc:int32(var_12_973, add:int32(ldloc:int32(var_12_962), ldloc:int32(var_16_92B)))
stloc:int32(var_12_97A, add:int32(ldloc:int32(var_12_973), ldloc:int32(var_4_950)))
stloc:int32(var_3_97E, ldloc:int32(var_12_97A))
stloc:int32(var_3_986, add:int32(ldloc:int32(var_3_97E), ldloc:int32(var_8_921)))
stloc:int32(var_8_989, ldloc:int32(var_6_75E))
stloc:int32(var_12_98D, ldloc:int32(var_13_735))
stloc:int32(var_12_994, add:int32(ldloc:int32(var_12_98D), ldloc:int32(var_15_96C)))
stloc:int32(var_15_998, ldloc:int32(var_12_994))
stloc:int32(var_12_99C, ldloc:int32(var_6_75E))
stloc:int32(var_15_9A3, add:int32(ldloc:int32(var_15_998), ldloc:int32(var_8_989)))
stloc:int32(var_8_9AD, add:int32(ldloc:int32(var_8_989), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9B4, add:int32(ldloc:int32(var_12_99C), ldloc:int32(var_8_9AD)))
stloc:int32(var_8_9B8, ldloc:int32(var_12_9B4))
stloc:int32(var_12_9BC, ldloc:int32(var_15_9A3))
stloc:int32(var_8_9C3, add:int32(ldloc:int32(var_8_9B8), ldloc:int32(var_4_950)))
stloc:int32(var_4_9C7, ldloc:int32(var_15_9A3))
stloc:int32(var_12_9D1, add:int32(ldloc:int32(var_12_9BC), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9D8, add:int32(ldloc:int32(var_12_9D1), ldloc:int32(var_4_9C7)))
stloc:int32(var_3_9DC, ldloc:int32(var_12_9D8))
stloc:int32(var_12_9DF, ldloc:int32(var_8_9C3))
stloc:int32(var_3_9E5, add:int32(ldloc:int32(var_3_9DC), ldloc:int32(var_4_9C7)))
stloc:int32(var_4_9EE, add:int32(ldloc:int32(var_4_9C7), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9F5, add:int32(ldloc:int32(var_12_9DF), ldloc:int32(var_4_9EE)))
stloc:int32(var_4_9F9, ldloc:int32(var_8_9C3))
stloc:int32(var_15_9FD, ldloc:int32(var_12_9F5))
stloc:int32(var_15_A04, add:int32(ldloc:int32(var_15_9FD), ldloc:int32(var_8_9C3)))
stloc:int32(var_12_A07, ldloc:int32(var_3_9E5))
stloc:int32(var_8_A11, add:int32(ldloc:int32(var_8_9C3), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A18, add:int32(ldloc:int32(var_12_A07), ldloc:int32(var_8_A11)))
stloc:int32(var_8_A1F, ldloc:int32(var_12_A18))
stloc:int32(var_8_A26, add:int32(ldloc:int32(var_8_A1F), ldloc:int32(var_4_9F9)))
stloc:int32(var_12_A2A, ldloc:int32(var_15_A04))
stloc:int32(var_4_A34, add:int32(ldloc:int32(var_4_9F9), ldc.i4:int32(1836072691)))
stloc:int32(var_15_A38, ldloc:int32(var_8_A26))
stloc:int32(var_12_A3F, add:int32(ldloc:int32(var_12_A2A), ldloc:int32(var_4_A34)))
stloc:int32(var_4_A43, ldloc:int32(var_15_A38))
stloc:int32(var_3_A47, ldloc:int32(var_12_A3F))
stloc:int32(var_3_A4C, add:int32(ldloc:int32(var_3_A47), ldloc:int32(var_4_A43)))
stloc:int32(var_12_A4F, ldloc:int32(var_8_A26))
stloc:int32(var_4_A59, add:int32(ldloc:int32(var_4_A43), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A60, add:int32(ldloc:int32(var_12_A4F), ldloc:int32(var_4_A59)))
stloc:int32(var_15_A64, ldloc:int32(var_12_A60))
stloc:int32(var_12_A67, ldloc:int32(var_3_A4C))
stloc:int32(var_15_A6E, add:int32(ldloc:int32(var_15_A64), ldloc:int32(var_8_A26)))
stloc:int32(var_12_A78, add:int32(ldloc:int32(var_12_A67), ldc.i4:int32(1836072691)))
stloc:int32(var_16_A85, add:int32(ldloc:int32(var_16_92B), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A8C, add:int32(ldloc:int32(var_12_A78), ldloc:int32(var_8_A26)))
}
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: 0x06009F72 RID: 40818 RVA: 0x0024ED8C File Offset: 0x0024CF8C
[Token(Token = "0x6009F72")]
[Address(RVA = "0x2248540", Offset = "0x2246F40", VA = "0x182248540", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F72)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD320Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD320Digest(var_0_06, newobj:RipeMD320Digest(RipeMD320Digest::.ctor, ldloc:RipeMD320Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD320Digest::X, ldloc:RipeMD320Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD320Digest::CopyIn, ldloc:RipeMD320Digest(var_0_06), ldloc:RipeMD320Digest(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: 0x06009F73 RID: 40819 RVA: 0x0024EDB8 File Offset: 0x0024CFB8
[Token(Token = "0x6009F73")]
[Address(RVA = "0x224B1E0", Offset = "0x2249BE0", VA = "0x18224B1E0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068BB RID: 26811
[Token(Token = "0x40068BB")]
private const int DigestLength = 40;
// Token: 0x040068BC RID: 26812
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068BC")]
private int H0;
// Token: 0x040068BD RID: 26813
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068BD")]
private int H1;
// Token: 0x040068BE RID: 26814
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068BE")]
private int H2;
// Token: 0x040068BF RID: 26815
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068BF")]
private int H3;
// Token: 0x040068C0 RID: 26816
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068C0")]
private int H4;
// Token: 0x040068C1 RID: 26817
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40068C1")]
private int H5;
// Token: 0x040068C2 RID: 26818
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068C2")]
private int H6;
// Token: 0x040068C3 RID: 26819
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
[Token(Token = "0x40068C3")]
private int H7;
// Token: 0x040068C4 RID: 26820
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068C4")]
private int H8;
// Token: 0x040068C5 RID: 26821
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40068C5")]
private int H9;
// Token: 0x040068C6 RID: 26822
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40068C6")]
private int[] X;
// Token: 0x040068C7 RID: 26823
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x40068C7")]
private int xOff;
}
}
@@ -0,0 +1,379 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001717 RID: 5911
[Token(Token = "0x2001717")]
[StructLayout(3)]
public class SM3Digest : GeneralDigest
{
// Token: 0x06009F7C RID: 40828 RVA: 0x0024EEF8 File Offset: 0x0024D0F8
[Token(Token = "0x6009F7C")]
[Address(RVA = "0x224C1F0", Offset = "0x224ABF0", VA = "0x18224C1F0")]
static SM3Digest()
{
uint[] array = new uint[64];
int num = 0;
SM3Digest.T = array;
uint[] t = SM3Digest.T;
num++;
t[0] = (uint)2043430169;
if (32UL < (ulong)16L)
{
}
SM3Digest.T[0] = (uint)2055708042;
}
// Token: 0x06009F7D RID: 40829 RVA: 0x0024EF4C File Offset: 0x0024D14C
[Token(Token = "0x6009F7D")]
[Address(RVA = "0x224C330", Offset = "0x224AD30", VA = "0x18224C330")]
public SM3Digest()
{
uint[] array = new uint[8];
this.V = array;
uint[] array2 = new uint[16];
this.inwords = array2;
uint[] array3 = new uint[68];
this.W = array3;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F7E RID: 40830 RVA: 0x0024EF94 File Offset: 0x0024D194
[Token(Token = "0x6009F7E")]
[Address(RVA = "0x224C3C0", Offset = "0x224ADC0", VA = "0x18224C3C0")]
public SM3Digest(SM3Digest t)
{
uint[] array = new uint[8];
this.V = array;
uint[] array2 = new uint[16];
this.inwords = array2;
uint[] array3 = new uint[68];
this.W = array3;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F7F RID: 40831 RVA: 0x0024EFDC File Offset: 0x0024D1DC
[Token(Token = "0x6009F7F")]
[Address(RVA = "0x224B380", Offset = "0x2249D80", VA = "0x18224B380")]
private void CopyIn(SM3Digest t)
{
uint[] v = this.V;
int length = v.Length;
int num = 0;
uint[] v2 = t.V;
int num2 = 0;
Array.Copy(v2, num2, v, num, length);
uint[] array = this.inwords;
int length2 = array.Length;
int num3 = 0;
uint[] array2 = t.inwords;
int num4 = 0;
Array.Copy(array2, num4, array, num3, length2);
int num5 = t.xOff;
this.xOff = num5;
}
// Token: 0x1700191B RID: 6427
// (get) Token: 0x06009F80 RID: 40832 RVA: 0x0024F054 File Offset: 0x0024D254
[Token(Token = "0x1700191B")]
public override string AlgorithmName
{
[Token(Token = "0x6009F80")]
[Address(RVA = "0x224C450", Offset = "0x224AE50", VA = "0x18224C450", Slot = "17")]
get
{
return "SM3";
}
}
// Token: 0x06009F81 RID: 40833 RVA: 0x0024F068 File Offset: 0x0024D268
[Token(Token = "0x6009F81")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x06009F82 RID: 40834 RVA: 0x0024F078 File Offset: 0x0024D278
[Token(Token = "0x6009F82")]
[Address(RVA = "0x224B400", Offset = "0x2249E00", VA = "0x18224B400", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F82)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SM3Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM3Digest(var_0_06, newobj:SM3Digest(SM3Digest::.ctor, ldloc:SM3Digest(this)))
stloc:uint32[](var_1_0D, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(8)))
stfld:uint32[](SM3Digest::V, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_1_0D))
stloc:uint32[](var_2_1C, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(16)))
stfld:uint32[](SM3Digest::inwords, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_2_1C))
stloc:uint32[](var_3_2B, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(68)))
stfld:uint32[](SM3Digest::W, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_3_2B))
call:void(SM3Digest::CopyIn, ldloc:SM3Digest(var_0_06), ldloc:SM3Digest(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: 0x06009F83 RID: 40835 RVA: 0x0024F0C0 File Offset: 0x0024D2C0
[Token(Token = "0x6009F83")]
[Address(RVA = "0x224BFB0", Offset = "0x224A9B0", VA = "0x18224BFB0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009F84 RID: 40836 RVA: 0x0024F0D8 File Offset: 0x0024D2D8
[Token(Token = "0x6009F84")]
[Address(RVA = "0x224C060", Offset = "0x224AA60", VA = "0x18224C060", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] v = this.V;
uint[] v2 = this.V;
uint[] v3 = this.V;
uint[] v4 = this.V;
uint[] v5 = this.V;
uint[] v6 = this.V;
uint[] v7 = this.V;
uint[] v8 = this.V;
this.xOff = (int)((ulong)0L);
}
// Token: 0x06009F85 RID: 40837 RVA: 0x0024F138 File Offset: 0x0024D338
[Token(Token = "0x6009F85")]
[Address(RVA = "0x224B4C0", Offset = "0x2249EC0", VA = "0x18224B4C0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.V, output, outOff);
return 32;
}
// Token: 0x06009F86 RID: 40838 RVA: 0x0024F15C File Offset: 0x0024D35C
[Token(Token = "0x6009F86")]
[Address(RVA = "0x224BF40", Offset = "0x224A940", VA = "0x18224BF40", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] array = this.inwords;
int num = this.xOff;
array[0] = (uint)inOff;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F87 RID: 40839 RVA: 0x0024F190 File Offset: 0x0024D390
[Token(Token = "0x6009F87")]
[Address(RVA = "0x224BE10", Offset = "0x224A810", VA = "0x18224BE10", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
int num;
int num2;
do
{
num = this.xOff;
num2 = 0;
}
while (num <= 14);
this.inwords[0] = (uint)num2;
int num3;
if (this.xOff < 14)
{
this.inwords[0] = (uint)num2;
num3 = this.xOff;
num3++;
this.xOff = num3;
}
uint[] array = this.inwords;
int num4 = num3 + 1;
this.xOff = num4;
array[0] = (uint)bitLength;
int num5 = this.xOff;
uint[] array2 = this.inwords;
int num6 = num5 + 1;
this.xOff = num6;
array2[0] = (uint)bitLength;
}
// Token: 0x06009F88 RID: 40840 RVA: 0x0024F230 File Offset: 0x0024D430
[Token(Token = "0x6009F88")]
[Address(RVA = "0x224B520", Offset = "0x2249F20", VA = "0x18224B520")]
private uint P0(uint x)
{
return x;
}
// Token: 0x06009F89 RID: 40841 RVA: 0x0024F240 File Offset: 0x0024D440
[Token(Token = "0x6009F89")]
[Address(RVA = "0x224B550", Offset = "0x2249F50", VA = "0x18224B550")]
private uint P1(uint x)
{
return x;
}
// Token: 0x06009F8A RID: 40842 RVA: 0x0024F250 File Offset: 0x0024D450
[Token(Token = "0x6009F8A")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private uint FF0(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009F8B RID: 40843 RVA: 0x0024F260 File Offset: 0x0024D460
[Token(Token = "0x6009F8B")]
[Address(RVA = "0xB6B7D0", Offset = "0xB6A1D0", VA = "0x180B6B7D0")]
private uint FF1(uint x, uint y, uint z)
{
return y;
}
// Token: 0x06009F8C RID: 40844 RVA: 0x0024F270 File Offset: 0x0024D470
[Token(Token = "0x6009F8C")]
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
private uint GG0(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009F8D RID: 40845 RVA: 0x0024F280 File Offset: 0x0024D480
[Token(Token = "0x6009F8D")]
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
private uint GG1(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009F8E RID: 40846 RVA: 0x0024F290 File Offset: 0x0024D490
[Token(Token = "0x6009F8E")]
[Address(RVA = "0x224B580", Offset = "0x2249F80", VA = "0x18224B580", Slot = "16")]
internal override void ProcessBlock()
{
int num = 0;
uint[] array = this.inwords;
uint[] w = this.W;
uint num2 = array[num];
num++;
w[0] = num2;
uint[] w2 = this.W;
int length = w2.Length;
uint num3 = w2[w];
uint num4;
num4 += (uint)1;
w2[0] = num3;
uint[] v = this.V;
int length2 = v.Length;
uint num5 = v[0];
uint num6 = v[0];
uint num7 = v[1];
uint num8 = v[1];
uint num9 = v[2];
uint num10 = v[2];
uint num11 = v[3];
uint num12 = v[3];
int num13 = 0;
num12 = num5;
uint[] t = SM3Digest.T;
uint num14;
num14 += num5;
num14 += num9;
uint[] w3 = this.W;
int length3 = w3.Length;
num13 += 4;
num7 += num8;
num6 = num11;
num6 += num12;
uint num15;
num6 += num15;
num6 += num14;
num13++;
num5 = num14;
uint num16 = w3[num13];
num7 += num16;
num5 += num7;
num7 = num10;
num9 = num6;
uint[] t2 = SM3Digest.T;
uint[] w4 = this.W;
uint num17;
num17 += num5;
num17 += num9;
num14 = num17;
int length4 = w4.Length;
num6 = num5;
num5 = num9;
uint num18 = w4[t2];
num18 += num7;
num18 += num6;
num5 += num18;
num5 += num11;
uint num19;
num5 += num19;
num5 += num14;
num4 += (uint)1;
uint[] v2 = this.V;
uint[] v3 = this.V;
uint[] v4 = this.V;
uint[] v5 = this.V;
uint[] v6 = this.V;
uint[] v7 = this.V;
uint[] v8 = this.V;
uint[] v9 = this.V;
this.xOff = (int)((ulong)0L);
}
// Token: 0x040068C8 RID: 26824
[Token(Token = "0x40068C8")]
private const int DIGEST_LENGTH = 32;
// Token: 0x040068C9 RID: 26825
[Token(Token = "0x40068C9")]
private const int BLOCK_SIZE = 16;
// Token: 0x040068CA RID: 26826
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068CA")]
private uint[] V;
// Token: 0x040068CB RID: 26827
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068CB")]
private uint[] inwords;
// Token: 0x040068CC RID: 26828
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068CC")]
private int xOff;
// Token: 0x040068CD RID: 26829
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068CD")]
private uint[] W;
// Token: 0x040068CE RID: 26830
[Token(Token = "0x40068CE")]
private static readonly uint[] T;
}
}
@@ -0,0 +1,350 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001718 RID: 5912
[Token(Token = "0x2001718")]
[StructLayout(3)]
public class Sha1Digest : GeneralDigest
{
// Token: 0x06009F8F RID: 40847 RVA: 0x0024F4C0 File Offset: 0x0024D6C0
[Token(Token = "0x6009F8F")]
[Address(RVA = "0x224D250", Offset = "0x224BC50", VA = "0x18224D250")]
public Sha1Digest()
{
uint[] array = new uint[80];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F90 RID: 40848 RVA: 0x0024F4EC File Offset: 0x0024D6EC
[Token(Token = "0x6009F90")]
[Address(RVA = "0x224D1E0", Offset = "0x224BBE0", VA = "0x18224D1E0")]
public Sha1Digest(Sha1Digest t)
{
uint[] array = new uint[80];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009F91 RID: 40849 RVA: 0x0024F518 File Offset: 0x0024D718
[Token(Token = "0x6009F91")]
[Address(RVA = "0x2243A40", Offset = "0x2242440", VA = "0x182243A40")]
private void CopyIn(Sha1Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x1700191C RID: 6428
// (get) Token: 0x06009F92 RID: 40850 RVA: 0x0024F5B8 File Offset: 0x0024D7B8
[Token(Token = "0x1700191C")]
public override string AlgorithmName
{
[Token(Token = "0x6009F92")]
[Address(RVA = "0x224D2B0", Offset = "0x224BCB0", VA = "0x18224D2B0", Slot = "17")]
get
{
return "SHA-1";
}
}
// Token: 0x06009F93 RID: 40851 RVA: 0x0024F5CC File Offset: 0x0024D7CC
[Token(Token = "0x6009F93")]
[Address(RVA = "0x15A18C0", Offset = "0x15A02C0", VA = "0x1815A18C0", Slot = "18")]
public override int GetDigestSize()
{
return 20;
}
// Token: 0x06009F94 RID: 40852 RVA: 0x0024F5DC File Offset: 0x0024D7DC
[Token(Token = "0x6009F94")]
[Address(RVA = "0x224D050", Offset = "0x224BA50", VA = "0x18224D050", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
x[0] = (uint)inOff;
int num2 = this.xOff;
num2++;
this.xOff = num2;
if (num2 == 16)
{
}
}
// Token: 0x06009F95 RID: 40853 RVA: 0x0024F61C File Offset: 0x0024D81C
[Token(Token = "0x6009F95")]
[Address(RVA = "0x224CFC0", Offset = "0x224B9C0", VA = "0x18224CFC0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x06009F96 RID: 40854 RVA: 0x0024F654 File Offset: 0x0024D854
[Token(Token = "0x6009F96")]
[Address(RVA = "0x224C520", Offset = "0x224AF20", VA = "0x18224C520", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
return 20;
}
// Token: 0x06009F97 RID: 40855 RVA: 0x0024F6AC File Offset: 0x0024D8AC
[Token(Token = "0x6009F97")]
[Address(RVA = "0x224D0E0", Offset = "0x224BAE0", VA = "0x18224D0E0", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)1732584193L);
this.H2 = (uint)((ulong)4023233417L);
this.H3 = (uint)((ulong)2562383102L);
this.H4 = (uint)((ulong)271733878L);
this.H5 = (uint)((ulong)3285377520L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x06009F98 RID: 40856 RVA: 0x0024F730 File Offset: 0x0024D930
[Token(Token = "0x6009F98")]
[Address(RVA = "0xA94430", Offset = "0xA92E30", VA = "0x180A94430")]
private static uint F(uint u, uint v, uint w)
{
return u;
}
// Token: 0x06009F99 RID: 40857 RVA: 0x0024F740 File Offset: 0x0024D940
[Token(Token = "0x6009F99")]
[Address(RVA = "0xA94420", Offset = "0xA92E20", VA = "0x180A94420")]
private static uint H(uint u, uint v, uint w)
{
return u;
}
// Token: 0x06009F9A RID: 40858 RVA: 0x0024F750 File Offset: 0x0024D950
[Token(Token = "0x6009F9A")]
[Address(RVA = "0x224C5C0", Offset = "0x224AFC0", VA = "0x18224C5C0")]
private static uint G(uint u, uint v, uint w)
{
return v;
}
// Token: 0x06009F9B RID: 40859 RVA: 0x0024F760 File Offset: 0x0024D960
[Token(Token = "0x6009F9B")]
[Address(RVA = "0x224C5D0", Offset = "0x224AFD0", VA = "0x18224C5D0", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = x.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
uint num3 = this.H1;
int num4 = 0;
uint num5 = this.H2;
uint num6 = this.H3;
uint num7 = this.H4;
uint num8 = this.H5;
uint[] x2 = this.X;
int length2 = x2.Length;
num8 += (uint)1518500249;
num3 = num6;
num2 = num3;
num5 += num2;
num5 += num8;
num2 = num5;
num3 = num5;
num2 += (uint)1518500249;
num3 += num2;
num3 += num7;
num3 = num5;
num2 = num3;
num5 += (uint)1518500249;
num8 = num5;
num5 += num2;
num5 += num6;
num4 += 3;
num7 = num3;
num2 = num5;
num3 = num5;
num3 += num2;
num8 += (uint)1518500249;
num8 += num3;
num6 = num5;
num3 = num8;
num2 = num8;
num3 += num2;
num4++;
int length3 = x2.Length;
num3 = num8;
num7 += num8;
num6 += num7;
num4 += 2;
num4 += 4;
num4 += 3;
ulong num9;
num9 += (ulong)1L;
int length4 = x2.Length;
num4 += -1894007588;
num4 += 4;
num4 += 4;
num4 += -1894007588;
num4 += 1859775393;
num4 += 4;
num4 += -1894007588;
num4 += num4;
num4 += num4;
num4 += 3;
num4 += num4;
num4 += -1894007588;
ulong num10;
num10 += (ulong)1L;
int length5 = x2.Length;
num4 += num4;
num4 += num4;
num4 += 2;
num4 += -1894007588;
num4 += 3;
ulong num11;
num11 += (ulong)1L;
int num12 = 0;
num3 += 2400959708U;
Array.Clear(x2, num12, 16);
}
// Token: 0x06009F9C RID: 40860 RVA: 0x0024F974 File Offset: 0x0024DB74
[Token(Token = "0x6009F9C")]
[Address(RVA = "0x224C480", Offset = "0x224AE80", VA = "0x18224C480", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F9C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha1Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha1Digest(var_0_06, newobj:Sha1Digest(Sha1Digest::.ctor, ldloc:Sha1Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(80)))
stfld:uint32[](Sha1Digest::X, ldloc:Sha1Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha1Digest::CopyIn, ldloc:Sha1Digest(var_0_06), ldloc:Sha1Digest(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: 0x06009F9D RID: 40861 RVA: 0x0024F9A0 File Offset: 0x0024DBA0
[Token(Token = "0x6009F9D")]
[Address(RVA = "0x224D140", Offset = "0x224BB40", VA = "0x18224D140", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068CF RID: 26831
[Token(Token = "0x40068CF")]
private const int DigestLength = 20;
// Token: 0x040068D0 RID: 26832
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068D0")]
private uint H1;
// Token: 0x040068D1 RID: 26833
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068D1")]
private uint H2;
// Token: 0x040068D2 RID: 26834
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068D2")]
private uint H3;
// Token: 0x040068D3 RID: 26835
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068D3")]
private uint H4;
// Token: 0x040068D4 RID: 26836
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068D4")]
private uint H5;
// Token: 0x040068D5 RID: 26837
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068D5")]
private uint[] X;
// Token: 0x040068D6 RID: 26838
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068D6")]
private int xOff;
// Token: 0x040068D7 RID: 26839
[Token(Token = "0x40068D7")]
private const uint Y1 = 1518500249U;
// Token: 0x040068D8 RID: 26840
[Token(Token = "0x40068D8")]
private const uint Y2 = 1859775393U;
// Token: 0x040068D9 RID: 26841
[Token(Token = "0x40068D9")]
private const uint Y3 = 2400959708U;
// Token: 0x040068DA RID: 26842
[Token(Token = "0x40068DA")]
private const uint Y4 = 3395469782U;
}
}
@@ -0,0 +1,425 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001719 RID: 5913
[Token(Token = "0x2001719")]
[StructLayout(3)]
public class Sha224Digest : GeneralDigest
{
// Token: 0x06009F9E RID: 40862 RVA: 0x0024F9B8 File Offset: 0x0024DBB8
[Token(Token = "0x6009F9E")]
[Address(RVA = "0x224E260", Offset = "0x224CC60", VA = "0x18224E260")]
public Sha224Digest()
{
uint[] array = new uint[64];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x06009F9F RID: 40863 RVA: 0x0024F9E4 File Offset: 0x0024DBE4
[Token(Token = "0x6009F9F")]
[Address(RVA = "0x224E1F0", Offset = "0x224CBF0", VA = "0x18224E1F0")]
public Sha224Digest(Sha224Digest t)
{
uint[] array = new uint[64];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009FA0 RID: 40864 RVA: 0x0024FA10 File Offset: 0x0024DC10
[Token(Token = "0x6009FA0")]
[Address(RVA = "0x22465F0", Offset = "0x2244FF0", VA = "0x1822465F0")]
private void CopyIn(Sha224Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint h6 = t.H6;
this.H6 = h6;
uint h7 = t.H7;
this.H7 = h7;
uint h8 = t.H8;
this.H8 = h8;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x1700191D RID: 6429
// (get) Token: 0x06009FA1 RID: 40865 RVA: 0x0024FAE0 File Offset: 0x0024DCE0
[Token(Token = "0x1700191D")]
public override string AlgorithmName
{
[Token(Token = "0x6009FA1")]
[Address(RVA = "0x224E2C0", Offset = "0x224CCC0", VA = "0x18224E2C0", Slot = "17")]
get
{
return "SHA-224";
}
}
// Token: 0x06009FA2 RID: 40866 RVA: 0x0024FAF4 File Offset: 0x0024DCF4
[Token(Token = "0x6009FA2")]
[Address(RVA = "0x1BE9190", Offset = "0x1BE7B90", VA = "0x181BE9190", Slot = "18")]
public override int GetDigestSize()
{
return 28;
}
// Token: 0x06009FA3 RID: 40867 RVA: 0x0024FB04 File Offset: 0x0024DD04
[Token(Token = "0x6009FA3")]
[Address(RVA = "0x224DF60", Offset = "0x224C960", VA = "0x18224DF60", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
x[0] = (uint)inOff;
int num2 = this.xOff;
num2++;
this.xOff = num2;
if (num2 == 16)
{
}
}
// Token: 0x06009FA4 RID: 40868 RVA: 0x0024FB44 File Offset: 0x0024DD44
[Token(Token = "0x6009FA4")]
[Address(RVA = "0x224DED0", Offset = "0x224C8D0", VA = "0x18224DED0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x06009FA5 RID: 40869 RVA: 0x0024FB7C File Offset: 0x0024DD7C
[Token(Token = "0x6009FA5")]
[Address(RVA = "0x224D380", Offset = "0x224BD80", VA = "0x18224D380", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
Pack.UInt32_To_BE(this.H6, output, outOff);
Pack.UInt32_To_BE(this.H7, output, outOff);
return 28;
}
// Token: 0x06009FA6 RID: 40870 RVA: 0x0024FBEC File Offset: 0x0024DDEC
[Token(Token = "0x6009FA6")]
[Address(RVA = "0x224E090", Offset = "0x224CA90", VA = "0x18224E090", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)3238371032L);
this.H2 = (uint)((ulong)914150663L);
this.H3 = (uint)((ulong)812702999L);
this.H4 = (uint)((ulong)4144912697L);
this.H5 = (uint)((ulong)4290775857L);
this.H6 = (uint)((ulong)1750603025L);
this.H7 = (uint)((ulong)1694076839L);
this.H8 = (uint)((ulong)3204075428L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x06009FA7 RID: 40871 RVA: 0x0024FC9C File Offset: 0x0024DE9C
[Token(Token = "0x6009FA7")]
[Address(RVA = "0x224D450", Offset = "0x224BE50", VA = "0x18224D450", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = this.X.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
while (num <= (uint)63)
{
}
uint num3 = this.H4;
int num4 = 0;
uint num5 = this.H3;
uint num6 = this.H5;
uint num7 = this.H1;
uint num8 = this.H2;
uint num9 = this.H6;
uint num10 = this.H7;
uint num11 = this.H8;
num6 = num2;
int length2 = Sha224Digest.K.Length;
int length3 = this.X.Length;
num2 = num6;
num6 = num9;
num2 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num11 += num2;
num2 = num3;
num11 = num3;
num2 += num3;
num6 = num11;
num10 += num2;
num2 = num11;
num11 += num10;
num11 += num2;
num2 = num5;
num11 = num5;
num2 += num5;
num9 += num2;
num8 += num9;
num2 = num11;
num3 = num11;
num5 = num11;
num9 += num5;
num9 += num2;
num4 += 3;
num2 = num8;
num11 = num8;
num5 = num9;
num2 += num5;
num6 += num2;
num2 = num9;
num7 += num6;
num11 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num5 = num7;
num2 += num5;
num3 += num2;
num2 = num11;
num3 = num9;
num5 = num9;
num3 += num2;
num4 += 5;
num2 = num11;
num3 = num11;
num2 += num11;
num11 = num3;
num5 += num2;
num2 = num3;
num11 += num5;
num11 += num2;
num2 = num11;
num3 = num11;
num2 += num3;
num8 += num2;
num9 += num8;
num2 = num11;
num3 = num11;
num8 += num3;
num8 += num2;
num4 += 7;
num2 = num9;
num4 += 8;
num3 = num8;
num2 += num3;
num7 += num2;
num11 += num7;
num2 = num8;
num3 = num11;
num7 += num3;
num4++;
num7 += num2;
int num12 = 0;
uint[] x2 = this.X;
this.H5 = num3;
this.H6 = num3;
this.H7 = num3;
this.xOff = (int)((ulong)0L);
Array.Clear(x2, num12, 16);
}
// Token: 0x06009FA8 RID: 40872 RVA: 0x0024FF90 File Offset: 0x0024E190
[Token(Token = "0x6009FA8")]
[Address(RVA = "0x704FE0", Offset = "0x7039E0", VA = "0x180704FE0")]
private static uint Ch(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009FA9 RID: 40873 RVA: 0x0024FFA0 File Offset: 0x0024E1A0
[Token(Token = "0x6009FA9")]
[Address(RVA = "0x7051E0", Offset = "0x703BE0", VA = "0x1807051E0")]
private static uint Maj(uint x, uint y, uint z)
{
return y;
}
// Token: 0x06009FAA RID: 40874 RVA: 0x0024FFB0 File Offset: 0x0024E1B0
[Token(Token = "0x6009FAA")]
[Address(RVA = "0x224E110", Offset = "0x224CB10", VA = "0x18224E110")]
private static uint Sum0(uint x)
{
return x;
}
// Token: 0x06009FAB RID: 40875 RVA: 0x0024FFC0 File Offset: 0x0024E1C0
[Token(Token = "0x6009FAB")]
[Address(RVA = "0x224E150", Offset = "0x224CB50", VA = "0x18224E150")]
private static uint Sum1(uint x)
{
return x;
}
// Token: 0x06009FAC RID: 40876 RVA: 0x0024FFD0 File Offset: 0x0024E1D0
[Token(Token = "0x6009FAC")]
[Address(RVA = "0x2120A90", Offset = "0x211F490", VA = "0x182120A90")]
private static uint Theta0(uint x)
{
return x;
}
// Token: 0x06009FAD RID: 40877 RVA: 0x0024FFE0 File Offset: 0x0024E1E0
[Token(Token = "0x6009FAD")]
[Address(RVA = "0x2120AC0", Offset = "0x211F4C0", VA = "0x182120AC0")]
private static uint Theta1(uint x)
{
return x;
}
// Token: 0x06009FAE RID: 40878 RVA: 0x0024FFF0 File Offset: 0x0024E1F0
[Token(Token = "0x6009FAE")]
[Address(RVA = "0x224D2E0", Offset = "0x224BCE0", VA = "0x18224D2E0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009FAE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha224Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha224Digest(var_0_06, newobj:Sha224Digest(Sha224Digest::.ctor, ldloc:Sha224Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(64)))
stfld:uint32[](Sha224Digest::X, ldloc:Sha224Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha224Digest::CopyIn, ldloc:Sha224Digest(var_0_06), ldloc:Sha224Digest(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: 0x06009FAF RID: 40879 RVA: 0x0025001C File Offset: 0x0024E21C
[Token(Token = "0x6009FAF")]
[Address(RVA = "0x224DFF0", Offset = "0x224C9F0", VA = "0x18224DFF0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009FB0 RID: 40880 RVA: 0x00250034 File Offset: 0x0024E234
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009FB0")]
[Address(RVA = "0x224E190", Offset = "0x224CB90", VA = "0x18224E190")]
static Sha224Digest()
{
uint[] array = new uint[64];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.433175D38B13FFE177FDD661A309F1B528B3F6E2).FieldHandle);
Sha224Digest.K = array;
}
// Token: 0x040068DB RID: 26843
[Token(Token = "0x40068DB")]
private const int DigestLength = 28;
// Token: 0x040068DC RID: 26844
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068DC")]
private uint H1;
// Token: 0x040068DD RID: 26845
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068DD")]
private uint H2;
// Token: 0x040068DE RID: 26846
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068DE")]
private uint H3;
// Token: 0x040068DF RID: 26847
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068DF")]
private uint H4;
// Token: 0x040068E0 RID: 26848
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068E0")]
private uint H5;
// Token: 0x040068E1 RID: 26849
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40068E1")]
private uint H6;
// Token: 0x040068E2 RID: 26850
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068E2")]
private uint H7;
// Token: 0x040068E3 RID: 26851
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
[Token(Token = "0x40068E3")]
private uint H8;
// Token: 0x040068E4 RID: 26852
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068E4")]
private uint[] X;
// Token: 0x040068E5 RID: 26853
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40068E5")]
private int xOff;
// Token: 0x040068E6 RID: 26854
[Token(Token = "0x40068E6")]
internal static readonly uint[] K;
}
}
@@ -0,0 +1,432 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171A RID: 5914
[Token(Token = "0x200171A")]
[StructLayout(3)]
public class Sha256Digest : GeneralDigest
{
// Token: 0x06009FB1 RID: 40881 RVA: 0x0025005C File Offset: 0x0024E25C
[Token(Token = "0x6009FB1")]
[Address(RVA = "0x224F110", Offset = "0x224DB10", VA = "0x18224F110")]
public Sha256Digest()
{
uint[] array = new uint[64];
this.X = array;
base..ctor();
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
}
// Token: 0x06009FB2 RID: 40882 RVA: 0x002500F0 File Offset: 0x0024E2F0
[Token(Token = "0x6009FB2")]
[Address(RVA = "0x224F1A0", Offset = "0x224DBA0", VA = "0x18224F1A0")]
public Sha256Digest(Sha256Digest t)
{
uint[] array = new uint[64];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x06009FB3 RID: 40883 RVA: 0x0025011C File Offset: 0x0024E31C
[Token(Token = "0x6009FB3")]
[Address(RVA = "0x22465F0", Offset = "0x2244FF0", VA = "0x1822465F0")]
private void CopyIn(Sha256Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint h6 = t.H6;
this.H6 = h6;
uint h7 = t.H7;
this.H7 = h7;
uint h8 = t.H8;
this.H8 = h8;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x1700191E RID: 6430
// (get) Token: 0x06009FB4 RID: 40884 RVA: 0x002501EC File Offset: 0x0024E3EC
[Token(Token = "0x1700191E")]
public override string AlgorithmName
{
[Token(Token = "0x6009FB4")]
[Address(RVA = "0x224F210", Offset = "0x224DC10", VA = "0x18224F210", Slot = "17")]
get
{
return "SHA-256";
}
}
// Token: 0x06009FB5 RID: 40885 RVA: 0x00250200 File Offset: 0x0024E400
[Token(Token = "0x6009FB5")]
[Address(RVA = "0xC390D0", Offset = "0xC37AD0", VA = "0x180C390D0", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x06009FB6 RID: 40886 RVA: 0x00250210 File Offset: 0x0024E410
[Token(Token = "0x6009FB6")]
[Address(RVA = "0x224DF60", Offset = "0x224C960", VA = "0x18224DF60", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
x[0] = (uint)inOff;
int num2 = this.xOff;
num2++;
this.xOff = num2;
if (num2 == 16)
{
}
}
// Token: 0x06009FB7 RID: 40887 RVA: 0x00250250 File Offset: 0x0024E450
[Token(Token = "0x6009FB7")]
[Address(RVA = "0x224DED0", Offset = "0x224C8D0", VA = "0x18224DED0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x06009FB8 RID: 40888 RVA: 0x00250288 File Offset: 0x0024E488
[Token(Token = "0x6009FB8")]
[Address(RVA = "0x224E390", Offset = "0x224CD90", VA = "0x18224E390", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
Pack.UInt32_To_BE(this.H6, output, outOff);
Pack.UInt32_To_BE(this.H7, output, outOff);
Pack.UInt32_To_BE(this.H8, output, outOff);
return 32;
}
// Token: 0x06009FB9 RID: 40889 RVA: 0x00250308 File Offset: 0x0024E508
[Token(Token = "0x6009FB9")]
[Address(RVA = "0x224EF90", Offset = "0x224D990", VA = "0x18224EF90", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x06009FBA RID: 40890 RVA: 0x002503B4 File Offset: 0x0024E5B4
[Token(Token = "0x6009FBA")]
[Address(RVA = "0x224F240", Offset = "0x224DC40", VA = "0x18224F240")]
private void initHs()
{
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
}
// Token: 0x06009FBB RID: 40891 RVA: 0x00250434 File Offset: 0x0024E634
[Token(Token = "0x6009FBB")]
[Address(RVA = "0x224E470", Offset = "0x224CE70", VA = "0x18224E470", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = this.X.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
while (num <= (uint)63)
{
}
uint num3 = this.H4;
int num4 = 0;
uint num5 = this.H3;
uint num6 = this.H5;
uint num7 = this.H1;
uint num8 = this.H2;
uint num9 = this.H6;
uint num10 = this.H7;
uint num11 = this.H8;
num6 = num2;
int length2 = Sha256Digest.K.Length;
int length3 = this.X.Length;
num2 = num6;
num6 = num9;
num2 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num11 += num2;
num2 = num3;
num11 = num3;
num2 += num3;
num6 = num11;
num10 += num2;
num2 = num11;
num11 += num10;
num11 += num2;
num2 = num5;
num11 = num5;
num2 += num5;
num9 += num2;
num8 += num9;
num2 = num11;
num3 = num11;
num5 = num11;
num9 += num5;
num9 += num2;
num4 += 3;
num2 = num8;
num11 = num8;
num5 = num9;
num2 += num5;
num6 += num2;
num2 = num9;
num7 += num6;
num11 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num5 = num7;
num2 += num5;
num3 += num2;
num2 = num11;
num3 = num9;
num5 = num9;
num3 += num2;
num4 += 5;
num2 = num11;
num3 = num11;
num2 += num11;
num11 = num3;
num5 += num2;
num2 = num3;
num11 += num5;
num11 += num2;
num2 = num11;
num3 = num11;
num2 += num3;
num8 += num2;
num9 += num8;
num2 = num11;
num3 = num11;
num8 += num3;
num8 += num2;
num4 += 7;
num2 = num9;
num4 += 8;
num3 = num8;
num2 += num3;
num7 += num2;
num11 += num7;
num2 = num8;
num3 = num11;
num7 += num3;
num4++;
num7 += num2;
int num12 = 0;
uint[] x2 = this.X;
this.H5 = num3;
this.H6 = num3;
this.H7 = num3;
this.xOff = (int)((ulong)0L);
Array.Clear(x2, num12, 16);
}
// Token: 0x06009FBC RID: 40892 RVA: 0x00250728 File Offset: 0x0024E928
[Token(Token = "0x6009FBC")]
[Address(RVA = "0x224F060", Offset = "0x224DA60", VA = "0x18224F060")]
private static uint Sum1Ch(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009FBD RID: 40893 RVA: 0x00250738 File Offset: 0x0024E938
[Token(Token = "0x6009FBD")]
[Address(RVA = "0x224F010", Offset = "0x224DA10", VA = "0x18224F010")]
private static uint Sum0Maj(uint x, uint y, uint z)
{
return x;
}
// Token: 0x06009FBE RID: 40894 RVA: 0x00250748 File Offset: 0x0024E948
[Token(Token = "0x6009FBE")]
[Address(RVA = "0x2120A90", Offset = "0x211F490", VA = "0x182120A90")]
private static uint Theta0(uint x)
{
return x;
}
// Token: 0x06009FBF RID: 40895 RVA: 0x00250758 File Offset: 0x0024E958
[Token(Token = "0x6009FBF")]
[Address(RVA = "0x2120AC0", Offset = "0x211F4C0", VA = "0x182120AC0")]
private static uint Theta1(uint x)
{
return x;
}
// Token: 0x06009FC0 RID: 40896 RVA: 0x00250768 File Offset: 0x0024E968
[Token(Token = "0x6009FC0")]
[Address(RVA = "0x224E2F0", Offset = "0x224CCF0", VA = "0x18224E2F0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009FC0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha256Digest(var_0_06, newobj:Sha256Digest(Sha256Digest::.ctor, ldloc:Sha256Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(64)))
stfld:uint32[](Sha256Digest::X, ldloc:Sha256Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha256Digest::CopyIn, ldloc:Sha256Digest(var_0_06), ldloc:Sha256Digest(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: 0x06009FC1 RID: 40897 RVA: 0x00250794 File Offset: 0x0024E994
[Token(Token = "0x6009FC1")]
[Address(RVA = "0x224EEF0", Offset = "0x224D8F0", VA = "0x18224EEF0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x06009FC2 RID: 40898 RVA: 0x002507AC File Offset: 0x0024E9AC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009FC2")]
[Address(RVA = "0x224F0B0", Offset = "0x224DAB0", VA = "0x18224F0B0")]
static Sha256Digest()
{
uint[] array = new uint[64];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.433175D38B13FFE177FDD661A309F1B528B3F6E2).FieldHandle);
Sha256Digest.K = array;
}
// Token: 0x040068E7 RID: 26855
[Token(Token = "0x40068E7")]
private const int DigestLength = 32;
// Token: 0x040068E8 RID: 26856
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40068E8")]
private uint H1;
// Token: 0x040068E9 RID: 26857
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40068E9")]
private uint H2;
// Token: 0x040068EA RID: 26858
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40068EA")]
private uint H3;
// Token: 0x040068EB RID: 26859
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x40068EB")]
private uint H4;
// Token: 0x040068EC RID: 26860
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40068EC")]
private uint H5;
// Token: 0x040068ED RID: 26861
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40068ED")]
private uint H6;
// Token: 0x040068EE RID: 26862
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40068EE")]
private uint H7;
// Token: 0x040068EF RID: 26863
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
[Token(Token = "0x40068EF")]
private uint H8;
// Token: 0x040068F0 RID: 26864
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40068F0")]
private uint[] X;
// Token: 0x040068F1 RID: 26865
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40068F1")]
private int xOff;
// Token: 0x040068F2 RID: 26866
[Token(Token = "0x40068F2")]
private static readonly uint[] K;
}
}
@@ -0,0 +1,125 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171B RID: 5915
[Token(Token = "0x200171B")]
[StructLayout(3)]
public class Sha384Digest : LongDigest
{
// Token: 0x06009FC3 RID: 40899 RVA: 0x002507D4 File Offset: 0x0024E9D4
[Token(Token = "0x6009FC3")]
[Address(RVA = "0x224F570", Offset = "0x224DF70", VA = "0x18224F570")]
public Sha384Digest()
{
}
// Token: 0x06009FC4 RID: 40900 RVA: 0x002507E8 File Offset: 0x0024E9E8
[Token(Token = "0x6009FC4")]
[Address(RVA = "0x224F500", Offset = "0x224DF00", VA = "0x18224F500")]
public Sha384Digest(Sha384Digest t)
: base(t)
{
}
// Token: 0x1700191F RID: 6431
// (get) Token: 0x06009FC5 RID: 40901 RVA: 0x002507FC File Offset: 0x0024E9FC
[Token(Token = "0x1700191F")]
public override string AlgorithmName
{
[Token(Token = "0x6009FC5")]
[Address(RVA = "0x224F5D0", Offset = "0x224DFD0", VA = "0x18224F5D0", Slot = "14")]
get
{
return "SHA-384";
}
}
// Token: 0x06009FC6 RID: 40902 RVA: 0x00250810 File Offset: 0x0024EA10
[Token(Token = "0x6009FC6")]
[Address(RVA = "0x199C380", Offset = "0x199AD80", VA = "0x18199C380", Slot = "15")]
public override int GetDigestSize()
{
return 48;
}
// Token: 0x06009FC7 RID: 40903 RVA: 0x00250820 File Offset: 0x0024EA20
[Token(Token = "0x6009FC7")]
[Address(RVA = "0x224F310", Offset = "0x224DD10", VA = "0x18224F310", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt64_To_BE(this.H1, output, outOff);
Pack.UInt64_To_BE(this.H2, output, outOff);
Pack.UInt64_To_BE(this.H3, output, outOff);
Pack.UInt64_To_BE(this.H4, output, outOff);
Pack.UInt64_To_BE(this.H5, output, outOff);
Pack.UInt64_To_BE(this.H6, output, outOff);
return 48;
}
// Token: 0x06009FC8 RID: 40904 RVA: 0x00250884 File Offset: 0x0024EA84
[Token(Token = "0x6009FC8")]
[Address(RVA = "0x224F3D0", Offset = "0x224DDD0", VA = "0x18224F3D0", Slot = "13")]
public override void Reset()
{
base.Reset();
this.H1 = (ulong)(-3766243637369397544L);
this.H2 = (ulong)7105036623409894663L;
this.H3 = (ulong)(-7973340178411365097L);
this.H4 = (ulong)1526699215303891257L;
this.H5 = (ulong)7436329637833083697L;
this.H6 = (ulong)(-8163818279084223215L);
this.H7 = (ulong)(-2662702644619276377L);
this.H8 = (ulong)5167115440072839076L;
}
// Token: 0x06009FC9 RID: 40905 RVA: 0x00250918 File Offset: 0x0024EB18
[Token(Token = "0x6009FC9")]
[Address(RVA = "0x224F280", Offset = "0x224DC80", VA = "0x18224F280", Slot = "17")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009FC9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha384Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha384Digest(var_0_06, newobj:Sha384Digest(Sha384Digest::.ctor, ldloc:Sha384Digest(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: 0x06009FCA RID: 40906 RVA: 0x0025092C File Offset: 0x0024EB2C
[Token(Token = "0x6009FCA")]
[Address(RVA = "0x224F460", Offset = "0x224DE60", VA = "0x18224F460", Slot = "18")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068F3 RID: 26867
[Token(Token = "0x40068F3")]
private const int DigestLength = 48;
}
}
@@ -0,0 +1,114 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001716 RID: 5910
[Token(Token = "0x2001716")]
[StructLayout(3)]
public class Sha3Digest : KeccakDigest
{
// Token: 0x06009F74 RID: 40820 RVA: 0x0024EDD0 File Offset: 0x0024CFD0
[Token(Token = "0x6009F74")]
[Address(RVA = "0x224F600", Offset = "0x224E000", VA = "0x18224F600")]
private static int CheckBitLength(int bitLength)
{
if (bitLength <= 256 || bitLength != 384)
{
}
return bitLength;
}
// Token: 0x06009F75 RID: 40821 RVA: 0x0024EE04 File Offset: 0x0024D004
[Token(Token = "0x6009F75")]
[Address(RVA = "0x224FA50", Offset = "0x224E450", VA = "0x18224FA50")]
public Sha3Digest()
: base(256)
{
}
// Token: 0x06009F76 RID: 40822 RVA: 0x0024EE1C File Offset: 0x0024D01C
[Token(Token = "0x6009F76")]
[Address(RVA = "0x224F950", Offset = "0x224E350", VA = "0x18224F950")]
public Sha3Digest(int bitLength)
{
if (bitLength <= 256 || bitLength != 384)
{
}
base..ctor(bitLength);
}
// Token: 0x06009F77 RID: 40823 RVA: 0x0024EE4C File Offset: 0x0024D04C
[Token(Token = "0x6009F77")]
[Address(RVA = "0x224F8E0", Offset = "0x224E2E0", VA = "0x18224F8E0")]
public Sha3Digest(Sha3Digest source)
: base(source)
{
}
// Token: 0x1700191A RID: 6426
// (get) Token: 0x06009F78 RID: 40824 RVA: 0x0024EE60 File Offset: 0x0024D060
[Token(Token = "0x1700191A")]
public override string AlgorithmName
{
[Token(Token = "0x6009F78")]
[Address(RVA = "0x224FAD0", Offset = "0x224E4D0", VA = "0x18224FAD0", Slot = "13")]
get
{
int fixedOutputLength = this.fixedOutputLength;
return "SHA3-" + fixedOutputLength;
}
}
// Token: 0x06009F79 RID: 40825 RVA: 0x0024EE80 File Offset: 0x0024D080
[Token(Token = "0x6009F79")]
[Address(RVA = "0x224F890", Offset = "0x224E290", VA = "0x18224F890", Slot = "17")]
public override int DoFinal(byte[] output, int outOff)
{
base.AbsorbBits(2, 2);
return base.DoFinal(output, outOff);
}
// Token: 0x06009F7A RID: 40826 RVA: 0x0024EEA0 File Offset: 0x0024D0A0
[Token(Token = "0x6009F7A")]
[Address(RVA = "0x224F750", Offset = "0x224E150", VA = "0x18224F750", Slot = "18")]
protected override int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
int num = 0;
byte[] array = new byte[0];
uint num2;
array[0] = (byte)num2;
int num3 = 0;
base.Absorb(array, num3, 1);
return base.DoFinal(output, outOff, (byte)num2, num);
}
// Token: 0x06009F7B RID: 40827 RVA: 0x0024EEE4 File Offset: 0x0024D0E4
[Token(Token = "0x6009F7B")]
[Address(RVA = "0x224F6C0", Offset = "0x224E0C0", VA = "0x18224F6C0", Slot = "21")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009F7B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha3Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha3Digest(var_0_06, newobj:Sha3Digest(Sha3Digest::.ctor, ldloc:Sha3Digest[exp:int32](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
*/;
}
}
}
@@ -0,0 +1,127 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171C RID: 5916
[Token(Token = "0x200171C")]
[StructLayout(3)]
public class Sha512Digest : LongDigest
{
// Token: 0x06009FCB RID: 40907 RVA: 0x00250944 File Offset: 0x0024EB44
[Token(Token = "0x6009FCB")]
[Address(RVA = "0x224FE40", Offset = "0x224E840", VA = "0x18224FE40")]
public Sha512Digest()
{
}
// Token: 0x06009FCC RID: 40908 RVA: 0x00250958 File Offset: 0x0024EB58
[Token(Token = "0x6009FCC")]
[Address(RVA = "0x224FDD0", Offset = "0x224E7D0", VA = "0x18224FDD0")]
public Sha512Digest(Sha512Digest t)
: base(t)
{
}
// Token: 0x17001920 RID: 6432
// (get) Token: 0x06009FCD RID: 40909 RVA: 0x0025096C File Offset: 0x0024EB6C
[Token(Token = "0x17001920")]
public override string AlgorithmName
{
[Token(Token = "0x6009FCD")]
[Address(RVA = "0x224FEA0", Offset = "0x224E8A0", VA = "0x18224FEA0", Slot = "14")]
get
{
return "SHA-512";
}
}
// Token: 0x06009FCE RID: 40910 RVA: 0x00250980 File Offset: 0x0024EB80
[Token(Token = "0x6009FCE")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "15")]
public override int GetDigestSize()
{
return 64;
}
// Token: 0x06009FCF RID: 40911 RVA: 0x00250990 File Offset: 0x0024EB90
[Token(Token = "0x6009FCF")]
[Address(RVA = "0x224FBC0", Offset = "0x224E5C0", VA = "0x18224FBC0", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt64_To_BE(this.H1, output, outOff);
Pack.UInt64_To_BE(this.H2, output, outOff);
Pack.UInt64_To_BE(this.H3, output, outOff);
Pack.UInt64_To_BE(this.H4, output, outOff);
Pack.UInt64_To_BE(this.H5, output, outOff);
Pack.UInt64_To_BE(this.H6, output, outOff);
Pack.UInt64_To_BE(this.H7, output, outOff);
Pack.UInt64_To_BE(this.H8, output, outOff);
return 64;
}
// Token: 0x06009FD0 RID: 40912 RVA: 0x00250A10 File Offset: 0x0024EC10
[Token(Token = "0x6009FD0")]
[Address(RVA = "0x224FD40", Offset = "0x224E740", VA = "0x18224FD40", Slot = "13")]
public override void Reset()
{
base.Reset();
this.H1 = (ulong)7640891576956012808L;
this.H2 = (ulong)(-4942790177534073029L);
this.H3 = (ulong)4354685564936845355L;
this.H4 = (ulong)(-6534734903238641935L);
this.H5 = (ulong)5840696475078001361L;
this.H6 = (ulong)(-7276294671716946913L);
this.H7 = (ulong)2270897969802886507L;
this.H8 = (ulong)6620516959819538809L;
}
// Token: 0x06009FD1 RID: 40913 RVA: 0x00250AA4 File Offset: 0x0024ECA4
[Token(Token = "0x6009FD1")]
[Address(RVA = "0x224FB30", Offset = "0x224E530", VA = "0x18224FB30", Slot = "17")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009FD1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha512Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha512Digest(var_0_06, newobj:Sha512Digest(Sha512Digest::.ctor, ldloc:Sha512Digest(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: 0x06009FD2 RID: 40914 RVA: 0x00250AB8 File Offset: 0x0024ECB8
[Token(Token = "0x6009FD2")]
[Address(RVA = "0x224FCA0", Offset = "0x224E6A0", VA = "0x18224FCA0", Slot = "18")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040068F4 RID: 26868
[Token(Token = "0x40068F4")]
private const int DigestLength = 64;
}
}
@@ -0,0 +1,361 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171D RID: 5917
[Token(Token = "0x200171D")]
[StructLayout(3)]
public class Sha512tDigest : LongDigest
{
// Token: 0x06009FD3 RID: 40915 RVA: 0x00250AD0 File Offset: 0x0024ECD0
[Token(Token = "0x6009FD3")]
[Address(RVA = "0x22505F0", Offset = "0x224EFF0", VA = "0x1822505F0")]
public Sha512tDigest(int bitLength)
{
/*
An exception occurred when decompiling this method (06009FD3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha512tDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_42:
stloc:ArgumentException(var_3_51, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot be 384 use SHA384 instead"), ldstr:string("bitLength")))
}
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: 0x06009FD4 RID: 40916 RVA: 0x00250B30 File Offset: 0x0024ED30
[Token(Token = "0x6009FD4")]
[Address(RVA = "0x2250560", Offset = "0x224EF60", VA = "0x182250560")]
public Sha512tDigest(Sha512tDigest t)
: base(t)
{
int num = t.digestLength;
this.digestLength = num;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x17001921 RID: 6433
// (get) Token: 0x06009FD5 RID: 40917 RVA: 0x00250B60 File Offset: 0x0024ED60
[Token(Token = "0x17001921")]
public override string AlgorithmName
{
[Token(Token = "0x6009FD5")]
[Address(RVA = "0x2250770", Offset = "0x224F170", VA = "0x182250770", Slot = "14")]
get
{
int num = this.digestLength;
return "SHA-512/" + num;
}
}
// Token: 0x06009FD6 RID: 40918 RVA: 0x00250B80 File Offset: 0x0024ED80
[Token(Token = "0x6009FD6")]
[Address(RVA = "0x54D7F0", Offset = "0x54C1F0", VA = "0x18054D7F0", Slot = "15")]
public override int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x06009FD7 RID: 40919 RVA: 0x00250B94 File Offset: 0x0024ED94
[Token(Token = "0x6009FD7")]
[Address(RVA = "0x224FF90", Offset = "0x224E990", VA = "0x18224FF90", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int num = this.digestLength;
if (num > 0)
{
ulong h = this.H1;
Sha512tDigest.UInt32_To_BE((uint)h, output, outOff, num);
if (num > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h, output, outOff, num);
}
}
int num2 = this.digestLength;
ulong h2;
if (num2 > 0)
{
h2 = this.H2;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num2 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num3 = this.digestLength;
if (num3 > 0)
{
num2 = num3;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num3 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num4 = this.digestLength;
if (num4 > 0)
{
num2 = num4;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num4 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num5 = this.digestLength;
if (num5 > 0)
{
num2 = num5;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num5 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num6 = this.digestLength;
if (num6 > 0)
{
num2 = num6;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num6 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num7 = this.digestLength;
if (num7 > 0)
{
num2 = num7;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num7 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num8 = this.digestLength;
if (num8 > 0)
{
num2 = num8;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num8 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
return this.digestLength;
}
// Token: 0x06009FD8 RID: 40920 RVA: 0x00250CF8 File Offset: 0x0024EEF8
[Token(Token = "0x6009FD8")]
[Address(RVA = "0x2250240", Offset = "0x224EC40", VA = "0x182250240", Slot = "13")]
public override void Reset()
{
base.Reset();
ulong h1t = this.H1t;
this.H1 = h1t;
ulong h2t = this.H2t;
this.H2 = h2t;
ulong h3t = this.H3t;
this.H3 = h3t;
ulong h4t = this.H4t;
this.H4 = h4t;
ulong h5t = this.H5t;
this.H5 = h5t;
ulong h6t = this.H6t;
this.H6 = h6t;
ulong h7t = this.H7t;
this.H7 = h7t;
ulong h8t = this.H8t;
this.H8 = h8t;
}
// Token: 0x06009FD9 RID: 40921 RVA: 0x00250D84 File Offset: 0x0024EF84
[Token(Token = "0x6009FD9")]
[Address(RVA = "0x22507D0", Offset = "0x224F1D0", VA = "0x1822507D0")]
private void tIvGenerate(int bitLength)
{
ulong num;
this.H1 = num;
ulong num2;
this.H2 = num2;
ulong num3;
this.H3 = num3;
ulong num4;
this.H4 = num4;
ulong num5;
this.H5 = num5;
ulong num6;
this.H6 = num6;
ulong num7;
this.H7 = num7;
ulong num8;
this.H8 = num8;
ulong num9;
base.Update((byte)num9);
ulong num10;
base.Update((byte)num10);
ulong num11;
base.Update((byte)num11);
ulong num12;
base.Update((byte)num12);
ulong num13;
base.Update((byte)num13);
ulong num14;
base.Update((byte)num14);
ulong num15;
base.Update((byte)num15);
ulong num16;
base.Update((byte)num16);
if (bitLength > 10)
{
ulong num17;
num17 += num17;
long num18 = (long)(num17 * (ulong)((uint)100));
ulong num19;
num19 += num19;
num19 += num19;
num19 += num19;
}
base.Update((byte)num16);
base.Finish();
ulong h = this.H1;
this.H1t = h;
ulong h2 = this.H2;
this.H2t = h2;
ulong h3 = this.H3;
this.H3t = h3;
ulong h4 = this.H4;
this.H4t = h4;
ulong h5 = this.H5;
this.H5t = h5;
ulong h6 = this.H6;
this.H6t = h6;
ulong h7 = this.H7;
this.H7t = h7;
ulong h8 = this.H8;
this.H8t = h8;
}
// Token: 0x06009FDA RID: 40922 RVA: 0x00250EC4 File Offset: 0x0024F0C4
[Token(Token = "0x6009FDA")]
[Address(RVA = "0x22504F0", Offset = "0x224EEF0", VA = "0x1822504F0")]
private static void UInt64_To_BE(ulong n, byte[] bs, int off, int max)
{
if (max > 0)
{
Sha512tDigest.UInt32_To_BE((uint)n, bs, off, max);
if (max > 4)
{
Sha512tDigest.UInt32_To_BE((uint)n, bs, off, max);
}
}
}
// Token: 0x06009FDB RID: 40923 RVA: 0x00250EEC File Offset: 0x0024F0EC
[Token(Token = "0x6009FDB")]
[Address(RVA = "0x2250410", Offset = "0x224EE10", VA = "0x182250410")]
private static void UInt32_To_BE(uint n, byte[] bs, int off, int max)
{
int num = Math.Min(4, max);
uint num2;
num2 -= (uint)num;
num2 += (uint)8;
}
// Token: 0x06009FDC RID: 40924 RVA: 0x00250F14 File Offset: 0x0024F114
[Token(Token = "0x6009FDC")]
[Address(RVA = "0x224FED0", Offset = "0x224E8D0", VA = "0x18224FED0", Slot = "17")]
public override IMemoable Copy()
{
Sha512tDigest sha512tDigest = new Sha512tDigest(this);
int num = this.digestLength;
sha512tDigest.digestLength = num;
IMemoable memoable = sha512tDigest.Copy();
throw new NullReferenceException();
}
// Token: 0x06009FDD RID: 40925 RVA: 0x00250F44 File Offset: 0x0024F144
[Token(Token = "0x6009FDD")]
[Address(RVA = "0x22502B0", Offset = "0x224ECB0", VA = "0x1822502B0", Slot = "18")]
public override void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0 || this.digestLength != num);
this.H1t = (ulong)num;
this.H2t = (ulong)num;
this.H3t = (ulong)num;
this.H4t = (ulong)num;
this.H5t = (ulong)num;
this.H6t = (ulong)num;
this.H7t = (ulong)num;
this.H8t = (ulong)num;
}
// Token: 0x040068F5 RID: 26869
[Token(Token = "0x40068F5")]
private const ulong A5 = 11936128518282651045UL;
// Token: 0x040068F6 RID: 26870
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x40068F6")]
private readonly int digestLength;
// Token: 0x040068F7 RID: 26871
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x40068F7")]
private ulong H1t;
// Token: 0x040068F8 RID: 26872
[global::Cpp2IlInjected.FieldOffset(Offset = "0x98")]
[Token(Token = "0x40068F8")]
private ulong H2t;
// Token: 0x040068F9 RID: 26873
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
[Token(Token = "0x40068F9")]
private ulong H3t;
// Token: 0x040068FA RID: 26874
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
[Token(Token = "0x40068FA")]
private ulong H4t;
// Token: 0x040068FB RID: 26875
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
[Token(Token = "0x40068FB")]
private ulong H5t;
// Token: 0x040068FC RID: 26876
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
[Token(Token = "0x40068FC")]
private ulong H6t;
// Token: 0x040068FD RID: 26877
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC0")]
[Token(Token = "0x40068FD")]
private ulong H7t;
// Token: 0x040068FE RID: 26878
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC8")]
[Token(Token = "0x40068FE")]
private ulong H8t;
}
}
@@ -0,0 +1,180 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171E RID: 5918
[Token(Token = "0x200171E")]
[StructLayout(3)]
public class ShakeDigest : KeccakDigest, IXof, IDigest
{
// Token: 0x06009FDE RID: 40926 RVA: 0x00250FA0 File Offset: 0x0024F1A0
[Token(Token = "0x6009FDE")]
[Address(RVA = "0x22509A0", Offset = "0x224F3A0", VA = "0x1822509A0")]
private static int CheckBitLength(int bitLength)
{
/*
An exception occurred when decompiling this method (06009FDE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::CheckBitLength(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentException(var_1_1D, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_0), ldstr:string("bitLength")))
}
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: 0x06009FDF RID: 40927 RVA: 0x00250FCC File Offset: 0x0024F1CC
[Token(Token = "0x6009FDF")]
[Address(RVA = "0x2250F50", Offset = "0x224F950", VA = "0x182250F50")]
public ShakeDigest()
: base(128)
{
}
// Token: 0x06009FE0 RID: 40928 RVA: 0x00250FE4 File Offset: 0x0024F1E4
[Token(Token = "0x6009FE0")]
[Address(RVA = "0x2250DF0", Offset = "0x224F7F0", VA = "0x182250DF0")]
public ShakeDigest(int bitLength)
{
/*
An exception occurred when decompiling this method (06009FE0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:ArgumentException(var_1_23, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_0), ldstr:string("bitLength")))
}
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: 0x06009FE1 RID: 40929 RVA: 0x00251014 File Offset: 0x0024F214
[Token(Token = "0x6009FE1")]
[Address(RVA = "0x2250EE0", Offset = "0x224F8E0", VA = "0x182250EE0")]
public ShakeDigest(ShakeDigest source)
: base(source)
{
}
// Token: 0x17001922 RID: 6434
// (get) Token: 0x06009FE2 RID: 40930 RVA: 0x00251028 File Offset: 0x0024F228
[Token(Token = "0x17001922")]
public override string AlgorithmName
{
[Token(Token = "0x6009FE2")]
[Address(RVA = "0x2250FD0", Offset = "0x224F9D0", VA = "0x182250FD0", Slot = "13")]
get
{
int fixedOutputLength = this.fixedOutputLength;
return "SHAKE" + fixedOutputLength;
}
}
// Token: 0x06009FE3 RID: 40931 RVA: 0x00251048 File Offset: 0x0024F248
[Token(Token = "0x6009FE3")]
[Address(RVA = "0x2250AE0", Offset = "0x224F4E0", VA = "0x182250AE0", Slot = "17")]
public override int DoFinal(byte[] output, int outOff)
{
string algorithmName = this.AlgorithmName;
int num;
return num;
}
// Token: 0x06009FE4 RID: 40932 RVA: 0x00251060 File Offset: 0x0024F260
[Token(Token = "0x6009FE4")]
[Address(RVA = "0x2250CB0", Offset = "0x224F6B0", VA = "0x182250CB0", Slot = "25")]
public virtual int DoFinal(byte[] output, int outOff, int outLen)
{
int num = this.DoFinal(output, outOff, outLen);
return outLen;
}
// Token: 0x06009FE5 RID: 40933 RVA: 0x00251078 File Offset: 0x0024F278
[Token(Token = "0x6009FE5")]
[Address(RVA = "0x2250D80", Offset = "0x224F780", VA = "0x182250D80", Slot = "26")]
public virtual int DoOutput(byte[] output, int outOff, int outLen)
{
base.AbsorbBits(15, 4);
base.Squeeze(output, outOff, (long)outLen);
return outLen;
}
// Token: 0x06009FE6 RID: 40934 RVA: 0x00251098 File Offset: 0x0024F298
[Token(Token = "0x6009FE6")]
[Address(RVA = "0x2250D00", Offset = "0x224F700", VA = "0x182250D00", Slot = "18")]
protected override int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
string algorithmName = this.AlgorithmName;
int num;
return num;
}
// Token: 0x06009FE7 RID: 40935 RVA: 0x002510B0 File Offset: 0x0024F2B0
[Token(Token = "0x6009FE7")]
[Address(RVA = "0x2250B40", Offset = "0x224F540", VA = "0x182250B40", Slot = "27")]
protected virtual int DoFinal(byte[] output, int outOff, int outLen, byte partialByte, int partialBits)
{
uint num;
byte[] array = new byte[] { (byte)num };
int num2 = 0;
uint num3;
base.Absorb(array, num2, (int)num3);
base.Squeeze(output, outOff, (long)outLen);
return outLen;
}
// Token: 0x06009FE8 RID: 40936 RVA: 0x002510F4 File Offset: 0x0024F2F4
[Token(Token = "0x6009FE8")]
[Address(RVA = "0x2250A50", Offset = "0x224F450", VA = "0x182250A50", Slot = "21")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (06009FE8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:ShakeDigest(var_0_06, newobj:ShakeDigest(ShakeDigest::.ctor, ldloc:ShakeDigest[exp:int32](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
*/;
}
}
}
@@ -0,0 +1,140 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x0200171F RID: 5919
[Token(Token = "0x200171F")]
[StructLayout(3)]
public class ShortenedDigest : IDigest
{
// Token: 0x06009FE9 RID: 40937 RVA: 0x00251108 File Offset: 0x0024F308
[Token(Token = "0x6009FE9")]
[Address(RVA = "0x2251280", Offset = "0x224FC80", VA = "0x182251280")]
public ShortenedDigest(IDigest baseDigest, int length)
{
/*
An exception occurred when decompiling this method (06009FE9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShortenedDigest::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_19:
stloc:ArgumentNullException(var_0_23, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("baseDigest")))
}
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: 0x17001923 RID: 6435
// (get) Token: 0x06009FEA RID: 40938 RVA: 0x00251138 File Offset: 0x0024F338
[Token(Token = "0x17001923")]
public string AlgorithmName
{
[Token(Token = "0x6009FEA")]
[Address(RVA = "0x2251360", Offset = "0x224FD60", VA = "0x182251360", Slot = "4")]
get
{
object[] array = new object[4];
IDigest digest = this.baseDigest;
if (array != 0)
{
}
array[0] = array;
if ("(" != 0)
{
}
array[1] = "(";
int num = this.length;
if (num != 0)
{
}
array[2] = num;
if (")" != 0)
{
}
array[3] = ")";
return string.Concat(array);
}
}
// Token: 0x06009FEB RID: 40939 RVA: 0x002511A8 File Offset: 0x0024F3A8
[Token(Token = "0x6009FEB")]
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0", Slot = "5")]
public int GetDigestSize()
{
return this.length;
}
// Token: 0x06009FEC RID: 40940 RVA: 0x002511BC File Offset: 0x0024F3BC
[Token(Token = "0x6009FEC")]
[Address(RVA = "0x2251220", Offset = "0x224FC20", VA = "0x182251220", Slot = "7")]
public void Update(byte input)
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x06009FED RID: 40941 RVA: 0x002511D8 File Offset: 0x0024F3D8
[Token(Token = "0x6009FED")]
[Address(RVA = "0x2251030", Offset = "0x224FA30", VA = "0x182251030", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
IDigest digest = this.baseDigest;
}
// Token: 0x06009FEE RID: 40942 RVA: 0x002511F4 File Offset: 0x0024F3F4
[Token(Token = "0x6009FEE")]
[Address(RVA = "0x22510B0", Offset = "0x224FAB0", VA = "0x1822510B0", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
IDigest digest = this.baseDigest;
byte[] array = new byte[0];
IDigest digest2 = this.baseDigest;
int num = this.length;
int num2 = 0;
Array.Copy(array, num2, output, outOff, num);
return this.length;
}
// Token: 0x06009FEF RID: 40943 RVA: 0x0025123C File Offset: 0x0024F43C
[Token(Token = "0x6009FEF")]
[Address(RVA = "0x22511D0", Offset = "0x224FBD0", VA = "0x1822511D0", Slot = "10")]
public void Reset()
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x06009FF0 RID: 40944 RVA: 0x00251258 File Offset: 0x0024F458
[Token(Token = "0x6009FF0")]
[Address(RVA = "0x2251180", Offset = "0x224FB80", VA = "0x182251180", Slot = "6")]
public int GetByteLength()
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x040068FF RID: 26879
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40068FF")]
private IDigest baseDigest;
// Token: 0x04006900 RID: 26880
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006900")]
private int length;
}
}
@@ -0,0 +1,216 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001720 RID: 5920
[Token(Token = "0x2001720")]
[StructLayout(3)]
public class SkeinDigest : IDigest, IMemoable
{
// Token: 0x06009FF1 RID: 40945 RVA: 0x00251274 File Offset: 0x0024F474
[Token(Token = "0x6009FF1")]
[Address(RVA = "0x2251A60", Offset = "0x2250460", VA = "0x182251A60")]
public SkeinDigest(int stateSizeBits, int digestSizeBits)
{
SkeinEngine skeinEngine = new SkeinEngine(stateSizeBits, digestSizeBits);
this.engine = skeinEngine;
int num = 0;
skeinEngine.chain = num;
skeinEngine.key = num;
skeinEngine.preMessageParameters = num;
skeinEngine.postMessageParameters = num;
skeinEngine.CreateInitialState();
skeinEngine.ubi.Reset(48);
}
// Token: 0x06009FF2 RID: 40946 RVA: 0x002512D0 File Offset: 0x0024F4D0
[Token(Token = "0x6009FF2")]
[Address(RVA = "0x22519A0", Offset = "0x22503A0", VA = "0x1822519A0")]
public SkeinDigest(SkeinDigest digest)
{
SkeinEngine skeinEngine = digest.engine;
bool isPartialBlockOkay = skeinEngine.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine2;
skeinEngine2.CopyIn(skeinEngine);
this.engine = skeinEngine2;
}
// Token: 0x06009FF3 RID: 40947 RVA: 0x0025130C File Offset: 0x0024F50C
[Token(Token = "0x6009FF3")]
[Address(RVA = "0x22517A0", Offset = "0x22501A0", VA = "0x1822517A0", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
SkeinEngine skeinEngine;
for (;;)
{
num = 0;
if (other != 0)
{
skeinEngine = this.engine;
if (other == 0 || other != 0)
{
ThreefishEngine threefish = skeinEngine.threefish;
bool isPartialBlockOkay = threefish.IsPartialBlockOkay;
bool isPartialBlockOkay2 = threefish.IsPartialBlockOkay;
if (isPartialBlockOkay == isPartialBlockOkay2 && skeinEngine.outputSizeBytes == (isPartialBlockOkay2 ? 1 : 0))
{
break;
}
}
}
}
skeinEngine.CopyIn(num);
}
// Token: 0x06009FF4 RID: 40948 RVA: 0x0025136C File Offset: 0x0024F56C
[Token(Token = "0x6009FF4")]
[Address(RVA = "0x2251550", Offset = "0x224FF50", VA = "0x182251550", Slot = "11")]
public IMemoable Copy()
{
SkeinEngine skeinEngine = this.engine;
bool isPartialBlockOkay = skeinEngine.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine2;
skeinEngine2.CopyIn(skeinEngine);
SkeinDigest skeinDigest;
skeinDigest.engine = skeinEngine2;
throw new NullReferenceException();
}
// Token: 0x17001924 RID: 6436
// (get) Token: 0x06009FF5 RID: 40949 RVA: 0x002513A0 File Offset: 0x0024F5A0
[Token(Token = "0x17001924")]
public string AlgorithmName
{
[Token(Token = "0x6009FF5")]
[Address(RVA = "0x2251B30", Offset = "0x2250530", VA = "0x182251B30", Slot = "4")]
get
{
object[] array = new object[4];
if ("Skein-" != 0)
{
}
array[0] = "Skein-";
bool isPartialBlockOkay = this.engine.threefish.IsPartialBlockOkay;
if (isPartialBlockOkay)
{
}
array[1] = isPartialBlockOkay;
if ("-" != 0)
{
}
array[2] = "-";
int outputSizeBytes = this.engine.outputSizeBytes;
if (outputSizeBytes != 0)
{
}
array[3] = outputSizeBytes;
return string.Concat(array);
}
}
// Token: 0x06009FF6 RID: 40950 RVA: 0x00251420 File Offset: 0x0024F620
[Token(Token = "0x6009FF6")]
[Address(RVA = "0x5FE710", Offset = "0x5FD110", VA = "0x1805FE710", Slot = "5")]
public int GetDigestSize()
{
return this.engine.outputSizeBytes;
}
// Token: 0x06009FF7 RID: 40951 RVA: 0x00251440 File Offset: 0x0024F640
[Token(Token = "0x6009FF7")]
[Address(RVA = "0x2251630", Offset = "0x2250030", VA = "0x182251630", Slot = "6")]
public int GetByteLength()
{
string algorithmName = ((IBlockCipher)this.engine.threefish).AlgorithmName;
throw new NullReferenceException();
}
// Token: 0x06009FF8 RID: 40952 RVA: 0x00251464 File Offset: 0x0024F664
[Token(Token = "0x6009FF8")]
[Address(RVA = "0x2251670", Offset = "0x2250070", VA = "0x182251670")]
public void Init(SkeinParameters parameters)
{
SkeinEngine skeinEngine = this.engine;
int num = 0;
skeinEngine.chain = num;
skeinEngine.key = num;
skeinEngine.preMessageParameters = num;
skeinEngine.postMessageParameters = num;
if (parameters != 0)
{
byte[] key = parameters.GetKey();
IDictionary parameters2 = parameters.parameters;
skeinEngine.InitParams(parameters2);
}
skeinEngine.CreateInitialState();
skeinEngine.ubi.Reset(48);
}
// Token: 0x06009FF9 RID: 40953 RVA: 0x002514C8 File Offset: 0x0024F6C8
[Token(Token = "0x6009FF9")]
[Address(RVA = "0x2251740", Offset = "0x2250140", VA = "0x182251740", Slot = "10")]
public void Reset()
{
SkeinEngine skeinEngine = this.engine;
ulong[] chain = skeinEngine.chain;
int length = chain.Length;
int num = 0;
ulong[] initialState = skeinEngine.initialState;
int num2 = 0;
Array.Copy(initialState, num2, chain, num, length);
skeinEngine.ubi.Reset(48);
}
// Token: 0x06009FFA RID: 40954 RVA: 0x00251518 File Offset: 0x0024F718
[Token(Token = "0x6009FFA")]
[Address(RVA = "0x2251940", Offset = "0x2250340", VA = "0x182251940", Slot = "7")]
public void Update(byte inByte)
{
SkeinEngine skeinEngine = this.engine;
skeinEngine.singleByte[0] = inByte;
byte[] singleByte = skeinEngine.singleByte;
int num = 0;
skeinEngine.Update(singleByte, num, 1);
}
// Token: 0x06009FFB RID: 40955 RVA: 0x00251554 File Offset: 0x0024F754
[Token(Token = "0x6009FFB")]
[Address(RVA = "0x20F8EE0", Offset = "0x20F78E0", VA = "0x1820F8EE0", Slot = "8")]
public void BlockUpdate(byte[] inBytes, int inOff, int len)
{
this.engine.Update(inBytes, inOff, len);
}
// Token: 0x06009FFC RID: 40956 RVA: 0x00251578 File Offset: 0x0024F778
[Token(Token = "0x6009FFC")]
[Address(RVA = "0x20F8F10", Offset = "0x20F7910", VA = "0x1820F8F10", Slot = "9")]
public int DoFinal(byte[] outBytes, int outOff)
{
return this.engine.DoFinal(outBytes, outOff);
}
// Token: 0x04006901 RID: 26881
[Token(Token = "0x4006901")]
public const int SKEIN_256 = 256;
// Token: 0x04006902 RID: 26882
[Token(Token = "0x4006902")]
public const int SKEIN_512 = 512;
// Token: 0x04006903 RID: 26883
[Token(Token = "0x4006903")]
public const int SKEIN_1024 = 1024;
// Token: 0x04006904 RID: 26884
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006904")]
private readonly SkeinEngine engine;
}
}
@@ -0,0 +1,1069 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001721 RID: 5921
[Token(Token = "0x2001721")]
[StructLayout(3)]
public class SkeinEngine : IMemoable
{
// Token: 0x06009FFD RID: 40957 RVA: 0x00251598 File Offset: 0x0024F798
[Token(Token = "0x6009FFD")]
[Address(RVA = "0x2253200", Offset = "0x2251C00", VA = "0x182253200")]
static SkeinEngine()
{
ulong[] array = new ulong[4];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.FCDDAA37B8499E00EB7B606D8540AA64DE5AE4D4).FieldHandle);
SkeinEngine.InitialState(256, 128, array);
RuntimeHelpers.InitializeArray(new ulong[4], fieldof(<PrivateImplementationDetails>.3C3704DB6466D48DD40FE189070F1896D1D45C8B).FieldHandle);
RuntimeHelpers.InitializeArray(new ulong[4], fieldof(<PrivateImplementationDetails>.FD9088D5287E3E3A6699200CB6E5DE3E9FDEDD9F).FieldHandle);
ulong[] array2 = new ulong[4];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0B1E7265E67D2458D8EB536A4B36380A5BF6E731).FieldHandle);
SkeinEngine.InitialState(256, 256, array2);
ulong[] array3 = new ulong[8];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.DA7CFA4F9698F5D02C5D90A5858F65EE43B4D564).FieldHandle);
SkeinEngine.InitialState(512, 128, array3);
ulong[] array4 = new ulong[8];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.959C1F7BD85779AAF7AA136A20A9C399A5019AEC).FieldHandle);
SkeinEngine.InitialState(512, 160, array4);
ulong[] array5 = new ulong[8];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.5318DA9ACB77B4E0953DA6BF6B04DF138D74EA1E).FieldHandle);
SkeinEngine.InitialState(512, 224, array5);
ulong[] array6 = new ulong[8];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.F0AEF81E2E3EC0843206EBA7D65BCD1AF83DE7C9).FieldHandle);
SkeinEngine.InitialState(512, 384, array6);
ulong[] array7 = new ulong[8];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.118FE9754A9699004D478E4BF686021154D96EAD).FieldHandle);
SkeinEngine.InitialState(512, 512, array7);
}
// Token: 0x06009FFE RID: 40958 RVA: 0x002516CC File Offset: 0x0024F8CC
[Token(Token = "0x6009FFE")]
[Address(RVA = "0x2252B00", Offset = "0x2251500", VA = "0x182252B00")]
private static void InitialState(int blockSize, int outputSize, ulong[] state)
{
IDictionary initial_STATES = SkeinEngine.INITIAL_STATES;
int num = 0;
if (num < state)
{
num += num;
num++;
}
}
// Token: 0x06009FFF RID: 40959 RVA: 0x002516F4 File Offset: 0x0024F8F4
[Token(Token = "0x6009FFF")]
[Address(RVA = "0x22531F0", Offset = "0x2251BF0", VA = "0x1822531F0")]
private static int VariantIdentifier(int blockSizeBytes, int outputSizeBytes)
{
return outputSizeBytes;
}
// Token: 0x0600A000 RID: 40960 RVA: 0x00251704 File Offset: 0x0024F904
[Token(Token = "0x600A000")]
[Address(RVA = "0x2253470", Offset = "0x2251E70", VA = "0x182253470")]
public SkeinEngine(int blockSizeBits, int outputSizeBits)
{
/*
An exception occurred when decompiling this method (0600A000)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::.ctor(System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4A:
stloc:ArgumentException(var_6_5A, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Output size must be a multiple of 8 bits. :"), ldloc:int32[exp:object](outputSizeBits))))
}
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: 0x0600A001 RID: 40961 RVA: 0x0025176C File Offset: 0x0024F96C
[Token(Token = "0x600A001")]
[Address(RVA = "0x22535B0", Offset = "0x2251FB0", VA = "0x1822535B0")]
public SkeinEngine(SkeinEngine engine)
{
bool isPartialBlockOkay = engine.threefish.IsPartialBlockOkay;
this.CopyIn(engine);
}
// Token: 0x0600A002 RID: 40962 RVA: 0x00251794 File Offset: 0x0024F994
[Token(Token = "0x600A002")]
[Address(RVA = "0x2251E60", Offset = "0x2250860", VA = "0x182251E60")]
private void CopyIn(SkeinEngine engine)
{
SkeinEngine.UBI ubi = this.ubi;
SkeinEngine.UBI ubi2 = engine.ubi;
ubi.Reset(ubi2);
ulong[] array = engine.chain;
ulong[] array2 = this.chain;
ulong[] array3 = Arrays.Clone(array, array2);
ulong[] array4 = this.initialState;
this.chain = array3;
ulong[] array5 = Arrays.Clone(engine.initialState, array4);
byte[] array6 = this.key;
this.initialState = array5;
byte[] array7 = Arrays.Clone(engine.key, array6);
SkeinEngine.Parameter[] array8 = this.preMessageParameters;
this.key = array7;
SkeinEngine.Parameter[] array9 = SkeinEngine.Clone(engine.preMessageParameters, array8);
SkeinEngine.Parameter[] array10 = this.postMessageParameters;
this.preMessageParameters = array9;
SkeinEngine.Parameter[] array11 = SkeinEngine.Clone(engine.postMessageParameters, array10);
this.postMessageParameters = array11;
}
// Token: 0x0600A003 RID: 40963 RVA: 0x00251858 File Offset: 0x0024FA58
[Token(Token = "0x600A003")]
[Address(RVA = "0x2251DC0", Offset = "0x22507C0", VA = "0x182251DC0")]
private static SkeinEngine.Parameter[] Clone(SkeinEngine.Parameter[] data, SkeinEngine.Parameter[] existing)
{
if (data != 0)
{
if (existing != 0)
{
int length = data.Length;
if (existing.Length == length)
{
goto IL_24;
}
}
SkeinEngine.Parameter[] array = new SkeinEngine.Parameter[data.Length];
IL_24:
int length2 = array.Length;
int num = 0;
int num2 = 0;
Array.Copy(data, num2, array, num, length2);
return array;
}
throw new NullReferenceException();
}
// Token: 0x0600A004 RID: 40964 RVA: 0x002518AC File Offset: 0x0024FAAC
[Token(Token = "0x600A004")]
[Address(RVA = "0x2251F80", Offset = "0x2250980", VA = "0x182251F80", Slot = "4")]
public IMemoable Copy()
{
bool isPartialBlockOkay = this.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine;
skeinEngine.CopyIn(this);
throw new NullReferenceException();
}
// Token: 0x0600A005 RID: 40965 RVA: 0x002518D4 File Offset: 0x0024FAD4
[Token(Token = "0x600A005")]
[Address(RVA = "0x2252F00", Offset = "0x2251900", VA = "0x182252F00", Slot = "5")]
public void Reset(IMemoable other)
{
/*
An exception occurred when decompiling this method (0600A005)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::Reset(BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2D:
stloc:MemoableResetException(var_4_37, newobj:MemoableResetException(MemoableResetException::.ctor, ldstr:string("Incompatible parameters in provided SkeinEngine.")))
}
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: 0x17001925 RID: 6437
// (get) Token: 0x0600A006 RID: 40966 RVA: 0x0025191C File Offset: 0x0024FB1C
[Token(Token = "0x17001925")]
public int OutputSize
{
[Token(Token = "0x600A006")]
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0")]
get
{
return this.outputSizeBytes;
}
}
// Token: 0x17001926 RID: 6438
// (get) Token: 0x0600A007 RID: 40967 RVA: 0x00251930 File Offset: 0x0024FB30
[Token(Token = "0x17001926")]
public int BlockSize
{
[Token(Token = "0x600A007")]
[Address(RVA = "0x2253620", Offset = "0x2252020", VA = "0x182253620")]
get
{
string algorithmName = ((IBlockCipher)this.threefish).AlgorithmName;
throw new NullReferenceException();
}
}
// Token: 0x0600A008 RID: 40968 RVA: 0x00251950 File Offset: 0x0024FB50
[Token(Token = "0x600A008")]
[Address(RVA = "0x2252A30", Offset = "0x2251430", VA = "0x182252A30")]
public void Init(SkeinParameters parameters)
{
int num = 0;
this.chain = num;
this.key = num;
this.preMessageParameters = num;
this.postMessageParameters = num;
if (parameters != 0)
{
byte[] array = parameters.GetKey();
IDictionary parameters2 = parameters.parameters;
this.InitParams(parameters2);
}
this.CreateInitialState();
this.ubi.Reset(48);
}
// Token: 0x0600A009 RID: 40969 RVA: 0x002519B0 File Offset: 0x0024FBB0
[Token(Token = "0x600A009")]
[Address(RVA = "0x2252630", Offset = "0x2251030", VA = "0x182252630")]
private void InitParams(IDictionary parameters)
{
int num;
int num3;
do
{
IList list = Platform.CreateArrayList();
IList list2 = Platform.CreateArrayList();
num = 0;
if (num < parameters)
{
num += num;
num++;
}
int num2 = 0;
if (list2 == 0)
{
goto IL_7A;
}
if (num < num2)
{
num += num;
num++;
}
num3 = num;
num += num;
num++;
if (num == 0)
{
num += 19;
num++;
num += 19;
num += 19;
}
}
while (num == 0);
if (num3 != 0)
{
}
IL_7A:
SkeinEngine.Parameter[] array = new SkeinEngine.Parameter[0];
SkeinEngine.Parameter[] array2 = new SkeinEngine.Parameter[array];
}
// Token: 0x0600A00A RID: 40970 RVA: 0x00251A54 File Offset: 0x0024FC54
[Token(Token = "0x600A00A")]
[Address(RVA = "0x2252020", Offset = "0x2250A20", VA = "0x182252020")]
private void CreateInitialState()
{
bool isPartialBlockOkay;
int num2;
do
{
ThreefishEngine threefishEngine = this.threefish;
IDictionary initial_STATES = SkeinEngine.INITIAL_STATES;
isPartialBlockOkay = threefishEngine.IsPartialBlockOkay;
int num = this.outputSizeBytes;
num2 = 0;
if (!isPartialBlockOkay)
{
}
}
while (!isPartialBlockOkay);
if (this.key == num2 && isPartialBlockOkay)
{
ulong[] array;
this.chain = array;
}
bool isPartialBlockOkay2 = this.threefish.IsPartialBlockOkay;
ulong[] array2 = new ulong[0];
byte[] array3 = this.key;
this.chain = array2;
if (array3 != 0)
{
int num3 = 0;
this.UbiComplete(num3, array3);
}
SkeinEngine.UBI ubi = this.ubi;
SkeinEngine.Configuration configuration;
byte[] bytes = configuration.bytes;
ubi.Reset(4);
SkeinEngine.UBI ubi2 = this.ubi;
ulong[] array4 = this.chain;
int num4 = 0;
int length = bytes.Length;
ubi2.Update(bytes, num4, length, array4);
SkeinEngine.UBI ubi3 = this.ubi;
ulong[] array5 = this.chain;
ubi3.DoFinal(array5);
SkeinEngine.Parameter[] array6 = this.preMessageParameters;
if (array6 != 0 && num2 < array6.Length)
{
SkeinEngine.Parameter parameter = array6[num2];
SkeinEngine.UBI ubi4 = this.ubi;
byte[] value = parameter.value;
int type = parameter.type;
ubi4.Reset(type);
SkeinEngine.UBI ubi5 = this.ubi;
ulong[] array7 = this.chain;
int num5 = 0;
int length2 = value.Length;
ubi5.Update(value, num5, length2, array7);
SkeinEngine.UBI ubi6 = this.ubi;
ulong[] array8 = this.chain;
ubi6.DoFinal(array8);
SkeinEngine.Parameter[] array9 = this.preMessageParameters;
num2++;
}
ulong[] array10 = Arrays.Clone(this.chain);
this.initialState = array10;
}
// Token: 0x0600A00B RID: 40971 RVA: 0x00251BEC File Offset: 0x0024FDEC
[Token(Token = "0x600A00B")]
[Address(RVA = "0x2252EA0", Offset = "0x22518A0", VA = "0x182252EA0")]
public void Reset()
{
ulong[] array = this.chain;
int length = array.Length;
int num = 0;
ulong[] array2 = this.initialState;
int num2 = 0;
Array.Copy(array2, num2, array, num, length);
this.ubi.Reset(48);
}
// Token: 0x0600A00C RID: 40972 RVA: 0x00251C34 File Offset: 0x0024FE34
[Token(Token = "0x600A00C")]
[Address(RVA = "0x2253020", Offset = "0x2251A20", VA = "0x182253020")]
private void UbiComplete(int type, byte[] value)
{
this.ubi.Reset(type);
SkeinEngine.UBI ubi = this.ubi;
ulong[] array = this.chain;
int num = 0;
int length = value.Length;
ubi.Update(value, num, length, array);
SkeinEngine.UBI ubi2 = this.ubi;
ulong[] array2 = this.chain;
ubi2.DoFinal(array2);
}
// Token: 0x0600A00D RID: 40973 RVA: 0x00251C90 File Offset: 0x0024FE90
[Token(Token = "0x600A00D")]
[Address(RVA = "0x22530D0", Offset = "0x2251AD0", VA = "0x1822530D0")]
private void UbiInit(int type)
{
this.ubi.Reset(type);
}
// Token: 0x0600A00E RID: 40974 RVA: 0x00251CB0 File Offset: 0x0024FEB0
[Token(Token = "0x600A00E")]
[Address(RVA = "0x22530A0", Offset = "0x2251AA0", VA = "0x1822530A0")]
private void UbiFinal()
{
SkeinEngine.UBI ubi = this.ubi;
ulong[] array = this.chain;
ubi.DoFinal(array);
}
// Token: 0x0600A00F RID: 40975 RVA: 0x00251CD8 File Offset: 0x0024FED8
[Token(Token = "0x600A00F")]
[Address(RVA = "0x2251D50", Offset = "0x2250750", VA = "0x182251D50")]
private void CheckInitialised()
{
/*
An exception occurred when decompiling this method (0600A00F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::CheckInitialised()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:ArgumentException(var_0_16, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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: 0x0600A010 RID: 40976 RVA: 0x00251CFC File Offset: 0x0024FEFC
[Token(Token = "0x600A010")]
[Address(RVA = "0x22531A0", Offset = "0x2251BA0", VA = "0x1822531A0")]
public void Update(byte inByte)
{
this.singleByte[0] = inByte;
byte[] array = this.singleByte;
int num = 0;
this.Update(array, num, 1);
}
// Token: 0x0600A011 RID: 40977 RVA: 0x00251D30 File Offset: 0x0024FF30
[Token(Token = "0x600A011")]
[Address(RVA = "0x22530F0", Offset = "0x2251AF0", VA = "0x1822530F0")]
public void Update(byte[] inBytes, int inOff, int len)
{
/*
An exception occurred when decompiling this method (0600A011)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::Update(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1D:
stloc:ArgumentException(var_3_27, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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: 0x0600A012 RID: 40978 RVA: 0x00251D64 File Offset: 0x0024FF64
[Token(Token = "0x600A012")]
[Address(RVA = "0x2252360", Offset = "0x2250D60", VA = "0x182252360")]
public int DoFinal(byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600A012)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::DoFinal(System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_157:
stloc:ArgumentException(var_26_161, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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: 0x0600A013 RID: 40979 RVA: 0x00251ED4 File Offset: 0x002500D4
[Token(Token = "0x600A013")]
[Address(RVA = "0x2252C40", Offset = "0x2251640", VA = "0x182252C40")]
private void Output(ulong outputSequence, byte[] outBytes, int outOff, int outputBytes)
{
byte[] array = new byte[8];
int num = 0;
ThreefishEngine.WordToBytes(outputSequence, array, num);
ulong[] array2 = new ulong[this.chain.Length];
this.ubi.Reset(63);
SkeinEngine.UBI ubi = this.ubi;
int length = array.Length;
int num2 = 0;
ubi.Update(array, num2, length, array2);
this.ubi.DoFinal(array2);
int num3 = 0;
array2 += array2;
if (array2 > 0)
{
int num4;
if (num4 != 8)
{
ulong num5 = array2[num3];
int num6 = 0;
ThreefishEngine.WordToBytes(num5, array, num6);
}
ThreefishEngine.WordToBytes(array2[num3], outBytes, outOff);
num3++;
}
}
// Token: 0x04006905 RID: 26885
[Token(Token = "0x4006905")]
public const int SKEIN_256 = 256;
// Token: 0x04006906 RID: 26886
[Token(Token = "0x4006906")]
public const int SKEIN_512 = 512;
// Token: 0x04006907 RID: 26887
[Token(Token = "0x4006907")]
public const int SKEIN_1024 = 1024;
// Token: 0x04006908 RID: 26888
[Token(Token = "0x4006908")]
private const int PARAM_TYPE_KEY = 0;
// Token: 0x04006909 RID: 26889
[Token(Token = "0x4006909")]
private const int PARAM_TYPE_CONFIG = 4;
// Token: 0x0400690A RID: 26890
[Token(Token = "0x400690A")]
private const int PARAM_TYPE_MESSAGE = 48;
// Token: 0x0400690B RID: 26891
[Token(Token = "0x400690B")]
private const int PARAM_TYPE_OUTPUT = 63;
// Token: 0x0400690C RID: 26892
[Token(Token = "0x400690C")]
private static readonly IDictionary INITIAL_STATES = Platform.CreateHashtable();
// Token: 0x0400690D RID: 26893
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400690D")]
private readonly ThreefishEngine threefish;
// Token: 0x0400690E RID: 26894
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400690E")]
private readonly int outputSizeBytes;
// Token: 0x0400690F RID: 26895
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400690F")]
private ulong[] chain;
// Token: 0x04006910 RID: 26896
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006910")]
private ulong[] initialState;
// Token: 0x04006911 RID: 26897
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006911")]
private byte[] key;
// Token: 0x04006912 RID: 26898
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006912")]
private SkeinEngine.Parameter[] preMessageParameters;
// Token: 0x04006913 RID: 26899
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006913")]
private SkeinEngine.Parameter[] postMessageParameters;
// Token: 0x04006914 RID: 26900
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006914")]
private readonly SkeinEngine.UBI ubi;
// Token: 0x04006915 RID: 26901
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006915")]
private readonly byte[] singleByte;
// Token: 0x02001722 RID: 5922
[Token(Token = "0x2001722")]
private class Configuration
{
// Token: 0x0600A014 RID: 40980 RVA: 0x00251F80 File Offset: 0x00250180
[Token(Token = "0x600A014")]
[Address(RVA = "0x2059640", Offset = "0x2058040", VA = "0x182059640")]
public Configuration(long outputSizeBits)
{
byte[] array = new byte[32];
this.bytes = array;
base..ctor();
byte[] array2 = this.bytes;
byte[] array3 = this.bytes;
byte[] array4 = this.bytes;
byte[] array5 = this.bytes;
byte[] array6 = this.bytes;
byte[] array7 = this.bytes;
byte[] array8 = this.bytes;
ThreefishEngine.WordToBytes((ulong)outputSizeBits, array8, 8);
}
// Token: 0x17001927 RID: 6439
// (get) Token: 0x0600A015 RID: 40981 RVA: 0x00251FE8 File Offset: 0x002501E8
[Token(Token = "0x17001927")]
public byte[] Bytes
{
[Token(Token = "0x600A015")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")]
get
{
return this.bytes;
}
}
// Token: 0x04006916 RID: 26902
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006916")]
private byte[] bytes;
}
// Token: 0x02001723 RID: 5923
[Token(Token = "0x2001723")]
public class Parameter
{
// Token: 0x0600A016 RID: 40982 RVA: 0x00251FFC File Offset: 0x002501FC
[Token(Token = "0x600A016")]
[Address(RVA = "0x3C1040", Offset = "0x3BFA40", VA = "0x1803C1040")]
public Parameter(int type, byte[] value)
{
this.type = type;
this.value = value;
}
// Token: 0x17001928 RID: 6440
// (get) Token: 0x0600A017 RID: 40983 RVA: 0x00252020 File Offset: 0x00250220
[Token(Token = "0x17001928")]
public int Type
{
[Token(Token = "0x600A017")]
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50")]
get
{
return this.type;
}
}
// Token: 0x17001929 RID: 6441
// (get) Token: 0x0600A018 RID: 40984 RVA: 0x00252034 File Offset: 0x00250234
[Token(Token = "0x17001929")]
public byte[] Value
{
[Token(Token = "0x600A018")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")]
get
{
return this.value;
}
}
// Token: 0x04006917 RID: 26903
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006917")]
private int type;
// Token: 0x04006918 RID: 26904
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006918")]
private byte[] value;
}
// Token: 0x02001724 RID: 5924
[Token(Token = "0x2001724")]
private class UbiTweak
{
// Token: 0x0600A019 RID: 40985 RVA: 0x00252048 File Offset: 0x00250248
[Token(Token = "0x600A019")]
[Address(RVA = "0x2065300", Offset = "0x2063D00", VA = "0x182065300")]
public UbiTweak()
{
ulong[] array = new ulong[2];
this.tweak = array;
base..ctor();
this.Reset();
}
// Token: 0x0600A01A RID: 40986 RVA: 0x00252070 File Offset: 0x00250270
[Token(Token = "0x600A01A")]
[Address(RVA = "0x2064F80", Offset = "0x2063980", VA = "0x182064F80")]
public void Reset(SkeinEngine.UbiTweak tweak)
{
ulong[] array = this.tweak;
ulong[] array2 = Arrays.Clone(tweak.tweak, array);
this.tweak = array2;
bool flag = tweak.extendedPosition;
this.extendedPosition = flag;
}
// Token: 0x0600A01B RID: 40987 RVA: 0x002520AC File Offset: 0x002502AC
[Token(Token = "0x600A01B")]
[Address(RVA = "0x2064EF0", Offset = "0x20638F0", VA = "0x182064EF0")]
public void Reset()
{
ulong[] array = this.tweak;
int num = 0;
array[0] = (ulong)num;
this.tweak[1] = (ulong)num;
ulong[] array2 = this.tweak;
this.extendedPosition = num != 0;
}
// Token: 0x1700192A RID: 6442
// (get) Token: 0x0600A01C RID: 40988 RVA: 0x002520EC File Offset: 0x002502EC
// (set) Token: 0x0600A01D RID: 40989 RVA: 0x0025210C File Offset: 0x0025030C
[Token(Token = "0x1700192A")]
public uint Type
{
[Token(Token = "0x600A01C")]
[Address(RVA = "0x20653E0", Offset = "0x2063DE0", VA = "0x1820653E0")]
get
{
ulong num = this.tweak[1];
throw new NullReferenceException();
}
[Token(Token = "0x600A01D")]
[Address(RVA = "0x2065500", Offset = "0x2063F00", VA = "0x182065500")]
set
{
this.tweak[1] = (ulong)value;
}
}
// Token: 0x1700192B RID: 6443
// (get) Token: 0x0600A01E RID: 40990 RVA: 0x0025212C File Offset: 0x0025032C
// (set) Token: 0x0600A01F RID: 40991 RVA: 0x00252148 File Offset: 0x00250348
[Token(Token = "0x1700192B")]
public bool First
{
[Token(Token = "0x600A01E")]
[Address(RVA = "0x20653A0", Offset = "0x2063DA0", VA = "0x1820653A0")]
get
{
ulong[] array = this.tweak;
throw new NullReferenceException();
}
[Token(Token = "0x600A01F")]
[Address(RVA = "0x2065490", Offset = "0x2063E90", VA = "0x182065490")]
set
{
ulong[] array = this.tweak;
if (!value)
{
return;
}
}
}
// Token: 0x1700192C RID: 6444
// (get) Token: 0x0600A020 RID: 40992 RVA: 0x00252168 File Offset: 0x00250368
// (set) Token: 0x0600A021 RID: 40993 RVA: 0x00252184 File Offset: 0x00250384
[Token(Token = "0x1700192C")]
public bool Final
{
[Token(Token = "0x600A020")]
[Address(RVA = "0x2065360", Offset = "0x2063D60", VA = "0x182065360")]
get
{
ulong[] array = this.tweak;
throw new IndexOutOfRangeException();
}
[Token(Token = "0x600A021")]
[Address(RVA = "0x2065420", Offset = "0x2063E20", VA = "0x182065420")]
set
{
ulong[] array = this.tweak;
if (!value)
{
return;
}
}
}
// Token: 0x0600A022 RID: 40994 RVA: 0x002521A4 File Offset: 0x002503A4
[Token(Token = "0x600A022")]
[Address(RVA = "0x2064C50", Offset = "0x2063650", VA = "0x182064C50")]
public void AdvancePosition(int advance)
{
if (!this.extendedPosition)
{
this.tweak[0] = (ulong)advance;
ulong num;
if ((ulong)advance > num)
{
this.extendedPosition = true;
}
return;
}
ulong[] array = new ulong[3];
ulong num2 = this.tweak[0];
array[0] = num2;
ulong num3 = this.tweak[0];
array[1] = num3;
ulong num4 = this.tweak[1];
array[2] = num4;
int num5 = 0;
int length = array.Length;
if (num5 < length)
{
num5++;
}
ulong[] array2 = this.tweak;
ulong num6 = array[1];
array2[0] = num6;
ulong[] array3 = this.tweak;
ulong num7 = array[2];
array3[1] = num7;
}
// Token: 0x0600A023 RID: 40995 RVA: 0x00252270 File Offset: 0x00250470
[Token(Token = "0x600A023")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")]
public ulong[] GetWords()
{
return this.tweak;
}
// Token: 0x0600A024 RID: 40996 RVA: 0x00252284 File Offset: 0x00250484
[Token(Token = "0x600A024")]
[Address(RVA = "0x2065020", Offset = "0x2063A20", VA = "0x182065020", Slot = "3")]
public override string ToString()
{
object[] array = new object[5];
ulong num = this.tweak[1];
if (num != (ulong)0L)
{
}
array[0] = num;
if (" first: " != 0)
{
}
array[1] = " first: ";
ulong[] array2 = this.tweak;
if (array2 != 0)
{
}
array[2] = array2;
if (", final: " != 0)
{
}
array[3] = ", final: ";
ulong[] array3 = this.tweak;
if (array3 != 0)
{
}
array[4] = array3;
return string.Concat(array);
}
// Token: 0x04006919 RID: 26905
[Token(Token = "0x4006919")]
private const ulong LOW_RANGE = 18446744069414584320UL;
// Token: 0x0400691A RID: 26906
[Token(Token = "0x400691A")]
private const ulong T1_FINAL = 9223372036854775808UL;
// Token: 0x0400691B RID: 26907
[Token(Token = "0x400691B")]
private const ulong T1_FIRST = 4611686018427387904UL;
// Token: 0x0400691C RID: 26908
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400691C")]
private ulong[] tweak;
// Token: 0x0400691D RID: 26909
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400691D")]
private bool extendedPosition;
}
// Token: 0x02001725 RID: 5925
[Token(Token = "0x2001725")]
private class UBI
{
// Token: 0x0600A025 RID: 40997 RVA: 0x00252310 File Offset: 0x00250510
[Token(Token = "0x600A025")]
[Address(RVA = "0x2064B60", Offset = "0x2063560", VA = "0x182064B60")]
public UBI(SkeinEngine engine, int blockSize)
{
SkeinEngine.UbiTweak ubiTweak = new SkeinEngine.UbiTweak();
ulong[] array = new ulong[2];
ubiTweak.tweak = array;
ubiTweak.Reset();
this.tweak = ubiTweak;
base..ctor();
this.engine = engine;
byte[] array2 = new byte[blockSize];
this.currentBlock = array2;
int length = array2.Length;
ulong[] array3 = new ulong[blockSize];
this.message = array3;
}
// Token: 0x0600A026 RID: 40998 RVA: 0x00252378 File Offset: 0x00250578
[Token(Token = "0x600A026")]
[Address(RVA = "0x2064830", Offset = "0x2063230", VA = "0x182064830")]
public void Reset(SkeinEngine.UBI ubi)
{
byte[] array = ubi.currentBlock;
byte[] array2 = this.currentBlock;
byte[] array3 = Arrays.Clone(array, array2);
ulong[] array4 = this.message;
this.currentBlock = array3;
int num = ubi.currentOffset;
this.currentOffset = num;
ulong[] array5 = Arrays.Clone(ubi.message, array4);
this.message = array5;
SkeinEngine.UbiTweak ubiTweak = this.tweak;
SkeinEngine.UbiTweak ubiTweak2 = ubi.tweak;
ulong[] array6 = ubiTweak2.tweak;
ulong[] array7 = ubiTweak.tweak;
ulong[] array8 = Arrays.Clone(array6, array7);
ubiTweak.tweak = array8;
bool extendedPosition = ubiTweak2.extendedPosition;
ubiTweak.extendedPosition = extendedPosition;
}
// Token: 0x0600A027 RID: 40999 RVA: 0x00252420 File Offset: 0x00250620
[Token(Token = "0x600A027")]
[Address(RVA = "0x2064950", Offset = "0x2063350", VA = "0x182064950")]
public void Reset(int type)
{
this.tweak.Reset();
this.tweak.tweak[1] = (ulong)type;
this.currentOffset = (int)((ulong)0L);
}
// Token: 0x0600A028 RID: 41000 RVA: 0x0025245C File Offset: 0x0025065C
[Token(Token = "0x600A028")]
[Address(RVA = "0x20649E0", Offset = "0x20633E0", VA = "0x1820649E0")]
public void Update(byte[] value, int offset, int len, ulong[] output)
{
int num = 0;
if (len > 0)
{
byte[] array = this.currentBlock;
int num2 = this.currentOffset;
if (num2 == array.Length)
{
ulong[] array2 = this.tweak.tweak;
this.currentOffset = (int)((ulong)0L);
}
int num3 = array.Length;
num3 -= num2;
int num4 = Math.Min(len, num3);
int num5 = this.currentOffset;
byte[] array3 = this.currentBlock;
Array.Copy(value, 0, array3, num5, num4);
SkeinEngine.UbiTweak ubiTweak = this.tweak;
num += num4;
ubiTweak.AdvancePosition(num4);
}
}
// Token: 0x0600A029 RID: 41001 RVA: 0x002524EC File Offset: 0x002506EC
[Token(Token = "0x600A029")]
[Address(RVA = "0x2064690", Offset = "0x2063090", VA = "0x182064690")]
private void ProcessBlock(ulong[] output)
{
SkeinEngine skeinEngine = this.engine;
SkeinEngine.UbiTweak ubiTweak = this.tweak;
ThreefishEngine threefish = skeinEngine.threefish;
ulong[] array = ubiTweak.tweak;
int num = 0;
ulong[] chain = skeinEngine.chain;
threefish.Init(16777216 != 0, chain, array);
ulong[] array2 = this.message;
ulong[] array3;
if (num < array2.Length)
{
ulong num2 = ThreefishEngine.BytesToWord(this.currentBlock, 16777216);
num++;
array2[0] = num2;
array3 = this.message;
}
int num3 = this.engine.threefish.ProcessBlock(array3, output);
int length = output.Length;
if (num < length)
{
ulong num4 = this.message[num];
num++;
}
}
// Token: 0x0600A02A RID: 41002 RVA: 0x002525AC File Offset: 0x002507AC
[Token(Token = "0x600A02A")]
[Address(RVA = "0x20645F0", Offset = "0x2062FF0", VA = "0x1820645F0")]
public void DoFinal(ulong[] output)
{
byte[] array = this.currentBlock;
int num = this.currentOffset;
if (num < array.Length)
{
num++;
byte[] array2 = this.currentBlock;
}
ulong[] array3 = this.tweak.tweak;
this.ProcessBlock(output);
}
// Token: 0x0400691E RID: 26910
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400691E")]
private readonly SkeinEngine.UbiTweak tweak;
// Token: 0x0400691F RID: 26911
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400691F")]
private readonly SkeinEngine engine;
// Token: 0x04006920 RID: 26912
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006920")]
private byte[] currentBlock;
// Token: 0x04006921 RID: 26913
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006921")]
private int currentOffset;
// Token: 0x04006922 RID: 26914
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006922")]
private ulong[] message;
}
}
}
@@ -0,0 +1,622 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001726 RID: 5926
[Token(Token = "0x2001726")]
[StructLayout(3)]
public class TigerDigest : IDigest, IMemoable
{
// Token: 0x0600A02B RID: 41003 RVA: 0x002525F4 File Offset: 0x002507F4
[Token(Token = "0x600A02B")]
[Address(RVA = "0x2064550", Offset = "0x2062F50", VA = "0x182064550")]
public TigerDigest()
{
byte[] array = new byte[8];
this.Buffer = array;
long[] array2 = new long[8];
this.x = array2;
base..ctor();
this.Reset();
}
// Token: 0x0600A02C RID: 41004 RVA: 0x0025262C File Offset: 0x0025082C
[Token(Token = "0x600A02C")]
[Address(RVA = "0x20643E0", Offset = "0x2062DE0", VA = "0x1820643E0")]
public TigerDigest(TigerDigest t)
{
do
{
byte[] array = new byte[8];
this.Buffer = array;
long[] array2 = new long[8];
this.x = array2;
base..ctor();
}
while (t == 0);
long num = t.a;
this.a = num;
long num2 = t.b;
this.b = num2;
long num3 = t.c;
this.c = num3;
long[] array3 = t.x;
int length = array3.Length;
int num4 = 0;
long[] array4 = this.x;
int num5 = 0;
Array.Copy(array3, num5, array4, num4, length);
int num6 = t.xOff;
this.xOff = num6;
byte[] buffer = t.Buffer;
int length2 = buffer.Length;
int num7 = 0;
byte[] buffer2 = this.Buffer;
int num8 = 0;
Array.Copy(buffer, num8, buffer2, num7, length2);
int num9 = t.bOff;
this.bOff = num9;
long num10 = t.byteCount;
this.byteCount = num10;
}
// Token: 0x1700192D RID: 6445
// (get) Token: 0x0600A02D RID: 41005 RVA: 0x00252724 File Offset: 0x00250924
[Token(Token = "0x1700192D")]
public string AlgorithmName
{
[Token(Token = "0x600A02D")]
[Address(RVA = "0x20645C0", Offset = "0x2062FC0", VA = "0x1820645C0", Slot = "4")]
get
{
return "Tiger";
}
}
// Token: 0x0600A02E RID: 41006 RVA: 0x00252738 File Offset: 0x00250938
[Token(Token = "0x600A02E")]
[Address(RVA = "0x11E7910", Offset = "0x11E6310", VA = "0x1811E7910", Slot = "5")]
public int GetDigestSize()
{
return 24;
}
// Token: 0x0600A02F RID: 41007 RVA: 0x00252748 File Offset: 0x00250948
[Token(Token = "0x600A02F")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600A030 RID: 41008 RVA: 0x00252758 File Offset: 0x00250958
[Token(Token = "0x600A030")]
[Address(RVA = "0x20635C0", Offset = "0x2061FC0", VA = "0x1820635C0")]
private void ProcessWord(byte[] b, int off)
{
int num = this.xOff;
long[] array = this.x;
int num2 = num + 1;
this.xOff = num2;
int length = b.Length;
int num3 = off + 1;
byte b2;
array[0] = (long)b2;
int length2 = this.x.Length;
if (this.xOff == length2)
{
this.ProcessBlock();
}
this.bOff = (int)((ulong)0L);
}
// Token: 0x0600A031 RID: 41009 RVA: 0x002527C0 File Offset: 0x002509C0
[Token(Token = "0x600A031")]
[Address(RVA = "0x2064260", Offset = "0x2062C60", VA = "0x182064260", Slot = "7")]
public void Update(byte input)
{
byte[] buffer = this.Buffer;
int num = this.bOff + 1;
this.bOff = num;
byte[] buffer2 = this.Buffer;
int length = buffer2.Length;
if (this.bOff == length)
{
int num2 = 0;
this.ProcessWord(buffer2, num2);
}
}
// Token: 0x0600A032 RID: 41010 RVA: 0x00252810 File Offset: 0x00250A10
[Token(Token = "0x600A032")]
[Address(RVA = "0x20624A0", Offset = "0x2060EA0", VA = "0x1820624A0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = this.bOff;
int num2;
if (num != 0 && length > 0)
{
byte[] buffer = this.Buffer;
num2 = num + 1;
this.bOff = num2;
num2 = num;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
while (num3 != 0)
{
}
}
if (length > 8)
{
num2++;
this.ProcessWord(input, inOff);
while (length != 8)
{
}
}
if (length > 0)
{
int num5 = this.bOff;
byte[] buffer3 = this.Buffer;
num2 = inOff;
int num6 = num5 + 1;
this.bOff = num6;
byte[] buffer4 = this.Buffer;
int length2 = buffer4.Length;
if (this.bOff == length2)
{
int num7 = 0;
this.ProcessWord(buffer4, num7);
}
}
}
// Token: 0x0600A033 RID: 41011 RVA: 0x002528D4 File Offset: 0x00250AD4
[Token(Token = "0x600A033")]
[Address(RVA = "0x20639E0", Offset = "0x20623E0", VA = "0x1820639E0")]
private void RoundABC(long x, long mul)
{
long num = this.a;
long[] array = TigerDigest.t1;
long num2 = this.c;
long[] array2 = TigerDigest.t2;
long num3 = this.c;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.a = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.b = num5;
}
// Token: 0x0600A034 RID: 41012 RVA: 0x00252958 File Offset: 0x00250B58
[Token(Token = "0x600A034")]
[Address(RVA = "0x2063C40", Offset = "0x2062640", VA = "0x182063C40")]
private void RoundBCA(long x, long mul)
{
long num = this.b;
long[] array = TigerDigest.t1;
long num2 = this.a;
long[] array2 = TigerDigest.t2;
long num3 = this.a;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.b = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.c = num5;
}
// Token: 0x0600A035 RID: 41013 RVA: 0x002529DC File Offset: 0x00250BDC
[Token(Token = "0x600A035")]
[Address(RVA = "0x2063EA0", Offset = "0x20628A0", VA = "0x182063EA0")]
private void RoundCAB(long x, long mul)
{
long num = this.c;
long[] array = TigerDigest.t1;
long num2 = this.b;
long[] array2 = TigerDigest.t2;
long num3 = this.b;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.c = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.a = num5;
}
// Token: 0x0600A036 RID: 41014 RVA: 0x00252A60 File Offset: 0x00250C60
[Token(Token = "0x600A036")]
[Address(RVA = "0x2062AB0", Offset = "0x20614B0", VA = "0x182062AB0")]
private void KeySchedule()
{
long[] array = this.x;
int length = array.Length;
long num = array[0];
long num2 = array[7];
num -= num2;
array[0] = num;
long[] array2 = this.x;
long[] array3 = this.x;
long[] array4 = this.x;
int length2 = array4.Length;
long num3 = array4[3];
long num4 = array4[1];
num3 -= num4;
array4[3] = num3;
long[] array5 = this.x;
long[] array6 = this.x;
long[] array7 = this.x;
int length3 = array7.Length;
long num5 = array7[6];
long num6 = array7[4];
num5 -= num6;
array7[6] = num5;
long[] array8 = this.x;
long[] array9 = this.x;
int length4 = array9.Length;
long num7 = array9[0];
array9[0] = num7;
long[] array10 = this.x;
int length5 = array10.Length;
long num8 = array10[1];
long num9 = array10[7];
num8 -= num9;
array10[1] = num8;
long[] array11 = this.x;
long[] array12 = this.x;
long[] array13 = this.x;
int length6 = array13.Length;
long num10 = array13[4];
long num11 = array13[2];
num10 -= num11;
array13[4] = num10;
long[] array14 = this.x;
long[] array15 = this.x;
long num12 = this.x[6];
}
// Token: 0x0600A037 RID: 41015 RVA: 0x00252BF0 File Offset: 0x00250DF0
[Token(Token = "0x600A037")]
[Address(RVA = "0x2062F40", Offset = "0x2061940", VA = "0x182062F40")]
private void ProcessBlock()
{
long num = this.x[0];
long num2 = this.x[1];
long num3 = this.x[2];
long num4 = this.x[3];
long num5 = this.x[4];
long num6 = this.x[5];
long num7 = this.x[6];
long num8 = this.x[7];
this.KeySchedule();
long num9 = this.x[0];
long num10 = this.x[1];
long num11 = this.x[2];
long num12 = this.x[3];
long num13 = this.x[4];
long num14 = this.x[5];
long num15 = this.x[6];
long num16 = this.x[7];
this.KeySchedule();
long num17 = this.x[0];
long num18 = this.x[1];
long num19 = this.x[2];
long num20 = this.x[3];
long num21 = this.x[4];
long num22 = this.x[5];
long num23 = this.x[6];
long num24 = this.x[7];
long[] array = this.x;
int num25 = 0;
this.xOff = num25;
if (num25 != array.Length)
{
num25++;
array[0] = (long)num25;
long[] array2 = this.x;
}
}
// Token: 0x0600A038 RID: 41016 RVA: 0x00252D94 File Offset: 0x00250F94
[Token(Token = "0x600A038")]
[Address(RVA = "0x2064100", Offset = "0x2062B00", VA = "0x182064100")]
private void UnpackWord(long r, byte[] output, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600A039 RID: 41017 RVA: 0x00252DAC File Offset: 0x00250FAC
[Token(Token = "0x600A039")]
[Address(RVA = "0x2063580", Offset = "0x2061F80", VA = "0x182063580")]
private void ProcessLength(long bitLength)
{
this.x[7] = bitLength;
}
// Token: 0x0600A03A RID: 41018 RVA: 0x00252DCC File Offset: 0x00250FCC
[Token(Token = "0x600A03A")]
[Address(RVA = "0x2062980", Offset = "0x2061380", VA = "0x182062980")]
private void Finish()
{
long num;
for (;;)
{
num = this.byteCount;
byte[] buffer = this.Buffer;
int num2 = this.bOff + 1;
this.bOff = num2;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
if (num3 == 0)
{
break;
}
byte[] buffer3 = this.Buffer;
int num5 = num3 + 1;
this.bOff = num5;
byte[] buffer4 = this.Buffer;
if (this.bOff == buffer4.Length)
{
int num6 = 0;
this.ProcessWord(buffer4, num6);
if (this.bOff == 0)
{
break;
}
}
}
this.x[7] = num;
this.ProcessBlock();
}
// Token: 0x0600A03B RID: 41019 RVA: 0x00252E84 File Offset: 0x00251084
[Token(Token = "0x600A03B")]
[Address(RVA = "0x20627E0", Offset = "0x20611E0", VA = "0x1820627E0", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
long num;
for (;;)
{
num = this.byteCount;
byte[] buffer = this.Buffer;
int num2 = this.bOff + 1;
this.bOff = num2;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
if (num3 == 0)
{
break;
}
byte[] buffer3 = this.Buffer;
int num5 = num3 + 1;
this.bOff = num5;
byte[] buffer4 = this.Buffer;
if (this.bOff == buffer4.Length)
{
int num6 = 0;
this.ProcessWord(buffer4, num6);
if (this.bOff == 0)
{
break;
}
}
}
this.x[7] = num;
this.ProcessBlock();
long num7 = this.a;
this.UnpackWord(num7, output, outOff);
long num8 = this.b;
this.UnpackWord(num8, output, outOff);
long num9 = this.c;
this.UnpackWord(num9, output, outOff);
this.Reset();
return 24;
}
// Token: 0x0600A03C RID: 41020 RVA: 0x00252F80 File Offset: 0x00251180
[Token(Token = "0x600A03C")]
[Address(RVA = "0x20637D0", Offset = "0x20621D0", VA = "0x1820637D0", Slot = "10")]
public void Reset()
{
int num;
do
{
num = 0;
this.a = (long)((ulong)81985529216486895L);
this.xOff = num;
this.b = (long)((ulong)(-81985529216486896L));
this.c = (long)((ulong)(-1110518062304271993L));
long[] array = this.x;
if (num != array.Length)
{
num++;
array[0] = (long)num;
long[] array2 = this.x;
}
byte[] buffer = this.Buffer;
this.bOff = num;
if (num == buffer.Length)
{
break;
}
num++;
}
while (this.Buffer != 0);
this.byteCount = (long)num;
}
// Token: 0x0600A03D RID: 41021 RVA: 0x00253020 File Offset: 0x00251220
[Token(Token = "0x600A03D")]
[Address(RVA = "0x2062650", Offset = "0x2061050", VA = "0x182062650", Slot = "11")]
public IMemoable Copy()
{
TigerDigest tigerDigest;
do
{
tigerDigest = new TigerDigest();
byte[] array = new byte[8];
tigerDigest.Buffer = array;
long[] array2 = new long[8];
tigerDigest.x = array2;
}
while (this == 0);
long num = this.a;
tigerDigest.a = num;
long num2 = this.b;
tigerDigest.b = num2;
long num3 = this.c;
tigerDigest.c = num3;
long[] array3 = this.x;
int length = array3.Length;
int num4 = 0;
long[] array4 = tigerDigest.x;
int num5 = 0;
Array.Copy(array3, num5, array4, num4, length);
int num6 = this.xOff;
tigerDigest.xOff = num6;
byte[] buffer = this.Buffer;
int length2 = buffer.Length;
int num7 = 0;
byte[] buffer2 = tigerDigest.Buffer;
int num8 = 0;
Array.Copy(buffer, num8, buffer2, num7, length2);
int num9 = this.bOff;
tigerDigest.bOff = num9;
long num10 = this.byteCount;
tigerDigest.byteCount = num10;
throw new NullReferenceException();
}
// Token: 0x0600A03E RID: 41022 RVA: 0x00253118 File Offset: 0x00251318
[Token(Token = "0x600A03E")]
[Address(RVA = "0x20638C0", Offset = "0x20622C0", VA = "0x1820638C0", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0);
this.a = (long)num;
this.b = (long)num;
this.c = (long)num;
this.xOff = num;
this.bOff = num;
this.byteCount = (long)num;
}
// Token: 0x0600A03F RID: 41023 RVA: 0x0025315C File Offset: 0x0025135C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A03F")]
[Address(RVA = "0x20642D0", Offset = "0x2062CD0", VA = "0x1820642D0")]
static TigerDigest()
{
long[] array = new long[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.A0FABB8173BA247898A9FA267D0CE05500B667A0).FieldHandle);
TigerDigest.t1 = array;
long[] array2 = new long[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.467C6758F235D3193618192A64129CBB602C9067).FieldHandle);
TigerDigest.t2 = array2;
long[] array3 = new long[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.1648F737A4CFFDA4E6C83A3D742109BF9DBC2446).FieldHandle);
TigerDigest.t3 = array3;
long[] array4 = new long[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.C079C42AC966756C902EC38C4D7989F3C20D3625).FieldHandle);
TigerDigest.t4 = array4;
}
// Token: 0x04006923 RID: 26915
[Token(Token = "0x4006923")]
private const int MyByteLength = 64;
// Token: 0x04006924 RID: 26916
[Token(Token = "0x4006924")]
private static readonly long[] t1;
// Token: 0x04006925 RID: 26917
[Token(Token = "0x4006925")]
private static readonly long[] t2;
// Token: 0x04006926 RID: 26918
[Token(Token = "0x4006926")]
private static readonly long[] t3;
// Token: 0x04006927 RID: 26919
[Token(Token = "0x4006927")]
private static readonly long[] t4;
// Token: 0x04006928 RID: 26920
[Token(Token = "0x4006928")]
private const int DigestLength = 24;
// Token: 0x04006929 RID: 26921
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006929")]
private long a;
// Token: 0x0400692A RID: 26922
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400692A")]
private long b;
// Token: 0x0400692B RID: 26923
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x400692B")]
private long c;
// Token: 0x0400692C RID: 26924
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x400692C")]
private long byteCount;
// Token: 0x0400692D RID: 26925
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x400692D")]
private byte[] Buffer;
// Token: 0x0400692E RID: 26926
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x400692E")]
private int bOff;
// Token: 0x0400692F RID: 26927
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x400692F")]
private long[] x;
// Token: 0x04006930 RID: 26928
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006930")]
private int xOff;
}
}
@@ -0,0 +1,650 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001727 RID: 5927
[Token(Token = "0x2001727")]
[StructLayout(3)]
public sealed class WhirlpoolDigest : IDigest, IMemoable
{
// Token: 0x0600A040 RID: 41024 RVA: 0x002531DC File Offset: 0x002513DC
[Token(Token = "0x600A040")]
[Address(RVA = "0x2065D10", Offset = "0x2064710", VA = "0x182065D10")]
static WhirlpoolDigest()
{
int[] array = new int[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.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: 0x0600A041 RID: 41025 RVA: 0x0025331C File Offset: 0x0025151C
[Token(Token = "0x600A041")]
[Address(RVA = "0x2066420", Offset = "0x2064E20", VA = "0x182066420")]
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: 0x0600A042 RID: 41026 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A042")]
[Address(RVA = "0x2066E00", Offset = "0x2065800", VA = "0x182066E00")]
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: 0x0600A043 RID: 41027 RVA: 0x00253424 File Offset: 0x00251624
[Token(Token = "0x600A043")]
[Address(RVA = "0x2066DE0", Offset = "0x20657E0", VA = "0x182066DE0")]
private static int maskWithReductionPolynomial(int input)
{
return input;
}
// Token: 0x0600A044 RID: 41028 RVA: 0x00253434 File Offset: 0x00251634
[Token(Token = "0x600A044")]
[Address(RVA = "0x2066320", Offset = "0x2064D20", VA = "0x182066320")]
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: 0x1700192E RID: 6446
// (get) Token: 0x0600A045 RID: 41029 RVA: 0x002534CC File Offset: 0x002516CC
[Token(Token = "0x1700192E")]
public string AlgorithmName
{
[Token(Token = "0x600A045")]
[Address(RVA = "0x2066C60", Offset = "0x2065660", VA = "0x182066C60", Slot = "4")]
get
{
return "Whirlpool";
}
}
// Token: 0x0600A046 RID: 41030 RVA: 0x002534E0 File Offset: 0x002516E0
[Token(Token = "0x600A046")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "5")]
public int GetDigestSize()
{
return 64;
}
// Token: 0x0600A047 RID: 41031 RVA: 0x002534F0 File Offset: 0x002516F0
[Token(Token = "0x600A047")]
[Address(RVA = "0x2065700", Offset = "0x2064100", VA = "0x182065700", 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: 0x0600A048 RID: 41032 RVA: 0x002535F8 File Offset: 0x002517F8
[Token(Token = "0x600A048")]
[Address(RVA = "0x20658E0", Offset = "0x20642E0", VA = "0x1820658E0", 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: 0x0600A049 RID: 41033 RVA: 0x002536E4 File Offset: 0x002518E4
[Token(Token = "0x600A049")]
[Address(RVA = "0x2067BB0", Offset = "0x20665B0", VA = "0x182067BB0")]
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: 0x0600A04A RID: 41034 RVA: 0x00253764 File Offset: 0x00251964
[Token(Token = "0x600A04A")]
[Address(RVA = "0x2066820", Offset = "0x2065220", VA = "0x182066820")]
private static long bytesToLongFromBuffer(byte[] buffer, int startPos)
{
int length = buffer.Length;
int num = startPos + 1;
throw new NullReferenceException();
}
// Token: 0x0600A04B RID: 41035 RVA: 0x00253784 File Offset: 0x00251984
[Token(Token = "0x600A04B")]
[Address(RVA = "0x20669D0", Offset = "0x20653D0", VA = "0x1820669D0")]
private static void convertLongToByteArray(long inputLong, byte[] outputArray, int offSet)
{
}
// Token: 0x0600A04C RID: 41036 RVA: 0x00253798 File Offset: 0x00251998
[Token(Token = "0x600A04C")]
[Address(RVA = "0x2066E60", Offset = "0x2065860", VA = "0x182066E60")]
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: 0x0600A04D RID: 41037 RVA: 0x00253A2C File Offset: 0x00251C2C
[Token(Token = "0x600A04D")]
[Address(RVA = "0x2065B70", Offset = "0x2064570", VA = "0x182065B70", 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: 0x0600A04E RID: 41038 RVA: 0x00253A9C File Offset: 0x00251C9C
[Token(Token = "0x600A04E")]
[Address(RVA = "0x2066C90", Offset = "0x2065690", VA = "0x182066C90")]
private void increment()
{
int length = this._bitCount.Length;
short[] bitCount = this._bitCount;
short[] eight = WhirlpoolDigest.EIGHT;
short[] bitCount2 = this._bitCount;
}
// Token: 0x0600A04F RID: 41039 RVA: 0x00253AD0 File Offset: 0x00251CD0
[Token(Token = "0x600A04F")]
[Address(RVA = "0x2065560", Offset = "0x2063F60", VA = "0x182065560", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
if (length > 0)
{
byte b;
this.Update(b);
}
}
// Token: 0x0600A050 RID: 41040 RVA: 0x00253AF0 File Offset: 0x00251CF0
[Token(Token = "0x600A050")]
[Address(RVA = "0x2066AE0", Offset = "0x20654E0", VA = "0x182066AE0")]
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: 0x0600A051 RID: 41041 RVA: 0x00253BD0 File Offset: 0x00251DD0
[Token(Token = "0x600A051")]
[Address(RVA = "0x2066A40", Offset = "0x2065440", VA = "0x182066A40")]
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: 0x0600A052 RID: 41042 RVA: 0x00253C0C File Offset: 0x00251E0C
[Token(Token = "0x600A052")]
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600A053 RID: 41043 RVA: 0x00253C1C File Offset: 0x00251E1C
[Token(Token = "0x600A053")]
[Address(RVA = "0x20655E0", Offset = "0x2063FE0", VA = "0x1820655E0", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600A053)
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: 0x0600A054 RID: 41044 RVA: 0x00253CB4 File Offset: 0x00251EB4
[Token(Token = "0x600A054")]
[Address(RVA = "0x20659B0", Offset = "0x20643B0", VA = "0x1820659B0", 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: 0x04006931 RID: 26929
[Token(Token = "0x4006931")]
private const int BYTE_LENGTH = 64;
// Token: 0x04006932 RID: 26930
[Token(Token = "0x4006932")]
private const int DIGEST_LENGTH_BYTES = 64;
// Token: 0x04006933 RID: 26931
[Token(Token = "0x4006933")]
private const int ROUNDS = 10;
// Token: 0x04006934 RID: 26932
[Token(Token = "0x4006934")]
private const int REDUCTION_POLYNOMIAL = 285;
// Token: 0x04006935 RID: 26933
[Token(Token = "0x4006935")]
private static readonly int[] SBOX;
// Token: 0x04006936 RID: 26934
[Token(Token = "0x4006936")]
private static readonly long[] C0;
// Token: 0x04006937 RID: 26935
[Token(Token = "0x4006937")]
private static readonly long[] C1;
// Token: 0x04006938 RID: 26936
[Token(Token = "0x4006938")]
private static readonly long[] C2;
// Token: 0x04006939 RID: 26937
[Token(Token = "0x4006939")]
private static readonly long[] C3;
// Token: 0x0400693A RID: 26938
[Token(Token = "0x400693A")]
private static readonly long[] C4;
// Token: 0x0400693B RID: 26939
[Token(Token = "0x400693B")]
private static readonly long[] C5;
// Token: 0x0400693C RID: 26940
[Token(Token = "0x400693C")]
private static readonly long[] C6;
// Token: 0x0400693D RID: 26941
[Token(Token = "0x400693D")]
private static readonly long[] C7;
// Token: 0x0400693E RID: 26942
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400693E")]
private readonly long[] _rc;
// Token: 0x0400693F RID: 26943
[Token(Token = "0x400693F")]
private static readonly short[] EIGHT;
// Token: 0x04006940 RID: 26944
[Token(Token = "0x4006940")]
private const int BITCOUNT_ARRAY_SIZE = 32;
// Token: 0x04006941 RID: 26945
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006941")]
private byte[] _buffer;
// Token: 0x04006942 RID: 26946
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006942")]
private int _bufferPos;
// Token: 0x04006943 RID: 26947
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006943")]
private short[] _bitCount;
// Token: 0x04006944 RID: 26948
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006944")]
private long[] _hash;
// Token: 0x04006945 RID: 26949
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006945")]
private long[] _K;
// Token: 0x04006946 RID: 26950
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006946")]
private long[] _L;
// Token: 0x04006947 RID: 26951
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006947")]
private long[] _block;
// Token: 0x04006948 RID: 26952
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006948")]
private long[] _state;
}
}