scripts
This commit is contained in:
@@ -0,0 +1,639 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A3 RID: 5795
|
||||
[Token(Token = "0x20016A3")]
|
||||
[StructLayout(3)]
|
||||
public class AesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009AE0 RID: 39648 RVA: 0x00229F5C File Offset: 0x0022815C
|
||||
[Token(Token = "0x6009AE0")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x06009AE1 RID: 39649 RVA: 0x00229F6C File Offset: 0x0022816C
|
||||
[Token(Token = "0x6009AE1")]
|
||||
[Address(RVA = "0x20536B0", Offset = "0x20520B0", VA = "0x1820536B0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AE1)
|
||||
|
||||
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: 0x06009AE2 RID: 39650 RVA: 0x00229F80 File Offset: 0x00228180
|
||||
[Token(Token = "0x6009AE2")]
|
||||
[Address(RVA = "0x2053680", Offset = "0x2052080", VA = "0x182053680")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009AE3 RID: 39651 RVA: 0x00229F90 File Offset: 0x00228190
|
||||
[Token(Token = "0x6009AE3")]
|
||||
[Address(RVA = "0x2054EB0", Offset = "0x20538B0", VA = "0x182054EB0")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009AE4 RID: 39652 RVA: 0x00229FA0 File Offset: 0x002281A0
|
||||
[Token(Token = "0x6009AE4")]
|
||||
[Address(RVA = "0x2055160", Offset = "0x2053B60", VA = "0x182055160")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009AE5 RID: 39653 RVA: 0x00229FC0 File Offset: 0x002281C0
|
||||
[Token(Token = "0x6009AE5")]
|
||||
[Address(RVA = "0x20536D0", Offset = "0x20520D0", VA = "0x1820536D0")]
|
||||
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: 0x06009AE6 RID: 39654 RVA: 0x0022A4B4 File Offset: 0x002286B4
|
||||
[Token(Token = "0x6009AE6")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public AesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009AE7 RID: 39655 RVA: 0x0022A4C8 File Offset: 0x002286C8
|
||||
[Token(Token = "0x6009AE7")]
|
||||
[Address(RVA = "0x2054D00", Offset = "0x2053700", VA = "0x182054D00", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AE7)
|
||||
|
||||
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: 0x170018B3 RID: 6323
|
||||
// (get) Token: 0x06009AE8 RID: 39656 RVA: 0x0022A520 File Offset: 0x00228720
|
||||
[Token(Token = "0x170018B3")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009AE8")]
|
||||
[Address(RVA = "0x2055430", Offset = "0x2053E30", VA = "0x182055430", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018B4 RID: 6324
|
||||
// (get) Token: 0x06009AE9 RID: 39657 RVA: 0x0022A534 File Offset: 0x00228734
|
||||
[Token(Token = "0x170018B4")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009AE9")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009AEA RID: 39658 RVA: 0x0022A544 File Offset: 0x00228744
|
||||
[Token(Token = "0x6009AEA")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009AEB RID: 39659 RVA: 0x0022A554 File Offset: 0x00228754
|
||||
[Token(Token = "0x6009AEB")]
|
||||
[Address(RVA = "0x2054FE0", Offset = "0x20539E0", VA = "0x182054FE0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AEB)
|
||||
|
||||
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: 0x06009AEC RID: 39660 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009AEC")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009AED RID: 39661 RVA: 0x0022A5CC File Offset: 0x002287CC
|
||||
[Token(Token = "0x6009AED")]
|
||||
[Address(RVA = "0x2055280", Offset = "0x2053C80", VA = "0x182055280")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009AEE RID: 39662 RVA: 0x0022A5DC File Offset: 0x002287DC
|
||||
[Token(Token = "0x6009AEE")]
|
||||
[Address(RVA = "0x2054F70", Offset = "0x2053970", VA = "0x182054F70")]
|
||||
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: 0x06009AEF RID: 39663 RVA: 0x0022A620 File Offset: 0x00228820
|
||||
[Token(Token = "0x6009AEF")]
|
||||
[Address(RVA = "0x2052360", Offset = "0x2050D60", VA = "0x182052360")]
|
||||
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: 0x06009AF0 RID: 39664 RVA: 0x0022A8F8 File Offset: 0x00228AF8
|
||||
[Token(Token = "0x6009AF0")]
|
||||
[Address(RVA = "0x2051050", Offset = "0x204FA50", VA = "0x182051050")]
|
||||
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: 0x06009AF1 RID: 39665 RVA: 0x0022ABA8 File Offset: 0x00228DA8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009AF1")]
|
||||
[Address(RVA = "0x20552F0", Offset = "0x2053CF0", VA = "0x1820552F0")]
|
||||
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: 0x04006585 RID: 25989
|
||||
[Token(Token = "0x4006585")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x04006586 RID: 25990
|
||||
[Token(Token = "0x4006586")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x04006587 RID: 25991
|
||||
[Token(Token = "0x4006587")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x04006588 RID: 25992
|
||||
[Token(Token = "0x4006588")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x04006589 RID: 25993
|
||||
[Token(Token = "0x4006589")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x0400658A RID: 25994
|
||||
[Token(Token = "0x400658A")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x0400658B RID: 25995
|
||||
[Token(Token = "0x400658B")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x0400658C RID: 25996
|
||||
[Token(Token = "0x400658C")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x0400658D RID: 25997
|
||||
[Token(Token = "0x400658D")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x0400658E RID: 25998
|
||||
[Token(Token = "0x400658E")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x0400658F RID: 25999
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400658F")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x04006590 RID: 26000
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006590")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x04006591 RID: 26001
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006591")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x04006592 RID: 26002
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4006592")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x04006593 RID: 26003
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006593")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x04006594 RID: 26004
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4006594")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x04006595 RID: 26005
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006595")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006596 RID: 26006
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006596")]
|
||||
private byte[] s;
|
||||
|
||||
// Token: 0x04006597 RID: 26007
|
||||
[Token(Token = "0x4006597")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+675
@@ -0,0 +1,675 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A4 RID: 5796
|
||||
[Token(Token = "0x20016A4")]
|
||||
[Obsolete]
|
||||
[StructLayout(3)]
|
||||
public class AesFastEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009AF2 RID: 39666 RVA: 0x0022AC44 File Offset: 0x00228E44
|
||||
[Token(Token = "0x6009AF2")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x06009AF3 RID: 39667 RVA: 0x0022AC54 File Offset: 0x00228E54
|
||||
[Token(Token = "0x6009AF3")]
|
||||
[Address(RVA = "0x20536B0", Offset = "0x20520B0", VA = "0x1820536B0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AF3)
|
||||
|
||||
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: 0x06009AF4 RID: 39668 RVA: 0x0022AC68 File Offset: 0x00228E68
|
||||
[Token(Token = "0x6009AF4")]
|
||||
[Address(RVA = "0x2053680", Offset = "0x2052080", VA = "0x182053680")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009AF5 RID: 39669 RVA: 0x0022AC78 File Offset: 0x00228E78
|
||||
[Token(Token = "0x6009AF5")]
|
||||
[Address(RVA = "0x2059020", Offset = "0x2057A20", VA = "0x182059020")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009AF6 RID: 39670 RVA: 0x0022AC88 File Offset: 0x00228E88
|
||||
[Token(Token = "0x6009AF6")]
|
||||
[Address(RVA = "0x2059260", Offset = "0x2057C60", VA = "0x182059260")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesFastEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009AF7 RID: 39671 RVA: 0x0022ACA8 File Offset: 0x00228EA8
|
||||
[Token(Token = "0x6009AF7")]
|
||||
[Address(RVA = "0x20578E0", Offset = "0x20562E0", VA = "0x1820578E0")]
|
||||
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: 0x06009AF8 RID: 39672 RVA: 0x0022B19C File Offset: 0x0022939C
|
||||
[Token(Token = "0x6009AF8")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public AesFastEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009AF9 RID: 39673 RVA: 0x0022B1B0 File Offset: 0x002293B0
|
||||
[Token(Token = "0x6009AF9")]
|
||||
[Address(RVA = "0x2058F10", Offset = "0x2057910", VA = "0x182058F10", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AF9)
|
||||
|
||||
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: 0x170018B5 RID: 6325
|
||||
// (get) Token: 0x06009AFA RID: 39674 RVA: 0x0022B1F0 File Offset: 0x002293F0
|
||||
[Token(Token = "0x170018B5")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009AFA")]
|
||||
[Address(RVA = "0x2059610", Offset = "0x2058010", VA = "0x182059610", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018B6 RID: 6326
|
||||
// (get) Token: 0x06009AFB RID: 39675 RVA: 0x0022B204 File Offset: 0x00229404
|
||||
[Token(Token = "0x170018B6")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009AFB")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009AFC RID: 39676 RVA: 0x0022B214 File Offset: 0x00229414
|
||||
[Token(Token = "0x6009AFC")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009AFD RID: 39677 RVA: 0x0022B224 File Offset: 0x00229424
|
||||
[Token(Token = "0x6009AFD")]
|
||||
[Address(RVA = "0x20590E0", Offset = "0x2057AE0", VA = "0x1820590E0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009AFD)
|
||||
|
||||
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: 0x06009AFE RID: 39678 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009AFE")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009AFF RID: 39679 RVA: 0x0022B29C File Offset: 0x0022949C
|
||||
[Token(Token = "0x6009AFF")]
|
||||
[Address(RVA = "0x2055280", Offset = "0x2053C80", VA = "0x182055280")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009B00 RID: 39680 RVA: 0x0022B2AC File Offset: 0x002294AC
|
||||
[Token(Token = "0x6009B00")]
|
||||
[Address(RVA = "0x2054F70", Offset = "0x2053970", VA = "0x182054F70")]
|
||||
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: 0x06009B01 RID: 39681 RVA: 0x0022B2F0 File Offset: 0x002294F0
|
||||
[Token(Token = "0x6009B01")]
|
||||
[Address(RVA = "0x2056690", Offset = "0x2055090", VA = "0x182056690")]
|
||||
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: 0x06009B02 RID: 39682 RVA: 0x0022B5F4 File Offset: 0x002297F4
|
||||
[Token(Token = "0x6009B02")]
|
||||
[Address(RVA = "0x2055460", Offset = "0x2053E60", VA = "0x182055460")]
|
||||
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: 0x06009B03 RID: 39683 RVA: 0x0022B8B0 File Offset: 0x00229AB0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B03")]
|
||||
[Address(RVA = "0x2059380", Offset = "0x2057D80", VA = "0x182059380")]
|
||||
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: 0x04006598 RID: 26008
|
||||
[Token(Token = "0x4006598")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x04006599 RID: 26009
|
||||
[Token(Token = "0x4006599")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x0400659A RID: 26010
|
||||
[Token(Token = "0x400659A")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x0400659B RID: 26011
|
||||
[Token(Token = "0x400659B")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x0400659C RID: 26012
|
||||
[Token(Token = "0x400659C")]
|
||||
private static readonly uint[] T1;
|
||||
|
||||
// Token: 0x0400659D RID: 26013
|
||||
[Token(Token = "0x400659D")]
|
||||
private static readonly uint[] T2;
|
||||
|
||||
// Token: 0x0400659E RID: 26014
|
||||
[Token(Token = "0x400659E")]
|
||||
private static readonly uint[] T3;
|
||||
|
||||
// Token: 0x0400659F RID: 26015
|
||||
[Token(Token = "0x400659F")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x040065A0 RID: 26016
|
||||
[Token(Token = "0x40065A0")]
|
||||
private static readonly uint[] Tinv1;
|
||||
|
||||
// Token: 0x040065A1 RID: 26017
|
||||
[Token(Token = "0x40065A1")]
|
||||
private static readonly uint[] Tinv2;
|
||||
|
||||
// Token: 0x040065A2 RID: 26018
|
||||
[Token(Token = "0x40065A2")]
|
||||
private static readonly uint[] Tinv3;
|
||||
|
||||
// Token: 0x040065A3 RID: 26019
|
||||
[Token(Token = "0x40065A3")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040065A4 RID: 26020
|
||||
[Token(Token = "0x40065A4")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040065A5 RID: 26021
|
||||
[Token(Token = "0x40065A5")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040065A6 RID: 26022
|
||||
[Token(Token = "0x40065A6")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040065A7 RID: 26023
|
||||
[Token(Token = "0x40065A7")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040065A8 RID: 26024
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065A8")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040065A9 RID: 26025
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065A9")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040065AA RID: 26026
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065AA")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040065AB RID: 26027
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40065AB")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040065AC RID: 26028
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065AC")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040065AD RID: 26029
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40065AD")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040065AE RID: 26030
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065AE")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040065AF RID: 26031
|
||||
[Token(Token = "0x40065AF")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+582
@@ -0,0 +1,582 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A5 RID: 5797
|
||||
[Token(Token = "0x20016A5")]
|
||||
[StructLayout(3)]
|
||||
public class AesLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B04 RID: 39684 RVA: 0x0022BA04 File Offset: 0x00229C04
|
||||
[Token(Token = "0x6009B04")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x06009B05 RID: 39685 RVA: 0x0022BA14 File Offset: 0x00229C14
|
||||
[Token(Token = "0x6009B05")]
|
||||
[Address(RVA = "0x20536B0", Offset = "0x20520B0", VA = "0x1820536B0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B05)
|
||||
|
||||
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: 0x06009B06 RID: 39686 RVA: 0x0022BA28 File Offset: 0x00229C28
|
||||
[Token(Token = "0x6009B06")]
|
||||
[Address(RVA = "0x2053680", Offset = "0x2052080", VA = "0x182053680")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B07 RID: 39687 RVA: 0x0022BA38 File Offset: 0x00229C38
|
||||
[Token(Token = "0x6009B07")]
|
||||
[Address(RVA = "0x22DC840", Offset = "0x22DB240", VA = "0x1822DC840")]
|
||||
private static uint Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B08 RID: 39688 RVA: 0x0022BA48 File Offset: 0x00229C48
|
||||
[Token(Token = "0x6009B08")]
|
||||
[Address(RVA = "0x22DC780", Offset = "0x22DB180", VA = "0x1822DC780")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B09 RID: 39689 RVA: 0x0022BA58 File Offset: 0x00229C58
|
||||
[Token(Token = "0x6009B09")]
|
||||
[Address(RVA = "0x22DCA50", Offset = "0x22DB450", VA = "0x1822DCA50")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesLightEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B0A RID: 39690 RVA: 0x0022BA78 File Offset: 0x00229C78
|
||||
[Token(Token = "0x6009B0A")]
|
||||
[Address(RVA = "0x22DB040", Offset = "0x22D9A40", VA = "0x1822DB040")]
|
||||
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: 0x06009B0B RID: 39691 RVA: 0x0022BF6C File Offset: 0x0022A16C
|
||||
[Token(Token = "0x6009B0B")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public AesLightEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009B0C RID: 39692 RVA: 0x0022BF80 File Offset: 0x0022A180
|
||||
[Token(Token = "0x6009B0C")]
|
||||
[Address(RVA = "0x22DC670", Offset = "0x22DB070", VA = "0x1822DC670", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B0C)
|
||||
|
||||
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: 0x170018B7 RID: 6327
|
||||
// (get) Token: 0x06009B0D RID: 39693 RVA: 0x0022BFC0 File Offset: 0x0022A1C0
|
||||
[Token(Token = "0x170018B7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B0D")]
|
||||
[Address(RVA = "0x22DCC40", Offset = "0x22DB640", VA = "0x1822DCC40", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018B8 RID: 6328
|
||||
// (get) Token: 0x06009B0E RID: 39694 RVA: 0x0022BFD4 File Offset: 0x0022A1D4
|
||||
[Token(Token = "0x170018B8")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B0E")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B0F RID: 39695 RVA: 0x0022BFE4 File Offset: 0x0022A1E4
|
||||
[Token(Token = "0x6009B0F")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B10 RID: 39696 RVA: 0x0022BFF4 File Offset: 0x0022A1F4
|
||||
[Token(Token = "0x6009B10")]
|
||||
[Address(RVA = "0x22DC8D0", Offset = "0x22DB2D0", VA = "0x1822DC8D0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B10)
|
||||
|
||||
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: 0x06009B11 RID: 39697 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B11")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B12 RID: 39698 RVA: 0x0022C06C File Offset: 0x0022A26C
|
||||
[Token(Token = "0x6009B12")]
|
||||
[Address(RVA = "0x2055280", Offset = "0x2053C80", VA = "0x182055280")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009B13 RID: 39699 RVA: 0x0022C07C File Offset: 0x0022A27C
|
||||
[Token(Token = "0x6009B13")]
|
||||
[Address(RVA = "0x2054F70", Offset = "0x2053970", VA = "0x182054F70")]
|
||||
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: 0x06009B14 RID: 39700 RVA: 0x0022C0C0 File Offset: 0x0022A2C0
|
||||
[Token(Token = "0x6009B14")]
|
||||
[Address(RVA = "0x22D9D00", Offset = "0x22D8700", VA = "0x1822D9D00")]
|
||||
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: 0x06009B15 RID: 39701 RVA: 0x0022C340 File Offset: 0x0022A540
|
||||
[Token(Token = "0x6009B15")]
|
||||
[Address(RVA = "0x22D89E0", Offset = "0x22D73E0", VA = "0x1822D89E0")]
|
||||
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: 0x06009B16 RID: 39702 RVA: 0x0022C5B8 File Offset: 0x0022A7B8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B16")]
|
||||
[Address(RVA = "0x22DCB70", Offset = "0x22DB570", VA = "0x1822DCB70")]
|
||||
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: 0x040065B0 RID: 26032
|
||||
[Token(Token = "0x40065B0")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040065B1 RID: 26033
|
||||
[Token(Token = "0x40065B1")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040065B2 RID: 26034
|
||||
[Token(Token = "0x40065B2")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040065B3 RID: 26035
|
||||
[Token(Token = "0x40065B3")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040065B4 RID: 26036
|
||||
[Token(Token = "0x40065B4")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040065B5 RID: 26037
|
||||
[Token(Token = "0x40065B5")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040065B6 RID: 26038
|
||||
[Token(Token = "0x40065B6")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040065B7 RID: 26039
|
||||
[Token(Token = "0x40065B7")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040065B8 RID: 26040
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065B8")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040065B9 RID: 26041
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065B9")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040065BA RID: 26042
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065BA")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040065BB RID: 26043
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40065BB")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040065BC RID: 26044
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065BC")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040065BD RID: 26045
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40065BD")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040065BE RID: 26046
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065BE")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040065BF RID: 26047
|
||||
[Token(Token = "0x40065BF")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A6 RID: 5798
|
||||
[Token(Token = "0x20016A6")]
|
||||
[StructLayout(3)]
|
||||
public class AesWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x06009B17 RID: 39703 RVA: 0x0022C618 File Offset: 0x0022A818
|
||||
[Token(Token = "0x6009B17")]
|
||||
[Address(RVA = "0x22DCC70", Offset = "0x22DB670", VA = "0x1822DCC70")]
|
||||
public AesWrapEngine()
|
||||
{
|
||||
AesEngine aesEngine = new AesEngine();
|
||||
base..ctor(aesEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+370
@@ -0,0 +1,370 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A7 RID: 5799
|
||||
[Token(Token = "0x20016A7")]
|
||||
[StructLayout(3)]
|
||||
public sealed class BlowfishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B18 RID: 39704 RVA: 0x0022C634 File Offset: 0x0022A834
|
||||
[Token(Token = "0x6009B18")]
|
||||
[Address(RVA = "0x22DDBE0", Offset = "0x22DC5E0", VA = "0x1822DDBE0")]
|
||||
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: 0x06009B19 RID: 39705 RVA: 0x0022C6A4 File Offset: 0x0022A8A4
|
||||
[Token(Token = "0x6009B19")]
|
||||
[Address(RVA = "0x22DD130", Offset = "0x22DBB30", VA = "0x1822DD130", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B19)
|
||||
|
||||
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: 0x170018B9 RID: 6329
|
||||
// (get) Token: 0x06009B1A RID: 39706 RVA: 0x0022C6F0 File Offset: 0x0022A8F0
|
||||
[Token(Token = "0x170018B9")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B1A")]
|
||||
[Address(RVA = "0x22DDCE0", Offset = "0x22DC6E0", VA = "0x1822DDCE0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Blowfish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018BA RID: 6330
|
||||
// (get) Token: 0x06009B1B RID: 39707 RVA: 0x0022C704 File Offset: 0x0022A904
|
||||
[Token(Token = "0x170018BA")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B1B")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B1C RID: 39708 RVA: 0x0022C714 File Offset: 0x0022A914
|
||||
[Token(Token = "0x6009B1C")]
|
||||
[Address(RVA = "0x22DD2D0", Offset = "0x22DBCD0", VA = "0x1822DD2D0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B1C)
|
||||
|
||||
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: 0x06009B1D RID: 39709 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B1D")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B1E RID: 39710 RVA: 0x0022C750 File Offset: 0x0022A950
|
||||
[Token(Token = "0x6009B1E")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B1F RID: 39711 RVA: 0x0022C760 File Offset: 0x0022A960
|
||||
[Token(Token = "0x6009B1F")]
|
||||
[Address(RVA = "0x22DD070", Offset = "0x22DBA70", VA = "0x1822DD070")]
|
||||
private uint F(uint x)
|
||||
{
|
||||
uint[] s = this.S0;
|
||||
uint[] s2 = this.S1;
|
||||
uint[] s3 = this.S2;
|
||||
uint[] s4 = this.S3;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B20 RID: 39712 RVA: 0x0022C790 File Offset: 0x0022A990
|
||||
[Token(Token = "0x6009B20")]
|
||||
[Address(RVA = "0x22DD3D0", Offset = "0x22DBDD0", VA = "0x1822DD3D0")]
|
||||
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: 0x06009B21 RID: 39713 RVA: 0x0022C824 File Offset: 0x0022AA24
|
||||
[Token(Token = "0x6009B21")]
|
||||
[Address(RVA = "0x22DD610", Offset = "0x22DC010", VA = "0x1822DD610")]
|
||||
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: 0x06009B22 RID: 39714 RVA: 0x0022CA28 File Offset: 0x0022AC28
|
||||
[Token(Token = "0x6009B22")]
|
||||
[Address(RVA = "0x22DCE90", Offset = "0x22DB890", VA = "0x1822DCE90")]
|
||||
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] p = this.P;
|
||||
uint num = this.F((uint)srcIndex);
|
||||
uint[] p2 = this.P;
|
||||
uint num2 = this.F((uint)srcIndex);
|
||||
uint[] p3 = this.P;
|
||||
uint num4;
|
||||
uint num3 = num4 + 1U;
|
||||
uint num5 = p3[(int)num3];
|
||||
num4 += (uint)2;
|
||||
uint[] p4 = this.P;
|
||||
num2 += (uint)1;
|
||||
uint num6 = p4[(int)num2];
|
||||
}
|
||||
|
||||
// Token: 0x06009B23 RID: 39715 RVA: 0x0022CA98 File Offset: 0x0022AC98
|
||||
[Token(Token = "0x6009B23")]
|
||||
[Address(RVA = "0x22DCCD0", Offset = "0x22DB6D0", VA = "0x1822DCCD0")]
|
||||
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] p = this.P;
|
||||
int rounds = BlowfishEngine.ROUNDS;
|
||||
int num = rounds + 1;
|
||||
if (rounds > 0)
|
||||
{
|
||||
uint num2 = this.F((uint)srcIndex);
|
||||
uint[] p2 = this.P;
|
||||
uint num3 = this.F((uint)srcIndex);
|
||||
uint[] p3 = this.P;
|
||||
int num4 = rounds - 1;
|
||||
}
|
||||
uint num5 = this.P[0];
|
||||
}
|
||||
|
||||
// Token: 0x06009B24 RID: 39716 RVA: 0x0022CAF4 File Offset: 0x0022ACF4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B24")]
|
||||
[Address(RVA = "0x22DDA60", Offset = "0x22DC460", VA = "0x1822DDA60")]
|
||||
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: 0x040065C0 RID: 26048
|
||||
[Token(Token = "0x40065C0")]
|
||||
private static readonly uint[] KP;
|
||||
|
||||
// Token: 0x040065C1 RID: 26049
|
||||
[Token(Token = "0x40065C1")]
|
||||
private static readonly uint[] KS0;
|
||||
|
||||
// Token: 0x040065C2 RID: 26050
|
||||
[Token(Token = "0x40065C2")]
|
||||
private static readonly uint[] KS1;
|
||||
|
||||
// Token: 0x040065C3 RID: 26051
|
||||
[Token(Token = "0x40065C3")]
|
||||
private static readonly uint[] KS2;
|
||||
|
||||
// Token: 0x040065C4 RID: 26052
|
||||
[Token(Token = "0x40065C4")]
|
||||
private static readonly uint[] KS3;
|
||||
|
||||
// Token: 0x040065C5 RID: 26053
|
||||
[Token(Token = "0x40065C5")]
|
||||
private static readonly int ROUNDS;
|
||||
|
||||
// Token: 0x040065C6 RID: 26054
|
||||
[Token(Token = "0x40065C6")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040065C7 RID: 26055
|
||||
[Token(Token = "0x40065C7")]
|
||||
private static readonly int SBOX_SK;
|
||||
|
||||
// Token: 0x040065C8 RID: 26056
|
||||
[Token(Token = "0x40065C8")]
|
||||
private static readonly int P_SZ;
|
||||
|
||||
// Token: 0x040065C9 RID: 26057
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065C9")]
|
||||
private readonly uint[] S0;
|
||||
|
||||
// Token: 0x040065CA RID: 26058
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065CA")]
|
||||
private readonly uint[] S1;
|
||||
|
||||
// Token: 0x040065CB RID: 26059
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065CB")]
|
||||
private readonly uint[] S2;
|
||||
|
||||
// Token: 0x040065CC RID: 26060
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065CC")]
|
||||
private readonly uint[] S3;
|
||||
|
||||
// Token: 0x040065CD RID: 26061
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065CD")]
|
||||
private readonly uint[] P;
|
||||
|
||||
// Token: 0x040065CE RID: 26062
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40065CE")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x040065CF RID: 26063
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40065CF")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+562
@@ -0,0 +1,562 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A8 RID: 5800
|
||||
[Token(Token = "0x20016A8")]
|
||||
[StructLayout(3)]
|
||||
public class CamelliaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B25 RID: 39717 RVA: 0x0022CBA8 File Offset: 0x0022ADA8
|
||||
[Token(Token = "0x6009B25")]
|
||||
[Address(RVA = "0x22DFAE0", Offset = "0x22DE4E0", VA = "0x1822DFAE0")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B26 RID: 39718 RVA: 0x0022CBB8 File Offset: 0x0022ADB8
|
||||
[Token(Token = "0x6009B26")]
|
||||
[Address(RVA = "0x22DEF90", Offset = "0x22DD990", VA = "0x1822DEF90")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B27 RID: 39719 RVA: 0x0022CBC8 File Offset: 0x0022ADC8
|
||||
[Token(Token = "0x6009B27")]
|
||||
[Address(RVA = "0x22DFB00", Offset = "0x22DE500", VA = "0x1822DFB00")]
|
||||
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: 0x06009B28 RID: 39720 RVA: 0x0022CC68 File Offset: 0x0022AE68
|
||||
[Token(Token = "0x6009B28")]
|
||||
[Address(RVA = "0x22DE8F0", Offset = "0x22DD2F0", VA = "0x1822DE8F0")]
|
||||
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: 0x06009B29 RID: 39721 RVA: 0x0022CD08 File Offset: 0x0022AF08
|
||||
[Token(Token = "0x6009B29")]
|
||||
[Address(RVA = "0x22DFE40", Offset = "0x22DE840", VA = "0x1822DFE40")]
|
||||
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: 0x06009B2A RID: 39722 RVA: 0x0022CDB4 File Offset: 0x0022AFB4
|
||||
[Token(Token = "0x6009B2A")]
|
||||
[Address(RVA = "0x22DEC30", Offset = "0x22DD630", VA = "0x1822DEC30")]
|
||||
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: 0x06009B2B RID: 39723 RVA: 0x0022CE50 File Offset: 0x0022B050
|
||||
[Token(Token = "0x6009B2B")]
|
||||
[Address(RVA = "0x22DE140", Offset = "0x22DCB40", VA = "0x1822DE140")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B2C RID: 39724 RVA: 0x0022CE68 File Offset: 0x0022B068
|
||||
[Token(Token = "0x6009B2C")]
|
||||
[Address(RVA = "0x22E1FB0", Offset = "0x22E09B0", VA = "0x1822E1FB0")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x06009B2D RID: 39725 RVA: 0x0022CE84 File Offset: 0x0022B084
|
||||
[Token(Token = "0x6009B2D")]
|
||||
[Address(RVA = "0x22DE1A0", Offset = "0x22DCBA0", VA = "0x1822DE1A0")]
|
||||
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: 0x06009B2E RID: 39726 RVA: 0x0022CF50 File Offset: 0x0022B150
|
||||
[Token(Token = "0x6009B2E")]
|
||||
[Address(RVA = "0x22DE710", Offset = "0x22DD110", VA = "0x1822DE710")]
|
||||
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: 0x06009B2F RID: 39727 RVA: 0x0022CF8C File Offset: 0x0022B18C
|
||||
[Token(Token = "0x6009B2F")]
|
||||
[Address(RVA = "0x22E0170", Offset = "0x22DEB70", VA = "0x1822E0170")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B2F)
|
||||
|
||||
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: 0x06009B30 RID: 39728 RVA: 0x0022DB2C File Offset: 0x0022BD2C
|
||||
[Token(Token = "0x6009B30")]
|
||||
[Address(RVA = "0x22DEFB0", Offset = "0x22DD9B0", VA = "0x1822DEFB0")]
|
||||
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: 0x06009B31 RID: 39729 RVA: 0x0022DCE4 File Offset: 0x0022BEE4
|
||||
[Token(Token = "0x6009B31")]
|
||||
[Address(RVA = "0x22DF520", Offset = "0x22DDF20", VA = "0x1822DF520")]
|
||||
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: 0x06009B32 RID: 39730 RVA: 0x0022DEF8 File Offset: 0x0022C0F8
|
||||
[Token(Token = "0x6009B32")]
|
||||
[Address(RVA = "0x22DE0B0", Offset = "0x22DCAB0", VA = "0x1822DE0B0")]
|
||||
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: 0x06009B33 RID: 39731 RVA: 0x0022DF48 File Offset: 0x0022C148
|
||||
[Token(Token = "0x6009B33")]
|
||||
[Address(RVA = "0x22DDD10", Offset = "0x22DC710", VA = "0x1822DDD10", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B33)
|
||||
|
||||
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: 0x170018BB RID: 6331
|
||||
// (get) Token: 0x06009B34 RID: 39732 RVA: 0x0022DF88 File Offset: 0x0022C188
|
||||
[Token(Token = "0x170018BB")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B34")]
|
||||
[Address(RVA = "0x22DEF60", Offset = "0x22DD960", VA = "0x1822DEF60", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018BC RID: 6332
|
||||
// (get) Token: 0x06009B35 RID: 39733 RVA: 0x0022DF9C File Offset: 0x0022C19C
|
||||
[Token(Token = "0x170018BC")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B35")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B36 RID: 39734 RVA: 0x0022DFAC File Offset: 0x0022C1AC
|
||||
[Token(Token = "0x6009B36")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B37 RID: 39735 RVA: 0x0022DFBC File Offset: 0x0022C1BC
|
||||
[Token(Token = "0x6009B37")]
|
||||
[Address(RVA = "0x22DDE70", Offset = "0x22DC870", VA = "0x1822DDE70", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B37)
|
||||
|
||||
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: 0x06009B38 RID: 39736 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B38")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B39 RID: 39737 RVA: 0x0022DFF8 File Offset: 0x0022C1F8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B39")]
|
||||
[Address(RVA = "0x22DDF70", Offset = "0x22DC970", VA = "0x1822DDF70")]
|
||||
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: 0x040065D0 RID: 26064
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065D0")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040065D1 RID: 26065
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x40065D1")]
|
||||
private bool _keyIs128;
|
||||
|
||||
// Token: 0x040065D2 RID: 26066
|
||||
[Token(Token = "0x40065D2")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040065D3 RID: 26067
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065D3")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x040065D4 RID: 26068
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065D4")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x040065D5 RID: 26069
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065D5")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x040065D6 RID: 26070
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065D6")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x040065D7 RID: 26071
|
||||
[Token(Token = "0x40065D7")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x040065D8 RID: 26072
|
||||
[Token(Token = "0x40065D8")]
|
||||
private static readonly uint[] SBOX1_1110;
|
||||
|
||||
// Token: 0x040065D9 RID: 26073
|
||||
[Token(Token = "0x40065D9")]
|
||||
private static readonly uint[] SBOX4_4404;
|
||||
|
||||
// Token: 0x040065DA RID: 26074
|
||||
[Token(Token = "0x40065DA")]
|
||||
private static readonly uint[] SBOX2_0222;
|
||||
|
||||
// Token: 0x040065DB RID: 26075
|
||||
[Token(Token = "0x40065DB")]
|
||||
private static readonly uint[] SBOX3_3033;
|
||||
}
|
||||
}
|
||||
+645
@@ -0,0 +1,645 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016A9 RID: 5801
|
||||
[Token(Token = "0x20016A9")]
|
||||
[StructLayout(3)]
|
||||
public class CamelliaLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B3A RID: 39738 RVA: 0x0022E094 File Offset: 0x0022C294
|
||||
[Token(Token = "0x6009B3A")]
|
||||
[Address(RVA = "0x22DFAE0", Offset = "0x22DE4E0", VA = "0x1822DFAE0")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B3B RID: 39739 RVA: 0x0022E0A4 File Offset: 0x0022C2A4
|
||||
[Token(Token = "0x6009B3B")]
|
||||
[Address(RVA = "0x22DEF90", Offset = "0x22DD990", VA = "0x1822DEF90")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009B3C RID: 39740 RVA: 0x0022E0B4 File Offset: 0x0022C2B4
|
||||
[Token(Token = "0x6009B3C")]
|
||||
[Address(RVA = "0x22DFB00", Offset = "0x22DE500", VA = "0x1822DFB00")]
|
||||
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: 0x06009B3D RID: 39741 RVA: 0x0022E154 File Offset: 0x0022C354
|
||||
[Token(Token = "0x6009B3D")]
|
||||
[Address(RVA = "0x22DE8F0", Offset = "0x22DD2F0", VA = "0x1822DE8F0")]
|
||||
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: 0x06009B3E RID: 39742 RVA: 0x0022E1F4 File Offset: 0x0022C3F4
|
||||
[Token(Token = "0x6009B3E")]
|
||||
[Address(RVA = "0x22DFE40", Offset = "0x22DE840", VA = "0x1822DFE40")]
|
||||
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: 0x06009B3F RID: 39743 RVA: 0x0022E2A0 File Offset: 0x0022C4A0
|
||||
[Token(Token = "0x6009B3F")]
|
||||
[Address(RVA = "0x22DEC30", Offset = "0x22DD630", VA = "0x1822DEC30")]
|
||||
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: 0x06009B40 RID: 39744 RVA: 0x0022E33C File Offset: 0x0022C53C
|
||||
[Token(Token = "0x6009B40")]
|
||||
[Address(RVA = "0x22DE140", Offset = "0x22DCB40", VA = "0x1822DE140")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B41 RID: 39745 RVA: 0x0022E354 File Offset: 0x0022C554
|
||||
[Token(Token = "0x6009B41")]
|
||||
[Address(RVA = "0x22E1FB0", Offset = "0x22E09B0", VA = "0x1822E1FB0")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x06009B42 RID: 39746 RVA: 0x0022E370 File Offset: 0x0022C570
|
||||
[Token(Token = "0x6009B42")]
|
||||
[Address(RVA = "0x22E2A50", Offset = "0x22E1450", VA = "0x1822E2A50")]
|
||||
private byte lRot8(byte v, int rot)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)rot;
|
||||
return v;
|
||||
}
|
||||
|
||||
// Token: 0x06009B43 RID: 39747 RVA: 0x0022E384 File Offset: 0x0022C584
|
||||
[Token(Token = "0x6009B43")]
|
||||
[Address(RVA = "0x22E3620", Offset = "0x22E2020", VA = "0x1822E3620")]
|
||||
private uint sbox2(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B44 RID: 39748 RVA: 0x0022E39C File Offset: 0x0022C59C
|
||||
[Token(Token = "0x6009B44")]
|
||||
[Address(RVA = "0x22E36B0", Offset = "0x22E20B0", VA = "0x1822E36B0")]
|
||||
private uint sbox3(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B45 RID: 39749 RVA: 0x0022E3B4 File Offset: 0x0022C5B4
|
||||
[Token(Token = "0x6009B45")]
|
||||
[Address(RVA = "0x22E3740", Offset = "0x22E2140", VA = "0x1822E3740")]
|
||||
private uint sbox4(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B46 RID: 39750 RVA: 0x0022E3CC File Offset: 0x0022C5CC
|
||||
[Token(Token = "0x6009B46")]
|
||||
[Address(RVA = "0x22E2390", Offset = "0x22E0D90", VA = "0x1822E2390")]
|
||||
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: 0x06009B47 RID: 39751 RVA: 0x0022E4F8 File Offset: 0x0022C6F8
|
||||
[Token(Token = "0x6009B47")]
|
||||
[Address(RVA = "0x22E2840", Offset = "0x22E1240", VA = "0x1822E2840")]
|
||||
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: 0x06009B48 RID: 39752 RVA: 0x0022E534 File Offset: 0x0022C734
|
||||
[Token(Token = "0x6009B48")]
|
||||
[Address(RVA = "0x22E37D0", Offset = "0x22E21D0", VA = "0x1822E37D0")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B48)
|
||||
|
||||
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: 0x06009B49 RID: 39753 RVA: 0x0022F0D8 File Offset: 0x0022D2D8
|
||||
[Token(Token = "0x6009B49")]
|
||||
[Address(RVA = "0x22E2A80", Offset = "0x22E1480", VA = "0x1822E2A80")]
|
||||
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: 0x06009B4A RID: 39754 RVA: 0x0022F2F0 File Offset: 0x0022D4F0
|
||||
[Token(Token = "0x6009B4A")]
|
||||
[Address(RVA = "0x22E3020", Offset = "0x22E1A20", VA = "0x1822E3020")]
|
||||
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: 0x06009B4B RID: 39755 RVA: 0x0022F578 File Offset: 0x0022D778
|
||||
[Token(Token = "0x6009B4B")]
|
||||
[Address(RVA = "0x22E2300", Offset = "0x22E0D00", VA = "0x1822E2300")]
|
||||
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: 0x170018BD RID: 6333
|
||||
// (get) Token: 0x06009B4C RID: 39756 RVA: 0x0022F5CC File Offset: 0x0022D7CC
|
||||
[Token(Token = "0x170018BD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B4C")]
|
||||
[Address(RVA = "0x22E2A20", Offset = "0x22E1420", VA = "0x1822E2A20", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018BE RID: 6334
|
||||
// (get) Token: 0x06009B4D RID: 39757 RVA: 0x0022F5E0 File Offset: 0x0022D7E0
|
||||
[Token(Token = "0x170018BE")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B4D")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B4E RID: 39758 RVA: 0x0022F5F0 File Offset: 0x0022D7F0
|
||||
[Token(Token = "0x6009B4E")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B4F RID: 39759 RVA: 0x0022F600 File Offset: 0x0022D800
|
||||
[Token(Token = "0x6009B4F")]
|
||||
[Address(RVA = "0x22E2000", Offset = "0x22E0A00", VA = "0x1822E2000", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B4F)
|
||||
|
||||
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: 0x06009B50 RID: 39760 RVA: 0x0022F640 File Offset: 0x0022D840
|
||||
[Token(Token = "0x6009B50")]
|
||||
[Address(RVA = "0x22E2160", Offset = "0x22E0B60", VA = "0x1822E2160", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B50)
|
||||
|
||||
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: 0x06009B51 RID: 39761 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B51")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B52 RID: 39762 RVA: 0x0022F67C File Offset: 0x0022D87C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B52")]
|
||||
[Address(RVA = "0x22E2260", Offset = "0x22E0C60", VA = "0x1822E2260")]
|
||||
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: 0x040065DC RID: 26076
|
||||
[Token(Token = "0x40065DC")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040065DD RID: 26077
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065DD")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040065DE RID: 26078
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x40065DE")]
|
||||
private bool _keyis128;
|
||||
|
||||
// Token: 0x040065DF RID: 26079
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065DF")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x040065E0 RID: 26080
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065E0")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x040065E1 RID: 26081
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065E1")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x040065E2 RID: 26082
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065E2")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x040065E3 RID: 26083
|
||||
[Token(Token = "0x40065E3")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x040065E4 RID: 26084
|
||||
[Token(Token = "0x40065E4")]
|
||||
private static readonly byte[] SBOX1;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AA RID: 5802
|
||||
[Token(Token = "0x20016AA")]
|
||||
[StructLayout(3)]
|
||||
public class CamelliaWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x06009B53 RID: 39763 RVA: 0x0022F6C0 File Offset: 0x0022D8C0
|
||||
[Token(Token = "0x6009B53")]
|
||||
[Address(RVA = "0x22E5620", Offset = "0x22E4020", VA = "0x1822E5620")]
|
||||
public CamelliaWrapEngine()
|
||||
{
|
||||
uint[] array = new uint[96];
|
||||
CamelliaEngine camelliaEngine;
|
||||
camelliaEngine.subkey = array;
|
||||
uint[] array2 = new uint[8];
|
||||
camelliaEngine.kw = array2;
|
||||
uint[] array3 = new uint[12];
|
||||
camelliaEngine.ke = array3;
|
||||
uint[] array4 = new uint[4];
|
||||
camelliaEngine.state = array4;
|
||||
camelliaEngine.Reset();
|
||||
base..ctor(camelliaEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+614
@@ -0,0 +1,614 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AB RID: 5803
|
||||
[Token(Token = "0x20016AB")]
|
||||
[StructLayout(3)]
|
||||
public class Cast5Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B54 RID: 39764 RVA: 0x0022F718 File Offset: 0x0022D918
|
||||
[Token(Token = "0x6009B54")]
|
||||
[Address(RVA = "0x22ED360", Offset = "0x22EBD60", VA = "0x1822ED360")]
|
||||
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: 0x06009B55 RID: 39765 RVA: 0x0022F758 File Offset: 0x0022D958
|
||||
[Token(Token = "0x6009B55")]
|
||||
[Address(RVA = "0x22E6330", Offset = "0x22E4D30", VA = "0x1822E6330", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B55)
|
||||
|
||||
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: 0x170018BF RID: 6335
|
||||
// (get) Token: 0x06009B56 RID: 39766 RVA: 0x0022F7A0 File Offset: 0x0022D9A0
|
||||
[Token(Token = "0x170018BF")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B56")]
|
||||
[Address(RVA = "0x22ED400", Offset = "0x22EBE00", VA = "0x1822ED400", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST5";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018C0 RID: 6336
|
||||
// (get) Token: 0x06009B57 RID: 39767 RVA: 0x0022F7B4 File Offset: 0x0022D9B4
|
||||
[Token(Token = "0x170018C0")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B57")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B58 RID: 39768 RVA: 0x0022F7C4 File Offset: 0x0022D9C4
|
||||
[Token(Token = "0x6009B58")]
|
||||
[Address(RVA = "0x22E65C0", Offset = "0x22E4FC0", VA = "0x1822E65C0", Slot = "13")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B58)
|
||||
|
||||
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: 0x06009B59 RID: 39769 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B59")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B5A RID: 39770 RVA: 0x0022F800 File Offset: 0x0022DA00
|
||||
[Token(Token = "0x6009B5A")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "15")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B5B RID: 39771 RVA: 0x0022F810 File Offset: 0x0022DA10
|
||||
[Token(Token = "0x6009B5B")]
|
||||
[Address(RVA = "0x22E6720", Offset = "0x22E5120", VA = "0x1822E6720", Slot = "16")]
|
||||
internal virtual void SetKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B5B)
|
||||
|
||||
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: 0x06009B5C RID: 39772 RVA: 0x00230004 File Offset: 0x0022E204
|
||||
[Token(Token = "0x6009B5C")]
|
||||
[Address(RVA = "0x22E5E60", Offset = "0x22E4860", VA = "0x1822E5E60", Slot = "17")]
|
||||
internal virtual int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Encipher((uint)2, (uint)srcIndex, array);
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B5D RID: 39773 RVA: 0x0023003C File Offset: 0x0022E23C
|
||||
[Token(Token = "0x6009B5D")]
|
||||
[Address(RVA = "0x22E5D50", Offset = "0x22E4750", VA = "0x1822E5D50", Slot = "18")]
|
||||
internal virtual int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Decipher((uint)2, (uint)srcIndex, array);
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B5E RID: 39774 RVA: 0x00230074 File Offset: 0x0022E274
|
||||
[Token(Token = "0x6009B5E")]
|
||||
[Address(RVA = "0x22E5F70", Offset = "0x22E4970", VA = "0x1822E5F70")]
|
||||
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: 0x06009B5F RID: 39775 RVA: 0x002300BC File Offset: 0x0022E2BC
|
||||
[Token(Token = "0x6009B5F")]
|
||||
[Address(RVA = "0x22E60B0", Offset = "0x22E4AB0", VA = "0x1822E60B0")]
|
||||
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: 0x06009B60 RID: 39776 RVA: 0x00230108 File Offset: 0x0022E308
|
||||
[Token(Token = "0x6009B60")]
|
||||
[Address(RVA = "0x22E61F0", Offset = "0x22E4BF0", VA = "0x1822E61F0")]
|
||||
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: 0x06009B61 RID: 39777 RVA: 0x00230134 File Offset: 0x0022E334
|
||||
[Token(Token = "0x6009B61")]
|
||||
[Address(RVA = "0x22E5A80", Offset = "0x22E4480", VA = "0x1822E5A80")]
|
||||
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: 0x06009B62 RID: 39778 RVA: 0x002301CC File Offset: 0x0022E3CC
|
||||
[Token(Token = "0x6009B62")]
|
||||
[Address(RVA = "0x22E57A0", Offset = "0x22E41A0", VA = "0x1822E57A0")]
|
||||
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: 0x06009B63 RID: 39779 RVA: 0x00230258 File Offset: 0x0022E458
|
||||
[Token(Token = "0x6009B63")]
|
||||
[Address(RVA = "0x22E56F0", Offset = "0x22E40F0", VA = "0x1822E56F0")]
|
||||
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: 0x06009B64 RID: 39780 RVA: 0x00230290 File Offset: 0x0022E490
|
||||
[Token(Token = "0x6009B64")]
|
||||
[Address(RVA = "0x22E6510", Offset = "0x22E4F10", VA = "0x1822E6510")]
|
||||
internal static uint IntsTo32bits(int[] b, int i)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = i + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009B65 RID: 39781 RVA: 0x002302B0 File Offset: 0x0022E4B0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B65")]
|
||||
[Address(RVA = "0x22ED150", Offset = "0x22EBB50", VA = "0x1822ED150")]
|
||||
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: 0x040065E5 RID: 26085
|
||||
[Token(Token = "0x40065E5")]
|
||||
private static readonly uint[] S1;
|
||||
|
||||
// Token: 0x040065E6 RID: 26086
|
||||
[Token(Token = "0x40065E6")]
|
||||
private static readonly uint[] S2;
|
||||
|
||||
// Token: 0x040065E7 RID: 26087
|
||||
[Token(Token = "0x40065E7")]
|
||||
private static readonly uint[] S3;
|
||||
|
||||
// Token: 0x040065E8 RID: 26088
|
||||
[Token(Token = "0x40065E8")]
|
||||
private static readonly uint[] S4;
|
||||
|
||||
// Token: 0x040065E9 RID: 26089
|
||||
[Token(Token = "0x40065E9")]
|
||||
private static readonly uint[] S5;
|
||||
|
||||
// Token: 0x040065EA RID: 26090
|
||||
[Token(Token = "0x40065EA")]
|
||||
private static readonly uint[] S6;
|
||||
|
||||
// Token: 0x040065EB RID: 26091
|
||||
[Token(Token = "0x40065EB")]
|
||||
private static readonly uint[] S7;
|
||||
|
||||
// Token: 0x040065EC RID: 26092
|
||||
[Token(Token = "0x40065EC")]
|
||||
private static readonly uint[] S8;
|
||||
|
||||
// Token: 0x040065ED RID: 26093
|
||||
[Token(Token = "0x40065ED")]
|
||||
internal static readonly int MAX_ROUNDS;
|
||||
|
||||
// Token: 0x040065EE RID: 26094
|
||||
[Token(Token = "0x40065EE")]
|
||||
internal static readonly int RED_ROUNDS;
|
||||
|
||||
// Token: 0x040065EF RID: 26095
|
||||
[Token(Token = "0x40065EF")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040065F0 RID: 26096
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40065F0")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x040065F1 RID: 26097
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065F1")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x040065F2 RID: 26098
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065F2")]
|
||||
private bool _encrypting;
|
||||
|
||||
// Token: 0x040065F3 RID: 26099
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065F3")]
|
||||
private byte[] _workingKey;
|
||||
|
||||
// Token: 0x040065F4 RID: 26100
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065F4")]
|
||||
private int _rounds;
|
||||
}
|
||||
}
|
||||
+378
@@ -0,0 +1,378 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AC RID: 5804
|
||||
[Token(Token = "0x20016AC")]
|
||||
[StructLayout(3)]
|
||||
public sealed class Cast6Engine : Cast5Engine
|
||||
{
|
||||
// Token: 0x06009B66 RID: 39782 RVA: 0x002303AC File Offset: 0x0022E5AC
|
||||
[Token(Token = "0x6009B66")]
|
||||
[Address(RVA = "0x22EF0C0", Offset = "0x22EDAC0", VA = "0x1822EF0C0")]
|
||||
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: 0x170018C1 RID: 6337
|
||||
// (get) Token: 0x06009B67 RID: 39783 RVA: 0x00230444 File Offset: 0x0022E644
|
||||
[Token(Token = "0x170018C1")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B67")]
|
||||
[Address(RVA = "0x22EF200", Offset = "0x22EDC00", VA = "0x1822EF200", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B68 RID: 39784 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B68")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B69 RID: 39785 RVA: 0x00230458 File Offset: 0x0022E658
|
||||
[Token(Token = "0x6009B69")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "15")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B6A RID: 39786 RVA: 0x00230468 File Offset: 0x0022E668
|
||||
[Token(Token = "0x6009B6A")]
|
||||
[Address(RVA = "0x22EE0B0", Offset = "0x22ECAB0", VA = "0x1822EE0B0", 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++;
|
||||
workingKey[0] = array;
|
||||
uint[] workingKey2 = this._workingKey;
|
||||
int length = workingKey2.Length;
|
||||
uint[] tm = this._Tm;
|
||||
uint num4 = workingKey2[3];
|
||||
uint num5 = tm[num];
|
||||
int num6 = this._Tr[num];
|
||||
uint num7 = Cast5Engine.F1(num4, num5, num6);
|
||||
workingKey2[3] = num7;
|
||||
uint[] workingKey3 = this._workingKey;
|
||||
int length2 = workingKey3.Length;
|
||||
uint[] tm2 = this._Tm;
|
||||
int[] tr = this._Tr;
|
||||
uint num9;
|
||||
int num10;
|
||||
uint num8 = Cast5Engine.F2(workingKey3[3], num9, num10);
|
||||
workingKey3[2] = num8;
|
||||
uint[] workingKey4 = this._workingKey;
|
||||
int length3 = workingKey4.Length;
|
||||
uint[] tm3 = this._Tm;
|
||||
int[] tr2 = this._Tr;
|
||||
uint num12;
|
||||
int num13;
|
||||
uint num11 = Cast5Engine.F3(workingKey4[2], num12, num13);
|
||||
workingKey4[2] = num11;
|
||||
uint[] workingKey5 = this._workingKey;
|
||||
int length4 = workingKey5.Length;
|
||||
uint[] tm4 = this._Tm;
|
||||
int[] tr3 = this._Tr;
|
||||
uint num15;
|
||||
int num16;
|
||||
uint num14 = Cast5Engine.F1(workingKey5[2], num15, num16);
|
||||
workingKey5[1] = num14;
|
||||
uint[] workingKey6 = this._workingKey;
|
||||
int length5 = workingKey6.Length;
|
||||
uint[] tm5 = this._Tm;
|
||||
int[] tr4 = this._Tr;
|
||||
uint num18;
|
||||
int num19;
|
||||
uint num17 = Cast5Engine.F2(workingKey6[1], num18, num19);
|
||||
workingKey6[1] = num17;
|
||||
uint[] workingKey7 = this._workingKey;
|
||||
int length6 = workingKey7.Length;
|
||||
uint[] tm6 = this._Tm;
|
||||
int[] tr5 = this._Tr;
|
||||
uint num21;
|
||||
int num22;
|
||||
uint num20 = Cast5Engine.F3(workingKey7[1], num21, num22);
|
||||
workingKey7[0] = num20;
|
||||
uint[] workingKey8 = this._workingKey;
|
||||
int length7 = workingKey8.Length;
|
||||
uint[] tm7 = this._Tm;
|
||||
int[] tr6 = this._Tr;
|
||||
uint num24;
|
||||
int num25;
|
||||
uint num23 = Cast5Engine.F1(workingKey8[0], num24, num25);
|
||||
workingKey8[0] = num23;
|
||||
uint[] workingKey9 = this._workingKey;
|
||||
int length8 = workingKey9.Length;
|
||||
uint[] tm8 = this._Tm;
|
||||
int[] tr7 = this._Tr;
|
||||
uint num27;
|
||||
int num28;
|
||||
uint num26 = Cast5Engine.F2(workingKey9[0], num27, num28);
|
||||
workingKey9[3] = num26;
|
||||
uint[] workingKey10 = this._workingKey;
|
||||
int length9 = workingKey10.Length;
|
||||
uint[] tm9 = this._Tm;
|
||||
int[] tr8 = this._Tr;
|
||||
uint num29 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
|
||||
workingKey10[3] = num29;
|
||||
uint[] workingKey11 = this._workingKey;
|
||||
int length10 = workingKey11.Length;
|
||||
uint[] tm10 = this._Tm;
|
||||
int[] tr9 = this._Tr;
|
||||
uint num31;
|
||||
int num32;
|
||||
uint num30 = Cast5Engine.F2(workingKey11[3], num31, num32);
|
||||
workingKey11[2] = num30;
|
||||
uint[] workingKey12 = this._workingKey;
|
||||
int length11 = workingKey12.Length;
|
||||
uint[] tm11 = this._Tm;
|
||||
int[] tr10 = this._Tr;
|
||||
uint num34;
|
||||
int num35;
|
||||
uint num33 = Cast5Engine.F3(workingKey12[2], num34, num35);
|
||||
workingKey12[2] = num33;
|
||||
uint[] workingKey13 = this._workingKey;
|
||||
int length12 = workingKey13.Length;
|
||||
uint[] tm12 = this._Tm;
|
||||
int[] tr11 = this._Tr;
|
||||
uint num37;
|
||||
int num38;
|
||||
uint num36 = Cast5Engine.F1(workingKey13[2], num37, num38);
|
||||
workingKey13[1] = num36;
|
||||
uint[] workingKey14 = this._workingKey;
|
||||
int length13 = workingKey14.Length;
|
||||
uint[] tm13 = this._Tm;
|
||||
int[] tr12 = this._Tr;
|
||||
uint num40;
|
||||
int num41;
|
||||
uint num39 = Cast5Engine.F2(workingKey14[1], num40, num41);
|
||||
workingKey14[1] = num39;
|
||||
uint[] workingKey15 = this._workingKey;
|
||||
int length14 = workingKey15.Length;
|
||||
uint[] tm14 = this._Tm;
|
||||
int[] tr13 = this._Tr;
|
||||
uint num43;
|
||||
int num44;
|
||||
uint num42 = Cast5Engine.F3(workingKey15[1], num43, num44);
|
||||
workingKey15[0] = num42;
|
||||
uint[] workingKey16 = this._workingKey;
|
||||
int length15 = workingKey16.Length;
|
||||
uint[] tm15 = this._Tm;
|
||||
int[] tr14 = this._Tr;
|
||||
uint num46;
|
||||
int num47;
|
||||
uint num45 = Cast5Engine.F1(workingKey16[0], num46, num47);
|
||||
workingKey16[0] = num45;
|
||||
uint[] workingKey17 = this._workingKey;
|
||||
int length16 = workingKey17.Length;
|
||||
uint[] tm16 = this._Tm;
|
||||
num += 15;
|
||||
int num48 = this._Tr[num];
|
||||
uint num49 = workingKey17[0];
|
||||
uint num50 = tm16[num];
|
||||
uint num51 = Cast5Engine.F2(num49, num50, num48);
|
||||
workingKey17[3] = num51;
|
||||
uint[] workingKey18 = this._workingKey;
|
||||
int[] kr = this._Kr;
|
||||
uint num52 = workingKey18[0];
|
||||
num.m_value = (int)num52;
|
||||
uint[] workingKey19 = this._workingKey;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num53 = workingKey19[1];
|
||||
kr2[0] = (int)num53;
|
||||
uint[] workingKey20 = this._workingKey;
|
||||
int[] kr3 = this._Kr;
|
||||
uint num54 = workingKey20[2];
|
||||
kr3[0] = (int)num54;
|
||||
uint[] workingKey21 = this._workingKey;
|
||||
int[] kr4 = this._Kr;
|
||||
uint num55 = workingKey21[3];
|
||||
kr4[0] = (int)num55;
|
||||
uint[] workingKey22 = this._workingKey;
|
||||
uint[] km = this._Km;
|
||||
uint num56 = workingKey22[3];
|
||||
num.m_value = (int)num56;
|
||||
uint[] workingKey23 = this._workingKey;
|
||||
uint[] km2 = this._Km;
|
||||
uint num57 = workingKey23[2];
|
||||
km2[0] = num57;
|
||||
uint[] workingKey24 = this._workingKey;
|
||||
uint[] km3 = this._Km;
|
||||
uint num58 = workingKey24[1];
|
||||
km3[0] = num58;
|
||||
uint[] workingKey25 = this._workingKey;
|
||||
uint[] km4 = this._Km;
|
||||
uint num59 = workingKey25[0];
|
||||
num++;
|
||||
km4[0] = num59;
|
||||
}
|
||||
|
||||
// Token: 0x06009B6B RID: 39787 RVA: 0x00230A00 File Offset: 0x0022EC00
|
||||
[Token(Token = "0x6009B6B")]
|
||||
[Address(RVA = "0x22EDF00", Offset = "0x22EC900", VA = "0x1822EDF00", Slot = "17")]
|
||||
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] array = new uint[4];
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B6C RID: 39788 RVA: 0x00230A40 File Offset: 0x0022EC40
|
||||
[Token(Token = "0x6009B6C")]
|
||||
[Address(RVA = "0x22EDD50", Offset = "0x22EC750", VA = "0x1822EDD50", Slot = "18")]
|
||||
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint[] array = new uint[4];
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009B6D RID: 39789 RVA: 0x00230A80 File Offset: 0x0022EC80
|
||||
[Token(Token = "0x6009B6D")]
|
||||
[Address(RVA = "0x22ED8C0", Offset = "0x22EC2C0", VA = "0x1822ED8C0")]
|
||||
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: 0x06009B6E RID: 39790 RVA: 0x00230B80 File Offset: 0x0022ED80
|
||||
[Token(Token = "0x6009B6E")]
|
||||
[Address(RVA = "0x22ED430", Offset = "0x22EBE30", VA = "0x1822ED430")]
|
||||
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: 0x040065F5 RID: 26101
|
||||
[Token(Token = "0x40065F5")]
|
||||
private const int ROUNDS = 12;
|
||||
|
||||
// Token: 0x040065F6 RID: 26102
|
||||
[Token(Token = "0x40065F6")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040065F7 RID: 26103
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40065F7")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x040065F8 RID: 26104
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40065F8")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x040065F9 RID: 26105
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40065F9")]
|
||||
private int[] _Tr;
|
||||
|
||||
// Token: 0x040065FA RID: 26106
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40065FA")]
|
||||
private uint[] _Tm;
|
||||
|
||||
// Token: 0x040065FB RID: 26107
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40065FB")]
|
||||
private uint[] _workingKey;
|
||||
}
|
||||
}
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AD RID: 5805
|
||||
[Token(Token = "0x20016AD")]
|
||||
[StructLayout(3)]
|
||||
public class ChaCha7539Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x06009B6F RID: 39791 RVA: 0x00230C8C File Offset: 0x0022EE8C
|
||||
[Token(Token = "0x6009B6F")]
|
||||
[Address(RVA = "0x22EF450", Offset = "0x22EDE50", VA = "0x1822EF450")]
|
||||
public ChaCha7539Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170018C2 RID: 6338
|
||||
// (get) Token: 0x06009B70 RID: 39792 RVA: 0x00230CA0 File Offset: 0x0022EEA0
|
||||
[Token(Token = "0x170018C2")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B70")]
|
||||
[Address(RVA = "0x22EF4B0", Offset = "0x22EDEB0", VA = "0x1822EF4B0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha7539" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018C3 RID: 6339
|
||||
// (get) Token: 0x06009B71 RID: 39793 RVA: 0x00230CC0 File Offset: 0x0022EEC0
|
||||
[Token(Token = "0x170018C3")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x6009B71")]
|
||||
[Address(RVA = "0x1822090", Offset = "0x1820A90", VA = "0x181822090", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 12;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B72 RID: 39794 RVA: 0x00230CD0 File Offset: 0x0022EED0
|
||||
[Token(Token = "0x6009B72")]
|
||||
[Address(RVA = "0x22EF230", Offset = "0x22EDC30", VA = "0x1822EF230", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B72)
|
||||
|
||||
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: 0x06009B73 RID: 39795 RVA: 0x00230D00 File Offset: 0x0022EF00
|
||||
[Token(Token = "0x6009B73")]
|
||||
[Address(RVA = "0x22EF300", Offset = "0x22EDD00", VA = "0x1822EF300", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
|
||||
// Token: 0x06009B74 RID: 39796 RVA: 0x00230D1C File Offset: 0x0022EF1C
|
||||
[Token(Token = "0x6009B74")]
|
||||
[Address(RVA = "0x22EF340", Offset = "0x22EDD40", VA = "0x1822EF340", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B74)
|
||||
|
||||
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: 0x06009B75 RID: 39797 RVA: 0x00230D84 File Offset: 0x0022EF84
|
||||
[Token(Token = "0x6009B75")]
|
||||
[Address(RVA = "0x22EF2C0", Offset = "0x22EDCC0", VA = "0x1822EF2C0", 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+207
@@ -0,0 +1,207 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AE RID: 5806
|
||||
[Token(Token = "0x20016AE")]
|
||||
[StructLayout(3)]
|
||||
public class ChaChaEngine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x06009B76 RID: 39798 RVA: 0x00230DC0 File Offset: 0x0022EFC0
|
||||
[Token(Token = "0x6009B76")]
|
||||
[Address(RVA = "0x22F00D0", Offset = "0x22EEAD0", VA = "0x1822F00D0")]
|
||||
public ChaChaEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009B77 RID: 39799 RVA: 0x00230DD4 File Offset: 0x0022EFD4
|
||||
[Token(Token = "0x6009B77")]
|
||||
[Address(RVA = "0x22F0070", Offset = "0x22EEA70", VA = "0x1822F0070")]
|
||||
public ChaChaEngine(int rounds)
|
||||
: base(rounds)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170018C4 RID: 6340
|
||||
// (get) Token: 0x06009B78 RID: 39800 RVA: 0x00230DE8 File Offset: 0x0022EFE8
|
||||
[Token(Token = "0x170018C4")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B78")]
|
||||
[Address(RVA = "0x22F0130", Offset = "0x22EEB30", VA = "0x1822F0130", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B79 RID: 39801 RVA: 0x00230E08 File Offset: 0x0022F008
|
||||
[Token(Token = "0x6009B79")]
|
||||
[Address(RVA = "0x22EF510", Offset = "0x22EDF10", VA = "0x1822EF510", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 12)
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B7A RID: 39802 RVA: 0x00230E34 File Offset: 0x0022F034
|
||||
[Token(Token = "0x6009B7A")]
|
||||
[Address(RVA = "0x22EFEE0", Offset = "0x22EE8E0", VA = "0x1822EFEE0", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
engineState[6] = (uint)num;
|
||||
engineState[6] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x06009B7B RID: 39803 RVA: 0x00230E60 File Offset: 0x0022F060
|
||||
[Token(Token = "0x6009B7B")]
|
||||
[Address(RVA = "0x22EFF40", Offset = "0x22EE940", VA = "0x1822EFF40", 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: 0x06009B7C RID: 39804 RVA: 0x00230EE4 File Offset: 0x0022F0E4
|
||||
[Token(Token = "0x6009B7C")]
|
||||
[Address(RVA = "0x22EF2C0", Offset = "0x22EDCC0", VA = "0x1822EF2C0", 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: 0x06009B7D RID: 39805 RVA: 0x00230F20 File Offset: 0x0022F120
|
||||
[Token(Token = "0x6009B7D")]
|
||||
[Address(RVA = "0x22EF570", Offset = "0x22EDF70", VA = "0x1822EF570")]
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016AF RID: 5807
|
||||
[Token(Token = "0x20016AF")]
|
||||
[StructLayout(3)]
|
||||
public class DesEdeEngine : DesEngine
|
||||
{
|
||||
// Token: 0x06009B7E RID: 39806 RVA: 0x00231210 File Offset: 0x0022F410
|
||||
[Token(Token = "0x6009B7E")]
|
||||
[Address(RVA = "0x22F0190", Offset = "0x22EEB90", VA = "0x1822F0190", Slot = "11")]
|
||||
public override void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B7E)
|
||||
|
||||
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: 0x170018C5 RID: 6341
|
||||
// (get) Token: 0x06009B7F RID: 39807 RVA: 0x00231300 File Offset: 0x0022F500
|
||||
[Token(Token = "0x170018C5")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B7F")]
|
||||
[Address(RVA = "0x22F06E0", Offset = "0x22EF0E0", VA = "0x1822F06E0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B80 RID: 39808 RVA: 0x00231314 File Offset: 0x0022F514
|
||||
[Token(Token = "0x6009B80")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "14")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B81 RID: 39809 RVA: 0x00231324 File Offset: 0x0022F524
|
||||
[Token(Token = "0x6009B81")]
|
||||
[Address(RVA = "0x22F04B0", Offset = "0x22EEEB0", VA = "0x1822F04B0", Slot = "15")]
|
||||
public override int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B81)
|
||||
|
||||
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: 0x06009B82 RID: 39810 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B82")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "16")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B83 RID: 39811 RVA: 0x002313B8 File Offset: 0x0022F5B8
|
||||
[Token(Token = "0x6009B83")]
|
||||
[Address(RVA = "0x22F0680", Offset = "0x22EF080", VA = "0x1822F0680")]
|
||||
public DesEdeEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x040065FC RID: 26108
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40065FC")]
|
||||
private int[] workingKey1;
|
||||
|
||||
// Token: 0x040065FD RID: 26109
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40065FD")]
|
||||
private int[] workingKey2;
|
||||
|
||||
// Token: 0x040065FE RID: 26110
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40065FE")]
|
||||
private int[] workingKey3;
|
||||
|
||||
// Token: 0x040065FF RID: 26111
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065FF")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+225
@@ -0,0 +1,225 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x020016B0 RID: 5808
|
||||
[Token(Token = "0x20016B0")]
|
||||
[StructLayout(3)]
|
||||
public class DesEdeWrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x06009B84 RID: 39812 RVA: 0x002313CC File Offset: 0x0022F5CC
|
||||
[Token(Token = "0x6009B84")]
|
||||
[Address(RVA = "0x22F0960", Offset = "0x22EF360", VA = "0x1822F0960", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B84)
|
||||
|
||||
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: 0x170018C6 RID: 6342
|
||||
// (get) Token: 0x06009B85 RID: 39813 RVA: 0x002314D0 File Offset: 0x0022F6D0
|
||||
[Token(Token = "0x170018C6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B85")]
|
||||
[Address(RVA = "0x22F1590", Offset = "0x22EFF90", VA = "0x1822F1590", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B86 RID: 39814 RVA: 0x002314E4 File Offset: 0x0022F6E4
|
||||
[Token(Token = "0x6009B86")]
|
||||
[Address(RVA = "0x22F1180", Offset = "0x22EFB80", VA = "0x1822F1180", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B86)
|
||||
|
||||
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: 0x06009B87 RID: 39815 RVA: 0x0023169C File Offset: 0x0022F89C
|
||||
[Token(Token = "0x6009B87")]
|
||||
[Address(RVA = "0x22F0D20", Offset = "0x22EF720", VA = "0x1822F0D20", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B87)
|
||||
|
||||
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: 0x06009B88 RID: 39816 RVA: 0x0023187C File Offset: 0x0022FA7C
|
||||
[Token(Token = "0x6009B88")]
|
||||
[Address(RVA = "0x22F0710", Offset = "0x22EF110", VA = "0x1822F0710")]
|
||||
private byte[] CalculateCmsKeyChecksum(byte[] key)
|
||||
{
|
||||
IDigest digest = this.sha1;
|
||||
int num = 0;
|
||||
num += num;
|
||||
num++;
|
||||
int num2 = 0;
|
||||
IDigest digest2 = this.sha1;
|
||||
if (num < num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
byte[] array = new byte[8];
|
||||
byte[] array2 = this.digest;
|
||||
int num3 = 0;
|
||||
int num4 = 0;
|
||||
ulong num5;
|
||||
Array.Copy(array2, num4, array, num3, (int)num5);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x06009B89 RID: 39817 RVA: 0x002318EC File Offset: 0x0022FAEC
|
||||
[Token(Token = "0x6009B89")]
|
||||
[Address(RVA = "0x22F08E0", Offset = "0x22EF2E0", VA = "0x1822F08E0")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x06009B8A RID: 39818 RVA: 0x00231908 File Offset: 0x0022FB08
|
||||
[Token(Token = "0x6009B8A")]
|
||||
[Address(RVA = "0x22F15C0", Offset = "0x22EFFC0", VA = "0x1822F15C0")]
|
||||
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: 0x06009B8B RID: 39819 RVA: 0x00231940 File Offset: 0x0022FB40
|
||||
[Token(Token = "0x6009B8B")]
|
||||
[Address(RVA = "0x22F1520", Offset = "0x22EFF20", VA = "0x1822F1520")]
|
||||
public DesEdeWrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x06009B8C RID: 39820 RVA: 0x00231970 File Offset: 0x0022FB70
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B8C")]
|
||||
[Address(RVA = "0x22F14C0", Offset = "0x22EFEC0", VA = "0x1822F14C0")]
|
||||
static DesEdeWrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
DesEdeWrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x04006600 RID: 26112
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006600")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x04006601 RID: 26113
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006601")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x04006602 RID: 26114
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006602")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x04006603 RID: 26115
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006603")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04006604 RID: 26116
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006604")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x04006605 RID: 26117
|
||||
[Token(Token = "0x4006605")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x04006606 RID: 26118
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006606")]
|
||||
private readonly IDigest sha1;
|
||||
|
||||
// Token: 0x04006607 RID: 26119
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006607")]
|
||||
private readonly byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,304 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B1 RID: 5809
|
||||
[Token(Token = "0x20016B1")]
|
||||
[StructLayout(3)]
|
||||
public class DesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B8D RID: 39821 RVA: 0x00231998 File Offset: 0x0022FB98
|
||||
[Token(Token = "0x6009B8D")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "10")]
|
||||
public virtual int[] GetWorkingKey()
|
||||
{
|
||||
return this.workingKey;
|
||||
}
|
||||
|
||||
// Token: 0x06009B8E RID: 39822 RVA: 0x002319AC File Offset: 0x0022FBAC
|
||||
[Token(Token = "0x6009B8E")]
|
||||
[Address(RVA = "0x22F23F0", Offset = "0x22F0DF0", VA = "0x1822F23F0", Slot = "11")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B8E)
|
||||
|
||||
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: 0x170018C7 RID: 6343
|
||||
// (get) Token: 0x06009B8F RID: 39823 RVA: 0x002319F4 File Offset: 0x0022FBF4
|
||||
[Token(Token = "0x170018C7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009B8F")]
|
||||
[Address(RVA = "0x22F29E0", Offset = "0x22F13E0", VA = "0x1822F29E0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018C8 RID: 6344
|
||||
// (get) Token: 0x06009B90 RID: 39824 RVA: 0x00231A08 File Offset: 0x0022FC08
|
||||
[Token(Token = "0x170018C8")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009B90")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009B91 RID: 39825 RVA: 0x00231A18 File Offset: 0x0022FC18
|
||||
[Token(Token = "0x6009B91")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009B92 RID: 39826 RVA: 0x00231A28 File Offset: 0x0022FC28
|
||||
[Token(Token = "0x6009B92")]
|
||||
[Address(RVA = "0x22F25B0", Offset = "0x22F0FB0", VA = "0x1822F25B0", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B92)
|
||||
|
||||
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: 0x06009B93 RID: 39827 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009B93")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "16")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009B94 RID: 39828 RVA: 0x00231A64 File Offset: 0x0022FC64
|
||||
[Token(Token = "0x6009B94")]
|
||||
[Address(RVA = "0x22F1CC0", Offset = "0x22F06C0", VA = "0x1822F1CC0")]
|
||||
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: 0x06009B95 RID: 39829 RVA: 0x00231B8C File Offset: 0x0022FD8C
|
||||
[Token(Token = "0x6009B95")]
|
||||
[Address(RVA = "0x22F1670", Offset = "0x22F0070", VA = "0x1822F1670")]
|
||||
internal static void DesFunc(int[] wKey, byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = 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;
|
||||
num += 4;
|
||||
}
|
||||
|
||||
// Token: 0x06009B96 RID: 39830 RVA: 0x00231BDC File Offset: 0x0022FDDC
|
||||
[Token(Token = "0x6009B96")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public DesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009B97 RID: 39831 RVA: 0x00231BF0 File Offset: 0x0022FDF0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009B97")]
|
||||
[Address(RVA = "0x22F26E0", Offset = "0x22F10E0", VA = "0x1822F26E0")]
|
||||
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: 0x04006608 RID: 26120
|
||||
[Token(Token = "0x4006608")]
|
||||
internal const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04006609 RID: 26121
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006609")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x0400660A RID: 26122
|
||||
[Token(Token = "0x400660A")]
|
||||
private static readonly short[] bytebit;
|
||||
|
||||
// Token: 0x0400660B RID: 26123
|
||||
[Token(Token = "0x400660B")]
|
||||
private static readonly int[] bigbyte;
|
||||
|
||||
// Token: 0x0400660C RID: 26124
|
||||
[Token(Token = "0x400660C")]
|
||||
private static readonly byte[] pc1;
|
||||
|
||||
// Token: 0x0400660D RID: 26125
|
||||
[Token(Token = "0x400660D")]
|
||||
private static readonly byte[] totrot;
|
||||
|
||||
// Token: 0x0400660E RID: 26126
|
||||
[Token(Token = "0x400660E")]
|
||||
private static readonly byte[] pc2;
|
||||
|
||||
// Token: 0x0400660F RID: 26127
|
||||
[Token(Token = "0x400660F")]
|
||||
private static readonly uint[] SP1;
|
||||
|
||||
// Token: 0x04006610 RID: 26128
|
||||
[Token(Token = "0x4006610")]
|
||||
private static readonly uint[] SP2;
|
||||
|
||||
// Token: 0x04006611 RID: 26129
|
||||
[Token(Token = "0x4006611")]
|
||||
private static readonly uint[] SP3;
|
||||
|
||||
// Token: 0x04006612 RID: 26130
|
||||
[Token(Token = "0x4006612")]
|
||||
private static readonly uint[] SP4;
|
||||
|
||||
// Token: 0x04006613 RID: 26131
|
||||
[Token(Token = "0x4006613")]
|
||||
private static readonly uint[] SP5;
|
||||
|
||||
// Token: 0x04006614 RID: 26132
|
||||
[Token(Token = "0x4006614")]
|
||||
private static readonly uint[] SP6;
|
||||
|
||||
// Token: 0x04006615 RID: 26133
|
||||
[Token(Token = "0x4006615")]
|
||||
private static readonly uint[] SP7;
|
||||
|
||||
// Token: 0x04006616 RID: 26134
|
||||
[Token(Token = "0x4006616")]
|
||||
private static readonly uint[] SP8;
|
||||
}
|
||||
}
|
||||
+869
@@ -0,0 +1,869 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B2 RID: 5810
|
||||
[Token(Token = "0x20016B2")]
|
||||
[StructLayout(3)]
|
||||
public class Dstu7624Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009B98 RID: 39832 RVA: 0x00231D5C File Offset: 0x0022FF5C
|
||||
[Token(Token = "0x6009B98")]
|
||||
[Address(RVA = "0x211DBB0", Offset = "0x211C5B0", VA = "0x18211DBB0")]
|
||||
public Dstu7624Engine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B98)
|
||||
|
||||
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: 0x06009B99 RID: 39833 RVA: 0x00231D9C File Offset: 0x0022FF9C
|
||||
[Token(Token = "0x6009B99")]
|
||||
[Address(RVA = "0x211A9E0", Offset = "0x21193E0", VA = "0x18211A9E0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B99)
|
||||
|
||||
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: 0x06009B9A RID: 39834 RVA: 0x00231F5C File Offset: 0x0023015C
|
||||
[Token(Token = "0x6009B9A")]
|
||||
[Address(RVA = "0x211D580", Offset = "0x211BF80", VA = "0x18211D580")]
|
||||
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: 0x06009B9B RID: 39835 RVA: 0x002320CC File Offset: 0x002302CC
|
||||
[Token(Token = "0x6009B9B")]
|
||||
[Address(RVA = "0x211CFA0", Offset = "0x211B9A0", VA = "0x18211CFA0")]
|
||||
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: 0x06009B9C RID: 39836 RVA: 0x00232310 File Offset: 0x00230510
|
||||
[Token(Token = "0x6009B9C")]
|
||||
[Address(RVA = "0x211D8A0", Offset = "0x211C2A0", VA = "0x18211D8A0")]
|
||||
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: 0x06009B9D RID: 39837 RVA: 0x00232360 File Offset: 0x00230560
|
||||
[Token(Token = "0x6009B9D")]
|
||||
[Address(RVA = "0x211BD10", Offset = "0x211A710", VA = "0x18211BD10", Slot = "11")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009B9D)
|
||||
|
||||
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: 0x06009B9E RID: 39838 RVA: 0x002324A4 File Offset: 0x002306A4
|
||||
[Token(Token = "0x6009B9E")]
|
||||
[Address(RVA = "0x211A8E0", Offset = "0x21192E0", VA = "0x18211A8E0")]
|
||||
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: 0x06009B9F RID: 39839 RVA: 0x002324F0 File Offset: 0x002306F0
|
||||
[Token(Token = "0x6009B9F")]
|
||||
[Address(RVA = "0x211A190", Offset = "0x2118B90", VA = "0x18211A190")]
|
||||
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: 0x06009BA0 RID: 39840 RVA: 0x0023252C File Offset: 0x0023072C
|
||||
[Token(Token = "0x6009BA0")]
|
||||
[Address(RVA = "0x2119B50", Offset = "0x2118550", VA = "0x182119B50")]
|
||||
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: 0x06009BA1 RID: 39841 RVA: 0x002325EC File Offset: 0x002307EC
|
||||
[Token(Token = "0x6009BA1")]
|
||||
[Address(RVA = "0x211A290", Offset = "0x2118C90", VA = "0x18211A290")]
|
||||
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: 0x06009BA2 RID: 39842 RVA: 0x00232684 File Offset: 0x00230884
|
||||
[Token(Token = "0x6009BA2")]
|
||||
[Address(RVA = "0x211CBF0", Offset = "0x211B5F0", VA = "0x18211CBF0")]
|
||||
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: 0x06009BA3 RID: 39843 RVA: 0x002326EC File Offset: 0x002308EC
|
||||
[Token(Token = "0x6009BA3")]
|
||||
[Address(RVA = "0x211B470", Offset = "0x2119E70", VA = "0x18211B470")]
|
||||
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: 0x06009BA4 RID: 39844 RVA: 0x00232754 File Offset: 0x00230954
|
||||
[Token(Token = "0x6009BA4")]
|
||||
[Address(RVA = "0x211C560", Offset = "0x211AF60", VA = "0x18211C560")]
|
||||
private void ShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BA4)
|
||||
|
||||
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: 0x06009BA5 RID: 39845 RVA: 0x002328B4 File Offset: 0x00230AB4
|
||||
[Token(Token = "0x6009BA5")]
|
||||
[Address(RVA = "0x211ADF0", Offset = "0x21197F0", VA = "0x18211ADF0")]
|
||||
private void InvShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BA5)
|
||||
|
||||
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: 0x06009BA6 RID: 39846 RVA: 0x00232A30 File Offset: 0x00230C30
|
||||
[Token(Token = "0x6009BA6")]
|
||||
[Address(RVA = "0x2119AC0", Offset = "0x21184C0", VA = "0x182119AC0")]
|
||||
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: 0x06009BA7 RID: 39847 RVA: 0x00232A68 File Offset: 0x00230C68
|
||||
[Token(Token = "0x6009BA7")]
|
||||
[Address(RVA = "0x211CF10", Offset = "0x211B910", VA = "0x18211CF10")]
|
||||
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: 0x06009BA8 RID: 39848 RVA: 0x00232AA0 File Offset: 0x00230CA0
|
||||
[Token(Token = "0x6009BA8")]
|
||||
[Address(RVA = "0x211D930", Offset = "0x211C330", VA = "0x18211D930")]
|
||||
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: 0x06009BA9 RID: 39849 RVA: 0x00232AD8 File Offset: 0x00230CD8
|
||||
[Token(Token = "0x6009BA9")]
|
||||
[Address(RVA = "0x211B9A0", Offset = "0x211A3A0", VA = "0x18211B9A0")]
|
||||
private static ulong MixColumn(ulong c)
|
||||
{
|
||||
return c;
|
||||
}
|
||||
|
||||
// Token: 0x06009BAA RID: 39850 RVA: 0x00232AE8 File Offset: 0x00230CE8
|
||||
[Token(Token = "0x6009BAA")]
|
||||
[Address(RVA = "0x211BBB0", Offset = "0x211A5B0", VA = "0x18211BBB0")]
|
||||
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: 0x06009BAB RID: 39851 RVA: 0x00232B28 File Offset: 0x00230D28
|
||||
[Token(Token = "0x6009BAB")]
|
||||
[Address(RVA = "0x211B790", Offset = "0x211A190", VA = "0x18211B790")]
|
||||
private static ulong MixColumnInv(ulong c)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BAB)
|
||||
|
||||
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: 0x06009BAC RID: 39852 RVA: 0x00232B54 File Offset: 0x00230D54
|
||||
[Token(Token = "0x6009BAC")]
|
||||
[Address(RVA = "0x211BAD0", Offset = "0x211A4D0", VA = "0x18211BAD0")]
|
||||
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: 0x06009BAD RID: 39853 RVA: 0x00232B94 File Offset: 0x00230D94
|
||||
[Token(Token = "0x6009BAD")]
|
||||
[Address(RVA = "0x211BCE0", Offset = "0x211A6E0", VA = "0x18211BCE0")]
|
||||
private static ulong MulX(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BAD)
|
||||
|
||||
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: 0x06009BAE RID: 39854 RVA: 0x00232BA8 File Offset: 0x00230DA8
|
||||
[Token(Token = "0x6009BAE")]
|
||||
[Address(RVA = "0x211BC90", Offset = "0x211A690", VA = "0x18211BC90")]
|
||||
private static ulong MulX2(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BAE)
|
||||
|
||||
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: 0x06009BAF RID: 39855 RVA: 0x00232BBC File Offset: 0x00230DBC
|
||||
[Token(Token = "0x6009BAF")]
|
||||
[Address(RVA = "0x211C540", Offset = "0x211AF40", VA = "0x18211C540")]
|
||||
private static ulong Rotate(int n, ulong x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BB0 RID: 39856 RVA: 0x00232BCC File Offset: 0x00230DCC
|
||||
[Token(Token = "0x6009BB0")]
|
||||
[Address(RVA = "0x211C050", Offset = "0x211AA50", VA = "0x18211C050")]
|
||||
private void RotateLeft(ulong[] x, ulong[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BB0)
|
||||
|
||||
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: 0x170018C9 RID: 6345
|
||||
// (get) Token: 0x06009BB1 RID: 39857 RVA: 0x00232D24 File Offset: 0x00230F24
|
||||
[Token(Token = "0x170018C9")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BB1")]
|
||||
[Address(RVA = "0x211DC60", Offset = "0x211C660", VA = "0x18211DC60", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DSTU7624";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BB2 RID: 39858 RVA: 0x00232D38 File Offset: 0x00230F38
|
||||
[Token(Token = "0x6009BB2")]
|
||||
[Address(RVA = "0x211A9D0", Offset = "0x21193D0", VA = "0x18211A9D0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.wordsInBlock;
|
||||
}
|
||||
|
||||
// Token: 0x170018CA RID: 6346
|
||||
// (get) Token: 0x06009BB3 RID: 39859 RVA: 0x00232D4C File Offset: 0x00230F4C
|
||||
[Token(Token = "0x170018CA")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009BB3")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "14")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BB4 RID: 39860 RVA: 0x00232D5C File Offset: 0x00230F5C
|
||||
[Token(Token = "0x6009BB4")]
|
||||
[Address(RVA = "0x211C020", Offset = "0x211AA20", VA = "0x18211C020", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
int length = array.Length;
|
||||
int num = 0;
|
||||
Array.Clear(array, num, length);
|
||||
}
|
||||
|
||||
// Token: 0x06009BB5 RID: 39861 RVA: 0x00232D88 File Offset: 0x00230F88
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009BB5")]
|
||||
[Address(RVA = "0x211D9C0", Offset = "0x211C3C0", VA = "0x18211D9C0")]
|
||||
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: 0x04006617 RID: 26135
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006617")]
|
||||
private ulong[] internalState;
|
||||
|
||||
// Token: 0x04006618 RID: 26136
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006618")]
|
||||
private ulong[] workingKey;
|
||||
|
||||
// Token: 0x04006619 RID: 26137
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006619")]
|
||||
private ulong[][] roundKeys;
|
||||
|
||||
// Token: 0x0400661A RID: 26138
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400661A")]
|
||||
private int wordsInBlock;
|
||||
|
||||
// Token: 0x0400661B RID: 26139
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x400661B")]
|
||||
private int wordsInKey;
|
||||
|
||||
// Token: 0x0400661C RID: 26140
|
||||
[Token(Token = "0x400661C")]
|
||||
private const int ROUNDS_128 = 10;
|
||||
|
||||
// Token: 0x0400661D RID: 26141
|
||||
[Token(Token = "0x400661D")]
|
||||
private const int ROUNDS_256 = 14;
|
||||
|
||||
// Token: 0x0400661E RID: 26142
|
||||
[Token(Token = "0x400661E")]
|
||||
private const int ROUNDS_512 = 18;
|
||||
|
||||
// Token: 0x0400661F RID: 26143
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400661F")]
|
||||
private int roundsAmount;
|
||||
|
||||
// Token: 0x04006620 RID: 26144
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x4006620")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006621 RID: 26145
|
||||
[Token(Token = "0x4006621")]
|
||||
private const ulong mdsMatrix = 290207332435296513UL;
|
||||
|
||||
// Token: 0x04006622 RID: 26146
|
||||
[Token(Token = "0x4006622")]
|
||||
private const ulong mdsInvMatrix = 14616231584692868525UL;
|
||||
|
||||
// Token: 0x04006623 RID: 26147
|
||||
[Token(Token = "0x4006623")]
|
||||
private static readonly byte[] S0;
|
||||
|
||||
// Token: 0x04006624 RID: 26148
|
||||
[Token(Token = "0x4006624")]
|
||||
private static readonly byte[] S1;
|
||||
|
||||
// Token: 0x04006625 RID: 26149
|
||||
[Token(Token = "0x4006625")]
|
||||
private static readonly byte[] S2;
|
||||
|
||||
// Token: 0x04006626 RID: 26150
|
||||
[Token(Token = "0x4006626")]
|
||||
private static readonly byte[] S3;
|
||||
|
||||
// Token: 0x04006627 RID: 26151
|
||||
[Token(Token = "0x4006627")]
|
||||
private static readonly byte[] T0;
|
||||
|
||||
// Token: 0x04006628 RID: 26152
|
||||
[Token(Token = "0x4006628")]
|
||||
private static readonly byte[] T1;
|
||||
|
||||
// Token: 0x04006629 RID: 26153
|
||||
[Token(Token = "0x4006629")]
|
||||
private static readonly byte[] T2;
|
||||
|
||||
// Token: 0x0400662A RID: 26154
|
||||
[Token(Token = "0x400662A")]
|
||||
private static readonly byte[] T3;
|
||||
}
|
||||
}
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B3 RID: 5811
|
||||
[Token(Token = "0x20016B3")]
|
||||
[StructLayout(3)]
|
||||
public class Dstu7624WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x06009BB6 RID: 39862 RVA: 0x00232E84 File Offset: 0x00231084
|
||||
[Token(Token = "0x6009BB6")]
|
||||
[Address(RVA = "0x211EBF0", Offset = "0x211D5F0", VA = "0x18211EBF0")]
|
||||
public Dstu7624WrapEngine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BB6)
|
||||
|
||||
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: 0x170018CB RID: 6347
|
||||
// (get) Token: 0x06009BB7 RID: 39863 RVA: 0x00232EE8 File Offset: 0x002310E8
|
||||
[Token(Token = "0x170018CB")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BB7")]
|
||||
[Address(RVA = "0x211ECF0", Offset = "0x211D6F0", VA = "0x18211ECF0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Dstu7624WrapEngine";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BB8 RID: 39864 RVA: 0x00232EFC File Offset: 0x002310FC
|
||||
[Token(Token = "0x6009BB8")]
|
||||
[Address(RVA = "0x211DC90", Offset = "0x211C690", VA = "0x18211DC90", Slot = "5")]
|
||||
public void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BB8)
|
||||
|
||||
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: 0x06009BB9 RID: 39865 RVA: 0x00232F44 File Offset: 0x00231144
|
||||
[Token(Token = "0x6009BB9")]
|
||||
[Address(RVA = "0x211E540", Offset = "0x211CF40", VA = "0x18211E540", Slot = "6")]
|
||||
public byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BB9)
|
||||
|
||||
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: 0x06009BBA RID: 39866 RVA: 0x002331E8 File Offset: 0x002313E8
|
||||
[Token(Token = "0x6009BBA")]
|
||||
[Address(RVA = "0x211DDC0", Offset = "0x211C7C0", VA = "0x18211DDC0", Slot = "7")]
|
||||
public byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BBA)
|
||||
|
||||
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: 0x0400662B RID: 26155
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400662B")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x0400662C RID: 26156
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400662C")]
|
||||
private Dstu7624Engine engine;
|
||||
|
||||
// Token: 0x0400662D RID: 26157
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400662D")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400662E RID: 26158
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x400662E")]
|
||||
private int blockSize;
|
||||
}
|
||||
}
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B4 RID: 5812
|
||||
[Token(Token = "0x20016B4")]
|
||||
[StructLayout(3)]
|
||||
public class ElGamalEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x170018CC RID: 6348
|
||||
// (get) Token: 0x06009BBB RID: 39867 RVA: 0x00233494 File Offset: 0x00231694
|
||||
[Token(Token = "0x170018CC")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BBB")]
|
||||
[Address(RVA = "0x211F580", Offset = "0x211DF80", VA = "0x18211F580", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "ElGamal";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BBC RID: 39868 RVA: 0x002334A8 File Offset: 0x002316A8
|
||||
[Token(Token = "0x6009BBC")]
|
||||
[Address(RVA = "0x211ED80", Offset = "0x211D780", VA = "0x18211ED80", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BBC)
|
||||
|
||||
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: 0x06009BBD RID: 39869 RVA: 0x00233580 File Offset: 0x00231780
|
||||
[Token(Token = "0x6009BBD")]
|
||||
[Address(RVA = "0x211ED20", Offset = "0x211D720", VA = "0x18211ED20", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06009BBE RID: 39870 RVA: 0x002335A8 File Offset: 0x002317A8
|
||||
[Token(Token = "0x6009BBE")]
|
||||
[Address(RVA = "0x211ED50", Offset = "0x211D750", VA = "0x18211ED50", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
return num;
|
||||
}
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x06009BBF RID: 39871 RVA: 0x002335D0 File Offset: 0x002317D0
|
||||
[Token(Token = "0x6009BBF")]
|
||||
[Address(RVA = "0x211F070", Offset = "0x211DA70", VA = "0x18211F070", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BBF)
|
||||
|
||||
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: 0x06009BC0 RID: 39872 RVA: 0x00233758 File Offset: 0x00231958
|
||||
[Token(Token = "0x6009BC0")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public ElGamalEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400662F RID: 26159
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400662F")]
|
||||
private ElGamalKeyParameters key;
|
||||
|
||||
// Token: 0x04006630 RID: 26160
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006630")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x04006631 RID: 26161
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006631")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006632 RID: 26162
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4006632")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
+403
@@ -0,0 +1,403 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B5 RID: 5813
|
||||
[Token(Token = "0x20016B5")]
|
||||
[StructLayout(3)]
|
||||
public class Gost28147Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009BC1 RID: 39873 RVA: 0x0023376C File Offset: 0x0023196C
|
||||
[Token(Token = "0x6009BC1")]
|
||||
[Address(RVA = "0x21205A0", Offset = "0x211EFA0", VA = "0x1821205A0")]
|
||||
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: 0x06009BC2 RID: 39874 RVA: 0x0023390C File Offset: 0x00231B0C
|
||||
[Token(Token = "0x6009BC2")]
|
||||
[Address(RVA = "0x211F5B0", Offset = "0x211DFB0", VA = "0x18211F5B0")]
|
||||
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: 0x06009BC3 RID: 39875 RVA: 0x00233944 File Offset: 0x00231B44
|
||||
[Token(Token = "0x6009BC3")]
|
||||
[Address(RVA = "0x21208D0", Offset = "0x211F2D0", VA = "0x1821208D0")]
|
||||
public Gost28147Engine()
|
||||
{
|
||||
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
|
||||
this.S = sbox_Default;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009BC4 RID: 39876 RVA: 0x00233964 File Offset: 0x00231B64
|
||||
[Token(Token = "0x6009BC4")]
|
||||
[Address(RVA = "0x2120190", Offset = "0x211EB90", VA = "0x182120190", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BC4)
|
||||
|
||||
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: 0x170018CD RID: 6349
|
||||
// (get) Token: 0x06009BC5 RID: 39877 RVA: 0x002339E0 File Offset: 0x00231BE0
|
||||
[Token(Token = "0x170018CD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BC5")]
|
||||
[Address(RVA = "0x2120A50", Offset = "0x211F450", VA = "0x182120A50", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Gost28147";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018CE RID: 6350
|
||||
// (get) Token: 0x06009BC6 RID: 39878 RVA: 0x002339F4 File Offset: 0x00231BF4
|
||||
[Token(Token = "0x170018CE")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009BC6")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BC7 RID: 39879 RVA: 0x00233A04 File Offset: 0x00231C04
|
||||
[Token(Token = "0x6009BC7")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009BC8 RID: 39880 RVA: 0x00233A14 File Offset: 0x00231C14
|
||||
[Token(Token = "0x6009BC8")]
|
||||
[Address(RVA = "0x2120490", Offset = "0x211EE90", VA = "0x182120490", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BC8)
|
||||
|
||||
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: 0x06009BC9 RID: 39881 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009BC9")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009BCA RID: 39882 RVA: 0x00233A48 File Offset: 0x00231C48
|
||||
[Token(Token = "0x6009BCA")]
|
||||
[Address(RVA = "0x2120940", Offset = "0x211F340", VA = "0x182120940")]
|
||||
private int[] generateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BCA)
|
||||
|
||||
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: 0x06009BCB RID: 39883 RVA: 0x00233A94 File Offset: 0x00231C94
|
||||
[Token(Token = "0x6009BCB")]
|
||||
[Address(RVA = "0x211FF50", Offset = "0x211E950", VA = "0x18211FF50")]
|
||||
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: 0x06009BCC RID: 39884 RVA: 0x00233AD0 File Offset: 0x00231CD0
|
||||
[Token(Token = "0x6009BCC")]
|
||||
[Address(RVA = "0x211FBB0", Offset = "0x211E5B0", VA = "0x18211FBB0")]
|
||||
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: 0x06009BCD RID: 39885 RVA: 0x00233B80 File Offset: 0x00231D80
|
||||
[Token(Token = "0x6009BCD")]
|
||||
[Address(RVA = "0x20F0850", Offset = "0x20EF250", VA = "0x1820F0850")]
|
||||
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: 0x06009BCE RID: 39886 RVA: 0x00233BBC File Offset: 0x00231DBC
|
||||
[Token(Token = "0x6009BCE")]
|
||||
[Address(RVA = "0x20F0D90", Offset = "0x20EF790", VA = "0x1820F0D90")]
|
||||
private static void intTobytes(int num, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num2 = outOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x06009BCF RID: 39887 RVA: 0x00233BD4 File Offset: 0x00231DD4
|
||||
[Token(Token = "0x6009BCF")]
|
||||
[Address(RVA = "0x211FA70", Offset = "0x211E470", VA = "0x18211FA70")]
|
||||
public static byte[] GetSBox(string sBoxName)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BCF)
|
||||
|
||||
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: 0x06009BD0 RID: 39888 RVA: 0x00233C08 File Offset: 0x00231E08
|
||||
[Token(Token = "0x6009BD0")]
|
||||
[Address(RVA = "0x211F6E0", Offset = "0x211E0E0", VA = "0x18211F6E0")]
|
||||
public static string GetSBoxName(byte[] sBox)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BD0)
|
||||
|
||||
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_7E:
|
||||
stloc:ArgumentException(var_8_88, 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.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: 0x04006633 RID: 26163
|
||||
[Token(Token = "0x4006633")]
|
||||
private const int BlockSize = 8;
|
||||
|
||||
// Token: 0x04006634 RID: 26164
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006634")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04006635 RID: 26165
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006635")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006636 RID: 26166
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006636")]
|
||||
private byte[] S;
|
||||
|
||||
// Token: 0x04006637 RID: 26167
|
||||
[Token(Token = "0x4006637")]
|
||||
private static readonly byte[] Sbox_Default;
|
||||
|
||||
// Token: 0x04006638 RID: 26168
|
||||
[Token(Token = "0x4006638")]
|
||||
private static readonly byte[] ESbox_Test;
|
||||
|
||||
// Token: 0x04006639 RID: 26169
|
||||
[Token(Token = "0x4006639")]
|
||||
private static readonly byte[] ESbox_A;
|
||||
|
||||
// Token: 0x0400663A RID: 26170
|
||||
[Token(Token = "0x400663A")]
|
||||
private static readonly byte[] ESbox_B;
|
||||
|
||||
// Token: 0x0400663B RID: 26171
|
||||
[Token(Token = "0x400663B")]
|
||||
private static readonly byte[] ESbox_C;
|
||||
|
||||
// Token: 0x0400663C RID: 26172
|
||||
[Token(Token = "0x400663C")]
|
||||
private static readonly byte[] ESbox_D;
|
||||
|
||||
// Token: 0x0400663D RID: 26173
|
||||
[Token(Token = "0x400663D")]
|
||||
private static readonly byte[] DSbox_Test;
|
||||
|
||||
// Token: 0x0400663E RID: 26174
|
||||
[Token(Token = "0x400663E")]
|
||||
private static readonly byte[] DSbox_A;
|
||||
|
||||
// Token: 0x0400663F RID: 26175
|
||||
[Token(Token = "0x400663F")]
|
||||
private static readonly IDictionary sBoxes;
|
||||
}
|
||||
}
|
||||
+345
@@ -0,0 +1,345 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B6 RID: 5814
|
||||
[Token(Token = "0x20016B6")]
|
||||
[StructLayout(3)]
|
||||
public class HC128Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x06009BD1 RID: 39889 RVA: 0x00233CA0 File Offset: 0x00231EA0
|
||||
[Token(Token = "0x6009BD1")]
|
||||
[Address(RVA = "0x2120A90", Offset = "0x211F490", VA = "0x182120A90")]
|
||||
private static uint F1(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD2 RID: 39890 RVA: 0x00233CB0 File Offset: 0x00231EB0
|
||||
[Token(Token = "0x6009BD2")]
|
||||
[Address(RVA = "0x2120AC0", Offset = "0x211F4C0", VA = "0x182120AC0")]
|
||||
private static uint F2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD3 RID: 39891 RVA: 0x00233CC0 File Offset: 0x00231EC0
|
||||
[Token(Token = "0x6009BD3")]
|
||||
[Address(RVA = "0x2120AF0", Offset = "0x211F4F0", VA = "0x182120AF0")]
|
||||
private uint G1(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD4 RID: 39892 RVA: 0x00233CD0 File Offset: 0x00231ED0
|
||||
[Token(Token = "0x6009BD4")]
|
||||
[Address(RVA = "0x2120B20", Offset = "0x211F520", VA = "0x182120B20")]
|
||||
private uint G2(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD5 RID: 39893 RVA: 0x00233CE0 File Offset: 0x00231EE0
|
||||
[Token(Token = "0x6009BD5")]
|
||||
[Address(RVA = "0x21009B0", Offset = "0x20FF3B0", VA = "0x1821009B0")]
|
||||
private static uint RotateLeft(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD6 RID: 39894 RVA: 0x00233CF0 File Offset: 0x00231EF0
|
||||
[Token(Token = "0x6009BD6")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BD7 RID: 39895 RVA: 0x00233D00 File Offset: 0x00231F00
|
||||
[Token(Token = "0x6009BD7")]
|
||||
[Address(RVA = "0x2120BC0", Offset = "0x211F5C0", VA = "0x182120BC0")]
|
||||
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: 0x06009BD8 RID: 39896 RVA: 0x00233D38 File Offset: 0x00231F38
|
||||
[Token(Token = "0x6009BD8")]
|
||||
[Address(RVA = "0x2120C30", Offset = "0x211F630", VA = "0x182120C30")]
|
||||
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: 0x06009BD9 RID: 39897 RVA: 0x00233D70 File Offset: 0x00231F70
|
||||
[Token(Token = "0x6009BD9")]
|
||||
[Address(RVA = "0x21213D0", Offset = "0x211FDD0", VA = "0x1821213D0")]
|
||||
private static uint Mod1024(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BDA RID: 39898 RVA: 0x00233D80 File Offset: 0x00231F80
|
||||
[Token(Token = "0x6009BDA")]
|
||||
[Address(RVA = "0x21213E0", Offset = "0x211FDE0", VA = "0x1821213E0")]
|
||||
private static uint Mod512(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BDB RID: 39899 RVA: 0x00233D90 File Offset: 0x00231F90
|
||||
[Token(Token = "0x6009BDB")]
|
||||
[Address(RVA = "0x2120A80", Offset = "0x211F480", VA = "0x182120A80")]
|
||||
private static uint Dim(uint x, uint y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BDC RID: 39900 RVA: 0x00233DA0 File Offset: 0x00231FA0
|
||||
[Token(Token = "0x6009BDC")]
|
||||
[Address(RVA = "0x2121660", Offset = "0x2120060", VA = "0x182121660")]
|
||||
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: 0x06009BDD RID: 39901 RVA: 0x00233EB8 File Offset: 0x002320B8
|
||||
[Token(Token = "0x6009BDD")]
|
||||
[Address(RVA = "0x2120CA0", Offset = "0x211F6A0", VA = "0x182120CA0")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BDD)
|
||||
|
||||
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: 0x170018CF RID: 6351
|
||||
// (get) Token: 0x06009BDE RID: 39902 RVA: 0x00233FFC File Offset: 0x002321FC
|
||||
[Token(Token = "0x170018CF")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BDE")]
|
||||
[Address(RVA = "0x2121AA0", Offset = "0x21204A0", VA = "0x182121AA0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-128";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BDF RID: 39903 RVA: 0x00234010 File Offset: 0x00232210
|
||||
[Token(Token = "0x6009BDF")]
|
||||
[Address(RVA = "0x21210B0", Offset = "0x211FAB0", VA = "0x1821210B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BDF)
|
||||
|
||||
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: 0x06009BE0 RID: 39904 RVA: 0x002340B0 File Offset: 0x002322B0
|
||||
[Token(Token = "0x6009BE0")]
|
||||
[Address(RVA = "0x2120B50", Offset = "0x211F550", VA = "0x182120B50")]
|
||||
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: 0x06009BE1 RID: 39905 RVA: 0x002340FC File Offset: 0x002322FC
|
||||
[Token(Token = "0x6009BE1")]
|
||||
[Address(RVA = "0x21213F0", Offset = "0x211FDF0", VA = "0x1821213F0", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BE1)
|
||||
|
||||
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: 0x06009BE2 RID: 39906 RVA: 0x00234168 File Offset: 0x00232368
|
||||
[Token(Token = "0x6009BE2")]
|
||||
[Address(RVA = "0x21215D0", Offset = "0x211FFD0", VA = "0x1821215D0", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x06009BE3 RID: 39907 RVA: 0x0023417C File Offset: 0x0023237C
|
||||
[Token(Token = "0x6009BE3")]
|
||||
[Address(RVA = "0x21215E0", Offset = "0x211FFE0", VA = "0x1821215E0", 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: 0x06009BE4 RID: 39908 RVA: 0x002341C8 File Offset: 0x002323C8
|
||||
[Token(Token = "0x6009BE4")]
|
||||
[Address(RVA = "0x2121A20", Offset = "0x2120420", VA = "0x182121A20")]
|
||||
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: 0x04006640 RID: 26176
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006640")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x04006641 RID: 26177
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006641")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x04006642 RID: 26178
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006642")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x04006643 RID: 26179
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006643")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x04006644 RID: 26180
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006644")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04006645 RID: 26181
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006645")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04006646 RID: 26182
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006646")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x04006647 RID: 26183
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4006647")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+268
@@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B7 RID: 5815
|
||||
[Token(Token = "0x20016B7")]
|
||||
[StructLayout(3)]
|
||||
public class HC256Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x06009BE5 RID: 39909 RVA: 0x00234210 File Offset: 0x00232410
|
||||
[Token(Token = "0x6009BE5")]
|
||||
[Address(RVA = "0x2122530", Offset = "0x2120F30", VA = "0x182122530")]
|
||||
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: 0x06009BE6 RID: 39910 RVA: 0x00234370 File Offset: 0x00232570
|
||||
[Token(Token = "0x6009BE6")]
|
||||
[Address(RVA = "0x2121B40", Offset = "0x2120540", VA = "0x182121B40")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BE6)
|
||||
|
||||
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: 0x170018D0 RID: 6352
|
||||
// (get) Token: 0x06009BE7 RID: 39911 RVA: 0x00234538 File Offset: 0x00232738
|
||||
[Token(Token = "0x170018D0")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BE7")]
|
||||
[Address(RVA = "0x2122AB0", Offset = "0x21214B0", VA = "0x182122AB0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-256";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BE8 RID: 39912 RVA: 0x0023454C File Offset: 0x0023274C
|
||||
[Token(Token = "0x6009BE8")]
|
||||
[Address(RVA = "0x2121FA0", Offset = "0x21209A0", VA = "0x182121FA0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BE8)
|
||||
|
||||
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: 0x06009BE9 RID: 39913 RVA: 0x002345EC File Offset: 0x002327EC
|
||||
[Token(Token = "0x6009BE9")]
|
||||
[Address(RVA = "0x2121AD0", Offset = "0x21204D0", VA = "0x182121AD0")]
|
||||
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: 0x06009BEA RID: 39914 RVA: 0x00234638 File Offset: 0x00232838
|
||||
[Token(Token = "0x6009BEA")]
|
||||
[Address(RVA = "0x21222C0", Offset = "0x2120CC0", VA = "0x1821222C0", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BEA)
|
||||
|
||||
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: 0x06009BEB RID: 39915 RVA: 0x002346A4 File Offset: 0x002328A4
|
||||
[Token(Token = "0x6009BEB")]
|
||||
[Address(RVA = "0x21224A0", Offset = "0x2120EA0", VA = "0x1821224A0", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x06009BEC RID: 39916 RVA: 0x002346B8 File Offset: 0x002328B8
|
||||
[Token(Token = "0x6009BEC")]
|
||||
[Address(RVA = "0x21224B0", Offset = "0x2120EB0", VA = "0x1821224B0", 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: 0x06009BED RID: 39917 RVA: 0x00234704 File Offset: 0x00232904
|
||||
[Token(Token = "0x6009BED")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009BEE RID: 39918 RVA: 0x00234714 File Offset: 0x00232914
|
||||
[Token(Token = "0x6009BEE")]
|
||||
[Address(RVA = "0x2122A30", Offset = "0x2121430", VA = "0x182122A30")]
|
||||
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: 0x04006648 RID: 26184
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006648")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x04006649 RID: 26185
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006649")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x0400664A RID: 26186
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400664A")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x0400664B RID: 26187
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400664B")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x0400664C RID: 26188
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400664C")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x0400664D RID: 26189
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400664D")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x0400664E RID: 26190
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400664E")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x0400664F RID: 26191
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400664F")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+363
@@ -0,0 +1,363 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B9 RID: 5817
|
||||
[Token(Token = "0x20016B9")]
|
||||
[StructLayout(3)]
|
||||
public class IdeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009BF9 RID: 39929 RVA: 0x00234D40 File Offset: 0x00232F40
|
||||
[Token(Token = "0x6009BF9")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public IdeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009BFA RID: 39930 RVA: 0x00234D54 File Offset: 0x00232F54
|
||||
[Token(Token = "0x6009BFA")]
|
||||
[Address(RVA = "0x2123440", Offset = "0x2121E40", VA = "0x182123440", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BFA)
|
||||
|
||||
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: 0x170018D2 RID: 6354
|
||||
// (get) Token: 0x06009BFB RID: 39931 RVA: 0x00234DAC File Offset: 0x00232FAC
|
||||
[Token(Token = "0x170018D2")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BFB")]
|
||||
[Address(RVA = "0x21241B0", Offset = "0x2122BB0", VA = "0x1821241B0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "IDEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018D3 RID: 6355
|
||||
// (get) Token: 0x06009BFC RID: 39932 RVA: 0x00234DC0 File Offset: 0x00232FC0
|
||||
[Token(Token = "0x170018D3")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009BFC")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BFD RID: 39933 RVA: 0x00234DD0 File Offset: 0x00232FD0
|
||||
[Token(Token = "0x6009BFD")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009BFE RID: 39934 RVA: 0x00234DE0 File Offset: 0x00232FE0
|
||||
[Token(Token = "0x6009BFE")]
|
||||
[Address(RVA = "0x2123FF0", Offset = "0x21229F0", VA = "0x182123FF0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BFE)
|
||||
|
||||
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: 0x06009BFF RID: 39935 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009BFF")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009C00 RID: 39936 RVA: 0x00234E14 File Offset: 0x00233014
|
||||
[Token(Token = "0x6009C00")]
|
||||
[Address(RVA = "0x2122B40", Offset = "0x2121540", VA = "0x182122B40")]
|
||||
private int BytesToWord(byte[] input, int inOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C01 RID: 39937 RVA: 0x00234E34 File Offset: 0x00233034
|
||||
[Token(Token = "0x6009C01")]
|
||||
[Address(RVA = "0x2124100", Offset = "0x2122B00", VA = "0x182124100")]
|
||||
private void WordToBytes(int word, byte[] outBytes, int outOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009C02 RID: 39938 RVA: 0x00234E48 File Offset: 0x00233048
|
||||
[Token(Token = "0x6009C02")]
|
||||
[Address(RVA = "0x2123ED0", Offset = "0x21228D0", VA = "0x182123ED0")]
|
||||
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: 0x06009C03 RID: 39939 RVA: 0x00234E90 File Offset: 0x00233090
|
||||
[Token(Token = "0x6009C03")]
|
||||
[Address(RVA = "0x2122F00", Offset = "0x2121900", VA = "0x182122F00")]
|
||||
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: 0x06009C04 RID: 39940 RVA: 0x00234F58 File Offset: 0x00233158
|
||||
[Token(Token = "0x6009C04")]
|
||||
[Address(RVA = "0x2122BA0", Offset = "0x21215A0", VA = "0x182122BA0")]
|
||||
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: 0x06009C05 RID: 39941 RVA: 0x00235004 File Offset: 0x00233204
|
||||
[Token(Token = "0x6009C05")]
|
||||
[Address(RVA = "0x2123D50", Offset = "0x2122750", VA = "0x182123D50")]
|
||||
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: 0x06009C06 RID: 39942 RVA: 0x00235044 File Offset: 0x00233244
|
||||
[Token(Token = "0x6009C06")]
|
||||
[Address(RVA = "0x2122AE0", Offset = "0x21214E0", VA = "0x182122AE0")]
|
||||
private int AddInv(int x)
|
||||
{
|
||||
return IdeaEngine.MASK;
|
||||
}
|
||||
|
||||
// Token: 0x06009C07 RID: 39943 RVA: 0x00235058 File Offset: 0x00233258
|
||||
[Token(Token = "0x6009C07")]
|
||||
[Address(RVA = "0x21235F0", Offset = "0x2121FF0", VA = "0x1821235F0")]
|
||||
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: 0x06009C08 RID: 39944 RVA: 0x0023520C File Offset: 0x0023340C
|
||||
[Token(Token = "0x6009C08")]
|
||||
[Address(RVA = "0x2122EC0", Offset = "0x21218C0", VA = "0x182122EC0")]
|
||||
private int[] GenerateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
int[] array = this.ExpandKey(userKey);
|
||||
if (!forEncryption)
|
||||
{
|
||||
int[] array2 = this.InvertKey(array);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0400665B RID: 26203
|
||||
[Token(Token = "0x400665B")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x0400665C RID: 26204
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400665C")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x0400665D RID: 26205
|
||||
[Token(Token = "0x400665D")]
|
||||
private static readonly int MASK;
|
||||
|
||||
// Token: 0x0400665E RID: 26206
|
||||
[Token(Token = "0x400665E")]
|
||||
private static readonly int BASE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016BA RID: 5818
|
||||
[Token(Token = "0x20016BA")]
|
||||
[StructLayout(3)]
|
||||
public class IesEngine
|
||||
{
|
||||
// Token: 0x06009C0A RID: 39946 RVA: 0x00235240 File Offset: 0x00233440
|
||||
[Token(Token = "0x6009C0A")]
|
||||
[Address(RVA = "0x2124FF0", Offset = "0x21239F0", VA = "0x182124FF0")]
|
||||
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: 0x06009C0B RID: 39947 RVA: 0x0023527C File Offset: 0x0023347C
|
||||
[Token(Token = "0x6009C0B")]
|
||||
[Address(RVA = "0x2124F50", Offset = "0x2123950", VA = "0x182124F50")]
|
||||
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: 0x06009C0C RID: 39948 RVA: 0x002352C0 File Offset: 0x002334C0
|
||||
[Token(Token = "0x6009C0C")]
|
||||
[Address(RVA = "0x2124C80", Offset = "0x2123680", VA = "0x182124C80", 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: 0x06009C0D RID: 39949 RVA: 0x002352EC File Offset: 0x002334EC
|
||||
[Token(Token = "0x6009C0D")]
|
||||
[Address(RVA = "0x21241E0", Offset = "0x2122BE0", VA = "0x1821241E0")]
|
||||
private byte[] DecryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C0D)
|
||||
|
||||
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: 0x06009C0E RID: 39950 RVA: 0x00235434 File Offset: 0x00233634
|
||||
[Token(Token = "0x6009C0E")]
|
||||
[Address(RVA = "0x21246D0", Offset = "0x21230D0", VA = "0x1821246D0")]
|
||||
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: 0x06009C0F RID: 39951 RVA: 0x00235554 File Offset: 0x00233754
|
||||
[Token(Token = "0x6009C0F")]
|
||||
[Address(RVA = "0x2124B70", Offset = "0x2123570", VA = "0x182124B70")]
|
||||
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: 0x06009C10 RID: 39952 RVA: 0x00235598 File Offset: 0x00233798
|
||||
[Token(Token = "0x6009C10")]
|
||||
[Address(RVA = "0x2124D40", Offset = "0x2123740", VA = "0x182124D40", 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);
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
return array3;
|
||||
}
|
||||
|
||||
// Token: 0x0400665F RID: 26207
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400665F")]
|
||||
private readonly IBasicAgreement agree;
|
||||
|
||||
// Token: 0x04006660 RID: 26208
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006660")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
|
||||
// Token: 0x04006661 RID: 26209
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006661")]
|
||||
private readonly IMac mac;
|
||||
|
||||
// Token: 0x04006662 RID: 26210
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006662")]
|
||||
private readonly BufferedBlockCipher cipher;
|
||||
|
||||
// Token: 0x04006663 RID: 26211
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006663")]
|
||||
private readonly byte[] macBuf;
|
||||
|
||||
// Token: 0x04006664 RID: 26212
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006664")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006665 RID: 26213
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006665")]
|
||||
private ICipherParameters privParam;
|
||||
|
||||
// Token: 0x04006666 RID: 26214
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4006666")]
|
||||
private ICipherParameters pubParam;
|
||||
|
||||
// Token: 0x04006667 RID: 26215
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4006667")]
|
||||
private IesParameters param;
|
||||
}
|
||||
}
|
||||
+337
@@ -0,0 +1,337 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016B8 RID: 5816
|
||||
[Token(Token = "0x20016B8")]
|
||||
[StructLayout(3)]
|
||||
public class IsaacEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x06009BEF RID: 39919 RVA: 0x0023475C File Offset: 0x0023295C
|
||||
[Token(Token = "0x6009BEF")]
|
||||
[Address(RVA = "0x2125090", Offset = "0x2123A90", VA = "0x182125090", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BEF)
|
||||
|
||||
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: 0x06009BF0 RID: 39920 RVA: 0x00234798 File Offset: 0x00232998
|
||||
[Token(Token = "0x6009BF0")]
|
||||
[Address(RVA = "0x21253D0", Offset = "0x2123DD0", VA = "0x1821253D0", 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: 0x06009BF1 RID: 39921 RVA: 0x002347E8 File Offset: 0x002329E8
|
||||
[Token(Token = "0x6009BF1")]
|
||||
[Address(RVA = "0x21251E0", Offset = "0x2123BE0", VA = "0x1821251E0", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009BF1)
|
||||
|
||||
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: 0x170018D1 RID: 6353
|
||||
// (get) Token: 0x06009BF2 RID: 39922 RVA: 0x00234860 File Offset: 0x00232A60
|
||||
[Token(Token = "0x170018D1")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009BF2")]
|
||||
[Address(RVA = "0x2125520", Offset = "0x2123F20", VA = "0x182125520", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "ISAAC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009BF3 RID: 39923 RVA: 0x00234874 File Offset: 0x00232A74
|
||||
[Token(Token = "0x6009BF3")]
|
||||
[Address(RVA = "0x21253C0", Offset = "0x2123DC0", VA = "0x1821253C0", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.setKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x06009BF4 RID: 39924 RVA: 0x00234890 File Offset: 0x00232A90
|
||||
[Token(Token = "0x6009BF4")]
|
||||
[Address(RVA = "0x2125C80", Offset = "0x2124680", VA = "0x182125C80")]
|
||||
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: 0x06009BF5 RID: 39925 RVA: 0x00234A00 File Offset: 0x00232C00
|
||||
[Token(Token = "0x6009BF5")]
|
||||
[Address(RVA = "0x2125550", Offset = "0x2123F50", VA = "0x182125550")]
|
||||
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: 0x06009BF6 RID: 39926 RVA: 0x00234AC0 File Offset: 0x00232CC0
|
||||
[Token(Token = "0x6009BF6")]
|
||||
[Address(RVA = "0x2125740", Offset = "0x2124140", VA = "0x182125740")]
|
||||
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: 0x06009BF7 RID: 39927 RVA: 0x00234D00 File Offset: 0x00232F00
|
||||
[Token(Token = "0x6009BF7")]
|
||||
[Address(RVA = "0x21254A0", Offset = "0x2123EA0", VA = "0x1821254A0")]
|
||||
public IsaacEngine()
|
||||
{
|
||||
byte[] array = new byte[IsaacEngine.stateArraySize];
|
||||
this.keyStream = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04006650 RID: 26192
|
||||
[Token(Token = "0x4006650")]
|
||||
private static readonly int sizeL;
|
||||
|
||||
// Token: 0x04006651 RID: 26193
|
||||
[Token(Token = "0x4006651")]
|
||||
private static readonly int stateArraySize = IsaacEngine.sizeL;
|
||||
|
||||
// Token: 0x04006652 RID: 26194
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006652")]
|
||||
private uint[] engineState;
|
||||
|
||||
// Token: 0x04006653 RID: 26195
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006653")]
|
||||
private uint[] results;
|
||||
|
||||
// Token: 0x04006654 RID: 26196
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006654")]
|
||||
private uint a;
|
||||
|
||||
// Token: 0x04006655 RID: 26197
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4006655")]
|
||||
private uint b;
|
||||
|
||||
// Token: 0x04006656 RID: 26198
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006656")]
|
||||
private uint c;
|
||||
|
||||
// Token: 0x04006657 RID: 26199
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4006657")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x04006658 RID: 26200
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006658")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x04006659 RID: 26201
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006659")]
|
||||
private byte[] workingKey;
|
||||
|
||||
// Token: 0x0400665A RID: 26202
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400665A")]
|
||||
private bool initialised;
|
||||
}
|
||||
}
|
||||
+352
@@ -0,0 +1,352 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x020016BB RID: 5819
|
||||
[Token(Token = "0x20016BB")]
|
||||
[StructLayout(3)]
|
||||
public class NaccacheSternEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x170018D4 RID: 6356
|
||||
// (get) Token: 0x06009C11 RID: 39953 RVA: 0x0023561C File Offset: 0x0023381C
|
||||
[Token(Token = "0x170018D4")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C11")]
|
||||
[Address(RVA = "0x2127730", Offset = "0x2126130", VA = "0x182127730", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "NaccacheStern";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C12 RID: 39954 RVA: 0x00235630 File Offset: 0x00233830
|
||||
[Token(Token = "0x6009C12")]
|
||||
[Address(RVA = "0x2126580", Offset = "0x2124F80", VA = "0x182126580", 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: 0x170018D5 RID: 6357
|
||||
// (set) Token: 0x06009C13 RID: 39955 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x170018D5")]
|
||||
[Obsolete]
|
||||
public virtual bool Debug
|
||||
{
|
||||
[Token(Token = "0x6009C13")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "10")]
|
||||
set
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C14 RID: 39956 RVA: 0x002356C8 File Offset: 0x002338C8
|
||||
[Token(Token = "0x6009C14")]
|
||||
[Address(RVA = "0x21264C0", Offset = "0x2124EC0", VA = "0x1821264C0", 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: 0x06009C15 RID: 39957 RVA: 0x00235718 File Offset: 0x00233918
|
||||
[Token(Token = "0x6009C15")]
|
||||
[Address(RVA = "0x2126520", Offset = "0x2124F20", VA = "0x182126520", 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: 0x06009C16 RID: 39958 RVA: 0x00235768 File Offset: 0x00233968
|
||||
[Token(Token = "0x6009C16")]
|
||||
[Address(RVA = "0x2126A20", Offset = "0x2125420", VA = "0x182126A20", 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: 0x06009C17 RID: 39959 RVA: 0x002358AC File Offset: 0x00233AAC
|
||||
[Token(Token = "0x6009C17")]
|
||||
[Address(RVA = "0x21263D0", Offset = "0x2124DD0", VA = "0x1821263D0", 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: 0x06009C18 RID: 39960 RVA: 0x00235938 File Offset: 0x00233B38
|
||||
[Token(Token = "0x6009C18")]
|
||||
[Address(RVA = "0x2126190", Offset = "0x2124B90", VA = "0x182126190", 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: 0x06009C19 RID: 39961 RVA: 0x002359F8 File Offset: 0x00233BF8
|
||||
[Token(Token = "0x6009C19")]
|
||||
[Address(RVA = "0x2127080", Offset = "0x2125A80", VA = "0x182127080", Slot = "16")]
|
||||
public virtual byte[] ProcessData(byte[] data)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C19)
|
||||
|
||||
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: 0x06009C1A RID: 39962 RVA: 0x00235A90 File Offset: 0x00233C90
|
||||
[Token(Token = "0x6009C1A")]
|
||||
[Address(RVA = "0x2127260", Offset = "0x2125C60", VA = "0x182127260")]
|
||||
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: 0x06009C1B RID: 39963 RVA: 0x00235B9C File Offset: 0x00233D9C
|
||||
[Token(Token = "0x6009C1B")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public NaccacheSternEngine()
|
||||
{
|
||||
int num = 0;
|
||||
this.Debug = num != 0;
|
||||
}
|
||||
|
||||
// Token: 0x04006668 RID: 26216
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006668")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04006669 RID: 26217
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006669")]
|
||||
private NaccacheSternKeyParameters key;
|
||||
|
||||
// Token: 0x0400666A RID: 26218
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400666A")]
|
||||
private IList[] lookup;
|
||||
}
|
||||
}
|
||||
+334
@@ -0,0 +1,334 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
using Hjg.Pngcs;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016BC RID: 5820
|
||||
[Token(Token = "0x20016BC")]
|
||||
[StructLayout(3)]
|
||||
public class NoekeonEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C1C RID: 39964 RVA: 0x00235BB4 File Offset: 0x00233DB4
|
||||
[Token(Token = "0x6009C1C")]
|
||||
[Address(RVA = "0x2127B60", Offset = "0x2126560", VA = "0x182127B60")]
|
||||
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: 0x170018D6 RID: 6358
|
||||
// (get) Token: 0x06009C1D RID: 39965 RVA: 0x00235BF8 File Offset: 0x00233DF8
|
||||
[Token(Token = "0x170018D6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C1D")]
|
||||
[Address(RVA = "0x21285B0", Offset = "0x2126FB0", VA = "0x1821285B0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Noekeon";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018D7 RID: 6359
|
||||
// (get) Token: 0x06009C1E RID: 39966 RVA: 0x00235C0C File Offset: 0x00233E0C
|
||||
[Token(Token = "0x170018D7")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C1E")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C1F RID: 39967 RVA: 0x00235C1C File Offset: 0x00233E1C
|
||||
[Token(Token = "0x6009C1F")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009C20 RID: 39968 RVA: 0x00235C2C File Offset: 0x00233E2C
|
||||
[Token(Token = "0x6009C20")]
|
||||
[Address(RVA = "0x2127760", Offset = "0x2126160", VA = "0x182127760", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C20)
|
||||
|
||||
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_53:
|
||||
stloc:ArgumentException(var_4_68, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameters passed to Noekeon 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: 0x06009C21 RID: 39969 RVA: 0x00235CA4 File Offset: 0x00233EA4
|
||||
[Token(Token = "0x6009C21")]
|
||||
[Address(RVA = "0x21279B0", Offset = "0x21263B0", VA = "0x1821279B0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C21)
|
||||
|
||||
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: 0x06009C22 RID: 39970 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C22")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009C23 RID: 39971 RVA: 0x00235CDC File Offset: 0x00233EDC
|
||||
[Token(Token = "0x6009C23")]
|
||||
[Address(RVA = "0x2128720", Offset = "0x2127120", VA = "0x182128720")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
uint[] array = this.subKeys;
|
||||
int num = 0;
|
||||
int num2 = PngHelperInternal.ReadInt4fromBytes(key, num);
|
||||
array[0] = (uint)num2;
|
||||
uint[] array2 = this.subKeys;
|
||||
int num3 = PngHelperInternal.ReadInt4fromBytes(key, 4);
|
||||
array2[0] = (uint)num3;
|
||||
uint[] array3 = this.subKeys;
|
||||
int num4 = PngHelperInternal.ReadInt4fromBytes(key, 8);
|
||||
array3[1] = (uint)num4;
|
||||
uint[] array4 = this.subKeys;
|
||||
int num5 = PngHelperInternal.ReadInt4fromBytes(key, 12);
|
||||
array4[1] = (uint)num5;
|
||||
}
|
||||
|
||||
// Token: 0x06009C24 RID: 39972 RVA: 0x00235D58 File Offset: 0x00233F58
|
||||
[Token(Token = "0x6009C24")]
|
||||
[Address(RVA = "0x2128000", Offset = "0x2126A00", VA = "0x182128000")]
|
||||
private int encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.state;
|
||||
uint[] array4 = this.state;
|
||||
int num = 0;
|
||||
uint[] array5 = this.state;
|
||||
uint num2 = NoekeonEngine.roundConstants[num];
|
||||
array5[0] = num2;
|
||||
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);
|
||||
num++;
|
||||
uint[] array11 = this.state;
|
||||
uint num3 = NoekeonEngine.roundConstants[num];
|
||||
array11[0] = num3;
|
||||
uint[] array12 = this.subKeys;
|
||||
uint[] array13 = this.state;
|
||||
this.theta(array13, array12);
|
||||
uint num4 = this.state[0];
|
||||
uint num5 = this.state[0];
|
||||
uint num6 = this.state[1];
|
||||
uint num7 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009C25 RID: 39973 RVA: 0x00235E70 File Offset: 0x00234070
|
||||
[Token(Token = "0x6009C25")]
|
||||
[Address(RVA = "0x2127BE0", Offset = "0x21265E0", VA = "0x182127BE0")]
|
||||
private int decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.state;
|
||||
uint[] array4 = this.state;
|
||||
uint[] array5 = this.subKeys;
|
||||
int length = array5.Length;
|
||||
int num = 0;
|
||||
uint[] array6 = this.decryptKeys;
|
||||
int num2 = 0;
|
||||
Array.Copy(array5, num2, array6, num, 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 num3;
|
||||
array11[0] = num3;
|
||||
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 num4;
|
||||
array18[0] = num4;
|
||||
uint num5 = this.state[0];
|
||||
uint num6 = this.state[0];
|
||||
uint num7 = this.state[1];
|
||||
uint num8 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009C26 RID: 39974 RVA: 0x00235FB8 File Offset: 0x002341B8
|
||||
[Token(Token = "0x6009C26")]
|
||||
[Address(RVA = "0x21283A0", Offset = "0x2126DA0", VA = "0x1821283A0")]
|
||||
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: 0x06009C27 RID: 39975 RVA: 0x00236024 File Offset: 0x00234224
|
||||
[Token(Token = "0x6009C27")]
|
||||
[Address(RVA = "0x2128810", Offset = "0x2127210", VA = "0x182128810")]
|
||||
private void theta(uint[] a, uint[] k)
|
||||
{
|
||||
int length = a.Length;
|
||||
int num = 0;
|
||||
uint num2 = k[num];
|
||||
num++;
|
||||
int length2 = a.Length;
|
||||
}
|
||||
|
||||
// Token: 0x06009C28 RID: 39976 RVA: 0x00236054 File Offset: 0x00234254
|
||||
[Token(Token = "0x6009C28")]
|
||||
[Address(RVA = "0x21285E0", Offset = "0x2126FE0", VA = "0x1821285E0")]
|
||||
private void pi1(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
num += num;
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x06009C29 RID: 39977 RVA: 0x00236094 File Offset: 0x00234294
|
||||
[Token(Token = "0x6009C29")]
|
||||
[Address(RVA = "0x2128670", Offset = "0x2127070", VA = "0x182128670")]
|
||||
private void pi2(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x06009C2A RID: 39978 RVA: 0x002360D0 File Offset: 0x002342D0
|
||||
[Token(Token = "0x6009C2A")]
|
||||
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
|
||||
private uint rotl(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C2B RID: 39979 RVA: 0x002360E0 File Offset: 0x002342E0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009C2B")]
|
||||
[Address(RVA = "0x2127AD0", Offset = "0x21264D0", VA = "0x182127AD0")]
|
||||
static NoekeonEngine()
|
||||
{
|
||||
uint[] array = new uint[17];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AF3E960D2F0572119C78CAF04B900985A299000E).FieldHandle);
|
||||
NoekeonEngine.roundConstants = array;
|
||||
}
|
||||
|
||||
// Token: 0x0400666B RID: 26219
|
||||
[Token(Token = "0x400666B")]
|
||||
private const int GenericSize = 16;
|
||||
|
||||
// Token: 0x0400666C RID: 26220
|
||||
[Token(Token = "0x400666C")]
|
||||
private static readonly uint[] nullVector = new uint[4];
|
||||
|
||||
// Token: 0x0400666D RID: 26221
|
||||
[Token(Token = "0x400666D")]
|
||||
private static readonly uint[] roundConstants;
|
||||
|
||||
// Token: 0x0400666E RID: 26222
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400666E")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x0400666F RID: 26223
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400666F")]
|
||||
private uint[] subKeys;
|
||||
|
||||
// Token: 0x04006670 RID: 26224
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006670")]
|
||||
private uint[] decryptKeys;
|
||||
|
||||
// Token: 0x04006671 RID: 26225
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006671")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x04006672 RID: 26226
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x4006672")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016BD RID: 5821
|
||||
[Token(Token = "0x20016BD")]
|
||||
[StructLayout(3)]
|
||||
public class NullEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C2C RID: 39980 RVA: 0x00236114 File Offset: 0x00234314
|
||||
[Token(Token = "0x6009C2C")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public NullEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009C2D RID: 39981 RVA: 0x00236128 File Offset: 0x00234328
|
||||
[Token(Token = "0x6009C2D")]
|
||||
[Address(RVA = "0x53F760", Offset = "0x53E160", VA = "0x18053F760", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
this.initialised = true;
|
||||
}
|
||||
|
||||
// Token: 0x170018D8 RID: 6360
|
||||
// (get) Token: 0x06009C2E RID: 39982 RVA: 0x0023613C File Offset: 0x0023433C
|
||||
[Token(Token = "0x170018D8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C2E")]
|
||||
[Address(RVA = "0x2128B00", Offset = "0x2127500", VA = "0x182128B00", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Null";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018D9 RID: 6361
|
||||
// (get) Token: 0x06009C2F RID: 39983 RVA: 0x00236150 File Offset: 0x00234350
|
||||
[Token(Token = "0x170018D9")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C2F")]
|
||||
[Address(RVA = "0x4405A0", Offset = "0x43EFA0", VA = "0x1804405A0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C30 RID: 39984 RVA: 0x00236160 File Offset: 0x00234360
|
||||
[Token(Token = "0x6009C30")]
|
||||
[Address(RVA = "0x3E2800", Offset = "0x3E1200", VA = "0x1803E2800", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Token: 0x06009C31 RID: 39985 RVA: 0x00236170 File Offset: 0x00234370
|
||||
[Token(Token = "0x6009C31")]
|
||||
[Address(RVA = "0x21289B0", Offset = "0x21273B0", VA = "0x1821289B0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C31)
|
||||
|
||||
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: 0x06009C32 RID: 39986 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C32")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x04006673 RID: 26227
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006673")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04006674 RID: 26228
|
||||
[Token(Token = "0x4006674")]
|
||||
private const int BlockSize = 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,437 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016BE RID: 5822
|
||||
[Token(Token = "0x20016BE")]
|
||||
[StructLayout(3)]
|
||||
public class RC2Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C33 RID: 39987 RVA: 0x002361A0 File Offset: 0x002343A0
|
||||
[Token(Token = "0x6009C33")]
|
||||
[Address(RVA = "0x2129B10", Offset = "0x2128510", VA = "0x182129B10")]
|
||||
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: 0x06009C34 RID: 39988 RVA: 0x00236290 File Offset: 0x00234490
|
||||
[Token(Token = "0x6009C34")]
|
||||
[Address(RVA = "0x2129EF0", Offset = "0x21288F0", VA = "0x182129EF0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C34)
|
||||
|
||||
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: 0x06009C35 RID: 39989 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C35")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "11")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x170018DA RID: 6362
|
||||
// (get) Token: 0x06009C36 RID: 39990 RVA: 0x00236308 File Offset: 0x00234508
|
||||
[Token(Token = "0x170018DA")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C36")]
|
||||
[Address(RVA = "0x212A2B0", Offset = "0x2128CB0", VA = "0x18212A2B0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018DB RID: 6363
|
||||
// (get) Token: 0x06009C37 RID: 39991 RVA: 0x0023631C File Offset: 0x0023451C
|
||||
[Token(Token = "0x170018DB")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C37")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C38 RID: 39992 RVA: 0x0023632C File Offset: 0x0023452C
|
||||
[Token(Token = "0x6009C38")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009C39 RID: 39993 RVA: 0x0023633C File Offset: 0x0023453C
|
||||
[Token(Token = "0x6009C39")]
|
||||
[Address(RVA = "0x212A120", Offset = "0x2128B20", VA = "0x18212A120", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C39)
|
||||
|
||||
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: 0x06009C3A RID: 39994 RVA: 0x00236378 File Offset: 0x00234578
|
||||
[Token(Token = "0x6009C3A")]
|
||||
[Address(RVA = "0x212A220", Offset = "0x2128C20", VA = "0x18212A220")]
|
||||
private int RotateWordLeft(int x, int y)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)y;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C3B RID: 39995 RVA: 0x0023638C File Offset: 0x0023458C
|
||||
[Token(Token = "0x6009C3B")]
|
||||
[Address(RVA = "0x2129300", Offset = "0x2127D00", VA = "0x182129300")]
|
||||
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: 0x06009C3C RID: 39996 RVA: 0x00236640 File Offset: 0x00234840
|
||||
[Token(Token = "0x6009C3C")]
|
||||
[Address(RVA = "0x2128B30", Offset = "0x2127530", VA = "0x182128B30")]
|
||||
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: 0x06009C3D RID: 39997 RVA: 0x002367B8 File Offset: 0x002349B8
|
||||
[Token(Token = "0x6009C3D")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public RC2Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009C3E RID: 39998 RVA: 0x002367CC File Offset: 0x002349CC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009C3E")]
|
||||
[Address(RVA = "0x212A250", Offset = "0x2128C50", VA = "0x18212A250")]
|
||||
static RC2Engine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.0392525BCB01691D1F319D89F2C12BF93A478467).FieldHandle);
|
||||
RC2Engine.piTable = array;
|
||||
}
|
||||
|
||||
// Token: 0x04006675 RID: 26229
|
||||
[Token(Token = "0x4006675")]
|
||||
private static readonly byte[] piTable;
|
||||
|
||||
// Token: 0x04006676 RID: 26230
|
||||
[Token(Token = "0x4006676")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04006677 RID: 26231
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006677")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04006678 RID: 26232
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006678")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x020016BF RID: 5823
|
||||
[Token(Token = "0x20016BF")]
|
||||
[StructLayout(3)]
|
||||
public class RC2WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x06009C3F RID: 39999 RVA: 0x002367F8 File Offset: 0x002349F8
|
||||
[Token(Token = "0x6009C3F")]
|
||||
[Address(RVA = "0x212A440", Offset = "0x2128E40", VA = "0x18212A440", 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: 0x170018DC RID: 6364
|
||||
// (get) Token: 0x06009C40 RID: 40000 RVA: 0x002368E4 File Offset: 0x00234AE4
|
||||
[Token(Token = "0x170018DC")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C40")]
|
||||
[Address(RVA = "0x212B310", Offset = "0x2129D10", VA = "0x18212B310", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C41 RID: 40001 RVA: 0x002368F8 File Offset: 0x00234AF8
|
||||
[Token(Token = "0x6009C41")]
|
||||
[Address(RVA = "0x212AD80", Offset = "0x2129780", VA = "0x18212AD80", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C41)
|
||||
|
||||
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: 0x06009C42 RID: 40002 RVA: 0x00236B8C File Offset: 0x00234D8C
|
||||
[Token(Token = "0x6009C42")]
|
||||
[Address(RVA = "0x212A730", Offset = "0x2129130", VA = "0x18212A730", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C42)
|
||||
|
||||
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: 0x06009C43 RID: 40003 RVA: 0x00236E44 File Offset: 0x00235044
|
||||
[Token(Token = "0x6009C43")]
|
||||
[Address(RVA = "0x212A2E0", Offset = "0x2128CE0", VA = "0x18212A2E0")]
|
||||
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: 0x06009C44 RID: 40004 RVA: 0x00236E94 File Offset: 0x00235094
|
||||
[Token(Token = "0x6009C44")]
|
||||
[Address(RVA = "0x212A3C0", Offset = "0x2128DC0", VA = "0x18212A3C0")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x06009C45 RID: 40005 RVA: 0x00236EB0 File Offset: 0x002350B0
|
||||
[Token(Token = "0x6009C45")]
|
||||
[Address(RVA = "0x212B2A0", Offset = "0x2129CA0", VA = "0x18212B2A0")]
|
||||
public RC2WrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x06009C46 RID: 40006 RVA: 0x00236EE0 File Offset: 0x002350E0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009C46")]
|
||||
[Address(RVA = "0x212B240", Offset = "0x2129C40", VA = "0x18212B240")]
|
||||
static RC2WrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
RC2WrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x04006679 RID: 26233
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006679")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x0400667A RID: 26234
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400667A")]
|
||||
private ICipherParameters parameters;
|
||||
|
||||
// Token: 0x0400667B RID: 26235
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400667B")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x0400667C RID: 26236
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400667C")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x0400667D RID: 26237
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400667D")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400667E RID: 26238
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400667E")]
|
||||
private SecureRandom sr;
|
||||
|
||||
// Token: 0x0400667F RID: 26239
|
||||
[Token(Token = "0x400667F")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x04006680 RID: 26240
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006680")]
|
||||
private IDigest sha1;
|
||||
|
||||
// Token: 0x04006681 RID: 26241
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4006681")]
|
||||
private byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C0 RID: 5824
|
||||
[Token(Token = "0x20016C0")]
|
||||
[StructLayout(3)]
|
||||
public class RC4Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x06009C47 RID: 40007 RVA: 0x00236F08 File Offset: 0x00235108
|
||||
[Token(Token = "0x6009C47")]
|
||||
[Address(RVA = "0x212B340", Offset = "0x2129D40", VA = "0x18212B340", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C47)
|
||||
|
||||
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: 0x170018DD RID: 6365
|
||||
// (get) Token: 0x06009C48 RID: 40008 RVA: 0x00236F4C File Offset: 0x0023514C
|
||||
[Token(Token = "0x170018DD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C48")]
|
||||
[Address(RVA = "0x212BB20", Offset = "0x212A520", VA = "0x18212BB20", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C49 RID: 40009 RVA: 0x00236F60 File Offset: 0x00235160
|
||||
[Token(Token = "0x6009C49")]
|
||||
[Address(RVA = "0x212B750", Offset = "0x212A150", VA = "0x18212B750", 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: 0x06009C4A RID: 40010 RVA: 0x00236FD8 File Offset: 0x002351D8
|
||||
[Token(Token = "0x6009C4A")]
|
||||
[Address(RVA = "0x212B4D0", Offset = "0x2129ED0", VA = "0x18212B4D0", 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: 0x06009C4B RID: 40011 RVA: 0x00237060 File Offset: 0x00235260
|
||||
[Token(Token = "0x6009C4B")]
|
||||
[Address(RVA = "0x212B740", Offset = "0x212A140", VA = "0x18212B740", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.SetKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x06009C4C RID: 40012 RVA: 0x0023707C File Offset: 0x0023527C
|
||||
[Token(Token = "0x6009C4C")]
|
||||
[Address(RVA = "0x212B8C0", Offset = "0x212A2C0", VA = "0x18212B8C0")]
|
||||
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: 0x06009C4D RID: 40013 RVA: 0x002370F0 File Offset: 0x002352F0
|
||||
[Token(Token = "0x6009C4D")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public RC4Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006682 RID: 26242
|
||||
[Token(Token = "0x4006682")]
|
||||
private static readonly int STATE_LENGTH;
|
||||
|
||||
// Token: 0x04006683 RID: 26243
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006683")]
|
||||
private byte[] engineState;
|
||||
|
||||
// Token: 0x04006684 RID: 26244
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006684")]
|
||||
private int x;
|
||||
|
||||
// Token: 0x04006685 RID: 26245
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x4006685")]
|
||||
private int y;
|
||||
|
||||
// Token: 0x04006686 RID: 26246
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006686")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+260
@@ -0,0 +1,260 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C1 RID: 5825
|
||||
[Token(Token = "0x20016C1")]
|
||||
[StructLayout(3)]
|
||||
public class RC532Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C4F RID: 40015 RVA: 0x00237114 File Offset: 0x00235314
|
||||
[Token(Token = "0x6009C4F")]
|
||||
[Address(RVA = "0x212C840", Offset = "0x212B240", VA = "0x18212C840")]
|
||||
public RC532Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x170018DE RID: 6366
|
||||
// (get) Token: 0x06009C50 RID: 40016 RVA: 0x00237134 File Offset: 0x00235334
|
||||
[Token(Token = "0x170018DE")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C50")]
|
||||
[Address(RVA = "0x212C860", Offset = "0x212B260", VA = "0x18212C860", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-32";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018DF RID: 6367
|
||||
// (get) Token: 0x06009C51 RID: 40017 RVA: 0x00237148 File Offset: 0x00235348
|
||||
[Token(Token = "0x170018DF")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C51")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C52 RID: 40018 RVA: 0x00237158 File Offset: 0x00235358
|
||||
[Token(Token = "0x6009C52")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009C53 RID: 40019 RVA: 0x00237168 File Offset: 0x00235368
|
||||
[Token(Token = "0x6009C53")]
|
||||
[Address(RVA = "0x212C220", Offset = "0x212AC20", VA = "0x18212C220", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C53)
|
||||
|
||||
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: 0x06009C54 RID: 40020 RVA: 0x002371D4 File Offset: 0x002353D4
|
||||
[Token(Token = "0x6009C54")]
|
||||
[Address(RVA = "0x212C450", Offset = "0x212AE50", VA = "0x18212C450", 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: 0x06009C55 RID: 40021 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C55")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009C56 RID: 40022 RVA: 0x002371F0 File Offset: 0x002353F0
|
||||
[Token(Token = "0x6009C56")]
|
||||
[Address(RVA = "0x212C4C0", Offset = "0x212AEC0", VA = "0x18212C4C0")]
|
||||
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: 0x06009C57 RID: 40023 RVA: 0x00237300 File Offset: 0x00235500
|
||||
[Token(Token = "0x6009C57")]
|
||||
[Address(RVA = "0x212BEB0", Offset = "0x212A8B0", VA = "0x18212BEB0")]
|
||||
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: 0x06009C58 RID: 40024 RVA: 0x0023738C File Offset: 0x0023558C
|
||||
[Token(Token = "0x6009C58")]
|
||||
[Address(RVA = "0x212BB50", Offset = "0x212A550", VA = "0x18212BB50")]
|
||||
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: 0x06009C59 RID: 40025 RVA: 0x002373EC File Offset: 0x002355EC
|
||||
[Token(Token = "0x6009C59")]
|
||||
[Address(RVA = "0x212C480", Offset = "0x212AE80", VA = "0x18212C480")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C5A RID: 40026 RVA: 0x002373FC File Offset: 0x002355FC
|
||||
[Token(Token = "0x6009C5A")]
|
||||
[Address(RVA = "0x212C4A0", Offset = "0x212AEA0", VA = "0x18212C4A0")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C5B RID: 40027 RVA: 0x0023740C File Offset: 0x0023560C
|
||||
[Token(Token = "0x6009C5B")]
|
||||
[Address(RVA = "0x1F5DF90", Offset = "0x1F5C990", VA = "0x181F5DF90")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int length = src.Length;
|
||||
int num = srcOff + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C5C RID: 40028 RVA: 0x0023742C File Offset: 0x0023562C
|
||||
[Token(Token = "0x6009C5C")]
|
||||
[Address(RVA = "0x1F5DEF0", Offset = "0x1F5C8F0", VA = "0x181F5DEF0")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
int num = dstOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x04006687 RID: 26247
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006687")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x04006688 RID: 26248
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006688")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x04006689 RID: 26249
|
||||
[Token(Token = "0x4006689")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x0400668A RID: 26250
|
||||
[Token(Token = "0x400668A")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x0400668B RID: 26251
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400668B")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+312
@@ -0,0 +1,312 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C2 RID: 5826
|
||||
[Token(Token = "0x20016C2")]
|
||||
[StructLayout(3)]
|
||||
public class RC564Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C5E RID: 40030 RVA: 0x00237454 File Offset: 0x00235654
|
||||
[Token(Token = "0x6009C5E")]
|
||||
[Address(RVA = "0x212C840", Offset = "0x212B240", VA = "0x18212C840")]
|
||||
public RC564Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x170018E0 RID: 6368
|
||||
// (get) Token: 0x06009C5F RID: 40031 RVA: 0x00237474 File Offset: 0x00235674
|
||||
[Token(Token = "0x170018E0")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C5F")]
|
||||
[Address(RVA = "0x212D8E0", Offset = "0x212C2E0", VA = "0x18212D8E0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-64";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018E1 RID: 6369
|
||||
// (get) Token: 0x06009C60 RID: 40032 RVA: 0x00237488 File Offset: 0x00235688
|
||||
[Token(Token = "0x170018E1")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C60")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C61 RID: 40033 RVA: 0x00237498 File Offset: 0x00235698
|
||||
[Token(Token = "0x6009C61")]
|
||||
[Address(RVA = "0x212CFC0", Offset = "0x212B9C0", VA = "0x18212CFC0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
int num = RC564Engine.bytesPerWord;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x06009C62 RID: 40034 RVA: 0x002374B0 File Offset: 0x002356B0
|
||||
[Token(Token = "0x6009C62")]
|
||||
[Address(RVA = "0x212D020", Offset = "0x212BA20", VA = "0x18212D020", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C62)
|
||||
|
||||
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: 0x06009C63 RID: 40035 RVA: 0x00237504 File Offset: 0x00235704
|
||||
[Token(Token = "0x6009C63")]
|
||||
[Address(RVA = "0x212D1B0", Offset = "0x212BBB0", VA = "0x18212D1B0", 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: 0x06009C64 RID: 40036 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C64")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009C65 RID: 40037 RVA: 0x00237520 File Offset: 0x00235720
|
||||
[Token(Token = "0x6009C65")]
|
||||
[Address(RVA = "0x212D300", Offset = "0x212BD00", VA = "0x18212D300")]
|
||||
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: 0x06009C66 RID: 40038 RVA: 0x0023766C File Offset: 0x0023586C
|
||||
[Token(Token = "0x6009C66")]
|
||||
[Address(RVA = "0x212CC40", Offset = "0x212B640", VA = "0x18212CC40")]
|
||||
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: 0x06009C67 RID: 40039 RVA: 0x00237740 File Offset: 0x00235940
|
||||
[Token(Token = "0x6009C67")]
|
||||
[Address(RVA = "0x212C950", Offset = "0x212B350", VA = "0x18212C950")]
|
||||
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: 0x06009C68 RID: 40040 RVA: 0x002377FC File Offset: 0x002359FC
|
||||
[Token(Token = "0x6009C68")]
|
||||
[Address(RVA = "0x212D1E0", Offset = "0x212BBE0", VA = "0x18212D1E0")]
|
||||
private long RotateLeft(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C69 RID: 40041 RVA: 0x0023781C File Offset: 0x00235A1C
|
||||
[Token(Token = "0x6009C69")]
|
||||
[Address(RVA = "0x212D270", Offset = "0x212BC70", VA = "0x18212D270")]
|
||||
private long RotateRight(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C6A RID: 40042 RVA: 0x0023783C File Offset: 0x00235A3C
|
||||
[Token(Token = "0x6009C6A")]
|
||||
[Address(RVA = "0x212C890", Offset = "0x212B290", VA = "0x18212C890")]
|
||||
private long BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C6B RID: 40043 RVA: 0x0023785C File Offset: 0x00235A5C
|
||||
[Token(Token = "0x6009C6B")]
|
||||
[Address(RVA = "0x212D790", Offset = "0x212C190", VA = "0x18212D790")]
|
||||
private void WordToBytes(long word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009C6C RID: 40044 RVA: 0x00237870 File Offset: 0x00235A70
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009C6C")]
|
||||
[Address(RVA = "0x212D850", Offset = "0x212C250", VA = "0x18212D850")]
|
||||
static RC564Engine()
|
||||
{
|
||||
ulong num;
|
||||
RC564Engine.P64 = (long)num;
|
||||
ulong num2;
|
||||
RC564Engine.Q64 = (long)num2;
|
||||
}
|
||||
|
||||
// Token: 0x0400668C RID: 26252
|
||||
[Token(Token = "0x400668C")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x0400668D RID: 26253
|
||||
[Token(Token = "0x400668D")]
|
||||
private static readonly int bytesPerWord = RC564Engine.wordSize;
|
||||
|
||||
// Token: 0x0400668E RID: 26254
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400668E")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x0400668F RID: 26255
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400668F")]
|
||||
private long[] _S;
|
||||
|
||||
// Token: 0x04006690 RID: 26256
|
||||
[Token(Token = "0x4006690")]
|
||||
private static readonly long P64;
|
||||
|
||||
// Token: 0x04006691 RID: 26257
|
||||
[Token(Token = "0x4006691")]
|
||||
private static readonly long Q64;
|
||||
|
||||
// Token: 0x04006692 RID: 26258
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006692")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,335 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C3 RID: 5827
|
||||
[Token(Token = "0x20016C3")]
|
||||
[StructLayout(3)]
|
||||
public class RC6Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C6D RID: 40045 RVA: 0x00237894 File Offset: 0x00235A94
|
||||
[Token(Token = "0x6009C6D")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public RC6Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x170018E2 RID: 6370
|
||||
// (get) Token: 0x06009C6E RID: 40046 RVA: 0x002378A8 File Offset: 0x00235AA8
|
||||
[Token(Token = "0x170018E2")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C6E")]
|
||||
[Address(RVA = "0x212EE70", Offset = "0x212D870", VA = "0x18212EE70", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018E3 RID: 6371
|
||||
// (get) Token: 0x06009C6F RID: 40047 RVA: 0x002378BC File Offset: 0x00235ABC
|
||||
[Token(Token = "0x170018E3")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009C6F")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C70 RID: 40048 RVA: 0x002378CC File Offset: 0x00235ACC
|
||||
[Token(Token = "0x6009C70")]
|
||||
[Address(RVA = "0x212E4B0", Offset = "0x212CEB0", VA = "0x18212E4B0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return RC6Engine.bytesPerWord;
|
||||
}
|
||||
|
||||
// Token: 0x06009C71 RID: 40049 RVA: 0x002378E0 File Offset: 0x00235AE0
|
||||
[Token(Token = "0x6009C71")]
|
||||
[Address(RVA = "0x212E510", Offset = "0x212CF10", VA = "0x18212E510", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C71)
|
||||
|
||||
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: 0x06009C72 RID: 40050 RVA: 0x00237920 File Offset: 0x00235B20
|
||||
[Token(Token = "0x6009C72")]
|
||||
[Address(RVA = "0x212E670", Offset = "0x212D070", VA = "0x18212E670", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C72)
|
||||
|
||||
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: 0x06009C73 RID: 40051 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009C73")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009C74 RID: 40052 RVA: 0x00237964 File Offset: 0x00235B64
|
||||
[Token(Token = "0x6009C74")]
|
||||
[Address(RVA = "0x212E880", Offset = "0x212D280", VA = "0x18212E880")]
|
||||
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: 0x06009C75 RID: 40053 RVA: 0x00237AC4 File Offset: 0x00235CC4
|
||||
[Token(Token = "0x6009C75")]
|
||||
[Address(RVA = "0x212DDA0", Offset = "0x212C7A0", VA = "0x18212DDA0")]
|
||||
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: 0x06009C76 RID: 40054 RVA: 0x00237BFC File Offset: 0x00235DFC
|
||||
[Token(Token = "0x6009C76")]
|
||||
[Address(RVA = "0x212D9D0", Offset = "0x212C3D0", VA = "0x18212D9D0")]
|
||||
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: 0x06009C77 RID: 40055 RVA: 0x00237D00 File Offset: 0x00235F00
|
||||
[Token(Token = "0x6009C77")]
|
||||
[Address(RVA = "0x212E780", Offset = "0x212D180", VA = "0x18212E780")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C78 RID: 40056 RVA: 0x00237D20 File Offset: 0x00235F20
|
||||
[Token(Token = "0x6009C78")]
|
||||
[Address(RVA = "0x212E800", Offset = "0x212D200", VA = "0x18212E800")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009C79 RID: 40057 RVA: 0x00237D40 File Offset: 0x00235F40
|
||||
[Token(Token = "0x6009C79")]
|
||||
[Address(RVA = "0x212D910", Offset = "0x212C310", VA = "0x18212D910")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
return num + (int)b;
|
||||
}
|
||||
|
||||
// Token: 0x06009C7A RID: 40058 RVA: 0x00237D64 File Offset: 0x00235F64
|
||||
[Token(Token = "0x6009C7A")]
|
||||
[Address(RVA = "0x212ED00", Offset = "0x212D700", VA = "0x18212ED00")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006693 RID: 26259
|
||||
[Token(Token = "0x4006693")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x04006694 RID: 26260
|
||||
[Token(Token = "0x4006694")]
|
||||
private static readonly int bytesPerWord = RC6Engine.wordSize;
|
||||
|
||||
// Token: 0x04006695 RID: 26261
|
||||
[Token(Token = "0x4006695")]
|
||||
private static readonly int _noRounds;
|
||||
|
||||
// Token: 0x04006696 RID: 26262
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006696")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x04006697 RID: 26263
|
||||
[Token(Token = "0x4006697")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x04006698 RID: 26264
|
||||
[Token(Token = "0x4006698")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x04006699 RID: 26265
|
||||
[Token(Token = "0x4006699")]
|
||||
private static readonly int LGW;
|
||||
|
||||
// Token: 0x0400669A RID: 26266
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400669A")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x020016C4 RID: 5828
|
||||
[Token(Token = "0x20016C4")]
|
||||
[StructLayout(3)]
|
||||
public class Rfc3211WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x06009C7C RID: 40060 RVA: 0x00237D90 File Offset: 0x00235F90
|
||||
[Token(Token = "0x6009C7C")]
|
||||
[Address(RVA = "0x212F730", Offset = "0x212E130", VA = "0x18212F730")]
|
||||
public Rfc3211WrapEngine(IBlockCipher engine)
|
||||
{
|
||||
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(engine);
|
||||
this.engine = cbcBlockCipher;
|
||||
}
|
||||
|
||||
// Token: 0x06009C7D RID: 40061 RVA: 0x00237DB4 File Offset: 0x00235FB4
|
||||
[Token(Token = "0x6009C7D")]
|
||||
[Address(RVA = "0x212EEA0", Offset = "0x212D8A0", VA = "0x18212EEA0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters param)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C7D)
|
||||
|
||||
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: 0x170018E4 RID: 6372
|
||||
// (get) Token: 0x06009C7E RID: 40062 RVA: 0x00237E20 File Offset: 0x00236020
|
||||
[Token(Token = "0x170018E4")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C7E")]
|
||||
[Address(RVA = "0x212F7A0", Offset = "0x212E1A0", VA = "0x18212F7A0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher cipher = this.engine.cipher;
|
||||
string text;
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C7F RID: 40063 RVA: 0x00237E40 File Offset: 0x00236040
|
||||
[Token(Token = "0x6009C7F")]
|
||||
[Address(RVA = "0x212F480", Offset = "0x212DE80", VA = "0x18212F480", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C7F)
|
||||
|
||||
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: 0x06009C80 RID: 40064 RVA: 0x00237F68 File Offset: 0x00236168
|
||||
[Token(Token = "0x6009C80")]
|
||||
[Address(RVA = "0x212F080", Offset = "0x212DA80", VA = "0x18212F080", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C80)
|
||||
|
||||
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: 0x0400669B RID: 26267
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400669B")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x0400669C RID: 26268
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400669C")]
|
||||
private ParametersWithIV param;
|
||||
|
||||
// Token: 0x0400669D RID: 26269
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400669D")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400669E RID: 26270
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400669E")]
|
||||
private SecureRandom rand;
|
||||
}
|
||||
}
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C5 RID: 5829
|
||||
[Token(Token = "0x20016C5")]
|
||||
[StructLayout(3)]
|
||||
public class Rfc3394WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x06009C81 RID: 40065 RVA: 0x00238124 File Offset: 0x00236324
|
||||
[Token(Token = "0x6009C81")]
|
||||
[Address(RVA = "0x2130190", Offset = "0x212EB90", VA = "0x182130190")]
|
||||
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: 0x06009C82 RID: 40066 RVA: 0x00238158 File Offset: 0x00236358
|
||||
[Token(Token = "0x6009C82")]
|
||||
[Address(RVA = "0x212F810", Offset = "0x212E210", VA = "0x18212F810", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C82)
|
||||
|
||||
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: 0x170018E5 RID: 6373
|
||||
// (get) Token: 0x06009C83 RID: 40067 RVA: 0x002381CC File Offset: 0x002363CC
|
||||
[Token(Token = "0x170018E5")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C83")]
|
||||
[Address(RVA = "0x2130210", Offset = "0x212EC10", VA = "0x182130210", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher blockCipher = this.engine;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C84 RID: 40068 RVA: 0x002381E8 File Offset: 0x002363E8
|
||||
[Token(Token = "0x6009C84")]
|
||||
[Address(RVA = "0x212FE70", Offset = "0x212E870", VA = "0x18212FE70", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C84)
|
||||
|
||||
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: 0x06009C85 RID: 40069 RVA: 0x00238334 File Offset: 0x00236534
|
||||
[Token(Token = "0x6009C85")]
|
||||
[Address(RVA = "0x212FAA0", Offset = "0x212E4A0", VA = "0x18212FAA0", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C85)
|
||||
|
||||
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: 0x0400669F RID: 26271
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400669F")]
|
||||
private readonly IBlockCipher engine;
|
||||
|
||||
// Token: 0x040066A0 RID: 26272
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066A0")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x040066A1 RID: 26273
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066A1")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x040066A2 RID: 26274
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066A2")]
|
||||
private byte[] iv;
|
||||
}
|
||||
}
|
||||
+730
@@ -0,0 +1,730 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C9 RID: 5833
|
||||
[Token(Token = "0x20016C9")]
|
||||
[StructLayout(3)]
|
||||
public class RijndaelEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009C9E RID: 40094 RVA: 0x00238A60 File Offset: 0x00236C60
|
||||
[Token(Token = "0x6009C9E")]
|
||||
[Address(RVA = "0x2131760", Offset = "0x2130160", VA = "0x182131760")]
|
||||
private byte Mul0x2(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009C9F RID: 40095 RVA: 0x00238A88 File Offset: 0x00236C88
|
||||
[Token(Token = "0x6009C9F")]
|
||||
[Address(RVA = "0x2131820", Offset = "0x2130220", VA = "0x182131820")]
|
||||
private byte Mul0x3(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA0 RID: 40096 RVA: 0x00238AB0 File Offset: 0x00236CB0
|
||||
[Token(Token = "0x6009CA0")]
|
||||
[Address(RVA = "0x21318E0", Offset = "0x21302E0", VA = "0x1821318E0")]
|
||||
private byte Mul0x9(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA1 RID: 40097 RVA: 0x00238ACC File Offset: 0x00236CCC
|
||||
[Token(Token = "0x6009CA1")]
|
||||
[Address(RVA = "0x2131980", Offset = "0x2130380", VA = "0x182131980")]
|
||||
private byte Mul0xb(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA2 RID: 40098 RVA: 0x00238AE8 File Offset: 0x00236CE8
|
||||
[Token(Token = "0x6009CA2")]
|
||||
[Address(RVA = "0x2131A20", Offset = "0x2130420", VA = "0x182131A20")]
|
||||
private byte Mul0xd(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA3 RID: 40099 RVA: 0x00238B04 File Offset: 0x00236D04
|
||||
[Token(Token = "0x6009CA3")]
|
||||
[Address(RVA = "0x2131AC0", Offset = "0x21304C0", VA = "0x182131AC0")]
|
||||
private byte Mul0xe(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA4 RID: 40100 RVA: 0x00238B20 File Offset: 0x00236D20
|
||||
[Token(Token = "0x6009CA4")]
|
||||
[Address(RVA = "0x21314C0", Offset = "0x212FEC0", VA = "0x1821314C0")]
|
||||
private void KeyAddition(long[] rk)
|
||||
{
|
||||
long num = rk[3];
|
||||
}
|
||||
|
||||
// Token: 0x06009CA5 RID: 40101 RVA: 0x00238B3C File Offset: 0x00236D3C
|
||||
[Token(Token = "0x6009CA5")]
|
||||
[Address(RVA = "0x2132200", Offset = "0x2130C00", VA = "0x182132200")]
|
||||
private long Shift(long r, int shift)
|
||||
{
|
||||
int num = this.BC;
|
||||
num -= shift;
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x06009CA6 RID: 40102 RVA: 0x00238B58 File Offset: 0x00236D58
|
||||
[Token(Token = "0x6009CA6")]
|
||||
[Address(RVA = "0x21320E0", Offset = "0x2130AE0", VA = "0x1821320E0")]
|
||||
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: 0x06009CA7 RID: 40103 RVA: 0x00238BB4 File Offset: 0x00236DB4
|
||||
[Token(Token = "0x6009CA7")]
|
||||
[Address(RVA = "0x2130260", Offset = "0x212EC60", VA = "0x182130260")]
|
||||
private long ApplyS(long r, byte[] box)
|
||||
{
|
||||
int bc = this.BC;
|
||||
int num = 0;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CA8 RID: 40104 RVA: 0x00238BD8 File Offset: 0x00236DD8
|
||||
[Token(Token = "0x6009CA8")]
|
||||
[Address(RVA = "0x2132230", Offset = "0x2130C30", VA = "0x182132230")]
|
||||
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: 0x06009CA9 RID: 40105 RVA: 0x00238C38 File Offset: 0x00236E38
|
||||
[Token(Token = "0x6009CA9")]
|
||||
[Address(RVA = "0x2131550", Offset = "0x212FF50", VA = "0x182131550")]
|
||||
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: 0x06009CAA RID: 40106 RVA: 0x00238CD8 File Offset: 0x00236ED8
|
||||
[Token(Token = "0x6009CAA")]
|
||||
[Address(RVA = "0x2131080", Offset = "0x212FA80", VA = "0x182131080")]
|
||||
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: 0x06009CAB RID: 40107 RVA: 0x00238DF4 File Offset: 0x00236FF4
|
||||
[Token(Token = "0x6009CAB")]
|
||||
[Address(RVA = "0x21305F0", Offset = "0x212EFF0", VA = "0x1821305F0")]
|
||||
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: 0x06009CAC RID: 40108 RVA: 0x002390A8 File Offset: 0x002372A8
|
||||
[Token(Token = "0x6009CAC")]
|
||||
[Address(RVA = "0x2132BC0", Offset = "0x21315C0", VA = "0x182132BC0")]
|
||||
public RijndaelEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009CAD RID: 40109 RVA: 0x002390B8 File Offset: 0x002372B8
|
||||
[Token(Token = "0x6009CAD")]
|
||||
[Address(RVA = "0x2132BD0", Offset = "0x21315D0", VA = "0x182132BD0")]
|
||||
public RijndaelEngine(int blockBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CAD)
|
||||
|
||||
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: 0x06009CAE RID: 40110 RVA: 0x0023920C File Offset: 0x0023740C
|
||||
[Token(Token = "0x6009CAE")]
|
||||
[Address(RVA = "0x2130EB0", Offset = "0x212F8B0", VA = "0x182130EB0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CAE)
|
||||
|
||||
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: 0x170018E8 RID: 6376
|
||||
// (get) Token: 0x06009CAF RID: 40111 RVA: 0x00239268 File Offset: 0x00237468
|
||||
[Token(Token = "0x170018E8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009CAF")]
|
||||
[Address(RVA = "0x2133030", Offset = "0x2131A30", VA = "0x182133030", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Rijndael";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018E9 RID: 6377
|
||||
// (get) Token: 0x06009CB0 RID: 40112 RVA: 0x0023927C File Offset: 0x0023747C
|
||||
[Token(Token = "0x170018E9")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009CB0")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CB1 RID: 40113 RVA: 0x0023928C File Offset: 0x0023748C
|
||||
[Token(Token = "0x6009CB1")]
|
||||
[Address(RVA = "0x2130EA0", Offset = "0x212F8A0", VA = "0x182130EA0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.BC;
|
||||
}
|
||||
|
||||
// Token: 0x06009CB2 RID: 40114 RVA: 0x002392A0 File Offset: 0x002374A0
|
||||
[Token(Token = "0x6009CB2")]
|
||||
[Address(RVA = "0x2131C40", Offset = "0x2130640", VA = "0x182131C40", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CB2)
|
||||
|
||||
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: 0x06009CB3 RID: 40115 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009CB3")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009CB4 RID: 40116 RVA: 0x00239460 File Offset: 0x00237660
|
||||
[Token(Token = "0x6009CB4")]
|
||||
[Address(RVA = "0x21323E0", Offset = "0x2130DE0", VA = "0x1821323E0")]
|
||||
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: 0x06009CB5 RID: 40117 RVA: 0x002394CC File Offset: 0x002376CC
|
||||
[Token(Token = "0x6009CB5")]
|
||||
[Address(RVA = "0x2131B60", Offset = "0x2130560", VA = "0x182131B60")]
|
||||
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: 0x06009CB6 RID: 40118 RVA: 0x0023952C File Offset: 0x0023772C
|
||||
[Token(Token = "0x6009CB6")]
|
||||
[Address(RVA = "0x2130460", Offset = "0x212EE60", VA = "0x182130460")]
|
||||
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: 0x06009CB7 RID: 40119 RVA: 0x002395B8 File Offset: 0x002377B8
|
||||
[Token(Token = "0x6009CB7")]
|
||||
[Address(RVA = "0x21302D0", Offset = "0x212ECD0", VA = "0x1821302D0")]
|
||||
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: 0x06009CB8 RID: 40120 RVA: 0x00239654 File Offset: 0x00237854
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009CB8")]
|
||||
[Address(RVA = "0x2132580", Offset = "0x2130F80", VA = "0x182132580")]
|
||||
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: 0x040066AD RID: 26285
|
||||
[Token(Token = "0x40066AD")]
|
||||
private static readonly int MAXROUNDS;
|
||||
|
||||
// Token: 0x040066AE RID: 26286
|
||||
[Token(Token = "0x40066AE")]
|
||||
private static readonly int MAXKC;
|
||||
|
||||
// Token: 0x040066AF RID: 26287
|
||||
[Token(Token = "0x40066AF")]
|
||||
private static readonly byte[] Logtable;
|
||||
|
||||
// Token: 0x040066B0 RID: 26288
|
||||
[Token(Token = "0x40066B0")]
|
||||
private static readonly byte[] Alogtable;
|
||||
|
||||
// Token: 0x040066B1 RID: 26289
|
||||
[Token(Token = "0x40066B1")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040066B2 RID: 26290
|
||||
[Token(Token = "0x40066B2")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040066B3 RID: 26291
|
||||
[Token(Token = "0x40066B3")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040066B4 RID: 26292
|
||||
[Token(Token = "0x40066B4")]
|
||||
private static readonly byte[][] shifts0;
|
||||
|
||||
// Token: 0x040066B5 RID: 26293
|
||||
[Token(Token = "0x40066B5")]
|
||||
private static readonly byte[][] shifts1;
|
||||
|
||||
// Token: 0x040066B6 RID: 26294
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066B6")]
|
||||
private int BC;
|
||||
|
||||
// Token: 0x040066B7 RID: 26295
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066B7")]
|
||||
private long BC_MASK;
|
||||
|
||||
// Token: 0x040066B8 RID: 26296
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066B8")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040066B9 RID: 26297
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40066B9")]
|
||||
private int blockBits;
|
||||
|
||||
// Token: 0x040066BA RID: 26298
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066BA")]
|
||||
private long[][] workingKey;
|
||||
|
||||
// Token: 0x040066BB RID: 26299
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40066BB")]
|
||||
private long A0;
|
||||
|
||||
// Token: 0x040066BC RID: 26300
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40066BC")]
|
||||
private long A1;
|
||||
|
||||
// Token: 0x040066BD RID: 26301
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40066BD")]
|
||||
private long A2;
|
||||
|
||||
// Token: 0x040066BE RID: 26302
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40066BE")]
|
||||
private long A3;
|
||||
|
||||
// Token: 0x040066BF RID: 26303
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40066BF")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040066C0 RID: 26304
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40066C0")]
|
||||
private byte[] shifts0SC;
|
||||
|
||||
// Token: 0x040066C1 RID: 26305
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40066C1")]
|
||||
private byte[] shifts1SC;
|
||||
}
|
||||
}
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C6 RID: 5830
|
||||
[Token(Token = "0x20016C6")]
|
||||
[StructLayout(3)]
|
||||
public class RsaBlindedEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x06009C86 RID: 40070 RVA: 0x00238488 File Offset: 0x00236688
|
||||
[Token(Token = "0x6009C86")]
|
||||
[Address(RVA = "0x20FCB10", Offset = "0x20FB510", VA = "0x1820FCB10")]
|
||||
public RsaBlindedEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x06009C87 RID: 40071 RVA: 0x002384A8 File Offset: 0x002366A8
|
||||
[Token(Token = "0x6009C87")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public RsaBlindedEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x170018E6 RID: 6374
|
||||
// (get) Token: 0x06009C88 RID: 40072 RVA: 0x002384C4 File Offset: 0x002366C4
|
||||
[Token(Token = "0x170018E6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C88")]
|
||||
[Address(RVA = "0x20FCB70", Offset = "0x20FB570", VA = "0x1820FCB70", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C89 RID: 40073 RVA: 0x002384D8 File Offset: 0x002366D8
|
||||
[Token(Token = "0x6009C89")]
|
||||
[Address(RVA = "0x20FC5F0", Offset = "0x20FAFF0", VA = "0x1820FC5F0", 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: 0x06009C8A RID: 40074 RVA: 0x0023854C File Offset: 0x0023674C
|
||||
[Token(Token = "0x6009C8A")]
|
||||
[Address(RVA = "0x20FC550", Offset = "0x20FAF50", VA = "0x1820FC550", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C8B RID: 40075 RVA: 0x00238568 File Offset: 0x00236768
|
||||
[Token(Token = "0x6009C8B")]
|
||||
[Address(RVA = "0x20FC5A0", Offset = "0x20FAFA0", VA = "0x1820FC5A0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C8C RID: 40076 RVA: 0x00238584 File Offset: 0x00236784
|
||||
[Token(Token = "0x6009C8C")]
|
||||
[Address(RVA = "0x20FC7D0", Offset = "0x20FB1D0", VA = "0x1820FC7D0", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C8C)
|
||||
|
||||
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: 0x040066A3 RID: 26275
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066A3")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040066A4 RID: 26276
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066A4")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040066A5 RID: 26277
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066A5")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C7 RID: 5831
|
||||
[Token(Token = "0x20016C7")]
|
||||
[StructLayout(3)]
|
||||
public class RsaBlindingEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x06009C8D RID: 40077 RVA: 0x0023864C File Offset: 0x0023684C
|
||||
[Token(Token = "0x6009C8D")]
|
||||
[Address(RVA = "0x20FD060", Offset = "0x20FBA60", VA = "0x1820FD060")]
|
||||
public RsaBlindingEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x06009C8E RID: 40078 RVA: 0x0023866C File Offset: 0x0023686C
|
||||
[Token(Token = "0x6009C8E")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public RsaBlindingEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x170018E7 RID: 6375
|
||||
// (get) Token: 0x06009C8F RID: 40079 RVA: 0x00238688 File Offset: 0x00236888
|
||||
[Token(Token = "0x170018E7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009C8F")]
|
||||
[Address(RVA = "0x20FD0C0", Offset = "0x20FBAC0", VA = "0x1820FD0C0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009C90 RID: 40080 RVA: 0x0023869C File Offset: 0x0023689C
|
||||
[Token(Token = "0x6009C90")]
|
||||
[Address(RVA = "0x20FCCC0", Offset = "0x20FB6C0", VA = "0x1820FCCC0", 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: 0x06009C91 RID: 40081 RVA: 0x002386F0 File Offset: 0x002368F0
|
||||
[Token(Token = "0x6009C91")]
|
||||
[Address(RVA = "0x20FCC20", Offset = "0x20FB620", VA = "0x1820FCC20", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C92 RID: 40082 RVA: 0x0023870C File Offset: 0x0023690C
|
||||
[Token(Token = "0x6009C92")]
|
||||
[Address(RVA = "0x20FCC70", Offset = "0x20FB670", VA = "0x1820FCC70", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009C93 RID: 40083 RVA: 0x00238728 File Offset: 0x00236928
|
||||
[Token(Token = "0x6009C93")]
|
||||
[Address(RVA = "0x20FCEB0", Offset = "0x20FB8B0", VA = "0x1820FCEB0", 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: 0x06009C94 RID: 40084 RVA: 0x002387B0 File Offset: 0x002369B0
|
||||
[Token(Token = "0x6009C94")]
|
||||
[Address(RVA = "0x20FCBA0", Offset = "0x20FB5A0", VA = "0x1820FCBA0")]
|
||||
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: 0x06009C95 RID: 40085 RVA: 0x0023880C File Offset: 0x00236A0C
|
||||
[Token(Token = "0x6009C95")]
|
||||
[Address(RVA = "0x20FCFF0", Offset = "0x20FB9F0", VA = "0x1820FCFF0")]
|
||||
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: 0x040066A6 RID: 26278
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066A6")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040066A7 RID: 26279
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066A7")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040066A8 RID: 26280
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066A8")]
|
||||
private BigInteger blindingFactor;
|
||||
|
||||
// Token: 0x040066A9 RID: 26281
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066A9")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+233
@@ -0,0 +1,233 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016C8 RID: 5832
|
||||
[Token(Token = "0x20016C8")]
|
||||
[StructLayout(3)]
|
||||
public class RsaCoreEngine : IRsa
|
||||
{
|
||||
// Token: 0x06009C96 RID: 40086 RVA: 0x0023884C File Offset: 0x00236A4C
|
||||
[Token(Token = "0x6009C96")]
|
||||
[Address(RVA = "0x20FD0F0", Offset = "0x20FBAF0", VA = "0x1820FD0F0")]
|
||||
private void CheckInitialised()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C96)
|
||||
|
||||
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: 0x06009C97 RID: 40087 RVA: 0x00238870 File Offset: 0x00236A70
|
||||
[Token(Token = "0x6009C97")]
|
||||
[Address(RVA = "0x20FD510", Offset = "0x20FBF10", VA = "0x1820FD510", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C97)
|
||||
|
||||
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: 0x06009C98 RID: 40088 RVA: 0x002388C8 File Offset: 0x00236AC8
|
||||
[Token(Token = "0x6009C98")]
|
||||
[Address(RVA = "0x20FD3F0", Offset = "0x20FBDF0", VA = "0x1820FD3F0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C98)
|
||||
|
||||
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: 0x06009C99 RID: 40089 RVA: 0x00238904 File Offset: 0x00236B04
|
||||
[Token(Token = "0x6009C99")]
|
||||
[Address(RVA = "0x20FD480", Offset = "0x20FBE80", VA = "0x1820FD480", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C99)
|
||||
|
||||
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: 0x06009C9A RID: 40090 RVA: 0x00238940 File Offset: 0x00236B40
|
||||
[Token(Token = "0x6009C9A")]
|
||||
[Address(RVA = "0x20FD160", Offset = "0x20FBB60", VA = "0x1820FD160", Slot = "13")]
|
||||
public virtual BigInteger ConvertInput(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C9A)
|
||||
|
||||
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: 0x06009C9B RID: 40091 RVA: 0x00238998 File Offset: 0x00236B98
|
||||
[Token(Token = "0x6009C9B")]
|
||||
[Address(RVA = "0x20FD2F0", Offset = "0x20FBCF0", VA = "0x1820FD2F0", Slot = "14")]
|
||||
public virtual byte[] ConvertOutput(BigInteger result)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C9B)
|
||||
|
||||
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: 0x06009C9C RID: 40092 RVA: 0x002389E8 File Offset: 0x00236BE8
|
||||
[Token(Token = "0x6009C9C")]
|
||||
[Address(RVA = "0x20FD710", Offset = "0x20FC110", VA = "0x1820FD710", Slot = "15")]
|
||||
public virtual BigInteger ProcessBlock(BigInteger input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009C9C)
|
||||
|
||||
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: 0x06009C9D RID: 40093 RVA: 0x00238A4C File Offset: 0x00236C4C
|
||||
[Token(Token = "0x6009C9D")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public RsaCoreEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040066AA RID: 26282
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066AA")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040066AB RID: 26283
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066AB")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040066AC RID: 26284
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40066AC")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016CA RID: 5834
|
||||
[Token(Token = "0x20016CA")]
|
||||
[StructLayout(3)]
|
||||
public class RsaEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x06009CB9 RID: 40121 RVA: 0x00239870 File Offset: 0x00237A70
|
||||
[Token(Token = "0x6009CB9")]
|
||||
[Address(RVA = "0x20FDB20", Offset = "0x20FC520", VA = "0x1820FDB20")]
|
||||
public RsaEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x06009CBA RID: 40122 RVA: 0x00239890 File Offset: 0x00237A90
|
||||
[Token(Token = "0x6009CBA")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public RsaEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x170018EA RID: 6378
|
||||
// (get) Token: 0x06009CBB RID: 40123 RVA: 0x002398AC File Offset: 0x00237AAC
|
||||
[Token(Token = "0x170018EA")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009CBB")]
|
||||
[Address(RVA = "0x20FDB80", Offset = "0x20FC580", VA = "0x1820FDB80", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CBC RID: 40124 RVA: 0x002398C0 File Offset: 0x00237AC0
|
||||
[Token(Token = "0x6009CBC")]
|
||||
[Address(RVA = "0x20FD9F0", Offset = "0x20FC3F0", VA = "0x1820FD9F0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
}
|
||||
|
||||
// Token: 0x06009CBD RID: 40125 RVA: 0x002398DC File Offset: 0x00237ADC
|
||||
[Token(Token = "0x6009CBD")]
|
||||
[Address(RVA = "0x20FD950", Offset = "0x20FC350", VA = "0x1820FD950", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CBE RID: 40126 RVA: 0x002398F8 File Offset: 0x00237AF8
|
||||
[Token(Token = "0x6009CBE")]
|
||||
[Address(RVA = "0x20FD9A0", Offset = "0x20FC3A0", VA = "0x1820FD9A0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CBF RID: 40127 RVA: 0x00239914 File Offset: 0x00237B14
|
||||
[Token(Token = "0x6009CBF")]
|
||||
[Address(RVA = "0x20FDA60", Offset = "0x20FC460", VA = "0x1820FDA60", 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: 0x040066C2 RID: 26306
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066C2")]
|
||||
private readonly IRsa core;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,327 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x020016CD RID: 5837
|
||||
[Token(Token = "0x20016CD")]
|
||||
[StructLayout(3)]
|
||||
public class SM2Engine
|
||||
{
|
||||
// Token: 0x06009CD4 RID: 40148 RVA: 0x00239CD0 File Offset: 0x00237ED0
|
||||
[Token(Token = "0x6009CD4")]
|
||||
[Address(RVA = "0x20FEDF0", Offset = "0x20FD7F0", VA = "0x1820FEDF0")]
|
||||
public SM2Engine()
|
||||
{
|
||||
SM3Digest sm3Digest = new SM3Digest();
|
||||
base..ctor();
|
||||
this.mDigest = sm3Digest;
|
||||
}
|
||||
|
||||
// Token: 0x06009CD5 RID: 40149 RVA: 0x00239CF0 File Offset: 0x00237EF0
|
||||
[Token(Token = "0x6009CD5")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public SM2Engine(IDigest digest)
|
||||
{
|
||||
this.mDigest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x06009CD6 RID: 40150 RVA: 0x00239D0C File Offset: 0x00237F0C
|
||||
[Token(Token = "0x6009CD6")]
|
||||
[Address(RVA = "0x20FE640", Offset = "0x20FD040", VA = "0x1820FE640", 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: 0x06009CD7 RID: 40151 RVA: 0x00239DA8 File Offset: 0x00237FA8
|
||||
[Token(Token = "0x6009CD7")]
|
||||
[Address(RVA = "0x20FED40", Offset = "0x20FD740", VA = "0x1820FED40", 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: 0x06009CD8 RID: 40152 RVA: 0x00239DD4 File Offset: 0x00237FD4
|
||||
[Token(Token = "0x6009CD8")]
|
||||
[Address(RVA = "0x20FDC40", Offset = "0x20FC640", VA = "0x1820FDC40", Slot = "6")]
|
||||
protected virtual ECMultiplier CreateBasePointMultiplier()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CD8)
|
||||
|
||||
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: 0x06009CD9 RID: 40153 RVA: 0x00239DE8 File Offset: 0x00237FE8
|
||||
[Token(Token = "0x6009CD9")]
|
||||
[Address(RVA = "0x20FE0F0", Offset = "0x20FCAF0", VA = "0x1820FE0F0")]
|
||||
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: 0x06009CDA RID: 40154 RVA: 0x00239F24 File Offset: 0x00238124
|
||||
[Token(Token = "0x6009CDA")]
|
||||
[Address(RVA = "0x20FDC90", Offset = "0x20FC690", VA = "0x1820FDC90")]
|
||||
private byte[] Decrypt(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CDA)
|
||||
|
||||
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: 0x06009CDB RID: 40155 RVA: 0x0023A084 File Offset: 0x00238284
|
||||
[Token(Token = "0x6009CDB")]
|
||||
[Address(RVA = "0x20FECC0", Offset = "0x20FD6C0", VA = "0x1820FECC0")]
|
||||
private bool NotEncrypted(byte[] encData, byte[] input, int inOff)
|
||||
{
|
||||
int num = 0;
|
||||
int length = encData.Length;
|
||||
if (num != length)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x06009CDC RID: 40156 RVA: 0x0023A0AC File Offset: 0x002382AC
|
||||
[Token(Token = "0x6009CDC")]
|
||||
[Address(RVA = "0x20FE900", Offset = "0x20FD300", VA = "0x1820FE900")]
|
||||
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: 0x06009CDD RID: 40157 RVA: 0x0023A148 File Offset: 0x00238348
|
||||
[Token(Token = "0x6009CDD")]
|
||||
[Address(RVA = "0x20FED70", Offset = "0x20FD770", VA = "0x1820FED70")]
|
||||
private void Xor(byte[] data, byte[] kdfOut, int dOff, int dRemaining)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x06009CDE RID: 40158 RVA: 0x0023A164 File Offset: 0x00238364
|
||||
[Token(Token = "0x6009CDE")]
|
||||
[Address(RVA = "0x20FEC00", Offset = "0x20FD600", VA = "0x1820FEC00")]
|
||||
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: 0x06009CDF RID: 40159 RVA: 0x0023A1B8 File Offset: 0x002383B8
|
||||
[Token(Token = "0x6009CDF")]
|
||||
[Address(RVA = "0x20FDBB0", Offset = "0x20FC5B0", VA = "0x1820FDBB0")]
|
||||
private void AddFieldElement(IDigest digest, ECFieldElement v)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040066CB RID: 26315
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066CB")]
|
||||
private readonly IDigest mDigest;
|
||||
|
||||
// Token: 0x040066CC RID: 26316
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066CC")]
|
||||
private bool mForEncryption;
|
||||
|
||||
// Token: 0x040066CD RID: 26317
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066CD")]
|
||||
private ECKeyParameters mECKey;
|
||||
|
||||
// Token: 0x040066CE RID: 26318
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066CE")]
|
||||
private ECDomainParameters mECParams;
|
||||
|
||||
// Token: 0x040066CF RID: 26319
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40066CF")]
|
||||
private int mCurveLength;
|
||||
|
||||
// Token: 0x040066D0 RID: 26320
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40066D0")]
|
||||
private SecureRandom mRandom;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,341 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016CE RID: 5838
|
||||
[Token(Token = "0x20016CE")]
|
||||
[StructLayout(3)]
|
||||
public class SM4Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009CE0 RID: 40160 RVA: 0x0023A1CC File Offset: 0x002383CC
|
||||
[Token(Token = "0x6009CE0")]
|
||||
[Address(RVA = "0x20FFF80", Offset = "0x20FE980", VA = "0x1820FFF80")]
|
||||
private static uint tau(uint A)
|
||||
{
|
||||
int length = SM4Engine.Sbox.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CE1 RID: 40161 RVA: 0x0023A1EC File Offset: 0x002383EC
|
||||
[Token(Token = "0x6009CE1")]
|
||||
[Address(RVA = "0x20FF9E0", Offset = "0x20FE3E0", VA = "0x1820FF9E0")]
|
||||
private static uint L_ap(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CE1)
|
||||
|
||||
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: 0x06009CE2 RID: 40162 RVA: 0x0023A20C File Offset: 0x0023840C
|
||||
[Token(Token = "0x6009CE2")]
|
||||
[Address(RVA = "0x20FFD40", Offset = "0x20FE740", VA = "0x1820FFD40")]
|
||||
private uint T_ap(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CE2)
|
||||
|
||||
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: 0x06009CE3 RID: 40163 RVA: 0x0023A234 File Offset: 0x00238434
|
||||
[Token(Token = "0x6009CE3")]
|
||||
[Address(RVA = "0x20FEE50", Offset = "0x20FD850", VA = "0x1820FEE50")]
|
||||
private void ExpandKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
uint[] fk = SM4Engine.FK;
|
||||
uint[] fk2 = SM4Engine.FK;
|
||||
uint[] fk3 = SM4Engine.FK;
|
||||
uint[] fk4 = SM4Engine.FK;
|
||||
uint[] array = this.rk;
|
||||
if (!forEncryption)
|
||||
{
|
||||
uint num = SM4Engine.CK[0];
|
||||
uint num2 = this.T_ap(num);
|
||||
array[15] = num2;
|
||||
uint[] array2 = this.rk;
|
||||
uint num3 = SM4Engine.CK[0];
|
||||
uint num4 = this.T_ap(num3);
|
||||
array2[15] = num4;
|
||||
uint[] array3 = this.rk;
|
||||
uint num5 = SM4Engine.CK[1];
|
||||
uint num6 = this.T_ap(num5);
|
||||
array3[14] = num6;
|
||||
uint[] array4 = this.rk;
|
||||
int length = array4.Length;
|
||||
uint num7 = SM4Engine.CK[1];
|
||||
uint num8 = this.T_ap(num7);
|
||||
array4[14] = num8;
|
||||
uint[] array5 = this.rk;
|
||||
int length2 = array5.Length;
|
||||
uint num9 = array5[this];
|
||||
uint[] ck = SM4Engine.CK;
|
||||
uint num11;
|
||||
uint num10 = this.T_ap(num11);
|
||||
array5[0] = num10;
|
||||
while (4UL <= (ulong)31L)
|
||||
{
|
||||
}
|
||||
return;
|
||||
}
|
||||
uint num12 = SM4Engine.CK[0];
|
||||
uint num13 = this.T_ap(num12);
|
||||
array[0] = num13;
|
||||
uint[] array6 = this.rk;
|
||||
uint num14 = SM4Engine.CK[0];
|
||||
uint num15 = this.T_ap(num14);
|
||||
array6[0] = num15;
|
||||
uint[] array7 = this.rk;
|
||||
int length3 = array7.Length;
|
||||
uint num16 = SM4Engine.CK[1];
|
||||
uint num17 = this.T_ap(num16);
|
||||
array7[1] = num17;
|
||||
uint[] array8 = this.rk;
|
||||
int length4 = array8.Length;
|
||||
uint num18 = SM4Engine.CK[1];
|
||||
uint num19 = this.T_ap(num18);
|
||||
array8[1] = num19;
|
||||
uint[] array9 = this.rk;
|
||||
int length5 = array9.Length;
|
||||
uint[] ck2 = SM4Engine.CK;
|
||||
uint num21;
|
||||
uint num20 = this.T_ap(num21);
|
||||
array9[0] = num20;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CE4 RID: 40164 RVA: 0x0023A430 File Offset: 0x00238630
|
||||
[Token(Token = "0x6009CE4")]
|
||||
[Address(RVA = "0x20FFA20", Offset = "0x20FE420", VA = "0x1820FFA20")]
|
||||
private static uint L(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CE4)
|
||||
|
||||
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: 0x06009CE5 RID: 40165 RVA: 0x0023A460 File Offset: 0x00238660
|
||||
[Token(Token = "0x6009CE5")]
|
||||
[Address(RVA = "0x20FFDC0", Offset = "0x20FE7C0", VA = "0x1820FFDC0")]
|
||||
private static uint T(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CE5)
|
||||
|
||||
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: 0x06009CE6 RID: 40166 RVA: 0x0023A498 File Offset: 0x00238698
|
||||
[Token(Token = "0x6009CE6")]
|
||||
[Address(RVA = "0x20FF850", Offset = "0x20FE250", VA = "0x1820FF850", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CE6)
|
||||
|
||||
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: 0x170018ED RID: 6381
|
||||
// (get) Token: 0x06009CE7 RID: 40167 RVA: 0x0023A504 File Offset: 0x00238704
|
||||
[Token(Token = "0x170018ED")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009CE7")]
|
||||
[Address(RVA = "0x20FFF50", Offset = "0x20FE950", VA = "0x1820FFF50", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SM4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018EE RID: 6382
|
||||
// (get) Token: 0x06009CE8 RID: 40168 RVA: 0x0023A518 File Offset: 0x00238718
|
||||
[Token(Token = "0x170018EE")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009CE8")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CE9 RID: 40169 RVA: 0x0023A528 File Offset: 0x00238728
|
||||
[Token(Token = "0x6009CE9")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009CEA RID: 40170 RVA: 0x0023A538 File Offset: 0x00238738
|
||||
[Token(Token = "0x6009CEA")]
|
||||
[Address(RVA = "0x20FFA90", Offset = "0x20FE490", VA = "0x1820FFA90", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CEA)
|
||||
|
||||
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_6C:
|
||||
stloc:InvalidOperationException(var_11_76, 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: 0x06009CEB RID: 40171 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009CEB")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009CEC RID: 40172 RVA: 0x0023A5BC File Offset: 0x002387BC
|
||||
[Token(Token = "0x6009CEC")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public SM4Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009CED RID: 40173 RVA: 0x0023A5D0 File Offset: 0x002387D0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009CED")]
|
||||
[Address(RVA = "0x20FFE80", Offset = "0x20FE880", VA = "0x1820FFE80")]
|
||||
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: 0x040066D1 RID: 26321
|
||||
[Token(Token = "0x40066D1")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x040066D2 RID: 26322
|
||||
[Token(Token = "0x40066D2")]
|
||||
private static readonly byte[] Sbox;
|
||||
|
||||
// Token: 0x040066D3 RID: 26323
|
||||
[Token(Token = "0x40066D3")]
|
||||
private static readonly uint[] CK;
|
||||
|
||||
// Token: 0x040066D4 RID: 26324
|
||||
[Token(Token = "0x40066D4")]
|
||||
private static readonly uint[] FK;
|
||||
|
||||
// Token: 0x040066D5 RID: 26325
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066D5")]
|
||||
private uint[] rk;
|
||||
}
|
||||
}
|
||||
+545
@@ -0,0 +1,545 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016CF RID: 5839
|
||||
[Token(Token = "0x20016CF")]
|
||||
[StructLayout(3)]
|
||||
public class Salsa20Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x06009CEE RID: 40174 RVA: 0x0023A62C File Offset: 0x0023882C
|
||||
[Token(Token = "0x6009CEE")]
|
||||
[Address(RVA = "0x2100580", Offset = "0x20FEF80", VA = "0x182100580")]
|
||||
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: 0x06009CEF RID: 40175 RVA: 0x0023A698 File Offset: 0x00238898
|
||||
[Token(Token = "0x6009CEF")]
|
||||
[Address(RVA = "0x2101770", Offset = "0x2100170", VA = "0x182101770")]
|
||||
public Salsa20Engine()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CEF)
|
||||
|
||||
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: 0x06009CF0 RID: 40176 RVA: 0x0023A6FC File Offset: 0x002388FC
|
||||
[Token(Token = "0x6009CF0")]
|
||||
[Address(RVA = "0x2101880", Offset = "0x2100280", VA = "0x182101880")]
|
||||
public Salsa20Engine(int rounds)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CF0)
|
||||
|
||||
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: 0x06009CF1 RID: 40177 RVA: 0x0023A758 File Offset: 0x00238958
|
||||
[Token(Token = "0x6009CF1")]
|
||||
[Address(RVA = "0x21001A0", Offset = "0x20FEBA0", VA = "0x1821001A0", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CF1)
|
||||
|
||||
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: 0x170018EF RID: 6383
|
||||
// (get) Token: 0x06009CF2 RID: 40178 RVA: 0x0023A7C0 File Offset: 0x002389C0
|
||||
[Token(Token = "0x170018EF")]
|
||||
protected virtual int NonceSize
|
||||
{
|
||||
[Token(Token = "0x6009CF2")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018F0 RID: 6384
|
||||
// (get) Token: 0x06009CF3 RID: 40179 RVA: 0x0023A7D0 File Offset: 0x002389D0
|
||||
[Token(Token = "0x170018F0")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009CF3")]
|
||||
[Address(RVA = "0x2101940", Offset = "0x2100340", VA = "0x182101940", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.rounds;
|
||||
int num2 = this.rounds;
|
||||
return "Salsa20" + "/" + num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CF4 RID: 40180 RVA: 0x0023A7FC File Offset: 0x002389FC
|
||||
[Token(Token = "0x6009CF4")]
|
||||
[Address(RVA = "0x2100A60", Offset = "0x20FF460", VA = "0x182100A60", Slot = "12")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CF4)
|
||||
|
||||
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: 0x06009CF5 RID: 40181 RVA: 0x0023A858 File Offset: 0x00238A58
|
||||
[Token(Token = "0x6009CF5")]
|
||||
[Address(RVA = "0x21000A0", Offset = "0x20FEAA0", VA = "0x1821000A0", Slot = "13")]
|
||||
protected virtual void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 8)
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CF6 RID: 40182 RVA: 0x0023A880 File Offset: 0x00238A80
|
||||
[Token(Token = "0x6009CF6")]
|
||||
[Address(RVA = "0x2100770", Offset = "0x20FF170", VA = "0x182100770", Slot = "14")]
|
||||
public virtual void ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CF6)
|
||||
|
||||
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: 0x06009CF7 RID: 40183 RVA: 0x0023A910 File Offset: 0x00238B10
|
||||
[Token(Token = "0x6009CF7")]
|
||||
[Address(RVA = "0x2100A40", Offset = "0x20FF440", VA = "0x182100A40", 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: 0x06009CF8 RID: 40184 RVA: 0x0023A93C File Offset: 0x00238B3C
|
||||
[Token(Token = "0x6009CF8")]
|
||||
[Address(RVA = "0x21009D0", Offset = "0x20FF3D0", VA = "0x1821009D0", Slot = "16")]
|
||||
protected virtual void ResetCounter()
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
int num = 0;
|
||||
array[4] = (uint)num;
|
||||
array[4] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x06009CF9 RID: 40185 RVA: 0x0023A968 File Offset: 0x00238B68
|
||||
[Token(Token = "0x6009CF9")]
|
||||
[Address(RVA = "0x21013B0", Offset = "0x20FFDB0", VA = "0x1821013B0", 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: 0x06009CFA RID: 40186 RVA: 0x0023AA3C File Offset: 0x00238C3C
|
||||
[Token(Token = "0x6009CFA")]
|
||||
[Address(RVA = "0x2100100", Offset = "0x20FEB00", VA = "0x182100100", 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: 0x06009CFB RID: 40187 RVA: 0x0023AA7C File Offset: 0x00238C7C
|
||||
[Token(Token = "0x6009CFB")]
|
||||
[Address(RVA = "0x2100B50", Offset = "0x20FF550", VA = "0x182100B50")]
|
||||
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: 0x06009CFC RID: 40188 RVA: 0x0023AD28 File Offset: 0x00238F28
|
||||
[Token(Token = "0x6009CFC")]
|
||||
[Address(RVA = "0x21009B0", Offset = "0x20FF3B0", VA = "0x1821009B0")]
|
||||
internal static uint R(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009CFD RID: 40189 RVA: 0x0023AD38 File Offset: 0x00238F38
|
||||
[Token(Token = "0x6009CFD")]
|
||||
[Address(RVA = "0x2100A30", Offset = "0x20FF430", VA = "0x182100A30")]
|
||||
private void ResetLimitCounter()
|
||||
{
|
||||
int num = 0;
|
||||
this.cW0 = (uint)num;
|
||||
this.cW2 = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x06009CFE RID: 40190 RVA: 0x0023AD58 File Offset: 0x00238F58
|
||||
[Token(Token = "0x6009CFE")]
|
||||
[Address(RVA = "0x2100550", Offset = "0x20FEF50", VA = "0x182100550")]
|
||||
private bool LimitExceeded()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CFE)
|
||||
|
||||
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: 0x06009CFF RID: 40191 RVA: 0x0023ADA0 File Offset: 0x00238FA0
|
||||
[Token(Token = "0x6009CFF")]
|
||||
[Address(RVA = "0x2100520", Offset = "0x20FEF20", VA = "0x182100520")]
|
||||
private bool LimitExceeded(uint len)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CFF)
|
||||
|
||||
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: 0x06009D00 RID: 40192 RVA: 0x0023ADDC File Offset: 0x00238FDC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009D00")]
|
||||
[Address(RVA = "0x21016C0", Offset = "0x21000C0", VA = "0x1821016C0")]
|
||||
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: 0x040066D6 RID: 26326
|
||||
[Token(Token = "0x40066D6")]
|
||||
public static readonly int DEFAULT_ROUNDS;
|
||||
|
||||
// Token: 0x040066D7 RID: 26327
|
||||
[Token(Token = "0x40066D7")]
|
||||
private const int StateSize = 16;
|
||||
|
||||
// Token: 0x040066D8 RID: 26328
|
||||
[Token(Token = "0x40066D8")]
|
||||
private static readonly uint[] TAU_SIGMA;
|
||||
|
||||
// Token: 0x040066D9 RID: 26329
|
||||
[Token(Token = "0x40066D9")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] sigma;
|
||||
|
||||
// Token: 0x040066DA RID: 26330
|
||||
[Token(Token = "0x40066DA")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] tau;
|
||||
|
||||
// Token: 0x040066DB RID: 26331
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066DB")]
|
||||
protected int rounds;
|
||||
|
||||
// Token: 0x040066DC RID: 26332
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x40066DC")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x040066DD RID: 26333
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066DD")]
|
||||
internal uint[] engineState;
|
||||
|
||||
// Token: 0x040066DE RID: 26334
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066DE")]
|
||||
internal uint[] x;
|
||||
|
||||
// Token: 0x040066DF RID: 26335
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066DF")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x040066E0 RID: 26336
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40066E0")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040066E1 RID: 26337
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x40066E1")]
|
||||
private uint cW0;
|
||||
|
||||
// Token: 0x040066E2 RID: 26338
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40066E2")]
|
||||
private uint cW1;
|
||||
|
||||
// Token: 0x040066E3 RID: 26339
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
|
||||
[Token(Token = "0x40066E3")]
|
||||
private uint cW2;
|
||||
}
|
||||
}
|
||||
+313
@@ -0,0 +1,313 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016CB RID: 5835
|
||||
[Token(Token = "0x20016CB")]
|
||||
[StructLayout(3)]
|
||||
public class SeedEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009CC0 RID: 40128 RVA: 0x0023993C File Offset: 0x00237B3C
|
||||
[Token(Token = "0x6009CC0")]
|
||||
[Address(RVA = "0x2101BF0", Offset = "0x21005F0", VA = "0x182101BF0", 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: 0x170018EB RID: 6379
|
||||
// (get) Token: 0x06009CC1 RID: 40129 RVA: 0x00239974 File Offset: 0x00237B74
|
||||
[Token(Token = "0x170018EB")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009CC1")]
|
||||
[Address(RVA = "0x2102490", Offset = "0x2100E90", VA = "0x182102490", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SEED";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018EC RID: 6380
|
||||
// (get) Token: 0x06009CC2 RID: 40130 RVA: 0x00239988 File Offset: 0x00237B88
|
||||
[Token(Token = "0x170018EC")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009CC2")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009CC3 RID: 40131 RVA: 0x00239998 File Offset: 0x00237B98
|
||||
[Token(Token = "0x6009CC3")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009CC4 RID: 40132 RVA: 0x002399A8 File Offset: 0x00237BA8
|
||||
[Token(Token = "0x6009CC4")]
|
||||
[Address(RVA = "0x2101CF0", Offset = "0x21006F0", VA = "0x182101CF0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBuf, int inOff, byte[] outBuf, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CC4)
|
||||
|
||||
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: 0x06009CC5 RID: 40133 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009CC5")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009CC6 RID: 40134 RVA: 0x00239A74 File Offset: 0x00237C74
|
||||
[Token(Token = "0x6009CC6")]
|
||||
[Address(RVA = "0x21021C0", Offset = "0x2100BC0", VA = "0x1821021C0")]
|
||||
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: 0x06009CC7 RID: 40135 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009CC7")]
|
||||
[Address(RVA = "0x4577C0", Offset = "0x4561C0", VA = "0x1804577C0")]
|
||||
private int extractW1(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009CC8 RID: 40136 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009CC8")]
|
||||
[Address(RVA = "0x2102480", Offset = "0x2100E80", VA = "0x182102480")]
|
||||
private int extractW0(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009CC9 RID: 40137 RVA: 0x00239AF8 File Offset: 0x00237CF8
|
||||
[Token(Token = "0x6009CC9")]
|
||||
[Address(RVA = "0x21025D0", Offset = "0x2100FD0", VA = "0x1821025D0")]
|
||||
private long rotateLeft8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009CCA RID: 40138 RVA: 0x00239B08 File Offset: 0x00237D08
|
||||
[Token(Token = "0x6009CCA")]
|
||||
[Address(RVA = "0x21025E0", Offset = "0x2100FE0", VA = "0x1821025E0")]
|
||||
private long rotateRight8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009CCB RID: 40139 RVA: 0x00239B18 File Offset: 0x00237D18
|
||||
[Token(Token = "0x6009CCB")]
|
||||
[Address(RVA = "0x2102160", Offset = "0x2100B60", VA = "0x182102160")]
|
||||
private long bytesToLong(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
while (srcOff <= 7)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009CCC RID: 40140 RVA: 0x00239B34 File Offset: 0x00237D34
|
||||
[Token(Token = "0x6009CCC")]
|
||||
[Address(RVA = "0x21024C0", Offset = "0x2100EC0", VA = "0x1821024C0")]
|
||||
private void longToBytes(byte[] dest, int destOff, long value)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06009CCD RID: 40141 RVA: 0x00239B48 File Offset: 0x00237D48
|
||||
[Token(Token = "0x6009CCD")]
|
||||
[Address(RVA = "0x2101AD0", Offset = "0x21004D0", VA = "0x182101AD0")]
|
||||
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: 0x06009CCE RID: 40142 RVA: 0x00239B78 File Offset: 0x00237D78
|
||||
[Token(Token = "0x6009CCE")]
|
||||
[Address(RVA = "0x2101A00", Offset = "0x2100400", VA = "0x182101A00")]
|
||||
private long F(int ki0, int ki1, long r)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009CCE)
|
||||
|
||||
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: 0x06009CCF RID: 40143 RVA: 0x00239BBC File Offset: 0x00237DBC
|
||||
[Token(Token = "0x6009CCF")]
|
||||
[Address(RVA = "0x2102520", Offset = "0x2100F20", VA = "0x182102520")]
|
||||
private int phaseCalc1(int r0, int ki0, int r1, int ki1)
|
||||
{
|
||||
int num = this.G(r0);
|
||||
return this.G(r0);
|
||||
}
|
||||
|
||||
// Token: 0x06009CD0 RID: 40144 RVA: 0x00239BD8 File Offset: 0x00237DD8
|
||||
[Token(Token = "0x6009CD0")]
|
||||
[Address(RVA = "0x2102560", Offset = "0x2100F60", VA = "0x182102560")]
|
||||
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: 0x06009CD1 RID: 40145 RVA: 0x00239C04 File Offset: 0x00237E04
|
||||
[Token(Token = "0x6009CD1")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public SeedEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009CD2 RID: 40146 RVA: 0x00239C18 File Offset: 0x00237E18
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009CD2")]
|
||||
[Address(RVA = "0x2102020", Offset = "0x2100A20", VA = "0x182102020")]
|
||||
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: 0x040066C3 RID: 26307
|
||||
[Token(Token = "0x40066C3")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x040066C4 RID: 26308
|
||||
[Token(Token = "0x40066C4")]
|
||||
private static readonly uint[] SS0;
|
||||
|
||||
// Token: 0x040066C5 RID: 26309
|
||||
[Token(Token = "0x40066C5")]
|
||||
private static readonly uint[] SS1;
|
||||
|
||||
// Token: 0x040066C6 RID: 26310
|
||||
[Token(Token = "0x40066C6")]
|
||||
private static readonly uint[] SS2;
|
||||
|
||||
// Token: 0x040066C7 RID: 26311
|
||||
[Token(Token = "0x40066C7")]
|
||||
private static readonly uint[] SS3;
|
||||
|
||||
// Token: 0x040066C8 RID: 26312
|
||||
[Token(Token = "0x40066C8")]
|
||||
private static readonly uint[] KC;
|
||||
|
||||
// Token: 0x040066C9 RID: 26313
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066C9")]
|
||||
private int[] wKey;
|
||||
|
||||
// Token: 0x040066CA RID: 26314
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066CA")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016CC RID: 5836
|
||||
[Token(Token = "0x20016CC")]
|
||||
[StructLayout(3)]
|
||||
public class SeedWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x06009CD3 RID: 40147 RVA: 0x00239CB4 File Offset: 0x00237EB4
|
||||
[Token(Token = "0x6009CD3")]
|
||||
[Address(RVA = "0x21025F0", Offset = "0x2100FF0", VA = "0x1821025F0")]
|
||||
public SeedWrapEngine()
|
||||
{
|
||||
SeedEngine seedEngine;
|
||||
seedEngine.Reset();
|
||||
base..ctor(seedEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+1135
@@ -0,0 +1,1135 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D0 RID: 5840
|
||||
[Token(Token = "0x20016D0")]
|
||||
[StructLayout(3)]
|
||||
public sealed class SerpentEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x06009D01 RID: 40193 RVA: 0x0023AE24 File Offset: 0x00239024
|
||||
[Token(Token = "0x6009D01")]
|
||||
[Address(RVA = "0x2107A80", Offset = "0x2106480", VA = "0x182107A80", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D01)
|
||||
|
||||
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: 0x06009D02 RID: 40194 RVA: 0x0023BB50 File Offset: 0x00239D50
|
||||
[Token(Token = "0x6009D02")]
|
||||
[Address(RVA = "0x2105800", Offset = "0x2104200", VA = "0x182105800", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D02)
|
||||
|
||||
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: 0x06009D03 RID: 40195 RVA: 0x0023C300 File Offset: 0x0023A500
|
||||
[Token(Token = "0x6009D03")]
|
||||
[Address(RVA = "0x2103310", Offset = "0x2101D10", VA = "0x182103310", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D03)
|
||||
|
||||
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: 0x06009D04 RID: 40196 RVA: 0x0023CFB0 File Offset: 0x0023B1B0
|
||||
[Token(Token = "0x6009D04")]
|
||||
[Address(RVA = "0x210A970", Offset = "0x2109370", VA = "0x18210A970")]
|
||||
public SerpentEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+391
@@ -0,0 +1,391 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D1 RID: 5841
|
||||
[Token(Token = "0x20016D1")]
|
||||
[StructLayout(3)]
|
||||
public abstract class SerpentEngineBase : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D05 RID: 40197 RVA: 0x0023CFC4 File Offset: 0x0023B1C4
|
||||
[Token(Token = "0x6009D05")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
protected SerpentEngineBase()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009D06 RID: 40198 RVA: 0x0023CFD8 File Offset: 0x0023B1D8
|
||||
[Token(Token = "0x6009D06")]
|
||||
[Address(RVA = "0x2102A10", Offset = "0x2101410", VA = "0x182102A10", Slot = "10")]
|
||||
public virtual void Init(bool encrypting, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D06)
|
||||
|
||||
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: 0x170018F1 RID: 6385
|
||||
// (get) Token: 0x06009D07 RID: 40199 RVA: 0x0023D01C File Offset: 0x0023B21C
|
||||
[Token(Token = "0x170018F1")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D07")]
|
||||
[Address(RVA = "0x21032E0", Offset = "0x2101CE0", VA = "0x1821032E0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Serpent";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018F2 RID: 6386
|
||||
// (get) Token: 0x06009D08 RID: 40200 RVA: 0x0023D030 File Offset: 0x0023B230
|
||||
[Token(Token = "0x170018F2")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D08")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D09 RID: 40201 RVA: 0x0023D040 File Offset: 0x0023B240
|
||||
[Token(Token = "0x6009D09")]
|
||||
[Address(RVA = "0x2102650", Offset = "0x2101050", VA = "0x182102650", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return SerpentEngineBase.BlockSize;
|
||||
}
|
||||
|
||||
// Token: 0x06009D0A RID: 40202 RVA: 0x0023D054 File Offset: 0x0023B254
|
||||
[Token(Token = "0x6009D0A")]
|
||||
[Address(RVA = "0x2102DB0", Offset = "0x21017B0", VA = "0x182102DB0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D0A)
|
||||
|
||||
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: 0x06009D0B RID: 40203 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D0B")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D0C RID: 40204 RVA: 0x0023D0A0 File Offset: 0x0023B2A0
|
||||
[Token(Token = "0x6009D0C")]
|
||||
[Address(RVA = "0x21009B0", Offset = "0x20FF3B0", VA = "0x1821009B0")]
|
||||
protected static int RotateLeft(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D0D RID: 40205 RVA: 0x0023D0B0 File Offset: 0x0023B2B0
|
||||
[Token(Token = "0x6009D0D")]
|
||||
[Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")]
|
||||
private static int RotateRight(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D0E RID: 40206 RVA: 0x0023D0C0 File Offset: 0x0023B2C0
|
||||
[Token(Token = "0x6009D0E")]
|
||||
[Address(RVA = "0x2102F60", Offset = "0x2101960", VA = "0x182102F60")]
|
||||
protected void Sb0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = c;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D0F RID: 40207 RVA: 0x0023D0EC File Offset: 0x0023B2EC
|
||||
[Token(Token = "0x6009D0F")]
|
||||
[Address(RVA = "0x21026B0", Offset = "0x21010B0", VA = "0x1821026B0")]
|
||||
protected void Ib0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D10 RID: 40208 RVA: 0x0023D118 File Offset: 0x0023B318
|
||||
[Token(Token = "0x6009D10")]
|
||||
[Address(RVA = "0x2102FC0", Offset = "0x21019C0", VA = "0x182102FC0")]
|
||||
protected void Sb1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D11 RID: 40209 RVA: 0x0023D144 File Offset: 0x0023B344
|
||||
[Token(Token = "0x6009D11")]
|
||||
[Address(RVA = "0x2102710", Offset = "0x2101110", VA = "0x182102710")]
|
||||
protected void Ib1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = b;
|
||||
this.X2 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D12 RID: 40210 RVA: 0x0023D170 File Offset: 0x0023B370
|
||||
[Token(Token = "0x6009D12")]
|
||||
[Address(RVA = "0x2103020", Offset = "0x2101A20", VA = "0x182103020")]
|
||||
protected void Sb2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D13 RID: 40211 RVA: 0x0023D19C File Offset: 0x0023B39C
|
||||
[Token(Token = "0x6009D13")]
|
||||
[Address(RVA = "0x2102770", Offset = "0x2101170", VA = "0x182102770")]
|
||||
protected void Ib2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
this.X2 = b;
|
||||
}
|
||||
|
||||
// Token: 0x06009D14 RID: 40212 RVA: 0x0023D1C8 File Offset: 0x0023B3C8
|
||||
[Token(Token = "0x6009D14")]
|
||||
[Address(RVA = "0x21030A0", Offset = "0x2101AA0", VA = "0x1821030A0")]
|
||||
protected void Sb3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = b;
|
||||
}
|
||||
|
||||
// Token: 0x06009D15 RID: 40213 RVA: 0x0023D1F4 File Offset: 0x0023B3F4
|
||||
[Token(Token = "0x6009D15")]
|
||||
[Address(RVA = "0x21027E0", Offset = "0x21011E0", VA = "0x1821027E0")]
|
||||
protected void Ib3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X2 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x06009D16 RID: 40214 RVA: 0x0023D220 File Offset: 0x0023B420
|
||||
[Token(Token = "0x6009D16")]
|
||||
[Address(RVA = "0x2103120", Offset = "0x2101B20", VA = "0x182103120")]
|
||||
protected void Sb4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X0 = b;
|
||||
this.X2 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x06009D17 RID: 40215 RVA: 0x0023D24C File Offset: 0x0023B44C
|
||||
[Token(Token = "0x6009D17")]
|
||||
[Address(RVA = "0x2102840", Offset = "0x2101240", VA = "0x182102840")]
|
||||
protected void Ib4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x06009D18 RID: 40216 RVA: 0x0023D278 File Offset: 0x0023B478
|
||||
[Token(Token = "0x6009D18")]
|
||||
[Address(RVA = "0x2103180", Offset = "0x2101B80", VA = "0x182103180")]
|
||||
protected void Sb5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D19 RID: 40217 RVA: 0x0023D2A4 File Offset: 0x0023B4A4
|
||||
[Token(Token = "0x6009D19")]
|
||||
[Address(RVA = "0x21028A0", Offset = "0x21012A0", VA = "0x1821028A0")]
|
||||
protected void Ib5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1A RID: 40218 RVA: 0x0023D2D0 File Offset: 0x0023B4D0
|
||||
[Token(Token = "0x6009D1A")]
|
||||
[Address(RVA = "0x21031E0", Offset = "0x2101BE0", VA = "0x1821031E0")]
|
||||
protected void Sb6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1B RID: 40219 RVA: 0x0023D2FC File Offset: 0x0023B4FC
|
||||
[Token(Token = "0x6009D1B")]
|
||||
[Address(RVA = "0x2102920", Offset = "0x2101320", VA = "0x182102920")]
|
||||
protected void Ib6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1C RID: 40220 RVA: 0x0023D328 File Offset: 0x0023B528
|
||||
[Token(Token = "0x6009D1C")]
|
||||
[Address(RVA = "0x2103230", Offset = "0x2101C30", VA = "0x182103230")]
|
||||
protected void Sb7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = b;
|
||||
this.X3 = c;
|
||||
this.X2 = c;
|
||||
this.X0 = c;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1D RID: 40221 RVA: 0x0023D354 File Offset: 0x0023B554
|
||||
[Token(Token = "0x6009D1D")]
|
||||
[Address(RVA = "0x2102990", Offset = "0x2101390", VA = "0x182102990")]
|
||||
protected void Ib7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X1 = 0;
|
||||
this.X0 = 0;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1E RID: 40222 RVA: 0x0023D380 File Offset: 0x0023B580
|
||||
[Token(Token = "0x6009D1E")]
|
||||
[Address(RVA = "0x2102CD0", Offset = "0x21016D0", VA = "0x182102CD0")]
|
||||
protected void LT()
|
||||
{
|
||||
int num = this.X1;
|
||||
num += num;
|
||||
this.X1 = num;
|
||||
this.X3 = num;
|
||||
this.X0 = num;
|
||||
this.X2 = num;
|
||||
}
|
||||
|
||||
// Token: 0x06009D1F RID: 40223 RVA: 0x0023D3B4 File Offset: 0x0023B5B4
|
||||
[Token(Token = "0x6009D1F")]
|
||||
[Address(RVA = "0x2102BF0", Offset = "0x21015F0", VA = "0x182102BF0")]
|
||||
protected void InverseLT()
|
||||
{
|
||||
int x = this.X3;
|
||||
int x2 = this.X0;
|
||||
this.X3 = x;
|
||||
this.X1 = x2;
|
||||
this.X2 = x2;
|
||||
this.X0 = x2;
|
||||
}
|
||||
|
||||
// Token: 0x06009D20 RID: 40224
|
||||
[Token(Token = "0x6009D20")]
|
||||
[Address(Slot = "15")]
|
||||
protected abstract int[] MakeWorkingKey(byte[] key);
|
||||
|
||||
// Token: 0x06009D21 RID: 40225
|
||||
[Token(Token = "0x6009D21")]
|
||||
[Address(Slot = "16")]
|
||||
protected abstract void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x06009D22 RID: 40226
|
||||
[Token(Token = "0x6009D22")]
|
||||
[Address(Slot = "17")]
|
||||
protected abstract void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x040066E4 RID: 26340
|
||||
[Token(Token = "0x40066E4")]
|
||||
protected static readonly int BlockSize;
|
||||
|
||||
// Token: 0x040066E5 RID: 26341
|
||||
[Token(Token = "0x40066E5")]
|
||||
internal const int ROUNDS = 32;
|
||||
|
||||
// Token: 0x040066E6 RID: 26342
|
||||
[Token(Token = "0x40066E6")]
|
||||
internal const int PHI = -1640531527;
|
||||
|
||||
// Token: 0x040066E7 RID: 26343
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066E7")]
|
||||
protected bool encrypting;
|
||||
|
||||
// Token: 0x040066E8 RID: 26344
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066E8")]
|
||||
protected int[] wKey;
|
||||
|
||||
// Token: 0x040066E9 RID: 26345
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066E9")]
|
||||
protected int X0;
|
||||
|
||||
// Token: 0x040066EA RID: 26346
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40066EA")]
|
||||
protected int X1;
|
||||
|
||||
// Token: 0x040066EB RID: 26347
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066EB")]
|
||||
protected int X2;
|
||||
|
||||
// Token: 0x040066EC RID: 26348
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40066EC")]
|
||||
protected int X3;
|
||||
}
|
||||
}
|
||||
+261
@@ -0,0 +1,261 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D2 RID: 5842
|
||||
[Token(Token = "0x20016D2")]
|
||||
[StructLayout(3)]
|
||||
public class SkipjackEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D24 RID: 40228 RVA: 0x0023D3FC File Offset: 0x0023B5FC
|
||||
[Token(Token = "0x6009D24")]
|
||||
[Address(RVA = "0x210B490", Offset = "0x2109E90", VA = "0x18210B490", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D24)
|
||||
|
||||
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: 0x170018F3 RID: 6387
|
||||
// (get) Token: 0x06009D25 RID: 40229 RVA: 0x0023D528 File Offset: 0x0023B728
|
||||
[Token(Token = "0x170018F3")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D25")]
|
||||
[Address(RVA = "0x210B9D0", Offset = "0x210A3D0", VA = "0x18210B9D0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SKIPJACK";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018F4 RID: 6388
|
||||
// (get) Token: 0x06009D26 RID: 40230 RVA: 0x0023D53C File Offset: 0x0023B73C
|
||||
[Token(Token = "0x170018F4")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D26")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D27 RID: 40231 RVA: 0x0023D54C File Offset: 0x0023B74C
|
||||
[Token(Token = "0x6009D27")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009D28 RID: 40232 RVA: 0x0023D55C File Offset: 0x0023B75C
|
||||
[Token(Token = "0x6009D28")]
|
||||
[Address(RVA = "0x210B840", Offset = "0x210A240", VA = "0x18210B840", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D28)
|
||||
|
||||
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: 0x06009D29 RID: 40233 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D29")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D2A RID: 40234 RVA: 0x0023D5A0 File Offset: 0x0023B7A0
|
||||
[Token(Token = "0x6009D2A")]
|
||||
[Address(RVA = "0x210B080", Offset = "0x2109A80", VA = "0x18210B080")]
|
||||
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: 0x06009D2B RID: 40235 RVA: 0x0023D600 File Offset: 0x0023B800
|
||||
[Token(Token = "0x6009D2B")]
|
||||
[Address(RVA = "0x210AD30", Offset = "0x2109730", VA = "0x18210AD30", 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: 0x06009D2C RID: 40236 RVA: 0x0023D674 File Offset: 0x0023B874
|
||||
[Token(Token = "0x6009D2C")]
|
||||
[Address(RVA = "0x210B280", Offset = "0x2109C80", VA = "0x18210B280")]
|
||||
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: 0x06009D2D RID: 40237 RVA: 0x0023D6CC File Offset: 0x0023B8CC
|
||||
[Token(Token = "0x6009D2D")]
|
||||
[Address(RVA = "0x210A9D0", Offset = "0x21093D0", VA = "0x18210A9D0", 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: 0x06009D2E RID: 40238 RVA: 0x0023D73C File Offset: 0x0023B93C
|
||||
[Token(Token = "0x6009D2E")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public SkipjackEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x06009D2F RID: 40239 RVA: 0x0023D750 File Offset: 0x0023B950
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x6009D2F")]
|
||||
[Address(RVA = "0x210B970", Offset = "0x210A370", VA = "0x18210B970")]
|
||||
static SkipjackEngine()
|
||||
{
|
||||
short[] array = new short[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.21A3E0CD2847E2F12EEE37749A9E206494A55100).FieldHandle);
|
||||
SkipjackEngine.ftable = array;
|
||||
}
|
||||
|
||||
// Token: 0x040066ED RID: 26349
|
||||
[Token(Token = "0x40066ED")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040066EE RID: 26350
|
||||
[Token(Token = "0x40066EE")]
|
||||
private static readonly short[] ftable;
|
||||
|
||||
// Token: 0x040066EF RID: 26351
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066EF")]
|
||||
private int[] key0;
|
||||
|
||||
// Token: 0x040066F0 RID: 26352
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066F0")]
|
||||
private int[] key1;
|
||||
|
||||
// Token: 0x040066F1 RID: 26353
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066F1")]
|
||||
private int[] key2;
|
||||
|
||||
// Token: 0x040066F2 RID: 26354
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40066F2")]
|
||||
private int[] key3;
|
||||
|
||||
// Token: 0x040066F3 RID: 26355
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40066F3")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
using Hjg.Pngcs;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D3 RID: 5843
|
||||
[Token(Token = "0x20016D3")]
|
||||
[StructLayout(3)]
|
||||
public class TeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D30 RID: 40240 RVA: 0x0023D77C File Offset: 0x0023B97C
|
||||
[Token(Token = "0x6009D30")]
|
||||
[Address(RVA = "0x1C16710", Offset = "0x1C15110", VA = "0x181C16710")]
|
||||
public TeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
this._initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x170018F5 RID: 6389
|
||||
// (get) Token: 0x06009D31 RID: 40241 RVA: 0x0023D798 File Offset: 0x0023B998
|
||||
[Token(Token = "0x170018F5")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D31")]
|
||||
[Address(RVA = "0x210BF80", Offset = "0x210A980", VA = "0x18210BF80", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "TEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018F6 RID: 6390
|
||||
// (get) Token: 0x06009D32 RID: 40242 RVA: 0x0023D7AC File Offset: 0x0023B9AC
|
||||
[Token(Token = "0x170018F6")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D32")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D33 RID: 40243 RVA: 0x0023D7BC File Offset: 0x0023B9BC
|
||||
[Token(Token = "0x6009D33")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009D34 RID: 40244 RVA: 0x0023D7CC File Offset: 0x0023B9CC
|
||||
[Token(Token = "0x6009D34")]
|
||||
[Address(RVA = "0x210BA00", Offset = "0x210A400", VA = "0x18210BA00", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D34)
|
||||
|
||||
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_3B:
|
||||
stloc:ArgumentException(var_4_4B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA 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: 0x06009D35 RID: 40245 RVA: 0x0023D828 File Offset: 0x0023BA28
|
||||
[Token(Token = "0x6009D35")]
|
||||
[Address(RVA = "0x210BBA0", Offset = "0x210A5A0", VA = "0x18210BBA0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D35)
|
||||
|
||||
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_59:
|
||||
stloc:InvalidOperationException(var_11_60, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_10)))
|
||||
}
|
||||
|
||||
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: 0x06009D36 RID: 40246 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D36")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D37 RID: 40247 RVA: 0x0023D898 File Offset: 0x0023BA98
|
||||
[Token(Token = "0x6009D37")]
|
||||
[Address(RVA = "0x210BFB0", Offset = "0x210A9B0", VA = "0x18210BFB0")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = PngHelperInternal.ReadInt4fromBytes(key, num);
|
||||
this._a = (uint)num2;
|
||||
int num3 = PngHelperInternal.ReadInt4fromBytes(key, 4);
|
||||
this._b = (uint)num3;
|
||||
int num4 = PngHelperInternal.ReadInt4fromBytes(key, 8);
|
||||
this._c = (uint)num4;
|
||||
int num5 = PngHelperInternal.ReadInt4fromBytes(key, 12);
|
||||
this._d = (uint)num5;
|
||||
}
|
||||
|
||||
// Token: 0x06009D38 RID: 40248 RVA: 0x0023D8E8 File Offset: 0x0023BAE8
|
||||
[Token(Token = "0x6009D38")]
|
||||
[Address(RVA = "0x210BE90", Offset = "0x210A890", VA = "0x18210BE90")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D38)
|
||||
|
||||
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_06, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_0D, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_2_14, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1B, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(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: 0x06009D39 RID: 40249 RVA: 0x0023D910 File Offset: 0x0023BB10
|
||||
[Token(Token = "0x6009D39")]
|
||||
[Address(RVA = "0x210BDA0", Offset = "0x210A7A0", VA = "0x18210BDA0")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D39)
|
||||
|
||||
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_06, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_0D, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_2_14, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1B, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(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: 0x040066F4 RID: 26356
|
||||
[Token(Token = "0x40066F4")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x040066F5 RID: 26357
|
||||
[Token(Token = "0x40066F5")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x040066F6 RID: 26358
|
||||
[Token(Token = "0x40066F6")]
|
||||
private const uint delta = 2654435769U;
|
||||
|
||||
// Token: 0x040066F7 RID: 26359
|
||||
[Token(Token = "0x40066F7")]
|
||||
private const uint d_sum = 3337565984U;
|
||||
|
||||
// Token: 0x040066F8 RID: 26360
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40066F8")]
|
||||
private uint _a;
|
||||
|
||||
// Token: 0x040066F9 RID: 26361
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x40066F9")]
|
||||
private uint _b;
|
||||
|
||||
// Token: 0x040066FA RID: 26362
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40066FA")]
|
||||
private uint _c;
|
||||
|
||||
// Token: 0x040066FB RID: 26363
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40066FB")]
|
||||
private uint _d;
|
||||
|
||||
// Token: 0x040066FC RID: 26364
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40066FC")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x040066FD RID: 26365
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x21")]
|
||||
[Token(Token = "0x40066FD")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+1539
@@ -0,0 +1,1539 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D4 RID: 5844
|
||||
[Token(Token = "0x20016D4")]
|
||||
[StructLayout(3)]
|
||||
public class ThreefishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D3A RID: 40250 RVA: 0x0023D938 File Offset: 0x0023BB38
|
||||
[Token(Token = "0x6009D3A")]
|
||||
[Address(RVA = "0x2111FC0", Offset = "0x21109C0", VA = "0x182111FC0")]
|
||||
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: 0x06009D3B RID: 40251 RVA: 0x0023D9FC File Offset: 0x0023BBFC
|
||||
[Token(Token = "0x6009D3B")]
|
||||
[Address(RVA = "0x2112240", Offset = "0x2110C40", VA = "0x182112240")]
|
||||
public ThreefishEngine(int blocksizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D3B)
|
||||
|
||||
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: 0x06009D3C RID: 40252 RVA: 0x0023DA9C File Offset: 0x0023BC9C
|
||||
[Token(Token = "0x6009D3C")]
|
||||
[Address(RVA = "0x2111100", Offset = "0x210FB00", VA = "0x182111100", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D3C)
|
||||
|
||||
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: 0x06009D3D RID: 40253 RVA: 0x0023DBBC File Offset: 0x0023BDBC
|
||||
[Token(Token = "0x6009D3D")]
|
||||
[Address(RVA = "0x21110B0", Offset = "0x210FAB0", VA = "0x1821110B0")]
|
||||
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: 0x06009D3E RID: 40254 RVA: 0x0023DBE8 File Offset: 0x0023BDE8
|
||||
[Token(Token = "0x6009D3E")]
|
||||
[Address(RVA = "0x2111A20", Offset = "0x2110420", VA = "0x182111A20")]
|
||||
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: 0x06009D3F RID: 40255 RVA: 0x0023DC78 File Offset: 0x0023BE78
|
||||
[Token(Token = "0x6009D3F")]
|
||||
[Address(RVA = "0x2111BA0", Offset = "0x21105A0", VA = "0x182111BA0")]
|
||||
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: 0x170018F7 RID: 6391
|
||||
// (get) Token: 0x06009D40 RID: 40256 RVA: 0x0023DD34 File Offset: 0x0023BF34
|
||||
[Token(Token = "0x170018F7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D40")]
|
||||
[Address(RVA = "0x2112380", Offset = "0x2110D80", VA = "0x182112380", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.blocksizeBytes;
|
||||
return "Threefish-" + num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018F8 RID: 6392
|
||||
// (get) Token: 0x06009D41 RID: 40257 RVA: 0x0023DD54 File Offset: 0x0023BF54
|
||||
[Token(Token = "0x170018F8")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D41")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D42 RID: 40258 RVA: 0x0023DD64 File Offset: 0x0023BF64
|
||||
[Token(Token = "0x6009D42")]
|
||||
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.blocksizeBytes;
|
||||
}
|
||||
|
||||
// Token: 0x06009D43 RID: 40259 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D43")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D44 RID: 40260 RVA: 0x0023DD78 File Offset: 0x0023BF78
|
||||
[Token(Token = "0x6009D44")]
|
||||
[Address(RVA = "0x21116F0", Offset = "0x21100F0", VA = "0x1821116F0", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D44)
|
||||
|
||||
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: 0x06009D45 RID: 40261 RVA: 0x0023DE3C File Offset: 0x0023C03C
|
||||
[Token(Token = "0x6009D45")]
|
||||
[Address(RVA = "0x2111560", Offset = "0x210FF60", VA = "0x182111560")]
|
||||
internal int ProcessBlock(ulong[] inWords, ulong[] outWords)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D45)
|
||||
|
||||
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: 0x06009D46 RID: 40262 RVA: 0x0023DEB4 File Offset: 0x0023C0B4
|
||||
[Token(Token = "0x6009D46")]
|
||||
[Address(RVA = "0x2110EB0", Offset = "0x210F8B0", VA = "0x182110EB0")]
|
||||
internal static ulong BytesToWord(byte[] bytes, int off)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009D47 RID: 40263 RVA: 0x0023DED4 File Offset: 0x0023C0D4
|
||||
[Token(Token = "0x6009D47")]
|
||||
[Address(RVA = "0x2111DE0", Offset = "0x21107E0", VA = "0x182111DE0")]
|
||||
internal static void WordToBytes(ulong word, byte[] bytes, int off)
|
||||
{
|
||||
int num = bytes.Length;
|
||||
int num2 = off + 1;
|
||||
num = off + 6;
|
||||
}
|
||||
|
||||
// Token: 0x06009D48 RID: 40264 RVA: 0x0023DEF8 File Offset: 0x0023C0F8
|
||||
[Token(Token = "0x6009D48")]
|
||||
[Address(RVA = "0x2111A00", Offset = "0x2110400", VA = "0x182111A00")]
|
||||
private static ulong RotlXor(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D49 RID: 40265 RVA: 0x0023DF08 File Offset: 0x0023C108
|
||||
[Token(Token = "0x6009D49")]
|
||||
[Address(RVA = "0x2111FA0", Offset = "0x21109A0", VA = "0x182111FA0")]
|
||||
private static ulong XorRotr(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x040066FE RID: 26366
|
||||
[Token(Token = "0x40066FE")]
|
||||
public const int BLOCKSIZE_256 = 256;
|
||||
|
||||
// Token: 0x040066FF RID: 26367
|
||||
[Token(Token = "0x40066FF")]
|
||||
public const int BLOCKSIZE_512 = 512;
|
||||
|
||||
// Token: 0x04006700 RID: 26368
|
||||
[Token(Token = "0x4006700")]
|
||||
public const int BLOCKSIZE_1024 = 1024;
|
||||
|
||||
// Token: 0x04006701 RID: 26369
|
||||
[Token(Token = "0x4006701")]
|
||||
private const int TWEAK_SIZE_BYTES = 16;
|
||||
|
||||
// Token: 0x04006702 RID: 26370
|
||||
[Token(Token = "0x4006702")]
|
||||
private const int TWEAK_SIZE_WORDS = 2;
|
||||
|
||||
// Token: 0x04006703 RID: 26371
|
||||
[Token(Token = "0x4006703")]
|
||||
private const int ROUNDS_256 = 72;
|
||||
|
||||
// Token: 0x04006704 RID: 26372
|
||||
[Token(Token = "0x4006704")]
|
||||
private const int ROUNDS_512 = 72;
|
||||
|
||||
// Token: 0x04006705 RID: 26373
|
||||
[Token(Token = "0x4006705")]
|
||||
private const int ROUNDS_1024 = 80;
|
||||
|
||||
// Token: 0x04006706 RID: 26374
|
||||
[Token(Token = "0x4006706")]
|
||||
private const int MAX_ROUNDS = 80;
|
||||
|
||||
// Token: 0x04006707 RID: 26375
|
||||
[Token(Token = "0x4006707")]
|
||||
private const ulong C_240 = 2004413935125273122UL;
|
||||
|
||||
// Token: 0x04006708 RID: 26376
|
||||
[Token(Token = "0x4006708")]
|
||||
private static readonly int[] MOD9 = new int[80];
|
||||
|
||||
// Token: 0x04006709 RID: 26377
|
||||
[Token(Token = "0x4006709")]
|
||||
private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x0400670A RID: 26378
|
||||
[Token(Token = "0x400670A")]
|
||||
private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x0400670B RID: 26379
|
||||
[Token(Token = "0x400670B")]
|
||||
private static readonly int[] MOD3;
|
||||
|
||||
// Token: 0x0400670C RID: 26380
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400670C")]
|
||||
private readonly int blocksizeBytes;
|
||||
|
||||
// Token: 0x0400670D RID: 26381
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x400670D")]
|
||||
private readonly int blocksizeWords;
|
||||
|
||||
// Token: 0x0400670E RID: 26382
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400670E")]
|
||||
private readonly ulong[] currentBlock;
|
||||
|
||||
// Token: 0x0400670F RID: 26383
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400670F")]
|
||||
private readonly ulong[] t;
|
||||
|
||||
// Token: 0x04006710 RID: 26384
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006710")]
|
||||
private readonly ulong[] kw;
|
||||
|
||||
// Token: 0x04006711 RID: 26385
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006711")]
|
||||
private readonly ThreefishEngine.ThreefishCipher cipher;
|
||||
|
||||
// Token: 0x04006712 RID: 26386
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006712")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x020016D5 RID: 5845
|
||||
[Token(Token = "0x20016D5")]
|
||||
private abstract class ThreefishCipher
|
||||
{
|
||||
// Token: 0x06009D4A RID: 40266 RVA: 0x0023DF18 File Offset: 0x0023C118
|
||||
[Token(Token = "0x6009D4A")]
|
||||
[Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")]
|
||||
protected ThreefishCipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x06009D4B RID: 40267
|
||||
[Token(Token = "0x6009D4B")]
|
||||
[Address(Slot = "4")]
|
||||
internal abstract void EncryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x06009D4C RID: 40268
|
||||
[Token(Token = "0x6009D4C")]
|
||||
[Address(Slot = "5")]
|
||||
internal abstract void DecryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x04006713 RID: 26387
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006713")]
|
||||
protected readonly ulong[] t;
|
||||
|
||||
// Token: 0x04006714 RID: 26388
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006714")]
|
||||
protected readonly ulong[] kw;
|
||||
}
|
||||
|
||||
// Token: 0x020016D6 RID: 5846
|
||||
[Token(Token = "0x20016D6")]
|
||||
private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x06009D4D RID: 40269 RVA: 0x0023DF3C File Offset: 0x0023C13C
|
||||
[Token(Token = "0x6009D4D")]
|
||||
[Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")]
|
||||
public Threefish256Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x06009D4E RID: 40270 RVA: 0x0023DF60 File Offset: 0x0023C160
|
||||
[Token(Token = "0x6009D4E")]
|
||||
[Address(RVA = "0x210F2E0", Offset = "0x210DCE0", VA = "0x18210F2E0", 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: 0x06009D4F RID: 40271 RVA: 0x0023E0D8 File Offset: 0x0023C2D8
|
||||
[Token(Token = "0x6009D4F")]
|
||||
[Address(RVA = "0x210EC20", Offset = "0x210D620", VA = "0x18210EC20", 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: 0x04006715 RID: 26389
|
||||
[Token(Token = "0x4006715")]
|
||||
private const int ROTATION_0_0 = 14;
|
||||
|
||||
// Token: 0x04006716 RID: 26390
|
||||
[Token(Token = "0x4006716")]
|
||||
private const int ROTATION_0_1 = 16;
|
||||
|
||||
// Token: 0x04006717 RID: 26391
|
||||
[Token(Token = "0x4006717")]
|
||||
private const int ROTATION_1_0 = 52;
|
||||
|
||||
// Token: 0x04006718 RID: 26392
|
||||
[Token(Token = "0x4006718")]
|
||||
private const int ROTATION_1_1 = 57;
|
||||
|
||||
// Token: 0x04006719 RID: 26393
|
||||
[Token(Token = "0x4006719")]
|
||||
private const int ROTATION_2_0 = 23;
|
||||
|
||||
// Token: 0x0400671A RID: 26394
|
||||
[Token(Token = "0x400671A")]
|
||||
private const int ROTATION_2_1 = 40;
|
||||
|
||||
// Token: 0x0400671B RID: 26395
|
||||
[Token(Token = "0x400671B")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x0400671C RID: 26396
|
||||
[Token(Token = "0x400671C")]
|
||||
private const int ROTATION_3_1 = 37;
|
||||
|
||||
// Token: 0x0400671D RID: 26397
|
||||
[Token(Token = "0x400671D")]
|
||||
private const int ROTATION_4_0 = 25;
|
||||
|
||||
// Token: 0x0400671E RID: 26398
|
||||
[Token(Token = "0x400671E")]
|
||||
private const int ROTATION_4_1 = 33;
|
||||
|
||||
// Token: 0x0400671F RID: 26399
|
||||
[Token(Token = "0x400671F")]
|
||||
private const int ROTATION_5_0 = 46;
|
||||
|
||||
// Token: 0x04006720 RID: 26400
|
||||
[Token(Token = "0x4006720")]
|
||||
private const int ROTATION_5_1 = 12;
|
||||
|
||||
// Token: 0x04006721 RID: 26401
|
||||
[Token(Token = "0x4006721")]
|
||||
private const int ROTATION_6_0 = 58;
|
||||
|
||||
// Token: 0x04006722 RID: 26402
|
||||
[Token(Token = "0x4006722")]
|
||||
private const int ROTATION_6_1 = 22;
|
||||
|
||||
// Token: 0x04006723 RID: 26403
|
||||
[Token(Token = "0x4006723")]
|
||||
private const int ROTATION_7_0 = 32;
|
||||
|
||||
// Token: 0x04006724 RID: 26404
|
||||
[Token(Token = "0x4006724")]
|
||||
private const int ROTATION_7_1 = 32;
|
||||
}
|
||||
|
||||
// Token: 0x020016D7 RID: 5847
|
||||
[Token(Token = "0x20016D7")]
|
||||
private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x06009D50 RID: 40272 RVA: 0x0023E2B8 File Offset: 0x0023C4B8
|
||||
[Token(Token = "0x6009D50")]
|
||||
[Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")]
|
||||
internal Threefish512Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x06009D51 RID: 40273 RVA: 0x0023E2DC File Offset: 0x0023C4DC
|
||||
[Token(Token = "0x6009D51")]
|
||||
[Address(RVA = "0x2110480", Offset = "0x210EE80", VA = "0x182110480", 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: 0x06009D52 RID: 40274 RVA: 0x0023E4F4 File Offset: 0x0023C6F4
|
||||
[Token(Token = "0x6009D52")]
|
||||
[Address(RVA = "0x210F910", Offset = "0x210E310", VA = "0x18210F910", 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: 0x04006725 RID: 26405
|
||||
[Token(Token = "0x4006725")]
|
||||
private const int ROTATION_0_0 = 46;
|
||||
|
||||
// Token: 0x04006726 RID: 26406
|
||||
[Token(Token = "0x4006726")]
|
||||
private const int ROTATION_0_1 = 36;
|
||||
|
||||
// Token: 0x04006727 RID: 26407
|
||||
[Token(Token = "0x4006727")]
|
||||
private const int ROTATION_0_2 = 19;
|
||||
|
||||
// Token: 0x04006728 RID: 26408
|
||||
[Token(Token = "0x4006728")]
|
||||
private const int ROTATION_0_3 = 37;
|
||||
|
||||
// Token: 0x04006729 RID: 26409
|
||||
[Token(Token = "0x4006729")]
|
||||
private const int ROTATION_1_0 = 33;
|
||||
|
||||
// Token: 0x0400672A RID: 26410
|
||||
[Token(Token = "0x400672A")]
|
||||
private const int ROTATION_1_1 = 27;
|
||||
|
||||
// Token: 0x0400672B RID: 26411
|
||||
[Token(Token = "0x400672B")]
|
||||
private const int ROTATION_1_2 = 14;
|
||||
|
||||
// Token: 0x0400672C RID: 26412
|
||||
[Token(Token = "0x400672C")]
|
||||
private const int ROTATION_1_3 = 42;
|
||||
|
||||
// Token: 0x0400672D RID: 26413
|
||||
[Token(Token = "0x400672D")]
|
||||
private const int ROTATION_2_0 = 17;
|
||||
|
||||
// Token: 0x0400672E RID: 26414
|
||||
[Token(Token = "0x400672E")]
|
||||
private const int ROTATION_2_1 = 49;
|
||||
|
||||
// Token: 0x0400672F RID: 26415
|
||||
[Token(Token = "0x400672F")]
|
||||
private const int ROTATION_2_2 = 36;
|
||||
|
||||
// Token: 0x04006730 RID: 26416
|
||||
[Token(Token = "0x4006730")]
|
||||
private const int ROTATION_2_3 = 39;
|
||||
|
||||
// Token: 0x04006731 RID: 26417
|
||||
[Token(Token = "0x4006731")]
|
||||
private const int ROTATION_3_0 = 44;
|
||||
|
||||
// Token: 0x04006732 RID: 26418
|
||||
[Token(Token = "0x4006732")]
|
||||
private const int ROTATION_3_1 = 9;
|
||||
|
||||
// Token: 0x04006733 RID: 26419
|
||||
[Token(Token = "0x4006733")]
|
||||
private const int ROTATION_3_2 = 54;
|
||||
|
||||
// Token: 0x04006734 RID: 26420
|
||||
[Token(Token = "0x4006734")]
|
||||
private const int ROTATION_3_3 = 56;
|
||||
|
||||
// Token: 0x04006735 RID: 26421
|
||||
[Token(Token = "0x4006735")]
|
||||
private const int ROTATION_4_0 = 39;
|
||||
|
||||
// Token: 0x04006736 RID: 26422
|
||||
[Token(Token = "0x4006736")]
|
||||
private const int ROTATION_4_1 = 30;
|
||||
|
||||
// Token: 0x04006737 RID: 26423
|
||||
[Token(Token = "0x4006737")]
|
||||
private const int ROTATION_4_2 = 34;
|
||||
|
||||
// Token: 0x04006738 RID: 26424
|
||||
[Token(Token = "0x4006738")]
|
||||
private const int ROTATION_4_3 = 24;
|
||||
|
||||
// Token: 0x04006739 RID: 26425
|
||||
[Token(Token = "0x4006739")]
|
||||
private const int ROTATION_5_0 = 13;
|
||||
|
||||
// Token: 0x0400673A RID: 26426
|
||||
[Token(Token = "0x400673A")]
|
||||
private const int ROTATION_5_1 = 50;
|
||||
|
||||
// Token: 0x0400673B RID: 26427
|
||||
[Token(Token = "0x400673B")]
|
||||
private const int ROTATION_5_2 = 10;
|
||||
|
||||
// Token: 0x0400673C RID: 26428
|
||||
[Token(Token = "0x400673C")]
|
||||
private const int ROTATION_5_3 = 17;
|
||||
|
||||
// Token: 0x0400673D RID: 26429
|
||||
[Token(Token = "0x400673D")]
|
||||
private const int ROTATION_6_0 = 25;
|
||||
|
||||
// Token: 0x0400673E RID: 26430
|
||||
[Token(Token = "0x400673E")]
|
||||
private const int ROTATION_6_1 = 29;
|
||||
|
||||
// Token: 0x0400673F RID: 26431
|
||||
[Token(Token = "0x400673F")]
|
||||
private const int ROTATION_6_2 = 39;
|
||||
|
||||
// Token: 0x04006740 RID: 26432
|
||||
[Token(Token = "0x4006740")]
|
||||
private const int ROTATION_6_3 = 43;
|
||||
|
||||
// Token: 0x04006741 RID: 26433
|
||||
[Token(Token = "0x4006741")]
|
||||
private const int ROTATION_7_0 = 8;
|
||||
|
||||
// Token: 0x04006742 RID: 26434
|
||||
[Token(Token = "0x4006742")]
|
||||
private const int ROTATION_7_1 = 35;
|
||||
|
||||
// Token: 0x04006743 RID: 26435
|
||||
[Token(Token = "0x4006743")]
|
||||
private const int ROTATION_7_2 = 56;
|
||||
|
||||
// Token: 0x04006744 RID: 26436
|
||||
[Token(Token = "0x4006744")]
|
||||
private const int ROTATION_7_3 = 22;
|
||||
}
|
||||
|
||||
// Token: 0x020016D8 RID: 5848
|
||||
[Token(Token = "0x20016D8")]
|
||||
private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x06009D53 RID: 40275 RVA: 0x0023E818 File Offset: 0x0023CA18
|
||||
[Token(Token = "0x6009D53")]
|
||||
[Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")]
|
||||
public Threefish1024Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x06009D54 RID: 40276 RVA: 0x0023E83C File Offset: 0x0023CA3C
|
||||
[Token(Token = "0x6009D54")]
|
||||
[Address(RVA = "0x210D770", Offset = "0x210C170", VA = "0x18210D770", 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: 0x06009D55 RID: 40277 RVA: 0x0023E9F8 File Offset: 0x0023CBF8
|
||||
[Token(Token = "0x6009D55")]
|
||||
[Address(RVA = "0x210C020", Offset = "0x210AA20", VA = "0x18210C020", 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: 0x04006745 RID: 26437
|
||||
[Token(Token = "0x4006745")]
|
||||
private const int ROTATION_0_0 = 24;
|
||||
|
||||
// Token: 0x04006746 RID: 26438
|
||||
[Token(Token = "0x4006746")]
|
||||
private const int ROTATION_0_1 = 13;
|
||||
|
||||
// Token: 0x04006747 RID: 26439
|
||||
[Token(Token = "0x4006747")]
|
||||
private const int ROTATION_0_2 = 8;
|
||||
|
||||
// Token: 0x04006748 RID: 26440
|
||||
[Token(Token = "0x4006748")]
|
||||
private const int ROTATION_0_3 = 47;
|
||||
|
||||
// Token: 0x04006749 RID: 26441
|
||||
[Token(Token = "0x4006749")]
|
||||
private const int ROTATION_0_4 = 8;
|
||||
|
||||
// Token: 0x0400674A RID: 26442
|
||||
[Token(Token = "0x400674A")]
|
||||
private const int ROTATION_0_5 = 17;
|
||||
|
||||
// Token: 0x0400674B RID: 26443
|
||||
[Token(Token = "0x400674B")]
|
||||
private const int ROTATION_0_6 = 22;
|
||||
|
||||
// Token: 0x0400674C RID: 26444
|
||||
[Token(Token = "0x400674C")]
|
||||
private const int ROTATION_0_7 = 37;
|
||||
|
||||
// Token: 0x0400674D RID: 26445
|
||||
[Token(Token = "0x400674D")]
|
||||
private const int ROTATION_1_0 = 38;
|
||||
|
||||
// Token: 0x0400674E RID: 26446
|
||||
[Token(Token = "0x400674E")]
|
||||
private const int ROTATION_1_1 = 19;
|
||||
|
||||
// Token: 0x0400674F RID: 26447
|
||||
[Token(Token = "0x400674F")]
|
||||
private const int ROTATION_1_2 = 10;
|
||||
|
||||
// Token: 0x04006750 RID: 26448
|
||||
[Token(Token = "0x4006750")]
|
||||
private const int ROTATION_1_3 = 55;
|
||||
|
||||
// Token: 0x04006751 RID: 26449
|
||||
[Token(Token = "0x4006751")]
|
||||
private const int ROTATION_1_4 = 49;
|
||||
|
||||
// Token: 0x04006752 RID: 26450
|
||||
[Token(Token = "0x4006752")]
|
||||
private const int ROTATION_1_5 = 18;
|
||||
|
||||
// Token: 0x04006753 RID: 26451
|
||||
[Token(Token = "0x4006753")]
|
||||
private const int ROTATION_1_6 = 23;
|
||||
|
||||
// Token: 0x04006754 RID: 26452
|
||||
[Token(Token = "0x4006754")]
|
||||
private const int ROTATION_1_7 = 52;
|
||||
|
||||
// Token: 0x04006755 RID: 26453
|
||||
[Token(Token = "0x4006755")]
|
||||
private const int ROTATION_2_0 = 33;
|
||||
|
||||
// Token: 0x04006756 RID: 26454
|
||||
[Token(Token = "0x4006756")]
|
||||
private const int ROTATION_2_1 = 4;
|
||||
|
||||
// Token: 0x04006757 RID: 26455
|
||||
[Token(Token = "0x4006757")]
|
||||
private const int ROTATION_2_2 = 51;
|
||||
|
||||
// Token: 0x04006758 RID: 26456
|
||||
[Token(Token = "0x4006758")]
|
||||
private const int ROTATION_2_3 = 13;
|
||||
|
||||
// Token: 0x04006759 RID: 26457
|
||||
[Token(Token = "0x4006759")]
|
||||
private const int ROTATION_2_4 = 34;
|
||||
|
||||
// Token: 0x0400675A RID: 26458
|
||||
[Token(Token = "0x400675A")]
|
||||
private const int ROTATION_2_5 = 41;
|
||||
|
||||
// Token: 0x0400675B RID: 26459
|
||||
[Token(Token = "0x400675B")]
|
||||
private const int ROTATION_2_6 = 59;
|
||||
|
||||
// Token: 0x0400675C RID: 26460
|
||||
[Token(Token = "0x400675C")]
|
||||
private const int ROTATION_2_7 = 17;
|
||||
|
||||
// Token: 0x0400675D RID: 26461
|
||||
[Token(Token = "0x400675D")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x0400675E RID: 26462
|
||||
[Token(Token = "0x400675E")]
|
||||
private const int ROTATION_3_1 = 20;
|
||||
|
||||
// Token: 0x0400675F RID: 26463
|
||||
[Token(Token = "0x400675F")]
|
||||
private const int ROTATION_3_2 = 48;
|
||||
|
||||
// Token: 0x04006760 RID: 26464
|
||||
[Token(Token = "0x4006760")]
|
||||
private const int ROTATION_3_3 = 41;
|
||||
|
||||
// Token: 0x04006761 RID: 26465
|
||||
[Token(Token = "0x4006761")]
|
||||
private const int ROTATION_3_4 = 47;
|
||||
|
||||
// Token: 0x04006762 RID: 26466
|
||||
[Token(Token = "0x4006762")]
|
||||
private const int ROTATION_3_5 = 28;
|
||||
|
||||
// Token: 0x04006763 RID: 26467
|
||||
[Token(Token = "0x4006763")]
|
||||
private const int ROTATION_3_6 = 16;
|
||||
|
||||
// Token: 0x04006764 RID: 26468
|
||||
[Token(Token = "0x4006764")]
|
||||
private const int ROTATION_3_7 = 25;
|
||||
|
||||
// Token: 0x04006765 RID: 26469
|
||||
[Token(Token = "0x4006765")]
|
||||
private const int ROTATION_4_0 = 41;
|
||||
|
||||
// Token: 0x04006766 RID: 26470
|
||||
[Token(Token = "0x4006766")]
|
||||
private const int ROTATION_4_1 = 9;
|
||||
|
||||
// Token: 0x04006767 RID: 26471
|
||||
[Token(Token = "0x4006767")]
|
||||
private const int ROTATION_4_2 = 37;
|
||||
|
||||
// Token: 0x04006768 RID: 26472
|
||||
[Token(Token = "0x4006768")]
|
||||
private const int ROTATION_4_3 = 31;
|
||||
|
||||
// Token: 0x04006769 RID: 26473
|
||||
[Token(Token = "0x4006769")]
|
||||
private const int ROTATION_4_4 = 12;
|
||||
|
||||
// Token: 0x0400676A RID: 26474
|
||||
[Token(Token = "0x400676A")]
|
||||
private const int ROTATION_4_5 = 47;
|
||||
|
||||
// Token: 0x0400676B RID: 26475
|
||||
[Token(Token = "0x400676B")]
|
||||
private const int ROTATION_4_6 = 44;
|
||||
|
||||
// Token: 0x0400676C RID: 26476
|
||||
[Token(Token = "0x400676C")]
|
||||
private const int ROTATION_4_7 = 30;
|
||||
|
||||
// Token: 0x0400676D RID: 26477
|
||||
[Token(Token = "0x400676D")]
|
||||
private const int ROTATION_5_0 = 16;
|
||||
|
||||
// Token: 0x0400676E RID: 26478
|
||||
[Token(Token = "0x400676E")]
|
||||
private const int ROTATION_5_1 = 34;
|
||||
|
||||
// Token: 0x0400676F RID: 26479
|
||||
[Token(Token = "0x400676F")]
|
||||
private const int ROTATION_5_2 = 56;
|
||||
|
||||
// Token: 0x04006770 RID: 26480
|
||||
[Token(Token = "0x4006770")]
|
||||
private const int ROTATION_5_3 = 51;
|
||||
|
||||
// Token: 0x04006771 RID: 26481
|
||||
[Token(Token = "0x4006771")]
|
||||
private const int ROTATION_5_4 = 4;
|
||||
|
||||
// Token: 0x04006772 RID: 26482
|
||||
[Token(Token = "0x4006772")]
|
||||
private const int ROTATION_5_5 = 53;
|
||||
|
||||
// Token: 0x04006773 RID: 26483
|
||||
[Token(Token = "0x4006773")]
|
||||
private const int ROTATION_5_6 = 42;
|
||||
|
||||
// Token: 0x04006774 RID: 26484
|
||||
[Token(Token = "0x4006774")]
|
||||
private const int ROTATION_5_7 = 41;
|
||||
|
||||
// Token: 0x04006775 RID: 26485
|
||||
[Token(Token = "0x4006775")]
|
||||
private const int ROTATION_6_0 = 31;
|
||||
|
||||
// Token: 0x04006776 RID: 26486
|
||||
[Token(Token = "0x4006776")]
|
||||
private const int ROTATION_6_1 = 44;
|
||||
|
||||
// Token: 0x04006777 RID: 26487
|
||||
[Token(Token = "0x4006777")]
|
||||
private const int ROTATION_6_2 = 47;
|
||||
|
||||
// Token: 0x04006778 RID: 26488
|
||||
[Token(Token = "0x4006778")]
|
||||
private const int ROTATION_6_3 = 46;
|
||||
|
||||
// Token: 0x04006779 RID: 26489
|
||||
[Token(Token = "0x4006779")]
|
||||
private const int ROTATION_6_4 = 19;
|
||||
|
||||
// Token: 0x0400677A RID: 26490
|
||||
[Token(Token = "0x400677A")]
|
||||
private const int ROTATION_6_5 = 42;
|
||||
|
||||
// Token: 0x0400677B RID: 26491
|
||||
[Token(Token = "0x400677B")]
|
||||
private const int ROTATION_6_6 = 44;
|
||||
|
||||
// Token: 0x0400677C RID: 26492
|
||||
[Token(Token = "0x400677C")]
|
||||
private const int ROTATION_6_7 = 25;
|
||||
|
||||
// Token: 0x0400677D RID: 26493
|
||||
[Token(Token = "0x400677D")]
|
||||
private const int ROTATION_7_0 = 9;
|
||||
|
||||
// Token: 0x0400677E RID: 26494
|
||||
[Token(Token = "0x400677E")]
|
||||
private const int ROTATION_7_1 = 48;
|
||||
|
||||
// Token: 0x0400677F RID: 26495
|
||||
[Token(Token = "0x400677F")]
|
||||
private const int ROTATION_7_2 = 35;
|
||||
|
||||
// Token: 0x04006780 RID: 26496
|
||||
[Token(Token = "0x4006780")]
|
||||
private const int ROTATION_7_3 = 52;
|
||||
|
||||
// Token: 0x04006781 RID: 26497
|
||||
[Token(Token = "0x4006781")]
|
||||
private const int ROTATION_7_4 = 23;
|
||||
|
||||
// Token: 0x04006782 RID: 26498
|
||||
[Token(Token = "0x4006782")]
|
||||
private const int ROTATION_7_5 = 31;
|
||||
|
||||
// Token: 0x04006783 RID: 26499
|
||||
[Token(Token = "0x4006783")]
|
||||
private const int ROTATION_7_6 = 37;
|
||||
|
||||
// Token: 0x04006784 RID: 26500
|
||||
[Token(Token = "0x4006784")]
|
||||
private const int ROTATION_7_7 = 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1138
@@ -0,0 +1,1138 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016D9 RID: 5849
|
||||
[Token(Token = "0x20016D9")]
|
||||
[StructLayout(3)]
|
||||
public sealed class TnepresEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x170018F9 RID: 6393
|
||||
// (get) Token: 0x06009D56 RID: 40278 RVA: 0x0023EE90 File Offset: 0x0023D090
|
||||
[Token(Token = "0x170018F9")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D56")]
|
||||
[Address(RVA = "0x2119A90", Offset = "0x2118490", VA = "0x182119A90", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Tnepres";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D57 RID: 40279 RVA: 0x0023EEA4 File Offset: 0x0023D0A4
|
||||
[Token(Token = "0x6009D57")]
|
||||
[Address(RVA = "0x2116B50", Offset = "0x2115550", VA = "0x182116B50", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D57)
|
||||
|
||||
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:int32(var_12_83, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
|
||||
stloc:uint32(var_13_89, add:uint32(ldloc:uint32(var_9), 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_15_98, 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_15_98), ldloc:uint32[exp:int32](var_9))
|
||||
stloc:int32(var_16_AF, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_17_BA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldloc:uint32[exp:int32](var_9)))
|
||||
stloc:int32(var_18_C3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:uint32(var_19_C9, 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:int32(var_17_BA))
|
||||
stloc:int32(var_20_DC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_21_E6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
|
||||
stloc:int32(var_22_F0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_23_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_22_FE, ldloc:int32(var_23_FA))
|
||||
stloc:int32(var_20_102, ldloc:int32(var_23_FA))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_102))
|
||||
stloc:int32(var_23_10E, ldloc:int32(var_22_FE))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_FE))
|
||||
stloc:int32(var_20_11A, ldloc:int32(var_23_10E))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_10E))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_11A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_22_FE))
|
||||
stloc:int32(var_24_13C, 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_24_13C))
|
||||
stloc:int32(var_25_14E, 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_25_14E))
|
||||
stloc:int32(var_26_160, 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_26_160))
|
||||
stloc:int32(var_27_173, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_28_17D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
|
||||
stloc:int32(var_29_187, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
|
||||
stloc:int32(var_21_18B, ldloc:int32(var_29_187))
|
||||
stloc:int32(var_18_18F, ldloc:int32(var_29_187))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_18B))
|
||||
stloc:int32(var_28_19F, ldloc:int32(var_18_18F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_19F))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_187))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_FE))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_21_18B))
|
||||
stloc:int32(var_30_1C9, 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_30_1C9))
|
||||
stloc:int32(var_31_1DB, 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_31_1DB))
|
||||
stloc:int32(var_32_1ED, 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_32_1ED))
|
||||
stloc:int32(var_33_200, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_34_20A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
|
||||
stloc:int32(var_35_214, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
|
||||
stloc:int32(var_28_218, ldloc:int32(var_34_20A))
|
||||
stloc:int32(var_33_220, ldloc:int32(var_34_20A))
|
||||
stloc:int32(var_35_224, ldloc:int32(var_34_20A))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_33_220))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_224))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_218))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_224))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_28_218))
|
||||
stloc:int32(var_36_25A, 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_36_25A))
|
||||
stloc:int32(var_37_26C, 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_37_26C))
|
||||
stloc:int32(var_38_27E, 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_38_27E))
|
||||
stloc:int32(var_39_291, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_40_29B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
stloc:int32(var_41_2A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
stloc:int32(var_42_2AF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
|
||||
stloc:int32(var_35_2B3, ldloc:int32(var_40_29B))
|
||||
stloc:int32(var_28_2B7, ldloc:int32(var_40_29B))
|
||||
stloc:int32(var_34_2BB, ldloc:int32(var_35_2B3))
|
||||
stloc:int32(var_18_2BF, ldloc:int32(var_34_2BB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_2B7))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_2AF))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2BB))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_2A5))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_41_2A5))
|
||||
stloc:int32(var_43_2F5, 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_43_2F5))
|
||||
stloc:int32(var_44_307, 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_44_307))
|
||||
stloc:int32(var_45_319, 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_45_319))
|
||||
stloc:int32(var_46_32C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_47_336, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
|
||||
stloc:int32(var_28_33E, ldloc:int32(var_18_2BF))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_33E))
|
||||
stloc:int32(var_46_34A, ldloc:int32(var_47_336))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_336))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_34A))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_34A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_46_34A))
|
||||
stloc:int32(var_48_374, 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_48_374))
|
||||
stloc:int32(var_49_386, 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_49_386))
|
||||
stloc:int32(var_50_399, 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_50_399))
|
||||
stloc:int32(var_51_3AD, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_52_3B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_2BF))
|
||||
stloc:int32(var_51_3C8, ldloc:int32(var_18_2BF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_3C8))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_3C8))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_2BF))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_51_3C8))
|
||||
stloc:int32(var_53_3F3, 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_53_3F3))
|
||||
stloc:int32(var_54_406, 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_54_406))
|
||||
stloc:int32(var_55_419, 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_55_419))
|
||||
stloc:int32(var_56_42D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_57_438, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
|
||||
stloc:int32(var_58_443, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
|
||||
stloc:int32(var_40_447, ldloc:int32(var_52_3B8))
|
||||
stloc:int32(var_28_44B, ldloc:int32(var_40_447))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_447))
|
||||
stloc:int32(var_18_457, ldloc:int32(var_40_447))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_457))
|
||||
stloc:int32(var_58_467, ldloc:int32(var_28_44B))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_457))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_467))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_40_447))
|
||||
stloc:int32(var_59_48A, 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_59_48A))
|
||||
stloc:int32(var_60_49D, 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_60_49D))
|
||||
stloc:int32(var_61_4B0, 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_61_4B0))
|
||||
stloc:int32(var_62_4C4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_63_4CF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
|
||||
stloc:int32(var_64_4DA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
|
||||
stloc:int32(var_57_4DE, ldloc:int32(var_64_4DA))
|
||||
stloc:int32(var_28_4E2, ldloc:int32(var_57_4DE))
|
||||
stloc:int32(var_18_4E6, ldloc:int32(var_28_4E2))
|
||||
stloc:int32(var_52_4EA, ldloc:int32(var_63_4CF))
|
||||
stloc:int32(var_64_4EE, ldloc:int32(var_18_4E6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_4EE))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_4EA))
|
||||
stloc:int32(var_57_506, ldloc:int32(var_52_4EA))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_506))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_4CF))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_52_4EA))
|
||||
stloc:int32(var_65_529, 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_65_529))
|
||||
stloc:int32(var_66_53C, 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_66_53C))
|
||||
stloc:int32(var_67_54F, 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_67_54F))
|
||||
stloc:int32(var_68_563, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_69_56E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
stloc:int32(var_70_579, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
stloc:int32(var_71_584, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
|
||||
stloc:int32(var_28_588, ldloc:int32(var_70_579))
|
||||
stloc:int32(var_63_590, ldloc:int32(var_71_584))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_56E))
|
||||
stloc:int32(var_57_5A0, ldloc:int32(var_63_590))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_5A0))
|
||||
stloc:int32(var_68_5AC, ldloc:int32(var_69_56E))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_584))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_5AC))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_57_5A0))
|
||||
stloc:int32(var_72_5CF, 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_72_5CF))
|
||||
stloc:int32(var_73_5E2, 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_73_5E2))
|
||||
stloc:int32(var_74_5F5, 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_74_5F5))
|
||||
stloc:int32(var_75_609, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_76_614, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
|
||||
stloc:int32(var_77_61F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
|
||||
stloc:int32(var_70_627, ldloc:int32(var_63_590))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_627))
|
||||
stloc:int32(var_76_637, ldloc:int32(var_77_61F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_588))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_637))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_61F))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_70_627))
|
||||
stloc:int32(var_78_662, 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_78_662))
|
||||
stloc:int32(var_79_675, 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_79_675))
|
||||
stloc:int32(var_80_688, 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_80_688))
|
||||
stloc:int32(var_81_69C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_82_6A7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
|
||||
stloc:int32(var_83_6B2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
|
||||
stloc:int32(var_28_6B6, ldloc:int32(var_82_6A7))
|
||||
stloc:int32(var_81_6BE, ldloc:int32(var_82_6A7))
|
||||
stloc:int32(var_83_6C2, ldloc:int32(var_82_6A7))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_6BE))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_6C2))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_6B6))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_6C2))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_28_6B6))
|
||||
stloc:int32(var_84_6F9, 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_84_6F9))
|
||||
stloc:int32(var_85_70C, 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_85_70C))
|
||||
stloc:int32(var_86_71F, 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_86_71F))
|
||||
stloc:int32(var_87_733, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_88_73E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
|
||||
stloc:int32(var_89_749, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
|
||||
stloc:int32(var_82_74D, ldloc:int32(var_83_6C2))
|
||||
stloc:int32(var_69_751, ldloc:int32(var_82_74D))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_6B6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_749))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_74D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_88_73E))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_88_73E))
|
||||
stloc:int32(var_90_784, 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_90_784))
|
||||
stloc:int32(var_91_797, 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_91_797))
|
||||
stloc:int32(var_92_7AA, 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_92_7AA))
|
||||
stloc:int32(var_93_7BE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_94_7C9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
|
||||
stloc:int32(var_95_7D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
|
||||
stloc:int32(var_28_7DC, ldloc:int32(var_69_751))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_7DC))
|
||||
stloc:int32(var_95_7E8, ldloc:int32(var_94_7C9))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_94_7C9))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_7E8))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_7E8))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_95_7E8))
|
||||
stloc:int32(var_96_813, 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_96_813))
|
||||
stloc:int32(var_97_826, 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_97_826))
|
||||
stloc:int32(var_98_839, 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_98_839))
|
||||
stloc:int32(var_99_84D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_100_858, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
|
||||
stloc:int32(var_101_863, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
|
||||
stloc:int32(var_69_86F, ldloc:int32(var_100_858))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_86F))
|
||||
stloc:int32(var_99_87B, ldloc:int32(var_69_86F))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_99_87B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_99_87B))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_86F))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_99_87B))
|
||||
stloc:int32(var_102_8A6, 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_102_8A6))
|
||||
stloc:int32(var_103_8B9, 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_103_8B9))
|
||||
stloc:int32(var_104_8CC, 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_104_8CC))
|
||||
stloc:int32(var_105_8E0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_106_8EB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
|
||||
stloc:int32(var_107_8F6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
|
||||
stloc:int32(var_100_902, ldloc:int32(var_106_8EB))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_902))
|
||||
stloc:int32(var_107_912, ldloc:int32(var_100_902))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_912))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_8EB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_912))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_100_902))
|
||||
stloc:int32(var_108_93D, 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_108_93D))
|
||||
stloc:int32(var_109_950, 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_109_950))
|
||||
stloc:int32(var_110_963, 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_110_963))
|
||||
stloc:int32(var_111_977, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_112_982, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
|
||||
stloc:int32(var_113_98D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
|
||||
stloc:int32(var_101_991, ldloc:int32(var_113_98D))
|
||||
stloc:int32(var_28_995, ldloc:int32(var_101_991))
|
||||
stloc:int32(var_69_999, ldloc:int32(var_28_995))
|
||||
stloc:int32(var_106_99D, ldloc:int32(var_112_982))
|
||||
stloc:int32(var_113_9A1, ldloc:int32(var_69_999))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_9A1))
|
||||
stloc:int32(var_101_9AD, ldloc:int32(var_112_982))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_99D))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_9AD))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_112_982))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_106_99D))
|
||||
stloc:int32(var_114_9DC, 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_114_9DC))
|
||||
stloc:int32(var_115_9EF, 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_115_9EF))
|
||||
stloc:int32(var_116_A02, 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_116_A02))
|
||||
stloc:int32(var_117_A16, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_118_A21, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
|
||||
stloc:int32(var_119_A2C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_120_A37, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_112_A3F, ldloc:int32(var_120_A37))
|
||||
stloc:int32(var_118_A47, ldloc:int32(var_112_A3F))
|
||||
stloc:int32(var_119_A4B, ldloc:int32(var_112_A3F))
|
||||
stloc:int32(var_101_A4F, ldloc:int32(var_118_A47))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A4B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_118_A47))
|
||||
stloc:int32(var_117_A63, ldloc:int32(var_101_A4F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_A37))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_117_A63))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_118_A47))
|
||||
stloc:int32(var_121_A86, 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_121_A86))
|
||||
stloc:int32(var_122_A99, 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_122_A99))
|
||||
stloc:int32(var_123_AAC, 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_123_AAC))
|
||||
stloc:int32(var_124_AC0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_118_AC4, ldloc:int32(var_120_A37))
|
||||
stloc:int32(var_119_ACC, ldloc:int32(var_118_AC4))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_118_AC4))
|
||||
stloc:int32(var_124_AD8, ldloc:int32(var_119_ACC))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_AD8))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_ACC))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_A37))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_118_AC4))
|
||||
stloc:int32(var_125_B03, 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_125_B03))
|
||||
stloc:int32(var_126_B16, 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_126_B16))
|
||||
stloc:int32(var_127_B29, 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_127_B29))
|
||||
stloc:int32(var_128_B3D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_129_B48, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
stloc:int32(var_130_B53, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
stloc:int32(var_128_B57, ldloc:int32(var_129_B48))
|
||||
stloc:int32(var_119_B5B, ldloc:int32(var_129_B48))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_B5B))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_128_B57))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_B5B))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_128_B57))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_119_B5B))
|
||||
stloc:int32(var_131_B8E, 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_131_B8E))
|
||||
stloc:int32(var_132_BA1, 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_132_BA1))
|
||||
stloc:int32(var_133_BB4, 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_133_BB4))
|
||||
stloc:int32(var_134_BC8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_135_BD3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
|
||||
stloc:int32(var_129_BD7, ldloc:int32(var_130_B53))
|
||||
stloc:int32(var_135_BDB, ldloc:int32(var_130_B53))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_B5B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_135_BDB))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_129_BD7))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_130_B53))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_130_B53))
|
||||
stloc:int32(var_136_C12, 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_136_C12))
|
||||
stloc:int32(var_137_C25, 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_137_C25))
|
||||
stloc:int32(var_138_C38, 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_138_C38))
|
||||
stloc:int32(var_139_C4C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_140_C57, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_141_C62, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_119_C66, ldloc:int32(var_140_C57))
|
||||
stloc:int32(var_130_C6A, ldloc:int32(var_119_C66))
|
||||
stloc:int32(var_129_C6E, ldloc:int32(var_119_C66))
|
||||
stloc:int32(var_140_C72, ldloc:int32(var_130_C6A))
|
||||
stloc:int32(var_141_C76, ldloc:int32(var_140_C72))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_129_C6E))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_C76))
|
||||
stloc:int32(var_140_C8A, ldloc:int32(var_141_C76))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_C8A))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_C8A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_140_C8A))
|
||||
stloc:int32(var_142_CAD, 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_142_CAD))
|
||||
stloc:int32(var_143_CC0, 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_143_CC0))
|
||||
stloc:int32(var_144_CD3, 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_144_CD3))
|
||||
stloc:int32(var_145_CE7, 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: 0x06009D58 RID: 40280 RVA: 0x0023FB9C File Offset: 0x0023DD9C
|
||||
[Token(Token = "0x6009D58")]
|
||||
[Address(RVA = "0x21148D0", Offset = "0x21132D0", VA = "0x1821148D0", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D58)
|
||||
|
||||
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:int32(var_0_0B, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_0_0B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint8[][exp:int32](output))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint8[][exp:int32](output))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint8[][exp:int32](output))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_1_34, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_2_3B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_34)))
|
||||
stloc:int32(var_3_42, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_4_4A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_34), ldc.i4:int32(3)))
|
||||
stloc:int32(var_4_4D, ldloc:int32(var_3_42))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_42))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_4_4D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_42))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_42))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_5_7D, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_6_85, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_42))
|
||||
stloc:int32(var_5_90, ldloc:int32(var_6_85))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_5_90))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_85))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_42))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_7_BA, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_8_C2, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_BA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_BA))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_BA))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_C2))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_9_F0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_F9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_F0)))
|
||||
stloc:int32(var_11_103, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_F0), ldc.i4:int32(8)))
|
||||
stloc:int32(var_12_10B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_13_116, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_F0), ldc.i4:int32(9)))
|
||||
stloc:int32(var_14_121, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_F0), ldc.i4:int32(9)))
|
||||
stloc:int32(var_13_125, ldloc:int32(var_12_10B))
|
||||
stloc:int32(var_14_129, ldloc:int32(var_11_103))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_129))
|
||||
stloc:int32(var_10_135, ldloc:int32(var_12_10B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_125))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_135))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_10B))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_15_160, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_16_168, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_11_16C, ldloc:int32(var_16_168))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_168))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_160))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_168))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_11_16C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_17_19F, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_18_1A7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_17_1AF, ldloc:int32(var_18_1A7))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_1AF))
|
||||
stloc:int32(var_18_1BB, ldloc:int32(var_17_1AF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_1BB))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_1BB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_1AF))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_19_1E1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_1EA, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_19_1E1)))
|
||||
stloc:int32(var_21_1F2, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_22_1FD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_19_1E1), ldc.i4:int32(15)))
|
||||
stloc:int32(var_11_201, ldloc:int32(var_20_1EA))
|
||||
stloc:int32(var_21_205, ldloc:int32(var_20_1EA))
|
||||
stloc:int32(var_22_209, ldloc:int32(var_11_201))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_205))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_209))
|
||||
stloc:int32(var_11_21D, ldloc:int32(var_22_209))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_11_21D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_209))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_23_23B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_24_244, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_23_23B)))
|
||||
stloc:int32(var_25_24F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_23_23B), ldc.i4:int32(16)))
|
||||
stloc:int32(var_26_25A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_23_23B), ldc.i4:int32(16)))
|
||||
stloc:int32(var_27_265, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_23_23B), ldc.i4:int32(17)))
|
||||
stloc:int32(var_28_270, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_23_23B), ldc.i4:int32(17)))
|
||||
stloc:int32(var_26_274, ldloc:int32(var_25_24F))
|
||||
stloc:int32(var_28_27C, ldloc:int32(var_25_24F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_27_265))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_27C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_274))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_24F))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_29_2AE, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_30_2B7, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_29_2AE)))
|
||||
stloc:int32(var_31_2BF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_2C3, ldloc:int32(var_31_2BF))
|
||||
stloc:int32(var_32_2CE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_29_2AE), ldc.i4:int32(19)))
|
||||
stloc:int32(var_26_2D2, ldloc:int32(var_25_2C3))
|
||||
stloc:int32(var_31_2D6, ldloc:int32(var_25_2C3))
|
||||
stloc:int32(var_32_2DA, ldloc:int32(var_31_2D6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_2D2))
|
||||
stloc:int32(var_26_2E6, ldloc:int32(var_31_2D6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_2DA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_2D6))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_2E6))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_33_311, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_34_319, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_35_321, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_33_329, ldloc:int32(var_25_2C3))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_33_329))
|
||||
stloc:int32(var_34_335, ldloc:int32(var_35_321))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_335))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_321))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_2C3))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_36_360, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_37_368, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_360))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_360))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_360))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_368))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_38_396, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_39F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_38_396)))
|
||||
stloc:int32(var_40_3AA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_38_396), ldc.i4:int32(24)))
|
||||
stloc:int32(var_41_3B5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_38_396), ldc.i4:int32(25)))
|
||||
stloc:int32(var_42_3C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_38_396), ldc.i4:int32(25)))
|
||||
stloc:int32(var_42_3C4, ldloc:int32(var_41_3B5))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_3C4))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_39F))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_3AA))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_3AA))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_43_3F7, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_44_3FF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_43_407, ldloc:int32(var_44_3FF))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_3FF))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_407))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_3FF))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_407))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_45_435, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_46_43E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_45_435)))
|
||||
stloc:int32(var_47_446, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_48_451, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_435), ldc.i4:int32(29)))
|
||||
stloc:int32(var_41_455, ldloc:int32(var_47_446))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_446))
|
||||
stloc:int32(var_48_461, ldloc:int32(var_41_455))
|
||||
stloc:int32(var_47_465, ldloc:int32(var_41_455))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_461))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_465))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_455))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_49_48B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_50_494, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_49_48B)))
|
||||
stloc:int32(var_51_49F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_49_48B), ldc.i4:int32(31)))
|
||||
stloc:int32(var_47_4A3, ldloc:int32(var_50_494))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_494))
|
||||
stloc:int32(var_50_4AF, ldloc:int32(var_47_4A3))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_49F))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_4AF))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_4AF))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_52_4D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_53_4DE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_4D5)))
|
||||
stloc:int32(var_54_4E9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4D5), ldc.i4:int32(32)))
|
||||
stloc:int32(var_55_4F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4D5), ldc.i4:int32(32)))
|
||||
stloc:int32(var_56_4FF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4D5), ldc.i4:int32(33)))
|
||||
stloc:int32(var_57_50A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4D5), ldc.i4:int32(33)))
|
||||
stloc:int32(var_55_50E, ldloc:int32(var_54_4E9))
|
||||
stloc:int32(var_57_516, ldloc:int32(var_54_4E9))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_4FF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_516))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_50E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4E9))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_58_548, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_59_551, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_58_548)))
|
||||
stloc:int32(var_60_559, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_54_55D, ldloc:int32(var_60_559))
|
||||
stloc:int32(var_61_568, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_548), ldc.i4:int32(35)))
|
||||
stloc:int32(var_55_56C, ldloc:int32(var_54_55D))
|
||||
stloc:int32(var_60_570, ldloc:int32(var_54_55D))
|
||||
stloc:int32(var_61_574, ldloc:int32(var_60_570))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_56C))
|
||||
stloc:int32(var_55_580, ldloc:int32(var_60_570))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_574))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_570))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_580))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_62_5AB, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_63_5B3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_64_5BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_62_5C3, ldloc:int32(var_54_55D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_5C3))
|
||||
stloc:int32(var_63_5CF, ldloc:int32(var_64_5BB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_5CF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_5BB))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_55D))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_65_5FA, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_66_602, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_5FA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_5FA))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_5FA))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_602))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_67_630, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_68_639, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_67_630)))
|
||||
stloc:int32(var_69_644, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_67_630), ldc.i4:int32(40)))
|
||||
stloc:int32(var_70_64C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_657, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_67_630), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_657))
|
||||
stloc:int32(var_71_667, ldloc:int32(var_70_64C))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_667))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_639))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_64C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_72_696, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_73_69E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_6A2, ldloc:int32(var_73_69E))
|
||||
stloc:int32(var_72_6A6, ldloc:int32(var_73_69E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_6A6))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_69E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_69E))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_6A2))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_74_6D4, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_75_6DD, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_74_6D4)))
|
||||
stloc:int32(var_76_6E5, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_77_6F0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_74_6D4), ldc.i4:int32(45)))
|
||||
stloc:int32(var_69_6F4, ldloc:int32(var_76_6E5))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_6E5))
|
||||
stloc:int32(var_77_700, ldloc:int32(var_69_6F4))
|
||||
stloc:int32(var_76_704, ldloc:int32(var_69_6F4))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_700))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_704))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_6F4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_78_72A, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_79_733, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_78_72A)))
|
||||
stloc:int32(var_80_73E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_78_72A), ldc.i4:int32(47)))
|
||||
stloc:int32(var_76_742, ldloc:int32(var_79_733))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_733))
|
||||
stloc:int32(var_79_74E, ldloc:int32(var_76_742))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_73E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_74E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_73E))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_81_779, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](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: 0x06009D59 RID: 40281 RVA: 0x00240324 File Offset: 0x0023E524
|
||||
[Token(Token = "0x6009D59")]
|
||||
[Address(RVA = "0x21123E0", Offset = "0x2110DE0", VA = "0x1821123E0", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D59)
|
||||
|
||||
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)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_0_06))
|
||||
stloc:int32[](var_1_14, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_1_14))
|
||||
stloc:int32[](var_2_22, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_2_22))
|
||||
stloc:int32(var_3_37, ldelem:int32([mscorlib]System.Int32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)), ldc.i4:int32(64)))
|
||||
stloc:int32(var_4_3E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_5_46, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_3_51, ldloc:int32(var_4_3E))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_4_3E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_51))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_6_71, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_5_46), ldc.i4:int32(62)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_71))
|
||||
stloc:int32(var_7_84, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_5_46), ldc.i4:int32(62)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_84))
|
||||
stloc:int32(var_8_97, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_5_46), ldc.i4:int32(63)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_97))
|
||||
stloc:int32(var_9_AA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_5_46), ldc.i4:int32(63)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_AA))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_10_C0, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_11_C8, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_CC, ldloc:int32(var_11_C8))
|
||||
stloc:int32(var_3_D0, ldloc:int32(var_9_CC))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_D0))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_12_EC, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_11_C8))
|
||||
stloc:int32(var_13_107, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_EC), ldc.i4:int32(60)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_107))
|
||||
stloc:int32(var_14_11A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_EC), ldc.i4:int32(60)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_11A))
|
||||
stloc:int32(var_15_12D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_EC), ldc.i4:int32(61)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_12D))
|
||||
stloc:int32(var_16_140, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_EC), ldc.i4:int32(61)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_140))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_17_156, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_16_15A, ldloc:int32(var_17_156))
|
||||
stloc:int32(var_18_162, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_16A, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_16E, ldloc:int32(var_19_16A))
|
||||
stloc:int32(var_20_176, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_16A))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_16E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_21_195, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_15A))
|
||||
stloc:int32(var_22_1A8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_21_195), ldc.i4:int32(58)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_1A8))
|
||||
stloc:int32(var_23_1BB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_21_195), ldc.i4:int32(58)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_1BB))
|
||||
stloc:int32(var_24_1CE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_21_195), ldc.i4:int32(59)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_1CE))
|
||||
stloc:int32(var_25_1E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_21_195), ldc.i4:int32(59)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_1E1))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_26_1F7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_18_1FB, ldloc:int32(var_26_1F7))
|
||||
stloc:int32(var_20_1FF, ldloc:int32(var_17_156))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_1FF))
|
||||
stloc:int32[](var_27_20F, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_213, ldloc:int32(var_17_156))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_156))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_213))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_1FB))
|
||||
stloc:int32(var_28_236, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_27_20F), ldc.i4:int32(56)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_236))
|
||||
stloc:int32(var_29_249, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_27_20F), ldc.i4:int32(56)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_249))
|
||||
stloc:int32(var_30_25C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_27_20F), ldc.i4:int32(57)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_25C))
|
||||
stloc:int32(var_31_26F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_27_20F), ldc.i4:int32(57)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_26F))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_32_285, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_33_28D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_291, ldloc:int32(var_17_156))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_291))
|
||||
stloc:int32(var_26_29D, ldloc:int32(var_32_285))
|
||||
stloc:int32(var_17_2A1, ldloc:int32(var_26_29D))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_29D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_2A1))
|
||||
stloc:int32(var_34_2C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_33_28D), ldc.i4:int32(54)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2C3))
|
||||
stloc:int32(var_35_2D6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_33_28D), ldc.i4:int32(54)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_2D6))
|
||||
stloc:int32(var_36_2E9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_33_28D), ldc.i4:int32(55)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_2E9))
|
||||
stloc:int32(var_37_2FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_33_28D), ldc.i4:int32(55)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_2FC))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_38_312, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_316, ldloc:int32(var_38_312))
|
||||
stloc:int32(var_39_31E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_322, ldloc:int32(var_26_316))
|
||||
stloc:int32(var_40_32A, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_41_332, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_32_336, ldloc:int32(var_26_316))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_322))
|
||||
stloc:int32(var_37_342, ldloc:int32(var_19_322))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_39_34D, ldloc:int32(var_37_342))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_34D))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_336))
|
||||
stloc:int32(var_42_368, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_332), ldc.i4:int32(52)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_368))
|
||||
stloc:int32(var_43_37B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_332), ldc.i4:int32(52)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_37B))
|
||||
stloc:int32(var_44_38E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_332), ldc.i4:int32(53)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_38E))
|
||||
stloc:int32(var_45_3A1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_332), ldc.i4:int32(53)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_45_3A1))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_26_3B3, ldloc:int32(var_45_3A1))
|
||||
stloc:int32(var_38_3B7, ldloc:int32(var_45_3A1))
|
||||
stloc:int32(var_32_3BB, ldloc:int32(var_26_3B3))
|
||||
stloc:int32(var_40_3BF, ldloc:int32(var_38_3B7))
|
||||
stloc:int32[](var_46_3C7, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_3BB))
|
||||
stloc:int32(var_45_3D7, ldloc:int32(var_40_3BF))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_3BF))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_45_3D7))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_38_3B7))
|
||||
stloc:int32(var_47_3FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_3C7), ldc.i4:int32(50)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_3FA))
|
||||
stloc:int32(var_48_40D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_3C7), ldc.i4:int32(50)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_40D))
|
||||
stloc:int32(var_49_420, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_3C7), ldc.i4:int32(51)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_49_420))
|
||||
stloc:int32(var_50_433, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_3C7), ldc.i4:int32(51)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_433))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_26_445, ldloc:int32(var_40_3BF))
|
||||
stloc:int32(var_19_449, ldloc:int32(var_26_445))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_449))
|
||||
stloc:int32[](var_51_459, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_32_45D, ldloc:int32(var_40_3BF))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_45D))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_3BF))
|
||||
stloc:int32(var_52_47F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_51_459), ldc.i4:int32(48)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_47F))
|
||||
stloc:int32(var_53_492, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_51_459), ldc.i4:int32(48)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_492))
|
||||
stloc:int32(var_54_4A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_51_459), ldc.i4:int32(49)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4A5))
|
||||
stloc:int32(var_55_4B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_51_459), ldc.i4:int32(49)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_4B8))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_56_4CE, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_57_4D6, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_40_4DA, ldloc:int32(var_57_4D6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_449))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_4DA))
|
||||
stloc:int32[](var_58_4F2, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_4D6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_4CE))
|
||||
stloc:int32(var_59_50D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_4F2), ldc.i4:int32(46)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_50D))
|
||||
stloc:int32(var_60_520, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_4F2), ldc.i4:int32(46)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_520))
|
||||
stloc:int32(var_61_533, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_4F2), ldc.i4:int32(47)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_533))
|
||||
stloc:int32(var_62_546, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_4F2), ldc.i4:int32(47)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_546))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_63_560, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_64_568, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_62_56C, ldloc:int32(var_63_560))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_26_577, ldloc:int32(var_62_56C))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_577))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_560))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_560))
|
||||
stloc:int32(var_65_59A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_568), ldc.i4:int32(44)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_59A))
|
||||
stloc:int32(var_66_5AD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_568), ldc.i4:int32(44)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_5AD))
|
||||
stloc:int32(var_67_5C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_568), ldc.i4:int32(45)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_67_5C0))
|
||||
stloc:int32(var_68_5D3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_568), ldc.i4:int32(45)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_5D3))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_69_5E9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_68_5ED, ldloc:int32(var_69_5E9))
|
||||
stloc:int32(var_70_5F5, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_5F9, ldloc:int32(var_70_5F5))
|
||||
stloc:int32(var_71_601, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_605, ldloc:int32(var_26_5F9))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_5F5))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_605))
|
||||
stloc:int32(var_16_619, ldloc:int32(var_68_5ED))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_72_628, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_619))
|
||||
stloc:int32(var_73_63B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_72_628), ldc.i4:int32(42)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_63B))
|
||||
stloc:int32(var_74_64E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_72_628), ldc.i4:int32(42)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_64E))
|
||||
stloc:int32(var_75_661, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_72_628), ldc.i4:int32(43)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_75_661))
|
||||
stloc:int32(var_76_674, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_72_628), ldc.i4:int32(43)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_674))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_77_68A, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_692, ldloc:int32(var_77_68A))
|
||||
stloc:int32(var_70_696, ldloc:int32(var_71_692))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_692))
|
||||
stloc:int32(var_69_6A2, ldloc:int32(var_71_692))
|
||||
stloc:int32[](var_78_6AA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_77_6AE, ldloc:int32(var_70_696))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_696))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_6AE))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_6A2))
|
||||
stloc:int32(var_79_6D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_78_6AA), ldc.i4:int32(40)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_6D1))
|
||||
stloc:int32(var_80_6E4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_78_6AA), ldc.i4:int32(40)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_6E4))
|
||||
stloc:int32(var_81_6F7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_78_6AA), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_6F7))
|
||||
stloc:int32(var_82_70A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_78_6AA), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_70A))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_83_720, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_84_728, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_85_734, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_86_73C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_740, ldloc:int32(var_85_734))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_740))
|
||||
stloc:int32(var_83_74C, ldloc:int32(var_70_740))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_728))
|
||||
stloc:int32(var_85_758, ldloc:int32(var_70_740))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_74C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_85_758))
|
||||
stloc:int32(var_87_773, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_86_73C), ldc.i4:int32(38)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_87_773))
|
||||
stloc:int32(var_88_786, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_86_73C), ldc.i4:int32(38)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_88_786))
|
||||
stloc:int32(var_89_799, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_86_73C), ldc.i4:int32(39)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_799))
|
||||
stloc:int32(var_90_7AC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_86_73C), ldc.i4:int32(39)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_7AC))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_91_7C2, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_84_7C6, ldloc:int32(var_91_7C2))
|
||||
stloc:int32(var_92_7CE, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_93_7D6, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_7DA, ldloc:int32(var_92_7CE))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_7DA))
|
||||
stloc:int32(var_90_7E6, ldloc:int32(var_84_7C6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_7C6))
|
||||
stloc:int32(var_91_7F2, ldloc:int32(var_90_7E6))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_7F2))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_92_7CE))
|
||||
stloc:int32(var_94_80D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_93_7D6), ldc.i4:int32(36)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_94_80D))
|
||||
stloc:int32(var_95_820, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_93_7D6), ldc.i4:int32(36)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_820))
|
||||
stloc:int32(var_96_833, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_93_7D6), ldc.i4:int32(37)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_833))
|
||||
stloc:int32(var_97_846, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_93_7D6), ldc.i4:int32(37)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_97_846))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_98_85C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_92_868, ldloc:int32(var_84_7C6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_7C6))
|
||||
stloc:int32(var_98_874, ldloc:int32(var_84_7C6))
|
||||
stloc:int32[](var_99_87C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_880, ldloc:int32(var_98_874))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_92_868))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_880))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_98_874))
|
||||
stloc:int32(var_100_8A7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_99_87C), ldc.i4:int32(34)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_8A7))
|
||||
stloc:int32(var_101_8BA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_99_87C), ldc.i4:int32(34)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_8BA))
|
||||
stloc:int32(var_102_8CD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_99_87C), ldc.i4:int32(35)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_8CD))
|
||||
stloc:int32(var_103_8E0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_99_87C), ldc.i4:int32(35)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_103_8E0))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_104_8F6, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_8FA, ldloc:int32(var_103_8E0))
|
||||
stloc:int32[](var_105_902, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_906, ldloc:int32(var_91_8FA))
|
||||
stloc:int32(var_84_90A, ldloc:int32(var_70_906))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_906))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_90A))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_106_937, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_105_902), ldc.i4:int32(32)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_937))
|
||||
stloc:int32(var_107_94A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_105_902), ldc.i4:int32(32)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_94A))
|
||||
stloc:int32(var_108_95D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_105_902), ldc.i4:int32(33)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_95D))
|
||||
stloc:int32(var_109_970, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_105_902), ldc.i4:int32(33)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_109_970))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_110_986, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_111_98E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_109_992, ldloc:int32(var_110_986))
|
||||
stloc:int32[](var_112_99A, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_104_99E, ldloc:int32(var_111_98E))
|
||||
stloc:int32(var_70_9A2, ldloc:int32(var_109_992))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_9A2))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_104_99E))
|
||||
stloc:int32(var_110_9B6, ldloc:int32(var_70_9A2))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_111_98E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_110_9B6))
|
||||
stloc:int32(var_113_9D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_99A), ldc.i4:int32(30)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_9D1))
|
||||
stloc:int32(var_114_9E4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_99A), ldc.i4:int32(30)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_9E4))
|
||||
stloc:int32(var_115_9F7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_99A), ldc.i4:int32(31)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_115_9F7))
|
||||
stloc:int32(var_116_A0A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_99A), ldc.i4:int32(31)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_A0A))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_117_A20, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_16_A24, ldloc:int32(var_117_A20))
|
||||
stloc:int32(var_118_A2C, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_116_A37, ldloc:int32(var_16_A24))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_A24))
|
||||
stloc:int32(var_117_A43, ldloc:int32(var_116_A37))
|
||||
stloc:int32[](var_119_A4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_117_A43))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_118_A2C))
|
||||
stloc:int32(var_120_A66, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_119_A4B), ldc.i4:int32(28)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_A66))
|
||||
stloc:int32(var_121_A79, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_119_A4B), ldc.i4:int32(28)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_A79))
|
||||
stloc:int32(var_122_A8C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_119_A4B), ldc.i4:int32(29)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_A8C))
|
||||
stloc:int32(var_123_A9F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_119_A4B), ldc.i4:int32(29)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_123_A9F))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_124_AB5, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_AB9, ldloc:int32(var_124_AB5))
|
||||
stloc:int32(var_125_AC1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_126_AC9, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_AB9))
|
||||
stloc:int32[](var_127_ADD, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_A24))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_AC1))
|
||||
stloc:int32(var_128_AFF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_127_ADD), ldc.i4:int32(26)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_128_AFF))
|
||||
stloc:int32(var_129_B12, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_127_ADD), ldc.i4:int32(26)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_129_B12))
|
||||
stloc:int32(var_130_B25, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_127_ADD), ldc.i4:int32(27)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_130_B25))
|
||||
stloc:int32(var_131_B38, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_127_ADD), ldc.i4:int32(27)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B38))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_132_B4E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_124_B52, ldloc:int32(var_132_B4E))
|
||||
stloc:int32(var_125_B56, ldloc:int32(var_124_B52))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_B52))
|
||||
stloc:int32(var_126_B62, ldloc:int32(var_124_B52))
|
||||
stloc:int32[](var_133_B6A, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_132_B6E, ldloc:int32(var_125_B56))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_B56))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_B6E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_B62))
|
||||
stloc:int32(var_134_B91, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_133_B6A), ldc.i4:int32(24)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_134_B91))
|
||||
stloc:int32(var_135_BA4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_133_B6A), ldc.i4:int32(24)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_135_BA4))
|
||||
stloc:int32(var_136_BB7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_133_B6A), ldc.i4:int32(25)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_BB7))
|
||||
stloc:int32(var_137_BCA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_133_B6A), ldc.i4:int32(25)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_137_BCA))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_138_BE0, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_BE8, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_140_BF4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_141_BFC, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_C00, ldloc:int32(var_140_BF4))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_C00))
|
||||
stloc:int32(var_138_C0C, ldloc:int32(var_125_C00))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_139_BE8))
|
||||
stloc:int32(var_140_C18, ldloc:int32(var_125_C00))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_C0C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_C18))
|
||||
stloc:int32(var_142_C33, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_141_BFC), ldc.i4:int32(22)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_142_C33))
|
||||
stloc:int32(var_143_C46, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_141_BFC), ldc.i4:int32(22)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_C46))
|
||||
stloc:int32(var_144_C59, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_141_BFC), ldc.i4:int32(23)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_C59))
|
||||
stloc:int32(var_145_C6C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_141_BFC), ldc.i4:int32(23)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_145_C6C))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_146_C82, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_147_C8A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_C8E, ldloc:int32(var_146_C82))
|
||||
stloc:int32[](var_148_C96, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_147_C8A))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_139_C8E))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_C00))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_C82))
|
||||
}
|
||||
|
||||
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: 0x06009D5A RID: 40282 RVA: 0x00240FE8 File Offset: 0x0023F1E8
|
||||
[Token(Token = "0x6009D5A")]
|
||||
[Address(RVA = "0x2119A30", Offset = "0x2118430", VA = "0x182119A30")]
|
||||
public TnepresEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+672
@@ -0,0 +1,672 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016DA RID: 5850
|
||||
[Token(Token = "0x20016DA")]
|
||||
[StructLayout(3)]
|
||||
public sealed class TwofishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D5B RID: 40283 RVA: 0x00240FFC File Offset: 0x0023F1FC
|
||||
[Token(Token = "0x6009D5B")]
|
||||
[Address(RVA = "0x1F60D30", Offset = "0x1F5F730", VA = "0x181F60D30")]
|
||||
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: 0x06009D5C RID: 40284 RVA: 0x00241138 File Offset: 0x0023F338
|
||||
[Token(Token = "0x6009D5C")]
|
||||
[Address(RVA = "0x1F5FB10", Offset = "0x1F5E510", VA = "0x181F5FB10", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D5C)
|
||||
|
||||
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: 0x170018FA RID: 6394
|
||||
// (get) Token: 0x06009D5D RID: 40285 RVA: 0x002411A0 File Offset: 0x0023F3A0
|
||||
[Token(Token = "0x170018FA")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D5D")]
|
||||
[Address(RVA = "0x1F61250", Offset = "0x1F5FC50", VA = "0x181F61250", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Twofish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018FB RID: 6395
|
||||
// (get) Token: 0x06009D5E RID: 40286 RVA: 0x002411B4 File Offset: 0x0023F3B4
|
||||
[Token(Token = "0x170018FB")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D5E")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D5F RID: 40287 RVA: 0x002411C4 File Offset: 0x0023F3C4
|
||||
[Token(Token = "0x6009D5F")]
|
||||
[Address(RVA = "0x1F5FDC0", Offset = "0x1F5E7C0", VA = "0x181F5FDC0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D5F)
|
||||
|
||||
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: 0x06009D60 RID: 40288 RVA: 0x00241204 File Offset: 0x0023F404
|
||||
[Token(Token = "0x6009D60")]
|
||||
[Address(RVA = "0x1F5FFE0", Offset = "0x1F5E9E0", VA = "0x181F5FFE0", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
if (array != 0)
|
||||
{
|
||||
this.SetKey(array);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D61 RID: 40289 RVA: 0x00241224 File Offset: 0x0023F424
|
||||
[Token(Token = "0x6009D61")]
|
||||
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x06009D62 RID: 40290 RVA: 0x00241234 File Offset: 0x0023F434
|
||||
[Token(Token = "0x6009D62")]
|
||||
[Address(RVA = "0x1F60000", Offset = "0x1F5EA00", VA = "0x181F60000")]
|
||||
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: 0x06009D63 RID: 40291 RVA: 0x002415B8 File Offset: 0x0023F7B8
|
||||
[Token(Token = "0x6009D63")]
|
||||
[Address(RVA = "0x1F5E8A0", Offset = "0x1F5D2A0", VA = "0x181F5E8A0")]
|
||||
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: 0x06009D64 RID: 40292 RVA: 0x00241748 File Offset: 0x0023F948
|
||||
[Token(Token = "0x6009D64")]
|
||||
[Address(RVA = "0x1F5E040", Offset = "0x1F5CA40", VA = "0x181F5E040")]
|
||||
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: 0x06009D65 RID: 40293 RVA: 0x00241904 File Offset: 0x0023FB04
|
||||
[Token(Token = "0x6009D65")]
|
||||
[Address(RVA = "0x1F5F100", Offset = "0x1F5DB00", VA = "0x181F5F100")]
|
||||
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: 0x06009D66 RID: 40294 RVA: 0x002419DC File Offset: 0x0023FBDC
|
||||
[Token(Token = "0x6009D66")]
|
||||
[Address(RVA = "0x1F5FEC0", Offset = "0x1F5E8C0", VA = "0x181F5FEC0")]
|
||||
private int RS_MDS_Encode(int k0, int k1)
|
||||
{
|
||||
return k1;
|
||||
}
|
||||
|
||||
// Token: 0x06009D67 RID: 40295 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D67")]
|
||||
[Address(RVA = "0x1F5FF90", Offset = "0x1F5E990", VA = "0x181F5FF90")]
|
||||
private int RS_rem(int x)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D68 RID: 40296 RVA: 0x002419EC File Offset: 0x0023FBEC
|
||||
[Token(Token = "0x6009D68")]
|
||||
[Address(RVA = "0x1F5FCD0", Offset = "0x1F5E6D0", VA = "0x181F5FCD0")]
|
||||
private int LFSR1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D69 RID: 40297 RVA: 0x002419FC File Offset: 0x0023FBFC
|
||||
[Token(Token = "0x6009D69")]
|
||||
[Address(RVA = "0x1F5FCF0", Offset = "0x1F5E6F0", VA = "0x181F5FCF0")]
|
||||
private int LFSR2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6A RID: 40298 RVA: 0x00241A0C File Offset: 0x0023FC0C
|
||||
[Token(Token = "0x6009D6A")]
|
||||
[Address(RVA = "0x1F5FD50", Offset = "0x1F5E750", VA = "0x181F5FD50")]
|
||||
private int Mx_X(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6B RID: 40299 RVA: 0x00241A1C File Offset: 0x0023FC1C
|
||||
[Token(Token = "0x6009D6B")]
|
||||
[Address(RVA = "0x1F5FD80", Offset = "0x1F5E780", VA = "0x181F5FD80")]
|
||||
private int Mx_Y(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6C RID: 40300 RVA: 0x00241A2C File Offset: 0x0023FC2C
|
||||
[Token(Token = "0x6009D6C")]
|
||||
[Address(RVA = "0x1347340", Offset = "0x1345D40", VA = "0x181347340")]
|
||||
private int M_b0(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6D RID: 40301 RVA: 0x00241A3C File Offset: 0x0023FC3C
|
||||
[Token(Token = "0x6009D6D")]
|
||||
[Address(RVA = "0x1F5FD20", Offset = "0x1F5E720", VA = "0x181F5FD20")]
|
||||
private int M_b1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6E RID: 40302 RVA: 0x00241A4C File Offset: 0x0023FC4C
|
||||
[Token(Token = "0x6009D6E")]
|
||||
[Address(RVA = "0x1F5FD30", Offset = "0x1F5E730", VA = "0x181F5FD30")]
|
||||
private int M_b2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D6F RID: 40303 RVA: 0x00241A5C File Offset: 0x0023FC5C
|
||||
[Token(Token = "0x6009D6F")]
|
||||
[Address(RVA = "0x1F5FD40", Offset = "0x1F5E740", VA = "0x181F5FD40")]
|
||||
private int M_b3(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x06009D70 RID: 40304 RVA: 0x00241A6C File Offset: 0x0023FC6C
|
||||
[Token(Token = "0x6009D70")]
|
||||
[Address(RVA = "0x1F5F970", Offset = "0x1F5E370", VA = "0x181F5F970")]
|
||||
private int Fe32_0(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[x];
|
||||
}
|
||||
|
||||
// Token: 0x06009D71 RID: 40305 RVA: 0x00241A94 File Offset: 0x0023FC94
|
||||
[Token(Token = "0x6009D71")]
|
||||
[Address(RVA = "0x1F5FA40", Offset = "0x1F5E440", VA = "0x181F5FA40")]
|
||||
private int Fe32_3(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[this];
|
||||
}
|
||||
|
||||
// Token: 0x06009D72 RID: 40306 RVA: 0x00241ABC File Offset: 0x0023FCBC
|
||||
[Token(Token = "0x6009D72")]
|
||||
[Address(RVA = "0x1F5DF90", Offset = "0x1F5C990", VA = "0x181F5DF90")]
|
||||
private int BytesTo32Bits(byte[] b, int p)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = p + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009D73 RID: 40307 RVA: 0x00241ADC File Offset: 0x0023FCDC
|
||||
[Token(Token = "0x6009D73")]
|
||||
[Address(RVA = "0x1F5DEF0", Offset = "0x1F5C8F0", VA = "0x181F5DEF0")]
|
||||
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
||||
{
|
||||
int num = offset + 1;
|
||||
}
|
||||
|
||||
// Token: 0x04006785 RID: 26501
|
||||
[Token(Token = "0x4006785")]
|
||||
private static readonly byte[,] P;
|
||||
|
||||
// Token: 0x04006786 RID: 26502
|
||||
[Token(Token = "0x4006786")]
|
||||
private const int P_00 = 1;
|
||||
|
||||
// Token: 0x04006787 RID: 26503
|
||||
[Token(Token = "0x4006787")]
|
||||
private const int P_01 = 0;
|
||||
|
||||
// Token: 0x04006788 RID: 26504
|
||||
[Token(Token = "0x4006788")]
|
||||
private const int P_02 = 0;
|
||||
|
||||
// Token: 0x04006789 RID: 26505
|
||||
[Token(Token = "0x4006789")]
|
||||
private const int P_03 = 1;
|
||||
|
||||
// Token: 0x0400678A RID: 26506
|
||||
[Token(Token = "0x400678A")]
|
||||
private const int P_04 = 1;
|
||||
|
||||
// Token: 0x0400678B RID: 26507
|
||||
[Token(Token = "0x400678B")]
|
||||
private const int P_10 = 0;
|
||||
|
||||
// Token: 0x0400678C RID: 26508
|
||||
[Token(Token = "0x400678C")]
|
||||
private const int P_11 = 0;
|
||||
|
||||
// Token: 0x0400678D RID: 26509
|
||||
[Token(Token = "0x400678D")]
|
||||
private const int P_12 = 1;
|
||||
|
||||
// Token: 0x0400678E RID: 26510
|
||||
[Token(Token = "0x400678E")]
|
||||
private const int P_13 = 1;
|
||||
|
||||
// Token: 0x0400678F RID: 26511
|
||||
[Token(Token = "0x400678F")]
|
||||
private const int P_14 = 0;
|
||||
|
||||
// Token: 0x04006790 RID: 26512
|
||||
[Token(Token = "0x4006790")]
|
||||
private const int P_20 = 1;
|
||||
|
||||
// Token: 0x04006791 RID: 26513
|
||||
[Token(Token = "0x4006791")]
|
||||
private const int P_21 = 1;
|
||||
|
||||
// Token: 0x04006792 RID: 26514
|
||||
[Token(Token = "0x4006792")]
|
||||
private const int P_22 = 0;
|
||||
|
||||
// Token: 0x04006793 RID: 26515
|
||||
[Token(Token = "0x4006793")]
|
||||
private const int P_23 = 0;
|
||||
|
||||
// Token: 0x04006794 RID: 26516
|
||||
[Token(Token = "0x4006794")]
|
||||
private const int P_24 = 0;
|
||||
|
||||
// Token: 0x04006795 RID: 26517
|
||||
[Token(Token = "0x4006795")]
|
||||
private const int P_30 = 0;
|
||||
|
||||
// Token: 0x04006796 RID: 26518
|
||||
[Token(Token = "0x4006796")]
|
||||
private const int P_31 = 1;
|
||||
|
||||
// Token: 0x04006797 RID: 26519
|
||||
[Token(Token = "0x4006797")]
|
||||
private const int P_32 = 1;
|
||||
|
||||
// Token: 0x04006798 RID: 26520
|
||||
[Token(Token = "0x4006798")]
|
||||
private const int P_33 = 0;
|
||||
|
||||
// Token: 0x04006799 RID: 26521
|
||||
[Token(Token = "0x4006799")]
|
||||
private const int P_34 = 1;
|
||||
|
||||
// Token: 0x0400679A RID: 26522
|
||||
[Token(Token = "0x400679A")]
|
||||
private const int GF256_FDBK = 361;
|
||||
|
||||
// Token: 0x0400679B RID: 26523
|
||||
[Token(Token = "0x400679B")]
|
||||
private const int GF256_FDBK_2 = 180;
|
||||
|
||||
// Token: 0x0400679C RID: 26524
|
||||
[Token(Token = "0x400679C")]
|
||||
private const int GF256_FDBK_4 = 90;
|
||||
|
||||
// Token: 0x0400679D RID: 26525
|
||||
[Token(Token = "0x400679D")]
|
||||
private const int RS_GF_FDBK = 333;
|
||||
|
||||
// Token: 0x0400679E RID: 26526
|
||||
[Token(Token = "0x400679E")]
|
||||
private const int ROUNDS = 16;
|
||||
|
||||
// Token: 0x0400679F RID: 26527
|
||||
[Token(Token = "0x400679F")]
|
||||
private const int MAX_ROUNDS = 16;
|
||||
|
||||
// Token: 0x040067A0 RID: 26528
|
||||
[Token(Token = "0x40067A0")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040067A1 RID: 26529
|
||||
[Token(Token = "0x40067A1")]
|
||||
private const int MAX_KEY_BITS = 256;
|
||||
|
||||
// Token: 0x040067A2 RID: 26530
|
||||
[Token(Token = "0x40067A2")]
|
||||
private const int INPUT_WHITEN = 0;
|
||||
|
||||
// Token: 0x040067A3 RID: 26531
|
||||
[Token(Token = "0x40067A3")]
|
||||
private const int OUTPUT_WHITEN = 4;
|
||||
|
||||
// Token: 0x040067A4 RID: 26532
|
||||
[Token(Token = "0x40067A4")]
|
||||
private const int ROUND_SUBKEYS = 8;
|
||||
|
||||
// Token: 0x040067A5 RID: 26533
|
||||
[Token(Token = "0x40067A5")]
|
||||
private const int TOTAL_SUBKEYS = 40;
|
||||
|
||||
// Token: 0x040067A6 RID: 26534
|
||||
[Token(Token = "0x40067A6")]
|
||||
private const int SK_STEP = 33686018;
|
||||
|
||||
// Token: 0x040067A7 RID: 26535
|
||||
[Token(Token = "0x40067A7")]
|
||||
private const int SK_BUMP = 16843009;
|
||||
|
||||
// Token: 0x040067A8 RID: 26536
|
||||
[Token(Token = "0x40067A8")]
|
||||
private const int SK_ROTL = 9;
|
||||
|
||||
// Token: 0x040067A9 RID: 26537
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40067A9")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x040067AA RID: 26538
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40067AA")]
|
||||
private int[] gMDS0;
|
||||
|
||||
// Token: 0x040067AB RID: 26539
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40067AB")]
|
||||
private int[] gMDS1;
|
||||
|
||||
// Token: 0x040067AC RID: 26540
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40067AC")]
|
||||
private int[] gMDS2;
|
||||
|
||||
// Token: 0x040067AD RID: 26541
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40067AD")]
|
||||
private int[] gMDS3;
|
||||
|
||||
// Token: 0x040067AE RID: 26542
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40067AE")]
|
||||
private int[] gSubKeys;
|
||||
|
||||
// Token: 0x040067AF RID: 26543
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40067AF")]
|
||||
private int[] gSBox;
|
||||
|
||||
// Token: 0x040067B0 RID: 26544
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40067B0")]
|
||||
private int k64Cnt;
|
||||
|
||||
// Token: 0x040067B1 RID: 26545
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40067B1")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016DB RID: 5851
|
||||
[Token(Token = "0x20016DB")]
|
||||
[StructLayout(3)]
|
||||
public class VmpcEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x170018FC RID: 6396
|
||||
// (get) Token: 0x06009D75 RID: 40309 RVA: 0x00241B04 File Offset: 0x0023FD04
|
||||
[Token(Token = "0x170018FC")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D75")]
|
||||
[Address(RVA = "0x1F61C50", Offset = "0x1F60650", VA = "0x181F61C50", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D76 RID: 40310 RVA: 0x00241B18 File Offset: 0x0023FD18
|
||||
[Token(Token = "0x6009D76")]
|
||||
[Address(RVA = "0x1F615B0", Offset = "0x1F5FFB0", VA = "0x181F615B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D76)
|
||||
|
||||
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: 0x06009D77 RID: 40311 RVA: 0x00241B7C File Offset: 0x0023FD7C
|
||||
[Token(Token = "0x6009D77")]
|
||||
[Address(RVA = "0x1F61280", Offset = "0x1F5FC80", VA = "0x181F61280", 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: 0x06009D78 RID: 40312 RVA: 0x00241C74 File Offset: 0x0023FE74
|
||||
[Token(Token = "0x6009D78")]
|
||||
[Address(RVA = "0x1F61800", Offset = "0x1F60200", VA = "0x181F61800", 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: 0x06009D79 RID: 40313 RVA: 0x00241CEC File Offset: 0x0023FEEC
|
||||
[Token(Token = "0x6009D79")]
|
||||
[Address(RVA = "0x1F61A90", Offset = "0x1F60490", VA = "0x181F61A90", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
string algorithmName = ((IStreamCipher)this).AlgorithmName;
|
||||
}
|
||||
|
||||
// Token: 0x06009D7A RID: 40314 RVA: 0x00241D00 File Offset: 0x0023FF00
|
||||
[Token(Token = "0x6009D7A")]
|
||||
[Address(RVA = "0x1F61AB0", Offset = "0x1F604B0", VA = "0x181F61AB0", 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: 0x06009D7B RID: 40315 RVA: 0x00241D64 File Offset: 0x0023FF64
|
||||
[Token(Token = "0x6009D7B")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public VmpcEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040067B2 RID: 26546
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40067B2")]
|
||||
protected byte n;
|
||||
|
||||
// Token: 0x040067B3 RID: 26547
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40067B3")]
|
||||
protected byte[] P;
|
||||
|
||||
// Token: 0x040067B4 RID: 26548
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40067B4")]
|
||||
protected byte s;
|
||||
|
||||
// Token: 0x040067B5 RID: 26549
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40067B5")]
|
||||
protected byte[] workingIV;
|
||||
|
||||
// Token: 0x040067B6 RID: 26550
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40067B6")]
|
||||
protected byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016DC RID: 5852
|
||||
[Token(Token = "0x20016DC")]
|
||||
[StructLayout(3)]
|
||||
public class VmpcKsa3Engine : VmpcEngine
|
||||
{
|
||||
// Token: 0x170018FD RID: 6397
|
||||
// (get) Token: 0x06009D7C RID: 40316 RVA: 0x00241D78 File Offset: 0x0023FF78
|
||||
[Token(Token = "0x170018FD")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D7C")]
|
||||
[Address(RVA = "0x1F620E0", Offset = "0x1F60AE0", VA = "0x181F620E0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC-KSA3";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D7D RID: 40317 RVA: 0x00241D8C File Offset: 0x0023FF8C
|
||||
[Token(Token = "0x6009D7D")]
|
||||
[Address(RVA = "0x1F61C80", Offset = "0x1F60680", VA = "0x181F61C80", 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: 0x06009D7E RID: 40318 RVA: 0x00241EFC File Offset: 0x002400FC
|
||||
[Token(Token = "0x6009D7E")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public VmpcKsa3Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016DD RID: 5853
|
||||
[Token(Token = "0x20016DD")]
|
||||
[StructLayout(3)]
|
||||
public class XSalsa20Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x170018FE RID: 6398
|
||||
// (get) Token: 0x06009D7F RID: 40319 RVA: 0x00241F10 File Offset: 0x00240110
|
||||
[Token(Token = "0x170018FE")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D7F")]
|
||||
[Address(RVA = "0x1F62790", Offset = "0x1F61190", VA = "0x181F62790", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "XSalsa20";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170018FF RID: 6399
|
||||
// (get) Token: 0x06009D80 RID: 40320 RVA: 0x00241F24 File Offset: 0x00240124
|
||||
[Token(Token = "0x170018FF")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x6009D80")]
|
||||
[Address(RVA = "0x11E7910", Offset = "0x11E6310", VA = "0x1811E7910", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D81 RID: 40321 RVA: 0x00241F34 File Offset: 0x00240134
|
||||
[Token(Token = "0x6009D81")]
|
||||
[Address(RVA = "0x1F62250", Offset = "0x1F60C50", VA = "0x181F62250", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D81)
|
||||
|
||||
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: 0x06009D82 RID: 40322 RVA: 0x002420BC File Offset: 0x002402BC
|
||||
[Token(Token = "0x6009D82")]
|
||||
[Address(RVA = "0x1F62730", Offset = "0x1F61130", VA = "0x181F62730")]
|
||||
public XSalsa20Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+204
@@ -0,0 +1,204 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Cpp2IlInjected;
|
||||
using Hjg.Pngcs;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x020016DE RID: 5854
|
||||
[Token(Token = "0x20016DE")]
|
||||
[StructLayout(3)]
|
||||
public class XteaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x06009D83 RID: 40323 RVA: 0x002420D0 File Offset: 0x002402D0
|
||||
[Token(Token = "0x6009D83")]
|
||||
[Address(RVA = "0x1F62CD0", Offset = "0x1F616D0", VA = "0x181F62CD0")]
|
||||
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: 0x17001900 RID: 6400
|
||||
// (get) Token: 0x06009D84 RID: 40324 RVA: 0x00242118 File Offset: 0x00240318
|
||||
[Token(Token = "0x17001900")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x6009D84")]
|
||||
[Address(RVA = "0x1F62F80", Offset = "0x1F61980", VA = "0x181F62F80", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "XTEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001901 RID: 6401
|
||||
// (get) Token: 0x06009D85 RID: 40325 RVA: 0x0024212C File Offset: 0x0024032C
|
||||
[Token(Token = "0x17001901")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x6009D85")]
|
||||
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009D86 RID: 40326 RVA: 0x0024213C File Offset: 0x0024033C
|
||||
[Token(Token = "0x6009D86")]
|
||||
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x06009D87 RID: 40327 RVA: 0x0024214C File Offset: 0x0024034C
|
||||
[Token(Token = "0x6009D87")]
|
||||
[Address(RVA = "0x1F627C0", Offset = "0x1F611C0", VA = "0x181F627C0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D87)
|
||||
|
||||
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_98:
|
||||
stloc:ArgumentException(var_12_A9, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA 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: 0x06009D88 RID: 40328 RVA: 0x00242204 File Offset: 0x00240404
|
||||
[Token(Token = "0x6009D88")]
|
||||
[Address(RVA = "0x1F62A60", Offset = "0x1F61460", VA = "0x181F62A60", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009D88)
|
||||
|
||||
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_43:
|
||||
stloc:InvalidOperationException(var_9_4A, newobj:InvalidOperationException(InvalidOperationException::.ctor, 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: 0x06009D89 RID: 40329 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009D89")]
|
||||
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009D8A RID: 40330 RVA: 0x0024225C File Offset: 0x0024045C
|
||||
[Token(Token = "0x6009D8A")]
|
||||
[Address(RVA = "0x1F62FB0", Offset = "0x1F619B0", VA = "0x181F62FB0")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] s = this._S;
|
||||
int num2 = PngHelperInternal.ReadInt4fromBytes(key, num);
|
||||
num += 4;
|
||||
num++;
|
||||
s[0] = (uint)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: 0x06009D8B RID: 40331 RVA: 0x002422E8 File Offset: 0x002404E8
|
||||
[Token(Token = "0x6009D8B")]
|
||||
[Address(RVA = "0x1F62E60", Offset = "0x1F61860", VA = "0x181F62E60")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint[] sum = this._sum0;
|
||||
int num = 0;
|
||||
uint[] sum2 = this._sum1;
|
||||
num++;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009D8C RID: 40332 RVA: 0x00242310 File Offset: 0x00240510
|
||||
[Token(Token = "0x6009D8C")]
|
||||
[Address(RVA = "0x1F62D50", Offset = "0x1F61750", VA = "0x181F62D50")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint[] sum = this._sum1;
|
||||
uint[] sum2 = this._sum0;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x040067B7 RID: 26551
|
||||
[Token(Token = "0x40067B7")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x040067B8 RID: 26552
|
||||
[Token(Token = "0x40067B8")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x040067B9 RID: 26553
|
||||
[Token(Token = "0x40067B9")]
|
||||
private const int delta = -1640531527;
|
||||
|
||||
// Token: 0x040067BA RID: 26554
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40067BA")]
|
||||
private uint[] _S;
|
||||
|
||||
// Token: 0x040067BB RID: 26555
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40067BB")]
|
||||
private uint[] _sum0;
|
||||
|
||||
// Token: 0x040067BC RID: 26556
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40067BC")]
|
||||
private uint[] _sum1;
|
||||
|
||||
// Token: 0x040067BD RID: 26557
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40067BD")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x040067BE RID: 26558
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x40067BE")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user