This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,637 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D60 RID: 7520
[Token(Token = "0x2001D60")]
public class AesEngine : IBlockCipher
{
// Token: 0x0600BA88 RID: 47752 RVA: 0x0028A6A4 File Offset: 0x002888A4
[Token(Token = "0x600BA88")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600BA89 RID: 47753 RVA: 0x0028A6B4 File Offset: 0x002888B4
[Token(Token = "0x600BA89")]
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600BA89)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BA8A RID: 47754 RVA: 0x0028A6C8 File Offset: 0x002888C8
[Token(Token = "0x600BA8A")]
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600BA8B RID: 47755 RVA: 0x0028A6D8 File Offset: 0x002888D8
[Token(Token = "0x600BA8B")]
[Address(RVA = "0x248F0D0", Offset = "0x248E0D0", VA = "0x18248F0D0")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600BA8C RID: 47756 RVA: 0x0028A6E8 File Offset: 0x002888E8
[Token(Token = "0x600BA8C")]
[Address(RVA = "0x248F380", Offset = "0x248E380", VA = "0x18248F380")]
private static uint SubWord(uint x)
{
int length = AesEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600BA8D RID: 47757 RVA: 0x0028A708 File Offset: 0x00288908
[Token(Token = "0x600BA8D")]
[Address(RVA = "0x248D8F0", Offset = "0x248C8F0", VA = "0x18248D8F0")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.rcon)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesEngine.SubWord(array20);
byte[] array21 = AesEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600BA8E RID: 47758 RVA: 0x0028ABFC File Offset: 0x00288DFC
[Token(Token = "0x600BA8E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public AesEngine()
{
this.Reset();
}
// Token: 0x0600BA8F RID: 47759 RVA: 0x0028AC10 File Offset: 0x00288E10
[Token(Token = "0x600BA8F")]
[Address(RVA = "0x248EF20", Offset = "0x248DF20", VA = "0x18248EF20", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BA8F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_5_49, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_4))))
}
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: 0x17001D51 RID: 7505
// (get) Token: 0x0600BA90 RID: 47760 RVA: 0x0028AC68 File Offset: 0x00288E68
[Token(Token = "0x17001D51")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BA90")]
[Address(RVA = "0x248F650", Offset = "0x248E650", VA = "0x18248F650", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001D52 RID: 7506
// (get) Token: 0x0600BA91 RID: 47761 RVA: 0x0028AC7C File Offset: 0x00288E7C
[Token(Token = "0x17001D52")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BA91")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BA92 RID: 47762 RVA: 0x0028AC8C File Offset: 0x00288E8C
[Token(Token = "0x600BA92")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BA93 RID: 47763 RVA: 0x0028AC9C File Offset: 0x00288E9C
[Token(Token = "0x600BA93")]
[Address(RVA = "0x248F200", Offset = "0x248E200", VA = "0x18248F200", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BA93)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BA94 RID: 47764 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BA94")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BA95 RID: 47765 RVA: 0x0028AD14 File Offset: 0x00288F14
[Token(Token = "0x600BA95")]
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600BA96 RID: 47766 RVA: 0x0028AD24 File Offset: 0x00288F24
[Token(Token = "0x600BA96")]
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600BA97 RID: 47767 RVA: 0x0028AD68 File Offset: 0x00288F68
[Token(Token = "0x600BA97")]
[Address(RVA = "0x248C580", Offset = "0x248B580", VA = "0x18248C580")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
uint[] t = AesEngine.T0;
int length3 = t.Length;
num2 = num4;
uint[] array2;
int length4 = array2.Length;
uint num5 = t[(int)num2];
num2 = num5;
uint num6 = t[(int)num2];
num2 = num6;
num = num2;
num2 = num3;
num6 = num2;
num2 = num4;
num5 = num2;
num2 = num;
uint num7 = t[(int)num2];
uint num8 = t[(int)num5];
uint num9 = t[(int)num6];
num = num3;
num2 = num4;
num9 = num2;
num2 = num;
num8 = num2;
uint num10 = t[(int)num2];
uint num11 = t[(int)num8];
uint num12 = t[(int)num9];
num2 = num12;
num12 = num;
num11 = num2;
uint num13 = t[(int)num3];
num = num13;
uint num14 = t[(int)num11];
uint num15 = t[(int)num12];
uint num16;
num16 += (uint)1;
num15 = num7;
num7 = num10;
num14 = num7;
uint num17 = t[(int)num14];
uint num18 = t[(int)num15];
num7 = num18;
num3 = num7;
num7 = num10;
num18 = num7;
num7 = num;
num17 = num7;
uint num19 = t[(int)num17];
uint num20 = t[(int)num18];
num7 = num;
num20 = num7;
num19 = num7;
uint num21 = t[(int)num19];
num7 = t[(int)num20];
}
uint[] t2 = AesEngine.T0;
int length5 = t2.Length;
num = num2;
uint num22 = t2[(int)num];
num2 = num3;
num = num2;
num2 = num4;
uint num23 = t2[(int)num2];
uint[] array3;
int length6 = array3.Length;
num2 = num;
uint num24 = t2[(int)num2];
num24 = num3;
uint num25 = t2[(int)num24];
num25 = num2;
uint num26 = t2[(int)num25];
uint num27 = t2[(int)num3];
uint num28;
num28 += (uint)1;
int length7 = AesEngine.S.Length;
int length8 = AesEngine.S.Length;
int length9 = AesEngine.S.Length;
byte[] array4 = AesEngine.S;
}
// Token: 0x0600BA98 RID: 47768 RVA: 0x0028B040 File Offset: 0x00289240
[Token(Token = "0x600BA98")]
[Address(RVA = "0x248B270", Offset = "0x248A270", VA = "0x18248B270")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[1];
uint num3 = array[1];
if (array > (ulong)1L)
{
uint[] array2 = KW[array];
uint[] tinv = AesEngine.Tinv0;
int length3 = tinv.Length;
num3 = num2;
int length4 = array2.Length;
uint num4 = tinv[(int)num3];
uint num5 = tinv[(int)num3];
num3 = num5;
uint num6 = tinv[(int)num3];
num3 = num;
num6 = num3;
num5 = num3;
uint num7 = tinv[(int)num5];
uint num8 = tinv[(int)num6];
num3 = num8;
num = num2;
num8 = num3;
num3 = num;
num7 = num3;
uint num9 = tinv[(int)num7];
uint num10 = tinv[(int)num8];
num3 = num10;
num10 = num2;
num = tinv[(int)num];
uint num11 = tinv[(int)num9];
uint num12 = tinv[(int)num10];
num2 = num4;
num12 = num;
num11 = num;
uint num13 = tinv[(int)num11];
uint num14 = tinv[(int)num12];
num = num4;
num14 = num;
num13 = num;
uint num15 = tinv[(int)num];
uint num16 = tinv[(int)num13];
uint num17 = tinv[(int)num14];
num = num17;
num16 = num;
num = num4;
num17 = num;
num = tinv[(int)num16];
num = tinv[(int)num17];
}
uint[] array3 = KW[1];
uint[] tinv2 = AesEngine.Tinv0;
int length5 = tinv2.Length;
num = num3;
uint num18 = tinv2[(int)num];
num3 = num2;
num = num3;
uint num19 = tinv2[(int)num3];
int length6 = array3.Length;
num3 = num;
num19 = num3;
uint num20 = tinv2[(int)num19];
num3 = num2;
uint num21 = tinv2[(int)num3];
num3 = num20;
num21 = num2;
uint num22 = tinv2[(int)num21];
num22 = num3;
uint num23 = tinv2[(int)num22];
num20 = num23;
num22 = num2;
uint num24 = tinv2[(int)num22];
uint num25 = tinv2[(int)num22];
uint num26 = tinv2[(int)num];
int length7 = AesEngine.Si.Length;
byte[] si = AesEngine.Si;
num23 = num20;
int length8 = AesEngine.Si.Length;
byte b = AesEngine.Si[(int)num23];
}
// Token: 0x0600BA99 RID: 47769 RVA: 0x0028B2F0 File Offset: 0x002894F0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA99")]
[Address(RVA = "0x248F510", Offset = "0x248E510", VA = "0x18248F510")]
static AesEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesEngine.rcon = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
AesEngine.T0 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
AesEngine.Tinv0 = array5;
}
// Token: 0x04007581 RID: 30081
[Token(Token = "0x4007581")]
private static readonly byte[] S;
// Token: 0x04007582 RID: 30082
[Token(Token = "0x4007582")]
private static readonly byte[] Si;
// Token: 0x04007583 RID: 30083
[Token(Token = "0x4007583")]
private static readonly byte[] rcon;
// Token: 0x04007584 RID: 30084
[Token(Token = "0x4007584")]
private static readonly uint[] T0;
// Token: 0x04007585 RID: 30085
[Token(Token = "0x4007585")]
private static readonly uint[] Tinv0;
// Token: 0x04007586 RID: 30086
[Token(Token = "0x4007586")]
private const uint m1 = 2155905152U;
// Token: 0x04007587 RID: 30087
[Token(Token = "0x4007587")]
private const uint m2 = 2139062143U;
// Token: 0x04007588 RID: 30088
[Token(Token = "0x4007588")]
private const uint m3 = 27U;
// Token: 0x04007589 RID: 30089
[Token(Token = "0x4007589")]
private const uint m4 = 3233857728U;
// Token: 0x0400758A RID: 30090
[Token(Token = "0x400758A")]
private const uint m5 = 1061109567U;
// Token: 0x0400758B RID: 30091
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400758B")]
private int ROUNDS;
// Token: 0x0400758C RID: 30092
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400758C")]
private uint[][] WorkingKey;
// Token: 0x0400758D RID: 30093
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400758D")]
private uint C0;
// Token: 0x0400758E RID: 30094
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400758E")]
private uint C1;
// Token: 0x0400758F RID: 30095
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400758F")]
private uint C2;
// Token: 0x04007590 RID: 30096
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007590")]
private uint C3;
// Token: 0x04007591 RID: 30097
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007591")]
private bool forEncryption;
// Token: 0x04007592 RID: 30098
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007592")]
private byte[] s;
// Token: 0x04007593 RID: 30099
[Token(Token = "0x4007593")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,673 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D61 RID: 7521
[Token(Token = "0x2001D61")]
[Obsolete]
public class AesFastEngine : IBlockCipher
{
// Token: 0x0600BA9A RID: 47770 RVA: 0x0028B38C File Offset: 0x0028958C
[Token(Token = "0x600BA9A")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600BA9B RID: 47771 RVA: 0x0028B39C File Offset: 0x0028959C
[Token(Token = "0x600BA9B")]
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600BA9B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BA9C RID: 47772 RVA: 0x0028B3B0 File Offset: 0x002895B0
[Token(Token = "0x600BA9C")]
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600BA9D RID: 47773 RVA: 0x0028B3C0 File Offset: 0x002895C0
[Token(Token = "0x600BA9D")]
[Address(RVA = "0x2493240", Offset = "0x2492240", VA = "0x182493240")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600BA9E RID: 47774 RVA: 0x0028B3D0 File Offset: 0x002895D0
[Token(Token = "0x600BA9E")]
[Address(RVA = "0x2493480", Offset = "0x2492480", VA = "0x182493480")]
private static uint SubWord(uint x)
{
int length = AesFastEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600BA9F RID: 47775 RVA: 0x0028B3F0 File Offset: 0x002895F0
[Token(Token = "0x600BA9F")]
[Address(RVA = "0x2491B00", Offset = "0x2490B00", VA = "0x182491B00")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.ROUNDS)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesFastEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesFastEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesFastEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesFastEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesFastEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesFastEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesFastEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesFastEngine.SubWord(array20);
byte[] array21 = AesFastEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesFastEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600BAA0 RID: 47776 RVA: 0x0028B8E4 File Offset: 0x00289AE4
[Token(Token = "0x600BAA0")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public AesFastEngine()
{
this.Reset();
}
// Token: 0x0600BAA1 RID: 47777 RVA: 0x0028B8F8 File Offset: 0x00289AF8
[Token(Token = "0x600BAA1")]
[Address(RVA = "0x2493130", Offset = "0x2492130", VA = "0x182493130", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BAA1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_22:
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D53 RID: 7507
// (get) Token: 0x0600BAA2 RID: 47778 RVA: 0x0028B938 File Offset: 0x00289B38
[Token(Token = "0x17001D53")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BAA2")]
[Address(RVA = "0x2493830", Offset = "0x2492830", VA = "0x182493830", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001D54 RID: 7508
// (get) Token: 0x0600BAA3 RID: 47779 RVA: 0x0028B94C File Offset: 0x00289B4C
[Token(Token = "0x17001D54")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BAA3")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BAA4 RID: 47780 RVA: 0x0028B95C File Offset: 0x00289B5C
[Token(Token = "0x600BAA4")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BAA5 RID: 47781 RVA: 0x0028B96C File Offset: 0x00289B6C
[Token(Token = "0x600BAA5")]
[Address(RVA = "0x2493300", Offset = "0x2492300", VA = "0x182493300", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BAA5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BAA6 RID: 47782 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BAA6")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BAA7 RID: 47783 RVA: 0x0028B9E4 File Offset: 0x00289BE4
[Token(Token = "0x600BAA7")]
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600BAA8 RID: 47784 RVA: 0x0028B9F4 File Offset: 0x00289BF4
[Token(Token = "0x600BAA8")]
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600BAA9 RID: 47785 RVA: 0x0028BA38 File Offset: 0x00289C38
[Token(Token = "0x600BAA9")]
[Address(RVA = "0x24908B0", Offset = "0x248F8B0", VA = "0x1824908B0")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
uint[] t = AesFastEngine.T0;
int length3 = t.Length;
uint[] t2 = AesFastEngine.T1;
int length4 = t2.Length;
uint[] t3 = AesFastEngine.T2;
int length5 = t3.Length;
num2 = num3;
num = num2;
uint[] t4 = AesFastEngine.T3;
int length6 = t4.Length;
uint[] array2;
int length7 = array2.Length;
num2 = num;
uint num5 = t4[(int)num2];
num2 = num4;
num = num2;
uint num6 = t4[(int)num];
num2 = num4;
num = num2;
int length8 = t4.Length;
uint num7 = t4[(int)num];
int length9 = t.Length;
int length10 = t3.Length;
uint num8 = t4[(int)num3];
uint num9;
num9 += (uint)1;
int length11 = t2.Length;
num5 = num6;
num4 = num5;
int length12 = t4.Length;
num5 = num4;
uint num10 = t3[(int)num5];
int length13 = t.Length;
num5 = num8;
uint num11 = t3[(int)num5];
num5 = num6;
uint num12 = t2[(int)num5];
num = num5;
}
uint[] t5 = AesFastEngine.T0;
int length14 = t5.Length;
uint num13 = t5[(int)num];
uint[] t6 = AesFastEngine.T1;
int length15 = t6.Length;
num13 = num2;
uint num14 = t6[(int)num13];
uint[] t7 = AesFastEngine.T2;
int length16 = t7.Length;
num14 = num3;
uint[] t8 = AesFastEngine.T3;
uint num15 = t7[(int)num14];
int length17 = t8.Length;
num15 = num4;
uint num16 = t8[(int)num15];
uint[] array3;
int length18 = array3.Length;
uint num17 = array3[0];
num16 = num2;
uint num18 = t5[(int)num16];
num16 = num3;
uint num19 = t6[(int)num16];
num19 = num4;
num16 = num19;
uint num20 = t7[(int)num16];
uint num21 = t8[(int)num];
uint num22 = array3[0];
num21 = num3;
uint num23 = t5[(int)num21];
num23 = num4;
num21 = num23;
uint num24 = t6[(int)num21];
num = num2;
int length19 = t8.Length;
uint num25 = t8[(int)num];
uint num26 = array3[1];
uint num27 = array3[1];
uint num28;
num28 += (uint)1;
int length20 = AesFastEngine.S.Length;
int length21 = AesFastEngine.S.Length;
int length22 = AesFastEngine.S.Length;
int length23 = AesFastEngine.S.Length;
}
// Token: 0x0600BAAA RID: 47786 RVA: 0x0028BD3C File Offset: 0x00289F3C
[Token(Token = "0x600BAAA")]
[Address(RVA = "0x248F680", Offset = "0x248E680", VA = "0x18248F680")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
if (array > (ulong)1L)
{
uint[] array2 = KW[array];
uint[] tinv = AesFastEngine.Tinv0;
int length3 = tinv.Length;
int length4 = AesFastEngine.Tinv1.Length;
uint[] tinv2 = AesFastEngine.Tinv2;
int length5 = tinv2.Length;
num = num3;
uint[] tinv3 = AesFastEngine.Tinv3;
int length6 = tinv3.Length;
int length7 = array2.Length;
num3 = num;
uint num4 = tinv3[(int)num3];
num3 = num;
num = num3;
uint num5 = tinv3[(int)num];
num3 = num2;
int length8 = tinv3.Length;
num = num3;
uint num6 = tinv3[(int)num];
int length9 = tinv.Length;
int length10 = tinv2.Length;
uint num7 = tinv3[(int)num];
int length11 = tinv3.Length;
uint num8 = tinv3[(int)num5];
num4 = num7;
num8 = num4;
uint num9 = tinv2[(int)num8];
num3 = num7;
}
uint[] array3 = KW[1];
uint[] tinv4 = AesFastEngine.Tinv0;
int length12 = tinv4.Length;
uint num10 = tinv4[(int)num];
uint[] tinv5 = AesFastEngine.Tinv1;
int length13 = tinv5.Length;
num10 = num3;
uint num11 = tinv5[(int)num10];
uint[] tinv6 = AesFastEngine.Tinv2;
int length14 = tinv6.Length;
uint[] tinv7 = AesFastEngine.Tinv3;
uint num12 = tinv6[(int)num11];
num12 = num2;
uint num13 = tinv7[(int)num12];
int length15 = array3.Length;
uint num14 = array3[0];
num13 = num2;
uint num15 = tinv4[(int)num13];
num13 = num;
uint num16 = tinv5[(int)num13];
num16 = num3;
num13 = num16;
uint num17 = tinv6[(int)num13];
uint num18 = tinv7[(int)num17];
uint num19 = array3[0];
uint num20 = tinv4[(int)num18];
num18 = num2;
uint num21 = tinv5[(int)num18];
int length16 = tinv7.Length;
num = num3;
uint num22 = tinv7[(int)num];
uint num23 = array3[1];
uint num24 = array3[1];
int length17 = AesFastEngine.Si.Length;
int length18 = AesFastEngine.Si.Length;
int length19 = AesFastEngine.Si.Length;
int length20 = AesFastEngine.Si.Length;
}
// Token: 0x0600BAAB RID: 47787 RVA: 0x0028BFF8 File Offset: 0x0028A1F8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BAAB")]
[Address(RVA = "0x24935A0", Offset = "0x24925A0", VA = "0x1824935A0")]
static AesFastEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesFastEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesFastEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesFastEngine.rcon = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
AesFastEngine.T0 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.102C522344FCAC1545BDA50C0FC675C502FFEC53).FieldHandle);
AesFastEngine.T1 = array5;
uint[] array6 = new uint[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.29EC5E8FCA12DB9EC0B5E6D2DE67B624D2E2372C).FieldHandle);
AesFastEngine.T2 = array6;
uint[] array7 = new uint[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.95CA85749ADCFBF9A2B82C0381DBCF95D175524C).FieldHandle);
AesFastEngine.T3 = array7;
uint[] array8 = new uint[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
AesFastEngine.Tinv0 = array8;
uint[] array9 = new uint[256];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.D9C221237B647EC215A7BCDED447349810E6BF9C).FieldHandle);
AesFastEngine.Tinv1 = array9;
uint[] array10 = new uint[256];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.E43F6BA634642FB90FEEE1A8F9905E957741960C).FieldHandle);
AesFastEngine.Tinv2 = array10;
uint[] array11 = new uint[256];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.04D2A79C8A779AFAA779125335E9334C245EBB46).FieldHandle);
AesFastEngine.Tinv3 = array11;
}
// Token: 0x04007594 RID: 30100
[Token(Token = "0x4007594")]
private static readonly byte[] S;
// Token: 0x04007595 RID: 30101
[Token(Token = "0x4007595")]
private static readonly byte[] Si;
// Token: 0x04007596 RID: 30102
[Token(Token = "0x4007596")]
private static readonly byte[] rcon;
// Token: 0x04007597 RID: 30103
[Token(Token = "0x4007597")]
private static readonly uint[] T0;
// Token: 0x04007598 RID: 30104
[Token(Token = "0x4007598")]
private static readonly uint[] T1;
// Token: 0x04007599 RID: 30105
[Token(Token = "0x4007599")]
private static readonly uint[] T2;
// Token: 0x0400759A RID: 30106
[Token(Token = "0x400759A")]
private static readonly uint[] T3;
// Token: 0x0400759B RID: 30107
[Token(Token = "0x400759B")]
private static readonly uint[] Tinv0;
// Token: 0x0400759C RID: 30108
[Token(Token = "0x400759C")]
private static readonly uint[] Tinv1;
// Token: 0x0400759D RID: 30109
[Token(Token = "0x400759D")]
private static readonly uint[] Tinv2;
// Token: 0x0400759E RID: 30110
[Token(Token = "0x400759E")]
private static readonly uint[] Tinv3;
// Token: 0x0400759F RID: 30111
[Token(Token = "0x400759F")]
private const uint m1 = 2155905152U;
// Token: 0x040075A0 RID: 30112
[Token(Token = "0x40075A0")]
private const uint m2 = 2139062143U;
// Token: 0x040075A1 RID: 30113
[Token(Token = "0x40075A1")]
private const uint m3 = 27U;
// Token: 0x040075A2 RID: 30114
[Token(Token = "0x40075A2")]
private const uint m4 = 3233857728U;
// Token: 0x040075A3 RID: 30115
[Token(Token = "0x40075A3")]
private const uint m5 = 1061109567U;
// Token: 0x040075A4 RID: 30116
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075A4")]
private int ROUNDS;
// Token: 0x040075A5 RID: 30117
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075A5")]
private uint[][] WorkingKey;
// Token: 0x040075A6 RID: 30118
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075A6")]
private uint C0;
// Token: 0x040075A7 RID: 30119
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40075A7")]
private uint C1;
// Token: 0x040075A8 RID: 30120
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075A8")]
private uint C2;
// Token: 0x040075A9 RID: 30121
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40075A9")]
private uint C3;
// Token: 0x040075AA RID: 30122
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075AA")]
private bool forEncryption;
// Token: 0x040075AB RID: 30123
[Token(Token = "0x40075AB")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,580 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D62 RID: 7522
[Token(Token = "0x2001D62")]
public class AesLightEngine : IBlockCipher
{
// Token: 0x0600BAAC RID: 47788 RVA: 0x0028C14C File Offset: 0x0028A34C
[Token(Token = "0x600BAAC")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600BAAD RID: 47789 RVA: 0x0028C15C File Offset: 0x0028A35C
[Token(Token = "0x600BAAD")]
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600BAAD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BAAE RID: 47790 RVA: 0x0028C170 File Offset: 0x0028A370
[Token(Token = "0x600BAAE")]
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600BAAF RID: 47791 RVA: 0x0028C180 File Offset: 0x0028A380
[Token(Token = "0x600BAAF")]
[Address(RVA = "0x24976C0", Offset = "0x24966C0", VA = "0x1824976C0")]
private static uint Mcol(uint x)
{
return x;
}
// Token: 0x0600BAB0 RID: 47792 RVA: 0x0028C190 File Offset: 0x0028A390
[Token(Token = "0x600BAB0")]
[Address(RVA = "0x2497600", Offset = "0x2496600", VA = "0x182497600")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600BAB1 RID: 47793 RVA: 0x0028C1A0 File Offset: 0x0028A3A0
[Token(Token = "0x600BAB1")]
[Address(RVA = "0x24978D0", Offset = "0x24968D0", VA = "0x1824978D0")]
private static uint SubWord(uint x)
{
int length = AesLightEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600BAB2 RID: 47794 RVA: 0x0028C1C0 File Offset: 0x0028A3C0
[Token(Token = "0x600BAB2")]
[Address(RVA = "0x2495EC0", Offset = "0x2494EC0", VA = "0x182495EC0")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.rcon)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesLightEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesLightEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesLightEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesLightEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesLightEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesLightEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesLightEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesLightEngine.SubWord(array20);
byte[] array21 = AesLightEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesLightEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600BAB3 RID: 47795 RVA: 0x0028C6B4 File Offset: 0x0028A8B4
[Token(Token = "0x600BAB3")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public AesLightEngine()
{
this.Reset();
}
// Token: 0x0600BAB4 RID: 47796 RVA: 0x0028C6C8 File Offset: 0x0028A8C8
[Token(Token = "0x600BAB4")]
[Address(RVA = "0x24974F0", Offset = "0x24964F0", VA = "0x1824974F0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BAB4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_22:
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D55 RID: 7509
// (get) Token: 0x0600BAB5 RID: 47797 RVA: 0x0028C708 File Offset: 0x0028A908
[Token(Token = "0x17001D55")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BAB5")]
[Address(RVA = "0x2497AC0", Offset = "0x2496AC0", VA = "0x182497AC0", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001D56 RID: 7510
// (get) Token: 0x0600BAB6 RID: 47798 RVA: 0x0028C71C File Offset: 0x0028A91C
[Token(Token = "0x17001D56")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BAB6")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BAB7 RID: 47799 RVA: 0x0028C72C File Offset: 0x0028A92C
[Token(Token = "0x600BAB7")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BAB8 RID: 47800 RVA: 0x0028C73C File Offset: 0x0028A93C
[Token(Token = "0x600BAB8")]
[Address(RVA = "0x2497750", Offset = "0x2496750", VA = "0x182497750", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BAB8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BAB9 RID: 47801 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BAB9")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BABA RID: 47802 RVA: 0x0028C7B4 File Offset: 0x0028A9B4
[Token(Token = "0x600BABA")]
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600BABB RID: 47803 RVA: 0x0028C7C4 File Offset: 0x0028A9C4
[Token(Token = "0x600BABB")]
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600BABC RID: 47804 RVA: 0x0028C808 File Offset: 0x0028AA08
[Token(Token = "0x600BABC")]
[Address(RVA = "0x2494B80", Offset = "0x2493B80", VA = "0x182494B80")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
int length3 = AesLightEngine.S.Length;
num2 = num4;
byte b;
uint num5 = AesLightEngine.Mcol((uint)b);
uint[] array2;
uint num6 = array2[0];
int length4 = AesLightEngine.S.Length;
byte b2;
uint num7 = AesLightEngine.Mcol((uint)b2);
uint num8 = array2[0];
int length5 = AesLightEngine.S.Length;
num4 = num2;
byte b3;
uint num9 = AesLightEngine.Mcol((uint)b3);
uint num10 = array2[1];
int length6 = AesLightEngine.S.Length;
byte b4;
uint num11 = AesLightEngine.Mcol((uint)b4);
uint num12 = array2[1];
int length7 = AesLightEngine.S.Length;
byte b5;
uint num13 = AesLightEngine.Mcol((uint)b5);
int length8 = AesLightEngine.S.Length;
byte b6;
uint num14 = AesLightEngine.Mcol((uint)b6);
int length9 = AesLightEngine.S.Length;
byte b7;
uint num15 = AesLightEngine.Mcol((uint)b7);
int length10 = AesLightEngine.S.Length;
byte b8;
uint num16 = AesLightEngine.Mcol((uint)b8);
}
int length11 = AesLightEngine.S.Length;
byte b9;
uint num17 = AesLightEngine.Mcol((uint)b9);
uint[] array3;
uint num18 = array3[0];
int length12 = AesLightEngine.S.Length;
byte b10;
uint num19 = AesLightEngine.Mcol((uint)b10);
uint num20 = array3[0];
int length13 = AesLightEngine.S.Length;
byte b11;
uint num21 = AesLightEngine.Mcol((uint)b11);
uint num22 = array3[1];
int length14 = AesLightEngine.S.Length;
byte b12;
uint num23 = AesLightEngine.Mcol((uint)b12);
uint num24 = array3[1];
uint num25;
num25 += (uint)1;
int length15 = AesLightEngine.S.Length;
int length16 = AesLightEngine.S.Length;
int length17 = AesLightEngine.S.Length;
int length18 = AesLightEngine.S.Length;
}
// Token: 0x0600BABD RID: 47805 RVA: 0x0028CA88 File Offset: 0x0028AC88
[Token(Token = "0x600BABD")]
[Address(RVA = "0x2493860", Offset = "0x2492860", VA = "0x182493860")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
uint[] array2 = KW[array];
int length3 = AesLightEngine.Si.Length;
byte b;
uint num5 = AesLightEngine.Inv_Mcol((uint)b);
uint num6 = array2[0];
int length4 = AesLightEngine.Si.Length;
byte b2;
uint num7 = AesLightEngine.Inv_Mcol((uint)b2);
uint num8 = array2[0];
int length5 = AesLightEngine.Si.Length;
byte b3;
uint num9 = AesLightEngine.Inv_Mcol((uint)b3);
uint num10 = array2[1];
int length6 = AesLightEngine.Si.Length;
byte b4;
uint num11 = AesLightEngine.Inv_Mcol((uint)b4);
uint num12 = array2[1];
int length7 = AesLightEngine.Si.Length;
byte b5;
uint num13 = AesLightEngine.Inv_Mcol((uint)b5);
int length8 = AesLightEngine.Si.Length;
byte b6;
uint num14 = AesLightEngine.Inv_Mcol((uint)b6);
int length9 = AesLightEngine.Si.Length;
byte b7;
uint num15 = AesLightEngine.Inv_Mcol((uint)b7);
int length10 = AesLightEngine.Si.Length;
byte b8;
uint num16 = AesLightEngine.Inv_Mcol((uint)b8);
uint[] array3 = KW[1];
int length11 = AesLightEngine.Si.Length;
byte b9;
uint num17 = AesLightEngine.Inv_Mcol((uint)b9);
uint num18 = array3[0];
int length12 = AesLightEngine.Si.Length;
byte b10;
uint num19 = AesLightEngine.Inv_Mcol((uint)b10);
uint num20 = array3[0];
int length13 = AesLightEngine.Si.Length;
byte b11;
uint num21 = AesLightEngine.Inv_Mcol((uint)b11);
uint num22 = array3[1];
int length14 = AesLightEngine.Si.Length;
byte b12;
uint num23 = AesLightEngine.Inv_Mcol((uint)b12);
uint num24 = array3[1];
int length15 = AesLightEngine.Si.Length;
int length16 = AesLightEngine.Si.Length;
int length17 = AesLightEngine.Si.Length;
int length18 = AesLightEngine.Si.Length;
}
// Token: 0x0600BABE RID: 47806 RVA: 0x0028CD00 File Offset: 0x0028AF00
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BABE")]
[Address(RVA = "0x24979F0", Offset = "0x24969F0", VA = "0x1824979F0")]
static AesLightEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesLightEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesLightEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesLightEngine.rcon = array3;
}
// Token: 0x040075AC RID: 30124
[Token(Token = "0x40075AC")]
private static readonly byte[] S;
// Token: 0x040075AD RID: 30125
[Token(Token = "0x40075AD")]
private static readonly byte[] Si;
// Token: 0x040075AE RID: 30126
[Token(Token = "0x40075AE")]
private static readonly byte[] rcon;
// Token: 0x040075AF RID: 30127
[Token(Token = "0x40075AF")]
private const uint m1 = 2155905152U;
// Token: 0x040075B0 RID: 30128
[Token(Token = "0x40075B0")]
private const uint m2 = 2139062143U;
// Token: 0x040075B1 RID: 30129
[Token(Token = "0x40075B1")]
private const uint m3 = 27U;
// Token: 0x040075B2 RID: 30130
[Token(Token = "0x40075B2")]
private const uint m4 = 3233857728U;
// Token: 0x040075B3 RID: 30131
[Token(Token = "0x40075B3")]
private const uint m5 = 1061109567U;
// Token: 0x040075B4 RID: 30132
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075B4")]
private int ROUNDS;
// Token: 0x040075B5 RID: 30133
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075B5")]
private uint[][] WorkingKey;
// Token: 0x040075B6 RID: 30134
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075B6")]
private uint C0;
// Token: 0x040075B7 RID: 30135
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40075B7")]
private uint C1;
// Token: 0x040075B8 RID: 30136
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075B8")]
private uint C2;
// Token: 0x040075B9 RID: 30137
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40075B9")]
private uint C3;
// Token: 0x040075BA RID: 30138
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075BA")]
private bool forEncryption;
// Token: 0x040075BB RID: 30139
[Token(Token = "0x40075BB")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,20 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D63 RID: 7523
[Token(Token = "0x2001D63")]
public class AesWrapEngine : Rfc3394WrapEngine
{
// Token: 0x0600BABF RID: 47807 RVA: 0x0028CD60 File Offset: 0x0028AF60
[Token(Token = "0x600BABF")]
[Address(RVA = "0x2497AF0", Offset = "0x2496AF0", VA = "0x182497AF0")]
public AesWrapEngine()
{
AesEngine aesEngine;
aesEngine.Reset();
base..ctor(aesEngine);
}
}
}
@@ -0,0 +1,375 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D64 RID: 7524
[Token(Token = "0x2001D64")]
public sealed class BlowfishEngine : IBlockCipher
{
// Token: 0x0600BAC0 RID: 47808 RVA: 0x0028CD7C File Offset: 0x0028AF7C
[Token(Token = "0x600BAC0")]
[Address(RVA = "0x2498A60", Offset = "0x2497A60", VA = "0x182498A60")]
public BlowfishEngine()
{
this.Reset();
uint[] array = new uint[BlowfishEngine.SBOX_SK];
this.S0 = array;
uint[] array2 = new uint[BlowfishEngine.SBOX_SK];
this.S1 = array2;
uint[] array3 = new uint[BlowfishEngine.SBOX_SK];
this.S2 = array3;
uint[] array4 = new uint[BlowfishEngine.SBOX_SK];
this.S3 = array4;
uint[] array5 = new uint[BlowfishEngine.P_SZ];
this.P = array5;
}
// Token: 0x0600BAC1 RID: 47809 RVA: 0x0028CDEC File Offset: 0x0028AFEC
[Token(Token = "0x600BAC1")]
[Address(RVA = "0x2497FB0", Offset = "0x2496FB0", VA = "0x182497FB0", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BAC1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2C:
stloc:ArgumentException(var_5_3D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Blowfish init - "), ldloc:string(var_4))))
}
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: 0x17001D57 RID: 7511
// (get) Token: 0x0600BAC2 RID: 47810 RVA: 0x0028CE38 File Offset: 0x0028B038
[Token(Token = "0x17001D57")]
public string AlgorithmName
{
[Token(Token = "0x600BAC2")]
[Address(RVA = "0x2498B60", Offset = "0x2497B60", VA = "0x182498B60", Slot = "4")]
get
{
return "Blowfish";
}
}
// Token: 0x17001D58 RID: 7512
// (get) Token: 0x0600BAC3 RID: 47811 RVA: 0x0028CE4C File Offset: 0x0028B04C
[Token(Token = "0x17001D58")]
public bool IsPartialBlockOkay
{
[Token(Token = "0x600BAC3")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")]
get
{
}
}
// Token: 0x0600BAC4 RID: 47812 RVA: 0x0028CE5C File Offset: 0x0028B05C
[Token(Token = "0x600BAC4")]
[Address(RVA = "0x2498150", Offset = "0x2497150", VA = "0x182498150", Slot = "8")]
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BAC4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:InvalidOperationException(var_1_2F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Blowfish 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: 0x0600BAC5 RID: 47813 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BAC5")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "9")]
public void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BAC6 RID: 47814 RVA: 0x0028CE98 File Offset: 0x0028B098
[Token(Token = "0x600BAC6")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "6")]
public int GetBlockSize()
{
return 8;
}
// Token: 0x0600BAC7 RID: 47815 RVA: 0x0028CEA8 File Offset: 0x0028B0A8
[Token(Token = "0x600BAC7")]
[Address(RVA = "0x2497EF0", Offset = "0x2496EF0", VA = "0x182497EF0")]
private uint F(uint x)
{
uint[] s = this.S0;
uint[] s2 = this.S1;
uint[] s3 = this.S2;
uint[] s4 = this.S3;
return x;
}
// Token: 0x0600BAC8 RID: 47816 RVA: 0x0028CED8 File Offset: 0x0028B0D8
[Token(Token = "0x600BAC8")]
[Address(RVA = "0x2498250", Offset = "0x2497250", VA = "0x182498250")]
private void ProcessTable(uint xl, uint xr, uint[] table)
{
int length = table.Length;
int num = 0;
if (length > 0)
{
uint[] p = this.P;
uint num2 = this.F(xl);
uint[] p2 = this.P;
uint num3 = this.F(xl);
uint[] p3 = this.P;
uint num5;
uint num4 = num5 + 1U;
uint num6 = p3[(int)num4];
num5 += (uint)2;
uint[] p4 = this.P;
num3 += (uint)1;
uint num7 = p4[(int)num3];
table[0] = num7;
table[0] = xl;
num += 2;
}
}
// Token: 0x0600BAC9 RID: 47817 RVA: 0x0028CF6C File Offset: 0x0028B16C
[Token(Token = "0x600BAC9")]
[Address(RVA = "0x2498490", Offset = "0x2497490", VA = "0x182498490")]
private void SetKey(byte[] key)
{
int num = 0;
uint[] s = this.S0;
int num2 = 0;
int num3 = 0;
int sbox_SK = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS0, num3, s, num2, sbox_SK);
int num4 = 0;
uint[] s2 = this.S1;
int num5 = 0;
int sbox_SK2 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS1, num5, s2, num4, sbox_SK2);
int num6 = 0;
uint[] s3 = this.S2;
int num7 = 0;
int sbox_SK3 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS2, num7, s3, num6, sbox_SK3);
int num8 = 0;
uint[] s4 = this.S3;
int num9 = 0;
int sbox_SK4 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS3, num9, s4, num8, sbox_SK4);
int num10 = 0;
uint[] p = this.P;
int num11 = 0;
int p_SZ = BlowfishEngine.P_SZ;
Array.Copy(BlowfishEngine.KP, num11, p, num10, p_SZ);
int length = key.Length;
int length2 = key.Length;
num++;
uint[] p2 = this.P;
num++;
uint[] p3 = this.P;
int num12 = 0;
int num13 = 0;
this.ProcessTable((uint)num13, (uint)num12, p3);
uint[] p4 = this.P;
int p_SZ2 = BlowfishEngine.P_SZ;
uint num14 = this.P[p_SZ2];
uint[] s5 = this.S0;
uint num15;
this.ProcessTable(num15, num14, s5);
uint[] s6 = this.S0;
int sbox_SK5 = BlowfishEngine.SBOX_SK;
int length3 = s6.Length;
uint num16 = s6[(int)num14];
uint num17 = s6[sbox_SK5];
uint[] s7 = this.S1;
this.ProcessTable(num16, num17, s7);
uint[] s8 = this.S1;
int sbox_SK6 = BlowfishEngine.SBOX_SK;
int length4 = s8.Length;
uint num18 = s8[(int)num17];
uint num19 = s8[sbox_SK6];
uint[] s9 = this.S2;
this.ProcessTable(num18, num19, s9);
uint[] s10 = this.S2;
int sbox_SK7 = BlowfishEngine.SBOX_SK;
int length5 = s10.Length;
uint num20 = s10[(int)num19];
uint num21 = s10[sbox_SK7];
uint[] s11 = this.S3;
this.ProcessTable(num20, num21, s11);
}
// Token: 0x0600BACA RID: 47818 RVA: 0x0028D170 File Offset: 0x0028B370
[Token(Token = "0x600BACA")]
[Address(RVA = "0x2497D10", Offset = "0x2496D10", VA = "0x182497D10")]
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] p = this.P;
uint num3 = this.F(num);
uint[] p2 = this.P;
num = num2;
uint num4 = this.F(num);
uint[] p3 = this.P;
uint num6;
uint num5 = num6 + 1U;
uint num7 = p3[(int)num5];
num6 += (uint)2;
uint[] p4 = this.P;
num4 += (uint)1;
uint num8 = p4[(int)num4];
}
// Token: 0x0600BACB RID: 47819 RVA: 0x0028D1F4 File Offset: 0x0028B3F4
[Token(Token = "0x600BACB")]
[Address(RVA = "0x2497B50", Offset = "0x2496B50", VA = "0x182497B50")]
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] p = this.P;
int rounds = BlowfishEngine.ROUNDS;
int num3 = rounds + 1;
if (rounds > 0)
{
uint num4 = this.F(num);
uint[] p2 = this.P;
num = num2;
uint num5 = this.F(num);
uint[] p3 = this.P;
int num6 = rounds - 1;
}
uint num7 = this.P[0];
}
// Token: 0x0600BACC RID: 47820 RVA: 0x0028D268 File Offset: 0x0028B468
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BACC")]
[Address(RVA = "0x24988E0", Offset = "0x24978E0", VA = "0x1824988E0")]
static BlowfishEngine()
{
uint[] array = new uint[18];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.643A9D76937E94519B73BE072D65E79BAFF3C213).FieldHandle);
BlowfishEngine.KP = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.E117A40BF9A3AE32474AD7B22EB4C60E95D3BE2A).FieldHandle);
BlowfishEngine.KS0 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.6F576E8737EAAC9B6B12BDFC370048CD205E2CDD).FieldHandle);
BlowfishEngine.KS1 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.E2F8F75B7ABE5A6E4ECF5E32B935909BE2CC9F4B).FieldHandle);
BlowfishEngine.KS2 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1C1237F52E2ED7B4D229AE3978DA144B9E653F5E).FieldHandle);
BlowfishEngine.KS3 = array5;
int num = BlowfishEngine.ROUNDS;
num += 2;
BlowfishEngine.P_SZ = num;
}
// Token: 0x040075BC RID: 30140
[Token(Token = "0x40075BC")]
private static readonly uint[] KP;
// Token: 0x040075BD RID: 30141
[Token(Token = "0x40075BD")]
private static readonly uint[] KS0;
// Token: 0x040075BE RID: 30142
[Token(Token = "0x40075BE")]
private static readonly uint[] KS1;
// Token: 0x040075BF RID: 30143
[Token(Token = "0x40075BF")]
private static readonly uint[] KS2;
// Token: 0x040075C0 RID: 30144
[Token(Token = "0x40075C0")]
private static readonly uint[] KS3;
// Token: 0x040075C1 RID: 30145
[Token(Token = "0x40075C1")]
private static readonly int ROUNDS;
// Token: 0x040075C2 RID: 30146
[Token(Token = "0x40075C2")]
private const int BLOCK_SIZE = 8;
// Token: 0x040075C3 RID: 30147
[Token(Token = "0x40075C3")]
private static readonly int SBOX_SK;
// Token: 0x040075C4 RID: 30148
[Token(Token = "0x40075C4")]
private static readonly int P_SZ;
// Token: 0x040075C5 RID: 30149
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075C5")]
private readonly uint[] S0;
// Token: 0x040075C6 RID: 30150
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075C6")]
private readonly uint[] S1;
// Token: 0x040075C7 RID: 30151
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075C7")]
private readonly uint[] S2;
// Token: 0x040075C8 RID: 30152
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075C8")]
private readonly uint[] S3;
// Token: 0x040075C9 RID: 30153
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075C9")]
private readonly uint[] P;
// Token: 0x040075CA RID: 30154
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40075CA")]
private bool encrypting;
// Token: 0x040075CB RID: 30155
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40075CB")]
private byte[] workingKey;
}
}
@@ -0,0 +1,560 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D65 RID: 7525
[Token(Token = "0x2001D65")]
public class CamelliaEngine : IBlockCipher
{
// Token: 0x0600BACD RID: 47821 RVA: 0x0028D31C File Offset: 0x0028B51C
[Token(Token = "0x600BACD")]
[Address(RVA = "0x249A960", Offset = "0x2499960", VA = "0x18249A960")]
private static uint rightRotate(uint x, int s)
{
return x;
}
// Token: 0x0600BACE RID: 47822 RVA: 0x0028D32C File Offset: 0x0028B52C
[Token(Token = "0x600BACE")]
[Address(RVA = "0x2499E10", Offset = "0x2498E10", VA = "0x182499E10")]
private static uint leftRotate(uint x, int s)
{
return x;
}
// Token: 0x0600BACF RID: 47823 RVA: 0x0028D33C File Offset: 0x0028B53C
[Token(Token = "0x600BACF")]
[Address(RVA = "0x249A980", Offset = "0x2499980", VA = "0x18249A980")]
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num4];
ko[0] = num5;
int length4 = ki.Length;
ko[0] = num5;
uint num6;
ki[0] = num6;
uint num7;
ki[0] = num7;
ki[0] = num7;
}
// Token: 0x0600BAD0 RID: 47824 RVA: 0x0028D3DC File Offset: 0x0028B5DC
[Token(Token = "0x600BAD0")]
[Address(RVA = "0x2499770", Offset = "0x2498770", VA = "0x182499770")]
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num];
uint num6 = ki[(int)num4];
ko[0] = num6;
int length4 = ki.Length;
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
ki[0] = num8;
}
// Token: 0x0600BAD1 RID: 47825 RVA: 0x0028D47C File Offset: 0x0028B67C
[Token(Token = "0x600BAD1")]
[Address(RVA = "0x249ACC0", Offset = "0x2499CC0", VA = "0x18249ACC0")]
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9 = ko[(int)num3];
ki[0] = num9;
}
// Token: 0x0600BAD2 RID: 47826 RVA: 0x0028D528 File Offset: 0x0028B728
[Token(Token = "0x600BAD2")]
[Address(RVA = "0x2499AB0", Offset = "0x2498AB0", VA = "0x182499AB0")]
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9;
ki[0] = num9;
}
// Token: 0x0600BAD3 RID: 47827 RVA: 0x0028D5C4 File Offset: 0x0028B7C4
[Token(Token = "0x600BAD3")]
[Address(RVA = "0x2498FC0", Offset = "0x2497FC0", VA = "0x182498FC0")]
private static uint bytes2uint(byte[] src, int offset)
{
int num = 0;
byte b;
num += (int)b;
throw new NullReferenceException();
}
// Token: 0x0600BAD4 RID: 47828 RVA: 0x0028D5DC File Offset: 0x0028B7DC
[Token(Token = "0x600BAD4")]
[Address(RVA = "0x249CE30", Offset = "0x249BE30", VA = "0x18249CE30")]
private static void uint2bytes(uint word, byte[] dst, int offset)
{
int num = 0;
num++;
}
// Token: 0x0600BAD5 RID: 47829 RVA: 0x0028D5F8 File Offset: 0x0028B7F8
[Token(Token = "0x600BAD5")]
[Address(RVA = "0x2499020", Offset = "0x2498020", VA = "0x182499020")]
private static void camelliaF2(uint[] s, uint[] skey, int keyoff)
{
uint num = skey[keyoff];
uint[] sbox4_ = CamelliaEngine.SBOX4_4404;
uint[] sbox3_ = CamelliaEngine.SBOX3_3033;
uint num2 = sbox4_[(int)num];
uint[] sbox2_ = CamelliaEngine.SBOX2_0222;
uint[] sbox1_ = CamelliaEngine.SBOX1_1110;
int length = s.Length;
int num3 = keyoff + 1;
uint num4 = skey[num3];
num4 += num4;
s[1] = num4;
uint num5 = skey[(int)num4];
uint[] sbox4_2 = CamelliaEngine.SBOX4_4404;
uint[] sbox3_2 = CamelliaEngine.SBOX3_3033;
uint[] sbox2_2 = CamelliaEngine.SBOX2_0222;
int length2 = CamelliaEngine.SBOX1_1110.Length;
uint num6 = skey[(int)num5];
uint num7 = s[0];
s[0] = num7;
num6 += num7;
s[0] = num6;
}
// Token: 0x0600BAD6 RID: 47830 RVA: 0x0028D6C4 File Offset: 0x0028B8C4
[Token(Token = "0x600BAD6")]
[Address(RVA = "0x2499590", Offset = "0x2498590", VA = "0x182499590")]
private static void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
{
s[0] = typeof(CamelliaEngine).TypeHandle;
int length = s.Length;
int num = keyoff + 1;
uint num2 = fkey[num];
s[1] = num2;
}
// Token: 0x0600BAD7 RID: 47831 RVA: 0x0028D700 File Offset: 0x0028B900
[Token(Token = "0x600BAD7")]
[Address(RVA = "0x249AFF0", Offset = "0x2499FF0", VA = "0x18249AFF0")]
private void setKey(bool forEncryption, byte[] key)
{
/*
An exception occurred when decompiling this method (0600BAD7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::setKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A98:
stloc:uint32(var_223_A9F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_169_824), ldc.i4:int32(0), ldloc:uint32(var_223_A9F))
stloc:uint32[](var_224_AB1, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_225_ABA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_224_AB1), ldc.i4:int32(0), ldloc:uint32(var_225_ABA))
stloc:uint32[](var_226_ACC, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_227_AD5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_ACC), ldc.i4:int32(1), ldloc:uint32(var_227_AD5))
stloc:uint32[](var_228_AE7, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_229_AF0, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AE7), ldc.i4:int32(1), ldloc:uint32(var_229_AF0))
stloc:uint32[](var_230_B02, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:int32(var_231_B05, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_231_B05), ldloc:uint32[](var_230_B02), ldloc:uint64[exp:int32](var_232))
stloc:uint32[](var_233_B1B, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:int32(var_234_B1E, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_234_B1E), ldloc:uint32[](var_233_B1B), ldloc:uint64[exp:int32](var_235))
stloc:int32(var_236_B2F, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B2F), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_259))
stloc:uint32[](var_237_B45, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:uint32(var_238_B4F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_237_B45), ldc.i4:int32(9), ldloc:uint32(var_238_B4F))
stloc:uint32[](var_239_B62, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:uint32(var_240_B6C, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B62), ldc.i4:int32(9), ldloc:uint32(var_240_B6C))
stloc:int32(var_241_B7A, ldc.i4:int32(0))
stloc:uint32[](var_242_B82, ldfld:uint32[](CamelliaEngine::ke, ldloc:CamelliaEngine(this)))
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_241_B7A), ldloc:uint32[](var_242_B82), ldloc:uint64[exp:int32](var_243))
}
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: 0x0600BAD8 RID: 47832 RVA: 0x0028E2A0 File Offset: 0x0028C4A0
[Token(Token = "0x600BAD8")]
[Address(RVA = "0x2499E30", Offset = "0x2498E30", VA = "0x182499E30")]
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.state;
uint[] array5 = this.subkey;
int num2 = 0;
CamelliaEngine.camelliaF2(array4, array5, num2);
uint[] array6 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array6, 4);
uint[] array7 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array7, 8);
uint[] array8 = this.ke;
uint[] array9 = this.state;
int num3 = 0;
CamelliaEngine.camelliaFLs(array9, array8, num3);
uint[] array10 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array10, 12);
uint[] array11 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array11, 16);
uint[] array12 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array12, 20);
uint[] array13 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array13, 4);
uint[] array14 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array14, 24);
uint[] array15 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array15, 28);
uint[] array16 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array16, 32);
uint[] array17 = this.state;
uint[] array18 = this.kw;
uint[] array19 = this.state;
uint[] array20 = this.kw;
uint[] array21 = this.state;
uint[] array22 = this.kw;
uint[] array23 = this.state;
uint[] array24 = this.kw;
uint[] array25 = this.state;
num++;
uint[] array26 = this.state;
num++;
uint[] array27 = this.state;
num++;
uint[] array28 = this.state;
num++;
throw new NullReferenceException();
}
// Token: 0x0600BAD9 RID: 47833 RVA: 0x0028E458 File Offset: 0x0028C658
[Token(Token = "0x600BAD9")]
[Address(RVA = "0x249A3A0", Offset = "0x24993A0", VA = "0x18249A3A0")]
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.state;
uint[] array5 = this.subkey;
int num2 = 0;
CamelliaEngine.camelliaF2(array4, array5, num2);
uint[] array6 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array6, 4);
uint[] array7 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array7, 8);
uint[] array8 = this.ke;
uint[] array9 = this.state;
int num3 = 0;
CamelliaEngine.camelliaFLs(array9, array8, num3);
uint[] array10 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array10, 12);
uint[] array11 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array11, 16);
uint[] array12 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array12, 20);
uint[] array13 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array13, 4);
uint[] array14 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array14, 24);
uint[] array15 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array15, 28);
uint[] array16 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array16, 32);
uint[] array17 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array17, 8);
uint[] array18 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array18, 36);
uint[] array19 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array19, 40);
uint[] array20 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array20, 44);
uint[] array21 = this.state;
uint[] array22 = this.kw;
uint[] array23 = this.state;
uint[] array24 = this.kw;
uint[] array25 = this.state;
uint[] array26 = this.kw;
uint[] array27 = this.state;
uint[] array28 = this.kw;
uint[] array29 = this.state;
num++;
uint[] array30 = this.state;
num++;
uint[] array31 = this.state;
num++;
uint[] array32 = this.state;
num++;
throw new NullReferenceException();
}
// Token: 0x0600BADA RID: 47834 RVA: 0x0028E66C File Offset: 0x0028C86C
[Token(Token = "0x600BADA")]
[Address(RVA = "0x2498F30", Offset = "0x2497F30", VA = "0x182498F30")]
public CamelliaEngine()
{
uint[] array = new uint[96];
this.subkey = array;
uint[] array2 = new uint[8];
this.kw = array2;
uint[] array3 = new uint[12];
this.ke = array3;
uint[] array4 = new uint[4];
this.state = array4;
this.Reset();
}
// Token: 0x0600BADB RID: 47835 RVA: 0x0028E6BC File Offset: 0x0028C8BC
[Token(Token = "0x600BADB")]
[Address(RVA = "0x2498B90", Offset = "0x2497B90", VA = "0x182498B90", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BADB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
}
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: 0x17001D59 RID: 7513
// (get) Token: 0x0600BADC RID: 47836 RVA: 0x0028E6FC File Offset: 0x0028C8FC
[Token(Token = "0x17001D59")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BADC")]
[Address(RVA = "0x2499DE0", Offset = "0x2498DE0", VA = "0x182499DE0", Slot = "11")]
get
{
return "Camellia";
}
}
// Token: 0x17001D5A RID: 7514
// (get) Token: 0x0600BADD RID: 47837 RVA: 0x0028E710 File Offset: 0x0028C910
[Token(Token = "0x17001D5A")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BADD")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BADE RID: 47838 RVA: 0x0028E720 File Offset: 0x0028C920
[Token(Token = "0x600BADE")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BADF RID: 47839 RVA: 0x0028E730 File Offset: 0x0028C930
[Token(Token = "0x600BADF")]
[Address(RVA = "0x2498CF0", Offset = "0x2497CF0", VA = "0x182498CF0", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BADF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BAE0 RID: 47840 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BAE0")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BAE1 RID: 47841 RVA: 0x0028E76C File Offset: 0x0028C96C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BAE1")]
[Address(RVA = "0x2498DF0", Offset = "0x2497DF0", VA = "0x182498DF0")]
static CamelliaEngine()
{
uint[] array = new uint[12];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
CamelliaEngine.SIGMA = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.B1108EE6609DB783B2EC606B3BFDD544A7D4C2B3).FieldHandle);
CamelliaEngine.SBOX1_1110 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.14F6FAB1B4065EBADBBA4A3661ADE689FF444EDD).FieldHandle);
CamelliaEngine.SBOX4_4404 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B718C95C87C6B65DFA29D58A10442CEC9EBBDF1F).FieldHandle);
CamelliaEngine.SBOX2_0222 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.124B1C35B19149213F8F7D40AA8E0ABA15DD70EC).FieldHandle);
CamelliaEngine.SBOX3_3033 = array5;
}
// Token: 0x040075CC RID: 30156
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075CC")]
private bool initialised;
// Token: 0x040075CD RID: 30157
[FieldOffset(Offset = "0x11")]
[Token(Token = "0x40075CD")]
private bool _keyIs128;
// Token: 0x040075CE RID: 30158
[Token(Token = "0x40075CE")]
private const int BLOCK_SIZE = 16;
// Token: 0x040075CF RID: 30159
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075CF")]
private uint[] subkey;
// Token: 0x040075D0 RID: 30160
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075D0")]
private uint[] kw;
// Token: 0x040075D1 RID: 30161
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075D1")]
private uint[] ke;
// Token: 0x040075D2 RID: 30162
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075D2")]
private uint[] state;
// Token: 0x040075D3 RID: 30163
[Token(Token = "0x40075D3")]
private static readonly uint[] SIGMA;
// Token: 0x040075D4 RID: 30164
[Token(Token = "0x40075D4")]
private static readonly uint[] SBOX1_1110;
// Token: 0x040075D5 RID: 30165
[Token(Token = "0x40075D5")]
private static readonly uint[] SBOX4_4404;
// Token: 0x040075D6 RID: 30166
[Token(Token = "0x40075D6")]
private static readonly uint[] SBOX2_0222;
// Token: 0x040075D7 RID: 30167
[Token(Token = "0x40075D7")]
private static readonly uint[] SBOX3_3033;
}
}
@@ -0,0 +1,643 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D66 RID: 7526
[Token(Token = "0x2001D66")]
public class CamelliaLightEngine : IBlockCipher
{
// Token: 0x0600BAE2 RID: 47842 RVA: 0x0028E808 File Offset: 0x0028CA08
[Token(Token = "0x600BAE2")]
[Address(RVA = "0x249A960", Offset = "0x2499960", VA = "0x18249A960")]
private static uint rightRotate(uint x, int s)
{
return x;
}
// Token: 0x0600BAE3 RID: 47843 RVA: 0x0028E818 File Offset: 0x0028CA18
[Token(Token = "0x600BAE3")]
[Address(RVA = "0x2499E10", Offset = "0x2498E10", VA = "0x182499E10")]
private static uint leftRotate(uint x, int s)
{
return x;
}
// Token: 0x0600BAE4 RID: 47844 RVA: 0x0028E828 File Offset: 0x0028CA28
[Token(Token = "0x600BAE4")]
[Address(RVA = "0x249A980", Offset = "0x2499980", VA = "0x18249A980")]
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num4];
ko[0] = num5;
int length4 = ki.Length;
ko[0] = num5;
uint num6;
ki[0] = num6;
uint num7;
ki[0] = num7;
ki[0] = num7;
}
// Token: 0x0600BAE5 RID: 47845 RVA: 0x0028E8C8 File Offset: 0x0028CAC8
[Token(Token = "0x600BAE5")]
[Address(RVA = "0x2499770", Offset = "0x2498770", VA = "0x182499770")]
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num];
uint num6 = ki[(int)num4];
ko[0] = num6;
int length4 = ki.Length;
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
ki[0] = num8;
}
// Token: 0x0600BAE6 RID: 47846 RVA: 0x0028E968 File Offset: 0x0028CB68
[Token(Token = "0x600BAE6")]
[Address(RVA = "0x249ACC0", Offset = "0x2499CC0", VA = "0x18249ACC0")]
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9 = ko[(int)num3];
ki[0] = num9;
}
// Token: 0x0600BAE7 RID: 47847 RVA: 0x0028EA14 File Offset: 0x0028CC14
[Token(Token = "0x600BAE7")]
[Address(RVA = "0x2499AB0", Offset = "0x2498AB0", VA = "0x182499AB0")]
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9;
ki[0] = num9;
}
// Token: 0x0600BAE8 RID: 47848 RVA: 0x0028EAB0 File Offset: 0x0028CCB0
[Token(Token = "0x600BAE8")]
[Address(RVA = "0x2498FC0", Offset = "0x2497FC0", VA = "0x182498FC0")]
private static uint bytes2uint(byte[] src, int offset)
{
int num = 0;
byte b;
num += (int)b;
throw new NullReferenceException();
}
// Token: 0x0600BAE9 RID: 47849 RVA: 0x0028EAC8 File Offset: 0x0028CCC8
[Token(Token = "0x600BAE9")]
[Address(RVA = "0x249CE30", Offset = "0x249BE30", VA = "0x18249CE30")]
private static void uint2bytes(uint word, byte[] dst, int offset)
{
int num = 0;
num++;
}
// Token: 0x0600BAEA RID: 47850 RVA: 0x0028EAE4 File Offset: 0x0028CCE4
[Token(Token = "0x600BAEA")]
[Address(RVA = "0x27D99F0", Offset = "0x27D89F0", VA = "0x1827D99F0")]
private byte lRot8(byte v, int rot)
{
uint num;
num -= (uint)rot;
return v;
}
// Token: 0x0600BAEB RID: 47851 RVA: 0x0028EAF8 File Offset: 0x0028CCF8
[Token(Token = "0x600BAEB")]
[Address(RVA = "0x27DA5C0", Offset = "0x27D95C0", VA = "0x1827DA5C0")]
private uint sbox2(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600BAEC RID: 47852 RVA: 0x0028EB10 File Offset: 0x0028CD10
[Token(Token = "0x600BAEC")]
[Address(RVA = "0x27DA650", Offset = "0x27D9650", VA = "0x1827DA650")]
private uint sbox3(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600BAED RID: 47853 RVA: 0x0028EB28 File Offset: 0x0028CD28
[Token(Token = "0x600BAED")]
[Address(RVA = "0x27DA6E0", Offset = "0x27D96E0", VA = "0x1827DA6E0")]
private uint sbox4(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600BAEE RID: 47854 RVA: 0x0028EB40 File Offset: 0x0028CD40
[Token(Token = "0x600BAEE")]
[Address(RVA = "0x27D9330", Offset = "0x27D8330", VA = "0x1827D9330")]
private void camelliaF2(uint[] s, uint[] skey, int keyoff)
{
uint num = skey[keyoff];
uint num2 = this.sbox4((int)num);
uint num3 = this.sbox3((int)num);
uint num4 = this.sbox2((int)num);
int length = CamelliaLightEngine.SBOX1.Length;
int num5 = keyoff + 1;
uint num6 = skey[num5];
num3 = this.sbox4((int)num6);
uint num7 = this.sbox3((int)num6);
uint num8 = this.sbox2((int)num6);
num8 += num8;
num6 = num8;
num6 += num8;
byte b;
b += b;
num6 += num6;
s[1] = num6;
b += b;
uint num9 = skey[(int)b];
num6 = num9;
num7 = this.sbox4((int)num6);
num6 = num9;
num3 = this.sbox3((int)num6);
num6 = num9;
uint num10 = this.sbox2((int)num6);
int length2 = CamelliaLightEngine.SBOX1.Length;
num3 = this.sbox4((int)num10);
uint num11 = this.sbox3((int)num10);
uint num12 = this.sbox2((int)num10);
num12 += num12;
num10 = num12;
num10 += num12;
byte b2;
b2 += b2;
num10 += num10;
s[0] = num10;
b2 += b2;
}
// Token: 0x0600BAEF RID: 47855 RVA: 0x0028EC6C File Offset: 0x0028CE6C
[Token(Token = "0x600BAEF")]
[Address(RVA = "0x27D97E0", Offset = "0x27D87E0", VA = "0x1827D97E0")]
private void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
{
s[0] = typeof(CamelliaLightEngine).TypeHandle;
int length = s.Length;
int num = keyoff + 1;
uint num2 = fkey[num];
s[1] = num2;
}
// Token: 0x0600BAF0 RID: 47856 RVA: 0x0028ECA8 File Offset: 0x0028CEA8
[Token(Token = "0x600BAF0")]
[Address(RVA = "0x27DA770", Offset = "0x27D9770", VA = "0x1827DA770")]
private void setKey(bool forEncryption, byte[] key)
{
/*
An exception occurred when decompiling this method (0600BAF0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::setKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9D:
stloc:uint32(var_225_AA4, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_171_829), ldc.i4:int32(0), ldloc:uint32(var_225_AA4))
stloc:uint32[](var_226_AB6, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_227_ABF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_AB6), ldc.i4:int32(0), ldloc:uint32(var_227_ABF))
stloc:uint32[](var_228_AD1, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_229_ADA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AD1), ldc.i4:int32(1), ldloc:uint32(var_229_ADA))
stloc:uint32[](var_230_AEC, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_231_AF5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_230_AEC), ldc.i4:int32(1), ldloc:uint32(var_231_AF5))
stloc:uint32[](var_232_B07, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:int32(var_233_B0A, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_233_B0A), ldloc:uint32[](var_232_B07), ldloc:uint64[exp:int32](var_234))
stloc:uint32[](var_235_B20, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:int32(var_236_B23, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B23), ldloc:uint32[](var_235_B20), ldloc:uint64[exp:int32](var_237))
stloc:int32(var_238_B34, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_238_B34), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_25A))
stloc:uint32[](var_239_B4A, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_240_B54, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B4A), ldc.i4:int32(9), ldloc:uint32(var_240_B54))
stloc:uint32[](var_241_B67, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_242_B71, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_241_B67), ldc.i4:int32(9), ldloc:uint32(var_242_B71))
stloc:int32(var_243_B7F, ldc.i4:int32(0))
stloc:uint32[](var_244_B87, ldfld:uint32[](CamelliaLightEngine::ke, ldloc:CamelliaLightEngine(this)))
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_243_B7F), ldloc:uint32[](var_244_B87), ldloc:uint64[exp:int32](var_245))
}
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: 0x0600BAF1 RID: 47857 RVA: 0x0028F84C File Offset: 0x0028DA4C
[Token(Token = "0x600BAF1")]
[Address(RVA = "0x27D9A20", Offset = "0x27D8A20", VA = "0x1827D9A20")]
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.subkey;
int num2 = 0;
uint[] array5 = this.state;
this.camelliaF2(array5, array4, num2);
uint[] array6 = this.subkey;
uint[] array7 = this.state;
uint num3;
this.camelliaF2(array7, array6, (int)num3);
uint[] array8 = this.subkey;
uint[] array9 = this.state;
uint num4;
this.camelliaF2(array9, array8, (int)num4);
uint[] array10 = this.ke;
int num5 = 0;
uint[] array11 = this.state;
this.camelliaFLs(array11, array10, num5);
uint[] array12 = this.subkey;
uint[] array13 = this.state;
uint num6;
this.camelliaF2(array13, array12, (int)num6);
uint[] array14 = this.subkey;
uint[] array15 = this.state;
uint num7;
this.camelliaF2(array15, array14, (int)num7);
uint[] array16 = this.subkey;
uint[] array17 = this.state;
uint num8;
this.camelliaF2(array17, array16, (int)num8);
uint[] array18 = this.ke;
uint[] array19 = this.state;
uint num9;
this.camelliaFLs(array19, array18, (int)num9);
uint[] array20 = this.subkey;
uint[] array21 = this.state;
uint num10;
this.camelliaF2(array21, array20, (int)num10);
uint[] array22 = this.subkey;
uint[] array23 = this.state;
uint num11;
this.camelliaF2(array23, array22, (int)num11);
uint[] array24 = this.subkey;
uint[] array25 = this.state;
uint num12;
this.camelliaF2(array25, array24, (int)num12);
uint[] array26 = this.state;
uint[] array27 = this.kw;
uint[] array28 = this.state;
uint[] array29 = this.kw;
uint[] array30 = this.state;
uint[] array31 = this.kw;
uint[] array32 = this.state;
uint[] array33 = this.kw;
uint[] array34 = this.state;
num++;
uint num13 = this.state[1];
output[0] = (byte)num13;
num++;
uint num14 = this.state[0];
output[0] = (byte)num14;
num++;
uint num15 = this.state[0];
output[0] = (byte)num15;
num++;
throw new NullReferenceException();
}
// Token: 0x0600BAF2 RID: 47858 RVA: 0x0028FA64 File Offset: 0x0028DC64
[Token(Token = "0x600BAF2")]
[Address(RVA = "0x27D9FC0", Offset = "0x27D8FC0", VA = "0x1827D9FC0")]
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.subkey;
int num2 = 0;
uint[] array5 = this.state;
this.camelliaF2(array5, array4, num2);
uint[] array6 = this.subkey;
uint[] array7 = this.state;
uint num3;
this.camelliaF2(array7, array6, (int)num3);
uint[] array8 = this.subkey;
uint[] array9 = this.state;
uint num4;
this.camelliaF2(array9, array8, (int)num4);
uint[] array10 = this.ke;
int num5 = 0;
uint[] array11 = this.state;
this.camelliaFLs(array11, array10, num5);
uint[] array12 = this.subkey;
uint[] array13 = this.state;
uint num6;
this.camelliaF2(array13, array12, (int)num6);
uint[] array14 = this.subkey;
uint[] array15 = this.state;
uint num7;
this.camelliaF2(array15, array14, (int)num7);
uint[] array16 = this.subkey;
uint[] array17 = this.state;
uint num8;
this.camelliaF2(array17, array16, (int)num8);
uint[] array18 = this.ke;
uint[] array19 = this.state;
uint num9;
this.camelliaFLs(array19, array18, (int)num9);
uint[] array20 = this.subkey;
uint[] array21 = this.state;
uint num10;
this.camelliaF2(array21, array20, (int)num10);
uint[] array22 = this.subkey;
uint[] array23 = this.state;
uint num11;
this.camelliaF2(array23, array22, (int)num11);
uint[] array24 = this.subkey;
uint[] array25 = this.state;
uint num12;
this.camelliaF2(array25, array24, (int)num12);
uint[] array26 = this.ke;
uint[] array27 = this.state;
uint num13;
this.camelliaFLs(array27, array26, (int)num13);
uint[] array28 = this.subkey;
uint[] array29 = this.state;
uint num14;
this.camelliaF2(array29, array28, (int)num14);
uint[] array30 = this.subkey;
uint[] array31 = this.state;
uint num15;
this.camelliaF2(array31, array30, (int)num15);
uint[] array32 = this.subkey;
uint[] array33 = this.state;
uint num16;
this.camelliaF2(array33, array32, (int)num16);
uint[] array34 = this.state;
uint[] array35 = this.kw;
uint[] array36 = this.state;
uint[] array37 = this.kw;
uint[] array38 = this.state;
uint[] array39 = this.kw;
uint[] array40 = this.state;
uint[] array41 = this.kw;
uint[] array42 = this.state;
num++;
uint num17 = this.state[1];
output[0] = (byte)num17;
num++;
uint num18 = this.state[0];
output[0] = (byte)num18;
num++;
uint num19 = this.state[0];
output[0] = (byte)num19;
num++;
throw new NullReferenceException();
}
// Token: 0x0600BAF3 RID: 47859 RVA: 0x0028FCEC File Offset: 0x0028DEEC
[Token(Token = "0x600BAF3")]
[Address(RVA = "0x27D92A0", Offset = "0x27D82A0", VA = "0x1827D92A0")]
public CamelliaLightEngine()
{
uint[] array = new uint[96];
this.subkey = array;
uint[] array2 = new uint[8];
this.kw = array2;
uint[] array3 = new uint[12];
this.ke = array3;
uint[] array4 = new uint[4];
this.state = array4;
this.Reset();
this.initialised = false;
}
// Token: 0x17001D5B RID: 7515
// (get) Token: 0x0600BAF4 RID: 47860 RVA: 0x0028FD40 File Offset: 0x0028DF40
[Token(Token = "0x17001D5B")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BAF4")]
[Address(RVA = "0x27D99C0", Offset = "0x27D89C0", VA = "0x1827D99C0", Slot = "10")]
get
{
return "Camellia";
}
}
// Token: 0x17001D5C RID: 7516
// (get) Token: 0x0600BAF5 RID: 47861 RVA: 0x0028FD54 File Offset: 0x0028DF54
[Token(Token = "0x17001D5C")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BAF5")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BAF6 RID: 47862 RVA: 0x0028FD64 File Offset: 0x0028DF64
[Token(Token = "0x600BAF6")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "12")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BAF7 RID: 47863 RVA: 0x0028FD74 File Offset: 0x0028DF74
[Token(Token = "0x600BAF7")]
[Address(RVA = "0x27D8FA0", Offset = "0x27D7FA0", VA = "0x1827D8FA0", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BAF7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
}
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: 0x0600BAF8 RID: 47864 RVA: 0x0028FDB4 File Offset: 0x0028DFB4
[Token(Token = "0x600BAF8")]
[Address(RVA = "0x27D9100", Offset = "0x27D8100", VA = "0x1827D9100", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BAF8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BAF9 RID: 47865 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BAF9")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BAFA RID: 47866 RVA: 0x0028FDF0 File Offset: 0x0028DFF0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BAFA")]
[Address(RVA = "0x27D9200", Offset = "0x27D8200", VA = "0x1827D9200")]
static CamelliaLightEngine()
{
uint[] array = new uint[12];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
CamelliaLightEngine.SIGMA = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.81FDCC6319440C75C8E422A1FE4E3F1A80B89F5F).FieldHandle);
CamelliaLightEngine.SBOX1 = array2;
}
// Token: 0x040075D8 RID: 30168
[Token(Token = "0x40075D8")]
private const int BLOCK_SIZE = 16;
// Token: 0x040075D9 RID: 30169
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075D9")]
private bool initialised;
// Token: 0x040075DA RID: 30170
[FieldOffset(Offset = "0x11")]
[Token(Token = "0x40075DA")]
private bool _keyis128;
// Token: 0x040075DB RID: 30171
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075DB")]
private uint[] subkey;
// Token: 0x040075DC RID: 30172
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075DC")]
private uint[] kw;
// Token: 0x040075DD RID: 30173
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075DD")]
private uint[] ke;
// Token: 0x040075DE RID: 30174
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075DE")]
private uint[] state;
// Token: 0x040075DF RID: 30175
[Token(Token = "0x40075DF")]
private static readonly uint[] SIGMA;
// Token: 0x040075E0 RID: 30176
[Token(Token = "0x40075E0")]
private static readonly byte[] SBOX1;
}
}
@@ -0,0 +1,19 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D67 RID: 7527
[Token(Token = "0x2001D67")]
public class CamelliaWrapEngine : Rfc3394WrapEngine
{
// Token: 0x0600BAFB RID: 47867 RVA: 0x0028FE34 File Offset: 0x0028E034
[Token(Token = "0x600BAFB")]
[Address(RVA = "0x27DC5C0", Offset = "0x27DB5C0", VA = "0x1827DC5C0")]
public CamelliaWrapEngine()
{
CamelliaEngine camelliaEngine = new CamelliaEngine();
base..ctor(camelliaEngine);
}
}
}
@@ -0,0 +1,617 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D68 RID: 7528
[Token(Token = "0x2001D68")]
public class Cast5Engine : IBlockCipher
{
// Token: 0x0600BAFC RID: 47868 RVA: 0x0028FE50 File Offset: 0x0028E050
[Token(Token = "0x600BAFC")]
[Address(RVA = "0x27E4290", Offset = "0x27E3290", VA = "0x1827E4290")]
public Cast5Engine()
{
int[] array = new int[17];
this._Kr = array;
uint[] array2 = new uint[17];
this._Km = array2;
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
this._rounds = max_ROUNDS;
this.Reset();
}
// Token: 0x0600BAFD RID: 47869 RVA: 0x0028FE90 File Offset: 0x0028E090
[Token(Token = "0x600BAFD")]
[Address(RVA = "0x27DD260", Offset = "0x27DC260", VA = "0x1827DD260", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BAFD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_30:
stloc:ArgumentException(var_8_37, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_7)))
}
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: 0x17001D5D RID: 7517
// (get) Token: 0x0600BAFE RID: 47870 RVA: 0x0028FED8 File Offset: 0x0028E0D8
[Token(Token = "0x17001D5D")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BAFE")]
[Address(RVA = "0x27E4330", Offset = "0x27E3330", VA = "0x1827E4330", Slot = "11")]
get
{
return "CAST5";
}
}
// Token: 0x17001D5E RID: 7518
// (get) Token: 0x0600BAFF RID: 47871 RVA: 0x0028FEEC File Offset: 0x0028E0EC
[Token(Token = "0x17001D5E")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BAFF")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BB00 RID: 47872 RVA: 0x0028FEFC File Offset: 0x0028E0FC
[Token(Token = "0x600BB00")]
[Address(RVA = "0x27DD4F0", Offset = "0x27DC4F0", VA = "0x1827DD4F0", Slot = "13")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB00)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BB01 RID: 47873 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB01")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB02 RID: 47874 RVA: 0x0028FF38 File Offset: 0x0028E138
[Token(Token = "0x600BB02")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "15")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BB03 RID: 47875 RVA: 0x0028FF48 File Offset: 0x0028E148
[Token(Token = "0x600BB03")]
[Address(RVA = "0x27DD650", Offset = "0x27DC650", VA = "0x1827DD650", Slot = "16")]
internal virtual void SetKey(byte[] key)
{
/*
An exception occurred when decompiling this method (0600BB03)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::SetKey(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:int32(var_6_40, ldc.i4:int32(0))
stloc:uint32(var_7_4A, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_6_40)))
stloc:uint32(var_8_53, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_9_5C, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
stloc:uint32(var_10_66, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
stloc:uint32[](var_11_6D, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_12_75, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:int32(var_13_7E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_14_85, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_15_8E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32[](var_16_95, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_17_9E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_18_A5, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_19_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:int32(var_20_B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_21_C2, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_16_95), ldloc:int32(var_20_B7)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
stloc:int32(var_22_EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_23_F5, ldsfld:uint32[](Cast5Engine::S5))
stloc:uint32[](var_24_FC, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_25_105, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_26_10C, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_27_115, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_28_120, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_26_10C), ldloc:int32(var_27_115)))
stloc:uint32[](var_29_127, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_30_130, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:int32(var_31_139, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_29_127), ldloc:int32(var_31_139)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
stloc:int32(var_32_151, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_33_158, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_34_161, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_35_168, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_36_171, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_37_178, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_38_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_39_188, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_40_191, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:int32(var_41_19A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_33_158), ldloc:int32(var_41_19A)), ldloc:int32[](var_1_1E), ldc.i4:int32(8))
stloc:int32(var_42_1B2, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_43_1B9, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_44_1C2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_45_1C9, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_46_1D2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_47_1D9, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_48_1E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_49_1E9, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_50_1F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:int32(var_51_1FB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_45_1C9), ldloc:int32(var_51_1FB)), ldloc:int32[](var_1_1E), ldc.i4:int32(12))
stloc:int32(var_52_214, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_53_21B, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_54_224, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_55_22B, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_56_234, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_57_23B, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_58_244, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_59_24B, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_60_254, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_61_25D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32(var_62_268, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_53_21B), ldloc:int32(var_61_25D)))
stloc:int32(var_63_270, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_64_277, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_65_280, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_66_287, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_67_290, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_68_297, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_69_2A0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_70_2A7, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_71_2B0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32(var_72_2BB, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_70_2A7), ldloc:int32(var_71_2B0)))
stloc:int32(var_73_2C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_74_2CC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_75_2D3, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_76_2DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:uint32[](var_77_2E3, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_78_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:uint32[](var_79_2F3, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_80_2FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_81_303, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_82_30C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32(var_83_317, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_81_303), ldloc:int32(var_82_30C)))
stloc:int32(var_84_320, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:int32(var_85_328, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_86_32F, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_87_338, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
stloc:uint32[](var_88_33F, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_89_348, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
stloc:uint32[](var_90_34F, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_91_358, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_92_35F, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_93_368, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_94_373, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_92_35F), ldloc:int32(var_93_368)))
stloc:int32(var_95_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:int32(var_96_37F, ldc.i4:int32(0))
stloc:uint32(var_97_389, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldloc:int32(var_96_37F)))
stloc:uint32(var_10_392, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32(var_98_39B, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(8)))
stloc:uint32(var_8_3A5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(12)))
stloc:int32(var_99_3AD, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_100_3B4, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_101_3BD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_102_3C4, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_103_3CD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_104_3D4, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_105_3DD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_106_3E4, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_107_3ED, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_108_3F6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_109_401, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_104_3D4), ldloc:int32(var_108_3F6)))
stloc:int32(var_110_404, ldc.i4:int32(0))
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_109_401), ldloc:int32[](var_2_26), ldloc:int32(var_110_404))
stloc:int32(var_111_416, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_112_41D, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_113_426, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_114_42D, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_115_436, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_116_43D, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_117_446, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_118_44D, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_119_456, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:int32(var_120_45F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_118_44D), ldloc:int32(var_120_45F)), ldloc:int32[](var_2_26), ldc.i4:int32(4))
stloc:int32(var_121_477, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_122_47E, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_123_487, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_124_48E, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_125_497, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_126_49E, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_127_4A7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_128_4AE, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_129_4B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:int32(var_130_4C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_122_47E), ldloc:int32(var_130_4C0)), ldloc:int32[](var_2_26), ldc.i4:int32(8))
stloc:int32(var_131_4D8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_132_4DF, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_133_4E8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32[](var_134_4EF, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_135_4F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32[](var_136_4FF, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_137_508, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32(var_138_513, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_136_4FF), ldloc:int32(var_137_508)))
stloc:uint32[](var_139_51A, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_140_523, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:int32(var_141_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_134_4EF), ldloc:int32(var_141_52C)), ldloc:int32[](var_2_26), ldc.i4:int32(12))
stloc:int32(var_142_545, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_143_54C, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_144_555, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_145_55C, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_146_565, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_147_56C, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_148_575, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_149_57C, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_150_585, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32(var_151_590, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_149_57C), ldloc:int32(var_150_585)))
stloc:int32(var_152_599, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:int32(var_153_5A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_154_5A8, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_155_5B1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_156_5B8, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_157_5C1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_158_5C8, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_159_5D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32(var_160_5DC, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_158_5C8), ldloc:int32(var_159_5D1)))
stloc:uint32[](var_161_5E3, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_162_5EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32(var_163_5F7, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_161_5E3), ldloc:int32(var_162_5EC)))
stloc:int32(var_164_600, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:int32(var_165_608, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_166_60F, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_167_618, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_168_61F, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_169_628, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_170_62F, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_171_638, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32[](var_172_63F, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_173_648, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_174_653, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_172_63F), ldloc:int32(var_173_648)))
stloc:int32(var_175_65C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:int32(var_176_664, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_177_66B, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_178_674, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_179_67B, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_180_684, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_181_68B, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_182_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32[](var_183_69B, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_184_6A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32(var_185_6AF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_183_69B), ldloc:int32(var_184_6A4)))
stloc:int32(var_186_6B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:int32(var_187_6BB, ldc.i4:int32(0))
stloc:uint32(var_188_6C5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_187_6BB)))
stloc:uint32(var_8_6CE, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_97_6D7, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
stloc:uint32(var_10_6E1, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
stloc:int32(var_189_6E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_190_6F0, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_191_6F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_192_700, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_193_709, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32[](var_194_710, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_195_719, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_196_720, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_197_729, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:int32(var_198_732, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_199_73D, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_194_710), ldloc:int32(var_198_732)))
stloc:int32(var_200_740, ldc.i4:int32(0))
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_199_73D), ldloc:int32[](var_1_1E), ldloc:int32(var_200_740))
stloc:int32(var_201_752, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_202_759, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_203_762, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_204_769, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_205_772, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_206_779, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_207_782, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_208_789, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_209_792, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:int32(var_210_79B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_208_789), ldloc:int32(var_210_79B)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
stloc:int32(var_211_7B3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_212_7BA, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_213_7C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_214_7CA, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_215_7D3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_216_7DA, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_217_7E3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
}
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: 0x0600BB04 RID: 47876 RVA: 0x0029073C File Offset: 0x0028E93C
[Token(Token = "0x600BB04")]
[Address(RVA = "0x27DCD90", Offset = "0x27DBD90", VA = "0x1827DCD90", Slot = "17")]
internal virtual int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[2];
this.CAST_Encipher(num, num2, array);
uint num3 = array[0];
uint num4 = array[0];
return 8;
}
// Token: 0x0600BB05 RID: 47877 RVA: 0x00290784 File Offset: 0x0028E984
[Token(Token = "0x600BB05")]
[Address(RVA = "0x27DCC80", Offset = "0x27DBC80", VA = "0x1827DCC80", Slot = "18")]
internal virtual int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[2];
this.CAST_Decipher(num, num2, array);
uint num3 = array[0];
uint num4 = array[0];
return 8;
}
// Token: 0x0600BB06 RID: 47878 RVA: 0x002907CC File Offset: 0x0028E9CC
[Token(Token = "0x600BB06")]
[Address(RVA = "0x27DCEA0", Offset = "0x27DBEA0", VA = "0x1827DCEA0")]
internal static uint F1(uint D, uint Kmi, int Kri)
{
uint[] s = Cast5Engine.S1;
uint num = Cast5Engine.S2[(int)Kmi];
uint num2 = Cast5Engine.S3[(int)Kmi];
uint num3 = Cast5Engine.S4[(int)Kmi];
num3 += num;
return num3 - num2;
}
// Token: 0x0600BB07 RID: 47879 RVA: 0x00290814 File Offset: 0x0028EA14
[Token(Token = "0x600BB07")]
[Address(RVA = "0x27DCFE0", Offset = "0x27DBFE0", VA = "0x1827DCFE0")]
internal static uint F2(uint D, uint Kmi, int Kri)
{
uint num = Cast5Engine.S1[(int)Kmi];
uint num2 = Cast5Engine.S2[(int)Kmi];
uint num3 = Cast5Engine.S3[(int)Kmi];
uint num4 = Cast5Engine.S4[(int)Kmi];
num3 -= num2;
num3 += num;
return num4;
}
// Token: 0x0600BB08 RID: 47880 RVA: 0x00290860 File Offset: 0x0028EA60
[Token(Token = "0x600BB08")]
[Address(RVA = "0x27DD120", Offset = "0x27DC120", VA = "0x1827DD120")]
internal static uint F3(uint D, uint Kmi, int Kri)
{
uint[] s = Cast5Engine.S1;
uint[] s2 = Cast5Engine.S2;
uint[] s3 = Cast5Engine.S3;
uint[] s4 = Cast5Engine.S4;
return D;
}
// Token: 0x0600BB09 RID: 47881 RVA: 0x0029088C File Offset: 0x0028EA8C
[Token(Token = "0x600BB09")]
[Address(RVA = "0x27DC9B0", Offset = "0x27DB9B0", VA = "0x1827DC9B0")]
internal void CAST_Encipher(uint L0, uint R0, uint[] result)
{
uint num;
if (num - 1U <= (uint)15)
{
uint num2 = num - 1U;
uint num3 = this._Km[(int)num];
int num4 = this._Kr[(int)num];
uint num5 = Cast5Engine.F2(R0, num3, num4);
uint[] km = this._Km;
int[] kr = this._Kr;
uint num6 = Cast5Engine.F3(R0, num3, num4);
uint[] km2 = this._Km;
int[] kr2 = this._Kr;
uint num7 = Cast5Engine.F1(R0, num3, num4);
}
num += (uint)1;
while (num <= this.S7)
{
}
result[0] = R0;
result[0] = L0;
}
// Token: 0x0600BB0A RID: 47882 RVA: 0x00290924 File Offset: 0x0028EB24
[Token(Token = "0x600BB0A")]
[Address(RVA = "0x27DC6D0", Offset = "0x27DB6D0", VA = "0x1827DC6D0")]
internal void CAST_Decipher(uint L16, uint R16, uint[] result)
{
int rounds = this._rounds;
if (rounds > 0)
{
int num = rounds - 1;
if (num <= 15)
{
uint num2 = this._Km[rounds];
int[] kr = this._Kr;
uint num3 = Cast5Engine.F2(R16, num2, rounds);
uint[] km = this._Km;
int[] kr2 = this._Kr;
uint num4 = Cast5Engine.F3(R16, num2, rounds);
uint[] km2 = this._Km;
int[] kr3 = this._Kr;
uint num5 = Cast5Engine.F1(R16, num2, rounds);
}
}
result[0] = R16;
result[0] = L16;
}
// Token: 0x0600BB0B RID: 47883 RVA: 0x002909B0 File Offset: 0x0028EBB0
[Token(Token = "0x600BB0B")]
[Address(RVA = "0x27DC620", Offset = "0x27DB620", VA = "0x1827DC620")]
internal static void Bits32ToInts(uint inData, int[] b, int offset)
{
b[0] = (int)inData;
b[0] = (int)inData;
int num = offset + 1;
b[0] = (int)inData;
b[0] = (int)inData;
}
// Token: 0x0600BB0C RID: 47884 RVA: 0x002909E8 File Offset: 0x0028EBE8
[Token(Token = "0x600BB0C")]
[Address(RVA = "0x27DD440", Offset = "0x27DC440", VA = "0x1827DD440")]
internal static uint IntsTo32bits(int[] b, int i)
{
int length = b.Length;
int num = i + 1;
throw new NullReferenceException();
}
// Token: 0x0600BB0D RID: 47885 RVA: 0x00290A08 File Offset: 0x0028EC08
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB0D")]
[Address(RVA = "0x27E4080", Offset = "0x27E3080", VA = "0x1827E4080")]
static Cast5Engine()
{
uint[] array = new uint[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.37454D933508E238CFB980F1077B24ADA4A480F4).FieldHandle);
Cast5Engine.S1 = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.555BD8216452A1A1E3CB7AD8F4DAE8F41FB30380).FieldHandle);
Cast5Engine.S2 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EF813A47B13574822D335279EF445343654A4F04).FieldHandle);
Cast5Engine.S3 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.A47DBBBB6655DAA5E024374BB9C8AA44FF40D444).FieldHandle);
Cast5Engine.S4 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.84F6B4137736E2F6671FC8787A500AC5C6E1D6AC).FieldHandle);
Cast5Engine.S5 = array5;
uint[] array6 = new uint[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.17651A9FA4DEA6C24D1287324CF4A640D080FE8E).FieldHandle);
Cast5Engine.S6 = array6;
uint[] array7 = new uint[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.7FF0A15672FF2807983AB77C0DA74928986427C0).FieldHandle);
Cast5Engine.S7 = array7;
uint[] array8 = new uint[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.B539B4DC5A69E3FE6AB10F668DDCA96E9D51235B).FieldHandle);
Cast5Engine.S8 = array8;
}
// Token: 0x040075E1 RID: 30177
[Token(Token = "0x40075E1")]
private static readonly uint[] S1;
// Token: 0x040075E2 RID: 30178
[Token(Token = "0x40075E2")]
private static readonly uint[] S2;
// Token: 0x040075E3 RID: 30179
[Token(Token = "0x40075E3")]
private static readonly uint[] S3;
// Token: 0x040075E4 RID: 30180
[Token(Token = "0x40075E4")]
private static readonly uint[] S4;
// Token: 0x040075E5 RID: 30181
[Token(Token = "0x40075E5")]
private static readonly uint[] S5;
// Token: 0x040075E6 RID: 30182
[Token(Token = "0x40075E6")]
private static readonly uint[] S6;
// Token: 0x040075E7 RID: 30183
[Token(Token = "0x40075E7")]
private static readonly uint[] S7;
// Token: 0x040075E8 RID: 30184
[Token(Token = "0x40075E8")]
private static readonly uint[] S8;
// Token: 0x040075E9 RID: 30185
[Token(Token = "0x40075E9")]
internal static readonly int MAX_ROUNDS;
// Token: 0x040075EA RID: 30186
[Token(Token = "0x40075EA")]
internal static readonly int RED_ROUNDS;
// Token: 0x040075EB RID: 30187
[Token(Token = "0x40075EB")]
private const int BLOCK_SIZE = 8;
// Token: 0x040075EC RID: 30188
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075EC")]
private int[] _Kr;
// Token: 0x040075ED RID: 30189
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075ED")]
private uint[] _Km;
// Token: 0x040075EE RID: 30190
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075EE")]
private bool _encrypting;
// Token: 0x040075EF RID: 30191
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075EF")]
private byte[] _workingKey;
// Token: 0x040075F0 RID: 30192
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075F0")]
private int _rounds;
}
}
@@ -0,0 +1,388 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D69 RID: 7529
[Token(Token = "0x2001D69")]
public sealed class Cast6Engine : Cast5Engine
{
// Token: 0x0600BB0E RID: 47886 RVA: 0x00290B04 File Offset: 0x0028ED04
[Token(Token = "0x600BB0E")]
[Address(RVA = "0x27E5FF0", Offset = "0x27E4FF0", VA = "0x1827E5FF0")]
public Cast6Engine()
{
int[] array = new int[48];
this._Kr = array;
uint[] array2 = new uint[48];
this._Km = array2;
int[] array3 = new int[192];
this._Tr = array3;
uint[] array4 = new uint[192];
this._Tm = array4;
uint[] array5 = new uint[8];
this._workingKey = array5;
int[] array6 = new int[17];
this._Kr = array6;
uint[] array7 = new uint[17];
this._Km = array7;
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
this._rounds = max_ROUNDS;
this.Reset();
}
// Token: 0x17001D5F RID: 7519
// (get) Token: 0x0600BB0F RID: 47887 RVA: 0x00290B9C File Offset: 0x0028ED9C
[Token(Token = "0x17001D5F")]
public override string AlgorithmName
{
[Token(Token = "0x600BB0F")]
[Address(RVA = "0x27E6130", Offset = "0x27E5130", VA = "0x1827E6130", Slot = "11")]
get
{
return "CAST6";
}
}
// Token: 0x0600BB10 RID: 47888 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB10")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
public override void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB11 RID: 47889 RVA: 0x00290BB0 File Offset: 0x0028EDB0
[Token(Token = "0x600BB11")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "15")]
public override int GetBlockSize()
{
return 16;
}
// Token: 0x0600BB12 RID: 47890 RVA: 0x00290BC0 File Offset: 0x0028EDC0
[Token(Token = "0x600BB12")]
[Address(RVA = "0x27E4FE0", Offset = "0x27E3FE0", VA = "0x1827E4FE0", Slot = "16")]
internal override void SetKey(byte[] key)
{
int num = 0;
uint num2;
this._Tm[0] = num2;
num2 += (uint)1859775393;
uint num3;
this._Tr[0] = (int)num3;
num++;
num3 += (uint)(-15);
num += 8;
byte[] array = new byte[64];
uint[] workingKey = this._workingKey;
num++;
uint num4;
workingKey[0] = num4;
uint[] workingKey2 = this._workingKey;
int length = workingKey2.Length;
uint[] tm = this._Tm;
uint num5 = workingKey2[3];
uint num6 = tm[num];
int num7 = this._Tr[num];
uint num8 = Cast5Engine.F1(num5, num6, num7);
workingKey2[3] = num8;
uint[] workingKey3 = this._workingKey;
int length2 = workingKey3.Length;
uint[] tm2 = this._Tm;
int[] tr = this._Tr;
uint num10;
int num11;
uint num9 = Cast5Engine.F2(workingKey3[3], num10, num11);
workingKey3[2] = num9;
uint[] workingKey4 = this._workingKey;
int length3 = workingKey4.Length;
uint[] tm3 = this._Tm;
int[] tr2 = this._Tr;
uint num13;
int num14;
uint num12 = Cast5Engine.F3(workingKey4[2], num13, num14);
workingKey4[2] = num12;
uint[] workingKey5 = this._workingKey;
int length4 = workingKey5.Length;
uint[] tm4 = this._Tm;
int[] tr3 = this._Tr;
uint num16;
int num17;
uint num15 = Cast5Engine.F1(workingKey5[2], num16, num17);
workingKey5[1] = num15;
uint[] workingKey6 = this._workingKey;
int length5 = workingKey6.Length;
uint[] tm5 = this._Tm;
int[] tr4 = this._Tr;
uint num19;
int num20;
uint num18 = Cast5Engine.F2(workingKey6[1], num19, num20);
workingKey6[1] = num18;
uint[] workingKey7 = this._workingKey;
int length6 = workingKey7.Length;
uint[] tm6 = this._Tm;
int[] tr5 = this._Tr;
uint num22;
int num23;
uint num21 = Cast5Engine.F3(workingKey7[1], num22, num23);
workingKey7[0] = num21;
uint[] workingKey8 = this._workingKey;
int length7 = workingKey8.Length;
uint[] tm7 = this._Tm;
int[] tr6 = this._Tr;
uint num25;
int num26;
uint num24 = Cast5Engine.F1(workingKey8[0], num25, num26);
workingKey8[0] = num24;
uint[] workingKey9 = this._workingKey;
int length8 = workingKey9.Length;
uint[] tm8 = this._Tm;
int[] tr7 = this._Tr;
uint num28;
int num29;
uint num27 = Cast5Engine.F2(workingKey9[0], num28, num29);
workingKey9[3] = num27;
uint[] workingKey10 = this._workingKey;
int length9 = workingKey10.Length;
uint[] tm9 = this._Tm;
int[] tr8 = this._Tr;
uint num30 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
workingKey10[3] = num30;
uint[] workingKey11 = this._workingKey;
int length10 = workingKey11.Length;
uint[] tm10 = this._Tm;
int[] tr9 = this._Tr;
uint num32;
int num33;
uint num31 = Cast5Engine.F2(workingKey11[3], num32, num33);
workingKey11[2] = num31;
uint[] workingKey12 = this._workingKey;
int length11 = workingKey12.Length;
uint[] tm11 = this._Tm;
int[] tr10 = this._Tr;
uint num35;
int num36;
uint num34 = Cast5Engine.F3(workingKey12[2], num35, num36);
workingKey12[2] = num34;
uint[] workingKey13 = this._workingKey;
int length12 = workingKey13.Length;
uint[] tm12 = this._Tm;
int[] tr11 = this._Tr;
uint num38;
int num39;
uint num37 = Cast5Engine.F1(workingKey13[2], num38, num39);
workingKey13[1] = num37;
uint[] workingKey14 = this._workingKey;
int length13 = workingKey14.Length;
uint[] tm13 = this._Tm;
int[] tr12 = this._Tr;
uint num41;
int num42;
uint num40 = Cast5Engine.F2(workingKey14[1], num41, num42);
workingKey14[1] = num40;
uint[] workingKey15 = this._workingKey;
int length14 = workingKey15.Length;
uint[] tm14 = this._Tm;
int[] tr13 = this._Tr;
uint num44;
int num45;
uint num43 = Cast5Engine.F3(workingKey15[1], num44, num45);
workingKey15[0] = num43;
uint[] workingKey16 = this._workingKey;
int length15 = workingKey16.Length;
uint[] tm15 = this._Tm;
int[] tr14 = this._Tr;
uint num47;
int num48;
uint num46 = Cast5Engine.F1(workingKey16[0], num47, num48);
workingKey16[0] = num46;
uint[] workingKey17 = this._workingKey;
int length16 = workingKey17.Length;
uint[] tm16 = this._Tm;
num += 15;
int num49 = this._Tr[num];
uint num50 = workingKey17[0];
uint num51 = tm16[num];
uint num52 = Cast5Engine.F2(num50, num51, num49);
workingKey17[3] = num52;
uint[] workingKey18 = this._workingKey;
int[] kr = this._Kr;
uint num53 = workingKey18[0];
num.m_value = (int)num53;
uint[] workingKey19 = this._workingKey;
int[] kr2 = this._Kr;
uint num54 = workingKey19[1];
kr2[0] = (int)num54;
uint[] workingKey20 = this._workingKey;
int[] kr3 = this._Kr;
uint num55 = workingKey20[2];
kr3[0] = (int)num55;
uint[] workingKey21 = this._workingKey;
int[] kr4 = this._Kr;
uint num56 = workingKey21[3];
kr4[0] = (int)num56;
uint[] workingKey22 = this._workingKey;
uint[] km = this._Km;
uint num57 = workingKey22[3];
num.m_value = (int)num57;
uint[] workingKey23 = this._workingKey;
uint[] km2 = this._Km;
uint num58 = workingKey23[2];
km2[0] = num58;
uint[] workingKey24 = this._workingKey;
uint[] km3 = this._Km;
uint num59 = workingKey24[1];
km3[0] = num59;
uint[] workingKey25 = this._workingKey;
uint[] km4 = this._Km;
uint num60 = workingKey25[0];
num++;
km4[0] = num60;
}
// Token: 0x0600BB13 RID: 47891 RVA: 0x00291158 File Offset: 0x0028F358
[Token(Token = "0x600BB13")]
[Address(RVA = "0x27E4E30", Offset = "0x27E3E30", VA = "0x1827E4E30", Slot = "17")]
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[4];
this.CAST_Encipher(num, num2, num3, num4, array);
uint num5 = array[0];
uint num6 = array[0];
uint num7 = array[1];
uint num8 = array[1];
return 16;
}
// Token: 0x0600BB14 RID: 47892 RVA: 0x002911CC File Offset: 0x0028F3CC
[Token(Token = "0x600BB14")]
[Address(RVA = "0x27E4C80", Offset = "0x27E3C80", VA = "0x1827E4C80", Slot = "18")]
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[4];
this.CAST_Decipher(num, num2, num3, num4, array);
uint num5 = array[0];
uint num6 = array[0];
uint num7 = array[1];
uint num8 = array[1];
return 16;
}
// Token: 0x0600BB15 RID: 47893 RVA: 0x00291240 File Offset: 0x0028F440
[Token(Token = "0x600BB15")]
[Address(RVA = "0x27E47F0", Offset = "0x27E37F0", VA = "0x1827E47F0")]
private void CAST_Encipher(uint A, uint B, uint C, uint D, uint[] result)
{
int num = 0;
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
int[] kr2 = this._Kr;
uint num3;
int num4;
uint num2 = Cast5Engine.F2(C, num3, num4);
uint[] km3 = this._Km;
int[] kr3 = this._Kr;
uint[] km4 = this._Km;
num += 3;
int[] kr4 = this._Kr;
uint num5 = km4[num];
int num6 = kr4[num];
uint num7 = Cast5Engine.F1(A, num5, num6);
num += 4;
uint[] km5 = this._Km;
int[] kr5 = this._Kr;
uint num8 = Cast5Engine.F1(A, num5, num6);
uint[] km6 = this._Km;
int[] kr6 = this._Kr;
uint[] km7 = this._Km;
uint num10;
uint num9 = num10 + 1U;
int num11 = this._Kr[(int)num9];
uint num12 = km7[(int)num9];
uint num13 = Cast5Engine.F2(C, num12, num11);
uint[] km8 = this._Km;
int[] kr7 = this._Kr;
num10 += (uint)4;
}
// Token: 0x0600BB16 RID: 47894 RVA: 0x00291340 File Offset: 0x0028F540
[Token(Token = "0x600BB16")]
[Address(RVA = "0x27E4360", Offset = "0x27E3360", VA = "0x1827E4360")]
private void CAST_Decipher(uint A, uint B, uint C, uint D, uint[] result)
{
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
uint num2;
uint num = num2 + 1U;
int num3 = this._Kr[(int)num];
uint num4 = km2[(int)num];
uint num5 = Cast5Engine.F2(C, num4, num3);
uint[] km3 = this._Km;
int[] kr2 = this._Kr;
uint[] km4 = this._Km;
num2 += (uint)3;
int[] kr3 = this._Kr;
uint num6 = km4[(int)num2];
int num7 = kr3[(int)num2];
uint num8 = Cast5Engine.F1(A, num6, num7);
uint[] km5 = this._Km;
int[] kr4 = this._Kr;
uint num9 = Cast5Engine.F1(A, num6, num7);
uint[] km6 = this._Km;
int[] kr5 = this._Kr;
uint[] km7 = this._Km;
uint num11;
uint num10 = num11 + 1U;
int num12 = this._Kr[(int)num10];
uint num13 = km7[(int)num10];
uint num14 = Cast5Engine.F2(C, num13, num12);
uint[] km8 = this._Km;
int[] kr6 = this._Kr;
}
// Token: 0x040075F1 RID: 30193
[Token(Token = "0x40075F1")]
private const int ROUNDS = 12;
// Token: 0x040075F2 RID: 30194
[Token(Token = "0x40075F2")]
private const int BLOCK_SIZE = 16;
// Token: 0x040075F3 RID: 30195
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40075F3")]
private int[] _Kr;
// Token: 0x040075F4 RID: 30196
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40075F4")]
private uint[] _Km;
// Token: 0x040075F5 RID: 30197
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40075F5")]
private int[] _Tr;
// Token: 0x040075F6 RID: 30198
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40075F6")]
private uint[] _Tm;
// Token: 0x040075F7 RID: 30199
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40075F7")]
private uint[] _workingKey;
}
}
@@ -0,0 +1,127 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6A RID: 7530
[Token(Token = "0x2001D6A")]
public class ChaCha7539Engine : Salsa20Engine
{
// Token: 0x0600BB17 RID: 47895 RVA: 0x0029144C File Offset: 0x0028F64C
[Token(Token = "0x600BB17")]
[Address(RVA = "0x27E6380", Offset = "0x27E5380", VA = "0x1827E6380")]
public ChaCha7539Engine()
{
}
// Token: 0x17001D60 RID: 7520
// (get) Token: 0x0600BB18 RID: 47896 RVA: 0x00291460 File Offset: 0x0028F660
[Token(Token = "0x17001D60")]
public override string AlgorithmName
{
[Token(Token = "0x600BB18")]
[Address(RVA = "0x27E63E0", Offset = "0x27E53E0", VA = "0x1827E63E0", Slot = "11")]
get
{
int rounds = this.rounds;
return "ChaCha7539" + rounds;
}
}
// Token: 0x17001D61 RID: 7521
// (get) Token: 0x0600BB19 RID: 47897 RVA: 0x00291480 File Offset: 0x0028F680
[Token(Token = "0x17001D61")]
protected override int NonceSize
{
[Token(Token = "0x600BB19")]
[Address(RVA = "0x4B2B30", Offset = "0x4B1B30", VA = "0x1804B2B30", Slot = "10")]
get
{
return 12;
}
}
// Token: 0x0600BB1A RID: 47898 RVA: 0x00291490 File Offset: 0x0028F690
[Token(Token = "0x600BB1A")]
[Address(RVA = "0x27E6160", Offset = "0x27E5160", VA = "0x1827E6160", Slot = "13")]
protected override void AdvanceCounter()
{
/*
An exception occurred when decompiling this method (0600BB1A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::AdvanceCounter()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_16:
stloc:InvalidOperationException(var_0_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to increase counter past 2^32.")))
}
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: 0x0600BB1B RID: 47899 RVA: 0x002914C0 File Offset: 0x0028F6C0
[Token(Token = "0x600BB1B")]
[Address(RVA = "0x27E6230", Offset = "0x27E5230", VA = "0x1827E6230", Slot = "16")]
protected override void ResetCounter()
{
uint[] engineState = this.engineState;
}
// Token: 0x0600BB1C RID: 47900 RVA: 0x002914DC File Offset: 0x0028F6DC
[Token(Token = "0x600BB1C")]
[Address(RVA = "0x27E6270", Offset = "0x27E5270", VA = "0x1827E6270", Slot = "17")]
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
{
/*
An exception occurred when decompiling this method (0600BB1C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::SetKey(System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_51:
stloc:ArgumentException(var_12_58, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_11)))
}
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.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: 0x0600BB1D RID: 47901 RVA: 0x00291544 File Offset: 0x0028F744
[Token(Token = "0x600BB1D")]
[Address(RVA = "0x27E61F0", Offset = "0x27E51F0", VA = "0x1827E61F0", Slot = "18")]
protected override void GenerateKeyStream(byte[] output)
{
uint[] x = this.x;
uint[] engineState = this.engineState;
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
uint[] x2 = this.x;
int num = 0;
Pack.UInt32_To_LE(x2, output, num);
}
}
}
@@ -0,0 +1,205 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6B RID: 7531
[Token(Token = "0x2001D6B")]
public class ChaChaEngine : Salsa20Engine
{
// Token: 0x0600BB1E RID: 47902 RVA: 0x00291580 File Offset: 0x0028F780
[Token(Token = "0x600BB1E")]
[Address(RVA = "0x27E7000", Offset = "0x27E6000", VA = "0x1827E7000")]
public ChaChaEngine()
{
}
// Token: 0x0600BB1F RID: 47903 RVA: 0x00291594 File Offset: 0x0028F794
[Token(Token = "0x600BB1F")]
[Address(RVA = "0x27E6FA0", Offset = "0x27E5FA0", VA = "0x1827E6FA0")]
public ChaChaEngine(int rounds)
: base(rounds)
{
}
// Token: 0x17001D62 RID: 7522
// (get) Token: 0x0600BB20 RID: 47904 RVA: 0x002915A8 File Offset: 0x0028F7A8
[Token(Token = "0x17001D62")]
public override string AlgorithmName
{
[Token(Token = "0x600BB20")]
[Address(RVA = "0x27E7060", Offset = "0x27E6060", VA = "0x1827E7060", Slot = "11")]
get
{
int rounds = this.rounds;
return "ChaCha" + rounds;
}
}
// Token: 0x0600BB21 RID: 47905 RVA: 0x002915C8 File Offset: 0x0028F7C8
[Token(Token = "0x600BB21")]
[Address(RVA = "0x27E6440", Offset = "0x27E5440", VA = "0x1827E6440", Slot = "13")]
protected override void AdvanceCounter()
{
if (this.engineState.Length == 12)
{
uint[] engineState = this.engineState;
}
}
// Token: 0x0600BB22 RID: 47906 RVA: 0x002915F4 File Offset: 0x0028F7F4
[Token(Token = "0x600BB22")]
[Address(RVA = "0x27E6E10", Offset = "0x27E5E10", VA = "0x1827E6E10", Slot = "16")]
protected override void ResetCounter()
{
uint[] engineState = this.engineState;
int num = 0;
engineState[6] = (uint)num;
engineState[6] = (uint)num;
}
// Token: 0x0600BB23 RID: 47907 RVA: 0x00291620 File Offset: 0x0028F820
[Token(Token = "0x600BB23")]
[Address(RVA = "0x27E6E70", Offset = "0x27E5E70", VA = "0x1827E6E70", Slot = "17")]
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
{
if (keyBytes != 0)
{
int length = keyBytes.Length;
uint[] engineState = this.engineState;
int num = 0;
base.PackTauOrSigma(length, engineState, num);
uint[] engineState2 = this.engineState;
int num2 = 0;
ulong num3;
Pack.LE_To_UInt32(keyBytes, num2, engineState2, 4, (int)num3);
int length2 = keyBytes.Length;
uint[] engineState3 = this.engineState;
ulong num4;
Pack.LE_To_UInt32(keyBytes, length2, engineState3, 8, (int)num4);
}
uint[] engineState4 = this.engineState;
int num5 = 0;
uint num6;
ulong num7;
Pack.LE_To_UInt32(ivBytes, num5, engineState4, (int)num6, (int)num7);
}
// Token: 0x0600BB24 RID: 47908 RVA: 0x002916A4 File Offset: 0x0028F8A4
[Token(Token = "0x600BB24")]
[Address(RVA = "0x27E61F0", Offset = "0x27E51F0", VA = "0x1827E61F0", Slot = "18")]
protected override void GenerateKeyStream(byte[] output)
{
uint[] x = this.x;
uint[] engineState = this.engineState;
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
uint[] x2 = this.x;
int num = 0;
Pack.UInt32_To_LE(x2, output, num);
}
// Token: 0x0600BB25 RID: 47909 RVA: 0x002916E0 File Offset: 0x0028F8E0
[Token(Token = "0x600BB25")]
[Address(RVA = "0x27E64A0", Offset = "0x27E54A0", VA = "0x1827E64A0")]
internal static void ChachaCore(int rounds, uint[] input, uint[] x)
{
while (input.Length != 16 || rounds != 1)
{
}
uint num = input[2];
uint num2 = input[6];
uint num3 = input[5];
uint num4 = input[6];
uint num5 = input[0];
uint num6 = input[0];
uint num7 = input[2];
uint num8 = input[4];
uint num9 = input[3];
uint num10 = input[4];
uint num11 = input[3];
uint num12 = input[7];
uint num13 = input[1];
uint num14 = input[5];
uint num15 = input[7];
uint num16 = input[1];
if (rounds > 0)
{
int num17 = rounds - 1;
num17++;
num5 += num7;
num10 += num5;
num5 += num5;
num10 += num5;
num4 = num10;
num8 = num5;
num8 += num5;
num6 += num5;
num8 = num5;
num10 = num5;
num8 += num10;
num6 = num8;
num5 = num8;
num14 += num5;
num13 += num14;
num14 += num14;
num12 = num14;
num13 = num14;
num5 = num14;
num3 += num5;
num16 += num3;
num5 = num3;
num3 += num5;
num5 += num6;
num16 = num3;
num5 = num3;
num14 += num5;
num5 += num14;
num15 = num14;
num14 += num15;
num6 += num13;
num3 += num14;
num6 += num14;
num3 += num14;
num13 += num16;
num10 += num14;
num13 += num14;
num10 += num14;
num15 = num10;
num8 += num14;
num5 = num14;
num14 = num8;
num16 += num14;
num14 = num5;
num5 = num14;
num8 += num14;
num14 = num8;
num7 = num14;
}
uint num18 = input[0];
num5 += num18;
uint num19 = input[0];
num19 += num6;
uint num20 = input[1];
num20 += num13;
uint num21 = input[1];
num21 += num16;
uint num22 = input[2];
num22 += num7;
uint num23 = input[4];
num23 += num10;
uint num24 = input[4];
num24 += num8;
uint num25 = input[5];
num25 += num14;
uint num26 = input[5];
num26 += num3;
uint num27 = input[6];
num27 += num4;
uint num28 = input[7];
num28 += num12;
uint num29 = input[7];
num29 += num15;
}
}
}
@@ -0,0 +1,131 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6C RID: 7532
[Token(Token = "0x2001D6C")]
public class DesEdeEngine : DesEngine
{
// Token: 0x0600BB26 RID: 47910 RVA: 0x002919D0 File Offset: 0x0028FBD0
[Token(Token = "0x600BB26")]
[Address(RVA = "0x27E70C0", Offset = "0x27E60C0", VA = "0x1827E70C0", Slot = "11")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB26)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_D5:
stloc:ArgumentException(var_24_DF, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("key size must be 16 or 24 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.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.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.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: 0x17001D63 RID: 7523
// (get) Token: 0x0600BB27 RID: 47911 RVA: 0x00291AC0 File Offset: 0x0028FCC0
[Token(Token = "0x17001D63")]
public override string AlgorithmName
{
[Token(Token = "0x600BB27")]
[Address(RVA = "0x27E7610", Offset = "0x27E6610", VA = "0x1827E7610", Slot = "12")]
get
{
return "DESede";
}
}
// Token: 0x0600BB28 RID: 47912 RVA: 0x00291AD4 File Offset: 0x0028FCD4
[Token(Token = "0x600BB28")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
public override int GetBlockSize()
{
return 8;
}
// Token: 0x0600BB29 RID: 47913 RVA: 0x00291AE4 File Offset: 0x0028FCE4
[Token(Token = "0x600BB29")]
[Address(RVA = "0x27E73E0", Offset = "0x27E63E0", VA = "0x1827E73E0", Slot = "15")]
public override int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB29)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7C:
stloc:InvalidOperationException(var_7_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DESede engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BB2A RID: 47914 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB2A")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "16")]
public override void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB2B RID: 47915 RVA: 0x00291B78 File Offset: 0x0028FD78
[Token(Token = "0x600BB2B")]
[Address(RVA = "0x27E75B0", Offset = "0x27E65B0", VA = "0x1827E75B0")]
public DesEdeEngine()
{
this.Reset();
}
// Token: 0x040075F8 RID: 30200
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075F8")]
private int[] workingKey1;
// Token: 0x040075F9 RID: 30201
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075F9")]
private int[] workingKey2;
// Token: 0x040075FA RID: 30202
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075FA")]
private int[] workingKey3;
// Token: 0x040075FB RID: 30203
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40075FB")]
private bool forEncryption;
}
}
@@ -0,0 +1,215 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6D RID: 7533
[Token(Token = "0x2001D6D")]
public class DesEdeWrapEngine : IWrapper
{
// Token: 0x0600BB2C RID: 47916 RVA: 0x00291B8C File Offset: 0x0028FD8C
[Token(Token = "0x600BB2C")]
[Address(RVA = "0x27E77A0", Offset = "0x27E67A0", VA = "0x1827E77A0", Slot = "8")]
public virtual void Init(bool forWrapping, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB2C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_E5:
stloc:ArgumentException(var_16_F4, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("IV is not 8 octets"), ldstr:string("parameters")))
}
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: 0x17001D64 RID: 7524
// (get) Token: 0x0600BB2D RID: 47917 RVA: 0x00291C90 File Offset: 0x0028FE90
[Token(Token = "0x17001D64")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB2D")]
[Address(RVA = "0x27E83D0", Offset = "0x27E73D0", VA = "0x1827E83D0", Slot = "9")]
get
{
return "DESede";
}
}
// Token: 0x0600BB2E RID: 47918 RVA: 0x00291CA4 File Offset: 0x0028FEA4
[Token(Token = "0x600BB2E")]
[Address(RVA = "0x27E7FC0", Offset = "0x27E6FC0", VA = "0x1827E7FC0", Slot = "10")]
public virtual byte[] Wrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BB2E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_19D:
stloc:InvalidOperationException(var_34_1A7, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not multiple of block length")))
}
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: 0x0600BB2F RID: 47919 RVA: 0x00291E5C File Offset: 0x0029005C
[Token(Token = "0x600BB2F")]
[Address(RVA = "0x27E7B60", Offset = "0x27E6B60", VA = "0x1827E7B60", Slot = "11")]
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BB2F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1C0:
stloc:InvalidCipherTextException(var_39_1D0, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Ciphertext not multiple of "), ldloc:int32[exp:object](var_2))))
}
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.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: 0x0600BB30 RID: 47920 RVA: 0x0029203C File Offset: 0x0029023C
[Token(Token = "0x600BB30")]
[Address(RVA = "0x27E7640", Offset = "0x27E6640", VA = "0x1827E7640")]
private byte[] CalculateCmsKeyChecksum(byte[] key)
{
IDigest digest = this.sha1;
int length = key.Length;
IDigest digest2 = this.sha1;
byte[] array = new byte[8];
byte[] array2 = this.digest;
int num = 0;
int num2 = 0;
ulong num3;
Array.Copy(array2, num2, array, num, (int)num3);
return array;
}
// Token: 0x0600BB31 RID: 47921 RVA: 0x0029208C File Offset: 0x0029028C
[Token(Token = "0x600BB31")]
[Address(RVA = "0x27E7720", Offset = "0x27E6720", VA = "0x1827E7720")]
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
{
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
}
// Token: 0x0600BB32 RID: 47922 RVA: 0x002920A8 File Offset: 0x002902A8
[Token(Token = "0x600BB32")]
[Address(RVA = "0x27E8400", Offset = "0x27E7400", VA = "0x1827E8400")]
private static byte[] reverse(byte[] bs)
{
byte[] array = new byte[bs.Length];
int num = 0;
int num2 = bs.Length;
if (num < num2)
{
num2 -= num;
num++;
}
return array;
}
// Token: 0x0600BB33 RID: 47923 RVA: 0x002920E0 File Offset: 0x002902E0
[Token(Token = "0x600BB33")]
[Address(RVA = "0x27E8360", Offset = "0x27E7360", VA = "0x1827E8360")]
public DesEdeWrapEngine()
{
Sha1Digest sha1Digest = new Sha1Digest();
this.sha1 = sha1Digest;
byte[] array = new byte[20];
this.digest = array;
base..ctor();
}
// Token: 0x0600BB34 RID: 47924 RVA: 0x00292110 File Offset: 0x00290310
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB34")]
[Address(RVA = "0x27E8300", Offset = "0x27E7300", VA = "0x1827E8300")]
static DesEdeWrapEngine()
{
byte[] array = new byte[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
DesEdeWrapEngine.IV2 = array;
}
// Token: 0x040075FC RID: 30204
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40075FC")]
private CbcBlockCipher engine;
// Token: 0x040075FD RID: 30205
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40075FD")]
private KeyParameter param;
// Token: 0x040075FE RID: 30206
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40075FE")]
private ParametersWithIV paramPlusIV;
// Token: 0x040075FF RID: 30207
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40075FF")]
private byte[] iv;
// Token: 0x04007600 RID: 30208
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007600")]
private bool forWrapping;
// Token: 0x04007601 RID: 30209
[Token(Token = "0x4007601")]
private static readonly byte[] IV2;
// Token: 0x04007602 RID: 30210
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007602")]
private readonly IDigest sha1;
// Token: 0x04007603 RID: 30211
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007603")]
private readonly byte[] digest;
}
}
@@ -0,0 +1,305 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6E RID: 7534
[Token(Token = "0x2001D6E")]
public class DesEngine : IBlockCipher
{
// Token: 0x0600BB35 RID: 47925 RVA: 0x00292138 File Offset: 0x00290338
[Token(Token = "0x600BB35")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "10")]
public virtual int[] GetWorkingKey()
{
return this.workingKey;
}
// Token: 0x0600BB36 RID: 47926 RVA: 0x0029214C File Offset: 0x0029034C
[Token(Token = "0x600BB36")]
[Address(RVA = "0x27E9230", Offset = "0x27E8230", VA = "0x1827E9230", Slot = "11")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB36)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentException(var_6_39, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to DES init - "), ldloc:string(var_5))))
}
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: 0x17001D65 RID: 7525
// (get) Token: 0x0600BB37 RID: 47927 RVA: 0x00292194 File Offset: 0x00290394
[Token(Token = "0x17001D65")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB37")]
[Address(RVA = "0x27E9820", Offset = "0x27E8820", VA = "0x1827E9820", Slot = "12")]
get
{
return "DES";
}
}
// Token: 0x17001D66 RID: 7526
// (get) Token: 0x0600BB38 RID: 47928 RVA: 0x002921A8 File Offset: 0x002903A8
[Token(Token = "0x17001D66")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BB38")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "13")]
get
{
}
}
// Token: 0x0600BB39 RID: 47929 RVA: 0x002921B8 File Offset: 0x002903B8
[Token(Token = "0x600BB39")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BB3A RID: 47930 RVA: 0x002921C8 File Offset: 0x002903C8
[Token(Token = "0x600BB3A")]
[Address(RVA = "0x27E93F0", Offset = "0x27E83F0", VA = "0x1827E93F0", Slot = "15")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB3A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_21:
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DES engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BB3B RID: 47931 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB3B")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "16")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB3C RID: 47932 RVA: 0x00292204 File Offset: 0x00290404
[Token(Token = "0x600BB3C")]
[Address(RVA = "0x27E8B00", Offset = "0x27E7B00", VA = "0x1827E8B00")]
protected static int[] GenerateWorkingKey(bool encrypting, byte[] key)
{
int[] array = new int[32];
bool[] array2 = new bool[56];
bool[] array3 = new bool[56];
int num = 0;
byte[] array4 = DesEngine.pc1;
short[] array5 = DesEngine.bytebit;
num++;
array[0] = num;
array[0] = num;
byte[] array6 = DesEngine.totrot;
int length = array2.Length;
byte b = (byte)((int)b + num);
num++;
byte[] array7 = DesEngine.totrot;
int length2 = array2.Length;
uint num2;
byte b2 = (byte)((uint)b2 + num2);
num2 += (uint)1;
byte b3 = DesEngine.pc2[num];
if ("{il2cpp array field local7->}" != (ulong)0L)
{
int num3 = DesEngine.bigbyte[num];
array[0] = num3;
}
byte[] array8 = DesEngine.pc2;
if ("{il2cpp array field local7->}" != (ulong)0L)
{
int num4 = DesEngine.bigbyte[num];
array[0] = num4;
}
num++;
num++;
uint num5;
if (num5 > (uint)(-2))
{
}
int num6 = 0;
int num7 = array.Length;
int num8;
num7 = num8;
array[0] = num8;
num6 += 2;
array[0] = num7;
while (num6 != 32)
{
}
return array;
}
// Token: 0x0600BB3D RID: 47933 RVA: 0x0029232C File Offset: 0x0029052C
[Token(Token = "0x600BB3D")]
[Address(RVA = "0x27E84B0", Offset = "0x27E74B0", VA = "0x1827E84B0")]
internal static void DesFunc(int[] wKey, byte[] input, int inOff, byte[] outBytes, int outOff)
{
uint num = Pack.BE_To_UInt32(input, inOff);
uint num2 = Pack.BE_To_UInt32(input, inOff);
int num3 = 0;
uint[] sp = DesEngine.SP7;
uint[] sp2 = DesEngine.SP5;
uint[] sp3 = DesEngine.SP3;
uint[] sp4 = DesEngine.SP1;
uint[] sp5 = DesEngine.SP8;
uint[] sp6 = DesEngine.SP6;
uint[] sp7 = DesEngine.SP4;
uint[] sp8 = DesEngine.SP2;
num3 += 4;
}
// Token: 0x0600BB3E RID: 47934 RVA: 0x002923A8 File Offset: 0x002905A8
[Token(Token = "0x600BB3E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public DesEngine()
{
this.Reset();
}
// Token: 0x0600BB3F RID: 47935 RVA: 0x002923BC File Offset: 0x002905BC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB3F")]
[Address(RVA = "0x27E9520", Offset = "0x27E8520", VA = "0x1827E9520")]
static DesEngine()
{
short[] array = new short[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.4FFC8339E09825A68B861995F9C660EB11DBF13D).FieldHandle);
DesEngine.bytebit = array;
int[] array2 = new int[24];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.C105B70BED997DB5D36E1D2E84C1EFCB445A428C).FieldHandle);
DesEngine.bigbyte = array2;
byte[] array3 = new byte[56];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.DC2B830D8CD59AD6A4E4332D21CA0DCA2821AD82).FieldHandle);
DesEngine.pc1 = array3;
byte[] array4 = new byte[16];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B4FBD02AAB5B16E0F4BD858DA5D9E348F3CE501D).FieldHandle);
DesEngine.totrot = array4;
byte[] array5 = new byte[48];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.62BAB0F245E66C3EB982CF5A7015F0A7C3382283).FieldHandle);
DesEngine.pc2 = array5;
uint[] array6 = new uint[64];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.04B9E6B1364BBA4125AE2866E09C57C9E8CD6DA6).FieldHandle);
DesEngine.SP1 = array6;
uint[] array7 = new uint[64];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.3D6EB645BC212077C1B37A3A32CA2A62F7B39018).FieldHandle);
DesEngine.SP2 = array7;
uint[] array8 = new uint[64];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.821D1E62CD072AE9EC73D238C7DE19C5C5F3A7D8).FieldHandle);
DesEngine.SP3 = array8;
uint[] array9 = new uint[64];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.64354464C9074B5BB4369689AAA131961CD1EF19).FieldHandle);
DesEngine.SP4 = array9;
uint[] array10 = new uint[64];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.3F653EBF39CFCB2FD7FF335DC96E82F3CDFDF0C7).FieldHandle);
DesEngine.SP5 = array10;
uint[] array11 = new uint[64];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.6D7292FF64ED402BBFFF5E7534C0980BEBF0EEB1).FieldHandle);
DesEngine.SP6 = array11;
uint[] array12 = new uint[64];
RuntimeHelpers.InitializeArray(array12, fieldof(<PrivateImplementationDetails>.FC9EEBC457831129D4AF4FF84333B481F4BED60E).FieldHandle);
DesEngine.SP7 = array12;
uint[] array13 = new uint[64];
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.4C44594E2C603D85EC6195B1A7A6C5876CBB58E2).FieldHandle);
DesEngine.SP8 = array13;
}
// Token: 0x04007604 RID: 30212
[Token(Token = "0x4007604")]
internal const int BLOCK_SIZE = 8;
// Token: 0x04007605 RID: 30213
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007605")]
private int[] workingKey;
// Token: 0x04007606 RID: 30214
[Token(Token = "0x4007606")]
private static readonly short[] bytebit;
// Token: 0x04007607 RID: 30215
[Token(Token = "0x4007607")]
private static readonly int[] bigbyte;
// Token: 0x04007608 RID: 30216
[Token(Token = "0x4007608")]
private static readonly byte[] pc1;
// Token: 0x04007609 RID: 30217
[Token(Token = "0x4007609")]
private static readonly byte[] totrot;
// Token: 0x0400760A RID: 30218
[Token(Token = "0x400760A")]
private static readonly byte[] pc2;
// Token: 0x0400760B RID: 30219
[Token(Token = "0x400760B")]
private static readonly uint[] SP1;
// Token: 0x0400760C RID: 30220
[Token(Token = "0x400760C")]
private static readonly uint[] SP2;
// Token: 0x0400760D RID: 30221
[Token(Token = "0x400760D")]
private static readonly uint[] SP3;
// Token: 0x0400760E RID: 30222
[Token(Token = "0x400760E")]
private static readonly uint[] SP4;
// Token: 0x0400760F RID: 30223
[Token(Token = "0x400760F")]
private static readonly uint[] SP5;
// Token: 0x04007610 RID: 30224
[Token(Token = "0x4007610")]
private static readonly uint[] SP6;
// Token: 0x04007611 RID: 30225
[Token(Token = "0x4007611")]
private static readonly uint[] SP7;
// Token: 0x04007612 RID: 30226
[Token(Token = "0x4007612")]
private static readonly uint[] SP8;
}
}
@@ -0,0 +1,867 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D6F RID: 7535
[Token(Token = "0x2001D6F")]
public class Dstu7624Engine : IBlockCipher
{
// Token: 0x0600BB40 RID: 47936 RVA: 0x00292528 File Offset: 0x00290728
[Token(Token = "0x600BB40")]
[Address(RVA = "0x27ED920", Offset = "0x27EC920", VA = "0x1827ED920")]
public Dstu7624Engine(int blockSizeBits)
{
/*
An exception occurred when decompiling this method (0600BB40)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_2_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 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: 0x0600BB41 RID: 47937 RVA: 0x00292568 File Offset: 0x00290768
[Token(Token = "0x600BB41")]
[Address(RVA = "0x27EA770", Offset = "0x27E9770", VA = "0x1827EA770", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB41)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A8:
stloc:ArgumentException(var_23_1B2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unsupported key length")))
}
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.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.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.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.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.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: 0x0600BB42 RID: 47938 RVA: 0x00292728 File Offset: 0x00290928
[Token(Token = "0x600BB42")]
[Address(RVA = "0x27ED2F0", Offset = "0x27EC2F0", VA = "0x1827ED2F0")]
private void WorkingKeyExpandKT(ulong[] workingKey, ulong[] tempKeys)
{
do
{
ulong[] array = new ulong[this.wordsInBlock];
ulong[] array2 = new ulong[this.wordsInBlock];
ulong[] array3 = new ulong[this.wordsInBlock];
this.internalState = array3;
int num = this.wordsInBlock;
num++;
int num2 = this.wordsInBlock;
if (num2 != this.wordsInKey)
{
int num3 = 0;
int num4 = 0;
Array.Copy(workingKey, num4, array, num3, num2);
}
int length = array.Length;
int num5 = 0;
int num6 = 0;
Array.Copy(workingKey, num6, array, num5, length);
int length2 = array2.Length;
int num7 = 0;
int num8 = 0;
Array.Copy(workingKey, num7, array2, num8, length2);
ulong[] array4 = this.internalState;
int num9 = 0;
int num10 = 0;
if (num10 < array4.Length)
{
num9++;
ulong[] array5 = this.internalState;
}
this.EncryptionRound();
ulong[] array6 = this.internalState;
int num11 = 0;
int num12 = 0;
if (num12 < array6.Length)
{
num11++;
if (this.internalState != 0)
{
continue;
}
}
this.EncryptionRound();
ulong[] array7 = this.internalState;
int num13 = 0;
int num14 = 0;
if (num14 >= array7.Length)
{
break;
}
num13++;
}
while (this.internalState != 0);
this.EncryptionRound();
int num15 = this.wordsInBlock;
int num16 = 0;
ulong[] array8 = this.internalState;
int num17 = 0;
Array.Copy(array8, num17, tempKeys, num16, num15);
}
// Token: 0x0600BB43 RID: 47939 RVA: 0x00292898 File Offset: 0x00290A98
[Token(Token = "0x600BB43")]
[Address(RVA = "0x27ECD10", Offset = "0x27EBD10", VA = "0x1827ECD10")]
private void WorkingKeyExpandEven(ulong[] workingKey, ulong[] tempKey)
{
ulong[] array;
ulong[] array2;
int num2;
ulong num6;
for (;;)
{
array = new ulong[this.wordsInKey];
array2 = new ulong[this.wordsInBlock];
int num = this.wordsInKey;
num2 = 0;
int num3 = 0;
int num4 = 0;
Array.Copy(workingKey, num4, array, num3, num);
if (this.wordsInBlock > 0)
{
ulong num5 = tempKey[num2];
num2++;
num5 += num6;
array2[0] = num5;
if (this.wordsInBlock > 0)
{
ulong[] array3 = this.internalState;
ulong num7 = array2[num2];
num2++;
array3[0] = num7;
}
this.EncryptionRound();
if (this.T1 > num2)
{
ulong[] array4 = this.internalState;
num2++;
}
this.EncryptionRound();
int num8;
if (this.wordsInBlock > 0)
{
ulong[] array5 = this.internalState;
num2++;
num8 = this.wordsInBlock;
}
ulong[][] array6 = this.roundKeys;
int num9 = 0;
int num10 = 0;
ulong[] array7 = array6[num2];
Array.Copy(this.internalState, num10, array7, num9, num8);
if (this.T2 == num2)
{
return;
}
int num11 = this.wordsInBlock;
if (this.wordsInKey == num11)
{
goto IL_1DE;
}
num2 += 2;
num6 += num6;
if (num11 > 0)
{
break;
}
}
}
ulong num12 = tempKey[num2];
num2++;
num12 += num6;
array2[0] = num12;
if (this.wordsInBlock > 0)
{
ulong[] array8 = this.internalState;
num2++;
ulong num13 = array[(int)num12];
array8[0] = num13;
int num14 = this.wordsInBlock;
}
this.EncryptionRound();
if (this.T1 > num2)
{
ulong[] array9 = this.internalState;
num2++;
}
this.EncryptionRound();
int num15;
if (this.wordsInBlock > 0)
{
ulong[] array10 = this.internalState;
num2++;
num15 = this.wordsInBlock;
}
ulong[][] array11 = this.roundKeys;
int num16 = 0;
int num17 = 0;
ulong[] array12 = array11[num2];
Array.Copy(this.internalState, num17, array12, num16, num15);
if (this.T2 == num2)
{
return;
}
IL_1DE:
num2 += 2;
num6 += num6;
ulong num18 = array[0];
int length = array.Length;
uint num19;
ulong num21;
if (num19 < (uint)length)
{
uint num20 = num19 - 1U;
num21 = array[(int)num19];
num19 += (uint)1;
array[0] = num21;
}
ulong num22 = num21 - 1UL;
array[0] = num18;
}
// Token: 0x0600BB44 RID: 47940 RVA: 0x00292ADC File Offset: 0x00290CDC
[Token(Token = "0x600BB44")]
[Address(RVA = "0x27ED610", Offset = "0x27EC610", VA = "0x1827ED610")]
private void WorkingKeyExpandOdd()
{
uint num;
if (this.T2 > num)
{
ulong[][] array = this.roundKeys;
int length = array.Length;
uint num2 = num - 1U;
ulong[] array2 = array[(int)num];
ulong[] array3 = array[(int)num2];
this.RotateLeft(array3, array2);
num += (uint)2;
}
}
// Token: 0x0600BB45 RID: 47941 RVA: 0x00292B2C File Offset: 0x00290D2C
[Token(Token = "0x600BB45")]
[Address(RVA = "0x27EBAA0", Offset = "0x27EAAA0", VA = "0x1827EBAA0", Slot = "11")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB45)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12B:
stloc:InvalidOperationException(var_21_135, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Dstu7624Engine 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.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: 0x0600BB46 RID: 47942 RVA: 0x00292C70 File Offset: 0x00290E70
[Token(Token = "0x600BB46")]
[Address(RVA = "0x27EA670", Offset = "0x27E9670", VA = "0x1827EA670")]
private void EncryptionRound()
{
this.SubBytes();
this.ShiftRows();
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600BB47 RID: 47943 RVA: 0x00292CBC File Offset: 0x00290EBC
[Token(Token = "0x600BB47")]
[Address(RVA = "0x27E9F20", Offset = "0x27E8F20", VA = "0x1827E9F20")]
private void DecryptionRound()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num3;
ulong num2 = Dstu7624Engine.MixColumnInv(num3);
num++;
}
this.InvShiftRows();
this.InvSubBytes();
}
// Token: 0x0600BB48 RID: 47944 RVA: 0x00292CF8 File Offset: 0x00290EF8
[Token(Token = "0x600BB48")]
[Address(RVA = "0x27E98E0", Offset = "0x27E88E0", VA = "0x1827E98E0")]
private void DecryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
{
ulong num = Pack.LE_To_UInt64(input, inOff);
ulong num2 = Pack.LE_To_UInt64(input, inOff);
ulong[][] array = this.roundKeys;
int num3 = this.roundsAmount;
int length = array[num3].Length;
ulong num4 = Dstu7624Engine.MixColumnInv(num);
num = num2;
ulong num5 = Dstu7624Engine.MixColumnInv(num);
int length2 = Dstu7624Engine.T0.Length;
int length3 = Dstu7624Engine.T1.Length;
int length4 = Dstu7624Engine.T2.Length;
byte[] t = Dstu7624Engine.T3;
int length5 = t.Length;
if (num4 != (ulong)t.Length)
{
}
byte b;
byte b2;
b -= b2;
b2 = b;
byte b3;
b2 = b3;
}
// Token: 0x0600BB49 RID: 47945 RVA: 0x00292DB8 File Offset: 0x00290FB8
[Token(Token = "0x600BB49")]
[Address(RVA = "0x27EA020", Offset = "0x27E9020", VA = "0x1827EA020")]
private void EncryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
{
ulong num = Pack.LE_To_UInt64(input, inOff);
ulong num2 = Pack.LE_To_UInt64(input, inOff);
int length = this.roundKeys[0].Length;
int length2 = Dstu7624Engine.S0.Length;
int length3 = Dstu7624Engine.S1.Length;
int length4 = Dstu7624Engine.S2.Length;
int length5 = Dstu7624Engine.S3.Length;
byte b;
num = Dstu7624Engine.MixColumn((ulong)b);
byte b2;
b = b2;
ulong num3 = Dstu7624Engine.MixColumn((ulong)b);
ulong num4;
num4 += (ulong)1L;
if (num4 != num3)
{
}
b = (byte)((ulong)b + num);
}
// Token: 0x0600BB4A RID: 47946 RVA: 0x00292E50 File Offset: 0x00291050
[Token(Token = "0x600BB4A")]
[Address(RVA = "0x27EC960", Offset = "0x27EB960", VA = "0x1827EC960")]
private void SubBytes()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
int length = Dstu7624Engine.S0.Length;
int length2 = Dstu7624Engine.S1.Length;
int length3 = Dstu7624Engine.S2.Length;
int length4 = Dstu7624Engine.S3.Length;
ulong[] array2 = this.internalState;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x0600BB4B RID: 47947 RVA: 0x00292EB8 File Offset: 0x002910B8
[Token(Token = "0x600BB4B")]
[Address(RVA = "0x27EB200", Offset = "0x27EA200", VA = "0x1827EB200")]
private void InvSubBytes()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
int length = Dstu7624Engine.T0.Length;
int length2 = Dstu7624Engine.T1.Length;
int length3 = Dstu7624Engine.T2.Length;
int length4 = Dstu7624Engine.T3.Length;
ulong[] array2 = this.internalState;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x0600BB4C RID: 47948 RVA: 0x00292F20 File Offset: 0x00291120
[Token(Token = "0x600BB4C")]
[Address(RVA = "0x27EC2D0", Offset = "0x27EB2D0", VA = "0x1827EC2D0")]
private void ShiftRows()
{
/*
An exception occurred when decompiling this method (0600BB4C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ShiftRows()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_145:
stloc:InvalidOperationException(var_14_14F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 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: 0x0600BB4D RID: 47949 RVA: 0x00293080 File Offset: 0x00291280
[Token(Token = "0x600BB4D")]
[Address(RVA = "0x27EAB80", Offset = "0x27E9B80", VA = "0x1827EAB80")]
private void InvShiftRows()
{
/*
An exception occurred when decompiling this method (0600BB4D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::InvShiftRows()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_161:
stloc:InvalidOperationException(var_18_16B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 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: 0x0600BB4E RID: 47950 RVA: 0x002931FC File Offset: 0x002913FC
[Token(Token = "0x600BB4E")]
[Address(RVA = "0x27E9850", Offset = "0x27E8850", VA = "0x1827E9850")]
private void AddRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600BB4F RID: 47951 RVA: 0x00293234 File Offset: 0x00291434
[Token(Token = "0x600BB4F")]
[Address(RVA = "0x27ECC80", Offset = "0x27EBC80", VA = "0x1827ECC80")]
private void SubRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600BB50 RID: 47952 RVA: 0x0029326C File Offset: 0x0029146C
[Token(Token = "0x600BB50")]
[Address(RVA = "0x27ED6A0", Offset = "0x27EC6A0", VA = "0x1827ED6A0")]
private void XorRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600BB51 RID: 47953 RVA: 0x002932A4 File Offset: 0x002914A4
[Token(Token = "0x600BB51")]
[Address(RVA = "0x27EB730", Offset = "0x27EA730", VA = "0x1827EB730")]
private static ulong MixColumn(ulong c)
{
return c;
}
// Token: 0x0600BB52 RID: 47954 RVA: 0x002932B4 File Offset: 0x002914B4
[Token(Token = "0x600BB52")]
[Address(RVA = "0x27EB940", Offset = "0x27EA940", VA = "0x1827EB940")]
private void MixColumns()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600BB53 RID: 47955 RVA: 0x002932F4 File Offset: 0x002914F4
[Token(Token = "0x600BB53")]
[Address(RVA = "0x27EB520", Offset = "0x27EA520", VA = "0x1827EB520")]
private static ulong MixColumnInv(ulong c)
{
/*
An exception occurred when decompiling this method (0600BB53)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MixColumnInv(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
stloc:int64(var_0_0A, add:int64(ldloc:int64(var_0_06), ldloc:int64(var_0_06)))
stloc:int64(var_1_11, mul:int64(ldloc:int64(var_0_0A), conv.u8:uint64[exp:int64](ldc.i8:int64[exp:uint64](29))))
stloc:int64(var_1_15, add:int64(ldloc:int64(var_1_11), ldloc:int64(var_1_11)))
stloc:int64(var_2_1C, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600BB54 RID: 47956 RVA: 0x00293320 File Offset: 0x00291520
[Token(Token = "0x600BB54")]
[Address(RVA = "0x27EB860", Offset = "0x27EA860", VA = "0x1827EB860")]
private void MixColumnsInv()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumnInv(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600BB55 RID: 47957 RVA: 0x00293360 File Offset: 0x00291560
[Token(Token = "0x600BB55")]
[Address(RVA = "0x27EBA70", Offset = "0x27EAA70", VA = "0x1827EBA70")]
private static ulong MulX(ulong n)
{
/*
An exception occurred when decompiling this method (0600BB55)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600BB56 RID: 47958 RVA: 0x00293374 File Offset: 0x00291574
[Token(Token = "0x600BB56")]
[Address(RVA = "0x27EBA20", Offset = "0x27EAA20", VA = "0x1827EBA20")]
private static ulong MulX2(ulong n)
{
/*
An exception occurred when decompiling this method (0600BB56)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX2(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600BB57 RID: 47959 RVA: 0x00293388 File Offset: 0x00291588
[Token(Token = "0x600BB57")]
[Address(RVA = "0x259EB00", Offset = "0x259DB00", VA = "0x18259EB00")]
private static ulong Rotate(int n, ulong x)
{
return x;
}
// Token: 0x0600BB58 RID: 47960 RVA: 0x00293398 File Offset: 0x00291598
[Token(Token = "0x600BB58")]
[Address(RVA = "0x27EBDE0", Offset = "0x27EADE0", VA = "0x1827EBDE0")]
private void RotateLeft(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600BB58)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::RotateLeft(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_140:
stloc:InvalidOperationException(var_17_14A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 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: 0x17001D67 RID: 7527
// (get) Token: 0x0600BB59 RID: 47961 RVA: 0x002934F0 File Offset: 0x002916F0
[Token(Token = "0x17001D67")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB59")]
[Address(RVA = "0x27ED9D0", Offset = "0x27EC9D0", VA = "0x1827ED9D0", Slot = "12")]
get
{
return "DSTU7624";
}
}
// Token: 0x0600BB5A RID: 47962 RVA: 0x00293504 File Offset: 0x00291704
[Token(Token = "0x600BB5A")]
[Address(RVA = "0x27EA760", Offset = "0x27E9760", VA = "0x1827EA760", Slot = "13")]
public virtual int GetBlockSize()
{
return this.wordsInBlock;
}
// Token: 0x17001D68 RID: 7528
// (get) Token: 0x0600BB5B RID: 47963 RVA: 0x00293518 File Offset: 0x00291718
[Token(Token = "0x17001D68")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BB5B")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "14")]
get
{
}
}
// Token: 0x0600BB5C RID: 47964 RVA: 0x00293528 File Offset: 0x00291728
[Token(Token = "0x600BB5C")]
[Address(RVA = "0x27EBDB0", Offset = "0x27EADB0", VA = "0x1827EBDB0", Slot = "15")]
public virtual void Reset()
{
ulong[] array = this.internalState;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
}
// Token: 0x0600BB5D RID: 47965 RVA: 0x00293554 File Offset: 0x00291754
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB5D")]
[Address(RVA = "0x27ED730", Offset = "0x27EC730", VA = "0x1827ED730")]
static Dstu7624Engine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6F5D2C37DFCDB1E72B86BC606C0E717C70E188A4).FieldHandle);
Dstu7624Engine.S0 = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79039C5C22F863E8EAE0E08E1318F343680E50A8).FieldHandle);
Dstu7624Engine.S1 = array2;
byte[] array3 = new byte[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.340B4B55E1DFD4BADC69CA57007FC1A4CDBA7943).FieldHandle);
Dstu7624Engine.S2 = array3;
byte[] array4 = new byte[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.5CFF612F2058DE2C287ECA5C6407ECC471F65576).FieldHandle);
Dstu7624Engine.S3 = array4;
byte[] array5 = new byte[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.C1C8DE48D8C0FA876F4ED0086BB93D7EAF61E4B2).FieldHandle);
Dstu7624Engine.T0 = array5;
byte[] array6 = new byte[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.9F198D04FF67738AE583484145F45103ECE550CC).FieldHandle);
Dstu7624Engine.T1 = array6;
byte[] array7 = new byte[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.C2443D9DBCD3810F90475C6F404BEDCFEF58661E).FieldHandle);
Dstu7624Engine.T2 = array7;
byte[] array8 = new byte[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.BD0C733AC85AB335526865FA6269790347865705).FieldHandle);
Dstu7624Engine.T3 = array8;
}
// Token: 0x04007613 RID: 30227
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007613")]
private ulong[] internalState;
// Token: 0x04007614 RID: 30228
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007614")]
private ulong[] workingKey;
// Token: 0x04007615 RID: 30229
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007615")]
private ulong[][] roundKeys;
// Token: 0x04007616 RID: 30230
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007616")]
private int wordsInBlock;
// Token: 0x04007617 RID: 30231
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007617")]
private int wordsInKey;
// Token: 0x04007618 RID: 30232
[Token(Token = "0x4007618")]
private const int ROUNDS_128 = 10;
// Token: 0x04007619 RID: 30233
[Token(Token = "0x4007619")]
private const int ROUNDS_256 = 14;
// Token: 0x0400761A RID: 30234
[Token(Token = "0x400761A")]
private const int ROUNDS_512 = 18;
// Token: 0x0400761B RID: 30235
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400761B")]
private int roundsAmount;
// Token: 0x0400761C RID: 30236
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x400761C")]
private bool forEncryption;
// Token: 0x0400761D RID: 30237
[Token(Token = "0x400761D")]
private const ulong mdsMatrix = 290207332435296513UL;
// Token: 0x0400761E RID: 30238
[Token(Token = "0x400761E")]
private const ulong mdsInvMatrix = 14616231584692868525UL;
// Token: 0x0400761F RID: 30239
[Token(Token = "0x400761F")]
private static readonly byte[] S0;
// Token: 0x04007620 RID: 30240
[Token(Token = "0x4007620")]
private static readonly byte[] S1;
// Token: 0x04007621 RID: 30241
[Token(Token = "0x4007621")]
private static readonly byte[] S2;
// Token: 0x04007622 RID: 30242
[Token(Token = "0x4007622")]
private static readonly byte[] S3;
// Token: 0x04007623 RID: 30243
[Token(Token = "0x4007623")]
private static readonly byte[] T0;
// Token: 0x04007624 RID: 30244
[Token(Token = "0x4007624")]
private static readonly byte[] T1;
// Token: 0x04007625 RID: 30245
[Token(Token = "0x4007625")]
private static readonly byte[] T2;
// Token: 0x04007626 RID: 30246
[Token(Token = "0x4007626")]
private static readonly byte[] T3;
}
}
@@ -0,0 +1,157 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D70 RID: 7536
[Token(Token = "0x2001D70")]
public class Dstu7624WrapEngine : IWrapper
{
// Token: 0x0600BB5E RID: 47966 RVA: 0x00293650 File Offset: 0x00291850
[Token(Token = "0x600BB5E")]
[Address(RVA = "0x27EE960", Offset = "0x27ED960", VA = "0x1827EE960")]
public Dstu7624WrapEngine(int blockSizeBits)
{
/*
An exception occurred when decompiling this method (0600BB5E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4A:
stloc:ArgumentException(var_3_54, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 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: 0x17001D69 RID: 7529
// (get) Token: 0x0600BB5F RID: 47967 RVA: 0x002936B4 File Offset: 0x002918B4
[Token(Token = "0x17001D69")]
public string AlgorithmName
{
[Token(Token = "0x600BB5F")]
[Address(RVA = "0x27EEA60", Offset = "0x27EDA60", VA = "0x1827EEA60", Slot = "4")]
get
{
return "Dstu7624WrapEngine";
}
}
// Token: 0x0600BB60 RID: 47968 RVA: 0x002936C8 File Offset: 0x002918C8
[Token(Token = "0x600BB60")]
[Address(RVA = "0x27EDA00", Offset = "0x27ECA00", VA = "0x1827EDA00", Slot = "5")]
public void Init(bool forWrapping, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB60)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2D:
stloc:ArgumentException(var_4_37, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Bad parameters passed to Dstu7624WrapEngine")))
}
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: 0x0600BB61 RID: 47969 RVA: 0x00293710 File Offset: 0x00291910
[Token(Token = "0x600BB61")]
[Address(RVA = "0x27EE2B0", Offset = "0x27ED2B0", VA = "0x1827EE2B0", Slot = "6")]
public byte[] Wrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BB61)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_289:
stloc:InvalidOperationException(var_43_293, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not set for wrapping")))
}
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: 0x0600BB62 RID: 47970 RVA: 0x002939B4 File Offset: 0x00291BB4
[Token(Token = "0x600BB62")]
[Address(RVA = "0x27EDB30", Offset = "0x27ECB30", VA = "0x1827EDB30", Slot = "7")]
public byte[] Unwrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BB62)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_292:
stloc:InvalidCipherTextException(var_44_29C, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("checksum failed")))
}
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.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: 0x04007627 RID: 30247
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007627")]
private KeyParameter param;
// Token: 0x04007628 RID: 30248
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007628")]
private Dstu7624Engine engine;
// Token: 0x04007629 RID: 30249
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007629")]
private bool forWrapping;
// Token: 0x0400762A RID: 30250
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400762A")]
private int blockSize;
}
}
@@ -0,0 +1,132 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D71 RID: 7537
[Token(Token = "0x2001D71")]
public class ElGamalEngine : IAsymmetricBlockCipher
{
// Token: 0x17001D6A RID: 7530
// (get) Token: 0x0600BB63 RID: 47971 RVA: 0x00293C60 File Offset: 0x00291E60
[Token(Token = "0x17001D6A")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB63")]
[Address(RVA = "0x27EF2F0", Offset = "0x27EE2F0", VA = "0x1827EF2F0", Slot = "9")]
get
{
return "ElGamal";
}
}
// Token: 0x0600BB64 RID: 47972 RVA: 0x00293C74 File Offset: 0x00291E74
[Token(Token = "0x600BB64")]
[Address(RVA = "0x27EEAF0", Offset = "0x27EDAF0", VA = "0x1827EEAF0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB64)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_BD:
stloc:ArgumentException(var_13_C7, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ElGamalPublicKeyParameters are required for encryption.")))
}
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: 0x0600BB65 RID: 47973 RVA: 0x00293D4C File Offset: 0x00291F4C
[Token(Token = "0x600BB65")]
[Address(RVA = "0x27EEA90", Offset = "0x27EDA90", VA = "0x1827EEA90", Slot = "11")]
public virtual int GetInputBlockSize()
{
int num = this.bitSize;
if (!this.forEncryption)
{
num += 7;
return num + num;
}
return num;
}
// Token: 0x0600BB66 RID: 47974 RVA: 0x00293D74 File Offset: 0x00291F74
[Token(Token = "0x600BB66")]
[Address(RVA = "0x27EEAC0", Offset = "0x27EDAC0", VA = "0x1827EEAC0", Slot = "12")]
public virtual int GetOutputBlockSize()
{
int num = this.bitSize;
if (!this.forEncryption)
{
return num;
}
num += 7;
return num + num;
}
// Token: 0x0600BB67 RID: 47975 RVA: 0x00293D9C File Offset: 0x00291F9C
[Token(Token = "0x600BB67")]
[Address(RVA = "0x27EEDE0", Offset = "0x27EDDE0", VA = "0x1827EEDE0", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BB67)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::ProcessBlock(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_16D:
stloc:DataLengthException(var_33_177, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("input too large for ElGamal cipher.\n")))
}
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: 0x0600BB68 RID: 47976 RVA: 0x00293F24 File Offset: 0x00292124
[Token(Token = "0x600BB68")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public ElGamalEngine()
{
}
// Token: 0x0400762B RID: 30251
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400762B")]
private ElGamalKeyParameters key;
// Token: 0x0400762C RID: 30252
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400762C")]
private SecureRandom random;
// Token: 0x0400762D RID: 30253
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400762D")]
private bool forEncryption;
// Token: 0x0400762E RID: 30254
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400762E")]
private int bitSize;
}
}
@@ -0,0 +1,398 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D72 RID: 7538
[Token(Token = "0x2001D72")]
public class Gost28147Engine : IBlockCipher
{
// Token: 0x0600BB69 RID: 47977 RVA: 0x00293F38 File Offset: 0x00292138
[Token(Token = "0x600BB69")]
[Address(RVA = "0x27F0300", Offset = "0x27EF300", VA = "0x1827F0300")]
static Gost28147Engine()
{
byte[] array = new byte[128];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
Gost28147Engine.Sbox_Default = array;
byte[] array2 = new byte[128];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.CC53D7FE00E6AC1385AF09521629229467BCCC86).FieldHandle);
Gost28147Engine.ESbox_Test = array2;
byte[] array3 = new byte[128];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.2BA9E4B370D477F8C7FE286262D7ADC69CAF290E).FieldHandle);
Gost28147Engine.ESbox_A = array3;
byte[] array4 = new byte[128];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.1005BA20F99323E3F050E781BB81D1A4479AB037).FieldHandle);
Gost28147Engine.ESbox_B = array4;
byte[] array5 = new byte[128];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.E17D18DCD8392C99D47823F8CB9F43896D115FB8).FieldHandle);
Gost28147Engine.ESbox_C = array5;
byte[] array6 = new byte[128];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.7CFF7A50C8F8981091791CDB210243E8F465BC80).FieldHandle);
Gost28147Engine.ESbox_D = array6;
byte[] array7 = new byte[128];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
Gost28147Engine.DSbox_Test = array7;
byte[] array8 = new byte[128];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.3A38ADC6BCFB84DE23160C1E50212DACBCD25A11).FieldHandle);
Gost28147Engine.DSbox_A = array8;
Gost28147Engine.sBoxes = Platform.CreateHashtable();
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
Gost28147Engine.AddSBox("Default", sbox_Default);
byte[] esbox_Test = Gost28147Engine.ESbox_Test;
Gost28147Engine.AddSBox("E-TEST", esbox_Test);
byte[] esbox_A = Gost28147Engine.ESbox_A;
Gost28147Engine.AddSBox("E-A", esbox_A);
byte[] esbox_B = Gost28147Engine.ESbox_B;
Gost28147Engine.AddSBox("E-B", esbox_B);
byte[] esbox_C = Gost28147Engine.ESbox_C;
Gost28147Engine.AddSBox("E-C", esbox_C);
byte[] esbox_D = Gost28147Engine.ESbox_D;
Gost28147Engine.AddSBox("E-D", esbox_D);
byte[] dsbox_Test = Gost28147Engine.DSbox_Test;
Gost28147Engine.AddSBox("D-TEST", dsbox_Test);
byte[] dsbox_A = Gost28147Engine.DSbox_A;
Gost28147Engine.AddSBox("D-A", dsbox_A);
}
// Token: 0x0600BB6A RID: 47978 RVA: 0x002940D8 File Offset: 0x002922D8
[Token(Token = "0x600BB6A")]
[Address(RVA = "0x27EF320", Offset = "0x27EE320", VA = "0x1827EF320")]
private static void AddSBox(string sBoxName, byte[] sBox)
{
IDictionary dictionary = Gost28147Engine.sBoxes;
string text = Platform.ToUpperInvariant(sBoxName);
int num = 0;
num += num;
num++;
object obj = dictionary[text];
}
// Token: 0x0600BB6B RID: 47979 RVA: 0x00294110 File Offset: 0x00292310
[Token(Token = "0x600BB6B")]
[Address(RVA = "0x27F0630", Offset = "0x27EF630", VA = "0x1827F0630")]
public Gost28147Engine()
{
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
this.S = sbox_Default;
this.Reset();
}
// Token: 0x0600BB6C RID: 47980 RVA: 0x00294130 File Offset: 0x00292330
[Token(Token = "0x600BB6C")]
[Address(RVA = "0x27EFEF0", Offset = "0x27EEEF0", VA = "0x1827EFEF0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB6C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_62:
stloc:ArgumentException(var_11_6C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid S-box passed to GOST28147 init")))
}
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: 0x17001D6B RID: 7531
// (get) Token: 0x0600BB6D RID: 47981 RVA: 0x002941AC File Offset: 0x002923AC
[Token(Token = "0x17001D6B")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB6D")]
[Address(RVA = "0x27F07B0", Offset = "0x27EF7B0", VA = "0x1827F07B0", Slot = "11")]
get
{
return "Gost28147";
}
}
// Token: 0x17001D6C RID: 7532
// (get) Token: 0x0600BB6E RID: 47982 RVA: 0x002941C0 File Offset: 0x002923C0
[Token(Token = "0x17001D6C")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BB6E")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BB6F RID: 47983 RVA: 0x002941D0 File Offset: 0x002923D0
[Token(Token = "0x600BB6F")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BB70 RID: 47984 RVA: 0x002941E0 File Offset: 0x002923E0
[Token(Token = "0x600BB70")]
[Address(RVA = "0x27F01F0", Offset = "0x27EF1F0", VA = "0x1827F01F0", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB70)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A:
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Gost28147 engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BB71 RID: 47985 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB71")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB72 RID: 47986 RVA: 0x00294214 File Offset: 0x00292414
[Token(Token = "0x600BB72")]
[Address(RVA = "0x27F06A0", Offset = "0x27EF6A0", VA = "0x1827F06A0")]
private int[] generateWorkingKey(bool forEncryption, byte[] userKey)
{
/*
An exception occurred when decompiling this method (0600BB72)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::generateWorkingKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_32:
stloc:ArgumentException(var_2_3C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Key length invalid. Key needs to be 32 byte - 256 bit!!!")))
}
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: 0x0600BB73 RID: 47987 RVA: 0x00294260 File Offset: 0x00292460
[Token(Token = "0x600BB73")]
[Address(RVA = "0x27EFCB0", Offset = "0x27EECB0", VA = "0x1827EFCB0")]
private int Gost28147_mainStep(int n1, int key)
{
int length = this.S.Length;
byte b;
byte b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b2 = b;
throw new NullReferenceException();
}
// Token: 0x0600BB74 RID: 47988 RVA: 0x0029429C File Offset: 0x0029249C
[Token(Token = "0x600BB74")]
[Address(RVA = "0x27EF910", Offset = "0x27EE910", VA = "0x1827EF910")]
private void Gost28147Func(int[] workingKey, byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
int num = 0;
if ((this.forEncryption ? 1 : 0) == num)
{
int num2 = workingKey[num];
int num3 = this.Gost28147_mainStep(inOff, num2);
num++;
uint num4;
if (num != 2 || num4 != (uint)0)
{
int num5 = workingKey[(int)num4];
num3 = this.Gost28147_mainStep(inOff, num5);
}
num++;
}
int num6 = workingKey[num];
int num7 = this.Gost28147_mainStep(inOff, num6);
num++;
num++;
uint num9;
int num8 = workingKey[(int)num9];
num7 = this.Gost28147_mainStep(inOff, num8);
int num10 = workingKey[0];
int num11 = this.Gost28147_mainStep(inOff, num10);
}
// Token: 0x0600BB75 RID: 47989 RVA: 0x0029434C File Offset: 0x0029254C
[Token(Token = "0x600BB75")]
[Address(RVA = "0x25BC480", Offset = "0x25BB480", VA = "0x1825BC480")]
private static int bytesToint(byte[] inBytes, int inOff)
{
int length = inBytes.Length;
byte b = inBytes[inBytes];
byte b2 = inBytes[inBytes];
int num = inOff + 1;
b += b2;
b += b2;
byte b3;
b += b3;
throw new NullReferenceException();
}
// Token: 0x0600BB76 RID: 47990 RVA: 0x00294388 File Offset: 0x00292588
[Token(Token = "0x600BB76")]
[Address(RVA = "0x25BC9C0", Offset = "0x25BB9C0", VA = "0x1825BC9C0")]
private static void intTobytes(int num, byte[] outBytes, int outOff)
{
int num2 = outOff + 1;
}
// Token: 0x0600BB77 RID: 47991 RVA: 0x002943A0 File Offset: 0x002925A0
[Token(Token = "0x600BB77")]
[Address(RVA = "0x27EF7D0", Offset = "0x27EE7D0", VA = "0x1827EF7D0")]
public static byte[] GetSBox(string sBoxName)
{
/*
An exception occurred when decompiling this method (0600BB77)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBox(System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1D:
stloc:ArgumentException(var_3_27, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unknown S-Box - possible types: \"Default\", \"E-Test\", \"E-A\", \"E-B\", \"E-C\", \"E-D\", \"D-Test\", \"D-A\".")))
}
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: 0x0600BB78 RID: 47992 RVA: 0x002943D4 File Offset: 0x002925D4
[Token(Token = "0x600BB78")]
[Address(RVA = "0x27EF450", Offset = "0x27EE450", VA = "0x1827EF450")]
public static string GetSBoxName(byte[] sBox)
{
/*
An exception occurred when decompiling this method (0600BB78)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBoxName(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_72:
stloc:ArgumentException(var_8_7C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SBOX provided did not map to a known one")))
}
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: 0x0400762F RID: 30255
[Token(Token = "0x400762F")]
private const int BlockSize = 8;
// Token: 0x04007630 RID: 30256
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007630")]
private int[] workingKey;
// Token: 0x04007631 RID: 30257
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007631")]
private bool forEncryption;
// Token: 0x04007632 RID: 30258
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007632")]
private byte[] S;
// Token: 0x04007633 RID: 30259
[Token(Token = "0x4007633")]
private static readonly byte[] Sbox_Default;
// Token: 0x04007634 RID: 30260
[Token(Token = "0x4007634")]
private static readonly byte[] ESbox_Test;
// Token: 0x04007635 RID: 30261
[Token(Token = "0x4007635")]
private static readonly byte[] ESbox_A;
// Token: 0x04007636 RID: 30262
[Token(Token = "0x4007636")]
private static readonly byte[] ESbox_B;
// Token: 0x04007637 RID: 30263
[Token(Token = "0x4007637")]
private static readonly byte[] ESbox_C;
// Token: 0x04007638 RID: 30264
[Token(Token = "0x4007638")]
private static readonly byte[] ESbox_D;
// Token: 0x04007639 RID: 30265
[Token(Token = "0x4007639")]
private static readonly byte[] DSbox_Test;
// Token: 0x0400763A RID: 30266
[Token(Token = "0x400763A")]
private static readonly byte[] DSbox_A;
// Token: 0x0400763B RID: 30267
[Token(Token = "0x400763B")]
private static readonly IDictionary sBoxes;
}
}
@@ -0,0 +1,343 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D73 RID: 7539
[Token(Token = "0x2001D73")]
public class HC128Engine : IStreamCipher
{
// Token: 0x0600BB79 RID: 47993 RVA: 0x00294460 File Offset: 0x00292660
[Token(Token = "0x600BB79")]
[Address(RVA = "0x27F07F0", Offset = "0x27EF7F0", VA = "0x1827F07F0")]
private static uint F1(uint x)
{
return x;
}
// Token: 0x0600BB7A RID: 47994 RVA: 0x00294470 File Offset: 0x00292670
[Token(Token = "0x600BB7A")]
[Address(RVA = "0x27F0820", Offset = "0x27EF820", VA = "0x1827F0820")]
private static uint F2(uint x)
{
return x;
}
// Token: 0x0600BB7B RID: 47995 RVA: 0x00294480 File Offset: 0x00292680
[Token(Token = "0x600BB7B")]
[Address(RVA = "0x27F0850", Offset = "0x27EF850", VA = "0x1827F0850")]
private uint G1(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB7C RID: 47996 RVA: 0x00294490 File Offset: 0x00292690
[Token(Token = "0x600BB7C")]
[Address(RVA = "0x27F0880", Offset = "0x27EF880", VA = "0x1827F0880")]
private uint G2(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB7D RID: 47997 RVA: 0x002944A0 File Offset: 0x002926A0
[Token(Token = "0x600BB7D")]
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
private static uint RotateLeft(uint x, int bits)
{
return x;
}
// Token: 0x0600BB7E RID: 47998 RVA: 0x002944B0 File Offset: 0x002926B0
[Token(Token = "0x600BB7E")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static uint RotateRight(uint x, int bits)
{
return x;
}
// Token: 0x0600BB7F RID: 47999 RVA: 0x002944C0 File Offset: 0x002926C0
[Token(Token = "0x600BB7F")]
[Address(RVA = "0x27F0920", Offset = "0x27EF920", VA = "0x1827F0920")]
private uint H1(uint x)
{
uint[] array = this.q;
int length = array.Length;
uint num = array[(int)x];
uint num2 = array[(int)x];
return num2 + num;
}
// Token: 0x0600BB80 RID: 48000 RVA: 0x002944F8 File Offset: 0x002926F8
[Token(Token = "0x600BB80")]
[Address(RVA = "0x27F0990", Offset = "0x27EF990", VA = "0x1827F0990")]
private uint H2(uint x)
{
uint[] array = this.p;
int length = array.Length;
uint num = array[(int)x];
uint num2 = array[(int)x];
return num2 + num;
}
// Token: 0x0600BB81 RID: 48001 RVA: 0x00294530 File Offset: 0x00292730
[Token(Token = "0x600BB81")]
[Address(RVA = "0x27F1130", Offset = "0x27F0130", VA = "0x1827F1130")]
private static uint Mod1024(uint x)
{
return x;
}
// Token: 0x0600BB82 RID: 48002 RVA: 0x00294540 File Offset: 0x00292740
[Token(Token = "0x600BB82")]
[Address(RVA = "0x27F1140", Offset = "0x27F0140", VA = "0x1827F1140")]
private static uint Mod512(uint x)
{
return x;
}
// Token: 0x0600BB83 RID: 48003 RVA: 0x00294550 File Offset: 0x00292750
[Token(Token = "0x600BB83")]
[Address(RVA = "0x27F07E0", Offset = "0x27EF7E0", VA = "0x1827F07E0")]
private static uint Dim(uint x, uint y)
{
return x;
}
// Token: 0x0600BB84 RID: 48004 RVA: 0x00294560 File Offset: 0x00292760
[Token(Token = "0x600BB84")]
[Address(RVA = "0x27F13C0", Offset = "0x27F03C0", VA = "0x1827F13C0")]
private uint Step()
{
uint num = this.cnt;
uint[] array = this.q;
int length = array.Length;
uint num2 = num + 1U;
uint num3 = array[(int)num2];
uint num4;
num3 += num4;
uint num5;
num5 += num3;
uint[] array2 = this.q;
int length2 = array2.Length;
uint[] array3 = this.p;
int length3 = array3.Length;
num3 += (uint)256;
uint num6 = array3[(int)num3];
int length4 = array3.Length;
uint num7 = array3[(int)num6];
uint num8 = num + 1U;
uint num9 = array3[(int)num8];
uint num10;
num9 += num10;
num7 += num9;
array2.m_value = num7;
int length5 = this.p.Length;
uint[] array4 = this.q;
int length6 = array4.Length;
uint num11 = array4[(int)num9];
num9 += (uint)256;
uint num12 = array4[(int)num9];
num12 += num11;
uint num13 = this.cnt;
num13 += (uint)1;
this.cnt = num13;
return num12;
}
// Token: 0x0600BB85 RID: 48005 RVA: 0x00294678 File Offset: 0x00292878
[Token(Token = "0x600BB85")]
[Address(RVA = "0x27F0A00", Offset = "0x27EFA00", VA = "0x1827F0A00")]
private void Init()
{
/*
An exception occurred when decompiling this method (0600BB85)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12B:
stloc:ArgumentException(var_26_135, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128 bits long")))
}
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: 0x17001D6D RID: 7533
// (get) Token: 0x0600BB86 RID: 48006 RVA: 0x002947BC File Offset: 0x002929BC
[Token(Token = "0x17001D6D")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB86")]
[Address(RVA = "0x27F1800", Offset = "0x27F0800", VA = "0x1827F1800", Slot = "9")]
get
{
return "HC-128";
}
}
// Token: 0x0600BB87 RID: 48007 RVA: 0x002947D0 File Offset: 0x002929D0
[Token(Token = "0x600BB87")]
[Address(RVA = "0x27F0E10", Offset = "0x27EFE10", VA = "0x1827F0E10", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB87)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7B:
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC128 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
}
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: 0x0600BB88 RID: 48008 RVA: 0x00294870 File Offset: 0x00292A70
[Token(Token = "0x600BB88")]
[Address(RVA = "0x27F08B0", Offset = "0x27EF8B0", VA = "0x1827F08B0")]
private byte GetByte()
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600BB89 RID: 48009 RVA: 0x002948BC File Offset: 0x00292ABC
[Token(Token = "0x600BB89")]
[Address(RVA = "0x27F1150", Offset = "0x27F0150", VA = "0x1827F1150", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB89)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_54:
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BB8A RID: 48010 RVA: 0x00294928 File Offset: 0x00292B28
[Token(Token = "0x600BB8A")]
[Address(RVA = "0x27F1330", Offset = "0x27F0330", VA = "0x1827F1330", Slot = "12")]
public virtual void Reset()
{
this.Init();
}
// Token: 0x0600BB8B RID: 48011 RVA: 0x0029493C File Offset: 0x00292B3C
[Token(Token = "0x600BB8B")]
[Address(RVA = "0x27F1340", Offset = "0x27F0340", VA = "0x1827F1340", Slot = "13")]
public virtual byte ReturnByte(byte input)
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600BB8C RID: 48012 RVA: 0x00294988 File Offset: 0x00292B88
[Token(Token = "0x600BB8C")]
[Address(RVA = "0x27F1780", Offset = "0x27F0780", VA = "0x1827F1780")]
public HC128Engine()
{
uint[] array = new uint[512];
this.p = array;
uint[] array2 = new uint[512];
this.q = array2;
byte[] array3 = new byte[4];
this.buf = array3;
base..ctor();
}
// Token: 0x0400763C RID: 30268
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400763C")]
private uint[] p;
// Token: 0x0400763D RID: 30269
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400763D")]
private uint[] q;
// Token: 0x0400763E RID: 30270
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400763E")]
private uint cnt;
// Token: 0x0400763F RID: 30271
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400763F")]
private byte[] key;
// Token: 0x04007640 RID: 30272
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007640")]
private byte[] iv;
// Token: 0x04007641 RID: 30273
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007641")]
private bool initialised;
// Token: 0x04007642 RID: 30274
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007642")]
private byte[] buf;
// Token: 0x04007643 RID: 30275
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007643")]
private int idx;
}
}
@@ -0,0 +1,266 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D74 RID: 7540
[Token(Token = "0x2001D74")]
public class HC256Engine : IStreamCipher
{
// Token: 0x0600BB8D RID: 48013 RVA: 0x002949D0 File Offset: 0x00292BD0
[Token(Token = "0x600BB8D")]
[Address(RVA = "0x27F2290", Offset = "0x27F1290", VA = "0x1827F2290")]
private uint Step()
{
uint num = this.cnt;
uint[] array = this.q;
int length = array.Length;
uint num2 = array[this];
uint num3 = num + 1U;
uint num4 = array[(int)num3];
uint[] array2 = this.p;
uint num5 = array[(int)num3];
num3 = num4;
num3 += num5;
uint[] array3 = this.q;
int length2 = array3.Length;
uint[] array4 = this.p;
int length3 = array4.Length;
num4 = num2;
num4 += (uint)256;
uint num6 = array4[(int)num4];
num4 = num2;
num4 += (uint)512;
num2 += (uint)768;
uint num7 = array4[(int)num2];
uint num8 = num + 1U;
uint[] array5 = this.q;
array3 += num6;
uint[] array6 = this.p;
int length4 = array6.Length;
uint[] array7 = this.q;
uint num9 = array6[(int)num2];
int length5 = array7.Length;
uint num10 = array7[(int)num9];
num2 = num9;
num9 = num2;
num9 += (uint)256;
uint num11 = array7[(int)num9];
num2 = num9;
num9 = num2;
num9 += (uint)512;
num2 = num9;
num2 += (uint)768;
num2 += num11;
num2 += num10;
uint num12 = this.cnt;
num12 += (uint)1;
this.cnt = num12;
return num2;
}
// Token: 0x0600BB8E RID: 48014 RVA: 0x00294B30 File Offset: 0x00292D30
[Token(Token = "0x600BB8E")]
[Address(RVA = "0x27F18A0", Offset = "0x27F08A0", VA = "0x1827F18A0")]
private void Init()
{
/*
An exception occurred when decompiling this method (0600BB8E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1AF:
stloc:ArgumentException(var_38_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128/256 bits long")))
}
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: 0x17001D6E RID: 7534
// (get) Token: 0x0600BB8F RID: 48015 RVA: 0x00294CF8 File Offset: 0x00292EF8
[Token(Token = "0x17001D6E")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB8F")]
[Address(RVA = "0x27F2810", Offset = "0x27F1810", VA = "0x1827F2810", Slot = "9")]
get
{
return "HC-256";
}
}
// Token: 0x0600BB90 RID: 48016 RVA: 0x00294D0C File Offset: 0x00292F0C
[Token(Token = "0x600BB90")]
[Address(RVA = "0x27F1D00", Offset = "0x27F0D00", VA = "0x1827F1D00", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB90)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7B:
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC256 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
}
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: 0x0600BB91 RID: 48017 RVA: 0x00294DAC File Offset: 0x00292FAC
[Token(Token = "0x600BB91")]
[Address(RVA = "0x27F1830", Offset = "0x27F0830", VA = "0x1827F1830")]
private byte GetByte()
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600BB92 RID: 48018 RVA: 0x00294DF8 File Offset: 0x00292FF8
[Token(Token = "0x600BB92")]
[Address(RVA = "0x27F2020", Offset = "0x27F1020", VA = "0x1827F2020", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB92)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_54:
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BB93 RID: 48019 RVA: 0x00294E64 File Offset: 0x00293064
[Token(Token = "0x600BB93")]
[Address(RVA = "0x27F2200", Offset = "0x27F1200", VA = "0x1827F2200", Slot = "12")]
public virtual void Reset()
{
this.Init();
}
// Token: 0x0600BB94 RID: 48020 RVA: 0x00294E78 File Offset: 0x00293078
[Token(Token = "0x600BB94")]
[Address(RVA = "0x27F2210", Offset = "0x27F1210", VA = "0x1827F2210", Slot = "13")]
public virtual byte ReturnByte(byte input)
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600BB95 RID: 48021 RVA: 0x00294EC4 File Offset: 0x002930C4
[Token(Token = "0x600BB95")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static uint RotateRight(uint x, int bits)
{
return x;
}
// Token: 0x0600BB96 RID: 48022 RVA: 0x00294ED4 File Offset: 0x002930D4
[Token(Token = "0x600BB96")]
[Address(RVA = "0x27F2790", Offset = "0x27F1790", VA = "0x1827F2790")]
public HC256Engine()
{
uint[] array = new uint[1024];
this.p = array;
uint[] array2 = new uint[1024];
this.q = array2;
byte[] array3 = new byte[4];
this.buf = array3;
base..ctor();
}
// Token: 0x04007644 RID: 30276
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007644")]
private uint[] p;
// Token: 0x04007645 RID: 30277
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007645")]
private uint[] q;
// Token: 0x04007646 RID: 30278
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007646")]
private uint cnt;
// Token: 0x04007647 RID: 30279
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007647")]
private byte[] key;
// Token: 0x04007648 RID: 30280
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007648")]
private byte[] iv;
// Token: 0x04007649 RID: 30281
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007649")]
private bool initialised;
// Token: 0x0400764A RID: 30282
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400764A")]
private byte[] buf;
// Token: 0x0400764B RID: 30283
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400764B")]
private int idx;
}
}
@@ -0,0 +1,361 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D76 RID: 7542
[Token(Token = "0x2001D76")]
public class IdeaEngine : IBlockCipher
{
// Token: 0x0600BBA1 RID: 48033 RVA: 0x00295500 File Offset: 0x00293700
[Token(Token = "0x600BBA1")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public IdeaEngine()
{
this.Reset();
}
// Token: 0x0600BBA2 RID: 48034 RVA: 0x00295514 File Offset: 0x00293714
[Token(Token = "0x600BBA2")]
[Address(RVA = "0x27F31A0", Offset = "0x27F21A0", VA = "0x1827F31A0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BBA2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_36:
stloc:ArgumentException(var_7_47, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to IDEA init - "), ldloc:string(var_6))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D70 RID: 7536
// (get) Token: 0x0600BBA3 RID: 48035 RVA: 0x0029556C File Offset: 0x0029376C
[Token(Token = "0x17001D70")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBA3")]
[Address(RVA = "0x27F3F10", Offset = "0x27F2F10", VA = "0x1827F3F10", Slot = "11")]
get
{
return "IDEA";
}
}
// Token: 0x17001D71 RID: 7537
// (get) Token: 0x0600BBA4 RID: 48036 RVA: 0x00295580 File Offset: 0x00293780
[Token(Token = "0x17001D71")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BBA4")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BBA5 RID: 48037 RVA: 0x00295590 File Offset: 0x00293790
[Token(Token = "0x600BBA5")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BBA6 RID: 48038 RVA: 0x002955A0 File Offset: 0x002937A0
[Token(Token = "0x600BBA6")]
[Address(RVA = "0x27F3D50", Offset = "0x27F2D50", VA = "0x1827F3D50", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BBA6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A:
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("IDEA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BBA7 RID: 48039 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BBA7")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BBA8 RID: 48040 RVA: 0x002955D4 File Offset: 0x002937D4
[Token(Token = "0x600BBA8")]
[Address(RVA = "0x27F28A0", Offset = "0x27F18A0", VA = "0x1827F28A0")]
private int BytesToWord(byte[] input, int inOff)
{
int length = input.Length;
byte b;
byte b2;
b += b2;
throw new NullReferenceException();
}
// Token: 0x0600BBA9 RID: 48041 RVA: 0x002955F4 File Offset: 0x002937F4
[Token(Token = "0x600BBA9")]
[Address(RVA = "0x27F3E60", Offset = "0x27F2E60", VA = "0x1827F3E60")]
private void WordToBytes(int word, byte[] outBytes, int outOff)
{
}
// Token: 0x0600BBAA RID: 48042 RVA: 0x00295608 File Offset: 0x00293808
[Token(Token = "0x600BBAA")]
[Address(RVA = "0x27F3C30", Offset = "0x27F2C30", VA = "0x1827F3C30")]
private int Mul(int x, int y)
{
if (x != 0)
{
if (y != 0)
{
int num = x * y;
int mask = IdeaEngine.MASK;
bool flag = mask < num;
flag = (flag ? 1 : 0) - num != 0;
flag = (flag ? 1 : 0) + mask != 0;
}
int num2 = IdeaEngine.BASE;
num2 -= x;
}
int num3 = IdeaEngine.BASE;
num3 -= y;
return IdeaEngine.MASK;
}
// Token: 0x0600BBAB RID: 48043 RVA: 0x00295650 File Offset: 0x00293850
[Token(Token = "0x600BBAB")]
[Address(RVA = "0x27F2C60", Offset = "0x27F1C60", VA = "0x1827F2C60")]
private void IdeaFunc(int[] workingKey, byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = 0;
int length = input.Length;
int num2 = inOff + 1;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
byte b5;
b5 += b2;
int num3 = workingKey[num];
int num4 = this.Mul((int)b, num3);
int length2 = workingKey.Length;
int num5;
num5 += (int)b3;
int length3 = workingKey.Length;
int num6;
num6 += (int)b4;
num += 3;
int num7 = workingKey[num];
num += 4;
int num8 = workingKey[num];
int num9;
num6 = num9;
int num10;
num6 += num10;
num++;
int mask = IdeaEngine.MASK;
int num11 = workingKey[num];
int num12;
num12 += mask;
int num13;
int num14;
num13 += num14;
num += 3;
int num15 = workingKey[num];
}
// Token: 0x0600BBAC RID: 48044 RVA: 0x00295718 File Offset: 0x00293918
[Token(Token = "0x600BBAC")]
[Address(RVA = "0x27F2900", Offset = "0x27F1900", VA = "0x1827F2900")]
private int[] ExpandKey(byte[] uKey)
{
int[] array = new int[52];
int num = 0;
if (uKey.Length < 16)
{
byte[] array2 = new byte[0];
int length = uKey.Length;
int num2 = array2.Length;
int num3 = 0;
num2 -= length;
Array.Copy(uKey, num3, array2, num2, length);
}
int length2 = uKey.Length;
num += 2;
byte b;
byte b2;
b += b2;
num++;
array[0] = (int)b;
int length3 = array.Length;
uint num4;
if (num4 != (uint)6)
{
int length4 = array.Length;
}
int length5 = array.Length;
int length6 = array.Length;
num4 += (uint)1;
int num5;
array[0] = num5;
return array;
}
// Token: 0x0600BBAD RID: 48045 RVA: 0x002957C4 File Offset: 0x002939C4
[Token(Token = "0x600BBAD")]
[Address(RVA = "0x27F3AB0", Offset = "0x27F2AB0", VA = "0x1827F3AB0")]
private int MulInv(int x)
{
int num = IdeaEngine.BASE;
uint num2;
if (x != (int)num2)
{
int num3 = x * x;
num2 += (uint)num3;
if (x == (int)num2)
{
return x;
}
int num4 = x * (int)num2;
num = x + num4;
}
num2 -= (uint)num;
return IdeaEngine.MASK;
}
// Token: 0x0600BBAE RID: 48046 RVA: 0x00295804 File Offset: 0x00293A04
[Token(Token = "0x600BBAE")]
[Address(RVA = "0x27F2840", Offset = "0x27F1840", VA = "0x1827F2840")]
private int AddInv(int x)
{
return IdeaEngine.MASK;
}
// Token: 0x0600BBAF RID: 48047 RVA: 0x00295818 File Offset: 0x00293A18
[Token(Token = "0x600BBAF")]
[Address(RVA = "0x27F3350", Offset = "0x27F2350", VA = "0x1827F3350")]
private int[] InvertKey(int[] inKey)
{
int[] array = new int[52];
int num = inKey[0];
int num2 = this.MulInv(num);
int mask = IdeaEngine.MASK;
int num3 = inKey[1];
int num4 = inKey[1];
int num5 = this.MulInv(num4);
array[25] = num5;
array[25] = num3;
array[24] = mask;
array[24] = num2;
int length = inKey.Length;
uint num7;
int num6 = inKey[(int)num7];
uint num8 = num7 + 1U;
uint num10;
uint num9 = num10 - 1U;
int num11 = inKey[(int)num8];
array[0] = num11;
num7 += (uint)2;
array[0] = num6;
int num12 = inKey[(int)num7];
int num13 = this.MulInv(num12);
num7 += (uint)3;
uint num14 = num7 + 1U;
int mask2 = IdeaEngine.MASK;
uint num15 = num14 + 1U;
int num16 = inKey[(int)num14];
num15 += (uint)1;
int num17 = inKey[(int)num15];
int num18;
array[0] = num18;
array[0] = mask2;
array[0] = num16;
ulong num19;
num19 += (ulong)1L;
array[0] = num13;
int length2 = inKey.Length;
int num20 = inKey[(int)num15];
uint num21 = num15 + 1U;
int num22 = inKey[(int)num21];
int num23 = num16 - 1;
array[0] = num22;
array[0] = num20;
int num24 = inKey[num23];
num15 += (uint)4;
int mask3 = IdeaEngine.MASK;
int num25 = inKey[(int)num15];
num16 += -4;
int num26;
array[0] = num26;
array[0] = num25;
array[0] = mask3;
int num27;
array[0] = num27;
return array;
}
// Token: 0x0600BBB0 RID: 48048 RVA: 0x002959CC File Offset: 0x00293BCC
[Token(Token = "0x600BBB0")]
[Address(RVA = "0x27F2C20", Offset = "0x27F1C20", VA = "0x1827F2C20")]
private int[] GenerateWorkingKey(bool forEncryption, byte[] userKey)
{
int[] array = this.ExpandKey(userKey);
if (!forEncryption)
{
int[] array2 = this.InvertKey(array);
}
return array;
}
// Token: 0x04007657 RID: 30295
[Token(Token = "0x4007657")]
private const int BLOCK_SIZE = 8;
// Token: 0x04007658 RID: 30296
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007658")]
private int[] workingKey;
// Token: 0x04007659 RID: 30297
[Token(Token = "0x4007659")]
private static readonly int MASK;
// Token: 0x0400765A RID: 30298
[Token(Token = "0x400765A")]
private static readonly int BASE;
}
}
@@ -0,0 +1,230 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D77 RID: 7543
[Token(Token = "0x2001D77")]
public class IesEngine
{
// Token: 0x0600BBB2 RID: 48050 RVA: 0x00295A00 File Offset: 0x00293C00
[Token(Token = "0x600BBB2")]
[Address(RVA = "0x27F4D30", Offset = "0x27F3D30", VA = "0x1827F4D30")]
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac)
{
this.agree = agree;
this.kdf = kdf;
this.mac = mac;
byte[] array = new byte[0];
this.macBuf = array;
}
// Token: 0x0600BBB3 RID: 48051 RVA: 0x00295A3C File Offset: 0x00293C3C
[Token(Token = "0x600BBB3")]
[Address(RVA = "0x27F4C90", Offset = "0x27F3C90", VA = "0x1827F4C90")]
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac, BufferedBlockCipher cipher)
{
this.agree = agree;
this.kdf = kdf;
this.mac = mac;
byte[] array = new byte[0];
this.macBuf = array;
this.cipher = 0;
}
// Token: 0x0600BBB4 RID: 48052 RVA: 0x00295A80 File Offset: 0x00293C80
[Token(Token = "0x600BBB4")]
[Address(RVA = "0x27F49E0", Offset = "0x27F39E0", VA = "0x1827F49E0", Slot = "4")]
public virtual void Init(bool forEncryption, ICipherParameters privParameters, ICipherParameters pubParameters, ICipherParameters iesParameters)
{
this.forEncryption = forEncryption;
this.privParam = privParameters;
this.pubParam = pubParameters;
this.param = 0;
}
// Token: 0x0600BBB5 RID: 48053 RVA: 0x00295AAC File Offset: 0x00293CAC
[Token(Token = "0x600BBB5")]
[Address(RVA = "0x27F3F40", Offset = "0x27F2F40", VA = "0x1827F3F40")]
private byte[] DecryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
{
/*
An exception occurred when decompiling this method (0600BBB5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IesEngine::DecryptBlock(System.Byte[],System.Int32,System.Int32,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_130:
stloc:InvalidCipherTextException(var_34_13A, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("Invalid MAC.")))
}
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: 0x0600BBB6 RID: 48054 RVA: 0x00295BF4 File Offset: 0x00293DF4
[Token(Token = "0x600BBB6")]
[Address(RVA = "0x27F4430", Offset = "0x27F3430", VA = "0x1827F4430")]
private byte[] EncryptBlock(byte[] input, int inOff, int inLen, byte[] z)
{
int num;
int num2;
for (;;)
{
byte[] derivation = this.param.derivation;
IesParameters iesParameters = this.param;
num = iesParameters.macKeySize;
if (this.cipher == (ulong)0L)
{
goto IL_A2;
}
if (iesParameters != 0)
{
num2 = 0;
if (iesParameters != 0)
{
break;
}
}
}
num += typeof(IesWithCipherParameters).TypeHandle;
KdfParameters kdfParameters;
byte[] array = this.GenerateKdfBytes(kdfParameters, num2);
string algorithmName = this.cipher.AlgorithmName;
int blockSize = this.cipher.GetBlockSize();
byte[] array2 = new byte[inLen];
BufferedBlockCipher bufferedBlockCipher = this.cipher;
BufferedBlockCipher bufferedBlockCipher2 = this.cipher;
IMac mac = this.mac;
byte[] array3 = new byte[0];
int num3 = 0;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, inLen);
IL_A2:
IMac mac2 = this.mac;
byte[] array4 = new byte[0];
int num5 = 0;
if (inLen != 0)
{
num5++;
while (num5 != inLen)
{
}
}
byte[] array5;
KeyParameter keyParameter = new KeyParameter(array5, inLen, num);
IesParameters iesParameters2 = this.param;
IMac mac3 = this.mac;
byte[] encoding = iesParameters2.encoding;
IMac mac4 = this.mac;
IMac mac5 = this.mac;
int length = encoding.Length;
IMac mac6 = this.mac;
return array4;
}
// Token: 0x0600BBB7 RID: 48055 RVA: 0x00295D14 File Offset: 0x00293F14
[Token(Token = "0x600BBB7")]
[Address(RVA = "0x27F48D0", Offset = "0x27F38D0", VA = "0x1827F48D0")]
private byte[] GenerateKdfBytes(KdfParameters kParam, int length)
{
byte[] array = new byte[length];
IDerivationFunction derivationFunction = this.kdf;
IDerivationFunction derivationFunction2 = this.kdf;
int num = 0;
int length2 = array.Length;
if (num < derivationFunction)
{
num += num;
num++;
}
return array;
}
// Token: 0x0600BBB8 RID: 48056 RVA: 0x00295D58 File Offset: 0x00293F58
[Token(Token = "0x600BBB8")]
[Address(RVA = "0x27F4AA0", Offset = "0x27F3AA0", VA = "0x1827F4AA0", Slot = "5")]
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
{
int num;
byte[] array3;
do
{
num = 0;
IBasicAgreement basicAgreement = this.agree;
IBasicAgreement basicAgreement2 = this.agree;
ICipherParameters cipherParameters = this.pubParam;
if (num < basicAgreement)
{
num += num;
num++;
}
IBasicAgreement basicAgreement3 = this.agree;
byte[] array2;
if (this.forEncryption)
{
byte[] array = this.EncryptBlock(input, inOff, inLen, array2);
}
array3 = this.DecryptBlock(input, inOff, inLen, array2);
int length = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length);
}
while (num != 0);
return array3;
}
// Token: 0x0400765B RID: 30299
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400765B")]
private readonly IBasicAgreement agree;
// Token: 0x0400765C RID: 30300
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400765C")]
private readonly IDerivationFunction kdf;
// Token: 0x0400765D RID: 30301
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400765D")]
private readonly IMac mac;
// Token: 0x0400765E RID: 30302
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400765E")]
private readonly BufferedBlockCipher cipher;
// Token: 0x0400765F RID: 30303
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400765F")]
private readonly byte[] macBuf;
// Token: 0x04007660 RID: 30304
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007660")]
private bool forEncryption;
// Token: 0x04007661 RID: 30305
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007661")]
private ICipherParameters privParam;
// Token: 0x04007662 RID: 30306
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007662")]
private ICipherParameters pubParam;
// Token: 0x04007663 RID: 30307
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007663")]
private IesParameters param;
}
}
@@ -0,0 +1,335 @@
using System;
using System.Runtime.Serialization.Formatters.Binary;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D75 RID: 7541
[Token(Token = "0x2001D75")]
public class IsaacEngine : IStreamCipher
{
// Token: 0x0600BB97 RID: 48023 RVA: 0x00294F1C File Offset: 0x0029311C
[Token(Token = "0x600BB97")]
[Address(RVA = "0x27F4DD0", Offset = "0x27F3DD0", VA = "0x1827F4DD0", Slot = "9")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BB97)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:ArgumentException(var_4_2D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to ISAAC Init - "), ldloc:string(var_3)), ldstr:string("parameters")))
}
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: 0x0600BB98 RID: 48024 RVA: 0x00294F58 File Offset: 0x00293158
[Token(Token = "0x600BB98")]
[Address(RVA = "0x27F5110", Offset = "0x27F4110", VA = "0x1827F5110", Slot = "10")]
public virtual byte ReturnByte(byte input)
{
if (this.index == 0)
{
this.isaac();
byte[] array = Pack.UInt32_To_BE(this.results);
this.keyStream = array;
}
byte[] array2 = this.keyStream;
int num = this.index + 1;
this.index = num;
byte b;
return b;
}
// Token: 0x0600BB99 RID: 48025 RVA: 0x00294FA8 File Offset: 0x002931A8
[Token(Token = "0x600BB99")]
[Address(RVA = "0x27F4F20", Offset = "0x27F3F20", VA = "0x1827F4F20", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BB99)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_63:
stloc:InvalidOperationException(var_7_6A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x17001D6F RID: 7535
// (get) Token: 0x0600BB9A RID: 48026 RVA: 0x00295020 File Offset: 0x00293220
[Token(Token = "0x17001D6F")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BB9A")]
[Address(RVA = "0x27F5260", Offset = "0x27F4260", VA = "0x1827F5260", Slot = "12")]
get
{
return "ISAAC";
}
}
// Token: 0x0600BB9B RID: 48027 RVA: 0x00295034 File Offset: 0x00293234
[Token(Token = "0x600BB9B")]
[Address(RVA = "0x27F5100", Offset = "0x27F4100", VA = "0x1827F5100", Slot = "13")]
public virtual void Reset()
{
byte[] array = this.workingKey;
this.setKey(array);
}
// Token: 0x0600BB9C RID: 48028 RVA: 0x00295050 File Offset: 0x00293250
[Token(Token = "0x600BB9C")]
[Address(RVA = "0x27F59C0", Offset = "0x27F49C0", VA = "0x1827F59C0")]
private void setKey(byte[] keyBytes)
{
this.workingKey = keyBytes;
if (this.engineState == (ulong)0L)
{
uint[] array = new uint[IsaacEngine.stateArraySize];
this.engineState = array;
}
if (this.results == (ulong)0L)
{
uint[] array2 = new uint[IsaacEngine.stateArraySize];
this.results = array2;
}
int num = 0;
uint[] array3 = this.results;
uint[] array4 = this.engineState;
array3[0] = (uint)num;
array4[0] = (uint)num;
num++;
this.b = (uint)num;
this.a = (uint)num;
this.index = num;
byte[] array5 = new byte[keyBytes.Length];
int length = keyBytes.Length;
int num2 = 0;
int num3 = 0;
Array.Copy(keyBytes, num3, array5, num2, length);
if (num < array5.Length)
{
uint[] array6 = this.results;
int @int = SerializationHeaderRecord.GetInt32(array5, num);
num += 4;
array6[0] = (uint)@int;
}
uint[] array7 = new uint[IsaacEngine.sizeL];
num++;
array7[0] = (uint)((ulong)2654435769L);
this.mix(array7);
while (num != array7.Length)
{
}
num -= num;
if (num < 1)
{
uint[] array8 = this.results;
}
uint[] array9 = this.engineState;
num++;
this.mix(array7);
uint[] array10 = this.engineState;
num++;
uint num4 = array7[num];
array10[0] = num4;
num++;
this.isaac();
this.initialised = true;
}
// Token: 0x0600BB9D RID: 48029 RVA: 0x002951C0 File Offset: 0x002933C0
[Token(Token = "0x600BB9D")]
[Address(RVA = "0x27F5290", Offset = "0x27F4290", VA = "0x1827F5290")]
private void isaac()
{
uint num = this.c;
num += (uint)1;
int num2 = 0;
this.c = num;
uint[] array = this.engineState;
uint num3 = array[num2];
if (num2 != array.Length && num2 != array.Length && (num2 == array.Length || num2 == 1))
{
this.a = (uint)num2;
}
uint num4;
this.a = num4;
int length = array.Length;
uint num5 = array[(int)num3];
num5 += num4;
array.m_value = num5;
uint[] array2 = this.engineState;
uint[] array3 = this.results;
num3 = num5;
uint num6 = array2[(int)num3];
num6 += num3;
this.b = num6;
array3.m_value = num6;
num2++;
}
// Token: 0x0600BB9E RID: 48030 RVA: 0x00295280 File Offset: 0x00293480
[Token(Token = "0x600BB9E")]
[Address(RVA = "0x27F5480", Offset = "0x27F4480", VA = "0x1827F5480")]
private void mix(uint[] x)
{
int length = x.Length;
uint num = x[0];
x[0] = num;
int length2 = x.Length;
uint num2 = x[0];
uint num3 = x[1];
num3 += num2;
x[0] = num3;
int length3 = x.Length;
uint num4 = x[1];
x[0] = num4;
int length4 = x.Length;
uint num5 = x[1];
uint num6 = x[1];
num6 += num5;
x[1] = num6;
int length5 = x.Length;
uint num7 = x[1];
x[1] = num7;
int length6 = x.Length;
uint num8 = x[1];
uint num9 = x[2];
num9 += num8;
x[1] = num9;
int length7 = x.Length;
uint num10 = x[2];
x[1] = num10;
int length8 = x.Length;
uint num11 = x[2];
uint num12 = x[2];
num12 += num11;
x[2] = num12;
int length9 = x.Length;
uint num13 = x[2];
x[2] = num13;
int length10 = x.Length;
uint num14 = x[2];
x[2] = num14;
int length11 = x.Length;
uint num15 = x[3];
x[2] = num15;
int length12 = x.Length;
uint num16 = x[0];
num15 += num16;
x[0] = num15;
int length13 = x.Length;
uint num17 = x[3];
x[3] = num17;
int length14 = x.Length;
uint num18 = x[3];
x[3] = num18;
int length15 = x.Length;
uint num19 = x[0];
num18 += num19;
x[0] = num18;
uint num20 = x[0];
x[3] = num20;
uint num21 = x[0];
x[3] = num21;
int length16 = x.Length;
uint num22 = x[1];
num21 += num22;
x[1] = num21;
int length17 = x.Length;
uint num23 = x[0];
x[0] = num23;
}
// Token: 0x0600BB9F RID: 48031 RVA: 0x002954C0 File Offset: 0x002936C0
[Token(Token = "0x600BB9F")]
[Address(RVA = "0x27F51E0", Offset = "0x27F41E0", VA = "0x1827F51E0")]
public IsaacEngine()
{
byte[] array = new byte[IsaacEngine.stateArraySize];
this.keyStream = array;
base..ctor();
}
// Token: 0x0400764C RID: 30284
[Token(Token = "0x400764C")]
private static readonly int sizeL;
// Token: 0x0400764D RID: 30285
[Token(Token = "0x400764D")]
private static readonly int stateArraySize = IsaacEngine.sizeL;
// Token: 0x0400764E RID: 30286
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400764E")]
private uint[] engineState;
// Token: 0x0400764F RID: 30287
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400764F")]
private uint[] results;
// Token: 0x04007650 RID: 30288
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007650")]
private uint a;
// Token: 0x04007651 RID: 30289
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4007651")]
private uint b;
// Token: 0x04007652 RID: 30290
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007652")]
private uint c;
// Token: 0x04007653 RID: 30291
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007653")]
private int index;
// Token: 0x04007654 RID: 30292
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007654")]
private byte[] keyStream;
// Token: 0x04007655 RID: 30293
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007655")]
private byte[] workingKey;
// Token: 0x04007656 RID: 30294
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007656")]
private bool initialised;
}
}
@@ -0,0 +1,350 @@
using System;
using System.Collections;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D78 RID: 7544
[Token(Token = "0x2001D78")]
public class NaccacheSternEngine : IAsymmetricBlockCipher
{
// Token: 0x17001D72 RID: 7538
// (get) Token: 0x0600BBB9 RID: 48057 RVA: 0x00295DD8 File Offset: 0x00293FD8
[Token(Token = "0x17001D72")]
public string AlgorithmName
{
[Token(Token = "0x600BBB9")]
[Address(RVA = "0x272A5E0", Offset = "0x27295E0", VA = "0x18272A5E0", Slot = "4")]
get
{
return "NaccacheStern";
}
}
// Token: 0x0600BBBA RID: 48058 RVA: 0x00295DEC File Offset: 0x00293FEC
[Token(Token = "0x600BBBA")]
[Address(RVA = "0x2729430", Offset = "0x2728430", VA = "0x182729430", Slot = "9")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
for (;;)
{
this.forEncryption = forEncryption;
if (parameters == 0 || ((parameters == 0 || (parameters != 0 && parameters != 0)) && (parameters == 0 || parameters != 0)))
{
int num = 0;
this.key = num;
if (forEncryption)
{
return;
}
int num2 = 0;
if (num != 0)
{
IList[] array = new IList[num2];
if (0 >= array)
{
return;
}
if (array != 0)
{
break;
}
}
}
}
int num3;
IList list = Platform.CreateArrayList(num3);
throw new ArrayTypeMismatchException();
}
// Token: 0x17001D73 RID: 7539
// (set) Token: 0x0600BBBB RID: 48059 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x17001D73")]
[Obsolete]
public virtual bool Debug
{
[Token(Token = "0x600BBBB")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "10")]
set
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600BBBC RID: 48060 RVA: 0x00295E84 File Offset: 0x00294084
[Token(Token = "0x600BBBC")]
[Address(RVA = "0x2729370", Offset = "0x2728370", VA = "0x182729370", Slot = "11")]
public virtual int GetInputBlockSize()
{
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
if (!this.forEncryption)
{
BigInteger n = naccacheSternKeyParameters.n;
int num = 0;
int num2 = n.BitLength;
num2 += num;
return num2 + 1;
}
int lowerSigmaBound = naccacheSternKeyParameters.lowerSigmaBound;
return lowerSigmaBound + 7;
}
// Token: 0x0600BBBD RID: 48061 RVA: 0x00295ED4 File Offset: 0x002940D4
[Token(Token = "0x600BBBD")]
[Address(RVA = "0x27293D0", Offset = "0x27283D0", VA = "0x1827293D0", Slot = "12")]
public virtual int GetOutputBlockSize()
{
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
if (!this.forEncryption)
{
int lowerSigmaBound = naccacheSternKeyParameters.lowerSigmaBound;
return lowerSigmaBound + 7;
}
BigInteger n = naccacheSternKeyParameters.n;
int num = 0;
int num2 = n.BitLength;
num2 += num;
return num2 + 1;
}
// Token: 0x0600BBBE RID: 48062 RVA: 0x00295F24 File Offset: 0x00294124
[Token(Token = "0x600BBBE")]
[Address(RVA = "0x27298D0", Offset = "0x27288D0", VA = "0x1827298D0", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] inBytes, int inOff, int length)
{
if (this.key != (ulong)0L)
{
if (!this.forEncryption)
{
}
BigInteger bigInteger = new BigInteger(1, inBytes, length, length);
int num = 0;
if ((this.forEncryption ? 1 : 0) == num)
{
IList list = Platform.CreateArrayList();
if (num >= list)
{
BigInteger bigInteger2;
return bigInteger2.ToByteArray();
}
int num2 = 0;
BigInteger bigInteger4;
BigInteger bigInteger3 = bigInteger.ModPow(bigInteger4, num2);
IList list2 = this.lookup[num];
int intValue = bigInteger3.IntValue;
if (intValue != -1)
{
BigInteger bigInteger5 = BigInteger.ValueOf((long)intValue);
num++;
object[] array = new object[6];
throw new ArrayTypeMismatchException();
}
goto IL_B5;
}
}
InvalidOperationException ex = new InvalidOperationException("NaccacheStern engine not initialised");
IL_B5:
InvalidCipherTextException ex2 = new InvalidCipherTextException("Lookup failed");
inBytes[1] = (byte)length;
throw new ArrayTypeMismatchException();
}
// Token: 0x0600BBBF RID: 48063 RVA: 0x00296068 File Offset: 0x00294268
[Token(Token = "0x600BBBF")]
[Address(RVA = "0x2729280", Offset = "0x2728280", VA = "0x182729280", Slot = "14")]
public virtual byte[] Encrypt(BigInteger plain)
{
BigInteger n = this.key.n;
int num = 0;
int bitLength = n.BitLength;
num += bitLength;
num++;
byte[] array = new byte[num];
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
BigInteger g = naccacheSternKeyParameters.g;
BigInteger n2 = naccacheSternKeyParameters.n;
byte[] array2 = g.ModPow(plain, n2).ToByteArray();
int length = array2.Length;
int num2 = array.Length;
int num3 = 0;
num2 -= length;
Array.Copy(array2, num3, array, num2, length);
return array;
}
// Token: 0x0600BBC0 RID: 48064 RVA: 0x002960F4 File Offset: 0x002942F4
[Token(Token = "0x600BBC0")]
[Address(RVA = "0x2729040", Offset = "0x2728040", VA = "0x182729040", Slot = "15")]
public virtual byte[] AddCryptedBlocks(byte[] block1, byte[] block2)
{
if (!this.forEncryption)
{
}
int inputBlockSize = this.GetInputBlockSize();
int inputBlockSize2 = this.GetInputBlockSize();
BigInteger bigInteger = new BigInteger(1, block1);
BigInteger bigInteger2 = new BigInteger(1, block2);
BigInteger bigInteger3 = bigInteger.Multiply(bigInteger2);
BigInteger n = this.key.n;
BigInteger bigInteger4 = bigInteger3.Mod(n);
BigInteger n2 = this.key.n;
int num = 0;
int bitLength = n2.BitLength;
num += bitLength;
num++;
byte[] array = new byte[num];
byte[] array2 = bigInteger4.ToByteArray();
int length = array2.Length;
int num2 = array.Length;
int num3 = 0;
num2 -= length;
Array.Copy(array2, num3, array, num2, length);
return array;
}
// Token: 0x0600BBC1 RID: 48065 RVA: 0x002961B4 File Offset: 0x002943B4
[Token(Token = "0x600BBC1")]
[Address(RVA = "0x2729F30", Offset = "0x2728F30", VA = "0x182729F30", Slot = "16")]
public virtual byte[] ProcessData(byte[] data)
{
/*
An exception occurred when decompiling this method (0600BBC1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NaccacheSternEngine::ProcessData(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7D:
stloc:InvalidCipherTextException(var_13_87, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("cipher returned null")))
}
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.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: 0x0600BBC2 RID: 48066 RVA: 0x0029624C File Offset: 0x0029444C
[Token(Token = "0x600BBC2")]
[Address(RVA = "0x272A110", Offset = "0x2729110", VA = "0x18272A110")]
private static BigInteger chineseRemainder(IList congruences, IList primes)
{
int num;
BigInteger zero;
BigInteger bigInteger;
BigInteger bigInteger4;
for (;;)
{
num = 0;
zero = BigInteger.Zero;
BigInteger one = BigInteger.One;
num += num;
num++;
uint num2;
if (num < (int)num2)
{
num += num;
num++;
}
if (num == 0)
{
num += num;
num++;
num += 19;
num += num;
num += 19;
}
if (num != 0)
{
int num3 = 0;
bigInteger = one.Multiply(num);
num++;
if (num < num3)
{
num += num;
num++;
}
if (num >= num)
{
goto IL_EE;
}
uint num4;
if (num < (int)num4)
{
num += num;
num++;
}
if (num == 0)
{
num++;
num += 19;
num += 19;
}
if (num != 0)
{
BigInteger bigInteger2 = bigInteger.Divide(num);
BigInteger bigInteger3 = bigInteger2.ModInverse(num);
int num5 = 0;
bigInteger4 = bigInteger2.Multiply(bigInteger3);
if (num < num5)
{
num += num;
num++;
}
if (num == 0)
{
num += num;
num += 19;
}
if (num != 0)
{
break;
}
}
}
}
BigInteger bigInteger5 = bigInteger4.Multiply(num);
BigInteger bigInteger6 = zero.Add(bigInteger5);
num++;
IL_EE:
return bigInteger6.Mod(bigInteger);
}
// Token: 0x0600BBC3 RID: 48067 RVA: 0x00296358 File Offset: 0x00294558
[Token(Token = "0x600BBC3")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public NaccacheSternEngine()
{
int num = 0;
this.Debug = num != 0;
}
// Token: 0x04007664 RID: 30308
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007664")]
private bool forEncryption;
// Token: 0x04007665 RID: 30309
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007665")]
private NaccacheSternKeyParameters key;
// Token: 0x04007666 RID: 30310
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007666")]
private IList[] lookup;
}
}
@@ -0,0 +1,348 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D79 RID: 7545
[Token(Token = "0x2001D79")]
public class NoekeonEngine : IBlockCipher
{
// Token: 0x0600BBC4 RID: 48068 RVA: 0x00296370 File Offset: 0x00294570
[Token(Token = "0x600BBC4")]
[Address(RVA = "0x272AA10", Offset = "0x2729A10", VA = "0x18272AA10")]
public NoekeonEngine()
{
uint[] array = new uint[4];
this.state = array;
uint[] array2 = new uint[4];
this.subKeys = array2;
uint[] array3 = new uint[4];
this.decryptKeys = array3;
this.Reset();
this._initialised = false;
}
// Token: 0x17001D74 RID: 7540
// (get) Token: 0x0600BBC5 RID: 48069 RVA: 0x002963B4 File Offset: 0x002945B4
[Token(Token = "0x17001D74")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBC5")]
[Address(RVA = "0x272B460", Offset = "0x272A460", VA = "0x18272B460", Slot = "10")]
get
{
return "Noekeon";
}
}
// Token: 0x17001D75 RID: 7541
// (get) Token: 0x0600BBC6 RID: 48070 RVA: 0x002963C8 File Offset: 0x002945C8
[Token(Token = "0x17001D75")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BBC6")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BBC7 RID: 48071 RVA: 0x002963D8 File Offset: 0x002945D8
[Token(Token = "0x600BBC7")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "12")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BBC8 RID: 48072 RVA: 0x002963E8 File Offset: 0x002945E8
[Token(Token = "0x600BBC8")]
[Address(RVA = "0x272A610", Offset = "0x2729610", VA = "0x18272A610", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BBC8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NoekeonEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_94:
stloc:ArgumentException(var_13_AA, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameters passed to Noekeon init - "), ldloc:string(var_12)), ldstr:string("parameters")))
}
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: 0x0600BBC9 RID: 48073 RVA: 0x002964A0 File Offset: 0x002946A0
[Token(Token = "0x600BBC9")]
[Address(RVA = "0x272A860", Offset = "0x2729860", VA = "0x18272A860", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BBC9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NoekeonEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_4_2A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BBCA RID: 48074 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BBCA")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BBCB RID: 48075 RVA: 0x002964D8 File Offset: 0x002946D8
[Token(Token = "0x600BBCB")]
[Address(RVA = "0x272B5D0", Offset = "0x272A5D0", VA = "0x18272B5D0")]
private void setKey(byte[] key)
{
uint[] array = this.subKeys;
int num = 0;
uint num2 = Pack.BE_To_UInt32(key, num);
array[0] = num2;
uint[] array2 = this.subKeys;
uint num3 = Pack.BE_To_UInt32(key, 4);
array2[0] = num3;
uint[] array3 = this.subKeys;
uint num4 = Pack.BE_To_UInt32(key, 8);
array3[1] = num4;
uint[] array4 = this.subKeys;
uint num5 = Pack.BE_To_UInt32(key, 12);
array4[1] = num5;
}
// Token: 0x0600BBCC RID: 48076 RVA: 0x00296554 File Offset: 0x00294754
[Token(Token = "0x600BBCC")]
[Address(RVA = "0x272AEB0", Offset = "0x2729EB0", VA = "0x18272AEB0")]
private int encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
uint[] array = this.state;
uint num = Pack.BE_To_UInt32(input, inOff);
array[0] = num;
uint[] array2 = this.state;
uint num2 = Pack.BE_To_UInt32(input, inOff);
array2[0] = num2;
uint[] array3 = this.state;
uint num3 = Pack.BE_To_UInt32(input, inOff);
array3[1] = num3;
uint[] array4 = this.state;
uint num4 = Pack.BE_To_UInt32(input, inOff);
array4[1] = num4;
int num5 = 0;
uint[] array5 = this.state;
uint num6 = NoekeonEngine.roundConstants[num5];
array5[0] = num6;
uint[] array6 = this.subKeys;
uint[] array7 = this.state;
this.theta(array7, array6);
uint[] array8 = this.state;
this.pi1(array8);
uint[] array9 = this.state;
this.gamma(array9);
uint[] array10 = this.state;
this.pi2(array10);
num5++;
uint[] array11 = this.state;
uint num7 = NoekeonEngine.roundConstants[num5];
array11[0] = num7;
uint[] array12 = this.subKeys;
uint[] array13 = this.state;
this.theta(array13, array12);
uint num8 = this.state[0];
uint num9 = this.state[0];
uint num10 = this.state[1];
uint num11 = this.state[1];
return 16;
}
// Token: 0x0600BBCD RID: 48077 RVA: 0x002966B4 File Offset: 0x002948B4
[Token(Token = "0x600BBCD")]
[Address(RVA = "0x272AA90", Offset = "0x2729A90", VA = "0x18272AA90")]
private int decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
uint[] array = this.state;
uint num = Pack.BE_To_UInt32(input, inOff);
array[0] = num;
uint[] array2 = this.state;
uint num2 = Pack.BE_To_UInt32(input, inOff);
array2[0] = num2;
uint[] array3 = this.state;
uint num3 = Pack.BE_To_UInt32(input, inOff);
array3[1] = num3;
uint[] array4 = this.state;
uint num4 = Pack.BE_To_UInt32(input, inOff);
array4[1] = num4;
uint[] array5 = this.subKeys;
int length = array5.Length;
int num5 = 0;
uint[] array6 = this.decryptKeys;
int num6 = 0;
Array.Copy(array5, num6, array6, num5, length);
uint[] array7 = this.decryptKeys;
uint[] array8 = NoekeonEngine.nullVector;
this.theta(array7, array8);
uint[] array9 = this.decryptKeys;
uint[] array10 = this.state;
this.theta(array10, array9);
uint[] array11 = this.state;
uint[] array12 = NoekeonEngine.roundConstants;
uint num7;
array11[0] = num7;
uint[] array13 = this.state;
this.pi1(array13);
uint[] array14 = this.state;
this.gamma(array14);
uint[] array15 = this.state;
this.pi2(array15);
uint[] array16 = this.decryptKeys;
uint[] array17 = this.state;
this.theta(array17, array16);
uint[] array18 = this.state;
uint[] array19 = NoekeonEngine.roundConstants;
uint num8;
array18[0] = num8;
uint num9 = this.state[0];
uint num10 = this.state[0];
uint num11 = this.state[1];
uint num12 = this.state[1];
return 16;
}
// Token: 0x0600BBCE RID: 48078 RVA: 0x00296844 File Offset: 0x00294A44
[Token(Token = "0x600BBCE")]
[Address(RVA = "0x272B250", Offset = "0x272A250", VA = "0x18272B250")]
private void gamma(uint[] a)
{
int length = a.Length;
uint num = a[1];
a[0] = num;
a[0] = num;
uint num2 = a[1];
a[1] = num;
a[0] = num2;
uint num3 = a[1];
a[1] = num3;
uint num4 = a[1];
a[0] = num4;
}
// Token: 0x0600BBCF RID: 48079 RVA: 0x002968B0 File Offset: 0x00294AB0
[Token(Token = "0x600BBCF")]
[Address(RVA = "0x272B6C0", Offset = "0x272A6C0", VA = "0x18272B6C0")]
private void theta(uint[] a, uint[] k)
{
int length = a.Length;
int num = 0;
uint num2 = k[num];
num++;
int length2 = a.Length;
}
// Token: 0x0600BBD0 RID: 48080 RVA: 0x002968E0 File Offset: 0x00294AE0
[Token(Token = "0x600BBD0")]
[Address(RVA = "0x272B490", Offset = "0x272A490", VA = "0x18272B490")]
private void pi1(uint[] a)
{
uint num = a[0];
num += num;
a[0] = num;
a[1] = num;
num = a[1];
a[1] = num;
}
// Token: 0x0600BBD1 RID: 48081 RVA: 0x00296920 File Offset: 0x00294B20
[Token(Token = "0x600BBD1")]
[Address(RVA = "0x272B520", Offset = "0x272A520", VA = "0x18272B520")]
private void pi2(uint[] a)
{
uint num = a[0];
a[0] = num;
a[1] = num;
num = a[1];
a[1] = num;
}
// Token: 0x0600BBD2 RID: 48082 RVA: 0x0029695C File Offset: 0x00294B5C
[Token(Token = "0x600BBD2")]
[Address(RVA = "0x272B5B0", Offset = "0x272A5B0", VA = "0x18272B5B0")]
private uint rotl(uint x, int y)
{
return x;
}
// Token: 0x0600BBD3 RID: 48083 RVA: 0x0029696C File Offset: 0x00294B6C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BBD3")]
[Address(RVA = "0x272A980", Offset = "0x2729980", VA = "0x18272A980")]
static NoekeonEngine()
{
uint[] array = new uint[17];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AF3E960D2F0572119C78CAF04B900985A299000E).FieldHandle);
NoekeonEngine.roundConstants = array;
}
// Token: 0x04007667 RID: 30311
[Token(Token = "0x4007667")]
private const int GenericSize = 16;
// Token: 0x04007668 RID: 30312
[Token(Token = "0x4007668")]
private static readonly uint[] nullVector = new uint[4];
// Token: 0x04007669 RID: 30313
[Token(Token = "0x4007669")]
private static readonly uint[] roundConstants;
// Token: 0x0400766A RID: 30314
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400766A")]
private uint[] state;
// Token: 0x0400766B RID: 30315
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400766B")]
private uint[] subKeys;
// Token: 0x0400766C RID: 30316
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400766C")]
private uint[] decryptKeys;
// Token: 0x0400766D RID: 30317
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400766D")]
private bool _initialised;
// Token: 0x0400766E RID: 30318
[FieldOffset(Offset = "0x29")]
[Token(Token = "0x400766E")]
private bool _forEncryption;
}
}
@@ -0,0 +1,103 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7A RID: 7546
[Token(Token = "0x2001D7A")]
public class NullEngine : IBlockCipher
{
// Token: 0x0600BBD4 RID: 48084 RVA: 0x002969A0 File Offset: 0x00294BA0
[Token(Token = "0x600BBD4")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public NullEngine()
{
this.Reset();
}
// Token: 0x0600BBD5 RID: 48085 RVA: 0x002969B4 File Offset: 0x00294BB4
[Token(Token = "0x600BBD5")]
[Address(RVA = "0x73F650", Offset = "0x73E650", VA = "0x18073F650", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
this.initialised = true;
}
// Token: 0x17001D76 RID: 7542
// (get) Token: 0x0600BBD6 RID: 48086 RVA: 0x002969C8 File Offset: 0x00294BC8
[Token(Token = "0x17001D76")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBD6")]
[Address(RVA = "0x272B9B0", Offset = "0x272A9B0", VA = "0x18272B9B0", Slot = "11")]
get
{
return "Null";
}
}
// Token: 0x17001D77 RID: 7543
// (get) Token: 0x0600BBD7 RID: 48087 RVA: 0x002969DC File Offset: 0x00294BDC
[Token(Token = "0x17001D77")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BBD7")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "12")]
get
{
return true;
}
}
// Token: 0x0600BBD8 RID: 48088 RVA: 0x002969EC File Offset: 0x00294BEC
[Token(Token = "0x600BBD8")]
[Address(RVA = "0x4E8690", Offset = "0x4E7690", VA = "0x1804E8690", Slot = "13")]
public virtual int GetBlockSize()
{
return 1;
}
// Token: 0x0600BBD9 RID: 48089 RVA: 0x002969FC File Offset: 0x00294BFC
[Token(Token = "0x600BBD9")]
[Address(RVA = "0x272B860", Offset = "0x272A860", VA = "0x18272B860", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BBD9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NullEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:InvalidOperationException(var_2_22, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Null engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BBDA RID: 48090 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BBDA")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0400766F RID: 30319
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400766F")]
private bool initialised;
// Token: 0x04007670 RID: 30320
[Token(Token = "0x4007670")]
private const int BlockSize = 1;
}
}
@@ -0,0 +1,435 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7B RID: 7547
[Token(Token = "0x2001D7B")]
public class RC2Engine : IBlockCipher
{
// Token: 0x0600BBDB RID: 48091 RVA: 0x00296A2C File Offset: 0x00294C2C
[Token(Token = "0x600BBDB")]
[Address(RVA = "0x272C9C0", Offset = "0x272B9C0", VA = "0x18272C9C0")]
private int[] GenerateWorkingKey(byte[] key, int bits)
{
int[] array = new int[128];
int num = 0;
int num2 = key.Length;
if (num != num2)
{
num++;
byte b;
array[0] = (int)b;
}
uint num3;
if (num2 < (int)num3)
{
int num4 = num2 - 1;
int num5 = array[num4];
int length = array.Length;
byte[] array2 = RC2Engine.piTable;
num++;
int num6 = array[num];
num6 += num5;
num2++;
byte b2;
array[0] = (int)b2;
}
byte[] array3 = RC2Engine.piTable;
num3 -= (uint)num;
byte b3;
array[0] = (int)b3;
uint num7;
num7 -= (uint)num;
int length2 = array.Length;
byte[] array4 = RC2Engine.piTable;
int num8 = array[(int)num7];
byte b4;
array[0] = (int)b4;
int[] array5 = new int[64];
int length3 = array5.Length;
if (num != length3)
{
int length4 = array.Length;
num++;
num += 2;
int num9;
array5[0] = num9;
}
return array5;
}
// Token: 0x0600BBDC RID: 48092 RVA: 0x00296B1C File Offset: 0x00294D1C
[Token(Token = "0x600BBDC")]
[Address(RVA = "0x272CDA0", Offset = "0x272BDA0", VA = "0x18272CDA0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BBDC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_56:
stloc:ArgumentException(var_12_67, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC2 init - "), ldloc:string(var_11))))
}
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: 0x0600BBDD RID: 48093 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BBDD")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "11")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001D78 RID: 7544
// (get) Token: 0x0600BBDE RID: 48094 RVA: 0x00296B94 File Offset: 0x00294D94
[Token(Token = "0x17001D78")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBDE")]
[Address(RVA = "0x272D160", Offset = "0x272C160", VA = "0x18272D160", Slot = "12")]
get
{
return "RC2";
}
}
// Token: 0x17001D79 RID: 7545
// (get) Token: 0x0600BBDF RID: 48095 RVA: 0x00296BA8 File Offset: 0x00294DA8
[Token(Token = "0x17001D79")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BBDF")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "13")]
get
{
}
}
// Token: 0x0600BBE0 RID: 48096 RVA: 0x00296BB8 File Offset: 0x00294DB8
[Token(Token = "0x600BBE0")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BBE1 RID: 48097 RVA: 0x00296BC8 File Offset: 0x00294DC8
[Token(Token = "0x600BBE1")]
[Address(RVA = "0x272CFD0", Offset = "0x272BFD0", VA = "0x18272CFD0", Slot = "15")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BBE1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:InvalidOperationException(var_1_2F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RC2 engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BBE2 RID: 48098 RVA: 0x00296C04 File Offset: 0x00294E04
[Token(Token = "0x600BBE2")]
[Address(RVA = "0x272D0D0", Offset = "0x272C0D0", VA = "0x18272D0D0")]
private int RotateWordLeft(int x, int y)
{
uint num;
num -= (uint)y;
return x;
}
// Token: 0x0600BBE3 RID: 48099 RVA: 0x00296C18 File Offset: 0x00294E18
[Token(Token = "0x600BBE3")]
[Address(RVA = "0x272C1B0", Offset = "0x272B1B0", VA = "0x18272C1B0")]
private void EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int length = input.Length;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
int num = inOff + 1;
int[] array = this.workingKey;
byte b5;
byte b6;
b5 += b6;
int i = 0;
int length2 = array.Length;
b6 = b;
int num2 = array[i];
num2 += (int)b6;
b6 = b3;
num2 += (int)b5;
b6 = (byte)((int)b6 + num2);
b5 = b6;
b6 += b6;
b6 = b5;
int num3;
num3 += (int)b6;
b6 = b5;
num3 += (int)b4;
b6 = (byte)((int)b6 + num3);
b4 = b6;
b6 = b4;
int num4;
num4 += (int)b6;
b6 = b5;
num4 += (int)b3;
b6 = (byte)((int)b6 + num4);
b3 = b6;
i += 3;
int num5 = array[i];
b6 = b3;
i += 4;
num5 += (int)b6;
b6 = b4;
num5 += (int)b;
b6 = (byte)((int)b6 + num5);
b = b6;
while (i <= 16)
{
}
b6 = b;
int num6 = array[(int)b6];
num6 += (int)b5;
b4 = b3;
b6 = b;
uint num8;
int num7 = array[(int)num8];
num7 += (int)b6;
b6 = b3;
num7 += num6;
b6 = (byte)((int)b6 + num7);
b5 = b6;
b6 += b6;
uint num9 = num8 + 1U;
int num10 = array[(int)num9];
b6 = b5;
num10 += (int)b6;
b6 = b;
num10 += (int)b4;
b6 = (byte)((int)b6 + num10);
b4 = b6;
int num11 = array[(int)b6];
b6 = b4;
num11 += (int)b6;
b6 = b4;
num11 += (int)b3;
b6 = (byte)((int)b6 + num11);
b3 = b6;
num8 += (uint)3;
int num12 = array[(int)num8];
b6 = b3;
num8 += (uint)4;
num12 += (int)b6;
b6 = b4;
num12 += (int)b;
b6 = (byte)((int)b6 + num12);
b = b6;
b6 = b;
while (num8 <= (uint)40)
{
}
int num13 = array[(int)b6];
num13 += (int)b5;
b4 = b3;
b6 = b;
uint num15;
int num14 = array[(int)num15];
num14 += (int)b6;
b6 = b3;
num14 += num13;
b6 = (byte)((int)b6 + num14);
b5 = b6;
b6 += b6;
uint num16 = num15 + 1U;
int num17 = array[(int)num16];
b6 = b5;
num17 += (int)b6;
b6 = b;
num17 += (int)b4;
b6 = (byte)((int)b6 + num17);
b4 = b6;
int num18 = array[(int)b6];
b6 = b4;
num18 += (int)b6;
b6 = b5;
num18 += (int)b3;
b6 = (byte)((int)b6 + num18);
b3 = b6;
num15 += (uint)3;
int num19 = array[(int)num15];
b6 = b3;
num15 += (uint)4;
num19 += (int)b6;
b6 = b4;
num19 += (int)b;
b6 = (byte)((int)b6 + num19);
b = b6;
}
// Token: 0x0600BBE4 RID: 48100 RVA: 0x00296ECC File Offset: 0x002950CC
[Token(Token = "0x600BBE4")]
[Address(RVA = "0x272B9E0", Offset = "0x272A9E0", VA = "0x18272B9E0")]
private void DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int length = input.Length;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
int num = inOff + 1;
int[] array = this.workingKey;
byte b5;
byte b6;
b5 += b6;
int length2 = array.Length;
b = b3;
b6 = b3;
b -= b6;
b6 = b4;
b -= b6;
b3 = b;
b = b4;
b6 = b4;
b3 -= b6;
b6 = b4;
b3 -= b6;
uint num3;
uint num2 = num3 + 1U;
b4 = b;
b4 -= b5;
b5 = b;
b4 -= b5;
b5 = b;
b5 -= b5;
b5 = b3;
b5 -= b5;
while (num3 >= (uint)44)
{
}
b5 = b3;
b5 = b4;
b5 = b;
b = b3;
b5 = b3;
b -= b5;
b5 = b4;
b -= b5;
b3 = b;
b = b4;
b5 = b4;
b3 -= b5;
b5 = b4;
b3 -= b5;
uint num5;
uint num4 = num5 + 1U;
b4 = b;
b4 -= b5;
b5 = b;
b4 -= b5;
b5 = b;
b5 -= b5;
b5 = b3;
b5 -= b5;
while (num5 >= (uint)20)
{
}
b5 = b3;
b5 = b4;
b5 = b;
b = b3;
b5 = b3;
b -= b5;
b5 = b4;
b -= b5;
b3 = b;
b = b4;
b5 = b4;
b3 -= b5;
b3 -= b5;
uint num7;
uint num6 = num7 + 1U;
b4 = b;
b4 -= b5;
b5 = b;
b4 -= b5;
b5 = b;
b5 -= b5;
b5 = b3;
b5 -= b5;
array[0] = (int)b5;
}
// Token: 0x0600BBE5 RID: 48101 RVA: 0x00297044 File Offset: 0x00295244
[Token(Token = "0x600BBE5")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public RC2Engine()
{
this.Reset();
}
// Token: 0x0600BBE6 RID: 48102 RVA: 0x00297058 File Offset: 0x00295258
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BBE6")]
[Address(RVA = "0x272D100", Offset = "0x272C100", VA = "0x18272D100")]
static RC2Engine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.0392525BCB01691D1F319D89F2C12BF93A478467).FieldHandle);
RC2Engine.piTable = array;
}
// Token: 0x04007671 RID: 30321
[Token(Token = "0x4007671")]
private static readonly byte[] piTable;
// Token: 0x04007672 RID: 30322
[Token(Token = "0x4007672")]
private const int BLOCK_SIZE = 8;
// Token: 0x04007673 RID: 30323
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007673")]
private int[] workingKey;
// Token: 0x04007674 RID: 30324
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007674")]
private bool encrypting;
}
}
@@ -0,0 +1,227 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7C RID: 7548
[Token(Token = "0x2001D7C")]
public class RC2WrapEngine : IWrapper
{
// Token: 0x0600BBE7 RID: 48103 RVA: 0x00297084 File Offset: 0x00295284
[Token(Token = "0x600BBE7")]
[Address(RVA = "0x272D2F0", Offset = "0x272C2F0", VA = "0x18272D2F0", Slot = "8")]
public virtual void Init(bool forWrapping, ICipherParameters parameters)
{
for (;;)
{
this.forWrapping = forWrapping;
RC2Engine rc2Engine;
rc2Engine.Reset();
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(rc2Engine);
this.engine = cbcBlockCipher;
if (parameters != 0 && parameters != 0)
{
int num = 0;
if (parameters == 0)
{
continue;
}
this.sr = num;
}
SecureRandom secureRandom = new SecureRandom();
this.sr = secureRandom;
if (parameters == 0 || parameters == 0)
{
break;
}
if (forWrapping && parameters != 0)
{
this.paramPlusIV = parameters;
ParametersWithIV parametersWithIV = this.paramPlusIV;
byte[] array;
this.iv = array;
ICipherParameters cipherParameters = parametersWithIV.parameters;
if (array.Length == 8)
{
break;
}
}
}
this.parameters = parameters;
if (this.forWrapping != parameters)
{
byte[] array2 = new byte[8];
SecureRandom secureRandom2 = this.sr;
this.iv = array2;
double num2 = secureRandom2.NextDouble();
ICipherParameters cipherParameters2 = this.parameters;
byte[] array3 = this.iv;
ParametersWithIV parametersWithIV2 = new ParametersWithIV(cipherParameters2, array3);
this.paramPlusIV = parametersWithIV2;
}
}
// Token: 0x17001D7A RID: 7546
// (get) Token: 0x0600BBE8 RID: 48104 RVA: 0x00297170 File Offset: 0x00295370
[Token(Token = "0x17001D7A")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBE8")]
[Address(RVA = "0x272E1C0", Offset = "0x272D1C0", VA = "0x18272E1C0", Slot = "9")]
get
{
return "RC2";
}
}
// Token: 0x0600BBE9 RID: 48105 RVA: 0x00297184 File Offset: 0x00295384
[Token(Token = "0x600BBE9")]
[Address(RVA = "0x272DC30", Offset = "0x272CC30", VA = "0x18272DC30", Slot = "10")]
public virtual byte[] Wrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BBE9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_27B:
stloc:InvalidOperationException(var_52_285, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not multiple of block length")))
}
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: 0x0600BBEA RID: 48106 RVA: 0x00297418 File Offset: 0x00295618
[Token(Token = "0x600BBEA")]
[Address(RVA = "0x272D5E0", Offset = "0x272C5E0", VA = "0x18272D5E0", Slot = "11")]
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600BBEA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_29E:
stloc:InvalidOperationException(var_58_2A8, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not set for unwrapping")))
}
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: 0x0600BBEB RID: 48107 RVA: 0x002976D0 File Offset: 0x002958D0
[Token(Token = "0x600BBEB")]
[Address(RVA = "0x272D190", Offset = "0x272C190", VA = "0x18272D190")]
private byte[] CalculateCmsKeyChecksum(byte[] key)
{
IDigest digest = this.sha1;
int length = key.Length;
IDigest digest2 = this.sha1;
byte[] array = new byte[8];
byte[] array2 = this.digest;
int num = 0;
int num2 = 0;
ulong num3;
Array.Copy(array2, num2, array, num, (int)num3);
return array;
}
// Token: 0x0600BBEC RID: 48108 RVA: 0x00297720 File Offset: 0x00295920
[Token(Token = "0x600BBEC")]
[Address(RVA = "0x272D270", Offset = "0x272C270", VA = "0x18272D270")]
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
{
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
}
// Token: 0x0600BBED RID: 48109 RVA: 0x0029773C File Offset: 0x0029593C
[Token(Token = "0x600BBED")]
[Address(RVA = "0x272E150", Offset = "0x272D150", VA = "0x18272E150")]
public RC2WrapEngine()
{
Sha1Digest sha1Digest = new Sha1Digest();
this.sha1 = sha1Digest;
byte[] array = new byte[20];
this.digest = array;
base..ctor();
}
// Token: 0x0600BBEE RID: 48110 RVA: 0x0029776C File Offset: 0x0029596C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BBEE")]
[Address(RVA = "0x272E0F0", Offset = "0x272D0F0", VA = "0x18272E0F0")]
static RC2WrapEngine()
{
byte[] array = new byte[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
RC2WrapEngine.IV2 = array;
}
// Token: 0x04007675 RID: 30325
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007675")]
private CbcBlockCipher engine;
// Token: 0x04007676 RID: 30326
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007676")]
private ICipherParameters parameters;
// Token: 0x04007677 RID: 30327
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007677")]
private ParametersWithIV paramPlusIV;
// Token: 0x04007678 RID: 30328
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007678")]
private byte[] iv;
// Token: 0x04007679 RID: 30329
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007679")]
private bool forWrapping;
// Token: 0x0400767A RID: 30330
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400767A")]
private SecureRandom sr;
// Token: 0x0400767B RID: 30331
[Token(Token = "0x400767B")]
private static readonly byte[] IV2;
// Token: 0x0400767C RID: 30332
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400767C")]
private IDigest sha1;
// Token: 0x0400767D RID: 30333
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400767D")]
private byte[] digest;
}
}
@@ -0,0 +1,167 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7D RID: 7549
[Token(Token = "0x2001D7D")]
public class RC4Engine : IStreamCipher
{
// Token: 0x0600BBEF RID: 48111 RVA: 0x00297794 File Offset: 0x00295994
[Token(Token = "0x600BBEF")]
[Address(RVA = "0x272E1F0", Offset = "0x272D1F0", VA = "0x18272E1F0", Slot = "9")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BBEF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC4Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:ArgumentException(var_5_36, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC4 init - "), ldloc:string(var_4))))
}
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: 0x17001D7B RID: 7547
// (get) Token: 0x0600BBF0 RID: 48112 RVA: 0x002977D8 File Offset: 0x002959D8
[Token(Token = "0x17001D7B")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBF0")]
[Address(RVA = "0x272E9D0", Offset = "0x272D9D0", VA = "0x18272E9D0", Slot = "10")]
get
{
return "RC4";
}
}
// Token: 0x0600BBF1 RID: 48113 RVA: 0x002977EC File Offset: 0x002959EC
[Token(Token = "0x600BBF1")]
[Address(RVA = "0x272E600", Offset = "0x272D600", VA = "0x18272E600", Slot = "11")]
public virtual byte ReturnByte(byte input)
{
int num = this.x;
byte[] array = this.engineState;
num++;
this.x = num;
byte b;
this.y = (int)b;
int length = array.Length;
byte[] array2 = this.engineState;
int num2 = this.y;
byte[] array3 = this.engineState;
int num3 = this.x;
int length2 = array3.Length;
int num4 = this.y;
byte b2;
byte b3;
b2 += b3;
b3 = b2;
byte b4;
return b4;
}
// Token: 0x0600BBF2 RID: 48114 RVA: 0x00297864 File Offset: 0x00295A64
[Token(Token = "0x600BBF2")]
[Address(RVA = "0x272E380", Offset = "0x272D380", VA = "0x18272E380", Slot = "12")]
public virtual void ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
{
Check.DataLength(input, inOff, inOff, "input buffer too short");
if (length > 0)
{
int num = this.x;
byte[] array = this.engineState;
num++;
this.x = num;
byte b;
this.y = (int)b;
int length2 = array.Length;
byte[] array2 = this.engineState;
int num2 = this.y;
byte[] array3 = this.engineState;
int num3 = this.x;
int length3 = array3.Length;
int num4 = this.y;
byte b2;
byte b3;
b2 += b3;
}
}
// Token: 0x0600BBF3 RID: 48115 RVA: 0x002978EC File Offset: 0x00295AEC
[Token(Token = "0x600BBF3")]
[Address(RVA = "0x272E5F0", Offset = "0x272D5F0", VA = "0x18272E5F0", Slot = "13")]
public virtual void Reset()
{
byte[] array = this.workingKey;
this.SetKey(array);
}
// Token: 0x0600BBF4 RID: 48116 RVA: 0x00297908 File Offset: 0x00295B08
[Token(Token = "0x600BBF4")]
[Address(RVA = "0x272E770", Offset = "0x272D770", VA = "0x18272E770")]
private void SetKey(byte[] keyBytes)
{
int num = 0;
this.workingKey = keyBytes;
this.x = num;
if (this.engineState == num)
{
byte[] array = new byte[RC4Engine.STATE_LENGTH];
this.engineState = array;
}
byte[] array2 = this.engineState;
if (num < "{il2cpp array field local5->}")
{
int length = this.engineState.Length;
byte b = (byte)((int)b + num);
byte b2;
b += b2;
byte[] array3 = this.engineState;
num++;
}
}
// Token: 0x0600BBF5 RID: 48117 RVA: 0x0029797C File Offset: 0x00295B7C
[Token(Token = "0x600BBF5")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public RC4Engine()
{
}
// Token: 0x0400767E RID: 30334
[Token(Token = "0x400767E")]
private static readonly int STATE_LENGTH;
// Token: 0x0400767F RID: 30335
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400767F")]
private byte[] engineState;
// Token: 0x04007680 RID: 30336
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007680")]
private int x;
// Token: 0x04007681 RID: 30337
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4007681")]
private int y;
// Token: 0x04007682 RID: 30338
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007682")]
private byte[] workingKey;
}
}
@@ -0,0 +1,258 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7E RID: 7550
[Token(Token = "0x2001D7E")]
public class RC532Engine : IBlockCipher
{
// Token: 0x0600BBF7 RID: 48119 RVA: 0x002979A0 File Offset: 0x00295BA0
[Token(Token = "0x600BBF7")]
[Address(RVA = "0x272F6F0", Offset = "0x272E6F0", VA = "0x18272F6F0")]
public RC532Engine()
{
this.Reset();
this._noRounds = (int)((ulong)12L);
}
// Token: 0x17001D7C RID: 7548
// (get) Token: 0x0600BBF8 RID: 48120 RVA: 0x002979C0 File Offset: 0x00295BC0
[Token(Token = "0x17001D7C")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BBF8")]
[Address(RVA = "0x272F710", Offset = "0x272E710", VA = "0x18272F710", Slot = "10")]
get
{
return "RC5-32";
}
}
// Token: 0x17001D7D RID: 7549
// (get) Token: 0x0600BBF9 RID: 48121 RVA: 0x002979D4 File Offset: 0x00295BD4
[Token(Token = "0x17001D7D")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BBF9")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BBFA RID: 48122 RVA: 0x002979E4 File Offset: 0x00295BE4
[Token(Token = "0x600BBFA")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BBFB RID: 48123 RVA: 0x002979F4 File Offset: 0x00295BF4
[Token(Token = "0x600BBFB")]
[Address(RVA = "0x272F0D0", Offset = "0x272E0D0", VA = "0x18272F0D0", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BBFB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC532Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4A:
stloc:ArgumentException(var_8_5B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC532 init - "), ldloc:string(var_7))))
}
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: 0x0600BBFC RID: 48124 RVA: 0x00297A60 File Offset: 0x00295C60
[Token(Token = "0x600BBFC")]
[Address(RVA = "0x272F300", Offset = "0x272E300", VA = "0x18272F300", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
if (this.forEncryption)
{
int num;
return num;
}
int num2;
return num2;
}
// Token: 0x0600BBFD RID: 48125 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BBFD")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BBFE RID: 48126 RVA: 0x00297A7C File Offset: 0x00295C7C
[Token(Token = "0x600BBFE")]
[Address(RVA = "0x272F370", Offset = "0x272E370", VA = "0x18272F370")]
private void SetKey(byte[] key)
{
int num = key.Length;
num += 3;
int[] array = new int[key];
int num2 = 0;
int length = key.Length;
if (num2 != length)
{
num2 += key;
num2 -= key;
num2++;
}
int[] array2 = new int[this._noRounds];
this._S = array2;
int p = RC532Engine.P32;
array2[0] = p;
int[] s = this._S;
uint num3;
int[] s2;
if (num3 < (uint)s.Length)
{
int length2 = s.Length;
uint num4 = num3 - 1U;
int num5 = s[(int)num4];
int length3 = s.Length;
num3 += (uint)1;
int num6 = RC532Engine.Q32;
num6 += num5;
s[0] = num6;
s2 = this._S;
}
int length4 = s2.Length;
if (array.Length > length4)
{
}
if (num3 > (uint)0)
{
s2[0] = 0;
int num7 = array[num2];
num7 += 0;
num7 += num2;
array[0] = num7;
int[] s3 = this._S;
num2++;
}
}
// Token: 0x0600BBFF RID: 48127 RVA: 0x00297B8C File Offset: 0x00295D8C
[Token(Token = "0x600BBFF")]
[Address(RVA = "0x272ED60", Offset = "0x272DD60", VA = "0x18272ED60")]
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = this.BytesToWord(input, inOff);
int[] s = this._S;
int length = s.Length;
int num2 = s[0];
num2 += num;
int length2 = input.Length;
byte b = input[input];
num = inOff + 7;
int noRounds = this._noRounds;
uint num4;
uint num3 = num4 + 1U;
byte b2;
b = b2;
int num5 = s[(int)num3];
num5 += (int)b;
uint num6 = num3 + 1U;
num4 += (uint)1;
num3 += (uint)2;
while (num4 <= (uint)noRounds)
{
}
throw new NullReferenceException();
}
// Token: 0x0600BC00 RID: 48128 RVA: 0x00297C18 File Offset: 0x00295E18
[Token(Token = "0x600BC00")]
[Address(RVA = "0x272EA00", Offset = "0x272DA00", VA = "0x18272EA00")]
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = this.BytesToWord(input, inOff);
int length = input.Length;
num = inOff + 7;
int i = this._noRounds;
int length2 = this._S.Length;
byte b2;
byte b = b2 + 1;
while (i >= 1)
{
}
int[] s = this._S;
byte b3;
this._S[0] = (int)b3;
throw new NullReferenceException();
}
// Token: 0x0600BC01 RID: 48129 RVA: 0x00297C78 File Offset: 0x00295E78
[Token(Token = "0x600BC01")]
[Address(RVA = "0x272F330", Offset = "0x272E330", VA = "0x18272F330")]
private int RotateLeft(int x, int y)
{
return x;
}
// Token: 0x0600BC02 RID: 48130 RVA: 0x00297C88 File Offset: 0x00295E88
[Token(Token = "0x600BC02")]
[Address(RVA = "0x272F350", Offset = "0x272E350", VA = "0x18272F350")]
private int RotateRight(int x, int y)
{
return x;
}
// Token: 0x0600BC03 RID: 48131 RVA: 0x00297C98 File Offset: 0x00295E98
[Token(Token = "0x600BC03")]
[Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")]
private int BytesToWord(byte[] src, int srcOff)
{
int length = src.Length;
int num = srcOff + 1;
throw new NullReferenceException();
}
// Token: 0x0600BC04 RID: 48132 RVA: 0x00297CB8 File Offset: 0x00295EB8
[Token(Token = "0x600BC04")]
[Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")]
private void WordToBytes(int word, byte[] dst, int dstOff)
{
int num = dstOff + 1;
}
// Token: 0x04007683 RID: 30339
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007683")]
private int _noRounds;
// Token: 0x04007684 RID: 30340
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007684")]
private int[] _S;
// Token: 0x04007685 RID: 30341
[Token(Token = "0x4007685")]
private static readonly int P32;
// Token: 0x04007686 RID: 30342
[Token(Token = "0x4007686")]
private static readonly int Q32;
// Token: 0x04007687 RID: 30343
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007687")]
private bool forEncryption;
}
}
@@ -0,0 +1,310 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D7F RID: 7551
[Token(Token = "0x2001D7F")]
public class RC564Engine : IBlockCipher
{
// Token: 0x0600BC06 RID: 48134 RVA: 0x00297CE0 File Offset: 0x00295EE0
[Token(Token = "0x600BC06")]
[Address(RVA = "0x272F6F0", Offset = "0x272E6F0", VA = "0x18272F6F0")]
public RC564Engine()
{
this.Reset();
this._noRounds = (int)((ulong)12L);
}
// Token: 0x17001D7E RID: 7550
// (get) Token: 0x0600BC07 RID: 48135 RVA: 0x00297D00 File Offset: 0x00295F00
[Token(Token = "0x17001D7E")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC07")]
[Address(RVA = "0x2730790", Offset = "0x272F790", VA = "0x182730790", Slot = "10")]
get
{
return "RC5-64";
}
}
// Token: 0x17001D7F RID: 7551
// (get) Token: 0x0600BC08 RID: 48136 RVA: 0x00297D14 File Offset: 0x00295F14
[Token(Token = "0x17001D7F")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BC08")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BC09 RID: 48137 RVA: 0x00297D24 File Offset: 0x00295F24
[Token(Token = "0x600BC09")]
[Address(RVA = "0x272FE70", Offset = "0x272EE70", VA = "0x18272FE70", Slot = "12")]
public virtual int GetBlockSize()
{
int num = RC564Engine.bytesPerWord;
return num + num;
}
// Token: 0x0600BC0A RID: 48138 RVA: 0x00297D3C File Offset: 0x00295F3C
[Token(Token = "0x600BC0A")]
[Address(RVA = "0x272FED0", Offset = "0x272EED0", VA = "0x18272FED0", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC0A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC564Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_35:
stloc:ArgumentException(var_5_46, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC564 init - "), ldloc:string(var_4))))
}
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: 0x0600BC0B RID: 48139 RVA: 0x00297D90 File Offset: 0x00295F90
[Token(Token = "0x600BC0B")]
[Address(RVA = "0x2730060", Offset = "0x272F060", VA = "0x182730060", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
if (this.forEncryption)
{
int num;
return num;
}
int num2;
return num2;
}
// Token: 0x0600BC0C RID: 48140 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC0C")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC0D RID: 48141 RVA: 0x00297DAC File Offset: 0x00295FAC
[Token(Token = "0x600BC0D")]
[Address(RVA = "0x27301B0", Offset = "0x272F1B0", VA = "0x1827301B0")]
private void SetKey(byte[] key)
{
int num = RC564Engine.bytesPerWord;
int num2 = key.Length;
num2 += num;
long[] array = new long[num2];
int num3 = 0;
if (num3 != key.Length)
{
num3++;
}
long[] array2 = new long[this._noRounds];
this._S = array2;
long p = RC564Engine.P64;
array2[0] = p;
long[] s = this._S;
uint num4;
long[] s2;
if (num4 < (uint)s.Length)
{
int length = s.Length;
uint num5 = num4 - 1U;
long num6 = s[(int)num5];
int length2 = s.Length;
num4 += (uint)1;
long num7 = RC564Engine.Q64;
num7 += num6;
s[0] = num7;
s2 = this._S;
}
int length3 = s2.Length;
if (array.Length > length3)
{
}
if (s2 > 0)
{
long num8 = s2[num3];
num8 += (long)num3;
num8 += (long)num3;
int num9 = RC564Engine.wordSize;
int num10 = num9 - 1;
num9 -= num10;
s2[0] = num8;
long num11 = array[num3];
num11 += num8;
num11 += (long)num3;
int num12 = RC564Engine.wordSize;
int num13 = num12 - 1;
num12 -= num13;
array[0] = num11;
num3++;
}
}
// Token: 0x0600BC0E RID: 48142 RVA: 0x00297EF8 File Offset: 0x002960F8
[Token(Token = "0x600BC0E")]
[Address(RVA = "0x272FAF0", Offset = "0x272EAF0", VA = "0x18272FAF0")]
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
long num = this.BytesToWord(input, inOff);
long num2 = this._S[0];
num2 += num;
int num3 = RC564Engine.bytesPerWord;
num3 += inOff;
long num4 = this.BytesToWord(input, num3);
long num5 = this._S[1];
num5 += num4;
uint num7;
uint num6 = num7 + 1U;
long[] s = this._S;
int num8 = RC564Engine.wordSize;
int num9 = num8 - 1;
num8 -= num9;
long[] s2 = this._S;
uint num10 = num6 + 1U;
num7 += (uint)1;
num6 += (uint)2;
int num11 = RC564Engine.wordSize;
int num12 = num11 - 1;
num11 -= num12;
while (num7 <= (uint)this._noRounds)
{
}
int num13 = 0;
int num14 = RC564Engine.bytesPerWord;
if (num13 < num14)
{
num13++;
}
return 0;
}
// Token: 0x0600BC0F RID: 48143 RVA: 0x00297FCC File Offset: 0x002961CC
[Token(Token = "0x600BC0F")]
[Address(RVA = "0x272F800", Offset = "0x272E800", VA = "0x18272F800")]
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
long num = this.BytesToWord(input, inOff);
int num2 = RC564Engine.bytesPerWord;
num2 += inOff;
long num3 = this.BytesToWord(input, num2);
int i = this._noRounds;
long[] s = this._S;
int num4 = RC564Engine.wordSize;
int num5 = num4 - 1;
num4 -= num5;
long[] s2 = this._S;
int num6 = RC564Engine.wordSize;
int num7 = num6 - 1;
num6 -= num7;
while (i >= 1)
{
}
long[] s3 = this._S;
long num8 = this._S[1];
num3 -= num8;
num = num3;
int num9 = RC564Engine.bytesPerWord;
this.WordToBytes(num, outBytes, num9);
int num10 = RC564Engine.bytesPerWord;
return num10 + num10;
}
// Token: 0x0600BC10 RID: 48144 RVA: 0x00298088 File Offset: 0x00296288
[Token(Token = "0x600BC10")]
[Address(RVA = "0x2730090", Offset = "0x272F090", VA = "0x182730090")]
private long RotateLeft(long x, long y)
{
int num = RC564Engine.wordSize;
int num2 = num - 1;
num -= num2;
return x;
}
// Token: 0x0600BC11 RID: 48145 RVA: 0x002980A8 File Offset: 0x002962A8
[Token(Token = "0x600BC11")]
[Address(RVA = "0x2730120", Offset = "0x272F120", VA = "0x182730120")]
private long RotateRight(long x, long y)
{
int num = RC564Engine.wordSize;
int num2 = num - 1;
num -= num2;
return x;
}
// Token: 0x0600BC12 RID: 48146 RVA: 0x002980C8 File Offset: 0x002962C8
[Token(Token = "0x600BC12")]
[Address(RVA = "0x272F740", Offset = "0x272E740", VA = "0x18272F740")]
private long BytesToWord(byte[] src, int srcOff)
{
int num = 0;
byte b = src[src];
num += (int)b;
throw new NullReferenceException();
}
// Token: 0x0600BC13 RID: 48147 RVA: 0x002980E8 File Offset: 0x002962E8
[Token(Token = "0x600BC13")]
[Address(RVA = "0x2730640", Offset = "0x272F640", VA = "0x182730640")]
private void WordToBytes(long word, byte[] dst, int dstOff)
{
}
// Token: 0x0600BC14 RID: 48148 RVA: 0x002980FC File Offset: 0x002962FC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC14")]
[Address(RVA = "0x2730700", Offset = "0x272F700", VA = "0x182730700")]
static RC564Engine()
{
ulong num;
RC564Engine.P64 = (long)num;
ulong num2;
RC564Engine.Q64 = (long)num2;
}
// Token: 0x04007688 RID: 30344
[Token(Token = "0x4007688")]
private static readonly int wordSize;
// Token: 0x04007689 RID: 30345
[Token(Token = "0x4007689")]
private static readonly int bytesPerWord = RC564Engine.wordSize;
// Token: 0x0400768A RID: 30346
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400768A")]
private int _noRounds;
// Token: 0x0400768B RID: 30347
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400768B")]
private long[] _S;
// Token: 0x0400768C RID: 30348
[Token(Token = "0x400768C")]
private static readonly long P64;
// Token: 0x0400768D RID: 30349
[Token(Token = "0x400768D")]
private static readonly long Q64;
// Token: 0x0400768E RID: 30350
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400768E")]
private bool forEncryption;
}
}
@@ -0,0 +1,333 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D80 RID: 7552
[Token(Token = "0x2001D80")]
public class RC6Engine : IBlockCipher
{
// Token: 0x0600BC15 RID: 48149 RVA: 0x00298120 File Offset: 0x00296320
[Token(Token = "0x600BC15")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public RC6Engine()
{
this.Reset();
}
// Token: 0x17001D80 RID: 7552
// (get) Token: 0x0600BC16 RID: 48150 RVA: 0x00298134 File Offset: 0x00296334
[Token(Token = "0x17001D80")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC16")]
[Address(RVA = "0x2731D20", Offset = "0x2730D20", VA = "0x182731D20", Slot = "10")]
get
{
return "RC6";
}
}
// Token: 0x17001D81 RID: 7553
// (get) Token: 0x0600BC17 RID: 48151 RVA: 0x00298148 File Offset: 0x00296348
[Token(Token = "0x17001D81")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BC17")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BC18 RID: 48152 RVA: 0x00298158 File Offset: 0x00296358
[Token(Token = "0x600BC18")]
[Address(RVA = "0x2731360", Offset = "0x2730360", VA = "0x182731360", Slot = "12")]
public virtual int GetBlockSize()
{
return RC6Engine.bytesPerWord;
}
// Token: 0x0600BC19 RID: 48153 RVA: 0x0029816C File Offset: 0x0029636C
[Token(Token = "0x600BC19")]
[Address(RVA = "0x27313C0", Offset = "0x27303C0", VA = "0x1827313C0", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC19)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC6Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F:
stloc:ArgumentException(var_4_2F, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC6 init - "), ldloc:string(var_3))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BC1A RID: 48154 RVA: 0x002981AC File Offset: 0x002963AC
[Token(Token = "0x600BC1A")]
[Address(RVA = "0x2731520", Offset = "0x2730520", VA = "0x182731520", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BC1A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC6Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2C:
stloc:InvalidOperationException(var_4_36, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RC6 engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BC1B RID: 48155 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC1B")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC1C RID: 48156 RVA: 0x002981F0 File Offset: 0x002963F0
[Token(Token = "0x600BC1C")]
[Address(RVA = "0x2731730", Offset = "0x2730730", VA = "0x182731730")]
private void SetKey(byte[] key)
{
int num = RC6Engine.bytesPerWord;
int num2 = key.Length;
num2 += num;
int[] array = new int[num2];
num2 = key.Length;
int num3 = array[num2];
byte b = (byte)((int)b + num3);
array[0] = (int)b;
int[] array2 = new int[RC6Engine._noRounds];
this._S = array2;
int p = RC6Engine.P32;
array2[0] = p;
int[] s = this._S;
uint num4;
int[] s2;
if (num4 < (uint)s.Length)
{
int length = s.Length;
uint num5 = num4 - 1U;
int num6 = s[(int)num5];
int length2 = s.Length;
num4 += (uint)1;
int num7 = RC6Engine.Q32;
num7 += num6;
s[0] = num7;
s2 = this._S;
}
int length3 = s2.Length;
if (array.Length > length3)
{
}
int num8 = 0;
if (s2 > 0)
{
int num9 = s2[num8];
num9 += num8;
num9 += num8;
int num10 = RC6Engine.wordSize;
int num11 = num10 - 1;
num10 -= num11;
s2[0] = num9;
int num12 = array[num8];
num12 += num9;
num12 += num8;
int num13 = RC6Engine.wordSize;
int num14 = num13 - 1;
num13 -= num14;
array[0] = num12;
num8++;
}
}
// Token: 0x0600BC1D RID: 48157 RVA: 0x00298350 File Offset: 0x00296550
[Token(Token = "0x600BC1D")]
[Address(RVA = "0x2730C50", Offset = "0x272FC50", VA = "0x182730C50")]
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = this.BytesToWord(input, inOff);
int num2 = RC6Engine.bytesPerWord;
num2 += inOff;
int num3 = this.BytesToWord(input, num2);
int num4 = this.BytesToWord(input, num2);
int num5 = RC6Engine.bytesPerWord;
num5 += typeof(RC6Engine).TypeHandle;
int num6 = this.BytesToWord(input, num5);
int length = this._S.Length;
int num7 = RC6Engine.wordSize;
int num8 = num7 - 1;
num7 -= num8;
int num9 = RC6Engine.wordSize;
int num10 = num9 - 1;
num9 -= num10;
int[] s = this._S;
int num11 = RC6Engine.wordSize;
int num12 = num11 - 1;
num11 -= num12;
ulong num14;
ulong num13 = num14 + 1UL;
int num15 = RC6Engine.wordSize;
int num16 = num15 - 1;
num15 -= num16;
uint num17;
num17 += (uint)1;
int num18 = RC6Engine._noRounds;
num18 += num18;
num18 += 3;
num3 += num16;
int num19 = RC6Engine.bytesPerWord;
int num20 = 0;
int num21 = RC6Engine.bytesPerWord;
if (num20 < num21)
{
num20++;
}
int num22 = RC6Engine.bytesPerWord;
if (num20 < num22)
{
num20++;
}
int num23 = RC6Engine.bytesPerWord;
if (num20 < num23)
{
num20++;
}
return 0;
}
// Token: 0x0600BC1E RID: 48158 RVA: 0x00298488 File Offset: 0x00296688
[Token(Token = "0x600BC1E")]
[Address(RVA = "0x2730880", Offset = "0x272F880", VA = "0x182730880")]
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = this.BytesToWord(input, inOff);
int num2 = RC6Engine.bytesPerWord;
num2 += inOff;
int num3 = this.BytesToWord(input, num2);
int num4 = this.BytesToWord(input, num2);
int num5 = RC6Engine.bytesPerWord;
num5 += typeof(RC6Engine).TypeHandle;
int num6 = this.BytesToWord(input, num5);
int length = this._S.Length;
int noRounds = RC6Engine._noRounds;
num6 = num4;
int num7 = num4 * num;
int lgw = RC6Engine.LGW;
num7 = this.RotateLeft(num7, lgw);
int num8 = RC6Engine.LGW;
int[] s = this._S;
int num9 = inOff + 1;
num8 = num7;
num7 = this.RotateRight(num3, num8);
int[] s2 = this._S;
num3 = num6;
int num10;
num = this.RotateRight(num3, num10);
int[] s3 = this._S;
int num11 = s3[0];
num -= num11;
int num12 = RC6Engine.bytesPerWord;
int num13 = RC6Engine.bytesPerWord;
num13 += typeof(RC6Engine).TypeHandle;
return RC6Engine.bytesPerWord;
}
// Token: 0x0600BC1F RID: 48159 RVA: 0x0029858C File Offset: 0x0029678C
[Token(Token = "0x600BC1F")]
[Address(RVA = "0x2731630", Offset = "0x2730630", VA = "0x182731630")]
private int RotateLeft(int x, int y)
{
int num = RC6Engine.wordSize;
int num2 = num - 1;
num -= num2;
return x;
}
// Token: 0x0600BC20 RID: 48160 RVA: 0x002985AC File Offset: 0x002967AC
[Token(Token = "0x600BC20")]
[Address(RVA = "0x27316B0", Offset = "0x27306B0", VA = "0x1827316B0")]
private int RotateRight(int x, int y)
{
int num = RC6Engine.wordSize;
int num2 = num - 1;
num -= num2;
return x;
}
// Token: 0x0600BC21 RID: 48161 RVA: 0x002985CC File Offset: 0x002967CC
[Token(Token = "0x600BC21")]
[Address(RVA = "0x27307C0", Offset = "0x272F7C0", VA = "0x1827307C0")]
private int BytesToWord(byte[] src, int srcOff)
{
int num = 0;
byte b = src[src];
return num + (int)b;
}
// Token: 0x0600BC22 RID: 48162 RVA: 0x002985F0 File Offset: 0x002967F0
[Token(Token = "0x600BC22")]
[Address(RVA = "0x2731BB0", Offset = "0x2730BB0", VA = "0x182731BB0")]
private void WordToBytes(int word, byte[] dst, int dstOff)
{
}
// Token: 0x0400768F RID: 30351
[Token(Token = "0x400768F")]
private static readonly int wordSize;
// Token: 0x04007690 RID: 30352
[Token(Token = "0x4007690")]
private static readonly int bytesPerWord = RC6Engine.wordSize;
// Token: 0x04007691 RID: 30353
[Token(Token = "0x4007691")]
private static readonly int _noRounds;
// Token: 0x04007692 RID: 30354
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007692")]
private int[] _S;
// Token: 0x04007693 RID: 30355
[Token(Token = "0x4007693")]
private static readonly int P32;
// Token: 0x04007694 RID: 30356
[Token(Token = "0x4007694")]
private static readonly int Q32;
// Token: 0x04007695 RID: 30357
[Token(Token = "0x4007695")]
private static readonly int LGW;
// Token: 0x04007696 RID: 30358
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007696")]
private bool forEncryption;
}
}
@@ -0,0 +1,135 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D81 RID: 7553
[Token(Token = "0x2001D81")]
public class Rfc3211WrapEngine : IWrapper
{
// Token: 0x0600BC24 RID: 48164 RVA: 0x0029861C File Offset: 0x0029681C
[Token(Token = "0x600BC24")]
[Address(RVA = "0x27325E0", Offset = "0x27315E0", VA = "0x1827325E0")]
public Rfc3211WrapEngine(IBlockCipher engine)
{
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(engine);
this.engine = cbcBlockCipher;
}
// Token: 0x0600BC25 RID: 48165 RVA: 0x00298640 File Offset: 0x00296840
[Token(Token = "0x600BC25")]
[Address(RVA = "0x2731D50", Offset = "0x2730D50", VA = "0x182731D50", Slot = "8")]
public virtual void Init(bool forWrapping, ICipherParameters param)
{
/*
An exception occurred when decompiling this method (0600BC25)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4C:
stloc:ArgumentException(var_5_5B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("RFC3211Wrap requires an IV"), ldstr:string("param")))
}
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: 0x17001D82 RID: 7554
// (get) Token: 0x0600BC26 RID: 48166 RVA: 0x002986AC File Offset: 0x002968AC
[Token(Token = "0x17001D82")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC26")]
[Address(RVA = "0x2732650", Offset = "0x2731650", VA = "0x182732650", Slot = "9")]
get
{
IBlockCipher cipher = this.engine.cipher;
string text;
return text;
}
}
// Token: 0x0600BC27 RID: 48167 RVA: 0x002986CC File Offset: 0x002968CC
[Token(Token = "0x600BC27")]
[Address(RVA = "0x2732330", Offset = "0x2731330", VA = "0x182732330", Slot = "10")]
public virtual byte[] Wrap(byte[] inBytes, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC27)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_10F:
stloc:InvalidOperationException(var_15_119, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("not set for wrapping")))
}
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: 0x0600BC28 RID: 48168 RVA: 0x002987F4 File Offset: 0x002969F4
[Token(Token = "0x600BC28")]
[Address(RVA = "0x2731F30", Offset = "0x2730F30", VA = "0x182731F30", Slot = "11")]
public virtual byte[] Unwrap(byte[] inBytes, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC28)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A1:
stloc:InvalidCipherTextException(var_33_1AB, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("wrapped key corrupted")))
}
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: 0x04007697 RID: 30359
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007697")]
private CbcBlockCipher engine;
// Token: 0x04007698 RID: 30360
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007698")]
private ParametersWithIV param;
// Token: 0x04007699 RID: 30361
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007699")]
private bool forWrapping;
// Token: 0x0400769A RID: 30362
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400769A")]
private SecureRandom rand;
}
}
@@ -0,0 +1,139 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D82 RID: 7554
[Token(Token = "0x2001D82")]
public class Rfc3394WrapEngine : IWrapper
{
// Token: 0x0600BC29 RID: 48169 RVA: 0x002989B0 File Offset: 0x00296BB0
[Token(Token = "0x600BC29")]
[Address(RVA = "0x2733040", Offset = "0x2732040", VA = "0x182733040")]
public Rfc3394WrapEngine(IBlockCipher engine)
{
byte[] array = new byte[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.5DBC1A420B61F594A834C83E3DDC229C8AB77FDC).FieldHandle);
this.iv = array;
base..ctor();
this.engine = engine;
}
// Token: 0x0600BC2A RID: 48170 RVA: 0x002989E4 File Offset: 0x00296BE4
[Token(Token = "0x600BC2A")]
[Address(RVA = "0x27326C0", Offset = "0x27316C0", VA = "0x1827326C0", Slot = "8")]
public virtual void Init(bool forWrapping, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC2A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_54:
stloc:ArgumentException(var_8_63, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("IV length not equal to 8"), ldstr:string("parameters")))
}
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: 0x17001D83 RID: 7555
// (get) Token: 0x0600BC2B RID: 48171 RVA: 0x00298A58 File Offset: 0x00296C58
[Token(Token = "0x17001D83")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC2B")]
[Address(RVA = "0x27330C0", Offset = "0x27320C0", VA = "0x1827330C0", Slot = "9")]
get
{
IBlockCipher blockCipher = this.engine;
throw new NullReferenceException();
}
}
// Token: 0x0600BC2C RID: 48172 RVA: 0x00298A74 File Offset: 0x00296C74
[Token(Token = "0x600BC2C")]
[Address(RVA = "0x2732D20", Offset = "0x2731D20", VA = "0x182732D20", Slot = "10")]
public virtual byte[] Wrap(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC2C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_132:
stloc:InvalidOperationException(var_32_13C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("not set for wrapping")))
}
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: 0x0600BC2D RID: 48173 RVA: 0x00298BC0 File Offset: 0x00296DC0
[Token(Token = "0x600BC2D")]
[Address(RVA = "0x2732950", Offset = "0x2731950", VA = "0x182732950", Slot = "11")]
public virtual byte[] Unwrap(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC2D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_13B:
stloc:InvalidCipherTextException(var_34_145, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("checksum failed")))
}
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: 0x0400769B RID: 30363
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400769B")]
private readonly IBlockCipher engine;
// Token: 0x0400769C RID: 30364
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400769C")]
private KeyParameter param;
// Token: 0x0400769D RID: 30365
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400769D")]
private bool forWrapping;
// Token: 0x0400769E RID: 30366
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400769E")]
private byte[] iv;
}
}
@@ -0,0 +1,728 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D86 RID: 7558
[Token(Token = "0x2001D86")]
public class RijndaelEngine : IBlockCipher
{
// Token: 0x0600BC46 RID: 48198 RVA: 0x002992EC File Offset: 0x002974EC
[Token(Token = "0x600BC46")]
[Address(RVA = "0x2734610", Offset = "0x2733610", VA = "0x182734610")]
private byte Mul0x2(int b)
{
if (b == 0)
{
}
byte[] logtable = RijndaelEngine.Logtable;
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC47 RID: 48199 RVA: 0x00299314 File Offset: 0x00297514
[Token(Token = "0x600BC47")]
[Address(RVA = "0x27346D0", Offset = "0x27336D0", VA = "0x1827346D0")]
private byte Mul0x3(int b)
{
if (b == 0)
{
}
byte[] logtable = RijndaelEngine.Logtable;
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC48 RID: 48200 RVA: 0x0029933C File Offset: 0x0029753C
[Token(Token = "0x600BC48")]
[Address(RVA = "0x2734790", Offset = "0x2733790", VA = "0x182734790")]
private byte Mul0x9(int b)
{
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC49 RID: 48201 RVA: 0x00299358 File Offset: 0x00297558
[Token(Token = "0x600BC49")]
[Address(RVA = "0x2734830", Offset = "0x2733830", VA = "0x182734830")]
private byte Mul0xb(int b)
{
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC4A RID: 48202 RVA: 0x00299374 File Offset: 0x00297574
[Token(Token = "0x600BC4A")]
[Address(RVA = "0x27348D0", Offset = "0x27338D0", VA = "0x1827348D0")]
private byte Mul0xd(int b)
{
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC4B RID: 48203 RVA: 0x00299390 File Offset: 0x00297590
[Token(Token = "0x600BC4B")]
[Address(RVA = "0x2734970", Offset = "0x2733970", VA = "0x182734970")]
private byte Mul0xe(int b)
{
byte[] alogtable = RijndaelEngine.Alogtable;
byte b2;
return b2;
}
// Token: 0x0600BC4C RID: 48204 RVA: 0x002993AC File Offset: 0x002975AC
[Token(Token = "0x600BC4C")]
[Address(RVA = "0x2734370", Offset = "0x2733370", VA = "0x182734370")]
private void KeyAddition(long[] rk)
{
long num = rk[3];
}
// Token: 0x0600BC4D RID: 48205 RVA: 0x002993C8 File Offset: 0x002975C8
[Token(Token = "0x600BC4D")]
[Address(RVA = "0x27350B0", Offset = "0x27340B0", VA = "0x1827350B0")]
private long Shift(long r, int shift)
{
int num = this.BC;
num -= shift;
return r;
}
// Token: 0x0600BC4E RID: 48206 RVA: 0x002993E4 File Offset: 0x002975E4
[Token(Token = "0x600BC4E")]
[Address(RVA = "0x2734F90", Offset = "0x2733F90", VA = "0x182734F90")]
private void ShiftRow(byte[] shiftsSC)
{
long a = this.A1;
byte b = shiftsSC[0];
int num = this.BC;
num -= (int)b;
this.A1 = a;
byte b2 = shiftsSC[0];
num -= (int)b2;
this.A2 = a;
byte b3 = shiftsSC[0];
num -= (int)b3;
this.A3 = a;
}
// Token: 0x0600BC4F RID: 48207 RVA: 0x00299440 File Offset: 0x00297640
[Token(Token = "0x600BC4F")]
[Address(RVA = "0x2733110", Offset = "0x2732110", VA = "0x182733110")]
private long ApplyS(long r, byte[] box)
{
int bc = this.BC;
int num = 0;
if (bc > 0)
{
num += 8;
}
throw new NullReferenceException();
}
// Token: 0x0600BC50 RID: 48208 RVA: 0x00299464 File Offset: 0x00297664
[Token(Token = "0x600BC50")]
[Address(RVA = "0x27350E0", Offset = "0x27340E0", VA = "0x1827350E0")]
private void Substitution(byte[] box)
{
int bc = this.BC;
int num = 0;
long a = this.A0;
if (bc > 0)
{
num += 8;
}
this.A0 = (long)num;
if (bc > 0)
{
num += 8;
}
this.A1 = (long)num;
if (bc > 0)
{
num += 8;
}
this.A2 = (long)num;
if (bc > 0)
{
num += 8;
}
this.A3 = (long)num;
}
// Token: 0x0600BC51 RID: 48209 RVA: 0x002994C4 File Offset: 0x002976C4
[Token(Token = "0x600BC51")]
[Address(RVA = "0x2734400", Offset = "0x2733400", VA = "0x182734400")]
private void MixColumn()
{
int num = 0;
if (this.Alogtable > num)
{
long num2 = this.A0;
long num3 = this.A1;
long num4 = this.A2;
byte b = this.Mul0x2((int)num2);
num2 = num3;
byte b2 = this.Mul0x3((int)num2);
b = this.Mul0x2((int)num3);
num3 = num4;
byte b3 = this.Mul0x3((int)num3);
b = this.Mul0x2((int)num4);
byte b4 = this.Mul0x3((int)num4);
b = this.Mul0x2((int)num4);
num4 = num2;
byte b5 = this.Mul0x3((int)num4);
num += 8;
}
this.A0 = (long)num;
this.A1 = (long)num;
this.A2 = (long)num;
this.A3 = (long)num;
}
// Token: 0x0600BC52 RID: 48210 RVA: 0x00299564 File Offset: 0x00297764
[Token(Token = "0x600BC52")]
[Address(RVA = "0x2733F30", Offset = "0x2732F30", VA = "0x182733F30")]
private void InvMixColumn()
{
int num = 0;
if (this.Alogtable > num)
{
long num2 = this.A2;
long a = this.A0;
long a2 = this.A1;
num2 = this.A3;
byte[] logtable = RijndaelEngine.Logtable;
byte[] logtable2 = RijndaelEngine.Logtable;
byte[] logtable3 = RijndaelEngine.Logtable;
byte[] logtable4 = RijndaelEngine.Logtable;
uint num3;
byte b = this.Mul0xe((int)num3);
uint num4;
byte b2 = this.Mul0xb((int)num4);
uint num5;
byte b3 = this.Mul0xd((int)num5);
uint num6;
byte b4 = this.Mul0x9((int)num6);
b = this.Mul0xe((int)num4);
b2 = this.Mul0xb((int)num5);
b3 = this.Mul0xd((int)num6);
byte b5 = this.Mul0x9((int)num3);
b = this.Mul0xe((int)num5);
b2 = this.Mul0xb((int)num6);
b3 = this.Mul0xd((int)num3);
byte b6 = this.Mul0x9((int)num4);
b = this.Mul0xe((int)num6);
b2 = this.Mul0xb((int)num3);
b3 = this.Mul0xd((int)num4);
byte b7 = this.Mul0x9((int)num5);
num += 8;
}
this.A0 = (long)num;
this.A1 = (long)num;
this.A2 = (long)num;
this.A3 = (long)num;
}
// Token: 0x0600BC53 RID: 48211 RVA: 0x00299680 File Offset: 0x00297880
[Token(Token = "0x600BC53")]
[Address(RVA = "0x27334A0", Offset = "0x27324A0", VA = "0x1827334A0")]
private long[][] GenerateWorkingKey(byte[] key)
{
long[][] array;
int num10;
for (;;)
{
int length = key.Length;
int maxkc = RijndaelEngine.MAXKC;
int num = RijndaelEngine.MAXROUNDS;
num++;
array = new long[num][];
int num2 = 0;
int num3 = RijndaelEngine.MAXROUNDS;
num3++;
if (num2 < num3)
{
long[] array2 = new long[4];
if (array2 != 0)
{
}
num2++;
array[0] = array2;
}
if (length > 160)
{
if (length == 192)
{
}
if (length == 224)
{
}
if (length != 256)
{
continue;
}
}
if (length == 128)
{
}
if (length == 160)
{
if (length < this.blockBits)
{
int num4 = this.BC;
num4 += num;
}
uint num5;
num5 += (uint)6;
int num6 = 0;
int num7 = 0;
this.ROUNDS = (int)num5;
int num8 = 0;
int length2 = key.Length;
if (num8 < length2)
{
num6++;
num7++;
num7 += num8;
int num9 = num7 * (int)num5;
num7++;
}
num10 = 0;
int num11 = this.BC;
int rounds = this.ROUNDS;
num11 += num7;
int num12 = (rounds + 1) * num11;
if (num10 < num12)
{
break;
}
}
}
long[] array3 = array[num10];
throw new IndexOutOfRangeException();
}
// Token: 0x0600BC54 RID: 48212 RVA: 0x00299934 File Offset: 0x00297B34
[Token(Token = "0x600BC54")]
[Address(RVA = "0x2735A70", Offset = "0x2734A70", VA = "0x182735A70")]
public RijndaelEngine()
{
}
// Token: 0x0600BC55 RID: 48213 RVA: 0x00299944 File Offset: 0x00297B44
[Token(Token = "0x600BC55")]
[Address(RVA = "0x2735A80", Offset = "0x2734A80", VA = "0x182735A80")]
public RijndaelEngine(int blockBits)
{
/*
An exception occurred when decompiling this method (0600BC55)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_13A:
stloc:ArgumentException(var_10_144, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unknown blocksize to Rijndael")))
}
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: 0x0600BC56 RID: 48214 RVA: 0x00299A98 File Offset: 0x00297C98
[Token(Token = "0x600BC56")]
[Address(RVA = "0x2733D60", Offset = "0x2732D60", VA = "0x182733D60", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC56)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3B:
stloc:ArgumentException(var_7_4C, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Rijndael init - "), ldloc:string(var_6))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D86 RID: 7558
// (get) Token: 0x0600BC57 RID: 48215 RVA: 0x00299AF4 File Offset: 0x00297CF4
[Token(Token = "0x17001D86")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC57")]
[Address(RVA = "0x2735EE0", Offset = "0x2734EE0", VA = "0x182735EE0", Slot = "11")]
get
{
return "Rijndael";
}
}
// Token: 0x17001D87 RID: 7559
// (get) Token: 0x0600BC58 RID: 48216 RVA: 0x00299B08 File Offset: 0x00297D08
[Token(Token = "0x17001D87")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BC58")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BC59 RID: 48217 RVA: 0x00299B18 File Offset: 0x00297D18
[Token(Token = "0x600BC59")]
[Address(RVA = "0x2733D50", Offset = "0x2732D50", VA = "0x182733D50", Slot = "13")]
public virtual int GetBlockSize()
{
return this.BC;
}
// Token: 0x0600BC5A RID: 48218 RVA: 0x00299B2C File Offset: 0x00297D2C
[Token(Token = "0x600BC5A")]
[Address(RVA = "0x2734AF0", Offset = "0x2733AF0", VA = "0x182734AF0", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BC5A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A5:
stloc:InvalidOperationException(var_26_1AF, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Rijndael engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC5B RID: 48219 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC5B")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC5C RID: 48220 RVA: 0x00299CEC File Offset: 0x00297EEC
[Token(Token = "0x600BC5C")]
[Address(RVA = "0x2735290", Offset = "0x2734290", VA = "0x182735290")]
private void UnPackBlock(byte[] bytes, int off)
{
byte b;
this.A0 = (long)b;
int num = off + 1;
byte b2;
this.A1 = (long)b2;
byte b3;
this.A2 = (long)b3;
int num2 = off + 1;
int bc = this.BC;
byte b4;
this.A3 = (long)b4;
uint num3;
if (bc != (int)num3)
{
int num4 = num2 + 1;
num2 += 2;
byte b5 = bytes[num2];
num3 += (uint)8;
while (num3 != (uint)bc)
{
}
}
}
// Token: 0x0600BC5D RID: 48221 RVA: 0x00299D58 File Offset: 0x00297F58
[Token(Token = "0x600BC5D")]
[Address(RVA = "0x2734A10", Offset = "0x2733A10", VA = "0x182734A10")]
private void PackBlock(byte[] bytes, int off)
{
int num = 0;
if (this.Alogtable != num)
{
long a = this.A0;
int num2 = off + 1;
long a2 = this.A1;
bytes[0] = (byte)a2;
long a3 = this.A2;
bytes[0] = (byte)a3;
long a4 = this.A3;
num += 8;
while (num != this.Alogtable)
{
}
}
}
// Token: 0x0600BC5E RID: 48222 RVA: 0x00299DB8 File Offset: 0x00297FB8
[Token(Token = "0x600BC5E")]
[Address(RVA = "0x2733310", Offset = "0x2732310", VA = "0x182733310")]
private void EncryptBlock(long[][] rk)
{
long[] array = rk[0];
this.KeyAddition(array);
if (this.ROUNDS > 1)
{
byte[] s = RijndaelEngine.S;
this.Substitution(s);
byte[] array2 = this.shifts0SC;
this.ShiftRow(array2);
this.MixColumn();
long[] array3;
this.KeyAddition(array3);
}
byte[] s2 = RijndaelEngine.S;
this.Substitution(s2);
byte[] array4 = this.shifts0SC;
this.ShiftRow(array4);
int rounds = this.ROUNDS;
long[] array5 = rk[rounds];
this.KeyAddition(array5);
}
// Token: 0x0600BC5F RID: 48223 RVA: 0x00299E44 File Offset: 0x00298044
[Token(Token = "0x600BC5F")]
[Address(RVA = "0x2733180", Offset = "0x2732180", VA = "0x182733180")]
private void DecryptBlock(long[][] rk)
{
int rounds = this.ROUNDS;
long[] array = rk[rounds];
this.KeyAddition(array);
byte[] si = RijndaelEngine.Si;
this.Substitution(si);
byte[] array2 = this.shifts1SC;
this.ShiftRow(array2);
int rounds2 = this.ROUNDS;
if (rounds2 > 0)
{
long[] array3 = rk[rounds2];
this.KeyAddition(array3);
this.InvMixColumn();
byte[] si2 = RijndaelEngine.Si;
this.Substitution(si2);
byte[] array4 = this.shifts1SC;
this.ShiftRow(array4);
}
long[] array5 = rk[0];
this.KeyAddition(array5);
}
// Token: 0x0600BC60 RID: 48224 RVA: 0x00299EE0 File Offset: 0x002980E0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC60")]
[Address(RVA = "0x2735430", Offset = "0x2734430", VA = "0x182735430")]
static RijndaelEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8AC10B57091AFE182D9E4375C05E3FA037FFB3FA).FieldHandle);
RijndaelEngine.Logtable = array;
byte[] array2 = new byte[511];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.A94DF043C88FB07ACCA327B6A0BB063F20637E71).FieldHandle);
RijndaelEngine.Alogtable = array2;
byte[] array3 = new byte[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
RijndaelEngine.S = array3;
byte[] array4 = new byte[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
RijndaelEngine.Si = array4;
byte[] array5 = new byte[30];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
RijndaelEngine.rcon = array5;
byte[][] array6 = new byte[5][];
byte[] array7 = new byte[4];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
if (array7 != 0)
{
}
array6[0] = array7;
byte[] array8 = new byte[4];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
if (array8 != 0)
{
}
array6[1] = array8;
byte[] array9 = new byte[4];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
if (array9 != 0)
{
}
array6[2] = array9;
byte[] array10 = new byte[4];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.18F46E3C2ECF4BAAE65361632BA7C1B4B9028827).FieldHandle);
if (array10 != 0)
{
}
array6[3] = array10;
byte[] array11 = new byte[4];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.D5B4B2417720C9E5EDBF83CB4440D9C8B76B5557).FieldHandle);
if (array11 != 0)
{
}
array6[4] = array11;
RijndaelEngine.shifts0 = array6;
byte[][] array12 = new byte[5][];
byte[] array13 = new byte[4];
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.47A4F979AF156CDA62313B97411B4C6CE62B8B5A).FieldHandle);
if (array13 != 0)
{
}
array12[0] = array13;
byte[] array14 = new byte[4];
RuntimeHelpers.InitializeArray(array14, fieldof(<PrivateImplementationDetails>.3E8E493888B1BFB763D7553A6CC1978C17C198A3).FieldHandle);
if (array14 != 0)
{
}
array12[1] = array14;
byte[] array15 = new byte[4];
RuntimeHelpers.InitializeArray(array15, fieldof(<PrivateImplementationDetails>.3045D5B29BA900304981918A153806D371B02549).FieldHandle);
if (array15 != 0)
{
}
array12[2] = array15;
byte[] array16 = new byte[4];
RuntimeHelpers.InitializeArray(array16, fieldof(<PrivateImplementationDetails>.F3E701C38098B41D23FA88977423371B3C00C0D1).FieldHandle);
if (array16 != 0)
{
}
array12[3] = array16;
byte[] array17 = new byte[4];
RuntimeHelpers.InitializeArray(array17, fieldof(<PrivateImplementationDetails>.6D19ABD7FD0986E382242A9B88C8D8B5F52598DF).FieldHandle);
if (array17 != 0)
{
}
array12[4] = array17;
RijndaelEngine.shifts1 = array12;
}
// Token: 0x040076A9 RID: 30377
[Token(Token = "0x40076A9")]
private static readonly int MAXROUNDS;
// Token: 0x040076AA RID: 30378
[Token(Token = "0x40076AA")]
private static readonly int MAXKC;
// Token: 0x040076AB RID: 30379
[Token(Token = "0x40076AB")]
private static readonly byte[] Logtable;
// Token: 0x040076AC RID: 30380
[Token(Token = "0x40076AC")]
private static readonly byte[] Alogtable;
// Token: 0x040076AD RID: 30381
[Token(Token = "0x40076AD")]
private static readonly byte[] S;
// Token: 0x040076AE RID: 30382
[Token(Token = "0x40076AE")]
private static readonly byte[] Si;
// Token: 0x040076AF RID: 30383
[Token(Token = "0x40076AF")]
private static readonly byte[] rcon;
// Token: 0x040076B0 RID: 30384
[Token(Token = "0x40076B0")]
private static readonly byte[][] shifts0;
// Token: 0x040076B1 RID: 30385
[Token(Token = "0x40076B1")]
private static readonly byte[][] shifts1;
// Token: 0x040076B2 RID: 30386
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076B2")]
private int BC;
// Token: 0x040076B3 RID: 30387
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076B3")]
private long BC_MASK;
// Token: 0x040076B4 RID: 30388
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076B4")]
private int ROUNDS;
// Token: 0x040076B5 RID: 30389
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40076B5")]
private int blockBits;
// Token: 0x040076B6 RID: 30390
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076B6")]
private long[][] workingKey;
// Token: 0x040076B7 RID: 30391
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076B7")]
private long A0;
// Token: 0x040076B8 RID: 30392
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076B8")]
private long A1;
// Token: 0x040076B9 RID: 30393
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076B9")]
private long A2;
// Token: 0x040076BA RID: 30394
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40076BA")]
private long A3;
// Token: 0x040076BB RID: 30395
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40076BB")]
private bool forEncryption;
// Token: 0x040076BC RID: 30396
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40076BC")]
private byte[] shifts0SC;
// Token: 0x040076BD RID: 30397
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40076BD")]
private byte[] shifts1SC;
}
}
@@ -0,0 +1,138 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D83 RID: 7555
[Token(Token = "0x2001D83")]
public class RsaBlindedEngine : IAsymmetricBlockCipher
{
// Token: 0x0600BC2E RID: 48174 RVA: 0x00298D14 File Offset: 0x00296F14
[Token(Token = "0x600BC2E")]
[Address(RVA = "0x27364D0", Offset = "0x27354D0", VA = "0x1827364D0")]
public RsaBlindedEngine()
{
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
base..ctor();
this.core = rsaCoreEngine;
}
// Token: 0x0600BC2F RID: 48175 RVA: 0x00298D34 File Offset: 0x00296F34
[Token(Token = "0x600BC2F")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public RsaBlindedEngine(IRsa rsa)
{
this.core = rsa;
}
// Token: 0x17001D84 RID: 7556
// (get) Token: 0x0600BC30 RID: 48176 RVA: 0x00298D50 File Offset: 0x00296F50
[Token(Token = "0x17001D84")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC30")]
[Address(RVA = "0x2736530", Offset = "0x2735530", VA = "0x182736530", Slot = "9")]
get
{
return "RSA";
}
}
// Token: 0x0600BC31 RID: 48177 RVA: 0x00298D64 File Offset: 0x00296F64
[Token(Token = "0x600BC31")]
[Address(RVA = "0x2735FB0", Offset = "0x2734FB0", VA = "0x182735FB0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters param)
{
int num;
for (;;)
{
IRsa rsa = this.core;
if (param == 0)
{
goto IL_44;
}
if ((param != 0 || param != 0) && param != 0)
{
if (typeof(ParametersWithRandom).TypeHandle == 0)
{
break;
}
num = 0;
if (typeof(ParametersWithRandom).TypeHandle != 0)
{
break;
}
}
}
this.key = typeof(ParametersWithRandom).TypeHandle;
this.random = num;
return;
IL_44:
int num2 = 0;
this.key = num2;
SecureRandom secureRandom = new SecureRandom();
this.random = secureRandom;
}
// Token: 0x0600BC32 RID: 48178 RVA: 0x00298DD8 File Offset: 0x00296FD8
[Token(Token = "0x600BC32")]
[Address(RVA = "0x2735F10", Offset = "0x2734F10", VA = "0x182735F10", Slot = "11")]
public virtual int GetInputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC33 RID: 48179 RVA: 0x00298DF4 File Offset: 0x00296FF4
[Token(Token = "0x600BC33")]
[Address(RVA = "0x2735F60", Offset = "0x2734F60", VA = "0x182735F60", Slot = "12")]
public virtual int GetOutputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC34 RID: 48180 RVA: 0x00298E10 File Offset: 0x00297010
[Token(Token = "0x600BC34")]
[Address(RVA = "0x2736190", Offset = "0x2735190", VA = "0x182736190", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC34)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaBlindedEngine::ProcessBlock(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_AD:
stloc:InvalidOperationException(var_19_B7, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0400769F RID: 30367
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400769F")]
private readonly IRsa core;
// Token: 0x040076A0 RID: 30368
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076A0")]
private RsaKeyParameters key;
// Token: 0x040076A1 RID: 30369
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076A1")]
private SecureRandom random;
}
}
@@ -0,0 +1,155 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D84 RID: 7556
[Token(Token = "0x2001D84")]
public class RsaBlindingEngine : IAsymmetricBlockCipher
{
// Token: 0x0600BC35 RID: 48181 RVA: 0x00298ED8 File Offset: 0x002970D8
[Token(Token = "0x600BC35")]
[Address(RVA = "0x2736A20", Offset = "0x2735A20", VA = "0x182736A20")]
public RsaBlindingEngine()
{
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
base..ctor();
this.core = rsaCoreEngine;
}
// Token: 0x0600BC36 RID: 48182 RVA: 0x00298EF8 File Offset: 0x002970F8
[Token(Token = "0x600BC36")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public RsaBlindingEngine(IRsa rsa)
{
this.core = rsa;
}
// Token: 0x17001D85 RID: 7557
// (get) Token: 0x0600BC37 RID: 48183 RVA: 0x00298F14 File Offset: 0x00297114
[Token(Token = "0x17001D85")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC37")]
[Address(RVA = "0x2736A80", Offset = "0x2735A80", VA = "0x182736A80", Slot = "9")]
get
{
return "RSA";
}
}
// Token: 0x0600BC38 RID: 48184 RVA: 0x00298F28 File Offset: 0x00297128
[Token(Token = "0x600BC38")]
[Address(RVA = "0x2736680", Offset = "0x2735680", VA = "0x182736680", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters param)
{
int num;
for (;;)
{
if ((param != 0 || param != 0) && param != 0 && param != 0)
{
num = 0;
if (param != 0)
{
break;
}
}
}
IRsa rsa = this.core;
this.forEncryption = forEncryption;
this.key = num;
this.blindingFactor = num;
}
// Token: 0x0600BC39 RID: 48185 RVA: 0x00298F7C File Offset: 0x0029717C
[Token(Token = "0x600BC39")]
[Address(RVA = "0x27365E0", Offset = "0x27355E0", VA = "0x1827365E0", Slot = "11")]
public virtual int GetInputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC3A RID: 48186 RVA: 0x00298F98 File Offset: 0x00297198
[Token(Token = "0x600BC3A")]
[Address(RVA = "0x2736630", Offset = "0x2735630", VA = "0x182736630", Slot = "12")]
public virtual int GetOutputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC3B RID: 48187 RVA: 0x00298FB4 File Offset: 0x002971B4
[Token(Token = "0x600BC3B")]
[Address(RVA = "0x2736870", Offset = "0x2735870", VA = "0x182736870", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
{
IRsa rsa = this.core;
RsaKeyParameters rsaKeyParameters = this.key;
if (!this.forEncryption)
{
BigInteger bigInteger = this.blindingFactor;
BigInteger modulus = rsaKeyParameters.modulus;
BigInteger bigInteger2 = bigInteger.ModInverse(modulus);
}
BigInteger bigInteger3 = this.blindingFactor;
BigInteger modulus2 = rsaKeyParameters.modulus;
BigInteger exponent = rsaKeyParameters.exponent;
BigInteger bigInteger4 = bigInteger3.ModPow(exponent, modulus2);
BigInteger modulus3 = this.key.modulus;
BigInteger bigInteger6;
BigInteger bigInteger5 = bigInteger6.Mod(modulus3);
IRsa rsa2 = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC3C RID: 48188 RVA: 0x0029903C File Offset: 0x0029723C
[Token(Token = "0x600BC3C")]
[Address(RVA = "0x2736560", Offset = "0x2735560", VA = "0x182736560")]
private BigInteger BlindMessage(BigInteger msg)
{
RsaKeyParameters rsaKeyParameters = this.key;
BigInteger bigInteger = this.blindingFactor;
BigInteger modulus = rsaKeyParameters.modulus;
BigInteger exponent = rsaKeyParameters.exponent;
BigInteger bigInteger2 = bigInteger.ModPow(exponent, modulus);
BigInteger bigInteger3 = msg.Multiply(bigInteger2);
BigInteger modulus2 = this.key.modulus;
return bigInteger3.Mod(modulus2);
}
// Token: 0x0600BC3D RID: 48189 RVA: 0x00299098 File Offset: 0x00297298
[Token(Token = "0x600BC3D")]
[Address(RVA = "0x27369B0", Offset = "0x27359B0", VA = "0x1827369B0")]
private BigInteger UnblindMessage(BigInteger blindedMsg)
{
RsaKeyParameters rsaKeyParameters = this.key;
BigInteger bigInteger = this.blindingFactor;
BigInteger modulus = rsaKeyParameters.modulus;
BigInteger bigInteger2 = bigInteger.ModInverse(modulus);
return blindedMsg.Multiply(bigInteger2).Mod(modulus);
}
// Token: 0x040076A2 RID: 30370
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076A2")]
private readonly IRsa core;
// Token: 0x040076A3 RID: 30371
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076A3")]
private RsaKeyParameters key;
// Token: 0x040076A4 RID: 30372
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076A4")]
private BigInteger blindingFactor;
// Token: 0x040076A5 RID: 30373
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076A5")]
private bool forEncryption;
}
}
@@ -0,0 +1,231 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D85 RID: 7557
[Token(Token = "0x2001D85")]
public class RsaCoreEngine : IRsa
{
// Token: 0x0600BC3E RID: 48190 RVA: 0x002990D8 File Offset: 0x002972D8
[Token(Token = "0x600BC3E")]
[Address(RVA = "0x2736AB0", Offset = "0x2735AB0", VA = "0x182736AB0")]
private void CheckInitialised()
{
/*
An exception occurred when decompiling this method (0600BC3E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::CheckInitialised()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:InvalidOperationException(var_0_16, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC3F RID: 48191 RVA: 0x002990FC File Offset: 0x002972FC
[Token(Token = "0x600BC3F")]
[Address(RVA = "0x2736ED0", Offset = "0x2735ED0", VA = "0x182736ED0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC3F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3E:
stloc:InvalidKeyException(var_6_48, newobj:InvalidKeyException(InvalidKeyException::.ctor, ldstr:string("Not an RSA key")))
}
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: 0x0600BC40 RID: 48192 RVA: 0x00299154 File Offset: 0x00297354
[Token(Token = "0x600BC40")]
[Address(RVA = "0x2736DB0", Offset = "0x2735DB0", VA = "0x182736DB0", Slot = "11")]
public virtual int GetInputBlockSize()
{
/*
An exception occurred when decompiling this method (0600BC40)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::GetInputBlockSize()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_23:
stloc:InvalidOperationException(var_1_2D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC41 RID: 48193 RVA: 0x00299190 File Offset: 0x00297390
[Token(Token = "0x600BC41")]
[Address(RVA = "0x2736E40", Offset = "0x2735E40", VA = "0x182736E40", Slot = "12")]
public virtual int GetOutputBlockSize()
{
/*
An exception occurred when decompiling this method (0600BC41)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::GetOutputBlockSize()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_23:
stloc:InvalidOperationException(var_1_2D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC42 RID: 48194 RVA: 0x002991CC File Offset: 0x002973CC
[Token(Token = "0x600BC42")]
[Address(RVA = "0x2736B20", Offset = "0x2735B20", VA = "0x182736B20", Slot = "13")]
public virtual BigInteger ConvertInput(byte[] inBuf, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC42)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ConvertInput(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3D:
stloc:InvalidOperationException(var_6_47, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC43 RID: 48195 RVA: 0x00299224 File Offset: 0x00297424
[Token(Token = "0x600BC43")]
[Address(RVA = "0x2736CB0", Offset = "0x2735CB0", VA = "0x182736CB0", Slot = "14")]
public virtual byte[] ConvertOutput(BigInteger result)
{
/*
An exception occurred when decompiling this method (0600BC43)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ConvertOutput(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_39:
stloc:InvalidOperationException(var_3_43, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BC44 RID: 48196 RVA: 0x00299274 File Offset: 0x00297474
[Token(Token = "0x600BC44")]
[Address(RVA = "0x27370D0", Offset = "0x27360D0", VA = "0x1827370D0", Slot = "15")]
public virtual BigInteger ProcessBlock(BigInteger input)
{
/*
An exception occurred when decompiling this method (0600BC44)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ProcessBlock(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_49:
stloc:InvalidOperationException(var_15_53, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BC45 RID: 48197 RVA: 0x002992D8 File Offset: 0x002974D8
[Token(Token = "0x600BC45")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public RsaCoreEngine()
{
}
// Token: 0x040076A6 RID: 30374
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076A6")]
private RsaKeyParameters key;
// Token: 0x040076A7 RID: 30375
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076A7")]
private bool forEncryption;
// Token: 0x040076A8 RID: 30376
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40076A8")]
private int bitSize;
}
}
@@ -0,0 +1,83 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D87 RID: 7559
[Token(Token = "0x2001D87")]
public class RsaEngine : IAsymmetricBlockCipher
{
// Token: 0x0600BC61 RID: 48225 RVA: 0x0029A0FC File Offset: 0x002982FC
[Token(Token = "0x600BC61")]
[Address(RVA = "0x27374E0", Offset = "0x27364E0", VA = "0x1827374E0")]
public RsaEngine()
{
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
base..ctor();
this.core = rsaCoreEngine;
}
// Token: 0x0600BC62 RID: 48226 RVA: 0x0029A11C File Offset: 0x0029831C
[Token(Token = "0x600BC62")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public RsaEngine(IRsa rsa)
{
this.core = rsa;
}
// Token: 0x17001D88 RID: 7560
// (get) Token: 0x0600BC63 RID: 48227 RVA: 0x0029A138 File Offset: 0x00298338
[Token(Token = "0x17001D88")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC63")]
[Address(RVA = "0x2737540", Offset = "0x2736540", VA = "0x182737540", Slot = "9")]
get
{
return "RSA";
}
}
// Token: 0x0600BC64 RID: 48228 RVA: 0x0029A14C File Offset: 0x0029834C
[Token(Token = "0x600BC64")]
[Address(RVA = "0x27373B0", Offset = "0x27363B0", VA = "0x1827373B0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
IRsa rsa = this.core;
}
// Token: 0x0600BC65 RID: 48229 RVA: 0x0029A168 File Offset: 0x00298368
[Token(Token = "0x600BC65")]
[Address(RVA = "0x2737310", Offset = "0x2736310", VA = "0x182737310", Slot = "11")]
public virtual int GetInputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC66 RID: 48230 RVA: 0x0029A184 File Offset: 0x00298384
[Token(Token = "0x600BC66")]
[Address(RVA = "0x2737360", Offset = "0x2736360", VA = "0x182737360", Slot = "12")]
public virtual int GetOutputBlockSize()
{
IRsa rsa = this.core;
throw new NullReferenceException();
}
// Token: 0x0600BC67 RID: 48231 RVA: 0x0029A1A0 File Offset: 0x002983A0
[Token(Token = "0x600BC67")]
[Address(RVA = "0x2737420", Offset = "0x2736420", VA = "0x182737420", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
{
IRsa rsa = this.core;
IRsa rsa2 = this.core;
IRsa rsa3 = this.core;
throw new NullReferenceException();
}
// Token: 0x040076BE RID: 30398
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076BE")]
private readonly IRsa core;
}
}
@@ -0,0 +1,325 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8A RID: 7562
[Token(Token = "0x2001D8A")]
public class SM2Engine
{
// Token: 0x0600BC7C RID: 48252 RVA: 0x0029A57C File Offset: 0x0029877C
[Token(Token = "0x600BC7C")]
[Address(RVA = "0x27387B0", Offset = "0x27377B0", VA = "0x1827387B0")]
public SM2Engine()
{
SM3Digest sm3Digest = new SM3Digest();
base..ctor();
this.mDigest = sm3Digest;
}
// Token: 0x0600BC7D RID: 48253 RVA: 0x0029A59C File Offset: 0x0029879C
[Token(Token = "0x600BC7D")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public SM2Engine(IDigest digest)
{
this.mDigest = digest;
}
// Token: 0x0600BC7E RID: 48254 RVA: 0x0029A5B8 File Offset: 0x002987B8
[Token(Token = "0x600BC7E")]
[Address(RVA = "0x2738000", Offset = "0x2737000", VA = "0x182738000", Slot = "4")]
public virtual void Init(bool forEncryption, ICipherParameters param)
{
bool flag;
for (;;)
{
this.mForEncryption = forEncryption;
if (!forEncryption)
{
if (param == 0)
{
}
int num = 0;
if (param == 0)
{
continue;
}
this.mECKey = param;
this.mECParams = num;
}
if (param != 0)
{
if (typeof(ParametersWithRandom).TypeHandle == 0)
{
}
if (typeof(ParametersWithRandom).TypeHandle != 0)
{
this.mECKey = typeof(ParametersWithRandom).TypeHandle;
this.mECParams = param;
if (typeof(ParametersWithRandom).TypeHandle != 0 && typeof(ParametersWithRandom).TypeHandle != 0 && !flag)
{
break;
}
}
}
}
this.mRandom = flag;
string text = this.mECParams.curve.ToString();
this.mCurveLength = text;
}
// Token: 0x0600BC7F RID: 48255 RVA: 0x0029A654 File Offset: 0x00298854
[Token(Token = "0x600BC7F")]
[Address(RVA = "0x2738700", Offset = "0x2737700", VA = "0x182738700", Slot = "5")]
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
{
if (!this.mForEncryption)
{
return this.Decrypt(input, inOff, inLen);
}
return this.Encrypt(input, inOff, inLen);
}
// Token: 0x0600BC80 RID: 48256 RVA: 0x0029A680 File Offset: 0x00298880
[Token(Token = "0x600BC80")]
[Address(RVA = "0x2737600", Offset = "0x2736600", VA = "0x182737600", Slot = "6")]
protected virtual ECMultiplier CreateBasePointMultiplier()
{
/*
An exception occurred when decompiling this method (0600BC80)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM2Engine::CreateBasePointMultiplier()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:FixedPointCombMultiplier(var_0_05, newobj:FixedPointCombMultiplier(FixedPointCombMultiplier::.ctor))
}
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: 0x0600BC81 RID: 48257 RVA: 0x0029A694 File Offset: 0x00298894
[Token(Token = "0x600BC81")]
[Address(RVA = "0x2737AB0", Offset = "0x2736AB0", VA = "0x182737AB0")]
private byte[] Encrypt(byte[] input, int inOff, int inLen)
{
byte[] array;
int num2;
int num9;
for (;;)
{
array = new byte[inLen];
int length = array.Length;
int num = 0;
Array.Copy(input, inLen, array, num, length);
num2 = this.mECParams.n.BitLength;
SecureRandom secureRandom = this.mRandom;
BigInteger bigInteger = new BigInteger(num2, secureRandom);
while (bigInteger.sign == 0)
{
}
BigInteger n = this.mECParams.n;
int num3 = 0;
int num4 = bigInteger.CompareTo(n);
ECPoint g = this.mECParams.g;
int num5 = 0;
if (num5 < num3)
{
num5 += num5;
num5++;
}
int num6 = 0;
ulong num8;
int num7 = num8.CompareTo((ulong)num6);
ECKeyParameters eckeyParameters = this.mECKey;
num2 = num7;
num8 += num8;
num7 += 19;
if (eckeyParameters != 0)
{
num9 = 0;
if (eckeyParameters != 0)
{
break;
}
}
}
int length2 = array.Length;
while (num9 == length2)
{
}
num9++;
IDigest digest = this.mDigest;
byte[] array2 = DigestUtilities.DoFinal(this.mDigest);
byte[][] array3 = new byte[3][];
if (num2 != 0)
{
}
array3[0] = num2;
array3[1] = array;
if (array2 != 0)
{
}
array3[2] = array2;
return Arrays.ConcatenateAll(array3);
}
// Token: 0x0600BC82 RID: 48258 RVA: 0x0029A7D0 File Offset: 0x002989D0
[Token(Token = "0x600BC82")]
[Address(RVA = "0x2737650", Offset = "0x2736650", VA = "0x182737650")]
private byte[] Decrypt(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600BC82)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM2Engine::Decrypt(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_139:
stloc:int32(var_28_13A, ldc.i4:int32(0))
call:void(Arrays::Fill, ldloc:uint8[](var_13_6C), ldloc:int32[exp:uint8](var_28_13A))
stloc:InvalidCipherTextException(var_29_14F, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("invalid cipher text")))
}
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: 0x0600BC83 RID: 48259 RVA: 0x0029A930 File Offset: 0x00298B30
[Token(Token = "0x600BC83")]
[Address(RVA = "0x2738680", Offset = "0x2737680", VA = "0x182738680")]
private bool NotEncrypted(byte[] encData, byte[] input, int inOff)
{
int num = 0;
int length = encData.Length;
if (num != length)
{
num++;
}
return true;
}
// Token: 0x0600BC84 RID: 48260 RVA: 0x0029A958 File Offset: 0x00298B58
[Token(Token = "0x600BC84")]
[Address(RVA = "0x27382C0", Offset = "0x27372C0", VA = "0x1827382C0")]
private void Kdf(IDigest digest, ECPoint c1, byte[] encData)
{
int num;
byte[] array = new byte[num];
int num2 = 0;
if (array != 0)
{
int curveCoordinateSystem = c1.CurveCoordinateSystem;
ECFieldElement affineXCoord = c1.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
num2 += num2;
num2++;
}
int num3 = 0;
if (num3 < encData.Length)
{
if (array == 0)
{
int curveCoordinateSystem2 = c1.CurveCoordinateSystem;
ECFieldElement affineXCoord2 = c1.AffineXCoord;
this.AddFieldElement(digest, affineXCoord2);
}
int num4 = 0;
Pack.UInt32_To_BE((uint)1, array, num4);
int num5 = encData.Length;
num5 -= num2;
int num6;
this.Xor(encData, array, num2, num6);
num2 += num6;
}
}
// Token: 0x0600BC85 RID: 48261 RVA: 0x0029A9F4 File Offset: 0x00298BF4
[Token(Token = "0x600BC85")]
[Address(RVA = "0x2738730", Offset = "0x2737730", VA = "0x182738730")]
private void Xor(byte[] data, byte[] kdfOut, int dOff, int dRemaining)
{
int num = 0;
num++;
}
// Token: 0x0600BC86 RID: 48262 RVA: 0x0029AA10 File Offset: 0x00298C10
[Token(Token = "0x600BC86")]
[Address(RVA = "0x27385C0", Offset = "0x27375C0", VA = "0x1827385C0")]
private BigInteger NextK()
{
int bitLength = this.mECParams.n.BitLength;
SecureRandom secureRandom = this.mRandom;
BigInteger bigInteger = new BigInteger(bitLength, secureRandom);
while (bigInteger.sign == 0)
{
}
BigInteger n = this.mECParams.n;
int num = bigInteger.CompareTo(n);
return bigInteger;
}
// Token: 0x0600BC87 RID: 48263 RVA: 0x0029AA64 File Offset: 0x00298C64
[Token(Token = "0x600BC87")]
[Address(RVA = "0x2737570", Offset = "0x2736570", VA = "0x182737570")]
private void AddFieldElement(IDigest digest, ECFieldElement v)
{
}
// Token: 0x040076C7 RID: 30407
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076C7")]
private readonly IDigest mDigest;
// Token: 0x040076C8 RID: 30408
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076C8")]
private bool mForEncryption;
// Token: 0x040076C9 RID: 30409
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076C9")]
private ECKeyParameters mECKey;
// Token: 0x040076CA RID: 30410
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076CA")]
private ECDomainParameters mECParams;
// Token: 0x040076CB RID: 30411
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076CB")]
private int mCurveLength;
// Token: 0x040076CC RID: 30412
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076CC")]
private SecureRandom mRandom;
}
}
@@ -0,0 +1,343 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8B RID: 7563
[Token(Token = "0x2001D8B")]
public class SM4Engine : IBlockCipher
{
// Token: 0x0600BC88 RID: 48264 RVA: 0x0029AA78 File Offset: 0x00298C78
[Token(Token = "0x600BC88")]
[Address(RVA = "0x2739940", Offset = "0x2738940", VA = "0x182739940")]
private static uint tau(uint A)
{
int length = SM4Engine.Sbox.Length;
throw new NullReferenceException();
}
// Token: 0x0600BC89 RID: 48265 RVA: 0x0029AA98 File Offset: 0x00298C98
[Token(Token = "0x600BC89")]
[Address(RVA = "0x27393A0", Offset = "0x27383A0", VA = "0x1827393A0")]
private static uint L_ap(uint B)
{
/*
An exception occurred when decompiling this method (0600BC89)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::L_ap(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_08, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(13)))
stloc:int32(var_1_11, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(23)))
}
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: 0x0600BC8A RID: 48266 RVA: 0x0029AAB8 File Offset: 0x00298CB8
[Token(Token = "0x600BC8A")]
[Address(RVA = "0x2739700", Offset = "0x2738700", VA = "0x182739700")]
private uint T_ap(uint Z)
{
/*
An exception occurred when decompiling this method (0600BC8A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::T_ap(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_06, call:uint32(SM4Engine::tau, ldloc:uint32(Z)))
stloc:int32(var_1_0F, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(13)))
stloc:int32(var_2_18, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(23)))
}
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: 0x0600BC8B RID: 48267 RVA: 0x0029AAE0 File Offset: 0x00298CE0
[Token(Token = "0x600BC8B")]
[Address(RVA = "0x2738810", Offset = "0x2737810", VA = "0x182738810")]
private void ExpandKey(bool forEncryption, byte[] key)
{
int num = 0;
uint num2 = Pack.BE_To_UInt32(key, num);
uint[] fk = SM4Engine.FK;
uint num3 = Pack.BE_To_UInt32(key, 4);
uint[] fk2 = SM4Engine.FK;
uint[] fk3 = SM4Engine.FK;
uint[] fk4 = SM4Engine.FK;
uint[] array = this.rk;
if (!forEncryption)
{
uint num4 = SM4Engine.CK[0];
uint num5 = this.T_ap(num4);
array[15] = num5;
uint[] array2 = this.rk;
uint num6 = SM4Engine.CK[0];
uint num7 = this.T_ap(num6);
array2[15] = num7;
uint[] array3 = this.rk;
uint num8 = SM4Engine.CK[1];
uint num9 = this.T_ap(num8);
array3[14] = num9;
uint[] array4 = this.rk;
int length = array4.Length;
uint num10 = SM4Engine.CK[1];
uint num11 = this.T_ap(num10);
array4[14] = num11;
uint[] array5 = this.rk;
int length2 = array5.Length;
uint num12 = array5[this];
uint[] ck = SM4Engine.CK;
uint num14;
uint num13 = this.T_ap(num14);
array5[0] = num13;
while (4UL <= (ulong)31L)
{
}
return;
}
uint num15 = SM4Engine.CK[0];
uint num16 = this.T_ap(num15);
array[0] = num16;
uint[] array6 = this.rk;
uint num17 = SM4Engine.CK[0];
uint num18 = this.T_ap(num17);
array6[0] = num18;
uint[] array7 = this.rk;
int length3 = array7.Length;
uint num19 = SM4Engine.CK[1];
uint num20 = this.T_ap(num19);
array7[1] = num20;
uint[] array8 = this.rk;
int length4 = array8.Length;
uint num21 = SM4Engine.CK[1];
uint num22 = this.T_ap(num21);
array8[1] = num22;
uint[] array9 = this.rk;
int length5 = array9.Length;
uint[] ck2 = SM4Engine.CK;
uint num24;
uint num23 = this.T_ap(num24);
array9[0] = num23;
throw new NullReferenceException();
}
// Token: 0x0600BC8C RID: 48268 RVA: 0x0029ACF0 File Offset: 0x00298EF0
[Token(Token = "0x600BC8C")]
[Address(RVA = "0x27393E0", Offset = "0x27383E0", VA = "0x1827393E0")]
private static uint L(uint B)
{
/*
An exception occurred when decompiling this method (0600BC8C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::L(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_07, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(2)))
stloc:int32(var_1_10, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(10)))
stloc:int32(var_2_19, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(18)))
stloc:int32(var_3_22, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(24)))
}
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: 0x0600BC8D RID: 48269 RVA: 0x0029AD20 File Offset: 0x00298F20
[Token(Token = "0x600BC8D")]
[Address(RVA = "0x2739780", Offset = "0x2738780", VA = "0x182739780")]
private static uint T(uint Z)
{
/*
An exception occurred when decompiling this method (0600BC8D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::T(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_06, call:uint32(SM4Engine::tau, ldloc:uint32(Z)))
stloc:int32(var_1_0E, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(2)))
stloc:int32(var_2_17, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(10)))
stloc:int32(var_3_20, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(18)))
stloc:int32(var_4_29, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(24)))
}
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: 0x0600BC8E RID: 48270 RVA: 0x0029AD58 File Offset: 0x00298F58
[Token(Token = "0x600BC8E")]
[Address(RVA = "0x2739210", Offset = "0x2738210", VA = "0x182739210", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC8E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SM4 requires a 128 bit key"), ldstr:string("parameters")))
}
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: 0x17001D8B RID: 7563
// (get) Token: 0x0600BC8F RID: 48271 RVA: 0x0029ADC4 File Offset: 0x00298FC4
[Token(Token = "0x17001D8B")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC8F")]
[Address(RVA = "0x2739910", Offset = "0x2738910", VA = "0x182739910", Slot = "11")]
get
{
return "SM4";
}
}
// Token: 0x17001D8C RID: 7564
// (get) Token: 0x0600BC90 RID: 48272 RVA: 0x0029ADD8 File Offset: 0x00298FD8
[Token(Token = "0x17001D8C")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BC90")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BC91 RID: 48273 RVA: 0x0029ADE8 File Offset: 0x00298FE8
[Token(Token = "0x600BC91")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BC92 RID: 48274 RVA: 0x0029ADF8 File Offset: 0x00298FF8
[Token(Token = "0x600BC92")]
[Address(RVA = "0x2739450", Offset = "0x2738450", VA = "0x182739450", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BC92)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A4:
stloc:InvalidOperationException(var_16_AE, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SM4 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.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: 0x0600BC93 RID: 48275 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC93")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC94 RID: 48276 RVA: 0x0029AEB4 File Offset: 0x002990B4
[Token(Token = "0x600BC94")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SM4Engine()
{
this.Reset();
}
// Token: 0x0600BC95 RID: 48277 RVA: 0x0029AEC8 File Offset: 0x002990C8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC95")]
[Address(RVA = "0x2739840", Offset = "0x2738840", VA = "0x182739840")]
static SM4Engine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.C1122CB95F41A6F2E808A0B815C822BFDAB9F180).FieldHandle);
SM4Engine.Sbox = array;
uint[] array2 = new uint[32];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.A77B822E6880234B59FD1904BF79AF68F5CB623F).FieldHandle);
SM4Engine.CK = array2;
uint[] array3 = new uint[4];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.321CB68F886E22F95877B3535C1B34A6A94A40B6).FieldHandle);
SM4Engine.FK = array3;
}
// Token: 0x040076CD RID: 30413
[Token(Token = "0x40076CD")]
private const int BlockSize = 16;
// Token: 0x040076CE RID: 30414
[Token(Token = "0x40076CE")]
private static readonly byte[] Sbox;
// Token: 0x040076CF RID: 30415
[Token(Token = "0x40076CF")]
private static readonly uint[] CK;
// Token: 0x040076D0 RID: 30416
[Token(Token = "0x40076D0")]
private static readonly uint[] FK;
// Token: 0x040076D1 RID: 30417
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076D1")]
private uint[] rk;
}
}
@@ -0,0 +1,543 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8C RID: 7564
[Token(Token = "0x2001D8C")]
public class Salsa20Engine : IStreamCipher
{
// Token: 0x0600BC96 RID: 48278 RVA: 0x0029AF24 File Offset: 0x00299124
[Token(Token = "0x600BC96")]
[Address(RVA = "0x2739F40", Offset = "0x2738F40", VA = "0x182739F40")]
internal void PackTauOrSigma(int keyLength, uint[] state, int stateOffset)
{
uint num = Salsa20Engine.TAU_SIGMA[keyLength];
state[0] = num;
uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA;
int num2 = keyLength + 1;
uint num3 = tau_SIGMA[num2];
int num4 = stateOffset + 1;
state[0] = num3;
uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA;
uint num5;
state[0] = num5;
uint num6 = Salsa20Engine.TAU_SIGMA[keyLength];
state[0] = num6;
}
// Token: 0x0600BC97 RID: 48279 RVA: 0x0029AF90 File Offset: 0x00299190
[Token(Token = "0x600BC97")]
[Address(RVA = "0x273B130", Offset = "0x273A130", VA = "0x18273B130")]
public Salsa20Engine()
{
/*
An exception occurred when decompiling this method (0600BC97)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_49:
stloc:ArgumentException(var_4_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number")))
}
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: 0x0600BC98 RID: 48280 RVA: 0x0029AFF4 File Offset: 0x002991F4
[Token(Token = "0x600BC98")]
[Address(RVA = "0x273B240", Offset = "0x273A240", VA = "0x18273B240")]
public Salsa20Engine(int rounds)
{
/*
An exception occurred when decompiling this method (0600BC98)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:ArgumentException(var_3_4D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number")))
}
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: 0x0600BC99 RID: 48281 RVA: 0x0029B050 File Offset: 0x00299250
[Token(Token = "0x600BC99")]
[Address(RVA = "0x2739B60", Offset = "0x2738B60", VA = "0x182739B60", Slot = "9")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC99)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_52:
stloc:InvalidOperationException(var_8_59, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_7)))
}
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.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: 0x17001D8D RID: 7565
// (get) Token: 0x0600BC9A RID: 48282 RVA: 0x0029B0B8 File Offset: 0x002992B8
[Token(Token = "0x17001D8D")]
protected virtual int NonceSize
{
[Token(Token = "0x600BC9A")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "10")]
get
{
return 8;
}
}
// Token: 0x17001D8E RID: 7566
// (get) Token: 0x0600BC9B RID: 48283 RVA: 0x0029B0C8 File Offset: 0x002992C8
[Token(Token = "0x17001D8E")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC9B")]
[Address(RVA = "0x273B300", Offset = "0x273A300", VA = "0x18273B300", Slot = "11")]
get
{
int num = this.rounds;
int num2 = this.rounds;
return "Salsa20" + "/" + num2;
}
}
// Token: 0x0600BC9C RID: 48284 RVA: 0x0029B0F4 File Offset: 0x002992F4
[Token(Token = "0x600BC9C")]
[Address(RVA = "0x273A420", Offset = "0x2739420", VA = "0x18273A420", Slot = "12")]
public virtual byte ReturnByte(byte input)
{
/*
An exception occurred when decompiling this method (0600BC9C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ReturnByte(System.Byte)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:MaxBytesExceededException(var_5_4D, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV; Change IV")))
}
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: 0x0600BC9D RID: 48285 RVA: 0x0029B150 File Offset: 0x00299350
[Token(Token = "0x600BC9D")]
[Address(RVA = "0x2739A60", Offset = "0x2738A60", VA = "0x182739A60", Slot = "13")]
protected virtual void AdvanceCounter()
{
if (this.engineState.Length == 8)
{
uint[] array = this.engineState;
}
}
// Token: 0x0600BC9E RID: 48286 RVA: 0x0029B178 File Offset: 0x00299378
[Token(Token = "0x600BC9E")]
[Address(RVA = "0x273A130", Offset = "0x2739130", VA = "0x18273A130", Slot = "14")]
public virtual void ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BC9E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_75:
stloc:MaxBytesExceededException(var_10_7F, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV would be exceeded; Change IV")))
}
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: 0x0600BC9F RID: 48287 RVA: 0x0029B208 File Offset: 0x00299408
[Token(Token = "0x600BC9F")]
[Address(RVA = "0x273A400", Offset = "0x2739400", VA = "0x18273A400", Slot = "15")]
public virtual void Reset()
{
int num = 0;
this.index = num;
this.cW0 = (uint)num;
this.cW2 = (uint)num;
string algorithmName = ((IStreamCipher)this).AlgorithmName;
}
// Token: 0x0600BCA0 RID: 48288 RVA: 0x0029B234 File Offset: 0x00299434
[Token(Token = "0x600BCA0")]
[Address(RVA = "0x273A390", Offset = "0x2739390", VA = "0x18273A390", Slot = "16")]
protected virtual void ResetCounter()
{
uint[] array = this.engineState;
int num = 0;
array[4] = (uint)num;
array[4] = (uint)num;
}
// Token: 0x0600BCA1 RID: 48289 RVA: 0x0029B260 File Offset: 0x00299460
[Token(Token = "0x600BCA1")]
[Address(RVA = "0x273AD70", Offset = "0x2739D70", VA = "0x18273AD70", Slot = "17")]
protected virtual void SetKey(byte[] keyBytes, byte[] ivBytes)
{
if (keyBytes != 0)
{
uint[] array = this.engineState;
uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA;
uint num;
array[0] = num;
uint[] array2 = this.engineState;
uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA;
uint num2;
array2[2] = num2;
uint[] array3 = this.engineState;
uint[] tau_SIGMA3 = Salsa20Engine.TAU_SIGMA;
uint num3;
array3[5] = num3;
uint[] array4 = this.engineState;
uint num4 = Salsa20Engine.TAU_SIGMA[keyBytes];
array4[7] = num4;
uint[] array5 = this.engineState;
int num5 = 0;
uint num6;
ulong num7;
Pack.LE_To_UInt32(keyBytes, num5, array5, (int)num6, (int)num7);
int length = keyBytes.Length;
uint[] array6 = this.engineState;
uint num8;
ulong num9;
Pack.LE_To_UInt32(keyBytes, length, array6, (int)num8, (int)num9);
}
uint[] array7 = this.engineState;
int num10 = 0;
uint num11;
ulong num12;
Pack.LE_To_UInt32(ivBytes, num10, array7, (int)num11, (int)num12);
}
// Token: 0x0600BCA2 RID: 48290 RVA: 0x0029B334 File Offset: 0x00299534
[Token(Token = "0x600BCA2")]
[Address(RVA = "0x2739AC0", Offset = "0x2738AC0", VA = "0x182739AC0", Slot = "18")]
protected virtual void GenerateKeyStream(byte[] output)
{
int num = this.rounds;
uint[] array = this.engineState;
uint[] array2 = this.x;
Salsa20Engine.SalsaCore(num, array, array2);
uint[] array3 = this.x;
int num2 = 0;
Pack.UInt32_To_LE(array3, output, num2);
}
// Token: 0x0600BCA3 RID: 48291 RVA: 0x0029B374 File Offset: 0x00299574
[Token(Token = "0x600BCA3")]
[Address(RVA = "0x273A510", Offset = "0x2739510", VA = "0x18273A510")]
internal static void SalsaCore(int rounds, uint[] input, uint[] x)
{
int length;
do
{
length = input.Length;
}
while (length != 16 || x.Length != length || rounds != 1);
uint num = input[5];
uint num2 = input[4];
uint num3 = input[2];
uint num4 = input[3];
uint num5 = input[3];
uint num6 = input[4];
uint num7 = input[0];
uint num8 = input[6];
uint num9 = input[1];
uint num10 = input[6];
uint num11 = input[2];
uint num12 = input[7];
uint num13 = input[0];
uint num14 = input[7];
uint num15 = input[5];
uint num16 = input[1];
if (rounds > 0)
{
int num17 = rounds - 1;
num17++;
num11 += num7;
num += num14;
num += num5;
num += num15;
num += num6;
num12 += num14;
num8 += num14;
num10 += num8;
num11 = num10;
}
uint num18 = input[0];
num18 += num7;
x[0] = num18;
uint num19 = input[0];
num19 += num13;
x[0] = num19;
uint num20 = input[1];
num20 += num16;
x[1] = num20;
uint num21 = input[1];
num21 += num9;
x[1] = num21;
uint num22 = input[2];
num22 += num11;
x[2] = num22;
uint num23 = input[2];
num23 += num3;
x[2] = num23;
uint num24 = input[3];
num24 += num4;
x[3] = num24;
uint num25 = input[3];
num25 += num5;
x[3] = num25;
uint num26 = input[4];
num26 += num6;
x[4] = num26;
uint num27 = input[4];
num27 += num2;
x[4] = num27;
uint num28 = input[5];
num28 += num15;
x[5] = num28;
uint num29 = input[5];
x[5] = num29;
uint num30 = input[6];
x[6] = num30;
uint num31 = input[6];
x[6] = num31;
uint num32 = input[7];
x[7] = num32;
uint num33 = input[7];
num33 += num14;
x[7] = num33;
}
// Token: 0x0600BCA4 RID: 48292 RVA: 0x0029B620 File Offset: 0x00299820
[Token(Token = "0x600BCA4")]
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
internal static uint R(uint x, int y)
{
return x;
}
// Token: 0x0600BCA5 RID: 48293 RVA: 0x0029B630 File Offset: 0x00299830
[Token(Token = "0x600BCA5")]
[Address(RVA = "0x273A3F0", Offset = "0x27393F0", VA = "0x18273A3F0")]
private void ResetLimitCounter()
{
int num = 0;
this.cW0 = (uint)num;
this.cW2 = (uint)num;
}
// Token: 0x0600BCA6 RID: 48294 RVA: 0x0029B650 File Offset: 0x00299850
[Token(Token = "0x600BCA6")]
[Address(RVA = "0x2739F10", Offset = "0x2738F10", VA = "0x182739F10")]
private bool LimitExceeded()
{
/*
An exception occurred when decompiling this method (0600BCA6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this)))
stloc:uint32(var_0_0B, add:uint32(ldloc:uint32(var_0_06), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
stfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this), ldloc:uint32(var_0_0B))
stloc:uint32(var_1_19, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this)))
stloc:uint32(var_1_1E, add:uint32(ldloc:uint32(var_1_19), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_1E))
stloc:uint32(var_2_2C, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this)))
stloc:uint32(var_2_31, add:uint32(ldloc:uint32(var_2_2C), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_31))
}
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: 0x0600BCA7 RID: 48295 RVA: 0x0029B698 File Offset: 0x00299898
[Token(Token = "0x600BCA7")]
[Address(RVA = "0x2739EE0", Offset = "0x2738EE0", VA = "0x182739EE0")]
private bool LimitExceeded(uint len)
{
/*
An exception occurred when decompiling this method (0600BCA7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this)))
stloc:uint32(var_1_0D, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this)))
stloc:uint32(var_1_12, add:uint32(ldloc:uint32(var_1_0D), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_12))
stloc:uint32(var_2_20, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this)))
stloc:uint32(var_2_25, add:uint32(ldloc:uint32(var_2_20), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_25))
}
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: 0x0600BCA8 RID: 48296 RVA: 0x0029B6D4 File Offset: 0x002998D4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BCA8")]
[Address(RVA = "0x273B080", Offset = "0x273A080", VA = "0x18273B080")]
static Salsa20Engine()
{
byte[] array = Strings.ToAsciiByteArray("expand 16-byte kexpand 32-byte k");
int num = 0;
Salsa20Engine.TAU_SIGMA = Pack.LE_To_UInt32(array, num, 8);
Salsa20Engine.sigma = Strings.ToAsciiByteArray("expand 32-byte k");
Salsa20Engine.tau = Strings.ToAsciiByteArray("expand 16-byte k");
}
// Token: 0x040076D2 RID: 30418
[Token(Token = "0x40076D2")]
public static readonly int DEFAULT_ROUNDS;
// Token: 0x040076D3 RID: 30419
[Token(Token = "0x40076D3")]
private const int StateSize = 16;
// Token: 0x040076D4 RID: 30420
[Token(Token = "0x40076D4")]
private static readonly uint[] TAU_SIGMA;
// Token: 0x040076D5 RID: 30421
[Token(Token = "0x40076D5")]
[Obsolete]
protected static readonly byte[] sigma;
// Token: 0x040076D6 RID: 30422
[Token(Token = "0x40076D6")]
[Obsolete]
protected static readonly byte[] tau;
// Token: 0x040076D7 RID: 30423
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076D7")]
protected int rounds;
// Token: 0x040076D8 RID: 30424
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40076D8")]
private int index;
// Token: 0x040076D9 RID: 30425
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076D9")]
internal uint[] engineState;
// Token: 0x040076DA RID: 30426
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076DA")]
internal uint[] x;
// Token: 0x040076DB RID: 30427
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076DB")]
private byte[] keyStream;
// Token: 0x040076DC RID: 30428
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076DC")]
private bool initialised;
// Token: 0x040076DD RID: 30429
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076DD")]
private uint cW0;
// Token: 0x040076DE RID: 30430
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076DE")]
private uint cW1;
// Token: 0x040076DF RID: 30431
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40076DF")]
private uint cW2;
}
}
@@ -0,0 +1,311 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D88 RID: 7560
[Token(Token = "0x2001D88")]
public class SeedEngine : IBlockCipher
{
// Token: 0x0600BC68 RID: 48232 RVA: 0x0029A1C8 File Offset: 0x002983C8
[Token(Token = "0x600BC68")]
[Address(RVA = "0x273B5B0", Offset = "0x273A5B0", VA = "0x18273B5B0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
do
{
this.forEncryption = forEncryption;
}
while (parameters == 0 || parameters == 0);
byte[] array2;
int[] array = this.createWorkingKey(array2);
this.wKey = array;
}
// Token: 0x17001D89 RID: 7561
// (get) Token: 0x0600BC69 RID: 48233 RVA: 0x0029A200 File Offset: 0x00298400
[Token(Token = "0x17001D89")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BC69")]
[Address(RVA = "0x273BE50", Offset = "0x273AE50", VA = "0x18273BE50", Slot = "11")]
get
{
return "SEED";
}
}
// Token: 0x17001D8A RID: 7562
// (get) Token: 0x0600BC6A RID: 48234 RVA: 0x0029A214 File Offset: 0x00298414
[Token(Token = "0x17001D8A")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BC6A")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BC6B RID: 48235 RVA: 0x0029A224 File Offset: 0x00298424
[Token(Token = "0x600BC6B")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600BC6C RID: 48236 RVA: 0x0029A234 File Offset: 0x00298434
[Token(Token = "0x600BC6C")]
[Address(RVA = "0x273B6B0", Offset = "0x273A6B0", VA = "0x18273B6B0", Slot = "14")]
public virtual int ProcessBlock(byte[] inBuf, int inOff, byte[] outBuf, int outOff)
{
/*
An exception occurred when decompiling this method (0600BC6C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_B1:
stloc:InvalidOperationException(var_18_BB, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SEED engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.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: 0x0600BC6D RID: 48237 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC6D")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC6E RID: 48238 RVA: 0x0029A300 File Offset: 0x00298500
[Token(Token = "0x600BC6E")]
[Address(RVA = "0x273BB80", Offset = "0x273AB80", VA = "0x18273BB80")]
private int[] createWorkingKey(byte[] inKey)
{
int[] array = new int[32];
int i = 0;
int length = inKey.Length;
i++;
byte b;
i += (int)b;
while (i <= 7)
{
}
i += 8;
i++;
byte b2 = (byte)((int)b2 + i);
while (i <= 7)
{
}
uint[] kc = SeedEngine.KC;
b2 = (byte)((int)b2 + i);
int num = this.G((int)b2);
array[0] = num;
uint[] kc2 = SeedEngine.KC;
i++;
int num2;
array[0] = num2;
if (i != 1)
{
}
i++;
i += 2;
return array;
}
// Token: 0x0600BC6F RID: 48239 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC6F")]
[Address(RVA = "0x5028A0", Offset = "0x5018A0", VA = "0x1805028A0")]
private int extractW1(long lVal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC70 RID: 48240 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC70")]
[Address(RVA = "0x273BE40", Offset = "0x273AE40", VA = "0x18273BE40")]
private int extractW0(long lVal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC71 RID: 48241 RVA: 0x0029A384 File Offset: 0x00298584
[Token(Token = "0x600BC71")]
[Address(RVA = "0x273BF90", Offset = "0x273AF90", VA = "0x18273BF90")]
private long rotateLeft8(long x)
{
return x;
}
// Token: 0x0600BC72 RID: 48242 RVA: 0x0029A394 File Offset: 0x00298594
[Token(Token = "0x600BC72")]
[Address(RVA = "0x273BFA0", Offset = "0x273AFA0", VA = "0x18273BFA0")]
private long rotateRight8(long x)
{
return x;
}
// Token: 0x0600BC73 RID: 48243 RVA: 0x0029A3A4 File Offset: 0x002985A4
[Token(Token = "0x600BC73")]
[Address(RVA = "0x273BB20", Offset = "0x273AB20", VA = "0x18273BB20")]
private long bytesToLong(byte[] src, int srcOff)
{
int num = 0;
byte b;
num += (int)b;
while (srcOff <= 7)
{
}
throw new NullReferenceException();
}
// Token: 0x0600BC74 RID: 48244 RVA: 0x0029A3C0 File Offset: 0x002985C0
[Token(Token = "0x600BC74")]
[Address(RVA = "0x273BE80", Offset = "0x273AE80", VA = "0x18273BE80")]
private void longToBytes(byte[] dest, int destOff, long value)
{
}
// Token: 0x0600BC75 RID: 48245 RVA: 0x0029A3D4 File Offset: 0x002985D4
[Token(Token = "0x600BC75")]
[Address(RVA = "0x273B490", Offset = "0x273A490", VA = "0x18273B490")]
private int G(int x)
{
uint[] ss = SeedEngine.SS0;
uint[] ss2 = SeedEngine.SS1;
uint[] ss3 = SeedEngine.SS2;
uint num = SeedEngine.SS3[x];
throw new NullReferenceException();
}
// Token: 0x0600BC76 RID: 48246 RVA: 0x0029A404 File Offset: 0x00298604
[Token(Token = "0x600BC76")]
[Address(RVA = "0x273B3C0", Offset = "0x273A3C0", VA = "0x18273B3C0")]
private long F(int ki0, int ki1, long r)
{
/*
An exception occurred when decompiling this method (0600BC76)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::F(System.Int32,System.Int32,System.Int64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_07, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_1_0F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_2_17, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_1_1F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_3_27, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_4_2F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
stloc:int32(var_4_35, add:int32(ldloc:int32(var_4_2F), ldloc:int32(var_1_1F)))
}
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: 0x0600BC77 RID: 48247 RVA: 0x0029A448 File Offset: 0x00298648
[Token(Token = "0x600BC77")]
[Address(RVA = "0x273BEE0", Offset = "0x273AEE0", VA = "0x18273BEE0")]
private int phaseCalc1(int r0, int ki0, int r1, int ki1)
{
int num = this.G(r0);
return this.G(r0);
}
// Token: 0x0600BC78 RID: 48248 RVA: 0x0029A464 File Offset: 0x00298664
[Token(Token = "0x600BC78")]
[Address(RVA = "0x273BF20", Offset = "0x273AF20", VA = "0x18273BF20")]
private int phaseCalc2(int r0, int ki0, int r1, int ki1)
{
int num = this.G(r0);
int num2 = this.G(r0);
int num3 = this.G(r0);
return this.G(r0);
}
// Token: 0x0600BC79 RID: 48249 RVA: 0x0029A490 File Offset: 0x00298690
[Token(Token = "0x600BC79")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SeedEngine()
{
this.Reset();
}
// Token: 0x0600BC7A RID: 48250 RVA: 0x0029A4A4 File Offset: 0x002986A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC7A")]
[Address(RVA = "0x273B9E0", Offset = "0x273A9E0", VA = "0x18273B9E0")]
static SeedEngine()
{
uint[] array = new uint[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D9642D3FF9879EC5C4BB28AE7001CEE3D43956AB).FieldHandle);
SeedEngine.SS0 = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.8C7FEE53346CDB1B119FCAD8D605F476400A03CE).FieldHandle);
SeedEngine.SS1 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EEDBCB52C67688DE5F5FD9209E8A25BC786A2430).FieldHandle);
SeedEngine.SS2 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.F8AB5CA414AD9084F3E8B8D887217E6DFC32C62C).FieldHandle);
SeedEngine.SS3 = array4;
uint[] array5 = new uint[16];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.641D0D9E9CE6DDAC3F12536417A6A64C8DDD4776).FieldHandle);
SeedEngine.KC = array5;
}
// Token: 0x040076BF RID: 30399
[Token(Token = "0x40076BF")]
private const int BlockSize = 16;
// Token: 0x040076C0 RID: 30400
[Token(Token = "0x40076C0")]
private static readonly uint[] SS0;
// Token: 0x040076C1 RID: 30401
[Token(Token = "0x40076C1")]
private static readonly uint[] SS1;
// Token: 0x040076C2 RID: 30402
[Token(Token = "0x40076C2")]
private static readonly uint[] SS2;
// Token: 0x040076C3 RID: 30403
[Token(Token = "0x40076C3")]
private static readonly uint[] SS3;
// Token: 0x040076C4 RID: 30404
[Token(Token = "0x40076C4")]
private static readonly uint[] KC;
// Token: 0x040076C5 RID: 30405
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076C5")]
private int[] wKey;
// Token: 0x040076C6 RID: 30406
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076C6")]
private bool forEncryption;
}
}
@@ -0,0 +1,25 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D89 RID: 7561
[Token(Token = "0x2001D89")]
public class SeedWrapEngine : Rfc3394WrapEngine
{
// Token: 0x0600BC7B RID: 48251 RVA: 0x0029A540 File Offset: 0x00298740
[Token(Token = "0x600BC7B")]
[Address(RVA = "0x273BFB0", Offset = "0x273AFB0", VA = "0x18273BFB0")]
public SeedWrapEngine()
{
SeedEngine seedEngine;
seedEngine.Reset();
byte[] array = new byte[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.5DBC1A420B61F594A834C83E3DDC229C8AB77FDC).FieldHandle);
this.iv = array;
base..ctor();
this.engine = seedEngine;
}
}
}
@@ -0,0 +1,1133 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8D RID: 7565
[Token(Token = "0x2001D8D")]
public sealed class SerpentEngine : SerpentEngineBase
{
// Token: 0x0600BCA9 RID: 48297 RVA: 0x0029B71C File Offset: 0x0029991C
[Token(Token = "0x600BCA9")]
[Address(RVA = "0x2741490", Offset = "0x2740490", VA = "0x182741490", Slot = "15")]
protected override int[] MakeWorkingKey(byte[] key)
{
/*
An exception occurred when decompiling this method (0600BCA9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::MakeWorkingKey(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_73:
stloc:int32[](var_9_7D, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(132)))
stloc:int32(var_11_85, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
stloc:int32(var_12_8F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldloc:int32[][exp:int32](var_9_7D)))
stloc:int32(var_13_97, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
stloc:uint32(var_14_9D, add:uint32(ldloc:uint32(var_10), ldc.i4:uint32(1)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldc.i4:int32(0), ldtoken:RuntimeTypeHandle[exp:int32](BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase))
stloc:int32(var_16_AC, ldc.i4:int32(0))
call:void(Array::Copy, ldloc:int32[][exp:Array](var_1_07), ldloc:uint32[exp:int32](var_10), ldloc:int32[][exp:Array](var_9_7D), ldloc:int32(var_16_AC), ldloc:uint32[exp:int32](var_10))
stloc:int32(var_17_C3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_18_CE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldloc:uint32[exp:int32](var_10)))
stloc:int32(var_19_D7, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:uint32(var_20_DD, add:uint32(ldloc:uint32(var_10), ldc.i4:uint32(1)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_18_CE))
stloc:int32(var_21_F0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_22_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0)))
stloc:int32(var_23_104, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1)))
stloc:int32(var_24_10E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1)))
stloc:int32(var_23_112, ldloc:int32(var_24_10E))
stloc:int32(var_21_116, ldloc:int32(var_24_10E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_116))
stloc:int32(var_24_122, ldloc:int32(var_23_112))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_112))
stloc:int32(var_21_12E, ldloc:int32(var_24_122))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_122))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_12E))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_23_112))
stloc:int32(var_25_150, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_25_150))
stloc:int32(var_26_162, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1), ldloc:int32(var_26_162))
stloc:int32(var_27_174, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1), ldloc:int32(var_27_174))
stloc:int32(var_28_187, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_29_191, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2)))
stloc:int32(var_30_19B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3)))
stloc:int32(var_22_19F, ldloc:int32(var_30_19B))
stloc:int32(var_19_1A3, ldloc:int32(var_30_19B))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_19F))
stloc:int32(var_29_1B3, ldloc:int32(var_19_1A3))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_1B3))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_19B))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_112))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2), ldloc:int32(var_22_19F))
stloc:int32(var_31_1DD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2), ldloc:int32(var_31_1DD))
stloc:int32(var_32_1EF, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3), ldloc:int32(var_32_1EF))
stloc:int32(var_33_201, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3), ldloc:int32(var_33_201))
stloc:int32(var_34_214, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_35_21E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4)))
stloc:int32(var_36_228, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5)))
stloc:int32(var_29_22C, ldloc:int32(var_35_21E))
stloc:int32(var_34_234, ldloc:int32(var_35_21E))
stloc:int32(var_36_238, ldloc:int32(var_35_21E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_234))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_238))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_22C))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_238))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4), ldloc:int32(var_29_22C))
stloc:int32(var_37_26E, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4), ldloc:int32(var_37_26E))
stloc:int32(var_38_280, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5), ldloc:int32(var_38_280))
stloc:int32(var_39_292, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5), ldloc:int32(var_39_292))
stloc:int32(var_40_2A5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_41_2AF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6)))
stloc:int32(var_42_2B9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6)))
stloc:int32(var_43_2C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7)))
stloc:int32(var_36_2C7, ldloc:int32(var_41_2AF))
stloc:int32(var_29_2CB, ldloc:int32(var_41_2AF))
stloc:int32(var_35_2CF, ldloc:int32(var_36_2C7))
stloc:int32(var_19_2D3, ldloc:int32(var_35_2CF))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_2CB))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_2C3))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_2CF))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_2B9))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6), ldloc:int32(var_42_2B9))
stloc:int32(var_44_309, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6), ldloc:int32(var_44_309))
stloc:int32(var_45_31B, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7), ldloc:int32(var_45_31B))
stloc:int32(var_46_32D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7), ldloc:int32(var_46_32D))
stloc:int32(var_47_340, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_48_34A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8)))
stloc:int32(var_29_352, ldloc:int32(var_19_2D3))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_352))
stloc:int32(var_47_35E, ldloc:int32(var_48_34A))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_34A))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_35E))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_35E))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8), ldloc:int32(var_47_35E))
stloc:int32(var_49_388, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8), ldloc:int32(var_49_388))
stloc:int32(var_50_39A, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(9), ldloc:int32(var_50_39A))
stloc:int32(var_51_3AD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(9), ldloc:int32(var_51_3AD))
stloc:int32(var_52_3C1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_53_3CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10)))
stloc:int32(var_54_3D7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10)))
stloc:int32(var_19_3DF, ldloc:int32(var_53_3CC))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_3DF))
stloc:int32(var_52_3EB, ldloc:int32(var_19_3DF))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_3EB))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_3EB))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_3DF))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10), ldloc:int32(var_52_3EB))
stloc:int32(var_55_416, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10), ldloc:int32(var_55_416))
stloc:int32(var_56_429, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(11), ldloc:int32(var_56_429))
stloc:int32(var_57_43C, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(11), ldloc:int32(var_57_43C))
stloc:int32(var_58_450, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_59_45B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13)))
stloc:int32(var_41_463, ldloc:int32(var_54_3D7))
stloc:int32(var_29_467, ldloc:int32(var_41_463))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_463))
stloc:int32(var_19_473, ldloc:int32(var_41_463))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_473))
stloc:int32(var_59_47F, ldloc:int32(var_29_467))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_473))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_47F))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(12), ldloc:int32(var_41_463))
stloc:int32(var_60_4A2, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(12), ldloc:int32(var_60_4A2))
stloc:int32(var_61_4B5, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13), ldloc:int32(var_61_4B5))
stloc:int32(var_62_4C8, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13), ldloc:int32(var_62_4C8))
stloc:int32(var_63_4DC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_64_4E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14)))
stloc:int32(var_65_4F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15)))
stloc:int32(var_53_4F6, ldloc:int32(var_65_4F2))
stloc:int32(var_29_4FA, ldloc:int32(var_53_4F6))
stloc:int32(var_54_4FE, ldloc:int32(var_53_4F6))
stloc:int32(var_19_502, ldloc:int32(var_29_4FA))
stloc:int32(var_65_506, ldloc:int32(var_19_502))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_506))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4FE))
stloc:int32(var_64_51E, ldloc:int32(var_54_4FE))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_51E))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4F6))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14), ldloc:int32(var_54_4FE))
stloc:int32(var_66_541, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14), ldloc:int32(var_66_541))
stloc:int32(var_67_554, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15), ldloc:int32(var_67_554))
stloc:int32(var_68_567, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15), ldloc:int32(var_68_567))
stloc:int32(var_69_57B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_70_586, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16)))
stloc:int32(var_71_591, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17)))
stloc:int32(var_72_59C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17)))
stloc:int32(var_53_5A4, ldloc:int32(var_72_59C))
stloc:int32(var_70_5AC, ldloc:int32(var_71_591))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_5AC))
stloc:int32(var_64_5B8, ldloc:int32(var_53_5A4))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_5B8))
stloc:int32(var_69_5C4, ldloc:int32(var_70_5AC))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_59C))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_5C4))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16), ldloc:int32(var_64_5B8))
stloc:int32(var_73_5E7, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16), ldloc:int32(var_73_5E7))
stloc:int32(var_74_5FA, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17), ldloc:int32(var_74_5FA))
stloc:int32(var_75_60D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17), ldloc:int32(var_75_60D))
stloc:int32(var_76_621, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_77_62C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18)))
stloc:int32(var_78_637, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19)))
stloc:int32(var_71_63F, ldloc:int32(var_29_4FA))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_63F))
stloc:int32(var_77_64B, ldloc:int32(var_71_63F))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_5AC))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_64B))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_637))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18), ldloc:int32(var_71_63F))
stloc:int32(var_79_67A, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18), ldloc:int32(var_79_67A))
stloc:int32(var_80_68D, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19), ldloc:int32(var_80_68D))
stloc:int32(var_81_6A0, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19), ldloc:int32(var_81_6A0))
stloc:int32(var_82_6B4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_83_6BF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20)))
stloc:int32(var_84_6CA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21)))
stloc:int32(var_29_6CE, ldloc:int32(var_83_6BF))
stloc:int32(var_82_6D6, ldloc:int32(var_83_6BF))
stloc:int32(var_84_6DA, ldloc:int32(var_83_6BF))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_6D6))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_6DA))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_6CE))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_6DA))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20), ldloc:int32(var_29_6CE))
stloc:int32(var_85_711, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20), ldloc:int32(var_85_711))
stloc:int32(var_86_724, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21), ldloc:int32(var_86_724))
stloc:int32(var_87_737, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21), ldloc:int32(var_87_737))
stloc:int32(var_88_74B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_89_756, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22)))
stloc:int32(var_90_761, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23)))
stloc:int32(var_83_765, ldloc:int32(var_84_6DA))
stloc:int32(var_70_769, ldloc:int32(var_83_765))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_6CE))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_761))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_756))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22), ldloc:int32(var_89_756))
stloc:int32(var_91_79C, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22), ldloc:int32(var_91_79C))
stloc:int32(var_92_7AF, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23), ldloc:int32(var_92_7AF))
stloc:int32(var_93_7C2, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23), ldloc:int32(var_93_7C2))
stloc:int32(var_94_7D6, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_95_7E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24)))
stloc:int32(var_96_7EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25)))
stloc:int32(var_29_7F4, ldloc:int32(var_70_769))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_7F4))
stloc:int32(var_96_800, ldloc:int32(var_95_7E1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_7E1))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_800))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_800))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24), ldloc:int32(var_96_800))
stloc:int32(var_97_82B, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24), ldloc:int32(var_97_82B))
stloc:int32(var_98_83E, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25), ldloc:int32(var_98_83E))
stloc:int32(var_99_851, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25), ldloc:int32(var_99_851))
stloc:int32(var_100_865, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_101_870, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26)))
stloc:int32(var_102_87B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27)))
stloc:int32(var_70_887, ldloc:int32(var_101_870))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_887))
stloc:int32(var_100_893, ldloc:int32(var_70_887))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_893))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_893))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_887))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26), ldloc:int32(var_100_893))
stloc:int32(var_103_8BE, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26), ldloc:int32(var_103_8BE))
stloc:int32(var_104_8D1, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27), ldloc:int32(var_104_8D1))
stloc:int32(var_105_8E4, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27), ldloc:int32(var_105_8E4))
stloc:int32(var_106_8F8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_107_903, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28)))
stloc:int32(var_108_90E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29)))
stloc:int32(var_101_91A, ldloc:int32(var_107_903))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_91A))
stloc:int32(var_108_92A, ldloc:int32(var_101_91A))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_92A))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_903))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_92A))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28), ldloc:int32(var_101_91A))
stloc:int32(var_109_955, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28), ldloc:int32(var_109_955))
stloc:int32(var_110_968, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29), ldloc:int32(var_110_968))
stloc:int32(var_111_97B, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29), ldloc:int32(var_111_97B))
stloc:int32(var_112_98F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_113_99A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30)))
stloc:int32(var_114_9A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31)))
stloc:int32(var_102_9A9, ldloc:int32(var_114_9A5))
stloc:int32(var_29_9AD, ldloc:int32(var_102_9A9))
stloc:int32(var_70_9B1, ldloc:int32(var_29_9AD))
stloc:int32(var_107_9B5, ldloc:int32(var_113_99A))
stloc:int32(var_114_9B9, ldloc:int32(var_70_9B1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_9B9))
stloc:int32(var_102_9C5, ldloc:int32(var_113_99A))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_9B5))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_9C5))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_99A))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30), ldloc:int32(var_107_9B5))
stloc:int32(var_115_9F4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30), ldloc:int32(var_115_9F4))
stloc:int32(var_116_A07, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31), ldloc:int32(var_116_A07))
stloc:int32(var_117_A1A, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31), ldloc:int32(var_117_A1A))
stloc:int32(var_118_A2E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_119_A39, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32)))
stloc:int32(var_120_A44, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32)))
stloc:int32(var_121_A4F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33)))
stloc:int32(var_122_A5A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33)))
stloc:int32(var_29_A62, ldloc:int32(var_122_A5A))
stloc:int32(var_113_A66, ldloc:int32(var_122_A5A))
stloc:int32(var_118_A6A, ldloc:int32(var_29_A62))
stloc:int32(var_121_A6E, ldloc:int32(var_118_A6A))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_A6E))
stloc:int32(var_119_A7A, ldloc:int32(var_113_A66))
stloc:int32(var_102_A7E, ldloc:int32(var_119_A7A))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A7A))
stloc:int32(var_118_A8A, ldloc:int32(var_102_A7E))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_A5A))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_118_A8A))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32), ldloc:int32(var_119_A7A))
stloc:int32(var_123_AAD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32), ldloc:int32(var_123_AAD))
stloc:int32(var_124_AC0, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33), ldloc:int32(var_124_AC0))
stloc:int32(var_125_AD3, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33), ldloc:int32(var_125_AD3))
stloc:int32(var_126_AE7, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_127_AF2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35)))
stloc:int32(var_120_AF6, ldloc:int32(var_119_A7A))
stloc:int32(var_29_AFE, ldloc:int32(var_120_AF6))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_AF6))
stloc:int32(var_127_B0E, ldloc:int32(var_29_AFE))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B0E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_AFE))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A7A))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(34), ldloc:int32(var_120_AF6))
stloc:int32(var_128_B39, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(34), ldloc:int32(var_128_B39))
stloc:int32(var_129_B4C, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35), ldloc:int32(var_129_B4C))
stloc:int32(var_130_B5F, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35), ldloc:int32(var_130_B5F))
stloc:int32(var_131_B73, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_132_B7E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36)))
stloc:int32(var_133_B89, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36)))
stloc:int32(var_131_B8D, ldloc:int32(var_132_B7E))
stloc:int32(var_127_B91, ldloc:int32(var_132_B7E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B8D))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B8D))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36), ldloc:int32(var_127_B91))
stloc:int32(var_134_BC4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36), ldloc:int32(var_134_BC4))
stloc:int32(var_135_BD7, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(37), ldloc:int32(var_135_BD7))
stloc:int32(var_136_BEA, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(37), ldloc:int32(var_136_BEA))
stloc:int32(var_137_BFE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_138_C09, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39)))
stloc:int32(var_132_C0D, ldloc:int32(var_133_B89))
stloc:int32(var_138_C11, ldloc:int32(var_133_B89))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_C11))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_C0D))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_133_B89))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(38), ldloc:int32(var_133_B89))
stloc:int32(var_139_C48, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(38), ldloc:int32(var_139_C48))
stloc:int32(var_140_C5B, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39), ldloc:int32(var_140_C5B))
stloc:int32(var_141_C6E, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39), ldloc:int32(var_141_C6E))
stloc:int32(var_142_C82, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
stloc:int32(var_143_C8D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41)))
stloc:int32(var_144_C98, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41)))
stloc:int32(var_127_C9C, ldloc:int32(var_143_C8D))
stloc:int32(var_133_CA0, ldloc:int32(var_127_C9C))
stloc:int32(var_132_CA4, ldloc:int32(var_127_C9C))
stloc:int32(var_143_CA8, ldloc:int32(var_133_CA0))
stloc:int32(var_144_CAC, ldloc:int32(var_143_CA8))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_CA4))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_CAC))
stloc:int32(var_143_CC0, ldloc:int32(var_144_CAC))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_CC0))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_CC0))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(40), ldloc:int32(var_143_CC0))
stloc:int32(var_145_CE3, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(40), ldloc:int32(var_145_CE3))
stloc:int32(var_146_CF6, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41), ldloc:int32(var_146_CF6))
stloc:int32(var_147_D09, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41), ldloc:int32(var_147_D09))
stloc:int32(var_148_D1D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
}
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: 0x0600BCAA RID: 48298 RVA: 0x0029C448 File Offset: 0x0029A648
[Token(Token = "0x600BCAA")]
[Address(RVA = "0x273F210", Offset = "0x273E210", VA = "0x18273F210", Slot = "16")]
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCAA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::EncryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_1_0D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_0_06)))
stloc:int32(var_2_14, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_1_16, ldloc:int32(var_2_14))
stloc:int32(var_3_1E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(1)))
stloc:int32(var_3_20, ldloc:int32(var_2_14))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_20))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_1_16))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_14))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_14))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_4_4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_5_54, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_4_4B)))
stloc:int32(var_6_5C, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_2_60, ldloc:int32(var_6_5C))
stloc:int32(var_7_69, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_4B), ldc.i4:int32(3)))
stloc:int32(var_6_6C, ldloc:int32(var_2_60))
stloc:int32(var_7_70, ldloc:int32(var_6_6C))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_60))
stloc:int32(var_2_7B, ldloc:int32(var_6_6C))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_70))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_6C))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_8_A4, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_9_AC, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
stloc:int32(var_8_B7, ldloc:int32(var_9_AC))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_B7))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_AC))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_10_E1, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_11_E9, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_11_E9))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_12_117, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_13_120, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_12_117)))
stloc:int32(var_14_12A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(8)))
stloc:int32(var_15_132, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_16_13D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(9)))
stloc:int32(var_17_148, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(9)))
stloc:int32(var_16_14C, ldloc:int32(var_15_132))
stloc:int32(var_17_150, ldloc:int32(var_14_12A))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_150))
stloc:int32(var_13_15C, ldloc:int32(var_15_132))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_14C))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_15C))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_132))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_18_187, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_19_18F, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_14_193, ldloc:int32(var_19_18F))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_18F))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_187))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_18F))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_193))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_20_1C6, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_21_1CE, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_20_1D6, ldloc:int32(var_21_1CE))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_1D6))
stloc:int32(var_21_1E2, ldloc:int32(var_20_1D6))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_1E2))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_1E2))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_1D6))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_22_208, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_23_211, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_22_208)))
stloc:int32(var_24_219, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_25_224, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_22_208), ldc.i4:int32(15)))
stloc:int32(var_14_228, ldloc:int32(var_23_211))
stloc:int32(var_24_22C, ldloc:int32(var_23_211))
stloc:int32(var_25_230, ldloc:int32(var_14_228))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_22C))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_230))
stloc:int32(var_14_244, ldloc:int32(var_25_230))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_244))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_230))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_26_262, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_27_26B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_26_262)))
stloc:int32(var_28_276, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(16)))
stloc:int32(var_29_281, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(16)))
stloc:int32(var_30_28C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(17)))
stloc:int32(var_31_297, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(17)))
stloc:int32(var_29_29B, ldloc:int32(var_28_276))
stloc:int32(var_31_2A3, ldloc:int32(var_28_276))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_28C))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_2A3))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_29B))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_276))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_32_2D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_33_2DE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_32_2D5)))
stloc:int32(var_34_2E6, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_28_2EA, ldloc:int32(var_34_2E6))
stloc:int32(var_35_2F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_2D5), ldc.i4:int32(19)))
stloc:int32(var_29_2F9, ldloc:int32(var_28_2EA))
stloc:int32(var_34_2FD, ldloc:int32(var_28_2EA))
stloc:int32(var_35_301, ldloc:int32(var_34_2FD))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_2F9))
stloc:int32(var_29_30D, ldloc:int32(var_34_2FD))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_301))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2FD))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_30D))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_36_338, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_37_340, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_38_348, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_36_350, ldloc:int32(var_28_2EA))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_350))
stloc:int32(var_37_35C, ldloc:int32(var_38_348))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_35C))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_38_348))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_2EA))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_39_387, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_40_38F, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_38F))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_41_3BD, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_42_3C6, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_41_3BD)))
stloc:int32(var_43_3D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(24)))
stloc:int32(var_44_3DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(25)))
stloc:int32(var_45_3E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(25)))
stloc:int32(var_45_3EB, ldloc:int32(var_44_3DC))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_45_3EB))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_3C6))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_3D1))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_3D1))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_46_41E, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_47_426, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_46_42E, ldloc:int32(var_47_426))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_426))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_42E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_426))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_42E))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_48_45C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_49_465, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_48_45C)))
stloc:int32(var_50_46D, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_51_478, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_48_45C), ldc.i4:int32(29)))
stloc:int32(var_44_47C, ldloc:int32(var_50_46D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_46D))
stloc:int32(var_51_488, ldloc:int32(var_44_47C))
stloc:int32(var_50_48C, ldloc:int32(var_44_47C))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_488))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_48C))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_47C))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_52_4B2, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_53_4BB, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_4B2)))
stloc:int32(var_54_4C6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4B2), ldc.i4:int32(31)))
stloc:int32(var_50_4CA, ldloc:int32(var_53_4BB))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4BB))
stloc:int32(var_53_4D6, ldloc:int32(var_50_4CA))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4C6))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4D6))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4D6))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_55_4FC, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_56_505, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_55_4FC)))
stloc:int32(var_57_510, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(32)))
stloc:int32(var_58_51B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(32)))
stloc:int32(var_59_526, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(33)))
stloc:int32(var_60_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(33)))
stloc:int32(var_58_535, ldloc:int32(var_57_510))
stloc:int32(var_60_53D, ldloc:int32(var_57_510))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_526))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_53D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_535))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_510))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_61_56F, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_62_578, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_61_56F)))
stloc:int32(var_63_580, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_57_584, ldloc:int32(var_63_580))
stloc:int32(var_64_58F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_61_56F), ldc.i4:int32(35)))
stloc:int32(var_58_593, ldloc:int32(var_57_584))
stloc:int32(var_63_597, ldloc:int32(var_57_584))
stloc:int32(var_64_59B, ldloc:int32(var_63_597))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_593))
stloc:int32(var_58_5A7, ldloc:int32(var_63_597))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_59B))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_597))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_5A7))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_65_5D2, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_66_5DA, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_67_5E2, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_65_5EA, ldloc:int32(var_57_584))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_5EA))
stloc:int32(var_66_5F6, ldloc:int32(var_67_5E2))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_5F6))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_67_5E2))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_584))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_68_621, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_69_629, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_629))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_70_657, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_71_660, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_70_657)))
stloc:int32(var_72_66B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_657), ldc.i4:int32(40)))
stloc:int32(var_73_673, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_74_67E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_657), ldc.i4:int32(41)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_67E))
stloc:int32(var_74_68E, ldloc:int32(var_73_673))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_68E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_660))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_673))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_75_6BD, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
stloc:int32(var_76_6C5, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_72_6C9, ldloc:int32(var_76_6C5))
stloc:int32(var_75_6CD, ldloc:int32(var_76_6C5))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_75_6CD))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_6C5))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_6C5))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_6C9))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_77_6FB, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_78_704, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_77_6FB)))
stloc:int32(var_79_70C, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_80_717, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_6FB), ldc.i4:int32(45)))
stloc:int32(var_72_71B, ldloc:int32(var_79_70C))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_70C))
stloc:int32(var_80_727, ldloc:int32(var_72_71B))
stloc:int32(var_79_72B, ldloc:int32(var_72_71B))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_727))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_72B))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_71B))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_81_751, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_82_75A, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_81_751)))
stloc:int32(var_83_765, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_81_751), ldc.i4:int32(47)))
stloc:int32(var_79_769, ldloc:int32(var_82_75A))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_75A))
stloc:int32(var_82_775, ldloc:int32(var_79_769))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_775))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_84_7A0, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](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: 0x0600BCAB RID: 48299 RVA: 0x0029CBF8 File Offset: 0x0029ADF8
[Token(Token = "0x600BCAB")]
[Address(RVA = "0x273CD20", Offset = "0x273BD20", VA = "0x18273CD20", Slot = "17")]
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCAB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::DecryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_0_06))
stloc:int32[](var_1_14, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_1_14))
stloc:int32[](var_2_22, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_2_22))
stloc:int32[](var_3_30, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_4_37, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_3_30))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_3_30))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32(var_5_5E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(62)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_5_5E))
stloc:int32(var_6_71, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(62)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_71))
stloc:int32(var_7_84, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(63)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_84))
stloc:int32(var_8_97, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(63)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_97))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_9_AD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_10_B5, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_8_B9, ldloc:int32(var_10_B5))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_B9))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32[](var_11_D7, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_B5))
stloc:int32(var_12_F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(60)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_F2))
stloc:int32(var_13_105, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(60)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_105))
stloc:int32(var_14_118, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(61)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_118))
stloc:int32(var_15_12B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(61)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_12B))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_16_141, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_15_145, ldloc:int32(var_16_141))
stloc:int32(var_17_14D, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_18_155, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_9_159, ldloc:int32(var_18_155))
stloc:int32(var_19_161, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_155))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_159))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32[](var_20_180, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_145))
stloc:int32(var_21_193, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(58)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_193))
stloc:int32(var_22_1A6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(58)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_1A6))
stloc:int32(var_23_1B9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(59)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_1B9))
stloc:int32(var_24_1CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(59)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_1CC))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_25_1E2, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_17_1E6, ldloc:int32(var_25_1E2))
stloc:int32(var_19_1EA, ldloc:int32(var_16_141))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_1EA))
stloc:int32[](var_26_1FA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_18_1FE, ldloc:int32(var_16_141))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_141))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_1FE))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_1E6))
stloc:int32(var_27_221, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(56)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_27_221))
stloc:int32(var_28_234, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(56)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_234))
stloc:int32(var_29_247, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(57)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_247))
stloc:int32(var_30_25A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(57)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_25A))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_31_270, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_32_278, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_18_27C, ldloc:int32(var_16_141))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_27C))
stloc:int32(var_25_288, ldloc:int32(var_31_270))
stloc:int32(var_16_28C, ldloc:int32(var_25_288))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_288))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_28C))
stloc:int32(var_33_2AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(54)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_33_2AE))
stloc:int32(var_34_2C1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(54)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2C1))
stloc:int32(var_35_2D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(55)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_2D4))
stloc:int32(var_36_2E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(55)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_2E7))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_37_2FD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_25_301, ldloc:int32(var_37_2FD))
stloc:int32(var_38_309, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_18_30D, ldloc:int32(var_25_301))
stloc:int32(var_39_315, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_40_31D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_31_321, ldloc:int32(var_25_301))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_30D))
stloc:int32(var_36_32D, ldloc:int32(var_18_30D))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32(var_38_338, ldloc:int32(var_36_32D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_38_338))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_321))
stloc:int32(var_41_353, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(52)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_353))
stloc:int32(var_42_366, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(52)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_366))
stloc:int32(var_43_379, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(53)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_379))
stloc:int32(var_44_38C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(53)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_38C))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_25_39E, ldloc:int32(var_44_38C))
stloc:int32(var_37_3A2, ldloc:int32(var_44_38C))
stloc:int32(var_31_3A6, ldloc:int32(var_25_39E))
stloc:int32(var_39_3AA, ldloc:int32(var_37_3A2))
stloc:int32[](var_45_3B2, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_3A6))
stloc:int32(var_44_3C2, ldloc:int32(var_39_3AA))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_3AA))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_3C2))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_3A2))
stloc:int32(var_46_3E5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(50)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_3E5))
stloc:int32(var_47_3F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(50)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_3F8))
stloc:int32(var_48_40B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(51)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_40B))
stloc:int32(var_49_41E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(51)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_49_41E))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_25_430, ldloc:int32(var_39_3AA))
stloc:int32(var_18_434, ldloc:int32(var_25_430))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_434))
stloc:int32[](var_50_444, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_31_448, ldloc:int32(var_39_3AA))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_448))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_3AA))
stloc:int32(var_51_46A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(48)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_46A))
stloc:int32(var_52_47D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(48)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_47D))
stloc:int32(var_53_490, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(49)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_490))
stloc:int32(var_54_4A3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(49)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4A3))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_55_4B9, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_56_4C1, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_39_4C5, ldloc:int32(var_56_4C1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_434))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_4C5))
stloc:int32[](var_57_4DD, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_4C1))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_4B9))
stloc:int32(var_58_4F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(46)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_4F8))
stloc:int32(var_59_50B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(46)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_50B))
stloc:int32(var_60_51E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(47)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_51E))
stloc:int32(var_61_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(47)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_531))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_62_54B, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_63_553, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_61_557, ldloc:int32(var_62_54B))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32(var_25_562, ldloc:int32(var_61_557))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_562))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_54B))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_54B))
stloc:int32(var_64_585, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(44)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_585))
stloc:int32(var_65_598, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(44)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_598))
stloc:int32(var_66_5AB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(45)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_5AB))
stloc:int32(var_67_5BE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(45)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_67_5BE))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_68_5D4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_67_5D8, ldloc:int32(var_68_5D4))
stloc:int32(var_69_5E0, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_25_5E4, ldloc:int32(var_69_5E0))
stloc:int32(var_70_5EC, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_9_5F0, ldloc:int32(var_25_5E4))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_5E0))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_5F0))
stloc:int32(var_15_604, ldloc:int32(var_67_5D8))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32[](var_71_613, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_604))
stloc:int32(var_72_626, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(42)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_626))
stloc:int32(var_73_639, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(42)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_639))
stloc:int32(var_74_64C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(43)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_64C))
stloc:int32(var_75_65F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(43)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_75_65F))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_76_675, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_70_67D, ldloc:int32(var_76_675))
stloc:int32(var_69_681, ldloc:int32(var_70_67D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_67D))
stloc:int32(var_68_68D, ldloc:int32(var_70_67D))
stloc:int32[](var_77_695, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_76_699, ldloc:int32(var_69_681))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_681))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_699))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_68D))
stloc:int32(var_78_6BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(40)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_6BC))
stloc:int32(var_79_6CF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(40)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_6CF))
stloc:int32(var_80_6E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(41)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_6E2))
stloc:int32(var_81_6F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(41)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_6F5))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_82_70B, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_83_713, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_84_71F, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_85_727, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_69_72B, ldloc:int32(var_84_71F))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_72B))
stloc:int32(var_82_737, ldloc:int32(var_69_72B))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_713))
stloc:int32(var_84_743, ldloc:int32(var_69_72B))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_737))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_743))
stloc:int32(var_86_75E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(38)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_75E))
stloc:int32(var_87_771, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(38)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_87_771))
stloc:int32(var_88_784, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(39)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_88_784))
stloc:int32(var_89_797, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(39)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_797))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_90_7AD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_83_7B1, ldloc:int32(var_90_7AD))
stloc:int32(var_91_7B9, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_92_7C1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_69_7C5, ldloc:int32(var_91_7B9))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_7C5))
stloc:int32(var_89_7D1, ldloc:int32(var_83_7B1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_7B1))
stloc:int32(var_90_7DD, ldloc:int32(var_89_7D1))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_7DD))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_7B9))
stloc:int32(var_93_7F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(36)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_93_7F8))
stloc:int32(var_94_80B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(36)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_94_80B))
stloc:int32(var_95_81E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(37)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_81E))
stloc:int32(var_96_831, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(37)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_831))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_97_847, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_91_853, ldloc:int32(var_83_7B1))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_7B1))
stloc:int32(var_97_85F, ldloc:int32(var_83_7B1))
stloc:int32[](var_98_867, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_90_86B, ldloc:int32(var_97_85F))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_853))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_86B))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_97_85F))
stloc:int32(var_99_892, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(34)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_99_892))
stloc:int32(var_100_8A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(34)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_8A5))
stloc:int32(var_101_8B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(35)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_8B8))
stloc:int32(var_102_8CB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(35)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_8CB))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_103_8E1, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_90_8E5, ldloc:int32(var_102_8CB))
stloc:int32[](var_104_8ED, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_69_8F1, ldloc:int32(var_90_8E5))
stloc:int32(var_83_8F5, ldloc:int32(var_69_8F1))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_8F1))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_8F5))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32(var_105_922, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(32)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_105_922))
stloc:int32(var_106_935, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(32)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_935))
stloc:int32(var_107_948, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(33)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_948))
stloc:int32(var_108_95B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(33)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_95B))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_109_971, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_110_979, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_108_97D, ldloc:int32(var_109_971))
stloc:int32[](var_111_985, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_103_989, ldloc:int32(var_110_979))
stloc:int32(var_69_98D, ldloc:int32(var_108_97D))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_98D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_103_989))
stloc:int32(var_109_9A1, ldloc:int32(var_69_98D))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_110_979))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_109_9A1))
stloc:int32(var_112_9BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(30)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_112_9BC))
stloc:int32(var_113_9CF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(30)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_9CF))
stloc:int32(var_114_9E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(31)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_9E2))
stloc:int32(var_115_9F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(31)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_115_9F5))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_116_A0B, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_15_A0F, ldloc:int32(var_116_A0B))
stloc:int32(var_117_A17, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stloc:int32(var_115_A22, ldloc:int32(var_15_A0F))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_A0F))
stloc:int32(var_116_A2E, ldloc:int32(var_115_A22))
stloc:int32[](var_118_A36, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_A2E))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_117_A17))
stloc:int32(var_119_A51, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(28)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A51))
stloc:int32(var_120_A64, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(28)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_A64))
stloc:int32(var_121_A77, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(29)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_A77))
stloc:int32(var_122_A8A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(29)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_A8A))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_123_AA0, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_9_AA4, ldloc:int32(var_123_AA0))
stloc:int32(var_124_AAC, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_125_AB4, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_AA4))
stloc:int32[](var_126_AC8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_A0F))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_AAC))
stloc:int32(var_127_AEA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(26)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_AEA))
stloc:int32(var_128_AFD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(26)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_128_AFD))
stloc:int32(var_129_B10, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(27)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_129_B10))
stloc:int32(var_130_B23, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(27)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_130_B23))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_131_B39, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_123_B3D, ldloc:int32(var_131_B39))
stloc:int32(var_124_B41, ldloc:int32(var_123_B3D))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_123_B3D))
stloc:int32(var_125_B4D, ldloc:int32(var_123_B3D))
stloc:int32[](var_132_B55, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_131_B59, ldloc:int32(var_124_B41))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_B41))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B59))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_B4D))
stloc:int32(var_133_B7C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(24)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_133_B7C))
stloc:int32(var_134_B8F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(24)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_134_B8F))
stloc:int32(var_135_BA2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(25)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_135_BA2))
stloc:int32(var_136_BB5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(25)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_BB5))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_137_BCB, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_138_BD3, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_139_BDF, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32[](var_140_BE7, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_124_BEB, ldloc:int32(var_139_BDF))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_BEB))
stloc:int32(var_137_BF7, ldloc:int32(var_124_BEB))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_BD3))
stloc:int32(var_139_C03, ldloc:int32(var_124_BEB))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_137_BF7))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_139_C03))
stloc:int32(var_141_C1E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(22)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_C1E))
stloc:int32(var_142_C31, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(22)))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_142_C31))
stloc:int32(var_143_C44, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(23)))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_C44))
stloc:int32(var_144_C57, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(23)))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_C57))
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
stloc:int32(var_145_C6D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_146_C75, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_138_C79, ldloc:int32(var_145_C6D))
stloc:int32[](var_147_C81, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_C75))
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_C79))
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_BEB))
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_145_C6D))
}
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: 0x0600BCAC RID: 48300 RVA: 0x0029D8A8 File Offset: 0x0029BAA8
[Token(Token = "0x600BCAC")]
[Address(RVA = "0x2744380", Offset = "0x2743380", VA = "0x182744380")]
public SerpentEngine()
{
}
}
}
@@ -0,0 +1,389 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8E RID: 7566
[Token(Token = "0x2001D8E")]
public abstract class SerpentEngineBase : IBlockCipher
{
// Token: 0x0600BCAD RID: 48301 RVA: 0x0029D8BC File Offset: 0x0029BABC
[Token(Token = "0x600BCAD")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected SerpentEngineBase()
{
this.Reset();
}
// Token: 0x0600BCAE RID: 48302 RVA: 0x0029D8D0 File Offset: 0x0029BAD0
[Token(Token = "0x600BCAE")]
[Address(RVA = "0x273C420", Offset = "0x273B420", VA = "0x18273C420", Slot = "10")]
public virtual void Init(bool encrypting, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BCAE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2E:
stloc:ArgumentException(var_7_35, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_6)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D8F RID: 7567
// (get) Token: 0x0600BCAF RID: 48303 RVA: 0x0029D914 File Offset: 0x0029BB14
[Token(Token = "0x17001D8F")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BCAF")]
[Address(RVA = "0x273CCF0", Offset = "0x273BCF0", VA = "0x18273CCF0", Slot = "11")]
get
{
return "Serpent";
}
}
// Token: 0x17001D90 RID: 7568
// (get) Token: 0x0600BCB0 RID: 48304 RVA: 0x0029D928 File Offset: 0x0029BB28
[Token(Token = "0x17001D90")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BCB0")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BCB1 RID: 48305 RVA: 0x0029D938 File Offset: 0x0029BB38
[Token(Token = "0x600BCB1")]
[Address(RVA = "0x273C060", Offset = "0x273B060", VA = "0x18273C060", Slot = "13")]
public virtual int GetBlockSize()
{
return SerpentEngineBase.BlockSize;
}
// Token: 0x0600BCB2 RID: 48306 RVA: 0x0029D94C File Offset: 0x0029BB4C
[Token(Token = "0x600BCB2")]
[Address(RVA = "0x273C7C0", Offset = "0x273B7C0", VA = "0x18273C7C0", Slot = "8")]
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCB2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_37:
stloc:InvalidOperationException(var_4_3D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BCB3 RID: 48307 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BCB3")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BCB4 RID: 48308 RVA: 0x0029D998 File Offset: 0x0029BB98
[Token(Token = "0x600BCB4")]
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
protected static int RotateLeft(int x, int bits)
{
return x;
}
// Token: 0x0600BCB5 RID: 48309 RVA: 0x0029D9A8 File Offset: 0x0029BBA8
[Token(Token = "0x600BCB5")]
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
private static int RotateRight(int x, int bits)
{
return x;
}
// Token: 0x0600BCB6 RID: 48310 RVA: 0x0029D9B8 File Offset: 0x0029BBB8
[Token(Token = "0x600BCB6")]
[Address(RVA = "0x273C970", Offset = "0x273B970", VA = "0x18273C970")]
protected void Sb0(int a, int b, int c, int d)
{
this.X2 = a;
this.X3 = c;
this.X1 = a;
this.X0 = a;
}
// Token: 0x0600BCB7 RID: 48311 RVA: 0x0029D9E4 File Offset: 0x0029BBE4
[Token(Token = "0x600BCB7")]
[Address(RVA = "0x273C0C0", Offset = "0x273B0C0", VA = "0x18273C0C0")]
protected void Ib0(int a, int b, int c, int d)
{
this.X2 = a;
this.X1 = a;
this.X3 = a;
this.X0 = a;
}
// Token: 0x0600BCB8 RID: 48312 RVA: 0x0029DA10 File Offset: 0x0029BC10
[Token(Token = "0x600BCB8")]
[Address(RVA = "0x273C9D0", Offset = "0x273B9D0", VA = "0x18273C9D0")]
protected void Sb1(int a, int b, int c, int d)
{
this.X2 = a;
this.X3 = a;
this.X1 = a;
this.X0 = a;
}
// Token: 0x0600BCB9 RID: 48313 RVA: 0x0029DA3C File Offset: 0x0029BC3C
[Token(Token = "0x600BCB9")]
[Address(RVA = "0x273C120", Offset = "0x273B120", VA = "0x18273C120")]
protected void Ib1(int a, int b, int c, int d)
{
this.X3 = a;
this.X1 = a;
this.X0 = b;
this.X2 = a;
}
// Token: 0x0600BCBA RID: 48314 RVA: 0x0029DA68 File Offset: 0x0029BC68
[Token(Token = "0x600BCBA")]
[Address(RVA = "0x273CA30", Offset = "0x273BA30", VA = "0x18273CA30")]
protected void Sb2(int a, int b, int c, int d)
{
this.X0 = a;
this.X3 = a;
this.X2 = a;
this.X1 = a;
}
// Token: 0x0600BCBB RID: 48315 RVA: 0x0029DA94 File Offset: 0x0029BC94
[Token(Token = "0x600BCBB")]
[Address(RVA = "0x273C180", Offset = "0x273B180", VA = "0x18273C180")]
protected void Ib2(int a, int b, int c, int d)
{
this.X0 = b;
this.X3 = b;
this.X1 = b;
this.X2 = b;
}
// Token: 0x0600BCBC RID: 48316 RVA: 0x0029DAC0 File Offset: 0x0029BCC0
[Token(Token = "0x600BCBC")]
[Address(RVA = "0x273CAB0", Offset = "0x273BAB0", VA = "0x18273CAB0")]
protected void Sb3(int a, int b, int c, int d)
{
this.X2 = a;
this.X0 = a;
this.X1 = a;
this.X3 = b;
}
// Token: 0x0600BCBD RID: 48317 RVA: 0x0029DAEC File Offset: 0x0029BCEC
[Token(Token = "0x600BCBD")]
[Address(RVA = "0x273C1F0", Offset = "0x273B1F0", VA = "0x18273C1F0")]
protected void Ib3(int a, int b, int c, int d)
{
this.X0 = a;
this.X2 = b;
this.X3 = b;
this.X1 = b;
}
// Token: 0x0600BCBE RID: 48318 RVA: 0x0029DB18 File Offset: 0x0029BD18
[Token(Token = "0x600BCBE")]
[Address(RVA = "0x273CB30", Offset = "0x273BB30", VA = "0x18273CB30")]
protected void Sb4(int a, int b, int c, int d)
{
this.X3 = c;
this.X0 = b;
this.X2 = b;
this.X1 = b;
}
// Token: 0x0600BCBF RID: 48319 RVA: 0x0029DB44 File Offset: 0x0029BD44
[Token(Token = "0x600BCBF")]
[Address(RVA = "0x273C250", Offset = "0x273B250", VA = "0x18273C250")]
protected void Ib4(int a, int b, int c, int d)
{
this.X1 = a;
this.X3 = a;
this.X0 = a;
this.X2 = c;
}
// Token: 0x0600BCC0 RID: 48320 RVA: 0x0029DB70 File Offset: 0x0029BD70
[Token(Token = "0x600BCC0")]
[Address(RVA = "0x273CB90", Offset = "0x273BB90", VA = "0x18273CB90")]
protected void Sb5(int a, int b, int c, int d)
{
this.X0 = a;
this.X1 = a;
this.X2 = a;
this.X3 = a;
}
// Token: 0x0600BCC1 RID: 48321 RVA: 0x0029DB9C File Offset: 0x0029BD9C
[Token(Token = "0x600BCC1")]
[Address(RVA = "0x273C2B0", Offset = "0x273B2B0", VA = "0x18273C2B0")]
protected void Ib5(int a, int b, int c, int d)
{
this.X3 = a;
this.X1 = a;
this.X2 = a;
this.X0 = a;
}
// Token: 0x0600BCC2 RID: 48322 RVA: 0x0029DBC8 File Offset: 0x0029BDC8
[Token(Token = "0x600BCC2")]
[Address(RVA = "0x273CBF0", Offset = "0x273BBF0", VA = "0x18273CBF0")]
protected void Sb6(int a, int b, int c, int d)
{
this.X1 = a;
this.X2 = a;
this.X0 = a;
this.X3 = a;
}
// Token: 0x0600BCC3 RID: 48323 RVA: 0x0029DBF4 File Offset: 0x0029BDF4
[Token(Token = "0x600BCC3")]
[Address(RVA = "0x273C330", Offset = "0x273B330", VA = "0x18273C330")]
protected void Ib6(int a, int b, int c, int d)
{
this.X1 = a;
this.X3 = a;
this.X2 = a;
this.X0 = a;
}
// Token: 0x0600BCC4 RID: 48324 RVA: 0x0029DC20 File Offset: 0x0029BE20
[Token(Token = "0x600BCC4")]
[Address(RVA = "0x273CC40", Offset = "0x273BC40", VA = "0x18273CC40")]
protected void Sb7(int a, int b, int c, int d)
{
this.X1 = b;
this.X3 = c;
this.X2 = c;
this.X0 = c;
}
// Token: 0x0600BCC5 RID: 48325 RVA: 0x0029DC4C File Offset: 0x0029BE4C
[Token(Token = "0x600BCC5")]
[Address(RVA = "0x273C3A0", Offset = "0x273B3A0", VA = "0x18273C3A0")]
protected void Ib7(int a, int b, int c, int d)
{
this.X3 = c;
this.X1 = 0;
this.X0 = 0;
this.X2 = c;
}
// Token: 0x0600BCC6 RID: 48326 RVA: 0x0029DC78 File Offset: 0x0029BE78
[Token(Token = "0x600BCC6")]
[Address(RVA = "0x273C6E0", Offset = "0x273B6E0", VA = "0x18273C6E0")]
protected void LT()
{
int num = this.X1;
num += num;
this.X1 = num;
this.X3 = num;
this.X0 = num;
this.X2 = num;
}
// Token: 0x0600BCC7 RID: 48327 RVA: 0x0029DCAC File Offset: 0x0029BEAC
[Token(Token = "0x600BCC7")]
[Address(RVA = "0x273C600", Offset = "0x273B600", VA = "0x18273C600")]
protected void InverseLT()
{
int x = this.X3;
int x2 = this.X0;
this.X3 = x;
this.X1 = x2;
this.X2 = x2;
this.X0 = x2;
}
// Token: 0x0600BCC8 RID: 48328
[Token(Token = "0x600BCC8")]
[Address(Slot = "15")]
protected abstract int[] MakeWorkingKey(byte[] key);
// Token: 0x0600BCC9 RID: 48329
[Token(Token = "0x600BCC9")]
[Address(Slot = "16")]
protected abstract void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff);
// Token: 0x0600BCCA RID: 48330
[Token(Token = "0x600BCCA")]
[Address(Slot = "17")]
protected abstract void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff);
// Token: 0x040076E0 RID: 30432
[Token(Token = "0x40076E0")]
protected static readonly int BlockSize;
// Token: 0x040076E1 RID: 30433
[Token(Token = "0x40076E1")]
internal const int ROUNDS = 32;
// Token: 0x040076E2 RID: 30434
[Token(Token = "0x40076E2")]
internal const int PHI = -1640531527;
// Token: 0x040076E3 RID: 30435
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076E3")]
protected bool encrypting;
// Token: 0x040076E4 RID: 30436
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076E4")]
protected int[] wKey;
// Token: 0x040076E5 RID: 30437
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076E5")]
protected int X0;
// Token: 0x040076E6 RID: 30438
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40076E6")]
protected int X1;
// Token: 0x040076E7 RID: 30439
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076E7")]
protected int X2;
// Token: 0x040076E8 RID: 30440
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076E8")]
protected int X3;
}
}
@@ -0,0 +1,259 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D8F RID: 7567
[Token(Token = "0x2001D8F")]
public class SkipjackEngine : IBlockCipher
{
// Token: 0x0600BCCC RID: 48332 RVA: 0x0029DCF4 File Offset: 0x0029BEF4
[Token(Token = "0x600BCCC")]
[Address(RVA = "0x2744EA0", Offset = "0x2743EA0", VA = "0x182744EA0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BCCC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SkipjackEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_10A:
stloc:ArgumentException(var_26_11B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to SKIPJACK init - "), ldloc:string(var_25))))
}
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: 0x17001D91 RID: 7569
// (get) Token: 0x0600BCCD RID: 48333 RVA: 0x0029DE20 File Offset: 0x0029C020
[Token(Token = "0x17001D91")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BCCD")]
[Address(RVA = "0x27453E0", Offset = "0x27443E0", VA = "0x1827453E0", Slot = "11")]
get
{
return "SKIPJACK";
}
}
// Token: 0x17001D92 RID: 7570
// (get) Token: 0x0600BCCE RID: 48334 RVA: 0x0029DE34 File Offset: 0x0029C034
[Token(Token = "0x17001D92")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BCCE")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BCCF RID: 48335 RVA: 0x0029DE44 File Offset: 0x0029C044
[Token(Token = "0x600BCCF")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BCD0 RID: 48336 RVA: 0x0029DE54 File Offset: 0x0029C054
[Token(Token = "0x600BCD0")]
[Address(RVA = "0x2745250", Offset = "0x2744250", VA = "0x182745250", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCD0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SkipjackEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2B:
stloc:InvalidOperationException(var_2_35, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SKIPJACK engine not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BCD1 RID: 48337 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BCD1")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BCD2 RID: 48338 RVA: 0x0029DE98 File Offset: 0x0029C098
[Token(Token = "0x600BCD2")]
[Address(RVA = "0x2744A90", Offset = "0x2743A90", VA = "0x182744A90")]
private int G(int k, int w)
{
short[] array = SkipjackEngine.ftable;
int num = this.key0[k];
int length = array.Length;
int num2 = this.key1[k];
int num3 = this.key2[k];
int num4 = this.key3[k];
return num3 + num3;
}
// Token: 0x0600BCD3 RID: 48339 RVA: 0x0029DEF8 File Offset: 0x0029C0F8
[Token(Token = "0x600BCD3")]
[Address(RVA = "0x2744740", Offset = "0x2743740", VA = "0x182744740", Slot = "16")]
public virtual int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int length = input.Length;
int num = inOff + 1;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
byte b5;
b5 += b2;
int num2 = 0;
b5 = b4;
b4 = b3;
int num3 = this.G(num2, (int)b);
num2++;
while (inOff != length)
{
}
b5 = b4;
int num4 = this.G(num2, num2);
num2++;
while (inOff != length)
{
}
while (inOff != length)
{
}
throw new NullReferenceException();
}
// Token: 0x0600BCD4 RID: 48340 RVA: 0x0029DF6C File Offset: 0x0029C16C
[Token(Token = "0x600BCD4")]
[Address(RVA = "0x2744C90", Offset = "0x2743C90", VA = "0x182744C90")]
private int H(int k, int w)
{
short[] array = SkipjackEngine.ftable;
int num = this.key3[k];
int length = array.Length;
int num2 = this.key2[k];
int num3 = this.key1[k];
int num4 = this.key0[k];
return w;
}
// Token: 0x0600BCD5 RID: 48341 RVA: 0x0029DFC4 File Offset: 0x0029C1C4
[Token(Token = "0x600BCD5")]
[Address(RVA = "0x27443E0", Offset = "0x27433E0", VA = "0x1827443E0", Slot = "17")]
public virtual int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
{
int length = input.Length;
int num = inOff + 1;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
byte b5;
b5 += b2;
b4 = b5;
b5 = b;
uint num3;
int num2 = this.H((int)num3, (int)b3);
uint num4 = num3 + 1U;
while (inOff != length)
{
}
uint num5 = num3 + 1U;
b4 = b5;
int num6 = this.H((int)num3, (int)num4);
while (inOff != length)
{
}
while (inOff != length)
{
}
throw new NullReferenceException();
}
// Token: 0x0600BCD6 RID: 48342 RVA: 0x0029E034 File Offset: 0x0029C234
[Token(Token = "0x600BCD6")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SkipjackEngine()
{
this.Reset();
}
// Token: 0x0600BCD7 RID: 48343 RVA: 0x0029E048 File Offset: 0x0029C248
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BCD7")]
[Address(RVA = "0x2745380", Offset = "0x2744380", VA = "0x182745380")]
static SkipjackEngine()
{
short[] array = new short[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.21A3E0CD2847E2F12EEE37749A9E206494A55100).FieldHandle);
SkipjackEngine.ftable = array;
}
// Token: 0x040076E9 RID: 30441
[Token(Token = "0x40076E9")]
private const int BLOCK_SIZE = 8;
// Token: 0x040076EA RID: 30442
[Token(Token = "0x40076EA")]
private static readonly short[] ftable;
// Token: 0x040076EB RID: 30443
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076EB")]
private int[] key0;
// Token: 0x040076EC RID: 30444
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076EC")]
private int[] key1;
// Token: 0x040076ED RID: 30445
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076ED")]
private int[] key2;
// Token: 0x040076EE RID: 30446
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076EE")]
private int[] key3;
// Token: 0x040076EF RID: 30447
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076EF")]
private bool encrypting;
}
}
@@ -0,0 +1,252 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D90 RID: 7568
[Token(Token = "0x2001D90")]
public class TeaEngine : IBlockCipher
{
// Token: 0x0600BCD8 RID: 48344 RVA: 0x0029E074 File Offset: 0x0029C274
[Token(Token = "0x600BCD8")]
[Address(RVA = "0x2023640", Offset = "0x2022640", VA = "0x182023640")]
public TeaEngine()
{
this.Reset();
this._initialised = false;
}
// Token: 0x17001D93 RID: 7571
// (get) Token: 0x0600BCD9 RID: 48345 RVA: 0x0029E090 File Offset: 0x0029C290
[Token(Token = "0x17001D93")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BCD9")]
[Address(RVA = "0x2745990", Offset = "0x2744990", VA = "0x182745990", Slot = "10")]
get
{
return "TEA";
}
}
// Token: 0x17001D94 RID: 7572
// (get) Token: 0x0600BCDA RID: 48346 RVA: 0x0029E0A4 File Offset: 0x0029C2A4
[Token(Token = "0x17001D94")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BCDA")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BCDB RID: 48347 RVA: 0x0029E0B4 File Offset: 0x0029C2B4
[Token(Token = "0x600BCDB")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BCDC RID: 48348 RVA: 0x0029E0C4 File Offset: 0x0029C2C4
[Token(Token = "0x600BCDC")]
[Address(RVA = "0x2745410", Offset = "0x2744410", VA = "0x182745410", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BCDC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_66:
stloc:ArgumentException(var_9_77, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_8))))
}
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: 0x0600BCDD RID: 48349 RVA: 0x0029E14C File Offset: 0x0029C34C
[Token(Token = "0x600BCDD")]
[Address(RVA = "0x27455B0", Offset = "0x27445B0", VA = "0x1827455B0", Slot = "14")]
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCDD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_AE:
stloc:InvalidOperationException(var_13_B5, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_12)))
}
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: 0x0600BCDE RID: 48350 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BCDE")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BCDF RID: 48351 RVA: 0x0029E210 File Offset: 0x0029C410
[Token(Token = "0x600BCDF")]
[Address(RVA = "0x27459C0", Offset = "0x27449C0", VA = "0x1827459C0")]
private void setKey(byte[] key)
{
int num = 0;
uint num2 = Pack.BE_To_UInt32(key, num);
this._a = num2;
uint num3 = Pack.BE_To_UInt32(key, 4);
this._b = num3;
uint num4 = Pack.BE_To_UInt32(key, 8);
this._c = num4;
uint num5 = Pack.BE_To_UInt32(key, 12);
this._d = num5;
}
// Token: 0x0600BCE0 RID: 48352 RVA: 0x0029E260 File Offset: 0x0029C460
[Token(Token = "0x600BCE0")]
[Address(RVA = "0x27458A0", Offset = "0x27448A0", VA = "0x1827458A0")]
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCE0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::encryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
stloc:uint32(var_1_31, add:uint32(ldloc:uint32(var_1_0F), ldloc:uint32(var_2_16)))
stloc:uint32(var_1_35, add:uint32(ldloc:uint32(var_1_31), ldloc:uint32(var_3_1D)))
stloc:uint32(var_0_39, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_1_35)))
stloc:uint32(var_1_3D, ldloc:uint32(var_0_39))
stloc:uint32(var_1_42, add:uint32(ldloc:uint32(var_1_3D), ldloc:uint32(var_4_24)))
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_42), ldloc:uint32(var_5_2C)))
stloc:uint32(var_1_4B, add:uint32(ldloc:uint32(var_1_47), ldloc:uint32(var_1_47)))
}
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: 0x0600BCE1 RID: 48353 RVA: 0x0029E2BC File Offset: 0x0029C4BC
[Token(Token = "0x600BCE1")]
[Address(RVA = "0x27457B0", Offset = "0x27447B0", VA = "0x1827457B0")]
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCE1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::decryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
stloc:uint32(var_1_2F, ldloc:uint32(var_0_07))
stloc:uint32(var_0_33, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_2_16)))
stloc:uint32(var_1_37, add:uint32(ldloc:uint32(var_1_2F), ldloc:uint32(var_3_1D)))
stloc:uint32(var_1_3B, sub:uint32(ldloc:uint32(var_1_37), ldloc:uint32(var_0_33)))
stloc:uint32(var_0_3D, ldloc:uint32(var_1_3B))
stloc:uint32(var_0_42, add:uint32(ldloc:uint32(var_0_3D), ldloc:uint32(var_4_24)))
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_3B), ldloc:uint32(var_5_2C)))
stloc:uint32(var_0_4B, sub:uint32(ldloc:uint32(var_0_42), ldloc:uint32(var_0_42)))
}
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: 0x040076F0 RID: 30448
[Token(Token = "0x40076F0")]
private const int rounds = 32;
// Token: 0x040076F1 RID: 30449
[Token(Token = "0x40076F1")]
private const int block_size = 8;
// Token: 0x040076F2 RID: 30450
[Token(Token = "0x40076F2")]
private const uint delta = 2654435769U;
// Token: 0x040076F3 RID: 30451
[Token(Token = "0x40076F3")]
private const uint d_sum = 3337565984U;
// Token: 0x040076F4 RID: 30452
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076F4")]
private uint _a;
// Token: 0x040076F5 RID: 30453
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40076F5")]
private uint _b;
// Token: 0x040076F6 RID: 30454
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076F6")]
private uint _c;
// Token: 0x040076F7 RID: 30455
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40076F7")]
private uint _d;
// Token: 0x040076F8 RID: 30456
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076F8")]
private bool _initialised;
// Token: 0x040076F9 RID: 30457
[FieldOffset(Offset = "0x21")]
[Token(Token = "0x40076F9")]
private bool _forEncryption;
}
}
@@ -0,0 +1,1537 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D91 RID: 7569
[Token(Token = "0x2001D91")]
public class ThreefishEngine : IBlockCipher
{
// Token: 0x0600BCE2 RID: 48354 RVA: 0x0029E318 File Offset: 0x0029C518
[Token(Token = "0x600BCE2")]
[Address(RVA = "0x258AAD0", Offset = "0x2589AD0", VA = "0x18258AAD0")]
static ThreefishEngine()
{
int[] array = new int[ThreefishEngine.MOD9.Length];
int num = 0;
ThreefishEngine.MOD3 = array;
int[] mod = ThreefishEngine.MOD9;
if (num < mod.Length)
{
int[] mod2 = ThreefishEngine.MOD17;
ulong num2;
num2 += num2;
long num3 = (long)(num2 * (ulong)((uint)17));
num = (int)((long)num - num3);
int[] mod3 = ThreefishEngine.MOD9;
ulong num4;
num4 += num4;
num = (int)((ulong)num - num4);
int[] mod4 = ThreefishEngine.MOD5;
ulong num5;
num5 += num5;
num = (int)((ulong)num - num5);
int[] mod5 = ThreefishEngine.MOD3;
num++;
int[] mod6 = ThreefishEngine.MOD9;
}
}
// Token: 0x0600BCE3 RID: 48355 RVA: 0x0029E3DC File Offset: 0x0029C5DC
[Token(Token = "0x600BCE3")]
[Address(RVA = "0x258AD50", Offset = "0x2589D50", VA = "0x18258AD50")]
public ThreefishEngine(int blocksizeBits)
{
/*
An exception occurred when decompiling this method (0600BCE3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_86:
stloc:ArgumentException(var_8_90, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid blocksize - Threefish is defined with block size of 256, 512, or 1024 bits")))
}
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: 0x0600BCE4 RID: 48356 RVA: 0x0029E47C File Offset: 0x0029C67C
[Token(Token = "0x600BCE4")]
[Address(RVA = "0x2589C10", Offset = "0x2588C10", VA = "0x182589C10", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BCE4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_E2:
stloc:ArgumentException(var_18_F8, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish key must be same size as block ("), ldloc:ArgumentException[exp:object](var_17), ldstr:string[exp:object](" bytes)"))))
stloc:ArgumentException(var_21_110, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish tweak must be "), ldloc:int32[exp:object](var_20), ldstr:string[exp:object](" 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.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: 0x0600BCE5 RID: 48357 RVA: 0x0029E59C File Offset: 0x0029C79C
[Token(Token = "0x600BCE5")]
[Address(RVA = "0x2589BC0", Offset = "0x2588BC0", VA = "0x182589BC0")]
internal void Init(bool forEncryption, ulong[] key, ulong[] tweak)
{
this.forEncryption = forEncryption;
if (key != 0)
{
this.SetKey(key);
}
if (tweak != 0)
{
this.SetTweak(tweak);
}
}
// Token: 0x0600BCE6 RID: 48358 RVA: 0x0029E5C8 File Offset: 0x0029C7C8
[Token(Token = "0x600BCE6")]
[Address(RVA = "0x258A530", Offset = "0x2589530", VA = "0x18258A530")]
private void SetKey(ulong[] key)
{
int num;
do
{
num = this.blocksizeWords;
}
while (key.Length != num);
ulong[] array = this.kw;
int num2 = 0;
if (num > 0)
{
ulong num3 = key[num2];
array[0] = num3;
ulong[] array2 = this.kw;
num2++;
int num4 = this.blocksizeWords;
}
int num5 = 0;
array[0] = (ulong)2004413935125273122L;
int num6 = this.blocksizeWords;
ulong[] array3 = this.kw;
int num7 = num6 + 1;
Array.Copy(array3, num5, array3, num7, num6);
}
// Token: 0x0600BCE7 RID: 48359 RVA: 0x0029E658 File Offset: 0x0029C858
[Token(Token = "0x600BCE7")]
[Address(RVA = "0x258A6B0", Offset = "0x25896B0", VA = "0x18258A6B0")]
private void SetTweak(ulong[] tweak)
{
while (tweak.Length != 2)
{
}
ulong[] array = this.t;
ulong num = tweak[0];
array[0] = num;
ulong[] array2 = this.t;
ulong num2 = tweak[1];
array2[1] = num2;
ulong[] array3 = this.t;
int length = array3.Length;
ulong num3 = array3[1];
array3[2] = num3;
ulong[] array4 = this.t;
int length2 = array4.Length;
ulong num4 = array4[0];
array4[3] = num4;
ulong[] array5 = this.t;
int length3 = array5.Length;
ulong num5 = array5[1];
array5[4] = num5;
}
// Token: 0x17001D95 RID: 7573
// (get) Token: 0x0600BCE8 RID: 48360 RVA: 0x0029E714 File Offset: 0x0029C914
[Token(Token = "0x17001D95")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BCE8")]
[Address(RVA = "0x258AE90", Offset = "0x2589E90", VA = "0x18258AE90", Slot = "11")]
get
{
int num = this.blocksizeBytes;
return "Threefish-" + num;
}
}
// Token: 0x17001D96 RID: 7574
// (get) Token: 0x0600BCE9 RID: 48361 RVA: 0x0029E734 File Offset: 0x0029C934
[Token(Token = "0x17001D96")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BCE9")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
get
{
}
}
// Token: 0x0600BCEA RID: 48362 RVA: 0x0029E744 File Offset: 0x0029C944
[Token(Token = "0x600BCEA")]
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000", Slot = "13")]
public virtual int GetBlockSize()
{
return this.blocksizeBytes;
}
// Token: 0x0600BCEB RID: 48363 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BCEB")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BCEC RID: 48364 RVA: 0x0029E758 File Offset: 0x0029C958
[Token(Token = "0x600BCEC")]
[Address(RVA = "0x258A200", Offset = "0x2589200", VA = "0x18258A200", Slot = "15")]
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BCEC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9:
stloc:DataLengthException(var_10_B3, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Input buffer too short")))
}
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: 0x0600BCED RID: 48365 RVA: 0x0029E81C File Offset: 0x0029CA1C
[Token(Token = "0x600BCED")]
[Address(RVA = "0x258A070", Offset = "0x2589070", VA = "0x18258A070")]
internal int ProcessBlock(ulong[] inWords, ulong[] outWords)
{
/*
An exception occurred when decompiling this method (0600BCED)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:DataLengthException(var_4_67, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Output buffer too short")))
}
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: 0x0600BCEE RID: 48366 RVA: 0x0029E894 File Offset: 0x0029CA94
[Token(Token = "0x600BCEE")]
[Address(RVA = "0x25899C0", Offset = "0x25889C0", VA = "0x1825899C0")]
internal static ulong BytesToWord(byte[] bytes, int off)
{
int length = bytes.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600BCEF RID: 48367 RVA: 0x0029E8B4 File Offset: 0x0029CAB4
[Token(Token = "0x600BCEF")]
[Address(RVA = "0x258A8F0", Offset = "0x25898F0", VA = "0x18258A8F0")]
internal static void WordToBytes(ulong word, byte[] bytes, int off)
{
int num = bytes.Length;
int num2 = off + 1;
num = off + 6;
}
// Token: 0x0600BCF0 RID: 48368 RVA: 0x0029E8D8 File Offset: 0x0029CAD8
[Token(Token = "0x600BCF0")]
[Address(RVA = "0x258A510", Offset = "0x2589510", VA = "0x18258A510")]
private static ulong RotlXor(ulong x, int n, ulong xor)
{
return x;
}
// Token: 0x0600BCF1 RID: 48369 RVA: 0x0029E8E8 File Offset: 0x0029CAE8
[Token(Token = "0x600BCF1")]
[Address(RVA = "0x258AAB0", Offset = "0x2589AB0", VA = "0x18258AAB0")]
private static ulong XorRotr(ulong x, int n, ulong xor)
{
return x;
}
// Token: 0x040076FA RID: 30458
[Token(Token = "0x40076FA")]
public const int BLOCKSIZE_256 = 256;
// Token: 0x040076FB RID: 30459
[Token(Token = "0x40076FB")]
public const int BLOCKSIZE_512 = 512;
// Token: 0x040076FC RID: 30460
[Token(Token = "0x40076FC")]
public const int BLOCKSIZE_1024 = 1024;
// Token: 0x040076FD RID: 30461
[Token(Token = "0x40076FD")]
private const int TWEAK_SIZE_BYTES = 16;
// Token: 0x040076FE RID: 30462
[Token(Token = "0x40076FE")]
private const int TWEAK_SIZE_WORDS = 2;
// Token: 0x040076FF RID: 30463
[Token(Token = "0x40076FF")]
private const int ROUNDS_256 = 72;
// Token: 0x04007700 RID: 30464
[Token(Token = "0x4007700")]
private const int ROUNDS_512 = 72;
// Token: 0x04007701 RID: 30465
[Token(Token = "0x4007701")]
private const int ROUNDS_1024 = 80;
// Token: 0x04007702 RID: 30466
[Token(Token = "0x4007702")]
private const int MAX_ROUNDS = 80;
// Token: 0x04007703 RID: 30467
[Token(Token = "0x4007703")]
private const ulong C_240 = 2004413935125273122UL;
// Token: 0x04007704 RID: 30468
[Token(Token = "0x4007704")]
private static readonly int[] MOD9 = new int[80];
// Token: 0x04007705 RID: 30469
[Token(Token = "0x4007705")]
private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length];
// Token: 0x04007706 RID: 30470
[Token(Token = "0x4007706")]
private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length];
// Token: 0x04007707 RID: 30471
[Token(Token = "0x4007707")]
private static readonly int[] MOD3;
// Token: 0x04007708 RID: 30472
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007708")]
private readonly int blocksizeBytes;
// Token: 0x04007709 RID: 30473
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4007709")]
private readonly int blocksizeWords;
// Token: 0x0400770A RID: 30474
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400770A")]
private readonly ulong[] currentBlock;
// Token: 0x0400770B RID: 30475
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400770B")]
private readonly ulong[] t;
// Token: 0x0400770C RID: 30476
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400770C")]
private readonly ulong[] kw;
// Token: 0x0400770D RID: 30477
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400770D")]
private readonly ThreefishEngine.ThreefishCipher cipher;
// Token: 0x0400770E RID: 30478
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400770E")]
private bool forEncryption;
// Token: 0x02001D92 RID: 7570
[Token(Token = "0x2001D92")]
private abstract class ThreefishCipher
{
// Token: 0x0600BCF2 RID: 48370 RVA: 0x0029E8F8 File Offset: 0x0029CAF8
[Token(Token = "0x600BCF2")]
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
protected ThreefishCipher(ulong[] kw, ulong[] t)
{
this.kw = kw;
this.t = t;
}
// Token: 0x0600BCF3 RID: 48371
[Token(Token = "0x600BCF3")]
[Address(Slot = "4")]
internal abstract void EncryptBlock(ulong[] block, ulong[] outWords);
// Token: 0x0600BCF4 RID: 48372
[Token(Token = "0x600BCF4")]
[Address(Slot = "5")]
internal abstract void DecryptBlock(ulong[] block, ulong[] outWords);
// Token: 0x0400770F RID: 30479
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400770F")]
protected readonly ulong[] t;
// Token: 0x04007710 RID: 30480
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007710")]
protected readonly ulong[] kw;
}
// Token: 0x02001D93 RID: 7571
[Token(Token = "0x2001D93")]
private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher
{
// Token: 0x0600BCF5 RID: 48373 RVA: 0x0029E91C File Offset: 0x0029CB1C
[Token(Token = "0x600BCF5")]
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
public Threefish256Cipher(ulong[] kw, ulong[] t)
{
this.kw = kw;
this.t = t;
}
// Token: 0x0600BCF6 RID: 48374 RVA: 0x0029E940 File Offset: 0x0029CB40
[Token(Token = "0x600BCF6")]
[Address(RVA = "0x2587DF0", Offset = "0x2586DF0", VA = "0x182587DF0", Slot = "4")]
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
{
ulong[] kw;
ulong[] t;
int[] mod;
int[] mod2;
do
{
kw = this.kw;
t = this.t;
mod = ThreefishEngine.MOD5;
mod2 = ThreefishEngine.MOD3;
}
while (kw.Length != 9 || t.Length != 5);
int length = block.Length;
ulong num = block[1];
ulong num2 = block[2];
ulong num3 = t[0];
ulong num4 = block[3];
num += num3;
ulong num5 = t[1];
num2 += num5;
uint num7;
int num6 = mod[(int)num7];
int num8 = mod2[(int)num7];
int length2 = kw.Length;
num8 = (int)((ulong)num8 + num4);
num4 = num;
num = num4;
int num9 = num6 + 1;
int length3 = t.Length;
ulong num10 = kw[num9];
num4 += num10;
int num11 = num8 + 1;
num10 = num;
num10 += (ulong)num7;
ulong num12;
num10 += num12;
ulong num13 = kw[num6];
num13 += num4;
ulong num14 = t[num11];
num11 = (int)((ulong)num11 + num14);
num14 = num10;
num11 = (int)((ulong)num11 + num10);
num11 = (int)((ulong)num11 + num4);
num13 += num14;
num = num14;
num13 = num;
int num15 = num6 + 1;
num10 += num;
int num16 = num8 + 1;
num8 += 2;
ulong num17 = t[num8];
num6 += 4;
num17 += (ulong)num11;
num13 += (ulong)1L;
num7 = (uint)((ulong)num7 + num13);
num7 += (uint)2;
}
// Token: 0x0600BCF7 RID: 48375 RVA: 0x0029EAB8 File Offset: 0x0029CCB8
[Token(Token = "0x600BCF7")]
[Address(RVA = "0x2587730", Offset = "0x2586730", VA = "0x182587730", Slot = "5")]
internal override void DecryptBlock(ulong[] block, ulong[] state)
{
ulong[] kw;
ulong[] t;
int[] mod;
int[] mod2;
int length;
do
{
kw = this.kw;
t = this.t;
mod = ThreefishEngine.MOD5;
mod2 = ThreefishEngine.MOD3;
length = kw.Length;
}
while (length != 9 || t.Length != 5);
int length2 = block.Length;
ulong num = block[0];
ulong num2 = block[1];
ulong num3 = block[2];
ulong num4 = block[3];
int num5 = mod[length2];
int num6 = mod2[length2];
num5++;
int num7 = num6 + 1;
ulong num8 = t[num7];
num2 -= num8;
ulong num9 = t[(int)num8];
num3 -= num9;
num4 -= (ulong)length;
num3 -= num3;
num -= num4;
num3 = num4;
num3 -= num3;
num -= num3;
num4 = num3;
num -= num4;
num3 -= num3;
int length3 = kw.Length;
int num10 = num5 + 1;
int length4 = t.Length;
int num11 = num6 + 1;
ulong num12 = t[num11];
num12 += num4;
num3 -= num12;
ulong num13 = kw[num5];
num13 += num3;
num -= num13;
num4 -= num13;
num13 = num3;
num -= num4;
num3 -= num13;
num3 = num13;
num13 = num4;
num -= num3;
num3 -= num13;
num4 = num13;
num13 = num3;
num -= num4;
num3 = num13;
num3 -= num3;
num3 -= num4;
num -= num3;
ulong num14 = kw[1];
ulong num15 = t[0];
ulong num16 = kw[2];
ulong num17 = t[1];
ulong num18 = kw[3];
num3 -= num15;
num3 -= num14;
num3 -= num17;
num3 -= num16;
num4 -= num18;
}
// Token: 0x04007711 RID: 30481
[Token(Token = "0x4007711")]
private const int ROTATION_0_0 = 14;
// Token: 0x04007712 RID: 30482
[Token(Token = "0x4007712")]
private const int ROTATION_0_1 = 16;
// Token: 0x04007713 RID: 30483
[Token(Token = "0x4007713")]
private const int ROTATION_1_0 = 52;
// Token: 0x04007714 RID: 30484
[Token(Token = "0x4007714")]
private const int ROTATION_1_1 = 57;
// Token: 0x04007715 RID: 30485
[Token(Token = "0x4007715")]
private const int ROTATION_2_0 = 23;
// Token: 0x04007716 RID: 30486
[Token(Token = "0x4007716")]
private const int ROTATION_2_1 = 40;
// Token: 0x04007717 RID: 30487
[Token(Token = "0x4007717")]
private const int ROTATION_3_0 = 5;
// Token: 0x04007718 RID: 30488
[Token(Token = "0x4007718")]
private const int ROTATION_3_1 = 37;
// Token: 0x04007719 RID: 30489
[Token(Token = "0x4007719")]
private const int ROTATION_4_0 = 25;
// Token: 0x0400771A RID: 30490
[Token(Token = "0x400771A")]
private const int ROTATION_4_1 = 33;
// Token: 0x0400771B RID: 30491
[Token(Token = "0x400771B")]
private const int ROTATION_5_0 = 46;
// Token: 0x0400771C RID: 30492
[Token(Token = "0x400771C")]
private const int ROTATION_5_1 = 12;
// Token: 0x0400771D RID: 30493
[Token(Token = "0x400771D")]
private const int ROTATION_6_0 = 58;
// Token: 0x0400771E RID: 30494
[Token(Token = "0x400771E")]
private const int ROTATION_6_1 = 22;
// Token: 0x0400771F RID: 30495
[Token(Token = "0x400771F")]
private const int ROTATION_7_0 = 32;
// Token: 0x04007720 RID: 30496
[Token(Token = "0x4007720")]
private const int ROTATION_7_1 = 32;
}
// Token: 0x02001D94 RID: 7572
[Token(Token = "0x2001D94")]
private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher
{
// Token: 0x0600BCF8 RID: 48376 RVA: 0x0029EC98 File Offset: 0x0029CE98
[Token(Token = "0x600BCF8")]
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
internal Threefish512Cipher(ulong[] kw, ulong[] t)
{
this.kw = kw;
this.t = t;
}
// Token: 0x0600BCF9 RID: 48377 RVA: 0x0029ECBC File Offset: 0x0029CEBC
[Token(Token = "0x600BCF9")]
[Address(RVA = "0x2588F90", Offset = "0x2587F90", VA = "0x182588F90", Slot = "4")]
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
{
ulong[] t;
ulong[] kw;
int[] mod;
int[] mod2;
do
{
t = this.t;
kw = this.kw;
mod = ThreefishEngine.MOD9;
mod2 = ThreefishEngine.MOD3;
}
while (kw.Length != 17 || t.Length != 5);
int length = block.Length;
ulong num = block[1];
ulong num2 = block[2];
ulong num3 = block[3];
ulong num4 = block[4];
ulong num5 = block[5];
ulong num6 = block[6];
ulong num7 = t[0];
ulong num8 = block[7];
num5 += num7;
ulong num9 = t[1];
num6 += num9;
uint num11;
int num10 = mod[(int)num11];
int num12 = mod2[(int)num11];
num2 += num3;
num = num3;
num4 = num;
num3 = num8;
num8 = num;
num6 = num8;
num = num4;
num5 = num3;
int length2 = kw.Length;
int num13 = num10 + 1;
ulong num14 = kw[num13];
num += num14;
ulong num15 = kw[(int)num14];
num4 = num6;
num4 += num15;
int length3 = t.Length;
ulong num16 = kw[mod];
num5 += num16;
int num17 = num12 + 1;
ulong num18 = kw[length3];
num16 = num5;
num6 = num4;
num3 += num4;
ulong num19 = kw[num10];
num16 += (ulong)num11;
num16 += num18;
ulong num20 = t[num17];
num19 += num;
num5 = num;
num4 = num5;
num += num5;
num5 += num20;
num20 = num16;
num5 += num16;
num16 = num5;
num += num20;
num5 += num4;
num20 = num6;
num6 = num20;
num5 = num20;
num3 = num5;
num += num5;
num4 += num6;
int num21 = num10 + 1;
num14 += num;
num15 += num5;
num16 += num4;
int length4 = t.Length;
num5 = num3;
num12 += 2;
num10 += 8;
uint num22 = num11 + 1U;
num11 += (uint)2;
num22 = (uint)((ulong)num22 + num5);
}
// Token: 0x0600BCFA RID: 48378 RVA: 0x0029EED4 File Offset: 0x0029D0D4
[Token(Token = "0x600BCFA")]
[Address(RVA = "0x2588420", Offset = "0x2587420", VA = "0x182588420", Slot = "5")]
internal override void DecryptBlock(ulong[] block, ulong[] state)
{
ulong[] t;
ulong[] kw;
int[] mod;
int[] mod2;
int length;
do
{
t = this.t;
kw = this.kw;
mod = ThreefishEngine.MOD9;
mod2 = ThreefishEngine.MOD3;
length = kw.Length;
}
while (length != 17 || t.Length != 5);
int i = block.Length;
ulong num = block[0];
ulong num2 = block[1];
ulong num3 = block[2];
ulong num4 = block[3];
ulong num5 = block[4];
ulong num6 = block[5];
ulong num7 = block[6];
ulong num8 = block[7];
i = length;
int num9 = mod[i];
int num10 = mod2[i];
int num11 = num9 + 1;
int num12 = num10 + 1;
ulong num13 = t[num12];
num6 -= num13;
ulong num14;
num14 -= (ulong)i;
num8 += num14;
ulong num15 = t[(int)num13];
num7 -= num15;
num15 = num5;
num7 -= num2;
num2 = num8;
num5 -= num15;
num3 -= num6;
num -= num2;
num15 = num5;
num2 = num15;
num5 -= num2;
num15 = num7;
num -= num6;
num8 = num15;
num15 = num2;
num7 -= num8;
num3 -= num15;
num15 = num3;
num6 = num15;
num2 = num15;
num3 -= num2;
num5 -= num6;
num15 = num8;
num7 -= num15;
num -= num15;
num6 = num2;
int length2 = kw.Length;
num2 = num15;
num15 = num6;
ulong num16 = kw[num9];
int num17 = num9 + 1;
num16 += num6;
num -= num16;
ulong num18 = kw[(int)num16];
num18 += num2;
num3 -= num18;
ulong num19 = kw[(int)num18];
num19 += num2;
num5 -= num19;
int length3 = t.Length;
num10++;
ulong num20 = t[num10];
num7 -= num20;
num2 = num6;
num7 -= num2;
num -= num15;
num6 = num2;
num3 -= num6;
num2 = num6;
num5 -= num2;
num18 = num5;
num2 = num18;
num -= num2;
num5 -= num2;
num2 = num15;
num3 -= num2;
num18 = num3;
num6 = num2;
num2 = num18;
num7 -= num2;
num3 -= num2;
num5 -= num6;
num18 = num7;
num2 = num18;
num18 = num2;
num7 -= num2;
num -= num18;
num15 = num6;
num2 = num18;
num7 -= num15;
num -= num2;
num3 -= num2;
num5 -= num2;
while (i >= 1)
{
}
ulong num21 = kw[1];
ulong num22 = kw[2];
ulong num23 = kw[3];
ulong num24 = kw[4];
ulong num25 = kw[5];
int length4 = t.Length;
ulong num26 = t[0];
ulong num27 = kw[6];
ulong num28 = t[1];
ulong num29 = kw[7];
num5 -= num24;
num2 -= num26;
num7 -= num28;
num7 -= num27;
num15 -= num29;
}
// Token: 0x04007721 RID: 30497
[Token(Token = "0x4007721")]
private const int ROTATION_0_0 = 46;
// Token: 0x04007722 RID: 30498
[Token(Token = "0x4007722")]
private const int ROTATION_0_1 = 36;
// Token: 0x04007723 RID: 30499
[Token(Token = "0x4007723")]
private const int ROTATION_0_2 = 19;
// Token: 0x04007724 RID: 30500
[Token(Token = "0x4007724")]
private const int ROTATION_0_3 = 37;
// Token: 0x04007725 RID: 30501
[Token(Token = "0x4007725")]
private const int ROTATION_1_0 = 33;
// Token: 0x04007726 RID: 30502
[Token(Token = "0x4007726")]
private const int ROTATION_1_1 = 27;
// Token: 0x04007727 RID: 30503
[Token(Token = "0x4007727")]
private const int ROTATION_1_2 = 14;
// Token: 0x04007728 RID: 30504
[Token(Token = "0x4007728")]
private const int ROTATION_1_3 = 42;
// Token: 0x04007729 RID: 30505
[Token(Token = "0x4007729")]
private const int ROTATION_2_0 = 17;
// Token: 0x0400772A RID: 30506
[Token(Token = "0x400772A")]
private const int ROTATION_2_1 = 49;
// Token: 0x0400772B RID: 30507
[Token(Token = "0x400772B")]
private const int ROTATION_2_2 = 36;
// Token: 0x0400772C RID: 30508
[Token(Token = "0x400772C")]
private const int ROTATION_2_3 = 39;
// Token: 0x0400772D RID: 30509
[Token(Token = "0x400772D")]
private const int ROTATION_3_0 = 44;
// Token: 0x0400772E RID: 30510
[Token(Token = "0x400772E")]
private const int ROTATION_3_1 = 9;
// Token: 0x0400772F RID: 30511
[Token(Token = "0x400772F")]
private const int ROTATION_3_2 = 54;
// Token: 0x04007730 RID: 30512
[Token(Token = "0x4007730")]
private const int ROTATION_3_3 = 56;
// Token: 0x04007731 RID: 30513
[Token(Token = "0x4007731")]
private const int ROTATION_4_0 = 39;
// Token: 0x04007732 RID: 30514
[Token(Token = "0x4007732")]
private const int ROTATION_4_1 = 30;
// Token: 0x04007733 RID: 30515
[Token(Token = "0x4007733")]
private const int ROTATION_4_2 = 34;
// Token: 0x04007734 RID: 30516
[Token(Token = "0x4007734")]
private const int ROTATION_4_3 = 24;
// Token: 0x04007735 RID: 30517
[Token(Token = "0x4007735")]
private const int ROTATION_5_0 = 13;
// Token: 0x04007736 RID: 30518
[Token(Token = "0x4007736")]
private const int ROTATION_5_1 = 50;
// Token: 0x04007737 RID: 30519
[Token(Token = "0x4007737")]
private const int ROTATION_5_2 = 10;
// Token: 0x04007738 RID: 30520
[Token(Token = "0x4007738")]
private const int ROTATION_5_3 = 17;
// Token: 0x04007739 RID: 30521
[Token(Token = "0x4007739")]
private const int ROTATION_6_0 = 25;
// Token: 0x0400773A RID: 30522
[Token(Token = "0x400773A")]
private const int ROTATION_6_1 = 29;
// Token: 0x0400773B RID: 30523
[Token(Token = "0x400773B")]
private const int ROTATION_6_2 = 39;
// Token: 0x0400773C RID: 30524
[Token(Token = "0x400773C")]
private const int ROTATION_6_3 = 43;
// Token: 0x0400773D RID: 30525
[Token(Token = "0x400773D")]
private const int ROTATION_7_0 = 8;
// Token: 0x0400773E RID: 30526
[Token(Token = "0x400773E")]
private const int ROTATION_7_1 = 35;
// Token: 0x0400773F RID: 30527
[Token(Token = "0x400773F")]
private const int ROTATION_7_2 = 56;
// Token: 0x04007740 RID: 30528
[Token(Token = "0x4007740")]
private const int ROTATION_7_3 = 22;
}
// Token: 0x02001D95 RID: 7573
[Token(Token = "0x2001D95")]
private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher
{
// Token: 0x0600BCFB RID: 48379 RVA: 0x0029F1F8 File Offset: 0x0029D3F8
[Token(Token = "0x600BCFB")]
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
public Threefish1024Cipher(ulong[] kw, ulong[] t)
{
this.kw = kw;
this.t = t;
}
// Token: 0x0600BCFC RID: 48380 RVA: 0x0029F21C File Offset: 0x0029D41C
[Token(Token = "0x600BCFC")]
[Address(RVA = "0x2586280", Offset = "0x2585280", VA = "0x182586280", Slot = "4")]
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
{
ulong[] array;
ulong[] array2;
int[] array3;
int[] array4;
do
{
array = this.kw;
array2 = this.t;
array3 = ThreefishEngine.MOD17;
array4 = ThreefishEngine.MOD3;
}
while (array.Length != 33 || array2.Length != 5);
ulong num = array2[0];
ulong num2 = array2[1];
array4 += num2;
uint num4;
int num3 = array3[(int)num4];
int num5 = array4[(int)num4];
array += typeof(ThreefishEngine).TypeHandle;
array4 += this;
array += this;
array4 += array4;
array3 += array4;
int length = array.Length;
int num6 = num3 + 1;
int length2 = array2.Length;
int num7 = num5 + 1;
num3 += 15;
array3 += num4;
ulong num8 = array[num3];
num8 += this;
ulong num9 = array[num6];
array3 += num9;
array3 += this;
ulong num10 = array[array4];
array4 += num10;
array4 += this;
ulong num11 = array[this];
array4 += num11;
array4 += array4;
ulong num12 = array[this];
ulong num13 = array[this];
array += num12;
num13 += array4;
ulong num14 = array[this];
array2 += array3;
array += this;
num13 += this;
array4 += array4;
ulong num15 = array[num6];
ulong num16 = array[array4];
num16 += array3;
ulong num17 = array[array4];
num17 += array4;
ulong num18 = array[this];
ulong num19 = array[this];
num19 += num8;
ulong num20 = array[this];
ulong num21 = array[this];
num21 += this;
num5++;
int length3 = array2.Length;
num5 += 2;
ulong num22 = array2[num5];
num4 += (uint)1;
num4 += array3;
num4 += (uint)2;
}
// Token: 0x0600BCFD RID: 48381 RVA: 0x0029F3D8 File Offset: 0x0029D5D8
[Token(Token = "0x600BCFD")]
[Address(RVA = "0x2584B30", Offset = "0x2583B30", VA = "0x182584B30", Slot = "5")]
internal override void DecryptBlock(ulong[] block, ulong[] state)
{
ulong[] t;
ulong[] kw;
int[] mod;
int[] mod2;
do
{
t = this.t;
kw = this.kw;
mod = ThreefishEngine.MOD17;
mod2 = ThreefishEngine.MOD3;
}
while (kw.Length != 33 || t.Length != 5);
int length = block.Length;
ulong num = block[1];
ulong num2 = block[2];
ulong num3 = block[3];
ulong num4 = block[5];
ulong num5 = block[6];
ulong num6 = block[7];
ulong num7 = block[8];
ulong num8 = block[9];
ulong num9 = block[10];
ulong num10 = block[11];
ulong num11 = block[12];
ulong num12 = block[13];
ulong num13 = block[14];
ulong num14 = block[15];
uint num16;
int num15 = mod[(int)num16];
int num17 = mod2[(int)num16];
int num18 = num15 + 1;
num17++;
ulong num19 = t[num17];
num17 += 2;
ulong num20 = t[num17];
num13 -= num20;
num14 -= (ulong)num16;
num2 -= num10;
num13 = num12;
num5 -= num13;
num14 = num8;
num8 = num7;
num13 -= num8;
num5 = num8;
num8 = num9;
num7 -= num5;
num7 = num8;
num8 = num11;
num9 -= num7;
num13 = num8;
num11 -= num13;
num11 = num13;
num2 -= num5;
num5 -= num5;
num8 = num14;
num11 -= num8;
num5 = num10;
num11 = num13;
num7 = num11;
num7 -= num5;
num13 -= num7;
num13 = num9;
num9 -= num13;
num7 = num13;
num10 = num7;
num2 -= num10;
num5 -= num5;
num14 = num8;
num9 = num11;
num5 = num9;
num11 -= num5;
num9 = num13;
num7 = num9;
num13 -= num7;
num9 = num7;
num13 = num9;
num7 -= num13;
num5 = num13;
num9 = num14;
int length2 = kw.Length;
ulong num21 = kw[num15];
num21 += num5;
int num22 = num15 + 1;
ulong num23 = kw[num22];
num23 += num5;
num2 -= num23;
ulong num24 = kw[(int)num23];
ulong num25 = kw[(int)num24];
num5 -= num25;
ulong num26 = kw[(int)num25];
num7 -= num26;
ulong num27 = kw[(int)num26];
num9 -= num27;
ulong num28 = kw[(int)num27];
num28 += num10;
num11 -= num28;
int length3 = t.Length;
num17++;
ulong num29 = t[num17];
num15 += 15;
num29 += num9;
num13 -= num29;
num9 -= (ulong)num16;
num2 -= num9;
num5 -= num10;
num13 -= num5;
num5 = num9;
num7 -= num5;
num9 = num5;
num9 -= num9;
num25 = num9;
num11 -= num25;
num9 = num5;
num11 = num9;
num2 -= num9;
num2 = num5;
num5 -= num2;
num5 = num13;
num13 -= num5;
num5 = num9;
num7 -= num5;
num13 = num9;
num9 -= num13;
num9 = num5;
num2 -= num9;
num5 -= num5;
num9 = num11;
num11 = num9;
num9 = num11;
num9 -= num11;
num5 = num9;
num9 = num13;
num11 -= num5;
num5 = num9;
num9 = num7;
num13 -= num5;
num11 = num9;
num7 -= num11;
num9 = num5;
num2 -= num9;
num5 -= num11;
num11 = num9;
num2 = num9;
num7 -= num11;
num11 = num5;
num13 -= num2;
num5 = num9;
num5 -= num11;
num11 -= num9;
while (num16 >= (uint)1)
{
}
ulong num30 = kw[1];
ulong num31 = kw[2];
ulong num32 = kw[3];
ulong num33 = kw[4];
ulong num34 = kw[5];
ulong num35 = kw[6];
ulong num36 = kw[7];
ulong num37 = kw[8];
ulong num38 = kw[9];
ulong num39 = kw[10];
ulong num40 = kw[11];
ulong num41 = kw[12];
ulong num42 = kw[13];
int length4 = t.Length;
ulong num43 = t[0];
ulong num44 = kw[14];
ulong num45 = t[1];
ulong num46 = kw[15];
num13 -= num45;
num13 -= num44;
num2 -= num46;
}
// Token: 0x04007741 RID: 30529
[Token(Token = "0x4007741")]
private const int ROTATION_0_0 = 24;
// Token: 0x04007742 RID: 30530
[Token(Token = "0x4007742")]
private const int ROTATION_0_1 = 13;
// Token: 0x04007743 RID: 30531
[Token(Token = "0x4007743")]
private const int ROTATION_0_2 = 8;
// Token: 0x04007744 RID: 30532
[Token(Token = "0x4007744")]
private const int ROTATION_0_3 = 47;
// Token: 0x04007745 RID: 30533
[Token(Token = "0x4007745")]
private const int ROTATION_0_4 = 8;
// Token: 0x04007746 RID: 30534
[Token(Token = "0x4007746")]
private const int ROTATION_0_5 = 17;
// Token: 0x04007747 RID: 30535
[Token(Token = "0x4007747")]
private const int ROTATION_0_6 = 22;
// Token: 0x04007748 RID: 30536
[Token(Token = "0x4007748")]
private const int ROTATION_0_7 = 37;
// Token: 0x04007749 RID: 30537
[Token(Token = "0x4007749")]
private const int ROTATION_1_0 = 38;
// Token: 0x0400774A RID: 30538
[Token(Token = "0x400774A")]
private const int ROTATION_1_1 = 19;
// Token: 0x0400774B RID: 30539
[Token(Token = "0x400774B")]
private const int ROTATION_1_2 = 10;
// Token: 0x0400774C RID: 30540
[Token(Token = "0x400774C")]
private const int ROTATION_1_3 = 55;
// Token: 0x0400774D RID: 30541
[Token(Token = "0x400774D")]
private const int ROTATION_1_4 = 49;
// Token: 0x0400774E RID: 30542
[Token(Token = "0x400774E")]
private const int ROTATION_1_5 = 18;
// Token: 0x0400774F RID: 30543
[Token(Token = "0x400774F")]
private const int ROTATION_1_6 = 23;
// Token: 0x04007750 RID: 30544
[Token(Token = "0x4007750")]
private const int ROTATION_1_7 = 52;
// Token: 0x04007751 RID: 30545
[Token(Token = "0x4007751")]
private const int ROTATION_2_0 = 33;
// Token: 0x04007752 RID: 30546
[Token(Token = "0x4007752")]
private const int ROTATION_2_1 = 4;
// Token: 0x04007753 RID: 30547
[Token(Token = "0x4007753")]
private const int ROTATION_2_2 = 51;
// Token: 0x04007754 RID: 30548
[Token(Token = "0x4007754")]
private const int ROTATION_2_3 = 13;
// Token: 0x04007755 RID: 30549
[Token(Token = "0x4007755")]
private const int ROTATION_2_4 = 34;
// Token: 0x04007756 RID: 30550
[Token(Token = "0x4007756")]
private const int ROTATION_2_5 = 41;
// Token: 0x04007757 RID: 30551
[Token(Token = "0x4007757")]
private const int ROTATION_2_6 = 59;
// Token: 0x04007758 RID: 30552
[Token(Token = "0x4007758")]
private const int ROTATION_2_7 = 17;
// Token: 0x04007759 RID: 30553
[Token(Token = "0x4007759")]
private const int ROTATION_3_0 = 5;
// Token: 0x0400775A RID: 30554
[Token(Token = "0x400775A")]
private const int ROTATION_3_1 = 20;
// Token: 0x0400775B RID: 30555
[Token(Token = "0x400775B")]
private const int ROTATION_3_2 = 48;
// Token: 0x0400775C RID: 30556
[Token(Token = "0x400775C")]
private const int ROTATION_3_3 = 41;
// Token: 0x0400775D RID: 30557
[Token(Token = "0x400775D")]
private const int ROTATION_3_4 = 47;
// Token: 0x0400775E RID: 30558
[Token(Token = "0x400775E")]
private const int ROTATION_3_5 = 28;
// Token: 0x0400775F RID: 30559
[Token(Token = "0x400775F")]
private const int ROTATION_3_6 = 16;
// Token: 0x04007760 RID: 30560
[Token(Token = "0x4007760")]
private const int ROTATION_3_7 = 25;
// Token: 0x04007761 RID: 30561
[Token(Token = "0x4007761")]
private const int ROTATION_4_0 = 41;
// Token: 0x04007762 RID: 30562
[Token(Token = "0x4007762")]
private const int ROTATION_4_1 = 9;
// Token: 0x04007763 RID: 30563
[Token(Token = "0x4007763")]
private const int ROTATION_4_2 = 37;
// Token: 0x04007764 RID: 30564
[Token(Token = "0x4007764")]
private const int ROTATION_4_3 = 31;
// Token: 0x04007765 RID: 30565
[Token(Token = "0x4007765")]
private const int ROTATION_4_4 = 12;
// Token: 0x04007766 RID: 30566
[Token(Token = "0x4007766")]
private const int ROTATION_4_5 = 47;
// Token: 0x04007767 RID: 30567
[Token(Token = "0x4007767")]
private const int ROTATION_4_6 = 44;
// Token: 0x04007768 RID: 30568
[Token(Token = "0x4007768")]
private const int ROTATION_4_7 = 30;
// Token: 0x04007769 RID: 30569
[Token(Token = "0x4007769")]
private const int ROTATION_5_0 = 16;
// Token: 0x0400776A RID: 30570
[Token(Token = "0x400776A")]
private const int ROTATION_5_1 = 34;
// Token: 0x0400776B RID: 30571
[Token(Token = "0x400776B")]
private const int ROTATION_5_2 = 56;
// Token: 0x0400776C RID: 30572
[Token(Token = "0x400776C")]
private const int ROTATION_5_3 = 51;
// Token: 0x0400776D RID: 30573
[Token(Token = "0x400776D")]
private const int ROTATION_5_4 = 4;
// Token: 0x0400776E RID: 30574
[Token(Token = "0x400776E")]
private const int ROTATION_5_5 = 53;
// Token: 0x0400776F RID: 30575
[Token(Token = "0x400776F")]
private const int ROTATION_5_6 = 42;
// Token: 0x04007770 RID: 30576
[Token(Token = "0x4007770")]
private const int ROTATION_5_7 = 41;
// Token: 0x04007771 RID: 30577
[Token(Token = "0x4007771")]
private const int ROTATION_6_0 = 31;
// Token: 0x04007772 RID: 30578
[Token(Token = "0x4007772")]
private const int ROTATION_6_1 = 44;
// Token: 0x04007773 RID: 30579
[Token(Token = "0x4007773")]
private const int ROTATION_6_2 = 47;
// Token: 0x04007774 RID: 30580
[Token(Token = "0x4007774")]
private const int ROTATION_6_3 = 46;
// Token: 0x04007775 RID: 30581
[Token(Token = "0x4007775")]
private const int ROTATION_6_4 = 19;
// Token: 0x04007776 RID: 30582
[Token(Token = "0x4007776")]
private const int ROTATION_6_5 = 42;
// Token: 0x04007777 RID: 30583
[Token(Token = "0x4007777")]
private const int ROTATION_6_6 = 44;
// Token: 0x04007778 RID: 30584
[Token(Token = "0x4007778")]
private const int ROTATION_6_7 = 25;
// Token: 0x04007779 RID: 30585
[Token(Token = "0x4007779")]
private const int ROTATION_7_0 = 9;
// Token: 0x0400777A RID: 30586
[Token(Token = "0x400777A")]
private const int ROTATION_7_1 = 48;
// Token: 0x0400777B RID: 30587
[Token(Token = "0x400777B")]
private const int ROTATION_7_2 = 35;
// Token: 0x0400777C RID: 30588
[Token(Token = "0x400777C")]
private const int ROTATION_7_3 = 52;
// Token: 0x0400777D RID: 30589
[Token(Token = "0x400777D")]
private const int ROTATION_7_4 = 23;
// Token: 0x0400777E RID: 30590
[Token(Token = "0x400777E")]
private const int ROTATION_7_5 = 31;
// Token: 0x0400777F RID: 30591
[Token(Token = "0x400777F")]
private const int ROTATION_7_6 = 37;
// Token: 0x04007780 RID: 30592
[Token(Token = "0x4007780")]
private const int ROTATION_7_7 = 20;
}
}
}
@@ -0,0 +1,999 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D96 RID: 7574
[Token(Token = "0x2001D96")]
public sealed class TnepresEngine : SerpentEngineBase
{
// Token: 0x17001D97 RID: 7575
// (get) Token: 0x0600BCFE RID: 48382 RVA: 0x0029F870 File Offset: 0x0029DA70
[Token(Token = "0x17001D97")]
public override string AlgorithmName
{
[Token(Token = "0x600BCFE")]
[Address(RVA = "0x25910D0", Offset = "0x25900D0", VA = "0x1825910D0", Slot = "11")]
get
{
return "Tnepres";
}
}
// Token: 0x0600BCFF RID: 48383 RVA: 0x0029F884 File Offset: 0x0029DA84
[Token(Token = "0x600BCFF")]
[Address(RVA = "0x258E850", Offset = "0x258D850", VA = "0x18258E850", Slot = "15")]
protected override int[] MakeWorkingKey(byte[] key)
{
/*
An exception occurred when decompiling this method (0600BCFF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::MakeWorkingKey(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5F:
stloc:int32[](var_8_69, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(132)))
stloc:int32(var_10_71, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
stloc:int32(var_11_7B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldloc:int32[][exp:int32](var_8_69)))
stloc:uint32(var_12_81, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldc.i4:int32(0), ldloc:int32(var_11_7B))
stloc:int32(var_14_8D, ldc.i4:int32(0))
call:void(Array::Copy, ldloc:int32[][exp:Array](var_1_07), ldloc:uint32[exp:int32](var_9), ldloc:int32[][exp:Array](var_8_69), ldloc:int32(var_14_8D), ldloc:uint32[exp:int32](var_9))
stloc:int32(var_15_A4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:uint32(var_16_B6, call:uint32(LAELBLPHAIB::BCBNCDMHJED, ldelem:int32[exp:uint32]([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldloc:uint32[exp:int32](var_9)), ldc.i4:int32(11)))
stloc:uint32(var_17_BC, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_16_B6))
stloc:int32(var_18_CF, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_19_D9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
stloc:int32(var_21_E6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
stloc:int32(var_22_F0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
stloc:int32(var_23_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_FA), ldloc:int32(var_22_F0), ldloc:int32(var_21_E6), ldloc:int32(var_19_D9))
stloc:int32(var_24_110, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_24_110))
stloc:int32(var_25_122, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_25_122))
stloc:int32(var_26_134, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_26_134))
stloc:int32(var_27_146, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_27_146))
stloc:int32(var_28_159, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_29_163, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
stloc:int32(var_30_16D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
stloc:int32(var_31_177, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
stloc:int32(var_32_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_181), ldloc:int32(var_31_177), ldloc:int32(var_30_16D), ldloc:int32(var_29_163))
stloc:int32(var_33_197, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_33_197))
stloc:int32(var_34_1A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_34_1A9))
stloc:int32(var_35_1BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_35_1BB))
stloc:int32(var_36_1CD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_36_1CD))
stloc:int32(var_37_1E0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_38_1EA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
stloc:int32(var_39_1F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
stloc:int32(var_40_1FE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
stloc:int32(var_41_208, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_208), ldloc:int32(var_40_1FE), ldloc:int32(var_39_1F4), ldloc:int32(var_38_1EA))
stloc:int32(var_42_21E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_42_21E))
stloc:int32(var_43_230, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_43_230))
stloc:int32(var_44_242, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_44_242))
stloc:int32(var_45_254, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_45_254))
stloc:int32(var_46_267, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_47_271, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
stloc:int32(var_48_27B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
stloc:int32(var_49_285, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
stloc:int32(var_50_28F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_28F), ldloc:int32(var_49_285), ldloc:int32(var_48_27B), ldloc:int32(var_47_271))
stloc:int32(var_51_2A5, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_51_2A5))
stloc:int32(var_52_2B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_52_2B7))
stloc:int32(var_53_2C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_53_2C9))
stloc:int32(var_54_2DB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_54_2DB))
stloc:int32(var_55_2EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_56_2F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
stloc:int32(var_57_304, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
stloc:int32(var_58_30E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
stloc:int32(var_59_318, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_318), ldloc:int32(var_58_30E), ldloc:int32(var_57_304), ldloc:int32(var_56_2F9))
stloc:int32(var_60_32E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_60_32E))
stloc:int32(var_61_340, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_61_340))
stloc:int32(var_62_352, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_62_352))
stloc:int32(var_63_365, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_63_365))
stloc:int32(var_64_379, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_65_384, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
stloc:int32(var_66_38F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
stloc:int32(var_67_39A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
stloc:int32(var_68_3A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_3A5), ldloc:int32(var_67_39A), ldloc:int32(var_66_38F), ldloc:int32(var_65_384))
stloc:int32(var_69_3BB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_69_3BB))
stloc:int32(var_70_3CE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_70_3CE))
stloc:int32(var_71_3E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_71_3E1))
stloc:int32(var_72_3F4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_72_3F4))
stloc:int32(var_73_408, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_74_413, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
stloc:int32(var_75_41E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
stloc:int32(var_76_429, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
stloc:int32(var_77_434, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_434), ldloc:int32(var_76_429), ldloc:int32(var_75_41E), ldloc:int32(var_74_413))
stloc:int32(var_78_44A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_78_44A))
stloc:int32(var_79_45D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_79_45D))
stloc:int32(var_80_470, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_80_470))
stloc:int32(var_81_483, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_81_483))
stloc:int32(var_82_497, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_83_4A2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
stloc:int32(var_84_4AD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
stloc:int32(var_85_4B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
stloc:int32(var_86_4C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_4C3), ldloc:int32(var_85_4B8), ldloc:int32(var_84_4AD), ldloc:int32(var_83_4A2))
stloc:int32(var_87_4D9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_87_4D9))
stloc:int32(var_88_4EC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_88_4EC))
stloc:int32(var_89_4FF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_89_4FF))
stloc:int32(var_90_512, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_90_512))
stloc:int32(var_91_526, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_92_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
stloc:int32(var_93_53C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
stloc:int32(var_94_547, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
stloc:int32(var_95_552, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_552), ldloc:int32(var_94_547), ldloc:int32(var_93_53C), ldloc:int32(var_92_531))
stloc:int32(var_96_568, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_96_568))
stloc:int32(var_97_57B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_97_57B))
stloc:int32(var_98_58E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_98_58E))
stloc:int32(var_99_5A1, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_99_5A1))
stloc:int32(var_100_5B5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_101_5C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
stloc:int32(var_102_5CB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
stloc:int32(var_103_5D6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
stloc:int32(var_104_5E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_104_5E1), ldloc:int32(var_103_5D6), ldloc:int32(var_102_5CB), ldloc:int32(var_101_5C0))
stloc:int32(var_105_5F7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_105_5F7))
stloc:int32(var_106_60A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_106_60A))
stloc:int32(var_107_61D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_107_61D))
stloc:int32(var_108_630, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_108_630))
stloc:int32(var_109_644, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_110_64F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
stloc:int32(var_111_65A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
stloc:int32(var_112_665, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
stloc:int32(var_113_670, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_670), ldloc:int32(var_112_665), ldloc:int32(var_111_65A), ldloc:int32(var_110_64F))
stloc:int32(var_114_686, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_114_686))
stloc:int32(var_115_699, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_115_699))
stloc:int32(var_116_6AC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_116_6AC))
stloc:int32(var_117_6BF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_117_6BF))
stloc:int32(var_118_6D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_119_6DE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
stloc:int32(var_120_6E9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
stloc:int32(var_121_6F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
stloc:int32(var_122_6FF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_6FF), ldloc:int32(var_121_6F4), ldloc:int32(var_120_6E9), ldloc:int32(var_119_6DE))
stloc:int32(var_123_715, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_123_715))
stloc:int32(var_124_728, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_124_728))
stloc:int32(var_125_73B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_125_73B))
stloc:int32(var_126_74E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_126_74E))
stloc:int32(var_127_762, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_128_76D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
stloc:int32(var_129_778, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
stloc:int32(var_130_783, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
stloc:int32(var_131_78E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_78E), ldloc:int32(var_130_783), ldloc:int32(var_129_778), ldloc:int32(var_128_76D))
stloc:int32(var_132_7A4, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_132_7A4))
stloc:int32(var_133_7B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_133_7B7))
stloc:int32(var_134_7CA, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_134_7CA))
stloc:int32(var_135_7DD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_135_7DD))
stloc:int32(var_136_7F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_137_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
stloc:int32(var_138_807, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
stloc:int32(var_139_812, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
stloc:int32(var_140_81D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_81D), ldloc:int32(var_139_812), ldloc:int32(var_138_807), ldloc:int32(var_137_7FC))
stloc:int32(var_141_833, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_141_833))
stloc:int32(var_142_846, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_142_846))
stloc:int32(var_143_859, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_143_859))
stloc:int32(var_144_86C, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_144_86C))
stloc:int32(var_145_880, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_146_88B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
stloc:int32(var_147_896, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
stloc:int32(var_148_8A1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
stloc:int32(var_149_8AC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_149_8AC), ldloc:int32(var_148_8A1), ldloc:int32(var_147_896), ldloc:int32(var_146_88B))
stloc:int32(var_150_8C2, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_150_8C2))
stloc:int32(var_151_8D5, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_151_8D5))
stloc:int32(var_152_8E8, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_152_8E8))
stloc:int32(var_153_8FB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_153_8FB))
stloc:int32(var_154_90F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_155_91A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
stloc:int32(var_156_925, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
stloc:int32(var_157_930, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
stloc:int32(var_158_93B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_158_93B), ldloc:int32(var_157_930), ldloc:int32(var_156_925), ldloc:int32(var_155_91A))
stloc:int32(var_159_951, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_159_951))
stloc:int32(var_160_964, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_160_964))
stloc:int32(var_161_977, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_161_977))
stloc:int32(var_162_98A, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_162_98A))
stloc:int32(var_163_99E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_164_9A9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
stloc:int32(var_165_9B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
stloc:int32(var_166_9BF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
stloc:int32(var_167_9CA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_167_9CA), ldloc:int32(var_166_9BF), ldloc:int32(var_165_9B4), ldloc:int32(var_164_9A9))
stloc:int32(var_168_9E0, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_168_9E0))
stloc:int32(var_169_9F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_169_9F3))
stloc:int32(var_170_A06, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_170_A06))
stloc:int32(var_171_A19, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_171_A19))
stloc:int32(var_172_A2D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_173_A38, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
stloc:int32(var_174_A43, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
stloc:int32(var_175_A4E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
stloc:int32(var_176_A59, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_176_A59), ldloc:int32(var_175_A4E), ldloc:int32(var_174_A43), ldloc:int32(var_173_A38))
stloc:int32(var_177_A6F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_177_A6F))
stloc:int32(var_178_A82, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_178_A82))
stloc:int32(var_179_A95, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_179_A95))
stloc:int32(var_180_AA8, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_180_AA8))
stloc:int32(var_181_ABC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_182_AC7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
stloc:int32(var_183_AD2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
stloc:int32(var_184_ADD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
stloc:int32(var_185_AE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_185_AE8), ldloc:int32(var_184_ADD), ldloc:int32(var_183_AD2), ldloc:int32(var_182_AC7))
stloc:int32(var_186_AFE, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_186_AFE))
stloc:int32(var_187_B11, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_187_B11))
stloc:int32(var_188_B24, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_188_B24))
stloc:int32(var_189_B37, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_189_B37))
stloc:int32(var_190_B4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_191_B56, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
stloc:int32(var_192_B61, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
stloc:int32(var_193_B6C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
stloc:int32(var_194_B77, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_194_B77), ldloc:int32(var_193_B6C), ldloc:int32(var_192_B61), ldloc:int32(var_191_B56))
stloc:int32(var_195_B8D, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_195_B8D))
stloc:int32(var_196_BA0, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_196_BA0))
stloc:int32(var_197_BB3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_197_BB3))
stloc:int32(var_198_BC6, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_198_BC6))
stloc:int32(var_199_BDA, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_200_BE5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
stloc:int32(var_201_BF0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
stloc:int32(var_202_BFB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
stloc:int32(var_203_C06, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_203_C06), ldloc:int32(var_202_BFB), ldloc:int32(var_201_BF0), ldloc:int32(var_200_BE5))
stloc:int32(var_204_C1C, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_204_C1C))
stloc:int32(var_205_C2F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_205_C2F))
stloc:int32(var_206_C42, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_206_C42))
stloc:int32(var_207_C55, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_207_C55))
stloc:int32(var_208_C69, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_209_C74, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
stloc:int32(var_210_C7F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
stloc:int32(var_211_C8A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
stloc:int32(var_212_C95, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_212_C95), ldloc:int32(var_211_C8A), ldloc:int32(var_210_C7F), ldloc:int32(var_209_C74))
stloc:int32(var_213_CAB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_213_CAB))
stloc:int32(var_214_CBE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_214_CBE))
stloc:int32(var_215_CD1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_215_CD1))
stloc:int32(var_216_CE4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_216_CE4))
stloc:int32(var_217_CF8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_218_D03, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
stloc:int32(var_219_D0E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
stloc:int32(var_220_D19, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
stloc:int32(var_221_D24, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_221_D24), ldloc:int32(var_220_D19), ldloc:int32(var_219_D0E), ldloc:int32(var_218_D03))
stloc:int32(var_222_D3A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_222_D3A))
stloc:int32(var_223_D4D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_223_D4D))
stloc:int32(var_224_D60, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_224_D60))
stloc:int32(var_225_D73, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_225_D73))
stloc:int32(var_226_D87, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_227_D92, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
stloc:int32(var_228_D9D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
stloc:int32(var_229_DA8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
stloc:int32(var_230_DB3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_230_DB3), ldloc:int32(var_229_DA8), ldloc:int32(var_228_D9D), ldloc:int32(var_227_D92))
stloc:int32(var_231_DC9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_231_DC9))
stloc:int32(var_232_DDC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_232_DDC))
stloc:int32(var_233_DEF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_233_DEF))
stloc:int32(var_234_E02, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_234_E02))
stloc:int32(var_235_E16, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_236_E21, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
stloc:int32(var_237_E2C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
stloc:int32(var_238_E37, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
stloc:int32(var_239_E42, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_239_E42), ldloc:int32(var_238_E37), ldloc:int32(var_237_E2C), ldloc:int32(var_236_E21))
stloc:int32(var_240_E58, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_240_E58))
stloc:int32(var_241_E6B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_241_E6B))
stloc:int32(var_242_E7E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_242_E7E))
stloc:int32(var_243_E91, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_243_E91))
stloc:int32(var_244_EA5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_245_EB0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
stloc:int32(var_246_EBB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
stloc:int32(var_247_EC6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
stloc:int32(var_248_ED1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_248_ED1), ldloc:int32(var_247_EC6), ldloc:int32(var_246_EBB), ldloc:int32(var_245_EB0))
stloc:int32(var_249_EE7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_249_EE7))
stloc:int32(var_250_EFA, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_250_EFA))
stloc:int32(var_251_F0D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_251_F0D))
stloc:int32(var_252_F20, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_252_F20))
stloc:int32(var_253_F34, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_254_F3F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
stloc:int32(var_255_F4A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
stloc:int32(var_256_F55, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
stloc:int32(var_257_F62, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_257_F62), ldloc:int32(var_256_F55), ldloc:int32(var_255_F4A), ldloc:int32(var_254_F3F))
stloc:int32(var_258_F7E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_258_F7E))
stloc:int32(var_259_F95, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_259_F95))
stloc:int32(var_260_FAC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_260_FAC))
stloc:int32(var_261_FC3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_261_FC3))
stloc:int32(var_262_FDB, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
stloc:int32(var_263_FE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
stloc:int32(var_264_FF5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
stloc:int32(var_265_1002, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
stloc:int32(var_266_100F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_266_100F), ldloc:int32(var_265_1002), ldloc:int32(var_264_FF5), ldloc:int32(var_263_FE8))
stloc:int32(var_267_102F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_267_102F))
stloc:int32(var_268_1046, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_268_1046))
stloc:int32(var_269_105D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_269_105D))
stloc:int32(var_270_1074, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_270_1074))
stloc:int32(var_271_108C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
}
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: 0x0600BD00 RID: 48384 RVA: 0x002A0920 File Offset: 0x0029EB20
[Token(Token = "0x600BD00")]
[Address(RVA = "0x258CBE0", Offset = "0x258BBE0", VA = "0x18258CBE0", Slot = "16")]
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BD00)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::EncryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_0_07))
stloc:uint32(var_1_16, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_16))
stloc:uint32(var_2_25, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_2_25))
stloc:uint32(var_3_34, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stloc:int32[](var_4_3B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34))
stloc:int32(var_5_4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_4_3B)))
stloc:int32(var_6_53, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_7_5B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_8_65, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_3B), ldc.i4:int32(1)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34), ldloc:int32(var_6_53), ldloc:int32(var_7_5B), ldloc:int32(var_8_65))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_10_83, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_11_8C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_10_83)))
stloc:int32(var_12_94, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_13_9C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_14_A4, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_15_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_83), ldc.i4:int32(3)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_94), ldloc:int32(var_13_9C), ldloc:int32(var_14_A4), ldloc:int32(var_15_AE))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_16_CA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_17_D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_16_CA)))
stloc:int32(var_18_DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_19_E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_20_EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_21_F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_16_CA), ldc.i4:int32(5)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_DB), ldloc:int32(var_19_E3), ldloc:int32(var_20_EB), ldloc:int32(var_21_F5))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_22_111, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_23_11A, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_22_111)))
stloc:int32(var_24_122, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_25_12A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_26_132, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_27_13C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_22_111), ldc.i4:int32(7)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_122), ldloc:int32(var_25_12A), ldloc:int32(var_26_132), ldloc:int32(var_27_13C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_28_158, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_29_161, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_28_158)))
stloc:int32(var_30_169, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_31_171, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_32_179, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_33_184, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_28_158), ldc.i4:int32(9)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_169), ldloc:int32(var_31_171), ldloc:int32(var_32_179), ldloc:int32(var_33_184))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_34_1A0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_35_1A9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_34_1A0)))
stloc:int32(var_36_1B1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_37_1B9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_38_1C1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_39_1CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_34_1A0), ldc.i4:int32(11)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1B1), ldloc:int32(var_37_1B9), ldloc:int32(var_38_1C1), ldloc:int32(var_39_1CC))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_40_1E8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_41_1F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_40_1E8)))
stloc:int32(var_42_1F9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_43_201, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_44_209, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_45_214, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_1E8), ldc.i4:int32(13)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_1F9), ldloc:int32(var_43_201), ldloc:int32(var_44_209), ldloc:int32(var_45_214))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_46_230, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_47_239, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_46_230)))
stloc:int32(var_48_241, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_49_249, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_50_251, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_51_25C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_230), ldc.i4:int32(15)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_241), ldloc:int32(var_49_249), ldloc:int32(var_50_251), ldloc:int32(var_51_25C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_52_278, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_53_281, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_278)))
stloc:int32(var_54_289, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_55_291, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_56_299, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_57_2A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_278), ldc.i4:int32(17)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_289), ldloc:int32(var_55_291), ldloc:int32(var_56_299), ldloc:int32(var_57_2A4))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_58_2C0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_59_2C9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_58_2C0)))
stloc:int32(var_60_2D1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_61_2D9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_62_2E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_63_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_2C0), ldc.i4:int32(19)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_2D1), ldloc:int32(var_61_2D9), ldloc:int32(var_62_2E1), ldloc:int32(var_63_2EC))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_64_308, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_65_311, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_64_308)))
stloc:int32(var_66_319, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_67_321, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_68_329, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_69_334, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_308), ldc.i4:int32(21)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_319), ldloc:int32(var_67_321), ldloc:int32(var_68_329), ldloc:int32(var_69_334))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_70_350, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_71_359, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_70_350)))
stloc:int32(var_72_361, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_73_369, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_74_371, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_75_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_350), ldc.i4:int32(23)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_361), ldloc:int32(var_73_369), ldloc:int32(var_74_371), ldloc:int32(var_75_37C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_76_398, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_77_3A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_76_398)))
stloc:int32(var_78_3A9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_79_3B1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_80_3B9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_81_3C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_76_398), ldc.i4:int32(25)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_3A9), ldloc:int32(var_79_3B1), ldloc:int32(var_80_3B9), ldloc:int32(var_81_3C4))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_82_3E0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_83_3E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_82_3E0)))
stloc:int32(var_84_3F1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_85_3F9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_86_401, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_87_40C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_82_3E0), ldc.i4:int32(27)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_3F1), ldloc:int32(var_85_3F9), ldloc:int32(var_86_401), ldloc:int32(var_87_40C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_88_428, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_89_431, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_88_428)))
stloc:int32(var_90_439, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_91_441, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_92_449, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_93_454, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_88_428), ldc.i4:int32(29)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_439), ldloc:int32(var_91_441), ldloc:int32(var_92_449), ldloc:int32(var_93_454))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_94_470, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_95_479, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_94_470)))
stloc:int32(var_96_481, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_97_489, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_98_491, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_99_49C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_94_470), ldc.i4:int32(31)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_481), ldloc:int32(var_97_489), ldloc:int32(var_98_491), ldloc:int32(var_99_49C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_100_4B8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_101_4C1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_100_4B8)))
stloc:int32(var_102_4C9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_103_4D1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_104_4D9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_105_4E4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_100_4B8), ldc.i4:int32(33)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_4C9), ldloc:int32(var_103_4D1), ldloc:int32(var_104_4D9), ldloc:int32(var_105_4E4))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_106_500, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_107_509, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_106_500)))
stloc:int32(var_108_511, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_109_519, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_110_521, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_111_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_106_500), ldc.i4:int32(35)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_511), ldloc:int32(var_109_519), ldloc:int32(var_110_521), ldloc:int32(var_111_52C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_112_548, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_113_551, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_112_548)))
stloc:int32(var_114_559, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_115_561, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_116_569, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_117_574, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_548), ldc.i4:int32(37)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_559), ldloc:int32(var_115_561), ldloc:int32(var_116_569), ldloc:int32(var_117_574))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_118_590, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_119_599, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_118_590)))
stloc:int32(var_120_5A1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_121_5A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_122_5B1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_123_5BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_590), ldc.i4:int32(39)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_5A1), ldloc:int32(var_121_5A9), ldloc:int32(var_122_5B1), ldloc:int32(var_123_5BC))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_124_5D8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_125_5E1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_124_5D8)))
stloc:int32(var_126_5E9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_127_5F1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_128_5F9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_129_604, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_124_5D8), ldc.i4:int32(41)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5E9), ldloc:int32(var_127_5F1), ldloc:int32(var_128_5F9), ldloc:int32(var_129_604))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_130_620, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_131_629, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_130_620)))
stloc:int32(var_132_631, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_133_639, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_134_641, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_135_64C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_130_620), ldc.i4:int32(43)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_631), ldloc:int32(var_133_639), ldloc:int32(var_134_641), ldloc:int32(var_135_64C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_136_668, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_137_671, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_136_668)))
stloc:int32(var_138_679, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_139_681, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_140_689, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_141_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_136_668), ldc.i4:int32(45)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_679), ldloc:int32(var_139_681), ldloc:int32(var_140_689), ldloc:int32(var_141_694))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_142_6B0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_143_6B9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_142_6B0)))
stloc:int32(var_144_6C1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_145_6C9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_146_6D1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_147_6DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_142_6B0), ldc.i4:int32(47)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_6C1), ldloc:int32(var_145_6C9), ldloc:int32(var_146_6D1), ldloc:int32(var_147_6DC))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_148_6F8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_149_701, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_148_6F8)))
stloc:int32(var_150_709, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_151_711, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_152_719, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_153_724, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_148_6F8), ldc.i4:int32(49)))
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_150_709), ldloc:int32(var_151_711), ldloc:int32(var_152_719), ldloc:int32(var_153_724))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_154_740, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_155_749, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_154_740)))
stloc:int32(var_156_751, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_157_759, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_158_761, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_159_76C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_154_740), ldc.i4:int32(51)))
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_751), ldloc:int32(var_157_759), ldloc:int32(var_158_761), ldloc:int32(var_159_76C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_160_788, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_161_791, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_160_788)))
stloc:int32(var_162_799, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_163_7A1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_164_7A9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_165_7B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_160_788), ldc.i4:int32(53)))
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_162_799), ldloc:int32(var_163_7A1), ldloc:int32(var_164_7A9), ldloc:int32(var_165_7B4))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_166_7D0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_167_7D9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_166_7D0)))
stloc:int32(var_168_7E1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_169_7E9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_170_7F1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_171_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_166_7D0), ldc.i4:int32(55)))
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_168_7E1), ldloc:int32(var_169_7E9), ldloc:int32(var_170_7F1), ldloc:int32(var_171_7FC))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_172_818, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_173_821, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_172_818)))
stloc:int32(var_174_829, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_175_831, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_176_839, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_177_844, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_172_818), ldc.i4:int32(57)))
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_174_829), ldloc:int32(var_175_831), ldloc:int32(var_176_839), ldloc:int32(var_177_844))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_178_860, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_179_869, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_178_860)))
stloc:int32(var_180_871, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_181_879, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_182_881, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_183_88C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_178_860), ldc.i4:int32(59)))
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_180_871), ldloc:int32(var_181_879), ldloc:int32(var_182_881), ldloc:int32(var_183_88C))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_184_8A8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_185_8B1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_184_8A8)))
stloc:int32(var_186_8B9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_187_8C1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_188_8C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_189_8D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_184_8A8), ldc.i4:int32(61)))
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_186_8B9), ldloc:int32(var_187_8C1), ldloc:int32(var_188_8C9), ldloc:int32(var_189_8D4))
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32[](var_190_8F0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_191_8F9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_190_8F0)))
stloc:int32(var_192_901, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_193_909, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_194_911, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_195_91C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_190_8F0), ldc.i4:int32(63)))
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_192_901), ldloc:int32(var_193_909), ldloc:int32(var_194_911), ldloc:int32(var_195_91C))
stloc:int32(var_196_939, ldelem:int32([mscorlib]System.Int32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)), ldc.i4:int32(65)))
}
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: 0x0600BD01 RID: 48385 RVA: 0x002A1268 File Offset: 0x0029F468
[Token(Token = "0x600BD01")]
[Address(RVA = "0x258AEF0", Offset = "0x2589EF0", VA = "0x18258AEF0", Slot = "17")]
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BD01)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::DecryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:uint32(var_1_0E, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_0E))
stloc:int32[](var_2_1C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:uint32(var_3_24, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_24))
stloc:int32[](var_4_32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:uint32(var_5_3B, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_5_3B))
stloc:int32[](var_6_4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:uint32(var_7_54, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
stloc:int32(var_8_5C, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_9_64, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_10_6C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54))
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54), ldloc:int32(var_10_6C), ldloc:int32(var_8_5C), ldloc:int32(var_9_64))
stloc:int32[](var_12_8D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_13_9B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_14_A3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_15_AB, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_16_B3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_B3), ldloc:int32(var_15_AB), ldloc:int32(var_14_A3), ldloc:int32(var_13_9B))
stloc:int32[](var_17_C9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_18_D7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_19_DF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_20_E7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_21_EF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_EF), ldloc:int32(var_20_E7), ldloc:int32(var_19_DF), ldloc:int32(var_18_D7))
stloc:int32[](var_22_105, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_23_113, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_24_11B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_25_123, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_26_12B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_12B), ldloc:int32(var_25_123), ldloc:int32(var_24_11B), ldloc:int32(var_23_113))
stloc:int32[](var_27_141, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_28_14F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_29_157, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_30_15F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_31_167, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_167), ldloc:int32(var_30_15F), ldloc:int32(var_29_157), ldloc:int32(var_28_14F))
stloc:int32[](var_32_17D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_33_18B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_34_193, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_35_19B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_36_1A3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1A3), ldloc:int32(var_35_19B), ldloc:int32(var_34_193), ldloc:int32(var_33_18B))
stloc:int32[](var_37_1B9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_38_1C7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_39_1CF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_40_1D7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_41_1DF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_1DF), ldloc:int32(var_40_1D7), ldloc:int32(var_39_1CF), ldloc:int32(var_38_1C7))
stloc:int32[](var_42_1F5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_43_203, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_44_20B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_45_213, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_46_21B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_21B), ldloc:int32(var_45_213), ldloc:int32(var_44_20B), ldloc:int32(var_43_203))
stloc:int32[](var_47_231, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_48_23F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_49_247, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_50_24F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_51_257, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_257), ldloc:int32(var_50_24F), ldloc:int32(var_49_247), ldloc:int32(var_48_23F))
stloc:int32[](var_52_26D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_53_27B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_54_283, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_55_28B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_56_293, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_293), ldloc:int32(var_55_28B), ldloc:int32(var_54_283), ldloc:int32(var_53_27B))
stloc:int32[](var_57_2A9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_58_2B7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_59_2BF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_60_2C7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_61_2CF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_2CF), ldloc:int32(var_60_2C7), ldloc:int32(var_59_2BF), ldloc:int32(var_58_2B7))
stloc:int32[](var_62_2E5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_63_2F3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_64_2FB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_65_303, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_66_30B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_30B), ldloc:int32(var_65_303), ldloc:int32(var_64_2FB), ldloc:int32(var_63_2F3))
stloc:int32[](var_67_321, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_68_32F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_69_337, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_70_33F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_71_347, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_347), ldloc:int32(var_70_33F), ldloc:int32(var_69_337), ldloc:int32(var_68_32F))
stloc:int32[](var_72_35D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_73_36B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_74_373, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_75_37B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_76_383, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_383), ldloc:int32(var_75_37B), ldloc:int32(var_74_373), ldloc:int32(var_73_36B))
stloc:int32[](var_77_399, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_78_3A7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_79_3AF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_80_3B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_81_3BF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_3BF), ldloc:int32(var_80_3B7), ldloc:int32(var_79_3AF), ldloc:int32(var_78_3A7))
stloc:int32[](var_82_3D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_83_3E3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_84_3EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_85_3F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_86_3FB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_3FB), ldloc:int32(var_85_3F3), ldloc:int32(var_84_3EB), ldloc:int32(var_83_3E3))
stloc:int32[](var_87_411, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_88_41F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_89_427, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_90_42F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_91_437, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_437), ldloc:int32(var_90_42F), ldloc:int32(var_89_427), ldloc:int32(var_88_41F))
stloc:int32[](var_92_44D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_93_45B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_94_463, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_95_46B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_96_473, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_473), ldloc:int32(var_95_46B), ldloc:int32(var_94_463), ldloc:int32(var_93_45B))
stloc:int32[](var_97_489, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_98_497, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_99_49F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_100_4A7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_101_4AF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_4AF), ldloc:int32(var_100_4A7), ldloc:int32(var_99_49F), ldloc:int32(var_98_497))
stloc:int32[](var_102_4C5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_103_4D3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_104_4DB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_105_4E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_106_4EB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_4EB), ldloc:int32(var_105_4E3), ldloc:int32(var_104_4DB), ldloc:int32(var_103_4D3))
stloc:int32[](var_107_501, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_108_50F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_109_517, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_110_51F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_111_527, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_111_527), ldloc:int32(var_110_51F), ldloc:int32(var_109_517), ldloc:int32(var_108_50F))
stloc:int32[](var_112_53D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_113_54B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_114_553, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_115_55B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_116_563, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_563), ldloc:int32(var_115_55B), ldloc:int32(var_114_553), ldloc:int32(var_113_54B))
stloc:int32[](var_117_579, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_118_587, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_119_58F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_120_597, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_121_59F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_59F), ldloc:int32(var_120_597), ldloc:int32(var_119_58F), ldloc:int32(var_118_587))
stloc:int32[](var_122_5B5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_123_5C3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_124_5CB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_125_5D3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_126_5DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5DB), ldloc:int32(var_125_5D3), ldloc:int32(var_124_5CB), ldloc:int32(var_123_5C3))
stloc:int32[](var_127_5F1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_128_5FF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_129_607, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_130_60F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_131_617, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_617), ldloc:int32(var_130_60F), ldloc:int32(var_129_607), ldloc:int32(var_128_5FF))
stloc:int32[](var_132_62D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_133_63B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_134_643, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_135_64B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_136_653, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_653), ldloc:int32(var_135_64B), ldloc:int32(var_134_643), ldloc:int32(var_133_63B))
stloc:int32[](var_137_669, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_138_677, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_139_67F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_140_687, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_141_68F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_68F), ldloc:int32(var_140_687), ldloc:int32(var_139_67F), ldloc:int32(var_138_677))
stloc:int32[](var_142_6A5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_143_6B3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_144_6BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_145_6C3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_146_6CB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_6CB), ldloc:int32(var_145_6C3), ldloc:int32(var_144_6BB), ldloc:int32(var_143_6B3))
stloc:int32[](var_147_6E1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_148_6EF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_149_6F7, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_150_6FF, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_151_707, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_151_707), ldloc:int32(var_150_6FF), ldloc:int32(var_149_6F7), ldloc:int32(var_148_6EF))
stloc:int32[](var_152_71D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_153_72B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_154_733, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_155_73B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_156_743, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_743), ldloc:int32(var_155_73B), ldloc:int32(var_154_733), ldloc:int32(var_153_72B))
stloc:int32[](var_157_759, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
stloc:int32(var_158_767, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_159_76F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_160_777, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
stloc:int32(var_161_77F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_161_77F), ldloc:int32(var_160_777), ldloc:int32(var_159_76F), ldloc:int32(var_158_767))
stloc:int32[](var_162_795, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](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: 0x0600BD02 RID: 48386 RVA: 0x002A1A0C File Offset: 0x0029FC0C
[Token(Token = "0x600BD02")]
[Address(RVA = "0x2591070", Offset = "0x2590070", VA = "0x182591070")]
public TnepresEngine()
{
}
}
}
@@ -0,0 +1,670 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D97 RID: 7575
[Token(Token = "0x2001D97")]
public sealed class TwofishEngine : IBlockCipher
{
// Token: 0x0600BD03 RID: 48387 RVA: 0x002A1A20 File Offset: 0x0029FC20
[Token(Token = "0x600BD03")]
[Address(RVA = "0x2593F40", Offset = "0x2592F40", VA = "0x182593F40")]
public TwofishEngine()
{
int[] array = new int[256];
this.gMDS0 = array;
int[] array2 = new int[256];
this.gMDS1 = array2;
int[] array3 = new int[256];
this.gMDS2 = array3;
int[] array4 = new int[256];
this.gMDS3 = array4;
base..ctor();
int[] array5 = new int[2];
int[] array6 = new int[2];
int[] array7 = new int[2];
byte[,] p = TwofishEngine.P;
throw new IndexOutOfRangeException();
}
// Token: 0x0600BD04 RID: 48388 RVA: 0x002A1B5C File Offset: 0x0029FD5C
[Token(Token = "0x600BD04")]
[Address(RVA = "0x2592D20", Offset = "0x2591D20", VA = "0x182592D20", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BD04)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_47:
stloc:ArgumentException(var_7_58, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Twofish init - "), ldloc:string(var_6))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D98 RID: 7576
// (get) Token: 0x0600BD05 RID: 48389 RVA: 0x002A1BC4 File Offset: 0x0029FDC4
[Token(Token = "0x17001D98")]
public string AlgorithmName
{
[Token(Token = "0x600BD05")]
[Address(RVA = "0x2594460", Offset = "0x2593460", VA = "0x182594460", Slot = "4")]
get
{
return "Twofish";
}
}
// Token: 0x17001D99 RID: 7577
// (get) Token: 0x0600BD06 RID: 48390 RVA: 0x002A1BD8 File Offset: 0x0029FDD8
[Token(Token = "0x17001D99")]
public bool IsPartialBlockOkay
{
[Token(Token = "0x600BD06")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")]
get
{
}
}
// Token: 0x0600BD07 RID: 48391 RVA: 0x002A1BE8 File Offset: 0x0029FDE8
[Token(Token = "0x600BD07")]
[Address(RVA = "0x2592FD0", Offset = "0x2591FD0", VA = "0x182592FD0", Slot = "8")]
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BD07)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_27:
stloc:InvalidOperationException(var_1_31, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Twofish not initialised")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600BD08 RID: 48392 RVA: 0x002A1C28 File Offset: 0x0029FE28
[Token(Token = "0x600BD08")]
[Address(RVA = "0x25931F0", Offset = "0x25921F0", VA = "0x1825931F0", Slot = "9")]
public void Reset()
{
byte[] array = this.workingKey;
if (array != 0)
{
this.SetKey(array);
return;
}
}
// Token: 0x0600BD09 RID: 48393 RVA: 0x002A1C48 File Offset: 0x0029FE48
[Token(Token = "0x600BD09")]
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "6")]
public int GetBlockSize()
{
return 16;
}
// Token: 0x0600BD0A RID: 48394 RVA: 0x002A1C58 File Offset: 0x0029FE58
[Token(Token = "0x600BD0A")]
[Address(RVA = "0x2593210", Offset = "0x2592210", VA = "0x182593210")]
private void SetKey(byte[] key)
{
int[] array = new int[4];
int[] array2 = new int[4];
int[] array3 = new int[4];
int[] array4 = new int[40];
int num = this.k64Cnt;
this.gSubKeys = array4;
int num2 = 0;
if (num > 0)
{
int num3 = this.BytesTo32Bits(key, num2);
int length = key.Length;
num2 += 7;
int num4 = this.k64Cnt;
while (num2 != array2.Length)
{
}
while (num2 != array2.Length)
{
}
num4 -= num2;
num2++;
byte b;
array3[0] = (int)b;
num2 += 8;
}
int num5 = this.F32(num2, array);
int num6 = this.F32(16843009, array2);
int[] array5 = this.gSubKeys;
num5 += num6;
array5[0] = num5;
num5 += num6;
int[] array6 = this.gSubKeys;
num2++;
num2 += 33686018;
num2 += 2;
array6[0] = num5;
int length2 = array3.Length;
int num7 = array3[0];
int num8 = array3[0];
int num9 = array3[1];
int num10 = array3[1];
int[] array7 = new int[1024];
this.gSBox = array7;
int num11 = this.k64Cnt;
if (length2 != 3)
{
if (length2 != 3)
{
if (length2 == 3)
{
int[] array8 = this.gMDS0;
int[] array9 = this.gSBox;
byte[,] p = TwofishEngine.P;
throw new IndexOutOfRangeException();
}
if (num11 == 1)
{
byte[,] p2 = TwofishEngine.P;
throw new IndexOutOfRangeException();
}
}
int[] array10 = this.gSBox;
int[] array11 = this.gMDS0;
byte[,] p3 = TwofishEngine.P;
throw new IndexOutOfRangeException();
}
byte[,] p4 = TwofishEngine.P;
throw new IndexOutOfRangeException();
}
// Token: 0x0600BD0B RID: 48395 RVA: 0x002A1FDC File Offset: 0x002A01DC
[Token(Token = "0x600BD0B")]
[Address(RVA = "0x2591AB0", Offset = "0x2590AB0", VA = "0x182591AB0")]
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
int num = this.BytesTo32Bits(src, srcIndex);
int length = this.gSubKeys.Length;
int length2 = src.Length;
int num2 = this.Fe32_0(length2);
byte b;
int num3 = this.Fe32_3((int)b);
int[] array = this.gSubKeys;
int length3 = array.Length;
uint num5;
int num4 = array[(int)num5];
num4 += num3;
num4 += num2;
uint num6 = num5 + 1U;
array += num2;
int[] array2 = this.gSBox;
int length4 = array2.Length;
byte b2;
b2 += b2;
int num7 = array2[(int)b2];
int num8 = this.Fe32_3(array);
int[] array3 = this.gSubKeys;
int length5 = array3.Length;
int num9 = array3[this];
num9 += num8;
num9 += num7;
num5 += (uint)3;
uint num10 = num5 + 1U;
num8 += num7;
int num11 = array3[2];
array3[0] = num11;
array3[0] = num11;
int[] array4 = this.gSubKeys;
int num12 = array4[2];
array4[0] = num12;
array3[0] = num12;
array3[0] = num12;
int[] array5 = this.gSubKeys;
int num13 = array5[3];
array5[0] = num13;
array3[0] = num13;
array3[0] = num13;
int[] array6 = this.gSubKeys;
int num14 = array6[3];
array6[0] = num14;
array3[0] = num14;
array3[0] = num14;
}
// Token: 0x0600BD0C RID: 48396 RVA: 0x002A216C File Offset: 0x002A036C
[Token(Token = "0x600BD0C")]
[Address(RVA = "0x2591250", Offset = "0x2590250", VA = "0x182591250")]
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
int num = this.BytesTo32Bits(src, srcIndex);
int length = this.gSubKeys.Length;
int length2 = src.Length;
byte b2;
byte b = b2;
int num2 = this.Fe32_0(length2);
byte b3;
int num3 = this.Fe32_3((int)b3);
int[] array = this.gSubKeys;
int length3 = array.Length;
b3 = (byte)((int)b3 + num2);
uint num5;
uint num4 = num5 - 1U;
byte b4 = b;
int num6 = array[(int)num4];
int[] array2 = this.gSBox;
num6 += num3;
num6 += num2;
int length4 = array2.Length;
b4 += b4;
b = b4;
b4 = b;
num3++;
b = b4;
int num7 = array2[(int)b4];
int num8 = this.Fe32_3((int)b);
int[] array3 = this.gSubKeys;
num3 = num8;
int length5 = array3.Length;
num5 += (uint)(-2);
b = (byte)((int)b + num7);
num5 += (uint)(-3);
uint num9 = num5 - 1U;
int num10 = array3[(int)num5];
num10 += num3;
num10 += num7;
int num11 = array3[0];
array3[0] = num11;
array3[0] = num11;
int[] array4 = this.gSubKeys;
int num12 = array4[0];
array4[0] = num12;
array3[0] = num12;
array3[0] = num12;
int[] array5 = this.gSubKeys;
int num13 = array5[1];
array5[0] = num13;
array3[0] = num13;
array3[0] = num13;
int[] array6 = this.gSubKeys;
int num14 = array6[1];
array6[0] = num14;
array3[0] = num14;
array3[0] = num14;
}
// Token: 0x0600BD0D RID: 48397 RVA: 0x002A2328 File Offset: 0x002A0528
[Token(Token = "0x600BD0D")]
[Address(RVA = "0x2592310", Offset = "0x2591310", VA = "0x182592310")]
private int F32(int x, int[] k32)
{
int length = k32.Length;
int num = k32[0];
int num2 = k32[1];
int num3 = this.k64Cnt;
int num4 = 0;
int num5 = k32[1];
if (length != 3)
{
if (length != 3 && length != 3 && num3 != 1)
{
return num4;
}
int[] array = this.gMDS0;
byte[,] p = TwofishEngine.P;
int[] array2 = this.gMDS1;
int[] array3 = this.gMDS2;
int[] array4 = this.gMDS3;
}
byte[,] p2 = TwofishEngine.P;
num5 = x + k32;
byte[,] p3 = TwofishEngine.P;
byte b;
b += k32;
byte b2;
b2 += k32;
int[] array5 = this.gMDS0;
byte[,] p4 = TwofishEngine.P;
int[] array6 = this.gMDS1;
byte b3 = (byte)((int)b3 + num);
int[] array7 = this.gMDS2;
int[] array8 = this.gMDS3;
byte b5;
byte b4 = b5;
b4 = (byte)((int)b4 + num);
return num4;
}
// Token: 0x0600BD0E RID: 48398 RVA: 0x002A2400 File Offset: 0x002A0600
[Token(Token = "0x600BD0E")]
[Address(RVA = "0x25930D0", Offset = "0x25920D0", VA = "0x1825930D0")]
private int RS_MDS_Encode(int k0, int k1)
{
return k1;
}
// Token: 0x0600BD0F RID: 48399 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BD0F")]
[Address(RVA = "0x25931A0", Offset = "0x25921A0", VA = "0x1825931A0")]
private int RS_rem(int x)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BD10 RID: 48400 RVA: 0x002A2410 File Offset: 0x002A0610
[Token(Token = "0x600BD10")]
[Address(RVA = "0x2592EE0", Offset = "0x2591EE0", VA = "0x182592EE0")]
private int LFSR1(int x)
{
return x;
}
// Token: 0x0600BD11 RID: 48401 RVA: 0x002A2420 File Offset: 0x002A0620
[Token(Token = "0x600BD11")]
[Address(RVA = "0x2592F00", Offset = "0x2591F00", VA = "0x182592F00")]
private int LFSR2(int x)
{
return x;
}
// Token: 0x0600BD12 RID: 48402 RVA: 0x002A2430 File Offset: 0x002A0630
[Token(Token = "0x600BD12")]
[Address(RVA = "0x2592F60", Offset = "0x2591F60", VA = "0x182592F60")]
private int Mx_X(int x)
{
return x;
}
// Token: 0x0600BD13 RID: 48403 RVA: 0x002A2440 File Offset: 0x002A0640
[Token(Token = "0x600BD13")]
[Address(RVA = "0x2592F90", Offset = "0x2591F90", VA = "0x182592F90")]
private int Mx_Y(int x)
{
return x;
}
// Token: 0x0600BD14 RID: 48404 RVA: 0x002A2450 File Offset: 0x002A0650
[Token(Token = "0x600BD14")]
[Address(RVA = "0x16A3490", Offset = "0x16A2490", VA = "0x1816A3490")]
private int M_b0(int x)
{
return x;
}
// Token: 0x0600BD15 RID: 48405 RVA: 0x002A2460 File Offset: 0x002A0660
[Token(Token = "0x600BD15")]
[Address(RVA = "0x2592F30", Offset = "0x2591F30", VA = "0x182592F30")]
private int M_b1(int x)
{
return x;
}
// Token: 0x0600BD16 RID: 48406 RVA: 0x002A2470 File Offset: 0x002A0670
[Token(Token = "0x600BD16")]
[Address(RVA = "0x2592F40", Offset = "0x2591F40", VA = "0x182592F40")]
private int M_b2(int x)
{
return x;
}
// Token: 0x0600BD17 RID: 48407 RVA: 0x002A2480 File Offset: 0x002A0680
[Token(Token = "0x600BD17")]
[Address(RVA = "0x2592F50", Offset = "0x2591F50", VA = "0x182592F50")]
private int M_b3(int x)
{
return x;
}
// Token: 0x0600BD18 RID: 48408 RVA: 0x002A2490 File Offset: 0x002A0690
[Token(Token = "0x600BD18")]
[Address(RVA = "0x2592B80", Offset = "0x2591B80", VA = "0x182592B80")]
private int Fe32_0(int x)
{
int[] array = this.gSBox;
int length = array.Length;
return array[x];
}
// Token: 0x0600BD19 RID: 48409 RVA: 0x002A24B8 File Offset: 0x002A06B8
[Token(Token = "0x600BD19")]
[Address(RVA = "0x2592C50", Offset = "0x2591C50", VA = "0x182592C50")]
private int Fe32_3(int x)
{
int[] array = this.gSBox;
int length = array.Length;
return array[this];
}
// Token: 0x0600BD1A RID: 48410 RVA: 0x002A24E0 File Offset: 0x002A06E0
[Token(Token = "0x600BD1A")]
[Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")]
private int BytesTo32Bits(byte[] b, int p)
{
int length = b.Length;
int num = p + 1;
throw new NullReferenceException();
}
// Token: 0x0600BD1B RID: 48411 RVA: 0x002A2500 File Offset: 0x002A0700
[Token(Token = "0x600BD1B")]
[Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")]
private void Bits32ToBytes(int inData, byte[] b, int offset)
{
int num = offset + 1;
}
// Token: 0x04007781 RID: 30593
[Token(Token = "0x4007781")]
private static readonly byte[,] P;
// Token: 0x04007782 RID: 30594
[Token(Token = "0x4007782")]
private const int P_00 = 1;
// Token: 0x04007783 RID: 30595
[Token(Token = "0x4007783")]
private const int P_01 = 0;
// Token: 0x04007784 RID: 30596
[Token(Token = "0x4007784")]
private const int P_02 = 0;
// Token: 0x04007785 RID: 30597
[Token(Token = "0x4007785")]
private const int P_03 = 1;
// Token: 0x04007786 RID: 30598
[Token(Token = "0x4007786")]
private const int P_04 = 1;
// Token: 0x04007787 RID: 30599
[Token(Token = "0x4007787")]
private const int P_10 = 0;
// Token: 0x04007788 RID: 30600
[Token(Token = "0x4007788")]
private const int P_11 = 0;
// Token: 0x04007789 RID: 30601
[Token(Token = "0x4007789")]
private const int P_12 = 1;
// Token: 0x0400778A RID: 30602
[Token(Token = "0x400778A")]
private const int P_13 = 1;
// Token: 0x0400778B RID: 30603
[Token(Token = "0x400778B")]
private const int P_14 = 0;
// Token: 0x0400778C RID: 30604
[Token(Token = "0x400778C")]
private const int P_20 = 1;
// Token: 0x0400778D RID: 30605
[Token(Token = "0x400778D")]
private const int P_21 = 1;
// Token: 0x0400778E RID: 30606
[Token(Token = "0x400778E")]
private const int P_22 = 0;
// Token: 0x0400778F RID: 30607
[Token(Token = "0x400778F")]
private const int P_23 = 0;
// Token: 0x04007790 RID: 30608
[Token(Token = "0x4007790")]
private const int P_24 = 0;
// Token: 0x04007791 RID: 30609
[Token(Token = "0x4007791")]
private const int P_30 = 0;
// Token: 0x04007792 RID: 30610
[Token(Token = "0x4007792")]
private const int P_31 = 1;
// Token: 0x04007793 RID: 30611
[Token(Token = "0x4007793")]
private const int P_32 = 1;
// Token: 0x04007794 RID: 30612
[Token(Token = "0x4007794")]
private const int P_33 = 0;
// Token: 0x04007795 RID: 30613
[Token(Token = "0x4007795")]
private const int P_34 = 1;
// Token: 0x04007796 RID: 30614
[Token(Token = "0x4007796")]
private const int GF256_FDBK = 361;
// Token: 0x04007797 RID: 30615
[Token(Token = "0x4007797")]
private const int GF256_FDBK_2 = 180;
// Token: 0x04007798 RID: 30616
[Token(Token = "0x4007798")]
private const int GF256_FDBK_4 = 90;
// Token: 0x04007799 RID: 30617
[Token(Token = "0x4007799")]
private const int RS_GF_FDBK = 333;
// Token: 0x0400779A RID: 30618
[Token(Token = "0x400779A")]
private const int ROUNDS = 16;
// Token: 0x0400779B RID: 30619
[Token(Token = "0x400779B")]
private const int MAX_ROUNDS = 16;
// Token: 0x0400779C RID: 30620
[Token(Token = "0x400779C")]
private const int BLOCK_SIZE = 16;
// Token: 0x0400779D RID: 30621
[Token(Token = "0x400779D")]
private const int MAX_KEY_BITS = 256;
// Token: 0x0400779E RID: 30622
[Token(Token = "0x400779E")]
private const int INPUT_WHITEN = 0;
// Token: 0x0400779F RID: 30623
[Token(Token = "0x400779F")]
private const int OUTPUT_WHITEN = 4;
// Token: 0x040077A0 RID: 30624
[Token(Token = "0x40077A0")]
private const int ROUND_SUBKEYS = 8;
// Token: 0x040077A1 RID: 30625
[Token(Token = "0x40077A1")]
private const int TOTAL_SUBKEYS = 40;
// Token: 0x040077A2 RID: 30626
[Token(Token = "0x40077A2")]
private const int SK_STEP = 33686018;
// Token: 0x040077A3 RID: 30627
[Token(Token = "0x40077A3")]
private const int SK_BUMP = 16843009;
// Token: 0x040077A4 RID: 30628
[Token(Token = "0x40077A4")]
private const int SK_ROTL = 9;
// Token: 0x040077A5 RID: 30629
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077A5")]
private bool encrypting;
// Token: 0x040077A6 RID: 30630
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077A6")]
private int[] gMDS0;
// Token: 0x040077A7 RID: 30631
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077A7")]
private int[] gMDS1;
// Token: 0x040077A8 RID: 30632
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077A8")]
private int[] gMDS2;
// Token: 0x040077A9 RID: 30633
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40077A9")]
private int[] gMDS3;
// Token: 0x040077AA RID: 30634
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40077AA")]
private int[] gSubKeys;
// Token: 0x040077AB RID: 30635
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40077AB")]
private int[] gSBox;
// Token: 0x040077AC RID: 30636
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40077AC")]
private int k64Cnt;
// Token: 0x040077AD RID: 30637
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40077AD")]
private byte[] workingKey;
}
}
@@ -0,0 +1,181 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D98 RID: 7576
[Token(Token = "0x2001D98")]
public class VmpcEngine : IStreamCipher
{
// Token: 0x17001D9A RID: 7578
// (get) Token: 0x0600BD1D RID: 48413 RVA: 0x002A2528 File Offset: 0x002A0728
[Token(Token = "0x17001D9A")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BD1D")]
[Address(RVA = "0x2594E60", Offset = "0x2593E60", VA = "0x182594E60", Slot = "9")]
get
{
return "VMPC";
}
}
// Token: 0x0600BD1E RID: 48414 RVA: 0x002A253C File Offset: 0x002A073C
[Token(Token = "0x600BD1E")]
[Address(RVA = "0x25947C0", Offset = "0x25937C0", VA = "0x1825947C0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BD1E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.VmpcEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4C:
stloc:ArgumentException(var_8_56, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("VMPC requires 1 to 768 bytes of IV")))
}
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.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.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: 0x0600BD1F RID: 48415 RVA: 0x002A25A0 File Offset: 0x002A07A0
[Token(Token = "0x600BD1F")]
[Address(RVA = "0x2594490", Offset = "0x2593490", VA = "0x182594490", Slot = "11")]
protected virtual void InitKey(byte[] keyBytes, byte[] ivBytes)
{
this.s = (byte)((ulong)0L);
byte[] array = new byte[256];
int num = 0;
this.P = array;
byte[] p = this.P;
num++;
byte[] p2 = this.P;
int length = p2.Length;
byte b = p[keyBytes];
byte b2;
b += b2;
byte b3 = this.s;
b += b3;
byte b4;
this.s = b4;
int length2 = p2.Length;
byte[] p3 = this.P;
byte b5 = this.s;
num++;
byte[] p4 = this.P;
int length3 = p4.Length;
int length4 = ivBytes.Length;
byte b6;
byte b7;
b6 += b7;
byte b8 = this.s;
b6 += b8;
byte b9;
this.s = b9;
int length5 = p4.Length;
byte[] p5 = this.P;
byte b10 = this.s;
num++;
this.n = (byte)((ulong)0L);
}
// Token: 0x0600BD20 RID: 48416 RVA: 0x002A2698 File Offset: 0x002A0898
[Token(Token = "0x600BD20")]
[Address(RVA = "0x2594A10", Offset = "0x2593A10", VA = "0x182594A10", Slot = "12")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
Check.DataLength(input, inOff, inOff, "input buffer too short");
if (len > 0)
{
byte[] p = this.P;
byte b = this.n;
int length = p.Length;
byte b2 = this.s;
byte b3;
b3 += b2;
byte b4;
this.s = b4;
int length2 = p.Length;
byte[] p2 = this.P;
byte b5 = this.s;
}
}
// Token: 0x0600BD21 RID: 48417 RVA: 0x002A2710 File Offset: 0x002A0910
[Token(Token = "0x600BD21")]
[Address(RVA = "0x2594CA0", Offset = "0x2593CA0", VA = "0x182594CA0", Slot = "13")]
public virtual void Reset()
{
string algorithmName = ((IStreamCipher)this).AlgorithmName;
}
// Token: 0x0600BD22 RID: 48418 RVA: 0x002A2724 File Offset: 0x002A0924
[Token(Token = "0x600BD22")]
[Address(RVA = "0x2594CC0", Offset = "0x2593CC0", VA = "0x182594CC0", Slot = "14")]
public virtual byte ReturnByte(byte input)
{
byte[] p = this.P;
byte b = this.n;
int length = p.Length;
byte b2 = this.s;
byte b3;
b3 += b2;
byte b4;
this.s = b4;
int length2 = p.Length;
byte[] p2 = this.P;
byte b5 = this.s;
byte b6;
return b6;
}
// Token: 0x0600BD23 RID: 48419 RVA: 0x002A2788 File Offset: 0x002A0988
[Token(Token = "0x600BD23")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public VmpcEngine()
{
}
// Token: 0x040077AE RID: 30638
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077AE")]
protected byte n;
// Token: 0x040077AF RID: 30639
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077AF")]
protected byte[] P;
// Token: 0x040077B0 RID: 30640
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077B0")]
protected byte s;
// Token: 0x040077B1 RID: 30641
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077B1")]
protected byte[] workingIV;
// Token: 0x040077B2 RID: 30642
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40077B2")]
protected byte[] workingKey;
}
}
@@ -0,0 +1,91 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D99 RID: 7577
[Token(Token = "0x2001D99")]
public class VmpcKsa3Engine : VmpcEngine
{
// Token: 0x17001D9B RID: 7579
// (get) Token: 0x0600BD24 RID: 48420 RVA: 0x002A279C File Offset: 0x002A099C
[Token(Token = "0x17001D9B")]
public override string AlgorithmName
{
[Token(Token = "0x600BD24")]
[Address(RVA = "0x25952F0", Offset = "0x25942F0", VA = "0x1825952F0", Slot = "9")]
get
{
return "VMPC-KSA3";
}
}
// Token: 0x0600BD25 RID: 48421 RVA: 0x002A27B0 File Offset: 0x002A09B0
[Token(Token = "0x600BD25")]
[Address(RVA = "0x2594E90", Offset = "0x2593E90", VA = "0x182594E90", Slot = "11")]
protected override void InitKey(byte[] keyBytes, byte[] ivBytes)
{
this.s = (byte)((ulong)0L);
byte[] array = new byte[256];
int num = 0;
this.P = array;
byte[] p = this.P;
num++;
byte[] p2 = this.P;
int length = p2.Length;
byte b = p[keyBytes];
byte b2;
b += b2;
byte s = this.s;
b += s;
byte b3;
this.s = b3;
int length2 = p2.Length;
byte b4 = p2[num];
byte b5;
p2[0] = b5;
byte[] p3 = this.P;
byte s2 = this.s;
num++;
byte[] p4 = this.P;
int length3 = p4.Length;
byte b6;
byte b7;
b6 += b7;
byte s3 = this.s;
b6 += s3;
byte b8;
this.s = b8;
int length4 = p4.Length;
byte b9;
p4[0] = b9;
byte[] p5 = this.P;
byte s4 = this.s;
num++;
byte[] p6 = this.P;
int length5 = p6.Length;
byte b10;
byte b11;
b10 += b11;
byte s5 = this.s;
b10 += s5;
byte b12;
this.s = b12;
int length6 = p6.Length;
byte b13 = p6[num];
byte b14;
p6[0] = b14;
byte[] p7 = this.P;
byte s6 = this.s;
num++;
this.n = (byte)((ulong)0L);
}
// Token: 0x0600BD26 RID: 48422 RVA: 0x002A2920 File Offset: 0x002A0B20
[Token(Token = "0x600BD26")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public VmpcKsa3Engine()
{
}
}
}
@@ -0,0 +1,69 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D9A RID: 7578
[Token(Token = "0x2001D9A")]
public class XSalsa20Engine : Salsa20Engine
{
// Token: 0x17001D9C RID: 7580
// (get) Token: 0x0600BD27 RID: 48423 RVA: 0x002A2934 File Offset: 0x002A0B34
[Token(Token = "0x17001D9C")]
public override string AlgorithmName
{
[Token(Token = "0x600BD27")]
[Address(RVA = "0x2595860", Offset = "0x2594860", VA = "0x182595860", Slot = "11")]
get
{
return "XSalsa20";
}
}
// Token: 0x17001D9D RID: 7581
// (get) Token: 0x0600BD28 RID: 48424 RVA: 0x002A2948 File Offset: 0x002A0B48
[Token(Token = "0x17001D9D")]
protected override int NonceSize
{
[Token(Token = "0x600BD28")]
[Address(RVA = "0xC42F00", Offset = "0xC41F00", VA = "0x180C42F00", Slot = "10")]
get
{
return 24;
}
}
// Token: 0x0600BD29 RID: 48425 RVA: 0x002A2958 File Offset: 0x002A0B58
[Token(Token = "0x600BD29")]
[Address(RVA = "0x2595320", Offset = "0x2594320", VA = "0x182595320", Slot = "17")]
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
{
/*
An exception occurred when decompiling this method (0600BD29)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XSalsa20Engine::SetKey(System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_173:
stloc:ArgumentException(var_33_17A, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_32)))
}
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: 0x0600BD2A RID: 48426 RVA: 0x002A2AE0 File Offset: 0x002A0CE0
[Token(Token = "0x600BD2A")]
[Address(RVA = "0x2595800", Offset = "0x2594800", VA = "0x182595800")]
public XSalsa20Engine()
{
}
}
}
@@ -0,0 +1,217 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001D9B RID: 7579
[Token(Token = "0x2001D9B")]
public class XteaEngine : IBlockCipher
{
// Token: 0x0600BD2B RID: 48427 RVA: 0x002A2AF4 File Offset: 0x002A0CF4
[Token(Token = "0x600BD2B")]
[Address(RVA = "0x2595DA0", Offset = "0x2594DA0", VA = "0x182595DA0")]
public XteaEngine()
{
uint[] array = new uint[4];
this._S = array;
uint[] array2 = new uint[32];
this._sum0 = array2;
uint[] array3 = new uint[32];
this._sum1 = array3;
this.Reset();
this._initialised = false;
}
// Token: 0x17001D9E RID: 7582
// (get) Token: 0x0600BD2C RID: 48428 RVA: 0x002A2B3C File Offset: 0x002A0D3C
[Token(Token = "0x17001D9E")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BD2C")]
[Address(RVA = "0x2596050", Offset = "0x2595050", VA = "0x182596050", Slot = "10")]
get
{
return "XTEA";
}
}
// Token: 0x17001D9F RID: 7583
// (get) Token: 0x0600BD2D RID: 48429 RVA: 0x002A2B50 File Offset: 0x002A0D50
[Token(Token = "0x17001D9F")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600BD2D")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
get
{
}
}
// Token: 0x0600BD2E RID: 48430 RVA: 0x002A2B60 File Offset: 0x002A0D60
[Token(Token = "0x600BD2E")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600BD2F RID: 48431 RVA: 0x002A2B70 File Offset: 0x002A0D70
[Token(Token = "0x600BD2F")]
[Address(RVA = "0x2595890", Offset = "0x2594890", VA = "0x182595890", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BD2F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A2:
stloc:ArgumentException(var_13_B3, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_12))))
}
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: 0x0600BD30 RID: 48432 RVA: 0x002A2C34 File Offset: 0x002A0E34
[Token(Token = "0x600BD30")]
[Address(RVA = "0x2595B30", Offset = "0x2594B30", VA = "0x182595B30", Slot = "14")]
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BD30)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7F:
stloc:InvalidOperationException(var_12_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_11)))
}
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: 0x0600BD31 RID: 48433 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BD31")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BD32 RID: 48434 RVA: 0x002A2CC8 File Offset: 0x002A0EC8
[Token(Token = "0x600BD32")]
[Address(RVA = "0x2596080", Offset = "0x2595080", VA = "0x182596080")]
private void setKey(byte[] key)
{
int num = 0;
uint[] s = this._S;
uint num2 = Pack.BE_To_UInt32(key, num);
num += 4;
num++;
s[0] = num2;
uint[] s2 = this._S;
uint[] sum = this._sum0;
uint num3 = s2[num];
num3 += (uint)num;
sum[0] = num3;
uint[] s3 = this._S;
uint[] sum2 = this._sum1;
uint num4 = s3[num];
num++;
num4 += (uint)num;
sum2[0] = num4;
}
// Token: 0x0600BD33 RID: 48435 RVA: 0x002A2D54 File Offset: 0x002A0F54
[Token(Token = "0x600BD33")]
[Address(RVA = "0x2595F30", Offset = "0x2594F30", VA = "0x182595F30")]
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
uint num = Pack.BE_To_UInt32(inBytes, inOff);
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
uint[] sum = this._sum0;
int num3 = 0;
uint[] sum2 = this._sum1;
num2 += num2;
num += num2;
num2 = num;
num3++;
num2 += num;
num2 += num2;
throw new NullReferenceException();
}
// Token: 0x0600BD34 RID: 48436 RVA: 0x002A2DA4 File Offset: 0x002A0FA4
[Token(Token = "0x600BD34")]
[Address(RVA = "0x2595E20", Offset = "0x2594E20", VA = "0x182595E20")]
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
uint num = Pack.BE_To_UInt32(inBytes, inOff);
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
uint[] sum = this._sum1;
uint[] sum2 = this._sum0;
num2 = num;
num += num;
num2 -= num;
num = num2;
num += num2;
num -= num;
throw new NullReferenceException();
}
// Token: 0x040077B3 RID: 30643
[Token(Token = "0x40077B3")]
private const int rounds = 32;
// Token: 0x040077B4 RID: 30644
[Token(Token = "0x40077B4")]
private const int block_size = 8;
// Token: 0x040077B5 RID: 30645
[Token(Token = "0x40077B5")]
private const int delta = -1640531527;
// Token: 0x040077B6 RID: 30646
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077B6")]
private uint[] _S;
// Token: 0x040077B7 RID: 30647
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077B7")]
private uint[] _sum0;
// Token: 0x040077B8 RID: 30648
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077B8")]
private uint[] _sum1;
// Token: 0x040077B9 RID: 30649
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077B9")]
private bool _initialised;
// Token: 0x040077BA RID: 30650
[FieldOffset(Offset = "0x29")]
[Token(Token = "0x40077BA")]
private bool _forEncryption;
}
}