a
This commit is contained in:
@@ -0,0 +1,637 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C80 RID: 7296
|
||||
[Token(Token = "0x2001C80")]
|
||||
public class AesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B6BA RID: 46778 RVA: 0x00281598 File Offset: 0x0027F798
|
||||
[Token(Token = "0x600B6BA")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6BB RID: 46779 RVA: 0x002815A8 File Offset: 0x0027F7A8
|
||||
[Token(Token = "0x600B6BB")]
|
||||
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6BB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6BC RID: 46780 RVA: 0x002815BC File Offset: 0x0027F7BC
|
||||
[Token(Token = "0x600B6BC")]
|
||||
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6BD RID: 46781 RVA: 0x002815CC File Offset: 0x0027F7CC
|
||||
[Token(Token = "0x600B6BD")]
|
||||
[Address(RVA = "0x1A60500", Offset = "0x1A5F300", VA = "0x181A60500")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6BE RID: 46782 RVA: 0x002815DC File Offset: 0x0027F7DC
|
||||
[Token(Token = "0x600B6BE")]
|
||||
[Address(RVA = "0x1A607D0", Offset = "0x1A5F5D0", VA = "0x181A607D0")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6BF RID: 46783 RVA: 0x002815FC File Offset: 0x0027F7FC
|
||||
[Token(Token = "0x600B6BF")]
|
||||
[Address(RVA = "0x1A5ED20", Offset = "0x1A5DB20", VA = "0x181A5ED20")]
|
||||
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: 0x0600B6C0 RID: 46784 RVA: 0x00281AF0 File Offset: 0x0027FCF0
|
||||
[Token(Token = "0x600B6C0")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public AesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C1 RID: 46785 RVA: 0x00281B04 File Offset: 0x0027FD04
|
||||
[Token(Token = "0x600B6C1")]
|
||||
[Address(RVA = "0x1A60350", Offset = "0x1A5F150", VA = "0x181A60350", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6C1)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CB4 RID: 7348
|
||||
// (get) Token: 0x0600B6C2 RID: 46786 RVA: 0x00281B5C File Offset: 0x0027FD5C
|
||||
[Token(Token = "0x17001CB4")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B6C2")]
|
||||
[Address(RVA = "0x1A60AA0", Offset = "0x1A5F8A0", VA = "0x181A60AA0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CB5 RID: 7349
|
||||
// (get) Token: 0x0600B6C3 RID: 46787 RVA: 0x00281B70 File Offset: 0x0027FD70
|
||||
[Token(Token = "0x17001CB5")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B6C3")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C4 RID: 46788 RVA: 0x00281B80 File Offset: 0x0027FD80
|
||||
[Token(Token = "0x600B6C4")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C5 RID: 46789 RVA: 0x00281B90 File Offset: 0x0027FD90
|
||||
[Token(Token = "0x600B6C5")]
|
||||
[Address(RVA = "0x1A60630", Offset = "0x1A5F430", VA = "0x181A60630", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6C5)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C6 RID: 46790 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B6C6")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C7 RID: 46791 RVA: 0x00281C08 File Offset: 0x0027FE08
|
||||
[Token(Token = "0x600B6C7")]
|
||||
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B6C8 RID: 46792 RVA: 0x00281C18 File Offset: 0x0027FE18
|
||||
[Token(Token = "0x600B6C8")]
|
||||
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
|
||||
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: 0x0600B6C9 RID: 46793 RVA: 0x00281C5C File Offset: 0x0027FE5C
|
||||
[Token(Token = "0x600B6C9")]
|
||||
[Address(RVA = "0x1A5D9B0", Offset = "0x1A5C7B0", VA = "0x181A5D9B0")]
|
||||
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: 0x0600B6CA RID: 46794 RVA: 0x00281F34 File Offset: 0x00280134
|
||||
[Token(Token = "0x600B6CA")]
|
||||
[Address(RVA = "0x1A5C6A0", Offset = "0x1A5B4A0", VA = "0x181A5C6A0")]
|
||||
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: 0x0600B6CB RID: 46795 RVA: 0x002821E4 File Offset: 0x002803E4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B6CB")]
|
||||
[Address(RVA = "0x1A60960", Offset = "0x1A5F760", VA = "0x181A60960")]
|
||||
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: 0x040073C8 RID: 29640
|
||||
[Token(Token = "0x40073C8")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040073C9 RID: 29641
|
||||
[Token(Token = "0x40073C9")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040073CA RID: 29642
|
||||
[Token(Token = "0x40073CA")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040073CB RID: 29643
|
||||
[Token(Token = "0x40073CB")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x040073CC RID: 29644
|
||||
[Token(Token = "0x40073CC")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x040073CD RID: 29645
|
||||
[Token(Token = "0x40073CD")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040073CE RID: 29646
|
||||
[Token(Token = "0x40073CE")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040073CF RID: 29647
|
||||
[Token(Token = "0x40073CF")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040073D0 RID: 29648
|
||||
[Token(Token = "0x40073D0")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040073D1 RID: 29649
|
||||
[Token(Token = "0x40073D1")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040073D2 RID: 29650
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40073D2")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040073D3 RID: 29651
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40073D3")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040073D4 RID: 29652
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40073D4")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040073D5 RID: 29653
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40073D5")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040073D6 RID: 29654
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40073D6")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040073D7 RID: 29655
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40073D7")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040073D8 RID: 29656
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40073D8")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040073D9 RID: 29657
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40073D9")]
|
||||
private byte[] s;
|
||||
|
||||
// Token: 0x040073DA RID: 29658
|
||||
[Token(Token = "0x40073DA")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+673
@@ -0,0 +1,673 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C81 RID: 7297
|
||||
[Token(Token = "0x2001C81")]
|
||||
[Obsolete]
|
||||
public class AesFastEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B6CC RID: 46796 RVA: 0x00282280 File Offset: 0x00280480
|
||||
[Token(Token = "0x600B6CC")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6CD RID: 46797 RVA: 0x00282290 File Offset: 0x00280490
|
||||
[Token(Token = "0x600B6CD")]
|
||||
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6CD)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6CE RID: 46798 RVA: 0x002822A4 File Offset: 0x002804A4
|
||||
[Token(Token = "0x600B6CE")]
|
||||
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6CF RID: 46799 RVA: 0x002822B4 File Offset: 0x002804B4
|
||||
[Token(Token = "0x600B6CF")]
|
||||
[Address(RVA = "0x1A64690", Offset = "0x1A63490", VA = "0x181A64690")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D0 RID: 46800 RVA: 0x002822C4 File Offset: 0x002804C4
|
||||
[Token(Token = "0x600B6D0")]
|
||||
[Address(RVA = "0x1A648D0", Offset = "0x1A636D0", VA = "0x181A648D0")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesFastEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D1 RID: 46801 RVA: 0x002822E4 File Offset: 0x002804E4
|
||||
[Token(Token = "0x600B6D1")]
|
||||
[Address(RVA = "0x1A62F50", Offset = "0x1A61D50", VA = "0x181A62F50")]
|
||||
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: 0x0600B6D2 RID: 46802 RVA: 0x002827D8 File Offset: 0x002809D8
|
||||
[Token(Token = "0x600B6D2")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public AesFastEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D3 RID: 46803 RVA: 0x002827EC File Offset: 0x002809EC
|
||||
[Token(Token = "0x600B6D3")]
|
||||
[Address(RVA = "0x1A64580", Offset = "0x1A63380", VA = "0x181A64580", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6D3)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CB6 RID: 7350
|
||||
// (get) Token: 0x0600B6D4 RID: 46804 RVA: 0x0028282C File Offset: 0x00280A2C
|
||||
[Token(Token = "0x17001CB6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B6D4")]
|
||||
[Address(RVA = "0x1A64C80", Offset = "0x1A63A80", VA = "0x181A64C80", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CB7 RID: 7351
|
||||
// (get) Token: 0x0600B6D5 RID: 46805 RVA: 0x00282840 File Offset: 0x00280A40
|
||||
[Token(Token = "0x17001CB7")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B6D5")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D6 RID: 46806 RVA: 0x00282850 File Offset: 0x00280A50
|
||||
[Token(Token = "0x600B6D6")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D7 RID: 46807 RVA: 0x00282860 File Offset: 0x00280A60
|
||||
[Token(Token = "0x600B6D7")]
|
||||
[Address(RVA = "0x1A64750", Offset = "0x1A63550", VA = "0x181A64750", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6D7)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D8 RID: 46808 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B6D8")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B6D9 RID: 46809 RVA: 0x002828D8 File Offset: 0x00280AD8
|
||||
[Token(Token = "0x600B6D9")]
|
||||
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B6DA RID: 46810 RVA: 0x002828E8 File Offset: 0x00280AE8
|
||||
[Token(Token = "0x600B6DA")]
|
||||
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
|
||||
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: 0x0600B6DB RID: 46811 RVA: 0x0028292C File Offset: 0x00280B2C
|
||||
[Token(Token = "0x600B6DB")]
|
||||
[Address(RVA = "0x1A61D00", Offset = "0x1A60B00", VA = "0x181A61D00")]
|
||||
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: 0x0600B6DC RID: 46812 RVA: 0x00282C30 File Offset: 0x00280E30
|
||||
[Token(Token = "0x600B6DC")]
|
||||
[Address(RVA = "0x1A60AD0", Offset = "0x1A5F8D0", VA = "0x181A60AD0")]
|
||||
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: 0x0600B6DD RID: 46813 RVA: 0x00282EEC File Offset: 0x002810EC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B6DD")]
|
||||
[Address(RVA = "0x1A649F0", Offset = "0x1A637F0", VA = "0x181A649F0")]
|
||||
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: 0x040073DB RID: 29659
|
||||
[Token(Token = "0x40073DB")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040073DC RID: 29660
|
||||
[Token(Token = "0x40073DC")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040073DD RID: 29661
|
||||
[Token(Token = "0x40073DD")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040073DE RID: 29662
|
||||
[Token(Token = "0x40073DE")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x040073DF RID: 29663
|
||||
[Token(Token = "0x40073DF")]
|
||||
private static readonly uint[] T1;
|
||||
|
||||
// Token: 0x040073E0 RID: 29664
|
||||
[Token(Token = "0x40073E0")]
|
||||
private static readonly uint[] T2;
|
||||
|
||||
// Token: 0x040073E1 RID: 29665
|
||||
[Token(Token = "0x40073E1")]
|
||||
private static readonly uint[] T3;
|
||||
|
||||
// Token: 0x040073E2 RID: 29666
|
||||
[Token(Token = "0x40073E2")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x040073E3 RID: 29667
|
||||
[Token(Token = "0x40073E3")]
|
||||
private static readonly uint[] Tinv1;
|
||||
|
||||
// Token: 0x040073E4 RID: 29668
|
||||
[Token(Token = "0x40073E4")]
|
||||
private static readonly uint[] Tinv2;
|
||||
|
||||
// Token: 0x040073E5 RID: 29669
|
||||
[Token(Token = "0x40073E5")]
|
||||
private static readonly uint[] Tinv3;
|
||||
|
||||
// Token: 0x040073E6 RID: 29670
|
||||
[Token(Token = "0x40073E6")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040073E7 RID: 29671
|
||||
[Token(Token = "0x40073E7")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040073E8 RID: 29672
|
||||
[Token(Token = "0x40073E8")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040073E9 RID: 29673
|
||||
[Token(Token = "0x40073E9")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040073EA RID: 29674
|
||||
[Token(Token = "0x40073EA")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040073EB RID: 29675
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40073EB")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040073EC RID: 29676
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40073EC")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040073ED RID: 29677
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40073ED")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040073EE RID: 29678
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40073EE")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040073EF RID: 29679
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40073EF")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040073F0 RID: 29680
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40073F0")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040073F1 RID: 29681
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40073F1")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040073F2 RID: 29682
|
||||
[Token(Token = "0x40073F2")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+580
@@ -0,0 +1,580 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C82 RID: 7298
|
||||
[Token(Token = "0x2001C82")]
|
||||
public class AesLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B6DE RID: 46814 RVA: 0x00283040 File Offset: 0x00281240
|
||||
[Token(Token = "0x600B6DE")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6DF RID: 46815 RVA: 0x00283050 File Offset: 0x00281250
|
||||
[Token(Token = "0x600B6DF")]
|
||||
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6DF)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E0 RID: 46816 RVA: 0x00283064 File Offset: 0x00281264
|
||||
[Token(Token = "0x600B6E0")]
|
||||
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E1 RID: 46817 RVA: 0x00283074 File Offset: 0x00281274
|
||||
[Token(Token = "0x600B6E1")]
|
||||
[Address(RVA = "0x1A68B10", Offset = "0x1A67910", VA = "0x181A68B10")]
|
||||
private static uint Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E2 RID: 46818 RVA: 0x00283084 File Offset: 0x00281284
|
||||
[Token(Token = "0x600B6E2")]
|
||||
[Address(RVA = "0x1A68A50", Offset = "0x1A67850", VA = "0x181A68A50")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E3 RID: 46819 RVA: 0x00283094 File Offset: 0x00281294
|
||||
[Token(Token = "0x600B6E3")]
|
||||
[Address(RVA = "0x1A68D20", Offset = "0x1A67B20", VA = "0x181A68D20")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesLightEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E4 RID: 46820 RVA: 0x002830B4 File Offset: 0x002812B4
|
||||
[Token(Token = "0x600B6E4")]
|
||||
[Address(RVA = "0x1A67310", Offset = "0x1A66110", VA = "0x181A67310")]
|
||||
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: 0x0600B6E5 RID: 46821 RVA: 0x002835A8 File Offset: 0x002817A8
|
||||
[Token(Token = "0x600B6E5")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public AesLightEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E6 RID: 46822 RVA: 0x002835BC File Offset: 0x002817BC
|
||||
[Token(Token = "0x600B6E6")]
|
||||
[Address(RVA = "0x1A68940", Offset = "0x1A67740", VA = "0x181A68940", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6E6)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CB8 RID: 7352
|
||||
// (get) Token: 0x0600B6E7 RID: 46823 RVA: 0x002835FC File Offset: 0x002817FC
|
||||
[Token(Token = "0x17001CB8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B6E7")]
|
||||
[Address(RVA = "0x1A68F10", Offset = "0x1A67D10", VA = "0x181A68F10", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CB9 RID: 7353
|
||||
// (get) Token: 0x0600B6E8 RID: 46824 RVA: 0x00283610 File Offset: 0x00281810
|
||||
[Token(Token = "0x17001CB9")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B6E8")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B6E9 RID: 46825 RVA: 0x00283620 File Offset: 0x00281820
|
||||
[Token(Token = "0x600B6E9")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6EA RID: 46826 RVA: 0x00283630 File Offset: 0x00281830
|
||||
[Token(Token = "0x600B6EA")]
|
||||
[Address(RVA = "0x1A68BA0", Offset = "0x1A679A0", VA = "0x181A68BA0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6EA)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6EB RID: 46827 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B6EB")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B6EC RID: 46828 RVA: 0x002836A8 File Offset: 0x002818A8
|
||||
[Token(Token = "0x600B6EC")]
|
||||
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B6ED RID: 46829 RVA: 0x002836B8 File Offset: 0x002818B8
|
||||
[Token(Token = "0x600B6ED")]
|
||||
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
|
||||
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: 0x0600B6EE RID: 46830 RVA: 0x002836FC File Offset: 0x002818FC
|
||||
[Token(Token = "0x600B6EE")]
|
||||
[Address(RVA = "0x1A65FD0", Offset = "0x1A64DD0", VA = "0x181A65FD0")]
|
||||
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: 0x0600B6EF RID: 46831 RVA: 0x0028397C File Offset: 0x00281B7C
|
||||
[Token(Token = "0x600B6EF")]
|
||||
[Address(RVA = "0x1A64CB0", Offset = "0x1A63AB0", VA = "0x181A64CB0")]
|
||||
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: 0x0600B6F0 RID: 46832 RVA: 0x00283BF4 File Offset: 0x00281DF4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B6F0")]
|
||||
[Address(RVA = "0x1A68E40", Offset = "0x1A67C40", VA = "0x181A68E40")]
|
||||
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: 0x040073F3 RID: 29683
|
||||
[Token(Token = "0x40073F3")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040073F4 RID: 29684
|
||||
[Token(Token = "0x40073F4")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040073F5 RID: 29685
|
||||
[Token(Token = "0x40073F5")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040073F6 RID: 29686
|
||||
[Token(Token = "0x40073F6")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040073F7 RID: 29687
|
||||
[Token(Token = "0x40073F7")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040073F8 RID: 29688
|
||||
[Token(Token = "0x40073F8")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040073F9 RID: 29689
|
||||
[Token(Token = "0x40073F9")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040073FA RID: 29690
|
||||
[Token(Token = "0x40073FA")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040073FB RID: 29691
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40073FB")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040073FC RID: 29692
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40073FC")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040073FD RID: 29693
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40073FD")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040073FE RID: 29694
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40073FE")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040073FF RID: 29695
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40073FF")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x04007400 RID: 29696
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4007400")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x04007401 RID: 29697
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007401")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007402 RID: 29698
|
||||
[Token(Token = "0x4007402")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C83 RID: 7299
|
||||
[Token(Token = "0x2001C83")]
|
||||
public class AesWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600B6F1 RID: 46833 RVA: 0x00283C54 File Offset: 0x00281E54
|
||||
[Token(Token = "0x600B6F1")]
|
||||
[Address(RVA = "0x1A68F40", Offset = "0x1A67D40", VA = "0x181A68F40")]
|
||||
public AesWrapEngine()
|
||||
{
|
||||
AesEngine aesEngine;
|
||||
aesEngine.Reset();
|
||||
base..ctor(aesEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+375
@@ -0,0 +1,375 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C84 RID: 7300
|
||||
[Token(Token = "0x2001C84")]
|
||||
public sealed class BlowfishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B6F2 RID: 46834 RVA: 0x00283C70 File Offset: 0x00281E70
|
||||
[Token(Token = "0x600B6F2")]
|
||||
[Address(RVA = "0x1A69EB0", Offset = "0x1A68CB0", VA = "0x181A69EB0")]
|
||||
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: 0x0600B6F3 RID: 46835 RVA: 0x00283CE0 File Offset: 0x00281EE0
|
||||
[Token(Token = "0x600B6F3")]
|
||||
[Address(RVA = "0x1A69400", Offset = "0x1A68200", VA = "0x181A69400", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6F3)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CBA RID: 7354
|
||||
// (get) Token: 0x0600B6F4 RID: 46836 RVA: 0x00283D2C File Offset: 0x00281F2C
|
||||
[Token(Token = "0x17001CBA")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B6F4")]
|
||||
[Address(RVA = "0x1A69FB0", Offset = "0x1A68DB0", VA = "0x181A69FB0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Blowfish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CBB RID: 7355
|
||||
// (get) Token: 0x0600B6F5 RID: 46837 RVA: 0x00283D40 File Offset: 0x00281F40
|
||||
[Token(Token = "0x17001CBB")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B6F5")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B6F6 RID: 46838 RVA: 0x00283D50 File Offset: 0x00281F50
|
||||
[Token(Token = "0x600B6F6")]
|
||||
[Address(RVA = "0x1A695A0", Offset = "0x1A683A0", VA = "0x181A695A0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B6F6)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6F7 RID: 46839 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B6F7")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B6F8 RID: 46840 RVA: 0x00283D8C File Offset: 0x00281F8C
|
||||
[Token(Token = "0x600B6F8")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6F9 RID: 46841 RVA: 0x00283D9C File Offset: 0x00281F9C
|
||||
[Token(Token = "0x600B6F9")]
|
||||
[Address(RVA = "0x1A69340", Offset = "0x1A68140", VA = "0x181A69340")]
|
||||
private uint F(uint x)
|
||||
{
|
||||
uint[] s = this.S0;
|
||||
uint[] s2 = this.S1;
|
||||
uint[] s3 = this.S2;
|
||||
uint[] s4 = this.S3;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B6FA RID: 46842 RVA: 0x00283DCC File Offset: 0x00281FCC
|
||||
[Token(Token = "0x600B6FA")]
|
||||
[Address(RVA = "0x1A696A0", Offset = "0x1A684A0", VA = "0x181A696A0")]
|
||||
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: 0x0600B6FB RID: 46843 RVA: 0x00283E60 File Offset: 0x00282060
|
||||
[Token(Token = "0x600B6FB")]
|
||||
[Address(RVA = "0x1A698E0", Offset = "0x1A686E0", VA = "0x181A698E0")]
|
||||
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: 0x0600B6FC RID: 46844 RVA: 0x00284064 File Offset: 0x00282264
|
||||
[Token(Token = "0x600B6FC")]
|
||||
[Address(RVA = "0x1A69160", Offset = "0x1A67F60", VA = "0x181A69160")]
|
||||
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] p = this.P;
|
||||
uint num3 = this.F(num);
|
||||
uint[] p2 = this.P;
|
||||
num = num2;
|
||||
uint num4 = this.F(num);
|
||||
uint[] p3 = this.P;
|
||||
uint num6;
|
||||
uint num5 = num6 + 1U;
|
||||
uint num7 = p3[(int)num5];
|
||||
num6 += (uint)2;
|
||||
uint[] p4 = this.P;
|
||||
num4 += (uint)1;
|
||||
uint num8 = p4[(int)num4];
|
||||
}
|
||||
|
||||
// Token: 0x0600B6FD RID: 46845 RVA: 0x002840E8 File Offset: 0x002822E8
|
||||
[Token(Token = "0x600B6FD")]
|
||||
[Address(RVA = "0x1A68FA0", Offset = "0x1A67DA0", VA = "0x181A68FA0")]
|
||||
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] p = this.P;
|
||||
int rounds = BlowfishEngine.ROUNDS;
|
||||
int num3 = rounds + 1;
|
||||
if (rounds > 0)
|
||||
{
|
||||
uint num4 = this.F(num);
|
||||
uint[] p2 = this.P;
|
||||
num = num2;
|
||||
uint num5 = this.F(num);
|
||||
uint[] p3 = this.P;
|
||||
int num6 = rounds - 1;
|
||||
}
|
||||
uint num7 = this.P[0];
|
||||
}
|
||||
|
||||
// Token: 0x0600B6FE RID: 46846 RVA: 0x0028415C File Offset: 0x0028235C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B6FE")]
|
||||
[Address(RVA = "0x1A69D30", Offset = "0x1A68B30", VA = "0x181A69D30")]
|
||||
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: 0x04007403 RID: 29699
|
||||
[Token(Token = "0x4007403")]
|
||||
private static readonly uint[] KP;
|
||||
|
||||
// Token: 0x04007404 RID: 29700
|
||||
[Token(Token = "0x4007404")]
|
||||
private static readonly uint[] KS0;
|
||||
|
||||
// Token: 0x04007405 RID: 29701
|
||||
[Token(Token = "0x4007405")]
|
||||
private static readonly uint[] KS1;
|
||||
|
||||
// Token: 0x04007406 RID: 29702
|
||||
[Token(Token = "0x4007406")]
|
||||
private static readonly uint[] KS2;
|
||||
|
||||
// Token: 0x04007407 RID: 29703
|
||||
[Token(Token = "0x4007407")]
|
||||
private static readonly uint[] KS3;
|
||||
|
||||
// Token: 0x04007408 RID: 29704
|
||||
[Token(Token = "0x4007408")]
|
||||
private static readonly int ROUNDS;
|
||||
|
||||
// Token: 0x04007409 RID: 29705
|
||||
[Token(Token = "0x4007409")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x0400740A RID: 29706
|
||||
[Token(Token = "0x400740A")]
|
||||
private static readonly int SBOX_SK;
|
||||
|
||||
// Token: 0x0400740B RID: 29707
|
||||
[Token(Token = "0x400740B")]
|
||||
private static readonly int P_SZ;
|
||||
|
||||
// Token: 0x0400740C RID: 29708
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400740C")]
|
||||
private readonly uint[] S0;
|
||||
|
||||
// Token: 0x0400740D RID: 29709
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400740D")]
|
||||
private readonly uint[] S1;
|
||||
|
||||
// Token: 0x0400740E RID: 29710
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400740E")]
|
||||
private readonly uint[] S2;
|
||||
|
||||
// Token: 0x0400740F RID: 29711
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400740F")]
|
||||
private readonly uint[] S3;
|
||||
|
||||
// Token: 0x04007410 RID: 29712
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007410")]
|
||||
private readonly uint[] P;
|
||||
|
||||
// Token: 0x04007411 RID: 29713
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007411")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x04007412 RID: 29714
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007412")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+560
@@ -0,0 +1,560 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C85 RID: 7301
|
||||
[Token(Token = "0x2001C85")]
|
||||
public class CamelliaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B6FF RID: 46847 RVA: 0x00284210 File Offset: 0x00282410
|
||||
[Token(Token = "0x600B6FF")]
|
||||
[Address(RVA = "0x1A6BDB0", Offset = "0x1A6ABB0", VA = "0x181A6BDB0")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B700 RID: 46848 RVA: 0x00284220 File Offset: 0x00282420
|
||||
[Token(Token = "0x600B700")]
|
||||
[Address(RVA = "0x1A6B260", Offset = "0x1A6A060", VA = "0x181A6B260")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B701 RID: 46849 RVA: 0x00284230 File Offset: 0x00282430
|
||||
[Token(Token = "0x600B701")]
|
||||
[Address(RVA = "0x1A6BDD0", Offset = "0x1A6ABD0", VA = "0x181A6BDD0")]
|
||||
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: 0x0600B702 RID: 46850 RVA: 0x002842D0 File Offset: 0x002824D0
|
||||
[Token(Token = "0x600B702")]
|
||||
[Address(RVA = "0x1A6ABC0", Offset = "0x1A699C0", VA = "0x181A6ABC0")]
|
||||
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: 0x0600B703 RID: 46851 RVA: 0x00284370 File Offset: 0x00282570
|
||||
[Token(Token = "0x600B703")]
|
||||
[Address(RVA = "0x1A6C110", Offset = "0x1A6AF10", VA = "0x181A6C110")]
|
||||
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: 0x0600B704 RID: 46852 RVA: 0x0028441C File Offset: 0x0028261C
|
||||
[Token(Token = "0x600B704")]
|
||||
[Address(RVA = "0x1A6AF00", Offset = "0x1A69D00", VA = "0x181A6AF00")]
|
||||
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: 0x0600B705 RID: 46853 RVA: 0x002844B8 File Offset: 0x002826B8
|
||||
[Token(Token = "0x600B705")]
|
||||
[Address(RVA = "0x1A6A410", Offset = "0x1A69210", VA = "0x181A6A410")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B706 RID: 46854 RVA: 0x002844D0 File Offset: 0x002826D0
|
||||
[Token(Token = "0x600B706")]
|
||||
[Address(RVA = "0x1A6E280", Offset = "0x1A6D080", VA = "0x181A6E280")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600B707 RID: 46855 RVA: 0x002844EC File Offset: 0x002826EC
|
||||
[Token(Token = "0x600B707")]
|
||||
[Address(RVA = "0x1A6A470", Offset = "0x1A69270", VA = "0x181A6A470")]
|
||||
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: 0x0600B708 RID: 46856 RVA: 0x002845B8 File Offset: 0x002827B8
|
||||
[Token(Token = "0x600B708")]
|
||||
[Address(RVA = "0x1A6A9E0", Offset = "0x1A697E0", VA = "0x181A6A9E0")]
|
||||
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: 0x0600B709 RID: 46857 RVA: 0x002845F4 File Offset: 0x002827F4
|
||||
[Token(Token = "0x600B709")]
|
||||
[Address(RVA = "0x1A6C440", Offset = "0x1A6B240", VA = "0x181A6C440")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B709)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B70A RID: 46858 RVA: 0x00285194 File Offset: 0x00283394
|
||||
[Token(Token = "0x600B70A")]
|
||||
[Address(RVA = "0x1A6B280", Offset = "0x1A6A080", VA = "0x181A6B280")]
|
||||
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: 0x0600B70B RID: 46859 RVA: 0x0028534C File Offset: 0x0028354C
|
||||
[Token(Token = "0x600B70B")]
|
||||
[Address(RVA = "0x1A6B7F0", Offset = "0x1A6A5F0", VA = "0x181A6B7F0")]
|
||||
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: 0x0600B70C RID: 46860 RVA: 0x00285560 File Offset: 0x00283760
|
||||
[Token(Token = "0x600B70C")]
|
||||
[Address(RVA = "0x1A6A380", Offset = "0x1A69180", VA = "0x181A6A380")]
|
||||
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: 0x0600B70D RID: 46861 RVA: 0x002855B0 File Offset: 0x002837B0
|
||||
[Token(Token = "0x600B70D")]
|
||||
[Address(RVA = "0x1A69FE0", Offset = "0x1A68DE0", VA = "0x181A69FE0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B70D)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CBC RID: 7356
|
||||
// (get) Token: 0x0600B70E RID: 46862 RVA: 0x002855F0 File Offset: 0x002837F0
|
||||
[Token(Token = "0x17001CBC")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B70E")]
|
||||
[Address(RVA = "0x1A6B230", Offset = "0x1A6A030", VA = "0x181A6B230", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CBD RID: 7357
|
||||
// (get) Token: 0x0600B70F RID: 46863 RVA: 0x00285604 File Offset: 0x00283804
|
||||
[Token(Token = "0x17001CBD")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B70F")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B710 RID: 46864 RVA: 0x00285614 File Offset: 0x00283814
|
||||
[Token(Token = "0x600B710")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B711 RID: 46865 RVA: 0x00285624 File Offset: 0x00283824
|
||||
[Token(Token = "0x600B711")]
|
||||
[Address(RVA = "0x1A6A140", Offset = "0x1A68F40", VA = "0x181A6A140", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B711)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B712 RID: 46866 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B712")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B713 RID: 46867 RVA: 0x00285660 File Offset: 0x00283860
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B713")]
|
||||
[Address(RVA = "0x1A6A240", Offset = "0x1A69040", VA = "0x181A6A240")]
|
||||
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: 0x04007413 RID: 29715
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007413")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007414 RID: 29716
|
||||
[FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x4007414")]
|
||||
private bool _keyIs128;
|
||||
|
||||
// Token: 0x04007415 RID: 29717
|
||||
[Token(Token = "0x4007415")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x04007416 RID: 29718
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007416")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x04007417 RID: 29719
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007417")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x04007418 RID: 29720
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007418")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x04007419 RID: 29721
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007419")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x0400741A RID: 29722
|
||||
[Token(Token = "0x400741A")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x0400741B RID: 29723
|
||||
[Token(Token = "0x400741B")]
|
||||
private static readonly uint[] SBOX1_1110;
|
||||
|
||||
// Token: 0x0400741C RID: 29724
|
||||
[Token(Token = "0x400741C")]
|
||||
private static readonly uint[] SBOX4_4404;
|
||||
|
||||
// Token: 0x0400741D RID: 29725
|
||||
[Token(Token = "0x400741D")]
|
||||
private static readonly uint[] SBOX2_0222;
|
||||
|
||||
// Token: 0x0400741E RID: 29726
|
||||
[Token(Token = "0x400741E")]
|
||||
private static readonly uint[] SBOX3_3033;
|
||||
}
|
||||
}
|
||||
+643
@@ -0,0 +1,643 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C86 RID: 7302
|
||||
[Token(Token = "0x2001C86")]
|
||||
public class CamelliaLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B714 RID: 46868 RVA: 0x002856FC File Offset: 0x002838FC
|
||||
[Token(Token = "0x600B714")]
|
||||
[Address(RVA = "0x1A6BDB0", Offset = "0x1A6ABB0", VA = "0x181A6BDB0")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B715 RID: 46869 RVA: 0x0028570C File Offset: 0x0028390C
|
||||
[Token(Token = "0x600B715")]
|
||||
[Address(RVA = "0x1A6B260", Offset = "0x1A6A060", VA = "0x181A6B260")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B716 RID: 46870 RVA: 0x0028571C File Offset: 0x0028391C
|
||||
[Token(Token = "0x600B716")]
|
||||
[Address(RVA = "0x1A6BDD0", Offset = "0x1A6ABD0", VA = "0x181A6BDD0")]
|
||||
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: 0x0600B717 RID: 46871 RVA: 0x002857BC File Offset: 0x002839BC
|
||||
[Token(Token = "0x600B717")]
|
||||
[Address(RVA = "0x1A6ABC0", Offset = "0x1A699C0", VA = "0x181A6ABC0")]
|
||||
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: 0x0600B718 RID: 46872 RVA: 0x0028585C File Offset: 0x00283A5C
|
||||
[Token(Token = "0x600B718")]
|
||||
[Address(RVA = "0x1A6C110", Offset = "0x1A6AF10", VA = "0x181A6C110")]
|
||||
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: 0x0600B719 RID: 46873 RVA: 0x00285908 File Offset: 0x00283B08
|
||||
[Token(Token = "0x600B719")]
|
||||
[Address(RVA = "0x1A6AF00", Offset = "0x1A69D00", VA = "0x181A6AF00")]
|
||||
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: 0x0600B71A RID: 46874 RVA: 0x002859A4 File Offset: 0x00283BA4
|
||||
[Token(Token = "0x600B71A")]
|
||||
[Address(RVA = "0x1A6A410", Offset = "0x1A69210", VA = "0x181A6A410")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B71B RID: 46875 RVA: 0x002859BC File Offset: 0x00283BBC
|
||||
[Token(Token = "0x600B71B")]
|
||||
[Address(RVA = "0x1A6E280", Offset = "0x1A6D080", VA = "0x181A6E280")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600B71C RID: 46876 RVA: 0x002859D8 File Offset: 0x00283BD8
|
||||
[Token(Token = "0x600B71C")]
|
||||
[Address(RVA = "0x1A6ED20", Offset = "0x1A6DB20", VA = "0x181A6ED20")]
|
||||
private byte lRot8(byte v, int rot)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)rot;
|
||||
return v;
|
||||
}
|
||||
|
||||
// Token: 0x0600B71D RID: 46877 RVA: 0x002859EC File Offset: 0x00283BEC
|
||||
[Token(Token = "0x600B71D")]
|
||||
[Address(RVA = "0x1A6F8F0", Offset = "0x1A6E6F0", VA = "0x181A6F8F0")]
|
||||
private uint sbox2(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B71E RID: 46878 RVA: 0x00285A04 File Offset: 0x00283C04
|
||||
[Token(Token = "0x600B71E")]
|
||||
[Address(RVA = "0x1A6F980", Offset = "0x1A6E780", VA = "0x181A6F980")]
|
||||
private uint sbox3(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B71F RID: 46879 RVA: 0x00285A1C File Offset: 0x00283C1C
|
||||
[Token(Token = "0x600B71F")]
|
||||
[Address(RVA = "0x1A6FA10", Offset = "0x1A6E810", VA = "0x181A6FA10")]
|
||||
private uint sbox4(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B720 RID: 46880 RVA: 0x00285A34 File Offset: 0x00283C34
|
||||
[Token(Token = "0x600B720")]
|
||||
[Address(RVA = "0x1A6E660", Offset = "0x1A6D460", VA = "0x181A6E660")]
|
||||
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: 0x0600B721 RID: 46881 RVA: 0x00285B60 File Offset: 0x00283D60
|
||||
[Token(Token = "0x600B721")]
|
||||
[Address(RVA = "0x1A6EB10", Offset = "0x1A6D910", VA = "0x181A6EB10")]
|
||||
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: 0x0600B722 RID: 46882 RVA: 0x00285B9C File Offset: 0x00283D9C
|
||||
[Token(Token = "0x600B722")]
|
||||
[Address(RVA = "0x1A6FAA0", Offset = "0x1A6E8A0", VA = "0x181A6FAA0")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B722)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B723 RID: 46883 RVA: 0x00286740 File Offset: 0x00284940
|
||||
[Token(Token = "0x600B723")]
|
||||
[Address(RVA = "0x1A6ED50", Offset = "0x1A6DB50", VA = "0x181A6ED50")]
|
||||
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: 0x0600B724 RID: 46884 RVA: 0x00286958 File Offset: 0x00284B58
|
||||
[Token(Token = "0x600B724")]
|
||||
[Address(RVA = "0x1A6F2F0", Offset = "0x1A6E0F0", VA = "0x181A6F2F0")]
|
||||
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: 0x0600B725 RID: 46885 RVA: 0x00286BE0 File Offset: 0x00284DE0
|
||||
[Token(Token = "0x600B725")]
|
||||
[Address(RVA = "0x1A6E5D0", Offset = "0x1A6D3D0", VA = "0x181A6E5D0")]
|
||||
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: 0x17001CBE RID: 7358
|
||||
// (get) Token: 0x0600B726 RID: 46886 RVA: 0x00286C34 File Offset: 0x00284E34
|
||||
[Token(Token = "0x17001CBE")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B726")]
|
||||
[Address(RVA = "0x1A6ECF0", Offset = "0x1A6DAF0", VA = "0x181A6ECF0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CBF RID: 7359
|
||||
// (get) Token: 0x0600B727 RID: 46887 RVA: 0x00286C48 File Offset: 0x00284E48
|
||||
[Token(Token = "0x17001CBF")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B727")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B728 RID: 46888 RVA: 0x00286C58 File Offset: 0x00284E58
|
||||
[Token(Token = "0x600B728")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B729 RID: 46889 RVA: 0x00286C68 File Offset: 0x00284E68
|
||||
[Token(Token = "0x600B729")]
|
||||
[Address(RVA = "0x1A6E2D0", Offset = "0x1A6D0D0", VA = "0x181A6E2D0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B729)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B72A RID: 46890 RVA: 0x00286CA8 File Offset: 0x00284EA8
|
||||
[Token(Token = "0x600B72A")]
|
||||
[Address(RVA = "0x1A6E430", Offset = "0x1A6D230", VA = "0x181A6E430", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B72A)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B72B RID: 46891 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B72B")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B72C RID: 46892 RVA: 0x00286CE4 File Offset: 0x00284EE4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B72C")]
|
||||
[Address(RVA = "0x1A6E530", Offset = "0x1A6D330", VA = "0x181A6E530")]
|
||||
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: 0x0400741F RID: 29727
|
||||
[Token(Token = "0x400741F")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x04007420 RID: 29728
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007420")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007421 RID: 29729
|
||||
[FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x4007421")]
|
||||
private bool _keyis128;
|
||||
|
||||
// Token: 0x04007422 RID: 29730
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007422")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x04007423 RID: 29731
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007423")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x04007424 RID: 29732
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007424")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x04007425 RID: 29733
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007425")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x04007426 RID: 29734
|
||||
[Token(Token = "0x4007426")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x04007427 RID: 29735
|
||||
[Token(Token = "0x4007427")]
|
||||
private static readonly byte[] SBOX1;
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C87 RID: 7303
|
||||
[Token(Token = "0x2001C87")]
|
||||
public class CamelliaWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600B72D RID: 46893 RVA: 0x00286D28 File Offset: 0x00284F28
|
||||
[Token(Token = "0x600B72D")]
|
||||
[Address(RVA = "0x1DBA100", Offset = "0x1DB8F00", VA = "0x181DBA100")]
|
||||
public CamelliaWrapEngine()
|
||||
{
|
||||
CamelliaEngine camelliaEngine = new CamelliaEngine();
|
||||
base..ctor(camelliaEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+617
@@ -0,0 +1,617 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C88 RID: 7304
|
||||
[Token(Token = "0x2001C88")]
|
||||
public class Cast5Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B72E RID: 46894 RVA: 0x00286D44 File Offset: 0x00284F44
|
||||
[Token(Token = "0x600B72E")]
|
||||
[Address(RVA = "0x1DC1DD0", Offset = "0x1DC0BD0", VA = "0x181DC1DD0")]
|
||||
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: 0x0600B72F RID: 46895 RVA: 0x00286D84 File Offset: 0x00284F84
|
||||
[Token(Token = "0x600B72F")]
|
||||
[Address(RVA = "0x1DBADA0", Offset = "0x1DB9BA0", VA = "0x181DBADA0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B72F)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CC0 RID: 7360
|
||||
// (get) Token: 0x0600B730 RID: 46896 RVA: 0x00286DCC File Offset: 0x00284FCC
|
||||
[Token(Token = "0x17001CC0")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B730")]
|
||||
[Address(RVA = "0x1DC1E70", Offset = "0x1DC0C70", VA = "0x181DC1E70", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST5";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CC1 RID: 7361
|
||||
// (get) Token: 0x0600B731 RID: 46897 RVA: 0x00286DE0 File Offset: 0x00284FE0
|
||||
[Token(Token = "0x17001CC1")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B731")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B732 RID: 46898 RVA: 0x00286DF0 File Offset: 0x00284FF0
|
||||
[Token(Token = "0x600B732")]
|
||||
[Address(RVA = "0x1DBB030", Offset = "0x1DB9E30", VA = "0x181DBB030", Slot = "13")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B732)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B733 RID: 46899 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B733")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B734 RID: 46900 RVA: 0x00286E2C File Offset: 0x0028502C
|
||||
[Token(Token = "0x600B734")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "15")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B735 RID: 46901 RVA: 0x00286E3C File Offset: 0x0028503C
|
||||
[Token(Token = "0x600B735")]
|
||||
[Address(RVA = "0x1DBB190", Offset = "0x1DB9F90", VA = "0x181DBB190", Slot = "16")]
|
||||
internal virtual void SetKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B735)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B736 RID: 46902 RVA: 0x00287630 File Offset: 0x00285830
|
||||
[Token(Token = "0x600B736")]
|
||||
[Address(RVA = "0x1DBA8D0", Offset = "0x1DB96D0", VA = "0x181DBA8D0", Slot = "17")]
|
||||
internal virtual int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Encipher(num, num2, array);
|
||||
uint num3 = array[0];
|
||||
uint num4 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B737 RID: 46903 RVA: 0x00287678 File Offset: 0x00285878
|
||||
[Token(Token = "0x600B737")]
|
||||
[Address(RVA = "0x1DBA7C0", Offset = "0x1DB95C0", VA = "0x181DBA7C0", Slot = "18")]
|
||||
internal virtual int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Decipher(num, num2, array);
|
||||
uint num3 = array[0];
|
||||
uint num4 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B738 RID: 46904 RVA: 0x002876C0 File Offset: 0x002858C0
|
||||
[Token(Token = "0x600B738")]
|
||||
[Address(RVA = "0x1DBA9E0", Offset = "0x1DB97E0", VA = "0x181DBA9E0")]
|
||||
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: 0x0600B739 RID: 46905 RVA: 0x00287708 File Offset: 0x00285908
|
||||
[Token(Token = "0x600B739")]
|
||||
[Address(RVA = "0x1DBAB20", Offset = "0x1DB9920", VA = "0x181DBAB20")]
|
||||
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: 0x0600B73A RID: 46906 RVA: 0x00287754 File Offset: 0x00285954
|
||||
[Token(Token = "0x600B73A")]
|
||||
[Address(RVA = "0x1DBAC60", Offset = "0x1DB9A60", VA = "0x181DBAC60")]
|
||||
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: 0x0600B73B RID: 46907 RVA: 0x00287780 File Offset: 0x00285980
|
||||
[Token(Token = "0x600B73B")]
|
||||
[Address(RVA = "0x1DBA4F0", Offset = "0x1DB92F0", VA = "0x181DBA4F0")]
|
||||
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: 0x0600B73C RID: 46908 RVA: 0x00287818 File Offset: 0x00285A18
|
||||
[Token(Token = "0x600B73C")]
|
||||
[Address(RVA = "0x1DBA210", Offset = "0x1DB9010", VA = "0x181DBA210")]
|
||||
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: 0x0600B73D RID: 46909 RVA: 0x002878A4 File Offset: 0x00285AA4
|
||||
[Token(Token = "0x600B73D")]
|
||||
[Address(RVA = "0x1DBA160", Offset = "0x1DB8F60", VA = "0x181DBA160")]
|
||||
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: 0x0600B73E RID: 46910 RVA: 0x002878DC File Offset: 0x00285ADC
|
||||
[Token(Token = "0x600B73E")]
|
||||
[Address(RVA = "0x1DBAF80", Offset = "0x1DB9D80", VA = "0x181DBAF80")]
|
||||
internal static uint IntsTo32bits(int[] b, int i)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = i + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B73F RID: 46911 RVA: 0x002878FC File Offset: 0x00285AFC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B73F")]
|
||||
[Address(RVA = "0x1DC1BC0", Offset = "0x1DC09C0", VA = "0x181DC1BC0")]
|
||||
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: 0x04007428 RID: 29736
|
||||
[Token(Token = "0x4007428")]
|
||||
private static readonly uint[] S1;
|
||||
|
||||
// Token: 0x04007429 RID: 29737
|
||||
[Token(Token = "0x4007429")]
|
||||
private static readonly uint[] S2;
|
||||
|
||||
// Token: 0x0400742A RID: 29738
|
||||
[Token(Token = "0x400742A")]
|
||||
private static readonly uint[] S3;
|
||||
|
||||
// Token: 0x0400742B RID: 29739
|
||||
[Token(Token = "0x400742B")]
|
||||
private static readonly uint[] S4;
|
||||
|
||||
// Token: 0x0400742C RID: 29740
|
||||
[Token(Token = "0x400742C")]
|
||||
private static readonly uint[] S5;
|
||||
|
||||
// Token: 0x0400742D RID: 29741
|
||||
[Token(Token = "0x400742D")]
|
||||
private static readonly uint[] S6;
|
||||
|
||||
// Token: 0x0400742E RID: 29742
|
||||
[Token(Token = "0x400742E")]
|
||||
private static readonly uint[] S7;
|
||||
|
||||
// Token: 0x0400742F RID: 29743
|
||||
[Token(Token = "0x400742F")]
|
||||
private static readonly uint[] S8;
|
||||
|
||||
// Token: 0x04007430 RID: 29744
|
||||
[Token(Token = "0x4007430")]
|
||||
internal static readonly int MAX_ROUNDS;
|
||||
|
||||
// Token: 0x04007431 RID: 29745
|
||||
[Token(Token = "0x4007431")]
|
||||
internal static readonly int RED_ROUNDS;
|
||||
|
||||
// Token: 0x04007432 RID: 29746
|
||||
[Token(Token = "0x4007432")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04007433 RID: 29747
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007433")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x04007434 RID: 29748
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007434")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x04007435 RID: 29749
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007435")]
|
||||
private bool _encrypting;
|
||||
|
||||
// Token: 0x04007436 RID: 29750
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007436")]
|
||||
private byte[] _workingKey;
|
||||
|
||||
// Token: 0x04007437 RID: 29751
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007437")]
|
||||
private int _rounds;
|
||||
}
|
||||
}
|
||||
+388
@@ -0,0 +1,388 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C89 RID: 7305
|
||||
[Token(Token = "0x2001C89")]
|
||||
public sealed class Cast6Engine : Cast5Engine
|
||||
{
|
||||
// Token: 0x0600B740 RID: 46912 RVA: 0x002879F8 File Offset: 0x00285BF8
|
||||
[Token(Token = "0x600B740")]
|
||||
[Address(RVA = "0x1DC3B30", Offset = "0x1DC2930", VA = "0x181DC3B30")]
|
||||
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: 0x17001CC2 RID: 7362
|
||||
// (get) Token: 0x0600B741 RID: 46913 RVA: 0x00287A90 File Offset: 0x00285C90
|
||||
[Token(Token = "0x17001CC2")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B741")]
|
||||
[Address(RVA = "0x1DC3C70", Offset = "0x1DC2A70", VA = "0x181DC3C70", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B742 RID: 46914 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B742")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B743 RID: 46915 RVA: 0x00287AA4 File Offset: 0x00285CA4
|
||||
[Token(Token = "0x600B743")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "15")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B744 RID: 46916 RVA: 0x00287AB4 File Offset: 0x00285CB4
|
||||
[Token(Token = "0x600B744")]
|
||||
[Address(RVA = "0x1DC2B20", Offset = "0x1DC1920", VA = "0x181DC2B20", Slot = "16")]
|
||||
internal override void SetKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2;
|
||||
this._Tm[0] = num2;
|
||||
num2 += (uint)1859775393;
|
||||
uint num3;
|
||||
this._Tr[0] = (int)num3;
|
||||
num++;
|
||||
num3 += (uint)(-15);
|
||||
num += 8;
|
||||
byte[] array = new byte[64];
|
||||
uint[] workingKey = this._workingKey;
|
||||
num++;
|
||||
uint num4;
|
||||
workingKey[0] = num4;
|
||||
uint[] workingKey2 = this._workingKey;
|
||||
int length = workingKey2.Length;
|
||||
uint[] tm = this._Tm;
|
||||
uint num5 = workingKey2[3];
|
||||
uint num6 = tm[num];
|
||||
int num7 = this._Tr[num];
|
||||
uint num8 = Cast5Engine.F1(num5, num6, num7);
|
||||
workingKey2[3] = num8;
|
||||
uint[] workingKey3 = this._workingKey;
|
||||
int length2 = workingKey3.Length;
|
||||
uint[] tm2 = this._Tm;
|
||||
int[] tr = this._Tr;
|
||||
uint num10;
|
||||
int num11;
|
||||
uint num9 = Cast5Engine.F2(workingKey3[3], num10, num11);
|
||||
workingKey3[2] = num9;
|
||||
uint[] workingKey4 = this._workingKey;
|
||||
int length3 = workingKey4.Length;
|
||||
uint[] tm3 = this._Tm;
|
||||
int[] tr2 = this._Tr;
|
||||
uint num13;
|
||||
int num14;
|
||||
uint num12 = Cast5Engine.F3(workingKey4[2], num13, num14);
|
||||
workingKey4[2] = num12;
|
||||
uint[] workingKey5 = this._workingKey;
|
||||
int length4 = workingKey5.Length;
|
||||
uint[] tm4 = this._Tm;
|
||||
int[] tr3 = this._Tr;
|
||||
uint num16;
|
||||
int num17;
|
||||
uint num15 = Cast5Engine.F1(workingKey5[2], num16, num17);
|
||||
workingKey5[1] = num15;
|
||||
uint[] workingKey6 = this._workingKey;
|
||||
int length5 = workingKey6.Length;
|
||||
uint[] tm5 = this._Tm;
|
||||
int[] tr4 = this._Tr;
|
||||
uint num19;
|
||||
int num20;
|
||||
uint num18 = Cast5Engine.F2(workingKey6[1], num19, num20);
|
||||
workingKey6[1] = num18;
|
||||
uint[] workingKey7 = this._workingKey;
|
||||
int length6 = workingKey7.Length;
|
||||
uint[] tm6 = this._Tm;
|
||||
int[] tr5 = this._Tr;
|
||||
uint num22;
|
||||
int num23;
|
||||
uint num21 = Cast5Engine.F3(workingKey7[1], num22, num23);
|
||||
workingKey7[0] = num21;
|
||||
uint[] workingKey8 = this._workingKey;
|
||||
int length7 = workingKey8.Length;
|
||||
uint[] tm7 = this._Tm;
|
||||
int[] tr6 = this._Tr;
|
||||
uint num25;
|
||||
int num26;
|
||||
uint num24 = Cast5Engine.F1(workingKey8[0], num25, num26);
|
||||
workingKey8[0] = num24;
|
||||
uint[] workingKey9 = this._workingKey;
|
||||
int length8 = workingKey9.Length;
|
||||
uint[] tm8 = this._Tm;
|
||||
int[] tr7 = this._Tr;
|
||||
uint num28;
|
||||
int num29;
|
||||
uint num27 = Cast5Engine.F2(workingKey9[0], num28, num29);
|
||||
workingKey9[3] = num27;
|
||||
uint[] workingKey10 = this._workingKey;
|
||||
int length9 = workingKey10.Length;
|
||||
uint[] tm9 = this._Tm;
|
||||
int[] tr8 = this._Tr;
|
||||
uint num30 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
|
||||
workingKey10[3] = num30;
|
||||
uint[] workingKey11 = this._workingKey;
|
||||
int length10 = workingKey11.Length;
|
||||
uint[] tm10 = this._Tm;
|
||||
int[] tr9 = this._Tr;
|
||||
uint num32;
|
||||
int num33;
|
||||
uint num31 = Cast5Engine.F2(workingKey11[3], num32, num33);
|
||||
workingKey11[2] = num31;
|
||||
uint[] workingKey12 = this._workingKey;
|
||||
int length11 = workingKey12.Length;
|
||||
uint[] tm11 = this._Tm;
|
||||
int[] tr10 = this._Tr;
|
||||
uint num35;
|
||||
int num36;
|
||||
uint num34 = Cast5Engine.F3(workingKey12[2], num35, num36);
|
||||
workingKey12[2] = num34;
|
||||
uint[] workingKey13 = this._workingKey;
|
||||
int length12 = workingKey13.Length;
|
||||
uint[] tm12 = this._Tm;
|
||||
int[] tr11 = this._Tr;
|
||||
uint num38;
|
||||
int num39;
|
||||
uint num37 = Cast5Engine.F1(workingKey13[2], num38, num39);
|
||||
workingKey13[1] = num37;
|
||||
uint[] workingKey14 = this._workingKey;
|
||||
int length13 = workingKey14.Length;
|
||||
uint[] tm13 = this._Tm;
|
||||
int[] tr12 = this._Tr;
|
||||
uint num41;
|
||||
int num42;
|
||||
uint num40 = Cast5Engine.F2(workingKey14[1], num41, num42);
|
||||
workingKey14[1] = num40;
|
||||
uint[] workingKey15 = this._workingKey;
|
||||
int length14 = workingKey15.Length;
|
||||
uint[] tm14 = this._Tm;
|
||||
int[] tr13 = this._Tr;
|
||||
uint num44;
|
||||
int num45;
|
||||
uint num43 = Cast5Engine.F3(workingKey15[1], num44, num45);
|
||||
workingKey15[0] = num43;
|
||||
uint[] workingKey16 = this._workingKey;
|
||||
int length15 = workingKey16.Length;
|
||||
uint[] tm15 = this._Tm;
|
||||
int[] tr14 = this._Tr;
|
||||
uint num47;
|
||||
int num48;
|
||||
uint num46 = Cast5Engine.F1(workingKey16[0], num47, num48);
|
||||
workingKey16[0] = num46;
|
||||
uint[] workingKey17 = this._workingKey;
|
||||
int length16 = workingKey17.Length;
|
||||
uint[] tm16 = this._Tm;
|
||||
num += 15;
|
||||
int num49 = this._Tr[num];
|
||||
uint num50 = workingKey17[0];
|
||||
uint num51 = tm16[num];
|
||||
uint num52 = Cast5Engine.F2(num50, num51, num49);
|
||||
workingKey17[3] = num52;
|
||||
uint[] workingKey18 = this._workingKey;
|
||||
int[] kr = this._Kr;
|
||||
uint num53 = workingKey18[0];
|
||||
num.m_value = (int)num53;
|
||||
uint[] workingKey19 = this._workingKey;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num54 = workingKey19[1];
|
||||
kr2[0] = (int)num54;
|
||||
uint[] workingKey20 = this._workingKey;
|
||||
int[] kr3 = this._Kr;
|
||||
uint num55 = workingKey20[2];
|
||||
kr3[0] = (int)num55;
|
||||
uint[] workingKey21 = this._workingKey;
|
||||
int[] kr4 = this._Kr;
|
||||
uint num56 = workingKey21[3];
|
||||
kr4[0] = (int)num56;
|
||||
uint[] workingKey22 = this._workingKey;
|
||||
uint[] km = this._Km;
|
||||
uint num57 = workingKey22[3];
|
||||
num.m_value = (int)num57;
|
||||
uint[] workingKey23 = this._workingKey;
|
||||
uint[] km2 = this._Km;
|
||||
uint num58 = workingKey23[2];
|
||||
km2[0] = num58;
|
||||
uint[] workingKey24 = this._workingKey;
|
||||
uint[] km3 = this._Km;
|
||||
uint num59 = workingKey24[1];
|
||||
km3[0] = num59;
|
||||
uint[] workingKey25 = this._workingKey;
|
||||
uint[] km4 = this._Km;
|
||||
uint num60 = workingKey25[0];
|
||||
num++;
|
||||
km4[0] = num60;
|
||||
}
|
||||
|
||||
// Token: 0x0600B745 RID: 46917 RVA: 0x0028804C File Offset: 0x0028624C
|
||||
[Token(Token = "0x600B745")]
|
||||
[Address(RVA = "0x1DC2970", Offset = "0x1DC1770", VA = "0x181DC2970", Slot = "17")]
|
||||
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[4];
|
||||
this.CAST_Encipher(num, num2, num3, num4, array);
|
||||
uint num5 = array[0];
|
||||
uint num6 = array[0];
|
||||
uint num7 = array[1];
|
||||
uint num8 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B746 RID: 46918 RVA: 0x002880C0 File Offset: 0x002862C0
|
||||
[Token(Token = "0x600B746")]
|
||||
[Address(RVA = "0x1DC27C0", Offset = "0x1DC15C0", VA = "0x181DC27C0", Slot = "18")]
|
||||
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[4];
|
||||
this.CAST_Decipher(num, num2, num3, num4, array);
|
||||
uint num5 = array[0];
|
||||
uint num6 = array[0];
|
||||
uint num7 = array[1];
|
||||
uint num8 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B747 RID: 46919 RVA: 0x00288134 File Offset: 0x00286334
|
||||
[Token(Token = "0x600B747")]
|
||||
[Address(RVA = "0x1DC2330", Offset = "0x1DC1130", VA = "0x181DC2330")]
|
||||
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: 0x0600B748 RID: 46920 RVA: 0x00288234 File Offset: 0x00286434
|
||||
[Token(Token = "0x600B748")]
|
||||
[Address(RVA = "0x1DC1EA0", Offset = "0x1DC0CA0", VA = "0x181DC1EA0")]
|
||||
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: 0x04007438 RID: 29752
|
||||
[Token(Token = "0x4007438")]
|
||||
private const int ROUNDS = 12;
|
||||
|
||||
// Token: 0x04007439 RID: 29753
|
||||
[Token(Token = "0x4007439")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x0400743A RID: 29754
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400743A")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x0400743B RID: 29755
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400743B")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x0400743C RID: 29756
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400743C")]
|
||||
private int[] _Tr;
|
||||
|
||||
// Token: 0x0400743D RID: 29757
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x400743D")]
|
||||
private uint[] _Tm;
|
||||
|
||||
// Token: 0x0400743E RID: 29758
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x400743E")]
|
||||
private uint[] _workingKey;
|
||||
}
|
||||
}
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8A RID: 7306
|
||||
[Token(Token = "0x2001C8A")]
|
||||
public class ChaCha7539Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x0600B749 RID: 46921 RVA: 0x00288340 File Offset: 0x00286540
|
||||
[Token(Token = "0x600B749")]
|
||||
[Address(RVA = "0x1DC3EC0", Offset = "0x1DC2CC0", VA = "0x181DC3EC0")]
|
||||
public ChaCha7539Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001CC3 RID: 7363
|
||||
// (get) Token: 0x0600B74A RID: 46922 RVA: 0x00288354 File Offset: 0x00286554
|
||||
[Token(Token = "0x17001CC3")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B74A")]
|
||||
[Address(RVA = "0x1DC3F20", Offset = "0x1DC2D20", VA = "0x181DC3F20", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha7539" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CC4 RID: 7364
|
||||
// (get) Token: 0x0600B74B RID: 46923 RVA: 0x00288374 File Offset: 0x00286574
|
||||
[Token(Token = "0x17001CC4")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600B74B")]
|
||||
[Address(RVA = "0x4B1E00", Offset = "0x4B0C00", VA = "0x1804B1E00", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 12;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B74C RID: 46924 RVA: 0x00288384 File Offset: 0x00286584
|
||||
[Token(Token = "0x600B74C")]
|
||||
[Address(RVA = "0x1DC3CA0", Offset = "0x1DC2AA0", VA = "0x181DC3CA0", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B74C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B74D RID: 46925 RVA: 0x002883B4 File Offset: 0x002865B4
|
||||
[Token(Token = "0x600B74D")]
|
||||
[Address(RVA = "0x1DC3D70", Offset = "0x1DC2B70", VA = "0x181DC3D70", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
|
||||
// Token: 0x0600B74E RID: 46926 RVA: 0x002883D0 File Offset: 0x002865D0
|
||||
[Token(Token = "0x600B74E")]
|
||||
[Address(RVA = "0x1DC3DB0", Offset = "0x1DC2BB0", VA = "0x181DC3DB0", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B74E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B74F RID: 46927 RVA: 0x00288438 File Offset: 0x00286638
|
||||
[Token(Token = "0x600B74F")]
|
||||
[Address(RVA = "0x1DC3D30", Offset = "0x1DC2B30", VA = "0x181DC3D30", 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8B RID: 7307
|
||||
[Token(Token = "0x2001C8B")]
|
||||
public class ChaChaEngine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x0600B750 RID: 46928 RVA: 0x00288474 File Offset: 0x00286674
|
||||
[Token(Token = "0x600B750")]
|
||||
[Address(RVA = "0x1DC4B40", Offset = "0x1DC3940", VA = "0x181DC4B40")]
|
||||
public ChaChaEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B751 RID: 46929 RVA: 0x00288488 File Offset: 0x00286688
|
||||
[Token(Token = "0x600B751")]
|
||||
[Address(RVA = "0x1DC4AE0", Offset = "0x1DC38E0", VA = "0x181DC4AE0")]
|
||||
public ChaChaEngine(int rounds)
|
||||
: base(rounds)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001CC5 RID: 7365
|
||||
// (get) Token: 0x0600B752 RID: 46930 RVA: 0x0028849C File Offset: 0x0028669C
|
||||
[Token(Token = "0x17001CC5")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B752")]
|
||||
[Address(RVA = "0x1DC4BA0", Offset = "0x1DC39A0", VA = "0x181DC4BA0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B753 RID: 46931 RVA: 0x002884BC File Offset: 0x002866BC
|
||||
[Token(Token = "0x600B753")]
|
||||
[Address(RVA = "0x1DC3F80", Offset = "0x1DC2D80", VA = "0x181DC3F80", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 12)
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B754 RID: 46932 RVA: 0x002884E8 File Offset: 0x002866E8
|
||||
[Token(Token = "0x600B754")]
|
||||
[Address(RVA = "0x1DC4950", Offset = "0x1DC3750", VA = "0x181DC4950", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
engineState[6] = (uint)num;
|
||||
engineState[6] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B755 RID: 46933 RVA: 0x00288514 File Offset: 0x00286714
|
||||
[Token(Token = "0x600B755")]
|
||||
[Address(RVA = "0x1DC49B0", Offset = "0x1DC37B0", VA = "0x181DC49B0", 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: 0x0600B756 RID: 46934 RVA: 0x00288598 File Offset: 0x00286798
|
||||
[Token(Token = "0x600B756")]
|
||||
[Address(RVA = "0x1DC3D30", Offset = "0x1DC2B30", VA = "0x181DC3D30", 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: 0x0600B757 RID: 46935 RVA: 0x002885D4 File Offset: 0x002867D4
|
||||
[Token(Token = "0x600B757")]
|
||||
[Address(RVA = "0x1DC3FE0", Offset = "0x1DC2DE0", VA = "0x181DC3FE0")]
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8C RID: 7308
|
||||
[Token(Token = "0x2001C8C")]
|
||||
public class DesEdeEngine : DesEngine
|
||||
{
|
||||
// Token: 0x0600B758 RID: 46936 RVA: 0x002888C4 File Offset: 0x00286AC4
|
||||
[Token(Token = "0x600B758")]
|
||||
[Address(RVA = "0x1DC4C00", Offset = "0x1DC3A00", VA = "0x181DC4C00", Slot = "11")]
|
||||
public override void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B758)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CC6 RID: 7366
|
||||
// (get) Token: 0x0600B759 RID: 46937 RVA: 0x002889B4 File Offset: 0x00286BB4
|
||||
[Token(Token = "0x17001CC6")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B759")]
|
||||
[Address(RVA = "0x1DC5150", Offset = "0x1DC3F50", VA = "0x181DC5150", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B75A RID: 46938 RVA: 0x002889C8 File Offset: 0x00286BC8
|
||||
[Token(Token = "0x600B75A")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "14")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B75B RID: 46939 RVA: 0x002889D8 File Offset: 0x00286BD8
|
||||
[Token(Token = "0x600B75B")]
|
||||
[Address(RVA = "0x1DC4F20", Offset = "0x1DC3D20", VA = "0x181DC4F20", Slot = "15")]
|
||||
public override int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B75B)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B75C RID: 46940 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B75C")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "16")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B75D RID: 46941 RVA: 0x00288A6C File Offset: 0x00286C6C
|
||||
[Token(Token = "0x600B75D")]
|
||||
[Address(RVA = "0x1DC50F0", Offset = "0x1DC3EF0", VA = "0x181DC50F0")]
|
||||
public DesEdeEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0400743F RID: 29759
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400743F")]
|
||||
private int[] workingKey1;
|
||||
|
||||
// Token: 0x04007440 RID: 29760
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007440")]
|
||||
private int[] workingKey2;
|
||||
|
||||
// Token: 0x04007441 RID: 29761
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007441")]
|
||||
private int[] workingKey3;
|
||||
|
||||
// Token: 0x04007442 RID: 29762
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007442")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+215
@@ -0,0 +1,215 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8D RID: 7309
|
||||
[Token(Token = "0x2001C8D")]
|
||||
public class DesEdeWrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600B75E RID: 46942 RVA: 0x00288A80 File Offset: 0x00286C80
|
||||
[Token(Token = "0x600B75E")]
|
||||
[Address(RVA = "0x1DC52E0", Offset = "0x1DC40E0", VA = "0x181DC52E0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B75E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CC7 RID: 7367
|
||||
// (get) Token: 0x0600B75F RID: 46943 RVA: 0x00288B84 File Offset: 0x00286D84
|
||||
[Token(Token = "0x17001CC7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B75F")]
|
||||
[Address(RVA = "0x1DC5F10", Offset = "0x1DC4D10", VA = "0x181DC5F10", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B760 RID: 46944 RVA: 0x00288B98 File Offset: 0x00286D98
|
||||
[Token(Token = "0x600B760")]
|
||||
[Address(RVA = "0x1DC5B00", Offset = "0x1DC4900", VA = "0x181DC5B00", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B760)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B761 RID: 46945 RVA: 0x00288D50 File Offset: 0x00286F50
|
||||
[Token(Token = "0x600B761")]
|
||||
[Address(RVA = "0x1DC56A0", Offset = "0x1DC44A0", VA = "0x181DC56A0", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B761)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B762 RID: 46946 RVA: 0x00288F30 File Offset: 0x00287130
|
||||
[Token(Token = "0x600B762")]
|
||||
[Address(RVA = "0x1DC5180", Offset = "0x1DC3F80", VA = "0x181DC5180")]
|
||||
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: 0x0600B763 RID: 46947 RVA: 0x00288F80 File Offset: 0x00287180
|
||||
[Token(Token = "0x600B763")]
|
||||
[Address(RVA = "0x1DC5260", Offset = "0x1DC4060", VA = "0x181DC5260")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x0600B764 RID: 46948 RVA: 0x00288F9C File Offset: 0x0028719C
|
||||
[Token(Token = "0x600B764")]
|
||||
[Address(RVA = "0x1DC5F40", Offset = "0x1DC4D40", VA = "0x181DC5F40")]
|
||||
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: 0x0600B765 RID: 46949 RVA: 0x00288FD4 File Offset: 0x002871D4
|
||||
[Token(Token = "0x600B765")]
|
||||
[Address(RVA = "0x1DC5EA0", Offset = "0x1DC4CA0", VA = "0x181DC5EA0")]
|
||||
public DesEdeWrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600B766 RID: 46950 RVA: 0x00289004 File Offset: 0x00287204
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B766")]
|
||||
[Address(RVA = "0x1DC5E40", Offset = "0x1DC4C40", VA = "0x181DC5E40")]
|
||||
static DesEdeWrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
DesEdeWrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007443 RID: 29763
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007443")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x04007444 RID: 29764
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007444")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x04007445 RID: 29765
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007445")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x04007446 RID: 29766
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007446")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007447 RID: 29767
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007447")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x04007448 RID: 29768
|
||||
[Token(Token = "0x4007448")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x04007449 RID: 29769
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007449")]
|
||||
private readonly IDigest sha1;
|
||||
|
||||
// Token: 0x0400744A RID: 29770
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400744A")]
|
||||
private readonly byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,305 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8E RID: 7310
|
||||
[Token(Token = "0x2001C8E")]
|
||||
public class DesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B767 RID: 46951 RVA: 0x0028902C File Offset: 0x0028722C
|
||||
[Token(Token = "0x600B767")]
|
||||
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "10")]
|
||||
public virtual int[] GetWorkingKey()
|
||||
{
|
||||
return this.workingKey;
|
||||
}
|
||||
|
||||
// Token: 0x0600B768 RID: 46952 RVA: 0x00289040 File Offset: 0x00287240
|
||||
[Token(Token = "0x600B768")]
|
||||
[Address(RVA = "0x1DC6D70", Offset = "0x1DC5B70", VA = "0x181DC6D70", Slot = "11")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B768)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CC8 RID: 7368
|
||||
// (get) Token: 0x0600B769 RID: 46953 RVA: 0x00289088 File Offset: 0x00287288
|
||||
[Token(Token = "0x17001CC8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B769")]
|
||||
[Address(RVA = "0x1DC7360", Offset = "0x1DC6160", VA = "0x181DC7360", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CC9 RID: 7369
|
||||
// (get) Token: 0x0600B76A RID: 46954 RVA: 0x0028909C File Offset: 0x0028729C
|
||||
[Token(Token = "0x17001CC9")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B76A")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B76B RID: 46955 RVA: 0x002890AC File Offset: 0x002872AC
|
||||
[Token(Token = "0x600B76B")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B76C RID: 46956 RVA: 0x002890BC File Offset: 0x002872BC
|
||||
[Token(Token = "0x600B76C")]
|
||||
[Address(RVA = "0x1DC6F30", Offset = "0x1DC5D30", VA = "0x181DC6F30", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B76C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B76D RID: 46957 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B76D")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "16")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B76E RID: 46958 RVA: 0x002890F8 File Offset: 0x002872F8
|
||||
[Token(Token = "0x600B76E")]
|
||||
[Address(RVA = "0x1DC6640", Offset = "0x1DC5440", VA = "0x181DC6640")]
|
||||
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: 0x0600B76F RID: 46959 RVA: 0x00289220 File Offset: 0x00287420
|
||||
[Token(Token = "0x600B76F")]
|
||||
[Address(RVA = "0x1DC5FF0", Offset = "0x1DC4DF0", VA = "0x181DC5FF0")]
|
||||
internal static void DesFunc(int[] wKey, byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
int num3 = 0;
|
||||
uint[] sp = DesEngine.SP7;
|
||||
uint[] sp2 = DesEngine.SP5;
|
||||
uint[] sp3 = DesEngine.SP3;
|
||||
uint[] sp4 = DesEngine.SP1;
|
||||
uint[] sp5 = DesEngine.SP8;
|
||||
uint[] sp6 = DesEngine.SP6;
|
||||
uint[] sp7 = DesEngine.SP4;
|
||||
uint[] sp8 = DesEngine.SP2;
|
||||
num3 += 4;
|
||||
}
|
||||
|
||||
// Token: 0x0600B770 RID: 46960 RVA: 0x0028929C File Offset: 0x0028749C
|
||||
[Token(Token = "0x600B770")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public DesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B771 RID: 46961 RVA: 0x002892B0 File Offset: 0x002874B0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B771")]
|
||||
[Address(RVA = "0x1DC7060", Offset = "0x1DC5E60", VA = "0x181DC7060")]
|
||||
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: 0x0400744B RID: 29771
|
||||
[Token(Token = "0x400744B")]
|
||||
internal const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x0400744C RID: 29772
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400744C")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x0400744D RID: 29773
|
||||
[Token(Token = "0x400744D")]
|
||||
private static readonly short[] bytebit;
|
||||
|
||||
// Token: 0x0400744E RID: 29774
|
||||
[Token(Token = "0x400744E")]
|
||||
private static readonly int[] bigbyte;
|
||||
|
||||
// Token: 0x0400744F RID: 29775
|
||||
[Token(Token = "0x400744F")]
|
||||
private static readonly byte[] pc1;
|
||||
|
||||
// Token: 0x04007450 RID: 29776
|
||||
[Token(Token = "0x4007450")]
|
||||
private static readonly byte[] totrot;
|
||||
|
||||
// Token: 0x04007451 RID: 29777
|
||||
[Token(Token = "0x4007451")]
|
||||
private static readonly byte[] pc2;
|
||||
|
||||
// Token: 0x04007452 RID: 29778
|
||||
[Token(Token = "0x4007452")]
|
||||
private static readonly uint[] SP1;
|
||||
|
||||
// Token: 0x04007453 RID: 29779
|
||||
[Token(Token = "0x4007453")]
|
||||
private static readonly uint[] SP2;
|
||||
|
||||
// Token: 0x04007454 RID: 29780
|
||||
[Token(Token = "0x4007454")]
|
||||
private static readonly uint[] SP3;
|
||||
|
||||
// Token: 0x04007455 RID: 29781
|
||||
[Token(Token = "0x4007455")]
|
||||
private static readonly uint[] SP4;
|
||||
|
||||
// Token: 0x04007456 RID: 29782
|
||||
[Token(Token = "0x4007456")]
|
||||
private static readonly uint[] SP5;
|
||||
|
||||
// Token: 0x04007457 RID: 29783
|
||||
[Token(Token = "0x4007457")]
|
||||
private static readonly uint[] SP6;
|
||||
|
||||
// Token: 0x04007458 RID: 29784
|
||||
[Token(Token = "0x4007458")]
|
||||
private static readonly uint[] SP7;
|
||||
|
||||
// Token: 0x04007459 RID: 29785
|
||||
[Token(Token = "0x4007459")]
|
||||
private static readonly uint[] SP8;
|
||||
}
|
||||
}
|
||||
+867
@@ -0,0 +1,867 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C8F RID: 7311
|
||||
[Token(Token = "0x2001C8F")]
|
||||
public class Dstu7624Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B772 RID: 46962 RVA: 0x0028941C File Offset: 0x0028761C
|
||||
[Token(Token = "0x600B772")]
|
||||
[Address(RVA = "0x1DCB460", Offset = "0x1DCA260", VA = "0x181DCB460")]
|
||||
public Dstu7624Engine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B772)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B773 RID: 46963 RVA: 0x0028945C File Offset: 0x0028765C
|
||||
[Token(Token = "0x600B773")]
|
||||
[Address(RVA = "0x1DC82B0", Offset = "0x1DC70B0", VA = "0x181DC82B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B773)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B774 RID: 46964 RVA: 0x0028961C File Offset: 0x0028781C
|
||||
[Token(Token = "0x600B774")]
|
||||
[Address(RVA = "0x1DCAE30", Offset = "0x1DC9C30", VA = "0x181DCAE30")]
|
||||
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: 0x0600B775 RID: 46965 RVA: 0x0028978C File Offset: 0x0028798C
|
||||
[Token(Token = "0x600B775")]
|
||||
[Address(RVA = "0x1DCA850", Offset = "0x1DC9650", VA = "0x181DCA850")]
|
||||
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: 0x0600B776 RID: 46966 RVA: 0x002899D0 File Offset: 0x00287BD0
|
||||
[Token(Token = "0x600B776")]
|
||||
[Address(RVA = "0x1DCB150", Offset = "0x1DC9F50", VA = "0x181DCB150")]
|
||||
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: 0x0600B777 RID: 46967 RVA: 0x00289A20 File Offset: 0x00287C20
|
||||
[Token(Token = "0x600B777")]
|
||||
[Address(RVA = "0x1DC95E0", Offset = "0x1DC83E0", VA = "0x181DC95E0", Slot = "11")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B777)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B778 RID: 46968 RVA: 0x00289B64 File Offset: 0x00287D64
|
||||
[Token(Token = "0x600B778")]
|
||||
[Address(RVA = "0x1DC81B0", Offset = "0x1DC6FB0", VA = "0x181DC81B0")]
|
||||
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: 0x0600B779 RID: 46969 RVA: 0x00289BB0 File Offset: 0x00287DB0
|
||||
[Token(Token = "0x600B779")]
|
||||
[Address(RVA = "0x1DC7A60", Offset = "0x1DC6860", VA = "0x181DC7A60")]
|
||||
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: 0x0600B77A RID: 46970 RVA: 0x00289BEC File Offset: 0x00287DEC
|
||||
[Token(Token = "0x600B77A")]
|
||||
[Address(RVA = "0x1DC7420", Offset = "0x1DC6220", VA = "0x181DC7420")]
|
||||
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: 0x0600B77B RID: 46971 RVA: 0x00289CAC File Offset: 0x00287EAC
|
||||
[Token(Token = "0x600B77B")]
|
||||
[Address(RVA = "0x1DC7B60", Offset = "0x1DC6960", VA = "0x181DC7B60")]
|
||||
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: 0x0600B77C RID: 46972 RVA: 0x00289D44 File Offset: 0x00287F44
|
||||
[Token(Token = "0x600B77C")]
|
||||
[Address(RVA = "0x1DCA4A0", Offset = "0x1DC92A0", VA = "0x181DCA4A0")]
|
||||
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: 0x0600B77D RID: 46973 RVA: 0x00289DAC File Offset: 0x00287FAC
|
||||
[Token(Token = "0x600B77D")]
|
||||
[Address(RVA = "0x1DC8D40", Offset = "0x1DC7B40", VA = "0x181DC8D40")]
|
||||
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: 0x0600B77E RID: 46974 RVA: 0x00289E14 File Offset: 0x00288014
|
||||
[Token(Token = "0x600B77E")]
|
||||
[Address(RVA = "0x1DC9E10", Offset = "0x1DC8C10", VA = "0x181DC9E10")]
|
||||
private void ShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B77E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B77F RID: 46975 RVA: 0x00289F74 File Offset: 0x00288174
|
||||
[Token(Token = "0x600B77F")]
|
||||
[Address(RVA = "0x1DC86C0", Offset = "0x1DC74C0", VA = "0x181DC86C0")]
|
||||
private void InvShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B77F)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B780 RID: 46976 RVA: 0x0028A0F0 File Offset: 0x002882F0
|
||||
[Token(Token = "0x600B780")]
|
||||
[Address(RVA = "0x1DC7390", Offset = "0x1DC6190", VA = "0x181DC7390")]
|
||||
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: 0x0600B781 RID: 46977 RVA: 0x0028A128 File Offset: 0x00288328
|
||||
[Token(Token = "0x600B781")]
|
||||
[Address(RVA = "0x1DCA7C0", Offset = "0x1DC95C0", VA = "0x181DCA7C0")]
|
||||
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: 0x0600B782 RID: 46978 RVA: 0x0028A160 File Offset: 0x00288360
|
||||
[Token(Token = "0x600B782")]
|
||||
[Address(RVA = "0x1DCB1E0", Offset = "0x1DC9FE0", VA = "0x181DCB1E0")]
|
||||
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: 0x0600B783 RID: 46979 RVA: 0x0028A198 File Offset: 0x00288398
|
||||
[Token(Token = "0x600B783")]
|
||||
[Address(RVA = "0x1DC9270", Offset = "0x1DC8070", VA = "0x181DC9270")]
|
||||
private static ulong MixColumn(ulong c)
|
||||
{
|
||||
return c;
|
||||
}
|
||||
|
||||
// Token: 0x0600B784 RID: 46980 RVA: 0x0028A1A8 File Offset: 0x002883A8
|
||||
[Token(Token = "0x600B784")]
|
||||
[Address(RVA = "0x1DC9480", Offset = "0x1DC8280", VA = "0x181DC9480")]
|
||||
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: 0x0600B785 RID: 46981 RVA: 0x0028A1E8 File Offset: 0x002883E8
|
||||
[Token(Token = "0x600B785")]
|
||||
[Address(RVA = "0x1DC9060", Offset = "0x1DC7E60", VA = "0x181DC9060")]
|
||||
private static ulong MixColumnInv(ulong c)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B785)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B786 RID: 46982 RVA: 0x0028A214 File Offset: 0x00288414
|
||||
[Token(Token = "0x600B786")]
|
||||
[Address(RVA = "0x1DC93A0", Offset = "0x1DC81A0", VA = "0x181DC93A0")]
|
||||
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: 0x0600B787 RID: 46983 RVA: 0x0028A254 File Offset: 0x00288454
|
||||
[Token(Token = "0x600B787")]
|
||||
[Address(RVA = "0x1DC95B0", Offset = "0x1DC83B0", VA = "0x181DC95B0")]
|
||||
private static ulong MulX(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B787)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B788 RID: 46984 RVA: 0x0028A268 File Offset: 0x00288468
|
||||
[Token(Token = "0x600B788")]
|
||||
[Address(RVA = "0x1DC9560", Offset = "0x1DC8360", VA = "0x181DC9560")]
|
||||
private static ulong MulX2(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B788)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B789 RID: 46985 RVA: 0x0028A27C File Offset: 0x0028847C
|
||||
[Token(Token = "0x600B789")]
|
||||
[Address(RVA = "0x1B36FF0", Offset = "0x1B35DF0", VA = "0x181B36FF0")]
|
||||
private static ulong Rotate(int n, ulong x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B78A RID: 46986 RVA: 0x0028A28C File Offset: 0x0028848C
|
||||
[Token(Token = "0x600B78A")]
|
||||
[Address(RVA = "0x1DC9920", Offset = "0x1DC8720", VA = "0x181DC9920")]
|
||||
private void RotateLeft(ulong[] x, ulong[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B78A)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CCA RID: 7370
|
||||
// (get) Token: 0x0600B78B RID: 46987 RVA: 0x0028A3E4 File Offset: 0x002885E4
|
||||
[Token(Token = "0x17001CCA")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B78B")]
|
||||
[Address(RVA = "0x1DCB510", Offset = "0x1DCA310", VA = "0x181DCB510", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DSTU7624";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B78C RID: 46988 RVA: 0x0028A3F8 File Offset: 0x002885F8
|
||||
[Token(Token = "0x600B78C")]
|
||||
[Address(RVA = "0x1DC82A0", Offset = "0x1DC70A0", VA = "0x181DC82A0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.wordsInBlock;
|
||||
}
|
||||
|
||||
// Token: 0x17001CCB RID: 7371
|
||||
// (get) Token: 0x0600B78D RID: 46989 RVA: 0x0028A40C File Offset: 0x0028860C
|
||||
[Token(Token = "0x17001CCB")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B78D")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "14")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B78E RID: 46990 RVA: 0x0028A41C File Offset: 0x0028861C
|
||||
[Token(Token = "0x600B78E")]
|
||||
[Address(RVA = "0x1DC98F0", Offset = "0x1DC86F0", VA = "0x181DC98F0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
int length = array.Length;
|
||||
int num = 0;
|
||||
Array.Clear(array, num, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600B78F RID: 46991 RVA: 0x0028A448 File Offset: 0x00288648
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B78F")]
|
||||
[Address(RVA = "0x1DCB270", Offset = "0x1DCA070", VA = "0x181DCB270")]
|
||||
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: 0x0400745A RID: 29786
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400745A")]
|
||||
private ulong[] internalState;
|
||||
|
||||
// Token: 0x0400745B RID: 29787
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400745B")]
|
||||
private ulong[] workingKey;
|
||||
|
||||
// Token: 0x0400745C RID: 29788
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400745C")]
|
||||
private ulong[][] roundKeys;
|
||||
|
||||
// Token: 0x0400745D RID: 29789
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400745D")]
|
||||
private int wordsInBlock;
|
||||
|
||||
// Token: 0x0400745E RID: 29790
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x400745E")]
|
||||
private int wordsInKey;
|
||||
|
||||
// Token: 0x0400745F RID: 29791
|
||||
[Token(Token = "0x400745F")]
|
||||
private const int ROUNDS_128 = 10;
|
||||
|
||||
// Token: 0x04007460 RID: 29792
|
||||
[Token(Token = "0x4007460")]
|
||||
private const int ROUNDS_256 = 14;
|
||||
|
||||
// Token: 0x04007461 RID: 29793
|
||||
[Token(Token = "0x4007461")]
|
||||
private const int ROUNDS_512 = 18;
|
||||
|
||||
// Token: 0x04007462 RID: 29794
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007462")]
|
||||
private int roundsAmount;
|
||||
|
||||
// Token: 0x04007463 RID: 29795
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x4007463")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007464 RID: 29796
|
||||
[Token(Token = "0x4007464")]
|
||||
private const ulong mdsMatrix = 290207332435296513UL;
|
||||
|
||||
// Token: 0x04007465 RID: 29797
|
||||
[Token(Token = "0x4007465")]
|
||||
private const ulong mdsInvMatrix = 14616231584692868525UL;
|
||||
|
||||
// Token: 0x04007466 RID: 29798
|
||||
[Token(Token = "0x4007466")]
|
||||
private static readonly byte[] S0;
|
||||
|
||||
// Token: 0x04007467 RID: 29799
|
||||
[Token(Token = "0x4007467")]
|
||||
private static readonly byte[] S1;
|
||||
|
||||
// Token: 0x04007468 RID: 29800
|
||||
[Token(Token = "0x4007468")]
|
||||
private static readonly byte[] S2;
|
||||
|
||||
// Token: 0x04007469 RID: 29801
|
||||
[Token(Token = "0x4007469")]
|
||||
private static readonly byte[] S3;
|
||||
|
||||
// Token: 0x0400746A RID: 29802
|
||||
[Token(Token = "0x400746A")]
|
||||
private static readonly byte[] T0;
|
||||
|
||||
// Token: 0x0400746B RID: 29803
|
||||
[Token(Token = "0x400746B")]
|
||||
private static readonly byte[] T1;
|
||||
|
||||
// Token: 0x0400746C RID: 29804
|
||||
[Token(Token = "0x400746C")]
|
||||
private static readonly byte[] T2;
|
||||
|
||||
// Token: 0x0400746D RID: 29805
|
||||
[Token(Token = "0x400746D")]
|
||||
private static readonly byte[] T3;
|
||||
}
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C90 RID: 7312
|
||||
[Token(Token = "0x2001C90")]
|
||||
public class Dstu7624WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600B790 RID: 46992 RVA: 0x0028A544 File Offset: 0x00288744
|
||||
[Token(Token = "0x600B790")]
|
||||
[Address(RVA = "0x1DCC4A0", Offset = "0x1DCB2A0", VA = "0x181DCC4A0")]
|
||||
public Dstu7624WrapEngine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B790)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CCC RID: 7372
|
||||
// (get) Token: 0x0600B791 RID: 46993 RVA: 0x0028A5A8 File Offset: 0x002887A8
|
||||
[Token(Token = "0x17001CCC")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B791")]
|
||||
[Address(RVA = "0x1DCC5A0", Offset = "0x1DCB3A0", VA = "0x181DCC5A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Dstu7624WrapEngine";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B792 RID: 46994 RVA: 0x0028A5BC File Offset: 0x002887BC
|
||||
[Token(Token = "0x600B792")]
|
||||
[Address(RVA = "0x1DCB540", Offset = "0x1DCA340", VA = "0x181DCB540", Slot = "5")]
|
||||
public void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B792)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B793 RID: 46995 RVA: 0x0028A604 File Offset: 0x00288804
|
||||
[Token(Token = "0x600B793")]
|
||||
[Address(RVA = "0x1DCBDF0", Offset = "0x1DCABF0", VA = "0x181DCBDF0", Slot = "6")]
|
||||
public byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B793)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B794 RID: 46996 RVA: 0x0028A8A8 File Offset: 0x00288AA8
|
||||
[Token(Token = "0x600B794")]
|
||||
[Address(RVA = "0x1DCB670", Offset = "0x1DCA470", VA = "0x181DCB670", Slot = "7")]
|
||||
public byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B794)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0400746E RID: 29806
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400746E")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x0400746F RID: 29807
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400746F")]
|
||||
private Dstu7624Engine engine;
|
||||
|
||||
// Token: 0x04007470 RID: 29808
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007470")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x04007471 RID: 29809
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4007471")]
|
||||
private int blockSize;
|
||||
}
|
||||
}
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C91 RID: 7313
|
||||
[Token(Token = "0x2001C91")]
|
||||
public class ElGamalEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x17001CCD RID: 7373
|
||||
// (get) Token: 0x0600B795 RID: 46997 RVA: 0x0028AB54 File Offset: 0x00288D54
|
||||
[Token(Token = "0x17001CCD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B795")]
|
||||
[Address(RVA = "0x1DCCE30", Offset = "0x1DCBC30", VA = "0x181DCCE30", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "ElGamal";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B796 RID: 46998 RVA: 0x0028AB68 File Offset: 0x00288D68
|
||||
[Token(Token = "0x600B796")]
|
||||
[Address(RVA = "0x1DCC630", Offset = "0x1DCB430", VA = "0x181DCC630", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B796)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B797 RID: 46999 RVA: 0x0028AC40 File Offset: 0x00288E40
|
||||
[Token(Token = "0x600B797")]
|
||||
[Address(RVA = "0x1DCC5D0", Offset = "0x1DCB3D0", VA = "0x181DCC5D0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B798 RID: 47000 RVA: 0x0028AC68 File Offset: 0x00288E68
|
||||
[Token(Token = "0x600B798")]
|
||||
[Address(RVA = "0x1DCC600", Offset = "0x1DCB400", VA = "0x181DCC600", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
return num;
|
||||
}
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B799 RID: 47001 RVA: 0x0028AC90 File Offset: 0x00288E90
|
||||
[Token(Token = "0x600B799")]
|
||||
[Address(RVA = "0x1DCC920", Offset = "0x1DCB720", VA = "0x181DCC920", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B799)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B79A RID: 47002 RVA: 0x0028AE18 File Offset: 0x00289018
|
||||
[Token(Token = "0x600B79A")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public ElGamalEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007472 RID: 29810
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007472")]
|
||||
private ElGamalKeyParameters key;
|
||||
|
||||
// Token: 0x04007473 RID: 29811
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007473")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x04007474 RID: 29812
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007474")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007475 RID: 29813
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4007475")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
+398
@@ -0,0 +1,398 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C92 RID: 7314
|
||||
[Token(Token = "0x2001C92")]
|
||||
public class Gost28147Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B79B RID: 47003 RVA: 0x0028AE2C File Offset: 0x0028902C
|
||||
[Token(Token = "0x600B79B")]
|
||||
[Address(RVA = "0x1DCDE40", Offset = "0x1DCCC40", VA = "0x181DCDE40")]
|
||||
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: 0x0600B79C RID: 47004 RVA: 0x0028AFCC File Offset: 0x002891CC
|
||||
[Token(Token = "0x600B79C")]
|
||||
[Address(RVA = "0x1DCCE60", Offset = "0x1DCBC60", VA = "0x181DCCE60")]
|
||||
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: 0x0600B79D RID: 47005 RVA: 0x0028B004 File Offset: 0x00289204
|
||||
[Token(Token = "0x600B79D")]
|
||||
[Address(RVA = "0x1DCE170", Offset = "0x1DCCF70", VA = "0x181DCE170")]
|
||||
public Gost28147Engine()
|
||||
{
|
||||
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
|
||||
this.S = sbox_Default;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B79E RID: 47006 RVA: 0x0028B024 File Offset: 0x00289224
|
||||
[Token(Token = "0x600B79E")]
|
||||
[Address(RVA = "0x1DCDA30", Offset = "0x1DCC830", VA = "0x181DCDA30", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B79E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CCE RID: 7374
|
||||
// (get) Token: 0x0600B79F RID: 47007 RVA: 0x0028B0A0 File Offset: 0x002892A0
|
||||
[Token(Token = "0x17001CCE")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B79F")]
|
||||
[Address(RVA = "0x1DCE2F0", Offset = "0x1DCD0F0", VA = "0x181DCE2F0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Gost28147";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CCF RID: 7375
|
||||
// (get) Token: 0x0600B7A0 RID: 47008 RVA: 0x0028B0B4 File Offset: 0x002892B4
|
||||
[Token(Token = "0x17001CCF")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B7A0")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A1 RID: 47009 RVA: 0x0028B0C4 File Offset: 0x002892C4
|
||||
[Token(Token = "0x600B7A1")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A2 RID: 47010 RVA: 0x0028B0D4 File Offset: 0x002892D4
|
||||
[Token(Token = "0x600B7A2")]
|
||||
[Address(RVA = "0x1DCDD30", Offset = "0x1DCCB30", VA = "0x181DCDD30", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7A2)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A3 RID: 47011 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B7A3")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A4 RID: 47012 RVA: 0x0028B108 File Offset: 0x00289308
|
||||
[Token(Token = "0x600B7A4")]
|
||||
[Address(RVA = "0x1DCE1E0", Offset = "0x1DCCFE0", VA = "0x181DCE1E0")]
|
||||
private int[] generateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7A4)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A5 RID: 47013 RVA: 0x0028B154 File Offset: 0x00289354
|
||||
[Token(Token = "0x600B7A5")]
|
||||
[Address(RVA = "0x1DCD7F0", Offset = "0x1DCC5F0", VA = "0x181DCD7F0")]
|
||||
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: 0x0600B7A6 RID: 47014 RVA: 0x0028B190 File Offset: 0x00289390
|
||||
[Token(Token = "0x600B7A6")]
|
||||
[Address(RVA = "0x1DCD450", Offset = "0x1DCC250", VA = "0x181DCD450")]
|
||||
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: 0x0600B7A7 RID: 47015 RVA: 0x0028B240 File Offset: 0x00289440
|
||||
[Token(Token = "0x600B7A7")]
|
||||
[Address(RVA = "0x1C278B0", Offset = "0x1C266B0", VA = "0x181C278B0")]
|
||||
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: 0x0600B7A8 RID: 47016 RVA: 0x0028B27C File Offset: 0x0028947C
|
||||
[Token(Token = "0x600B7A8")]
|
||||
[Address(RVA = "0x1C27DF0", Offset = "0x1C26BF0", VA = "0x181C27DF0")]
|
||||
private static void intTobytes(int num, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num2 = outOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7A9 RID: 47017 RVA: 0x0028B294 File Offset: 0x00289494
|
||||
[Token(Token = "0x600B7A9")]
|
||||
[Address(RVA = "0x1DCD310", Offset = "0x1DCC110", VA = "0x181DCD310")]
|
||||
public static byte[] GetSBox(string sBoxName)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7A9)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7AA RID: 47018 RVA: 0x0028B2C8 File Offset: 0x002894C8
|
||||
[Token(Token = "0x600B7AA")]
|
||||
[Address(RVA = "0x1DCCF90", Offset = "0x1DCBD90", VA = "0x181DCCF90")]
|
||||
public static string GetSBoxName(byte[] sBox)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7AA)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBoxName(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_72:
|
||||
stloc:ArgumentException(var_8_7C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SBOX provided did not map to a known one")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x04007476 RID: 29814
|
||||
[Token(Token = "0x4007476")]
|
||||
private const int BlockSize = 8;
|
||||
|
||||
// Token: 0x04007477 RID: 29815
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007477")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04007478 RID: 29816
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007478")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007479 RID: 29817
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007479")]
|
||||
private byte[] S;
|
||||
|
||||
// Token: 0x0400747A RID: 29818
|
||||
[Token(Token = "0x400747A")]
|
||||
private static readonly byte[] Sbox_Default;
|
||||
|
||||
// Token: 0x0400747B RID: 29819
|
||||
[Token(Token = "0x400747B")]
|
||||
private static readonly byte[] ESbox_Test;
|
||||
|
||||
// Token: 0x0400747C RID: 29820
|
||||
[Token(Token = "0x400747C")]
|
||||
private static readonly byte[] ESbox_A;
|
||||
|
||||
// Token: 0x0400747D RID: 29821
|
||||
[Token(Token = "0x400747D")]
|
||||
private static readonly byte[] ESbox_B;
|
||||
|
||||
// Token: 0x0400747E RID: 29822
|
||||
[Token(Token = "0x400747E")]
|
||||
private static readonly byte[] ESbox_C;
|
||||
|
||||
// Token: 0x0400747F RID: 29823
|
||||
[Token(Token = "0x400747F")]
|
||||
private static readonly byte[] ESbox_D;
|
||||
|
||||
// Token: 0x04007480 RID: 29824
|
||||
[Token(Token = "0x4007480")]
|
||||
private static readonly byte[] DSbox_Test;
|
||||
|
||||
// Token: 0x04007481 RID: 29825
|
||||
[Token(Token = "0x4007481")]
|
||||
private static readonly byte[] DSbox_A;
|
||||
|
||||
// Token: 0x04007482 RID: 29826
|
||||
[Token(Token = "0x4007482")]
|
||||
private static readonly IDictionary sBoxes;
|
||||
}
|
||||
}
|
||||
+343
@@ -0,0 +1,343 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C93 RID: 7315
|
||||
[Token(Token = "0x2001C93")]
|
||||
public class HC128Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600B7AB RID: 47019 RVA: 0x0028B354 File Offset: 0x00289554
|
||||
[Token(Token = "0x600B7AB")]
|
||||
[Address(RVA = "0x1DCE330", Offset = "0x1DCD130", VA = "0x181DCE330")]
|
||||
private static uint F1(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7AC RID: 47020 RVA: 0x0028B364 File Offset: 0x00289564
|
||||
[Token(Token = "0x600B7AC")]
|
||||
[Address(RVA = "0x1DCE360", Offset = "0x1DCD160", VA = "0x181DCE360")]
|
||||
private static uint F2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7AD RID: 47021 RVA: 0x0028B374 File Offset: 0x00289574
|
||||
[Token(Token = "0x600B7AD")]
|
||||
[Address(RVA = "0x1DCE390", Offset = "0x1DCD190", VA = "0x181DCE390")]
|
||||
private uint G1(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7AE RID: 47022 RVA: 0x0028B384 File Offset: 0x00289584
|
||||
[Token(Token = "0x600B7AE")]
|
||||
[Address(RVA = "0x1DCE3C0", Offset = "0x1DCD1C0", VA = "0x181DCE3C0")]
|
||||
private uint G2(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7AF RID: 47023 RVA: 0x0028B394 File Offset: 0x00289594
|
||||
[Token(Token = "0x600B7AF")]
|
||||
[Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")]
|
||||
private static uint RotateLeft(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B0 RID: 47024 RVA: 0x0028B3A4 File Offset: 0x002895A4
|
||||
[Token(Token = "0x600B7B0")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B1 RID: 47025 RVA: 0x0028B3B4 File Offset: 0x002895B4
|
||||
[Token(Token = "0x600B7B1")]
|
||||
[Address(RVA = "0x1DCE460", Offset = "0x1DCD260", VA = "0x181DCE460")]
|
||||
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: 0x0600B7B2 RID: 47026 RVA: 0x0028B3EC File Offset: 0x002895EC
|
||||
[Token(Token = "0x600B7B2")]
|
||||
[Address(RVA = "0x1DCE4D0", Offset = "0x1DCD2D0", VA = "0x181DCE4D0")]
|
||||
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: 0x0600B7B3 RID: 47027 RVA: 0x0028B424 File Offset: 0x00289624
|
||||
[Token(Token = "0x600B7B3")]
|
||||
[Address(RVA = "0x1DCEC70", Offset = "0x1DCDA70", VA = "0x181DCEC70")]
|
||||
private static uint Mod1024(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B4 RID: 47028 RVA: 0x0028B434 File Offset: 0x00289634
|
||||
[Token(Token = "0x600B7B4")]
|
||||
[Address(RVA = "0x1DCEC80", Offset = "0x1DCDA80", VA = "0x181DCEC80")]
|
||||
private static uint Mod512(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B5 RID: 47029 RVA: 0x0028B444 File Offset: 0x00289644
|
||||
[Token(Token = "0x600B7B5")]
|
||||
[Address(RVA = "0x1DCE320", Offset = "0x1DCD120", VA = "0x181DCE320")]
|
||||
private static uint Dim(uint x, uint y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B6 RID: 47030 RVA: 0x0028B454 File Offset: 0x00289654
|
||||
[Token(Token = "0x600B7B6")]
|
||||
[Address(RVA = "0x1DCEF00", Offset = "0x1DCDD00", VA = "0x181DCEF00")]
|
||||
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: 0x0600B7B7 RID: 47031 RVA: 0x0028B56C File Offset: 0x0028976C
|
||||
[Token(Token = "0x600B7B7")]
|
||||
[Address(RVA = "0x1DCE540", Offset = "0x1DCD340", VA = "0x181DCE540")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7B7)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CD0 RID: 7376
|
||||
// (get) Token: 0x0600B7B8 RID: 47032 RVA: 0x0028B6B0 File Offset: 0x002898B0
|
||||
[Token(Token = "0x17001CD0")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7B8")]
|
||||
[Address(RVA = "0x1DCF340", Offset = "0x1DCE140", VA = "0x181DCF340", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-128";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7B9 RID: 47033 RVA: 0x0028B6C4 File Offset: 0x002898C4
|
||||
[Token(Token = "0x600B7B9")]
|
||||
[Address(RVA = "0x1DCE950", Offset = "0x1DCD750", VA = "0x181DCE950", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7B9)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7BA RID: 47034 RVA: 0x0028B764 File Offset: 0x00289964
|
||||
[Token(Token = "0x600B7BA")]
|
||||
[Address(RVA = "0x1DCE3F0", Offset = "0x1DCD1F0", VA = "0x181DCE3F0")]
|
||||
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: 0x0600B7BB RID: 47035 RVA: 0x0028B7B0 File Offset: 0x002899B0
|
||||
[Token(Token = "0x600B7BB")]
|
||||
[Address(RVA = "0x1DCEC90", Offset = "0x1DCDA90", VA = "0x181DCEC90", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7BB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7BC RID: 47036 RVA: 0x0028B81C File Offset: 0x00289A1C
|
||||
[Token(Token = "0x600B7BC")]
|
||||
[Address(RVA = "0x1DCEE70", Offset = "0x1DCDC70", VA = "0x181DCEE70", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x0600B7BD RID: 47037 RVA: 0x0028B830 File Offset: 0x00289A30
|
||||
[Token(Token = "0x600B7BD")]
|
||||
[Address(RVA = "0x1DCEE80", Offset = "0x1DCDC80", VA = "0x181DCEE80", 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: 0x0600B7BE RID: 47038 RVA: 0x0028B87C File Offset: 0x00289A7C
|
||||
[Token(Token = "0x600B7BE")]
|
||||
[Address(RVA = "0x1DCF2C0", Offset = "0x1DCE0C0", VA = "0x181DCF2C0")]
|
||||
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: 0x04007483 RID: 29827
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007483")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x04007484 RID: 29828
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007484")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x04007485 RID: 29829
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007485")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x04007486 RID: 29830
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007486")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x04007487 RID: 29831
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007487")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007488 RID: 29832
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007488")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007489 RID: 29833
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007489")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x0400748A RID: 29834
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400748A")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+266
@@ -0,0 +1,266 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C94 RID: 7316
|
||||
[Token(Token = "0x2001C94")]
|
||||
public class HC256Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600B7BF RID: 47039 RVA: 0x0028B8C4 File Offset: 0x00289AC4
|
||||
[Token(Token = "0x600B7BF")]
|
||||
[Address(RVA = "0x1DCFDD0", Offset = "0x1DCEBD0", VA = "0x181DCFDD0")]
|
||||
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: 0x0600B7C0 RID: 47040 RVA: 0x0028BA24 File Offset: 0x00289C24
|
||||
[Token(Token = "0x600B7C0")]
|
||||
[Address(RVA = "0x1DCF3E0", Offset = "0x1DCE1E0", VA = "0x181DCF3E0")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7C0)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CD1 RID: 7377
|
||||
// (get) Token: 0x0600B7C1 RID: 47041 RVA: 0x0028BBEC File Offset: 0x00289DEC
|
||||
[Token(Token = "0x17001CD1")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7C1")]
|
||||
[Address(RVA = "0x1DD0350", Offset = "0x1DCF150", VA = "0x181DD0350", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-256";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7C2 RID: 47042 RVA: 0x0028BC00 File Offset: 0x00289E00
|
||||
[Token(Token = "0x600B7C2")]
|
||||
[Address(RVA = "0x1DCF840", Offset = "0x1DCE640", VA = "0x181DCF840", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7C2)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7C3 RID: 47043 RVA: 0x0028BCA0 File Offset: 0x00289EA0
|
||||
[Token(Token = "0x600B7C3")]
|
||||
[Address(RVA = "0x1DCF370", Offset = "0x1DCE170", VA = "0x181DCF370")]
|
||||
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: 0x0600B7C4 RID: 47044 RVA: 0x0028BCEC File Offset: 0x00289EEC
|
||||
[Token(Token = "0x600B7C4")]
|
||||
[Address(RVA = "0x1DCFB60", Offset = "0x1DCE960", VA = "0x181DCFB60", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7C4)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7C5 RID: 47045 RVA: 0x0028BD58 File Offset: 0x00289F58
|
||||
[Token(Token = "0x600B7C5")]
|
||||
[Address(RVA = "0x1DCFD40", Offset = "0x1DCEB40", VA = "0x181DCFD40", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x0600B7C6 RID: 47046 RVA: 0x0028BD6C File Offset: 0x00289F6C
|
||||
[Token(Token = "0x600B7C6")]
|
||||
[Address(RVA = "0x1DCFD50", Offset = "0x1DCEB50", VA = "0x181DCFD50", 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: 0x0600B7C7 RID: 47047 RVA: 0x0028BDB8 File Offset: 0x00289FB8
|
||||
[Token(Token = "0x600B7C7")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7C8 RID: 47048 RVA: 0x0028BDC8 File Offset: 0x00289FC8
|
||||
[Token(Token = "0x600B7C8")]
|
||||
[Address(RVA = "0x1DD02D0", Offset = "0x1DCF0D0", VA = "0x181DD02D0")]
|
||||
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: 0x0400748B RID: 29835
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400748B")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x0400748C RID: 29836
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400748C")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x0400748D RID: 29837
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400748D")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x0400748E RID: 29838
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400748E")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x0400748F RID: 29839
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400748F")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007490 RID: 29840
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007490")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007491 RID: 29841
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007491")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x04007492 RID: 29842
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4007492")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+361
@@ -0,0 +1,361 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C96 RID: 7318
|
||||
[Token(Token = "0x2001C96")]
|
||||
public class IdeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B7D3 RID: 47059 RVA: 0x0028C3F4 File Offset: 0x0028A5F4
|
||||
[Token(Token = "0x600B7D3")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public IdeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B7D4 RID: 47060 RVA: 0x0028C408 File Offset: 0x0028A608
|
||||
[Token(Token = "0x600B7D4")]
|
||||
[Address(RVA = "0x1DD0CE0", Offset = "0x1DCFAE0", VA = "0x181DD0CE0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7D4)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CD3 RID: 7379
|
||||
// (get) Token: 0x0600B7D5 RID: 47061 RVA: 0x0028C460 File Offset: 0x0028A660
|
||||
[Token(Token = "0x17001CD3")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7D5")]
|
||||
[Address(RVA = "0x1DD1A50", Offset = "0x1DD0850", VA = "0x181DD1A50", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "IDEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CD4 RID: 7380
|
||||
// (get) Token: 0x0600B7D6 RID: 47062 RVA: 0x0028C474 File Offset: 0x0028A674
|
||||
[Token(Token = "0x17001CD4")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B7D6")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7D7 RID: 47063 RVA: 0x0028C484 File Offset: 0x0028A684
|
||||
[Token(Token = "0x600B7D7")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7D8 RID: 47064 RVA: 0x0028C494 File Offset: 0x0028A694
|
||||
[Token(Token = "0x600B7D8")]
|
||||
[Address(RVA = "0x1DD1890", Offset = "0x1DD0690", VA = "0x181DD1890", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7D8)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7D9 RID: 47065 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B7D9")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B7DA RID: 47066 RVA: 0x0028C4C8 File Offset: 0x0028A6C8
|
||||
[Token(Token = "0x600B7DA")]
|
||||
[Address(RVA = "0x1DD03E0", Offset = "0x1DCF1E0", VA = "0x181DD03E0")]
|
||||
private int BytesToWord(byte[] input, int inOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B7DB RID: 47067 RVA: 0x0028C4E8 File Offset: 0x0028A6E8
|
||||
[Token(Token = "0x600B7DB")]
|
||||
[Address(RVA = "0x1DD19A0", Offset = "0x1DD07A0", VA = "0x181DD19A0")]
|
||||
private void WordToBytes(int word, byte[] outBytes, int outOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B7DC RID: 47068 RVA: 0x0028C4FC File Offset: 0x0028A6FC
|
||||
[Token(Token = "0x600B7DC")]
|
||||
[Address(RVA = "0x1DD1770", Offset = "0x1DD0570", VA = "0x181DD1770")]
|
||||
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: 0x0600B7DD RID: 47069 RVA: 0x0028C544 File Offset: 0x0028A744
|
||||
[Token(Token = "0x600B7DD")]
|
||||
[Address(RVA = "0x1DD07A0", Offset = "0x1DCF5A0", VA = "0x181DD07A0")]
|
||||
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: 0x0600B7DE RID: 47070 RVA: 0x0028C60C File Offset: 0x0028A80C
|
||||
[Token(Token = "0x600B7DE")]
|
||||
[Address(RVA = "0x1DD0440", Offset = "0x1DCF240", VA = "0x181DD0440")]
|
||||
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: 0x0600B7DF RID: 47071 RVA: 0x0028C6B8 File Offset: 0x0028A8B8
|
||||
[Token(Token = "0x600B7DF")]
|
||||
[Address(RVA = "0x1DD15F0", Offset = "0x1DD03F0", VA = "0x181DD15F0")]
|
||||
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: 0x0600B7E0 RID: 47072 RVA: 0x0028C6F8 File Offset: 0x0028A8F8
|
||||
[Token(Token = "0x600B7E0")]
|
||||
[Address(RVA = "0x1DD0380", Offset = "0x1DCF180", VA = "0x181DD0380")]
|
||||
private int AddInv(int x)
|
||||
{
|
||||
return IdeaEngine.MASK;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7E1 RID: 47073 RVA: 0x0028C70C File Offset: 0x0028A90C
|
||||
[Token(Token = "0x600B7E1")]
|
||||
[Address(RVA = "0x1DD0E90", Offset = "0x1DCFC90", VA = "0x181DD0E90")]
|
||||
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: 0x0600B7E2 RID: 47074 RVA: 0x0028C8C0 File Offset: 0x0028AAC0
|
||||
[Token(Token = "0x600B7E2")]
|
||||
[Address(RVA = "0x1DD0760", Offset = "0x1DCF560", VA = "0x181DD0760")]
|
||||
private int[] GenerateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
int[] array = this.ExpandKey(userKey);
|
||||
if (!forEncryption)
|
||||
{
|
||||
int[] array2 = this.InvertKey(array);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0400749E RID: 29854
|
||||
[Token(Token = "0x400749E")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x0400749F RID: 29855
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400749F")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x040074A0 RID: 29856
|
||||
[Token(Token = "0x40074A0")]
|
||||
private static readonly int MASK;
|
||||
|
||||
// Token: 0x040074A1 RID: 29857
|
||||
[Token(Token = "0x40074A1")]
|
||||
private static readonly int BASE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C97 RID: 7319
|
||||
[Token(Token = "0x2001C97")]
|
||||
public class IesEngine
|
||||
{
|
||||
// Token: 0x0600B7E4 RID: 47076 RVA: 0x0028C8F4 File Offset: 0x0028AAF4
|
||||
[Token(Token = "0x600B7E4")]
|
||||
[Address(RVA = "0x1DD2870", Offset = "0x1DD1670", VA = "0x181DD2870")]
|
||||
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: 0x0600B7E5 RID: 47077 RVA: 0x0028C930 File Offset: 0x0028AB30
|
||||
[Token(Token = "0x600B7E5")]
|
||||
[Address(RVA = "0x1DD27D0", Offset = "0x1DD15D0", VA = "0x181DD27D0")]
|
||||
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: 0x0600B7E6 RID: 47078 RVA: 0x0028C974 File Offset: 0x0028AB74
|
||||
[Token(Token = "0x600B7E6")]
|
||||
[Address(RVA = "0x1DD2520", Offset = "0x1DD1320", VA = "0x181DD2520", 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: 0x0600B7E7 RID: 47079 RVA: 0x0028C9A0 File Offset: 0x0028ABA0
|
||||
[Token(Token = "0x600B7E7")]
|
||||
[Address(RVA = "0x1DD1A80", Offset = "0x1DD0880", VA = "0x181DD1A80")]
|
||||
private byte[] DecryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7E7)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7E8 RID: 47080 RVA: 0x0028CAE8 File Offset: 0x0028ACE8
|
||||
[Token(Token = "0x600B7E8")]
|
||||
[Address(RVA = "0x1DD1F70", Offset = "0x1DD0D70", VA = "0x181DD1F70")]
|
||||
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: 0x0600B7E9 RID: 47081 RVA: 0x0028CC08 File Offset: 0x0028AE08
|
||||
[Token(Token = "0x600B7E9")]
|
||||
[Address(RVA = "0x1DD2410", Offset = "0x1DD1210", VA = "0x181DD2410")]
|
||||
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: 0x0600B7EA RID: 47082 RVA: 0x0028CC4C File Offset: 0x0028AE4C
|
||||
[Token(Token = "0x600B7EA")]
|
||||
[Address(RVA = "0x1DD25E0", Offset = "0x1DD13E0", VA = "0x181DD25E0", Slot = "5")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
int num;
|
||||
byte[] array3;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
IBasicAgreement basicAgreement = this.agree;
|
||||
IBasicAgreement basicAgreement2 = this.agree;
|
||||
ICipherParameters cipherParameters = this.pubParam;
|
||||
if (num < basicAgreement)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
IBasicAgreement basicAgreement3 = this.agree;
|
||||
byte[] array2;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
byte[] array = this.EncryptBlock(input, inOff, inLen, array2);
|
||||
}
|
||||
array3 = this.DecryptBlock(input, inOff, inLen, array2);
|
||||
int length = array2.Length;
|
||||
int num2 = 0;
|
||||
Array.Clear(array2, num2, length);
|
||||
}
|
||||
while (num != 0);
|
||||
return array3;
|
||||
}
|
||||
|
||||
// Token: 0x040074A2 RID: 29858
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074A2")]
|
||||
private readonly IBasicAgreement agree;
|
||||
|
||||
// Token: 0x040074A3 RID: 29859
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074A3")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
|
||||
// Token: 0x040074A4 RID: 29860
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074A4")]
|
||||
private readonly IMac mac;
|
||||
|
||||
// Token: 0x040074A5 RID: 29861
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074A5")]
|
||||
private readonly BufferedBlockCipher cipher;
|
||||
|
||||
// Token: 0x040074A6 RID: 29862
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40074A6")]
|
||||
private readonly byte[] macBuf;
|
||||
|
||||
// Token: 0x040074A7 RID: 29863
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40074A7")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040074A8 RID: 29864
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40074A8")]
|
||||
private ICipherParameters privParam;
|
||||
|
||||
// Token: 0x040074A9 RID: 29865
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40074A9")]
|
||||
private ICipherParameters pubParam;
|
||||
|
||||
// Token: 0x040074AA RID: 29866
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40074AA")]
|
||||
private IesParameters param;
|
||||
}
|
||||
}
|
||||
+335
@@ -0,0 +1,335 @@
|
||||
using System;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C95 RID: 7317
|
||||
[Token(Token = "0x2001C95")]
|
||||
public class IsaacEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600B7C9 RID: 47049 RVA: 0x0028BE10 File Offset: 0x0028A010
|
||||
[Token(Token = "0x600B7C9")]
|
||||
[Address(RVA = "0x1DD2910", Offset = "0x1DD1710", VA = "0x181DD2910", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7C9)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7CA RID: 47050 RVA: 0x0028BE4C File Offset: 0x0028A04C
|
||||
[Token(Token = "0x600B7CA")]
|
||||
[Address(RVA = "0x1DD2C50", Offset = "0x1DD1A50", VA = "0x181DD2C50", 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: 0x0600B7CB RID: 47051 RVA: 0x0028BE9C File Offset: 0x0028A09C
|
||||
[Token(Token = "0x600B7CB")]
|
||||
[Address(RVA = "0x1DD2A60", Offset = "0x1DD1860", VA = "0x181DD2A60", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7CB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CD2 RID: 7378
|
||||
// (get) Token: 0x0600B7CC RID: 47052 RVA: 0x0028BF14 File Offset: 0x0028A114
|
||||
[Token(Token = "0x17001CD2")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7CC")]
|
||||
[Address(RVA = "0x1DD2DA0", Offset = "0x1DD1BA0", VA = "0x181DD2DA0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "ISAAC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7CD RID: 47053 RVA: 0x0028BF28 File Offset: 0x0028A128
|
||||
[Token(Token = "0x600B7CD")]
|
||||
[Address(RVA = "0x1DD2C40", Offset = "0x1DD1A40", VA = "0x181DD2C40", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.setKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600B7CE RID: 47054 RVA: 0x0028BF44 File Offset: 0x0028A144
|
||||
[Token(Token = "0x600B7CE")]
|
||||
[Address(RVA = "0x1DD3500", Offset = "0x1DD2300", VA = "0x181DD3500")]
|
||||
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: 0x0600B7CF RID: 47055 RVA: 0x0028C0B4 File Offset: 0x0028A2B4
|
||||
[Token(Token = "0x600B7CF")]
|
||||
[Address(RVA = "0x1DD2DD0", Offset = "0x1DD1BD0", VA = "0x181DD2DD0")]
|
||||
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: 0x0600B7D0 RID: 47056 RVA: 0x0028C174 File Offset: 0x0028A374
|
||||
[Token(Token = "0x600B7D0")]
|
||||
[Address(RVA = "0x1DD2FC0", Offset = "0x1DD1DC0", VA = "0x181DD2FC0")]
|
||||
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: 0x0600B7D1 RID: 47057 RVA: 0x0028C3B4 File Offset: 0x0028A5B4
|
||||
[Token(Token = "0x600B7D1")]
|
||||
[Address(RVA = "0x1DD2D20", Offset = "0x1DD1B20", VA = "0x181DD2D20")]
|
||||
public IsaacEngine()
|
||||
{
|
||||
byte[] array = new byte[IsaacEngine.stateArraySize];
|
||||
this.keyStream = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04007493 RID: 29843
|
||||
[Token(Token = "0x4007493")]
|
||||
private static readonly int sizeL;
|
||||
|
||||
// Token: 0x04007494 RID: 29844
|
||||
[Token(Token = "0x4007494")]
|
||||
private static readonly int stateArraySize = IsaacEngine.sizeL;
|
||||
|
||||
// Token: 0x04007495 RID: 29845
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007495")]
|
||||
private uint[] engineState;
|
||||
|
||||
// Token: 0x04007496 RID: 29846
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007496")]
|
||||
private uint[] results;
|
||||
|
||||
// Token: 0x04007497 RID: 29847
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007497")]
|
||||
private uint a;
|
||||
|
||||
// Token: 0x04007498 RID: 29848
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4007498")]
|
||||
private uint b;
|
||||
|
||||
// Token: 0x04007499 RID: 29849
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007499")]
|
||||
private uint c;
|
||||
|
||||
// Token: 0x0400749A RID: 29850
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x400749A")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x0400749B RID: 29851
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400749B")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x0400749C RID: 29852
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400749C")]
|
||||
private byte[] workingKey;
|
||||
|
||||
// Token: 0x0400749D RID: 29853
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400749D")]
|
||||
private bool initialised;
|
||||
}
|
||||
}
|
||||
+350
@@ -0,0 +1,350 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C98 RID: 7320
|
||||
[Token(Token = "0x2001C98")]
|
||||
public class NaccacheSternEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x17001CD5 RID: 7381
|
||||
// (get) Token: 0x0600B7EB RID: 47083 RVA: 0x0028CCCC File Offset: 0x0028AECC
|
||||
[Token(Token = "0x17001CD5")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7EB")]
|
||||
[Address(RVA = "0x1DD4FB0", Offset = "0x1DD3DB0", VA = "0x181DD4FB0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "NaccacheStern";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7EC RID: 47084 RVA: 0x0028CCE0 File Offset: 0x0028AEE0
|
||||
[Token(Token = "0x600B7EC")]
|
||||
[Address(RVA = "0x1DD3E00", Offset = "0x1DD2C00", VA = "0x181DD3E00", 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: 0x17001CD6 RID: 7382
|
||||
// (set) Token: 0x0600B7ED RID: 47085 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x17001CD6")]
|
||||
[Obsolete]
|
||||
public virtual bool Debug
|
||||
{
|
||||
[Token(Token = "0x600B7ED")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "10")]
|
||||
set
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7EE RID: 47086 RVA: 0x0028CD78 File Offset: 0x0028AF78
|
||||
[Token(Token = "0x600B7EE")]
|
||||
[Address(RVA = "0x1DD3D40", Offset = "0x1DD2B40", VA = "0x181DD3D40", 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: 0x0600B7EF RID: 47087 RVA: 0x0028CDC8 File Offset: 0x0028AFC8
|
||||
[Token(Token = "0x600B7EF")]
|
||||
[Address(RVA = "0x1DD3DA0", Offset = "0x1DD2BA0", VA = "0x181DD3DA0", 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: 0x0600B7F0 RID: 47088 RVA: 0x0028CE18 File Offset: 0x0028B018
|
||||
[Token(Token = "0x600B7F0")]
|
||||
[Address(RVA = "0x1DD42A0", Offset = "0x1DD30A0", VA = "0x181DD42A0", 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: 0x0600B7F1 RID: 47089 RVA: 0x0028CF5C File Offset: 0x0028B15C
|
||||
[Token(Token = "0x600B7F1")]
|
||||
[Address(RVA = "0x1DD3C50", Offset = "0x1DD2A50", VA = "0x181DD3C50", 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: 0x0600B7F2 RID: 47090 RVA: 0x0028CFE8 File Offset: 0x0028B1E8
|
||||
[Token(Token = "0x600B7F2")]
|
||||
[Address(RVA = "0x1DD3A10", Offset = "0x1DD2810", VA = "0x181DD3A10", 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: 0x0600B7F3 RID: 47091 RVA: 0x0028D0A8 File Offset: 0x0028B2A8
|
||||
[Token(Token = "0x600B7F3")]
|
||||
[Address(RVA = "0x1DD4900", Offset = "0x1DD3700", VA = "0x181DD4900", Slot = "16")]
|
||||
public virtual byte[] ProcessData(byte[] data)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7F3)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7F4 RID: 47092 RVA: 0x0028D140 File Offset: 0x0028B340
|
||||
[Token(Token = "0x600B7F4")]
|
||||
[Address(RVA = "0x1DD4AE0", Offset = "0x1DD38E0", VA = "0x181DD4AE0")]
|
||||
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: 0x0600B7F5 RID: 47093 RVA: 0x0028D24C File Offset: 0x0028B44C
|
||||
[Token(Token = "0x600B7F5")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public NaccacheSternEngine()
|
||||
{
|
||||
int num = 0;
|
||||
this.Debug = num != 0;
|
||||
}
|
||||
|
||||
// Token: 0x040074AB RID: 29867
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074AB")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040074AC RID: 29868
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074AC")]
|
||||
private NaccacheSternKeyParameters key;
|
||||
|
||||
// Token: 0x040074AD RID: 29869
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074AD")]
|
||||
private IList[] lookup;
|
||||
}
|
||||
}
|
||||
+348
@@ -0,0 +1,348 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C99 RID: 7321
|
||||
[Token(Token = "0x2001C99")]
|
||||
public class NoekeonEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B7F6 RID: 47094 RVA: 0x0028D264 File Offset: 0x0028B464
|
||||
[Token(Token = "0x600B7F6")]
|
||||
[Address(RVA = "0x1DD53E0", Offset = "0x1DD41E0", VA = "0x181DD53E0")]
|
||||
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: 0x17001CD7 RID: 7383
|
||||
// (get) Token: 0x0600B7F7 RID: 47095 RVA: 0x0028D2A8 File Offset: 0x0028B4A8
|
||||
[Token(Token = "0x17001CD7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B7F7")]
|
||||
[Address(RVA = "0x1DD5E30", Offset = "0x1DD4C30", VA = "0x181DD5E30", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Noekeon";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CD8 RID: 7384
|
||||
// (get) Token: 0x0600B7F8 RID: 47096 RVA: 0x0028D2BC File Offset: 0x0028B4BC
|
||||
[Token(Token = "0x17001CD8")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B7F8")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B7F9 RID: 47097 RVA: 0x0028D2CC File Offset: 0x0028B4CC
|
||||
[Token(Token = "0x600B7F9")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FA RID: 47098 RVA: 0x0028D2DC File Offset: 0x0028B4DC
|
||||
[Token(Token = "0x600B7FA")]
|
||||
[Address(RVA = "0x1DD4FE0", Offset = "0x1DD3DE0", VA = "0x181DD4FE0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7FA)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NoekeonEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_94:
|
||||
stloc:ArgumentException(var_13_AA, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameters passed to Noekeon init - "), ldloc:string(var_12)), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FB RID: 47099 RVA: 0x0028D394 File Offset: 0x0028B594
|
||||
[Token(Token = "0x600B7FB")]
|
||||
[Address(RVA = "0x1DD5230", Offset = "0x1DD4030", VA = "0x181DD5230", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B7FB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FC RID: 47100 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B7FC")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FD RID: 47101 RVA: 0x0028D3CC File Offset: 0x0028B5CC
|
||||
[Token(Token = "0x600B7FD")]
|
||||
[Address(RVA = "0x1DD5F80", Offset = "0x1DD4D80", VA = "0x181DD5F80")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
uint[] array = this.subKeys;
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
array[0] = num2;
|
||||
uint[] array2 = this.subKeys;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
array2[0] = num3;
|
||||
uint[] array3 = this.subKeys;
|
||||
uint num4 = Pack.BE_To_UInt32(key, 8);
|
||||
array3[1] = num4;
|
||||
uint[] array4 = this.subKeys;
|
||||
uint num5 = Pack.BE_To_UInt32(key, 12);
|
||||
array4[1] = num5;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FE RID: 47102 RVA: 0x0028D448 File Offset: 0x0028B648
|
||||
[Token(Token = "0x600B7FE")]
|
||||
[Address(RVA = "0x1DD5880", Offset = "0x1DD4680", VA = "0x181DD5880")]
|
||||
private int encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
array[0] = num;
|
||||
uint[] array2 = this.state;
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
array2[0] = num2;
|
||||
uint[] array3 = this.state;
|
||||
uint num3 = Pack.BE_To_UInt32(input, inOff);
|
||||
array3[1] = num3;
|
||||
uint[] array4 = this.state;
|
||||
uint num4 = Pack.BE_To_UInt32(input, inOff);
|
||||
array4[1] = num4;
|
||||
int num5 = 0;
|
||||
uint[] array5 = this.state;
|
||||
uint num6 = NoekeonEngine.roundConstants[num5];
|
||||
array5[0] = num6;
|
||||
uint[] array6 = this.subKeys;
|
||||
uint[] array7 = this.state;
|
||||
this.theta(array7, array6);
|
||||
uint[] array8 = this.state;
|
||||
this.pi1(array8);
|
||||
uint[] array9 = this.state;
|
||||
this.gamma(array9);
|
||||
uint[] array10 = this.state;
|
||||
this.pi2(array10);
|
||||
num5++;
|
||||
uint[] array11 = this.state;
|
||||
uint num7 = NoekeonEngine.roundConstants[num5];
|
||||
array11[0] = num7;
|
||||
uint[] array12 = this.subKeys;
|
||||
uint[] array13 = this.state;
|
||||
this.theta(array13, array12);
|
||||
uint num8 = this.state[0];
|
||||
uint num9 = this.state[0];
|
||||
uint num10 = this.state[1];
|
||||
uint num11 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B7FF RID: 47103 RVA: 0x0028D5A8 File Offset: 0x0028B7A8
|
||||
[Token(Token = "0x600B7FF")]
|
||||
[Address(RVA = "0x1DD5460", Offset = "0x1DD4260", VA = "0x181DD5460")]
|
||||
private int decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
array[0] = num;
|
||||
uint[] array2 = this.state;
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
array2[0] = num2;
|
||||
uint[] array3 = this.state;
|
||||
uint num3 = Pack.BE_To_UInt32(input, inOff);
|
||||
array3[1] = num3;
|
||||
uint[] array4 = this.state;
|
||||
uint num4 = Pack.BE_To_UInt32(input, inOff);
|
||||
array4[1] = num4;
|
||||
uint[] array5 = this.subKeys;
|
||||
int length = array5.Length;
|
||||
int num5 = 0;
|
||||
uint[] array6 = this.decryptKeys;
|
||||
int num6 = 0;
|
||||
Array.Copy(array5, num6, array6, num5, length);
|
||||
uint[] array7 = this.decryptKeys;
|
||||
uint[] array8 = NoekeonEngine.nullVector;
|
||||
this.theta(array7, array8);
|
||||
uint[] array9 = this.decryptKeys;
|
||||
uint[] array10 = this.state;
|
||||
this.theta(array10, array9);
|
||||
uint[] array11 = this.state;
|
||||
uint[] array12 = NoekeonEngine.roundConstants;
|
||||
uint num7;
|
||||
array11[0] = num7;
|
||||
uint[] array13 = this.state;
|
||||
this.pi1(array13);
|
||||
uint[] array14 = this.state;
|
||||
this.gamma(array14);
|
||||
uint[] array15 = this.state;
|
||||
this.pi2(array15);
|
||||
uint[] array16 = this.decryptKeys;
|
||||
uint[] array17 = this.state;
|
||||
this.theta(array17, array16);
|
||||
uint[] array18 = this.state;
|
||||
uint[] array19 = NoekeonEngine.roundConstants;
|
||||
uint num8;
|
||||
array18[0] = num8;
|
||||
uint num9 = this.state[0];
|
||||
uint num10 = this.state[0];
|
||||
uint num11 = this.state[1];
|
||||
uint num12 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B800 RID: 47104 RVA: 0x0028D738 File Offset: 0x0028B938
|
||||
[Token(Token = "0x600B800")]
|
||||
[Address(RVA = "0x1DD5C20", Offset = "0x1DD4A20", VA = "0x181DD5C20")]
|
||||
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: 0x0600B801 RID: 47105 RVA: 0x0028D7A4 File Offset: 0x0028B9A4
|
||||
[Token(Token = "0x600B801")]
|
||||
[Address(RVA = "0x1DD6070", Offset = "0x1DD4E70", VA = "0x181DD6070")]
|
||||
private void theta(uint[] a, uint[] k)
|
||||
{
|
||||
int length = a.Length;
|
||||
int num = 0;
|
||||
uint num2 = k[num];
|
||||
num++;
|
||||
int length2 = a.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600B802 RID: 47106 RVA: 0x0028D7D4 File Offset: 0x0028B9D4
|
||||
[Token(Token = "0x600B802")]
|
||||
[Address(RVA = "0x1DD5E60", Offset = "0x1DD4C60", VA = "0x181DD5E60")]
|
||||
private void pi1(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
num += num;
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B803 RID: 47107 RVA: 0x0028D814 File Offset: 0x0028BA14
|
||||
[Token(Token = "0x600B803")]
|
||||
[Address(RVA = "0x1DD5EF0", Offset = "0x1DD4CF0", VA = "0x181DD5EF0")]
|
||||
private void pi2(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B804 RID: 47108 RVA: 0x0028D850 File Offset: 0x0028BA50
|
||||
[Token(Token = "0x600B804")]
|
||||
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
|
||||
private uint rotl(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B805 RID: 47109 RVA: 0x0028D860 File Offset: 0x0028BA60
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B805")]
|
||||
[Address(RVA = "0x1DD5350", Offset = "0x1DD4150", VA = "0x181DD5350")]
|
||||
static NoekeonEngine()
|
||||
{
|
||||
uint[] array = new uint[17];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AF3E960D2F0572119C78CAF04B900985A299000E).FieldHandle);
|
||||
NoekeonEngine.roundConstants = array;
|
||||
}
|
||||
|
||||
// Token: 0x040074AE RID: 29870
|
||||
[Token(Token = "0x40074AE")]
|
||||
private const int GenericSize = 16;
|
||||
|
||||
// Token: 0x040074AF RID: 29871
|
||||
[Token(Token = "0x40074AF")]
|
||||
private static readonly uint[] nullVector = new uint[4];
|
||||
|
||||
// Token: 0x040074B0 RID: 29872
|
||||
[Token(Token = "0x40074B0")]
|
||||
private static readonly uint[] roundConstants;
|
||||
|
||||
// Token: 0x040074B1 RID: 29873
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074B1")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x040074B2 RID: 29874
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074B2")]
|
||||
private uint[] subKeys;
|
||||
|
||||
// Token: 0x040074B3 RID: 29875
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074B3")]
|
||||
private uint[] decryptKeys;
|
||||
|
||||
// Token: 0x040074B4 RID: 29876
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074B4")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x040074B5 RID: 29877
|
||||
[FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x40074B5")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9A RID: 7322
|
||||
[Token(Token = "0x2001C9A")]
|
||||
public class NullEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B806 RID: 47110 RVA: 0x0028D894 File Offset: 0x0028BA94
|
||||
[Token(Token = "0x600B806")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public NullEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B807 RID: 47111 RVA: 0x0028D8A8 File Offset: 0x0028BAA8
|
||||
[Token(Token = "0x600B807")]
|
||||
[Address(RVA = "0x3F61A0", Offset = "0x3F4FA0", VA = "0x1803F61A0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
this.initialised = true;
|
||||
}
|
||||
|
||||
// Token: 0x17001CD9 RID: 7385
|
||||
// (get) Token: 0x0600B808 RID: 47112 RVA: 0x0028D8BC File Offset: 0x0028BABC
|
||||
[Token(Token = "0x17001CD9")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B808")]
|
||||
[Address(RVA = "0x1DD6360", Offset = "0x1DD5160", VA = "0x181DD6360", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Null";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CDA RID: 7386
|
||||
// (get) Token: 0x0600B809 RID: 47113 RVA: 0x0028D8D0 File Offset: 0x0028BAD0
|
||||
[Token(Token = "0x17001CDA")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B809")]
|
||||
[Address(RVA = "0x460D40", Offset = "0x45FB40", VA = "0x180460D40", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B80A RID: 47114 RVA: 0x0028D8E0 File Offset: 0x0028BAE0
|
||||
[Token(Token = "0x600B80A")]
|
||||
[Address(RVA = "0x4100E0", Offset = "0x40EEE0", VA = "0x1804100E0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600B80B RID: 47115 RVA: 0x0028D8F0 File Offset: 0x0028BAF0
|
||||
[Token(Token = "0x600B80B")]
|
||||
[Address(RVA = "0x1DD6210", Offset = "0x1DD5010", VA = "0x181DD6210", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B80B)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B80C RID: 47116 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B80C")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x040074B6 RID: 29878
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074B6")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040074B7 RID: 29879
|
||||
[Token(Token = "0x40074B7")]
|
||||
private const int BlockSize = 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,435 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9B RID: 7323
|
||||
[Token(Token = "0x2001C9B")]
|
||||
public class RC2Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B80D RID: 47117 RVA: 0x0028D920 File Offset: 0x0028BB20
|
||||
[Token(Token = "0x600B80D")]
|
||||
[Address(RVA = "0x1DD7370", Offset = "0x1DD6170", VA = "0x181DD7370")]
|
||||
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: 0x0600B80E RID: 47118 RVA: 0x0028DA10 File Offset: 0x0028BC10
|
||||
[Token(Token = "0x600B80E")]
|
||||
[Address(RVA = "0x1DD7750", Offset = "0x1DD6550", VA = "0x181DD7750", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B80E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B80F RID: 47119 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B80F")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "11")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x17001CDB RID: 7387
|
||||
// (get) Token: 0x0600B810 RID: 47120 RVA: 0x0028DA88 File Offset: 0x0028BC88
|
||||
[Token(Token = "0x17001CDB")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B810")]
|
||||
[Address(RVA = "0x1DD7B10", Offset = "0x1DD6910", VA = "0x181DD7B10", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CDC RID: 7388
|
||||
// (get) Token: 0x0600B811 RID: 47121 RVA: 0x0028DA9C File Offset: 0x0028BC9C
|
||||
[Token(Token = "0x17001CDC")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B811")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B812 RID: 47122 RVA: 0x0028DAAC File Offset: 0x0028BCAC
|
||||
[Token(Token = "0x600B812")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B813 RID: 47123 RVA: 0x0028DABC File Offset: 0x0028BCBC
|
||||
[Token(Token = "0x600B813")]
|
||||
[Address(RVA = "0x1DD7980", Offset = "0x1DD6780", VA = "0x181DD7980", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B813)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B814 RID: 47124 RVA: 0x0028DAF8 File Offset: 0x0028BCF8
|
||||
[Token(Token = "0x600B814")]
|
||||
[Address(RVA = "0x1DD7A80", Offset = "0x1DD6880", VA = "0x181DD7A80")]
|
||||
private int RotateWordLeft(int x, int y)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)y;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B815 RID: 47125 RVA: 0x0028DB0C File Offset: 0x0028BD0C
|
||||
[Token(Token = "0x600B815")]
|
||||
[Address(RVA = "0x1DD6B60", Offset = "0x1DD5960", VA = "0x181DD6B60")]
|
||||
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: 0x0600B816 RID: 47126 RVA: 0x0028DDC0 File Offset: 0x0028BFC0
|
||||
[Token(Token = "0x600B816")]
|
||||
[Address(RVA = "0x1DD6390", Offset = "0x1DD5190", VA = "0x181DD6390")]
|
||||
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: 0x0600B817 RID: 47127 RVA: 0x0028DF38 File Offset: 0x0028C138
|
||||
[Token(Token = "0x600B817")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public RC2Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B818 RID: 47128 RVA: 0x0028DF4C File Offset: 0x0028C14C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B818")]
|
||||
[Address(RVA = "0x1DD7AB0", Offset = "0x1DD68B0", VA = "0x181DD7AB0")]
|
||||
static RC2Engine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.0392525BCB01691D1F319D89F2C12BF93A478467).FieldHandle);
|
||||
RC2Engine.piTable = array;
|
||||
}
|
||||
|
||||
// Token: 0x040074B8 RID: 29880
|
||||
[Token(Token = "0x40074B8")]
|
||||
private static readonly byte[] piTable;
|
||||
|
||||
// Token: 0x040074B9 RID: 29881
|
||||
[Token(Token = "0x40074B9")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040074BA RID: 29882
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074BA")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x040074BB RID: 29883
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074BB")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
+225
@@ -0,0 +1,225 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9C RID: 7324
|
||||
[Token(Token = "0x2001C9C")]
|
||||
public class RC2WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600B819 RID: 47129 RVA: 0x0028DF78 File Offset: 0x0028C178
|
||||
[Token(Token = "0x600B819")]
|
||||
[Address(RVA = "0x1DF0590", Offset = "0x1DEF390", VA = "0x181DF0590", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
this.forWrapping = forWrapping;
|
||||
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(new 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: 0x17001CDD RID: 7389
|
||||
// (get) Token: 0x0600B81A RID: 47130 RVA: 0x0028E05C File Offset: 0x0028C25C
|
||||
[Token(Token = "0x17001CDD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B81A")]
|
||||
[Address(RVA = "0x1DF1460", Offset = "0x1DF0260", VA = "0x181DF1460", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B81B RID: 47131 RVA: 0x0028E070 File Offset: 0x0028C270
|
||||
[Token(Token = "0x600B81B")]
|
||||
[Address(RVA = "0x1DF0ED0", Offset = "0x1DEFCD0", VA = "0x181DF0ED0", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B81B)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B81C RID: 47132 RVA: 0x0028E304 File Offset: 0x0028C504
|
||||
[Token(Token = "0x600B81C")]
|
||||
[Address(RVA = "0x1DF0880", Offset = "0x1DEF680", VA = "0x181DF0880", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B81C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B81D RID: 47133 RVA: 0x0028E5BC File Offset: 0x0028C7BC
|
||||
[Token(Token = "0x600B81D")]
|
||||
[Address(RVA = "0x1DF0430", Offset = "0x1DEF230", VA = "0x181DF0430")]
|
||||
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: 0x0600B81E RID: 47134 RVA: 0x0028E60C File Offset: 0x0028C80C
|
||||
[Token(Token = "0x600B81E")]
|
||||
[Address(RVA = "0x1DF0510", Offset = "0x1DEF310", VA = "0x181DF0510")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x0600B81F RID: 47135 RVA: 0x0028E628 File Offset: 0x0028C828
|
||||
[Token(Token = "0x600B81F")]
|
||||
[Address(RVA = "0x1DF13F0", Offset = "0x1DF01F0", VA = "0x181DF13F0")]
|
||||
public RC2WrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600B820 RID: 47136 RVA: 0x0028E658 File Offset: 0x0028C858
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B820")]
|
||||
[Address(RVA = "0x1DF1390", Offset = "0x1DF0190", VA = "0x181DF1390")]
|
||||
static RC2WrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
RC2WrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x040074BC RID: 29884
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074BC")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x040074BD RID: 29885
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074BD")]
|
||||
private ICipherParameters parameters;
|
||||
|
||||
// Token: 0x040074BE RID: 29886
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074BE")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x040074BF RID: 29887
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074BF")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x040074C0 RID: 29888
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40074C0")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x040074C1 RID: 29889
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40074C1")]
|
||||
private SecureRandom sr;
|
||||
|
||||
// Token: 0x040074C2 RID: 29890
|
||||
[Token(Token = "0x40074C2")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x040074C3 RID: 29891
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40074C3")]
|
||||
private IDigest sha1;
|
||||
|
||||
// Token: 0x040074C4 RID: 29892
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40074C4")]
|
||||
private byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9D RID: 7325
|
||||
[Token(Token = "0x2001C9D")]
|
||||
public class RC4Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600B821 RID: 47137 RVA: 0x0028E680 File Offset: 0x0028C880
|
||||
[Token(Token = "0x600B821")]
|
||||
[Address(RVA = "0x1DF1490", Offset = "0x1DF0290", VA = "0x181DF1490", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B821)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CDE RID: 7390
|
||||
// (get) Token: 0x0600B822 RID: 47138 RVA: 0x0028E6C4 File Offset: 0x0028C8C4
|
||||
[Token(Token = "0x17001CDE")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B822")]
|
||||
[Address(RVA = "0x1DF1C70", Offset = "0x1DF0A70", VA = "0x181DF1C70", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B823 RID: 47139 RVA: 0x0028E6D8 File Offset: 0x0028C8D8
|
||||
[Token(Token = "0x600B823")]
|
||||
[Address(RVA = "0x1DF18A0", Offset = "0x1DF06A0", VA = "0x181DF18A0", 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: 0x0600B824 RID: 47140 RVA: 0x0028E750 File Offset: 0x0028C950
|
||||
[Token(Token = "0x600B824")]
|
||||
[Address(RVA = "0x1DF1620", Offset = "0x1DF0420", VA = "0x181DF1620", 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: 0x0600B825 RID: 47141 RVA: 0x0028E7D8 File Offset: 0x0028C9D8
|
||||
[Token(Token = "0x600B825")]
|
||||
[Address(RVA = "0x1DF1890", Offset = "0x1DF0690", VA = "0x181DF1890", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.SetKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600B826 RID: 47142 RVA: 0x0028E7F4 File Offset: 0x0028C9F4
|
||||
[Token(Token = "0x600B826")]
|
||||
[Address(RVA = "0x1DF1A10", Offset = "0x1DF0810", VA = "0x181DF1A10")]
|
||||
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: 0x0600B827 RID: 47143 RVA: 0x0028E868 File Offset: 0x0028CA68
|
||||
[Token(Token = "0x600B827")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public RC4Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040074C5 RID: 29893
|
||||
[Token(Token = "0x40074C5")]
|
||||
private static readonly int STATE_LENGTH;
|
||||
|
||||
// Token: 0x040074C6 RID: 29894
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074C6")]
|
||||
private byte[] engineState;
|
||||
|
||||
// Token: 0x040074C7 RID: 29895
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074C7")]
|
||||
private int x;
|
||||
|
||||
// Token: 0x040074C8 RID: 29896
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40074C8")]
|
||||
private int y;
|
||||
|
||||
// Token: 0x040074C9 RID: 29897
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074C9")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+258
@@ -0,0 +1,258 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9E RID: 7326
|
||||
[Token(Token = "0x2001C9E")]
|
||||
public class RC532Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B829 RID: 47145 RVA: 0x0028E88C File Offset: 0x0028CA8C
|
||||
[Token(Token = "0x600B829")]
|
||||
[Address(RVA = "0x1DF2990", Offset = "0x1DF1790", VA = "0x181DF2990")]
|
||||
public RC532Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x17001CDF RID: 7391
|
||||
// (get) Token: 0x0600B82A RID: 47146 RVA: 0x0028E8AC File Offset: 0x0028CAAC
|
||||
[Token(Token = "0x17001CDF")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B82A")]
|
||||
[Address(RVA = "0x1DF29B0", Offset = "0x1DF17B0", VA = "0x181DF29B0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-32";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CE0 RID: 7392
|
||||
// (get) Token: 0x0600B82B RID: 47147 RVA: 0x0028E8C0 File Offset: 0x0028CAC0
|
||||
[Token(Token = "0x17001CE0")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B82B")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B82C RID: 47148 RVA: 0x0028E8D0 File Offset: 0x0028CAD0
|
||||
[Token(Token = "0x600B82C")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B82D RID: 47149 RVA: 0x0028E8E0 File Offset: 0x0028CAE0
|
||||
[Token(Token = "0x600B82D")]
|
||||
[Address(RVA = "0x1DF2370", Offset = "0x1DF1170", VA = "0x181DF2370", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B82D)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B82E RID: 47150 RVA: 0x0028E94C File Offset: 0x0028CB4C
|
||||
[Token(Token = "0x600B82E")]
|
||||
[Address(RVA = "0x1DF25A0", Offset = "0x1DF13A0", VA = "0x181DF25A0", 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: 0x0600B82F RID: 47151 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B82F")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B830 RID: 47152 RVA: 0x0028E968 File Offset: 0x0028CB68
|
||||
[Token(Token = "0x600B830")]
|
||||
[Address(RVA = "0x1DF2610", Offset = "0x1DF1410", VA = "0x181DF2610")]
|
||||
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: 0x0600B831 RID: 47153 RVA: 0x0028EA78 File Offset: 0x0028CC78
|
||||
[Token(Token = "0x600B831")]
|
||||
[Address(RVA = "0x1DF2000", Offset = "0x1DF0E00", VA = "0x181DF2000")]
|
||||
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: 0x0600B832 RID: 47154 RVA: 0x0028EB04 File Offset: 0x0028CD04
|
||||
[Token(Token = "0x600B832")]
|
||||
[Address(RVA = "0x1DF1CA0", Offset = "0x1DF0AA0", VA = "0x181DF1CA0")]
|
||||
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: 0x0600B833 RID: 47155 RVA: 0x0028EB64 File Offset: 0x0028CD64
|
||||
[Token(Token = "0x600B833")]
|
||||
[Address(RVA = "0x1DF25D0", Offset = "0x1DF13D0", VA = "0x181DF25D0")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B834 RID: 47156 RVA: 0x0028EB74 File Offset: 0x0028CD74
|
||||
[Token(Token = "0x600B834")]
|
||||
[Address(RVA = "0x1DF25F0", Offset = "0x1DF13F0", VA = "0x181DF25F0")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B835 RID: 47157 RVA: 0x0028EB84 File Offset: 0x0028CD84
|
||||
[Token(Token = "0x600B835")]
|
||||
[Address(RVA = "0x1A3E3B0", Offset = "0x1A3D1B0", VA = "0x181A3E3B0")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int length = src.Length;
|
||||
int num = srcOff + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B836 RID: 47158 RVA: 0x0028EBA4 File Offset: 0x0028CDA4
|
||||
[Token(Token = "0x600B836")]
|
||||
[Address(RVA = "0x1A3E310", Offset = "0x1A3D110", VA = "0x181A3E310")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
int num = dstOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x040074CA RID: 29898
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074CA")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x040074CB RID: 29899
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074CB")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x040074CC RID: 29900
|
||||
[Token(Token = "0x40074CC")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x040074CD RID: 29901
|
||||
[Token(Token = "0x40074CD")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x040074CE RID: 29902
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074CE")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+310
@@ -0,0 +1,310 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001C9F RID: 7327
|
||||
[Token(Token = "0x2001C9F")]
|
||||
public class RC564Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B838 RID: 47160 RVA: 0x0028EBCC File Offset: 0x0028CDCC
|
||||
[Token(Token = "0x600B838")]
|
||||
[Address(RVA = "0x1DF2990", Offset = "0x1DF1790", VA = "0x181DF2990")]
|
||||
public RC564Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x17001CE1 RID: 7393
|
||||
// (get) Token: 0x0600B839 RID: 47161 RVA: 0x0028EBEC File Offset: 0x0028CDEC
|
||||
[Token(Token = "0x17001CE1")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B839")]
|
||||
[Address(RVA = "0x1DF3A30", Offset = "0x1DF2830", VA = "0x181DF3A30", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-64";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CE2 RID: 7394
|
||||
// (get) Token: 0x0600B83A RID: 47162 RVA: 0x0028EC00 File Offset: 0x0028CE00
|
||||
[Token(Token = "0x17001CE2")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B83A")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B83B RID: 47163 RVA: 0x0028EC10 File Offset: 0x0028CE10
|
||||
[Token(Token = "0x600B83B")]
|
||||
[Address(RVA = "0x1DF3110", Offset = "0x1DF1F10", VA = "0x181DF3110", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
int num = RC564Engine.bytesPerWord;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B83C RID: 47164 RVA: 0x0028EC28 File Offset: 0x0028CE28
|
||||
[Token(Token = "0x600B83C")]
|
||||
[Address(RVA = "0x1DF3170", Offset = "0x1DF1F70", VA = "0x181DF3170", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B83C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B83D RID: 47165 RVA: 0x0028EC7C File Offset: 0x0028CE7C
|
||||
[Token(Token = "0x600B83D")]
|
||||
[Address(RVA = "0x1DF3300", Offset = "0x1DF2100", VA = "0x181DF3300", 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: 0x0600B83E RID: 47166 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B83E")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B83F RID: 47167 RVA: 0x0028EC98 File Offset: 0x0028CE98
|
||||
[Token(Token = "0x600B83F")]
|
||||
[Address(RVA = "0x1DF3450", Offset = "0x1DF2250", VA = "0x181DF3450")]
|
||||
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: 0x0600B840 RID: 47168 RVA: 0x0028EDE4 File Offset: 0x0028CFE4
|
||||
[Token(Token = "0x600B840")]
|
||||
[Address(RVA = "0x1DF2D90", Offset = "0x1DF1B90", VA = "0x181DF2D90")]
|
||||
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: 0x0600B841 RID: 47169 RVA: 0x0028EEB8 File Offset: 0x0028D0B8
|
||||
[Token(Token = "0x600B841")]
|
||||
[Address(RVA = "0x1DF2AA0", Offset = "0x1DF18A0", VA = "0x181DF2AA0")]
|
||||
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: 0x0600B842 RID: 47170 RVA: 0x0028EF74 File Offset: 0x0028D174
|
||||
[Token(Token = "0x600B842")]
|
||||
[Address(RVA = "0x1DF3330", Offset = "0x1DF2130", VA = "0x181DF3330")]
|
||||
private long RotateLeft(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B843 RID: 47171 RVA: 0x0028EF94 File Offset: 0x0028D194
|
||||
[Token(Token = "0x600B843")]
|
||||
[Address(RVA = "0x1DF33C0", Offset = "0x1DF21C0", VA = "0x181DF33C0")]
|
||||
private long RotateRight(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B844 RID: 47172 RVA: 0x0028EFB4 File Offset: 0x0028D1B4
|
||||
[Token(Token = "0x600B844")]
|
||||
[Address(RVA = "0x1DF29E0", Offset = "0x1DF17E0", VA = "0x181DF29E0")]
|
||||
private long BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B845 RID: 47173 RVA: 0x0028EFD4 File Offset: 0x0028D1D4
|
||||
[Token(Token = "0x600B845")]
|
||||
[Address(RVA = "0x1DF38E0", Offset = "0x1DF26E0", VA = "0x181DF38E0")]
|
||||
private void WordToBytes(long word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B846 RID: 47174 RVA: 0x0028EFE8 File Offset: 0x0028D1E8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B846")]
|
||||
[Address(RVA = "0x1DF39A0", Offset = "0x1DF27A0", VA = "0x181DF39A0")]
|
||||
static RC564Engine()
|
||||
{
|
||||
ulong num;
|
||||
RC564Engine.P64 = (long)num;
|
||||
ulong num2;
|
||||
RC564Engine.Q64 = (long)num2;
|
||||
}
|
||||
|
||||
// Token: 0x040074CF RID: 29903
|
||||
[Token(Token = "0x40074CF")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x040074D0 RID: 29904
|
||||
[Token(Token = "0x40074D0")]
|
||||
private static readonly int bytesPerWord = RC564Engine.wordSize;
|
||||
|
||||
// Token: 0x040074D1 RID: 29905
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074D1")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x040074D2 RID: 29906
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074D2")]
|
||||
private long[] _S;
|
||||
|
||||
// Token: 0x040074D3 RID: 29907
|
||||
[Token(Token = "0x40074D3")]
|
||||
private static readonly long P64;
|
||||
|
||||
// Token: 0x040074D4 RID: 29908
|
||||
[Token(Token = "0x40074D4")]
|
||||
private static readonly long Q64;
|
||||
|
||||
// Token: 0x040074D5 RID: 29909
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074D5")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,333 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA0 RID: 7328
|
||||
[Token(Token = "0x2001CA0")]
|
||||
public class RC6Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B847 RID: 47175 RVA: 0x0028F00C File Offset: 0x0028D20C
|
||||
[Token(Token = "0x600B847")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public RC6Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x17001CE3 RID: 7395
|
||||
// (get) Token: 0x0600B848 RID: 47176 RVA: 0x0028F020 File Offset: 0x0028D220
|
||||
[Token(Token = "0x17001CE3")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B848")]
|
||||
[Address(RVA = "0x1DF4FC0", Offset = "0x1DF3DC0", VA = "0x181DF4FC0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CE4 RID: 7396
|
||||
// (get) Token: 0x0600B849 RID: 47177 RVA: 0x0028F034 File Offset: 0x0028D234
|
||||
[Token(Token = "0x17001CE4")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B849")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B84A RID: 47178 RVA: 0x0028F044 File Offset: 0x0028D244
|
||||
[Token(Token = "0x600B84A")]
|
||||
[Address(RVA = "0x1DF4600", Offset = "0x1DF3400", VA = "0x181DF4600", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return RC6Engine.bytesPerWord;
|
||||
}
|
||||
|
||||
// Token: 0x0600B84B RID: 47179 RVA: 0x0028F058 File Offset: 0x0028D258
|
||||
[Token(Token = "0x600B84B")]
|
||||
[Address(RVA = "0x1DF4660", Offset = "0x1DF3460", VA = "0x181DF4660", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B84B)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B84C RID: 47180 RVA: 0x0028F098 File Offset: 0x0028D298
|
||||
[Token(Token = "0x600B84C")]
|
||||
[Address(RVA = "0x1DF47C0", Offset = "0x1DF35C0", VA = "0x181DF47C0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B84C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B84D RID: 47181 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B84D")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B84E RID: 47182 RVA: 0x0028F0DC File Offset: 0x0028D2DC
|
||||
[Token(Token = "0x600B84E")]
|
||||
[Address(RVA = "0x1DF49D0", Offset = "0x1DF37D0", VA = "0x181DF49D0")]
|
||||
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: 0x0600B84F RID: 47183 RVA: 0x0028F23C File Offset: 0x0028D43C
|
||||
[Token(Token = "0x600B84F")]
|
||||
[Address(RVA = "0x1DF3EF0", Offset = "0x1DF2CF0", VA = "0x181DF3EF0")]
|
||||
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: 0x0600B850 RID: 47184 RVA: 0x0028F374 File Offset: 0x0028D574
|
||||
[Token(Token = "0x600B850")]
|
||||
[Address(RVA = "0x1DF3B20", Offset = "0x1DF2920", VA = "0x181DF3B20")]
|
||||
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: 0x0600B851 RID: 47185 RVA: 0x0028F478 File Offset: 0x0028D678
|
||||
[Token(Token = "0x600B851")]
|
||||
[Address(RVA = "0x1DF48D0", Offset = "0x1DF36D0", VA = "0x181DF48D0")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B852 RID: 47186 RVA: 0x0028F498 File Offset: 0x0028D698
|
||||
[Token(Token = "0x600B852")]
|
||||
[Address(RVA = "0x1DF4950", Offset = "0x1DF3750", VA = "0x181DF4950")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B853 RID: 47187 RVA: 0x0028F4B8 File Offset: 0x0028D6B8
|
||||
[Token(Token = "0x600B853")]
|
||||
[Address(RVA = "0x1DF3A60", Offset = "0x1DF2860", VA = "0x181DF3A60")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
return num + (int)b;
|
||||
}
|
||||
|
||||
// Token: 0x0600B854 RID: 47188 RVA: 0x0028F4DC File Offset: 0x0028D6DC
|
||||
[Token(Token = "0x600B854")]
|
||||
[Address(RVA = "0x1DF4E50", Offset = "0x1DF3C50", VA = "0x181DF4E50")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040074D6 RID: 29910
|
||||
[Token(Token = "0x40074D6")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x040074D7 RID: 29911
|
||||
[Token(Token = "0x40074D7")]
|
||||
private static readonly int bytesPerWord = RC6Engine.wordSize;
|
||||
|
||||
// Token: 0x040074D8 RID: 29912
|
||||
[Token(Token = "0x40074D8")]
|
||||
private static readonly int _noRounds;
|
||||
|
||||
// Token: 0x040074D9 RID: 29913
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074D9")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x040074DA RID: 29914
|
||||
[Token(Token = "0x40074DA")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x040074DB RID: 29915
|
||||
[Token(Token = "0x40074DB")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x040074DC RID: 29916
|
||||
[Token(Token = "0x40074DC")]
|
||||
private static readonly int LGW;
|
||||
|
||||
// Token: 0x040074DD RID: 29917
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074DD")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA1 RID: 7329
|
||||
[Token(Token = "0x2001CA1")]
|
||||
public class Rfc3211WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600B856 RID: 47190 RVA: 0x0028F508 File Offset: 0x0028D708
|
||||
[Token(Token = "0x600B856")]
|
||||
[Address(RVA = "0x1DF5880", Offset = "0x1DF4680", VA = "0x181DF5880")]
|
||||
public Rfc3211WrapEngine(IBlockCipher engine)
|
||||
{
|
||||
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(engine);
|
||||
this.engine = cbcBlockCipher;
|
||||
}
|
||||
|
||||
// Token: 0x0600B857 RID: 47191 RVA: 0x0028F52C File Offset: 0x0028D72C
|
||||
[Token(Token = "0x600B857")]
|
||||
[Address(RVA = "0x1DF4FF0", Offset = "0x1DF3DF0", VA = "0x181DF4FF0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters param)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B857)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CE5 RID: 7397
|
||||
// (get) Token: 0x0600B858 RID: 47192 RVA: 0x0028F598 File Offset: 0x0028D798
|
||||
[Token(Token = "0x17001CE5")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B858")]
|
||||
[Address(RVA = "0x1DF58F0", Offset = "0x1DF46F0", VA = "0x181DF58F0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher cipher = this.engine.cipher;
|
||||
string text;
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B859 RID: 47193 RVA: 0x0028F5B8 File Offset: 0x0028D7B8
|
||||
[Token(Token = "0x600B859")]
|
||||
[Address(RVA = "0x1DF55D0", Offset = "0x1DF43D0", VA = "0x181DF55D0", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B859)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B85A RID: 47194 RVA: 0x0028F6E0 File Offset: 0x0028D8E0
|
||||
[Token(Token = "0x600B85A")]
|
||||
[Address(RVA = "0x1DF51D0", Offset = "0x1DF3FD0", VA = "0x181DF51D0", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B85A)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x040074DE RID: 29918
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074DE")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x040074DF RID: 29919
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074DF")]
|
||||
private ParametersWithIV param;
|
||||
|
||||
// Token: 0x040074E0 RID: 29920
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074E0")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x040074E1 RID: 29921
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074E1")]
|
||||
private SecureRandom rand;
|
||||
}
|
||||
}
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA2 RID: 7330
|
||||
[Token(Token = "0x2001CA2")]
|
||||
public class Rfc3394WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600B85B RID: 47195 RVA: 0x0028F89C File Offset: 0x0028DA9C
|
||||
[Token(Token = "0x600B85B")]
|
||||
[Address(RVA = "0x1DF62E0", Offset = "0x1DF50E0", VA = "0x181DF62E0")]
|
||||
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: 0x0600B85C RID: 47196 RVA: 0x0028F8D0 File Offset: 0x0028DAD0
|
||||
[Token(Token = "0x600B85C")]
|
||||
[Address(RVA = "0x1DF5960", Offset = "0x1DF4760", VA = "0x181DF5960", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B85C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CE6 RID: 7398
|
||||
// (get) Token: 0x0600B85D RID: 47197 RVA: 0x0028F944 File Offset: 0x0028DB44
|
||||
[Token(Token = "0x17001CE6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B85D")]
|
||||
[Address(RVA = "0x1DF6360", Offset = "0x1DF5160", VA = "0x181DF6360", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher blockCipher = this.engine;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B85E RID: 47198 RVA: 0x0028F960 File Offset: 0x0028DB60
|
||||
[Token(Token = "0x600B85E")]
|
||||
[Address(RVA = "0x1DF5FC0", Offset = "0x1DF4DC0", VA = "0x181DF5FC0", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B85E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B85F RID: 47199 RVA: 0x0028FAAC File Offset: 0x0028DCAC
|
||||
[Token(Token = "0x600B85F")]
|
||||
[Address(RVA = "0x1DF5BF0", Offset = "0x1DF49F0", VA = "0x181DF5BF0", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B85F)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x040074E2 RID: 29922
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074E2")]
|
||||
private readonly IBlockCipher engine;
|
||||
|
||||
// Token: 0x040074E3 RID: 29923
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074E3")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x040074E4 RID: 29924
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074E4")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x040074E5 RID: 29925
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074E5")]
|
||||
private byte[] iv;
|
||||
}
|
||||
}
|
||||
+728
@@ -0,0 +1,728 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA6 RID: 7334
|
||||
[Token(Token = "0x2001CA6")]
|
||||
public class RijndaelEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B878 RID: 47224 RVA: 0x002901D8 File Offset: 0x0028E3D8
|
||||
[Token(Token = "0x600B878")]
|
||||
[Address(RVA = "0x1DF78B0", Offset = "0x1DF66B0", VA = "0x181DF78B0")]
|
||||
private byte Mul0x2(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B879 RID: 47225 RVA: 0x00290200 File Offset: 0x0028E400
|
||||
[Token(Token = "0x600B879")]
|
||||
[Address(RVA = "0x1DF7970", Offset = "0x1DF6770", VA = "0x181DF7970")]
|
||||
private byte Mul0x3(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B87A RID: 47226 RVA: 0x00290228 File Offset: 0x0028E428
|
||||
[Token(Token = "0x600B87A")]
|
||||
[Address(RVA = "0x1DF7A30", Offset = "0x1DF6830", VA = "0x181DF7A30")]
|
||||
private byte Mul0x9(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B87B RID: 47227 RVA: 0x00290244 File Offset: 0x0028E444
|
||||
[Token(Token = "0x600B87B")]
|
||||
[Address(RVA = "0x1DF7AD0", Offset = "0x1DF68D0", VA = "0x181DF7AD0")]
|
||||
private byte Mul0xb(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B87C RID: 47228 RVA: 0x00290260 File Offset: 0x0028E460
|
||||
[Token(Token = "0x600B87C")]
|
||||
[Address(RVA = "0x1DF7B70", Offset = "0x1DF6970", VA = "0x181DF7B70")]
|
||||
private byte Mul0xd(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B87D RID: 47229 RVA: 0x0029027C File Offset: 0x0028E47C
|
||||
[Token(Token = "0x600B87D")]
|
||||
[Address(RVA = "0x1DF7C10", Offset = "0x1DF6A10", VA = "0x181DF7C10")]
|
||||
private byte Mul0xe(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B87E RID: 47230 RVA: 0x00290298 File Offset: 0x0028E498
|
||||
[Token(Token = "0x600B87E")]
|
||||
[Address(RVA = "0x1DF7610", Offset = "0x1DF6410", VA = "0x181DF7610")]
|
||||
private void KeyAddition(long[] rk)
|
||||
{
|
||||
long num = rk[3];
|
||||
}
|
||||
|
||||
// Token: 0x0600B87F RID: 47231 RVA: 0x002902B4 File Offset: 0x0028E4B4
|
||||
[Token(Token = "0x600B87F")]
|
||||
[Address(RVA = "0x1DF8350", Offset = "0x1DF7150", VA = "0x181DF8350")]
|
||||
private long Shift(long r, int shift)
|
||||
{
|
||||
int num = this.BC;
|
||||
num -= shift;
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600B880 RID: 47232 RVA: 0x002902D0 File Offset: 0x0028E4D0
|
||||
[Token(Token = "0x600B880")]
|
||||
[Address(RVA = "0x1DF8230", Offset = "0x1DF7030", VA = "0x181DF8230")]
|
||||
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: 0x0600B881 RID: 47233 RVA: 0x0029032C File Offset: 0x0028E52C
|
||||
[Token(Token = "0x600B881")]
|
||||
[Address(RVA = "0x1DF63B0", Offset = "0x1DF51B0", VA = "0x181DF63B0")]
|
||||
private long ApplyS(long r, byte[] box)
|
||||
{
|
||||
int bc = this.BC;
|
||||
int num = 0;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B882 RID: 47234 RVA: 0x00290350 File Offset: 0x0028E550
|
||||
[Token(Token = "0x600B882")]
|
||||
[Address(RVA = "0x1DF8380", Offset = "0x1DF7180", VA = "0x181DF8380")]
|
||||
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: 0x0600B883 RID: 47235 RVA: 0x002903B0 File Offset: 0x0028E5B0
|
||||
[Token(Token = "0x600B883")]
|
||||
[Address(RVA = "0x1DF76A0", Offset = "0x1DF64A0", VA = "0x181DF76A0")]
|
||||
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: 0x0600B884 RID: 47236 RVA: 0x00290450 File Offset: 0x0028E650
|
||||
[Token(Token = "0x600B884")]
|
||||
[Address(RVA = "0x1DF71D0", Offset = "0x1DF5FD0", VA = "0x181DF71D0")]
|
||||
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: 0x0600B885 RID: 47237 RVA: 0x0029056C File Offset: 0x0028E76C
|
||||
[Token(Token = "0x600B885")]
|
||||
[Address(RVA = "0x1DF6740", Offset = "0x1DF5540", VA = "0x181DF6740")]
|
||||
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: 0x0600B886 RID: 47238 RVA: 0x00290820 File Offset: 0x0028EA20
|
||||
[Token(Token = "0x600B886")]
|
||||
[Address(RVA = "0x1DF8D10", Offset = "0x1DF7B10", VA = "0x181DF8D10")]
|
||||
public RijndaelEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B887 RID: 47239 RVA: 0x00290830 File Offset: 0x0028EA30
|
||||
[Token(Token = "0x600B887")]
|
||||
[Address(RVA = "0x1DF8D20", Offset = "0x1DF7B20", VA = "0x181DF8D20")]
|
||||
public RijndaelEngine(int blockBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B887)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B888 RID: 47240 RVA: 0x00290984 File Offset: 0x0028EB84
|
||||
[Token(Token = "0x600B888")]
|
||||
[Address(RVA = "0x1DF7000", Offset = "0x1DF5E00", VA = "0x181DF7000", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B888)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CE9 RID: 7401
|
||||
// (get) Token: 0x0600B889 RID: 47241 RVA: 0x002909E0 File Offset: 0x0028EBE0
|
||||
[Token(Token = "0x17001CE9")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B889")]
|
||||
[Address(RVA = "0x1DF9180", Offset = "0x1DF7F80", VA = "0x181DF9180", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Rijndael";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CEA RID: 7402
|
||||
// (get) Token: 0x0600B88A RID: 47242 RVA: 0x002909F4 File Offset: 0x0028EBF4
|
||||
[Token(Token = "0x17001CEA")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B88A")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B88B RID: 47243 RVA: 0x00290A04 File Offset: 0x0028EC04
|
||||
[Token(Token = "0x600B88B")]
|
||||
[Address(RVA = "0x1DF6FF0", Offset = "0x1DF5DF0", VA = "0x181DF6FF0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.BC;
|
||||
}
|
||||
|
||||
// Token: 0x0600B88C RID: 47244 RVA: 0x00290A18 File Offset: 0x0028EC18
|
||||
[Token(Token = "0x600B88C")]
|
||||
[Address(RVA = "0x1DF7D90", Offset = "0x1DF6B90", VA = "0x181DF7D90", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B88C)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B88D RID: 47245 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B88D")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B88E RID: 47246 RVA: 0x00290BD8 File Offset: 0x0028EDD8
|
||||
[Token(Token = "0x600B88E")]
|
||||
[Address(RVA = "0x1DF8530", Offset = "0x1DF7330", VA = "0x181DF8530")]
|
||||
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: 0x0600B88F RID: 47247 RVA: 0x00290C44 File Offset: 0x0028EE44
|
||||
[Token(Token = "0x600B88F")]
|
||||
[Address(RVA = "0x1DF7CB0", Offset = "0x1DF6AB0", VA = "0x181DF7CB0")]
|
||||
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: 0x0600B890 RID: 47248 RVA: 0x00290CA4 File Offset: 0x0028EEA4
|
||||
[Token(Token = "0x600B890")]
|
||||
[Address(RVA = "0x1DF65B0", Offset = "0x1DF53B0", VA = "0x181DF65B0")]
|
||||
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: 0x0600B891 RID: 47249 RVA: 0x00290D30 File Offset: 0x0028EF30
|
||||
[Token(Token = "0x600B891")]
|
||||
[Address(RVA = "0x1DF6420", Offset = "0x1DF5220", VA = "0x181DF6420")]
|
||||
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: 0x0600B892 RID: 47250 RVA: 0x00290DCC File Offset: 0x0028EFCC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B892")]
|
||||
[Address(RVA = "0x1DF86D0", Offset = "0x1DF74D0", VA = "0x181DF86D0")]
|
||||
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: 0x040074F0 RID: 29936
|
||||
[Token(Token = "0x40074F0")]
|
||||
private static readonly int MAXROUNDS;
|
||||
|
||||
// Token: 0x040074F1 RID: 29937
|
||||
[Token(Token = "0x40074F1")]
|
||||
private static readonly int MAXKC;
|
||||
|
||||
// Token: 0x040074F2 RID: 29938
|
||||
[Token(Token = "0x40074F2")]
|
||||
private static readonly byte[] Logtable;
|
||||
|
||||
// Token: 0x040074F3 RID: 29939
|
||||
[Token(Token = "0x40074F3")]
|
||||
private static readonly byte[] Alogtable;
|
||||
|
||||
// Token: 0x040074F4 RID: 29940
|
||||
[Token(Token = "0x40074F4")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040074F5 RID: 29941
|
||||
[Token(Token = "0x40074F5")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040074F6 RID: 29942
|
||||
[Token(Token = "0x40074F6")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040074F7 RID: 29943
|
||||
[Token(Token = "0x40074F7")]
|
||||
private static readonly byte[][] shifts0;
|
||||
|
||||
// Token: 0x040074F8 RID: 29944
|
||||
[Token(Token = "0x40074F8")]
|
||||
private static readonly byte[][] shifts1;
|
||||
|
||||
// Token: 0x040074F9 RID: 29945
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074F9")]
|
||||
private int BC;
|
||||
|
||||
// Token: 0x040074FA RID: 29946
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074FA")]
|
||||
private long BC_MASK;
|
||||
|
||||
// Token: 0x040074FB RID: 29947
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074FB")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040074FC RID: 29948
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40074FC")]
|
||||
private int blockBits;
|
||||
|
||||
// Token: 0x040074FD RID: 29949
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074FD")]
|
||||
private long[][] workingKey;
|
||||
|
||||
// Token: 0x040074FE RID: 29950
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40074FE")]
|
||||
private long A0;
|
||||
|
||||
// Token: 0x040074FF RID: 29951
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40074FF")]
|
||||
private long A1;
|
||||
|
||||
// Token: 0x04007500 RID: 29952
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007500")]
|
||||
private long A2;
|
||||
|
||||
// Token: 0x04007501 RID: 29953
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4007501")]
|
||||
private long A3;
|
||||
|
||||
// Token: 0x04007502 RID: 29954
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4007502")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007503 RID: 29955
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x4007503")]
|
||||
private byte[] shifts0SC;
|
||||
|
||||
// Token: 0x04007504 RID: 29956
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x4007504")]
|
||||
private byte[] shifts1SC;
|
||||
}
|
||||
}
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA3 RID: 7331
|
||||
[Token(Token = "0x2001CA3")]
|
||||
public class RsaBlindedEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600B860 RID: 47200 RVA: 0x0028FC00 File Offset: 0x0028DE00
|
||||
[Token(Token = "0x600B860")]
|
||||
[Address(RVA = "0x1DF9770", Offset = "0x1DF8570", VA = "0x181DF9770")]
|
||||
public RsaBlindedEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600B861 RID: 47201 RVA: 0x0028FC20 File Offset: 0x0028DE20
|
||||
[Token(Token = "0x600B861")]
|
||||
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
|
||||
public RsaBlindedEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001CE7 RID: 7399
|
||||
// (get) Token: 0x0600B862 RID: 47202 RVA: 0x0028FC3C File Offset: 0x0028DE3C
|
||||
[Token(Token = "0x17001CE7")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B862")]
|
||||
[Address(RVA = "0x1DF97D0", Offset = "0x1DF85D0", VA = "0x181DF97D0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B863 RID: 47203 RVA: 0x0028FC50 File Offset: 0x0028DE50
|
||||
[Token(Token = "0x600B863")]
|
||||
[Address(RVA = "0x1DF9250", Offset = "0x1DF8050", VA = "0x181DF9250", 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: 0x0600B864 RID: 47204 RVA: 0x0028FCC4 File Offset: 0x0028DEC4
|
||||
[Token(Token = "0x600B864")]
|
||||
[Address(RVA = "0x1DF91B0", Offset = "0x1DF7FB0", VA = "0x181DF91B0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B865 RID: 47205 RVA: 0x0028FCE0 File Offset: 0x0028DEE0
|
||||
[Token(Token = "0x600B865")]
|
||||
[Address(RVA = "0x1DF9200", Offset = "0x1DF8000", VA = "0x181DF9200", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B866 RID: 47206 RVA: 0x0028FCFC File Offset: 0x0028DEFC
|
||||
[Token(Token = "0x600B866")]
|
||||
[Address(RVA = "0x1DF9430", Offset = "0x1DF8230", VA = "0x181DF9430", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B866)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x040074E6 RID: 29926
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074E6")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040074E7 RID: 29927
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074E7")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040074E8 RID: 29928
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074E8")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+155
@@ -0,0 +1,155 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA4 RID: 7332
|
||||
[Token(Token = "0x2001CA4")]
|
||||
public class RsaBlindingEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600B867 RID: 47207 RVA: 0x0028FDC4 File Offset: 0x0028DFC4
|
||||
[Token(Token = "0x600B867")]
|
||||
[Address(RVA = "0x1DF9CC0", Offset = "0x1DF8AC0", VA = "0x181DF9CC0")]
|
||||
public RsaBlindingEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600B868 RID: 47208 RVA: 0x0028FDE4 File Offset: 0x0028DFE4
|
||||
[Token(Token = "0x600B868")]
|
||||
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
|
||||
public RsaBlindingEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001CE8 RID: 7400
|
||||
// (get) Token: 0x0600B869 RID: 47209 RVA: 0x0028FE00 File Offset: 0x0028E000
|
||||
[Token(Token = "0x17001CE8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B869")]
|
||||
[Address(RVA = "0x1DF9D20", Offset = "0x1DF8B20", VA = "0x181DF9D20", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B86A RID: 47210 RVA: 0x0028FE14 File Offset: 0x0028E014
|
||||
[Token(Token = "0x600B86A")]
|
||||
[Address(RVA = "0x1DF9920", Offset = "0x1DF8720", VA = "0x181DF9920", 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: 0x0600B86B RID: 47211 RVA: 0x0028FE68 File Offset: 0x0028E068
|
||||
[Token(Token = "0x600B86B")]
|
||||
[Address(RVA = "0x1DF9880", Offset = "0x1DF8680", VA = "0x181DF9880", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B86C RID: 47212 RVA: 0x0028FE84 File Offset: 0x0028E084
|
||||
[Token(Token = "0x600B86C")]
|
||||
[Address(RVA = "0x1DF98D0", Offset = "0x1DF86D0", VA = "0x181DF98D0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B86D RID: 47213 RVA: 0x0028FEA0 File Offset: 0x0028E0A0
|
||||
[Token(Token = "0x600B86D")]
|
||||
[Address(RVA = "0x1DF9B10", Offset = "0x1DF8910", VA = "0x181DF9B10", 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: 0x0600B86E RID: 47214 RVA: 0x0028FF28 File Offset: 0x0028E128
|
||||
[Token(Token = "0x600B86E")]
|
||||
[Address(RVA = "0x1DF9800", Offset = "0x1DF8600", VA = "0x181DF9800")]
|
||||
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: 0x0600B86F RID: 47215 RVA: 0x0028FF84 File Offset: 0x0028E184
|
||||
[Token(Token = "0x600B86F")]
|
||||
[Address(RVA = "0x1DF9C50", Offset = "0x1DF8A50", VA = "0x181DF9C50")]
|
||||
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: 0x040074E9 RID: 29929
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074E9")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040074EA RID: 29930
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074EA")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040074EB RID: 29931
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40074EB")]
|
||||
private BigInteger blindingFactor;
|
||||
|
||||
// Token: 0x040074EC RID: 29932
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40074EC")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA5 RID: 7333
|
||||
[Token(Token = "0x2001CA5")]
|
||||
public class RsaCoreEngine : IRsa
|
||||
{
|
||||
// Token: 0x0600B870 RID: 47216 RVA: 0x0028FFC4 File Offset: 0x0028E1C4
|
||||
[Token(Token = "0x600B870")]
|
||||
[Address(RVA = "0x1DF9D50", Offset = "0x1DF8B50", VA = "0x181DF9D50")]
|
||||
private void CheckInitialised()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B870)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B871 RID: 47217 RVA: 0x0028FFE8 File Offset: 0x0028E1E8
|
||||
[Token(Token = "0x600B871")]
|
||||
[Address(RVA = "0x1DFA170", Offset = "0x1DF8F70", VA = "0x181DFA170", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B871)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B872 RID: 47218 RVA: 0x00290040 File Offset: 0x0028E240
|
||||
[Token(Token = "0x600B872")]
|
||||
[Address(RVA = "0x1DFA050", Offset = "0x1DF8E50", VA = "0x181DFA050", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B872)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B873 RID: 47219 RVA: 0x0029007C File Offset: 0x0028E27C
|
||||
[Token(Token = "0x600B873")]
|
||||
[Address(RVA = "0x1DFA0E0", Offset = "0x1DF8EE0", VA = "0x181DFA0E0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B873)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B874 RID: 47220 RVA: 0x002900B8 File Offset: 0x0028E2B8
|
||||
[Token(Token = "0x600B874")]
|
||||
[Address(RVA = "0x1DF9DC0", Offset = "0x1DF8BC0", VA = "0x181DF9DC0", Slot = "13")]
|
||||
public virtual BigInteger ConvertInput(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B874)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B875 RID: 47221 RVA: 0x00290110 File Offset: 0x0028E310
|
||||
[Token(Token = "0x600B875")]
|
||||
[Address(RVA = "0x1DF9F50", Offset = "0x1DF8D50", VA = "0x181DF9F50", Slot = "14")]
|
||||
public virtual byte[] ConvertOutput(BigInteger result)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B875)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B876 RID: 47222 RVA: 0x00290160 File Offset: 0x0028E360
|
||||
[Token(Token = "0x600B876")]
|
||||
[Address(RVA = "0x1DFA370", Offset = "0x1DF9170", VA = "0x181DFA370", Slot = "15")]
|
||||
public virtual BigInteger ProcessBlock(BigInteger input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B876)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B877 RID: 47223 RVA: 0x002901C4 File Offset: 0x0028E3C4
|
||||
[Token(Token = "0x600B877")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public RsaCoreEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040074ED RID: 29933
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40074ED")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040074EE RID: 29934
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40074EE")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040074EF RID: 29935
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40074EF")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA7 RID: 7335
|
||||
[Token(Token = "0x2001CA7")]
|
||||
public class RsaEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600B893 RID: 47251 RVA: 0x00290FE8 File Offset: 0x0028F1E8
|
||||
[Token(Token = "0x600B893")]
|
||||
[Address(RVA = "0x1DFA780", Offset = "0x1DF9580", VA = "0x181DFA780")]
|
||||
public RsaEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600B894 RID: 47252 RVA: 0x00291008 File Offset: 0x0028F208
|
||||
[Token(Token = "0x600B894")]
|
||||
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
|
||||
public RsaEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001CEB RID: 7403
|
||||
// (get) Token: 0x0600B895 RID: 47253 RVA: 0x00291024 File Offset: 0x0028F224
|
||||
[Token(Token = "0x17001CEB")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B895")]
|
||||
[Address(RVA = "0x1DFA7E0", Offset = "0x1DF95E0", VA = "0x181DFA7E0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B896 RID: 47254 RVA: 0x00291038 File Offset: 0x0028F238
|
||||
[Token(Token = "0x600B896")]
|
||||
[Address(RVA = "0x1DFA650", Offset = "0x1DF9450", VA = "0x181DFA650", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
}
|
||||
|
||||
// Token: 0x0600B897 RID: 47255 RVA: 0x00291054 File Offset: 0x0028F254
|
||||
[Token(Token = "0x600B897")]
|
||||
[Address(RVA = "0x1DFA5B0", Offset = "0x1DF93B0", VA = "0x181DFA5B0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B898 RID: 47256 RVA: 0x00291070 File Offset: 0x0028F270
|
||||
[Token(Token = "0x600B898")]
|
||||
[Address(RVA = "0x1DFA600", Offset = "0x1DF9400", VA = "0x181DFA600", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B899 RID: 47257 RVA: 0x0029108C File Offset: 0x0028F28C
|
||||
[Token(Token = "0x600B899")]
|
||||
[Address(RVA = "0x1DFA6C0", Offset = "0x1DF94C0", VA = "0x181DFA6C0", 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: 0x04007505 RID: 29957
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007505")]
|
||||
private readonly IRsa core;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAA RID: 7338
|
||||
[Token(Token = "0x2001CAA")]
|
||||
public class SM2Engine
|
||||
{
|
||||
// Token: 0x0600B8AE RID: 47278 RVA: 0x00291468 File Offset: 0x0028F668
|
||||
[Token(Token = "0x600B8AE")]
|
||||
[Address(RVA = "0x1DFBA50", Offset = "0x1DFA850", VA = "0x181DFBA50")]
|
||||
public SM2Engine()
|
||||
{
|
||||
SM3Digest sm3Digest = new SM3Digest();
|
||||
base..ctor();
|
||||
this.mDigest = sm3Digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8AF RID: 47279 RVA: 0x00291488 File Offset: 0x0028F688
|
||||
[Token(Token = "0x600B8AF")]
|
||||
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
|
||||
public SM2Engine(IDigest digest)
|
||||
{
|
||||
this.mDigest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8B0 RID: 47280 RVA: 0x002914A4 File Offset: 0x0028F6A4
|
||||
[Token(Token = "0x600B8B0")]
|
||||
[Address(RVA = "0x1DFB2A0", Offset = "0x1DFA0A0", VA = "0x181DFB2A0", 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: 0x0600B8B1 RID: 47281 RVA: 0x00291540 File Offset: 0x0028F740
|
||||
[Token(Token = "0x600B8B1")]
|
||||
[Address(RVA = "0x1DFB9A0", Offset = "0x1DFA7A0", VA = "0x181DFB9A0", 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: 0x0600B8B2 RID: 47282 RVA: 0x0029156C File Offset: 0x0028F76C
|
||||
[Token(Token = "0x600B8B2")]
|
||||
[Address(RVA = "0x1DFA8A0", Offset = "0x1DF96A0", VA = "0x181DFA8A0", Slot = "6")]
|
||||
protected virtual ECMultiplier CreateBasePointMultiplier()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8B2)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8B3 RID: 47283 RVA: 0x00291580 File Offset: 0x0028F780
|
||||
[Token(Token = "0x600B8B3")]
|
||||
[Address(RVA = "0x1DFAD50", Offset = "0x1DF9B50", VA = "0x181DFAD50")]
|
||||
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: 0x0600B8B4 RID: 47284 RVA: 0x002916BC File Offset: 0x0028F8BC
|
||||
[Token(Token = "0x600B8B4")]
|
||||
[Address(RVA = "0x1DFA8F0", Offset = "0x1DF96F0", VA = "0x181DFA8F0")]
|
||||
private byte[] Decrypt(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8B4)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8B5 RID: 47285 RVA: 0x0029181C File Offset: 0x0028FA1C
|
||||
[Token(Token = "0x600B8B5")]
|
||||
[Address(RVA = "0x1DFB920", Offset = "0x1DFA720", VA = "0x181DFB920")]
|
||||
private bool NotEncrypted(byte[] encData, byte[] input, int inOff)
|
||||
{
|
||||
int num = 0;
|
||||
int length = encData.Length;
|
||||
if (num != length)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8B6 RID: 47286 RVA: 0x00291844 File Offset: 0x0028FA44
|
||||
[Token(Token = "0x600B8B6")]
|
||||
[Address(RVA = "0x1DFB560", Offset = "0x1DFA360", VA = "0x181DFB560")]
|
||||
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: 0x0600B8B7 RID: 47287 RVA: 0x002918E0 File Offset: 0x0028FAE0
|
||||
[Token(Token = "0x600B8B7")]
|
||||
[Address(RVA = "0x1DFB9D0", Offset = "0x1DFA7D0", VA = "0x181DFB9D0")]
|
||||
private void Xor(byte[] data, byte[] kdfOut, int dOff, int dRemaining)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8B8 RID: 47288 RVA: 0x002918FC File Offset: 0x0028FAFC
|
||||
[Token(Token = "0x600B8B8")]
|
||||
[Address(RVA = "0x1DFB860", Offset = "0x1DFA660", VA = "0x181DFB860")]
|
||||
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: 0x0600B8B9 RID: 47289 RVA: 0x00291950 File Offset: 0x0028FB50
|
||||
[Token(Token = "0x600B8B9")]
|
||||
[Address(RVA = "0x1DFA810", Offset = "0x1DF9610", VA = "0x181DFA810")]
|
||||
private void AddFieldElement(IDigest digest, ECFieldElement v)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400750E RID: 29966
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400750E")]
|
||||
private readonly IDigest mDigest;
|
||||
|
||||
// Token: 0x0400750F RID: 29967
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400750F")]
|
||||
private bool mForEncryption;
|
||||
|
||||
// Token: 0x04007510 RID: 29968
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007510")]
|
||||
private ECKeyParameters mECKey;
|
||||
|
||||
// Token: 0x04007511 RID: 29969
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007511")]
|
||||
private ECDomainParameters mECParams;
|
||||
|
||||
// Token: 0x04007512 RID: 29970
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007512")]
|
||||
private int mCurveLength;
|
||||
|
||||
// Token: 0x04007513 RID: 29971
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007513")]
|
||||
private SecureRandom mRandom;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAB RID: 7339
|
||||
[Token(Token = "0x2001CAB")]
|
||||
public class SM4Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B8BA RID: 47290 RVA: 0x00291964 File Offset: 0x0028FB64
|
||||
[Token(Token = "0x600B8BA")]
|
||||
[Address(RVA = "0x1DFCBE0", Offset = "0x1DFB9E0", VA = "0x181DFCBE0")]
|
||||
private static uint tau(uint A)
|
||||
{
|
||||
int length = SM4Engine.Sbox.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8BB RID: 47291 RVA: 0x00291984 File Offset: 0x0028FB84
|
||||
[Token(Token = "0x600B8BB")]
|
||||
[Address(RVA = "0x1DFC640", Offset = "0x1DFB440", VA = "0x181DFC640")]
|
||||
private static uint L_ap(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8BB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8BC RID: 47292 RVA: 0x002919A4 File Offset: 0x0028FBA4
|
||||
[Token(Token = "0x600B8BC")]
|
||||
[Address(RVA = "0x1DFC9A0", Offset = "0x1DFB7A0", VA = "0x181DFC9A0")]
|
||||
private uint T_ap(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8BC)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8BD RID: 47293 RVA: 0x002919CC File Offset: 0x0028FBCC
|
||||
[Token(Token = "0x600B8BD")]
|
||||
[Address(RVA = "0x1DFBAB0", Offset = "0x1DFA8B0", VA = "0x181DFBAB0")]
|
||||
private void ExpandKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
uint[] fk = SM4Engine.FK;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
uint[] fk2 = SM4Engine.FK;
|
||||
uint[] fk3 = SM4Engine.FK;
|
||||
uint[] fk4 = SM4Engine.FK;
|
||||
uint[] array = this.rk;
|
||||
if (!forEncryption)
|
||||
{
|
||||
uint num4 = SM4Engine.CK[0];
|
||||
uint num5 = this.T_ap(num4);
|
||||
array[15] = num5;
|
||||
uint[] array2 = this.rk;
|
||||
uint num6 = SM4Engine.CK[0];
|
||||
uint num7 = this.T_ap(num6);
|
||||
array2[15] = num7;
|
||||
uint[] array3 = this.rk;
|
||||
uint num8 = SM4Engine.CK[1];
|
||||
uint num9 = this.T_ap(num8);
|
||||
array3[14] = num9;
|
||||
uint[] array4 = this.rk;
|
||||
int length = array4.Length;
|
||||
uint num10 = SM4Engine.CK[1];
|
||||
uint num11 = this.T_ap(num10);
|
||||
array4[14] = num11;
|
||||
uint[] array5 = this.rk;
|
||||
int length2 = array5.Length;
|
||||
uint num12 = array5[this];
|
||||
uint[] ck = SM4Engine.CK;
|
||||
uint num14;
|
||||
uint num13 = this.T_ap(num14);
|
||||
array5[0] = num13;
|
||||
while (4UL <= (ulong)31L)
|
||||
{
|
||||
}
|
||||
return;
|
||||
}
|
||||
uint num15 = SM4Engine.CK[0];
|
||||
uint num16 = this.T_ap(num15);
|
||||
array[0] = num16;
|
||||
uint[] array6 = this.rk;
|
||||
uint num17 = SM4Engine.CK[0];
|
||||
uint num18 = this.T_ap(num17);
|
||||
array6[0] = num18;
|
||||
uint[] array7 = this.rk;
|
||||
int length3 = array7.Length;
|
||||
uint num19 = SM4Engine.CK[1];
|
||||
uint num20 = this.T_ap(num19);
|
||||
array7[1] = num20;
|
||||
uint[] array8 = this.rk;
|
||||
int length4 = array8.Length;
|
||||
uint num21 = SM4Engine.CK[1];
|
||||
uint num22 = this.T_ap(num21);
|
||||
array8[1] = num22;
|
||||
uint[] array9 = this.rk;
|
||||
int length5 = array9.Length;
|
||||
uint[] ck2 = SM4Engine.CK;
|
||||
uint num24;
|
||||
uint num23 = this.T_ap(num24);
|
||||
array9[0] = num23;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8BE RID: 47294 RVA: 0x00291BDC File Offset: 0x0028FDDC
|
||||
[Token(Token = "0x600B8BE")]
|
||||
[Address(RVA = "0x1DFC680", Offset = "0x1DFB480", VA = "0x181DFC680")]
|
||||
private static uint L(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8BE)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8BF RID: 47295 RVA: 0x00291C0C File Offset: 0x0028FE0C
|
||||
[Token(Token = "0x600B8BF")]
|
||||
[Address(RVA = "0x1DFCA20", Offset = "0x1DFB820", VA = "0x181DFCA20")]
|
||||
private static uint T(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8BF)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C0 RID: 47296 RVA: 0x00291C44 File Offset: 0x0028FE44
|
||||
[Token(Token = "0x600B8C0")]
|
||||
[Address(RVA = "0x1DFC4B0", Offset = "0x1DFB2B0", VA = "0x181DFC4B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8C0)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CEE RID: 7406
|
||||
// (get) Token: 0x0600B8C1 RID: 47297 RVA: 0x00291CB0 File Offset: 0x0028FEB0
|
||||
[Token(Token = "0x17001CEE")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B8C1")]
|
||||
[Address(RVA = "0x1DFCBB0", Offset = "0x1DFB9B0", VA = "0x181DFCBB0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SM4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CEF RID: 7407
|
||||
// (get) Token: 0x0600B8C2 RID: 47298 RVA: 0x00291CC4 File Offset: 0x0028FEC4
|
||||
[Token(Token = "0x17001CEF")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B8C2")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C3 RID: 47299 RVA: 0x00291CD4 File Offset: 0x0028FED4
|
||||
[Token(Token = "0x600B8C3")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C4 RID: 47300 RVA: 0x00291CE4 File Offset: 0x0028FEE4
|
||||
[Token(Token = "0x600B8C4")]
|
||||
[Address(RVA = "0x1DFC6F0", Offset = "0x1DFB4F0", VA = "0x181DFC6F0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8C4)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A4:
|
||||
stloc:InvalidOperationException(var_16_AE, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SM4 not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C5 RID: 47301 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B8C5")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C6 RID: 47302 RVA: 0x00291DA0 File Offset: 0x0028FFA0
|
||||
[Token(Token = "0x600B8C6")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public SM4Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8C7 RID: 47303 RVA: 0x00291DB4 File Offset: 0x0028FFB4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B8C7")]
|
||||
[Address(RVA = "0x1DFCAE0", Offset = "0x1DFB8E0", VA = "0x181DFCAE0")]
|
||||
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: 0x04007514 RID: 29972
|
||||
[Token(Token = "0x4007514")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x04007515 RID: 29973
|
||||
[Token(Token = "0x4007515")]
|
||||
private static readonly byte[] Sbox;
|
||||
|
||||
// Token: 0x04007516 RID: 29974
|
||||
[Token(Token = "0x4007516")]
|
||||
private static readonly uint[] CK;
|
||||
|
||||
// Token: 0x04007517 RID: 29975
|
||||
[Token(Token = "0x4007517")]
|
||||
private static readonly uint[] FK;
|
||||
|
||||
// Token: 0x04007518 RID: 29976
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007518")]
|
||||
private uint[] rk;
|
||||
}
|
||||
}
|
||||
+543
@@ -0,0 +1,543 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAC RID: 7340
|
||||
[Token(Token = "0x2001CAC")]
|
||||
public class Salsa20Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600B8C8 RID: 47304 RVA: 0x00291E10 File Offset: 0x00290010
|
||||
[Token(Token = "0x600B8C8")]
|
||||
[Address(RVA = "0x1DFD1E0", Offset = "0x1DFBFE0", VA = "0x181DFD1E0")]
|
||||
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: 0x0600B8C9 RID: 47305 RVA: 0x00291E7C File Offset: 0x0029007C
|
||||
[Token(Token = "0x600B8C9")]
|
||||
[Address(RVA = "0x1DFE3B0", Offset = "0x1DFD1B0", VA = "0x181DFE3B0")]
|
||||
public Salsa20Engine()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8C9)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8CA RID: 47306 RVA: 0x00291EE0 File Offset: 0x002900E0
|
||||
[Token(Token = "0x600B8CA")]
|
||||
[Address(RVA = "0x1DFE4C0", Offset = "0x1DFD2C0", VA = "0x181DFE4C0")]
|
||||
public Salsa20Engine(int rounds)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8CA)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8CB RID: 47307 RVA: 0x00291F3C File Offset: 0x0029013C
|
||||
[Token(Token = "0x600B8CB")]
|
||||
[Address(RVA = "0x1DFCE00", Offset = "0x1DFBC00", VA = "0x181DFCE00", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8CB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CF0 RID: 7408
|
||||
// (get) Token: 0x0600B8CC RID: 47308 RVA: 0x00291FA4 File Offset: 0x002901A4
|
||||
[Token(Token = "0x17001CF0")]
|
||||
protected virtual int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600B8CC")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CF1 RID: 7409
|
||||
// (get) Token: 0x0600B8CD RID: 47309 RVA: 0x00291FB4 File Offset: 0x002901B4
|
||||
[Token(Token = "0x17001CF1")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B8CD")]
|
||||
[Address(RVA = "0x1DFE580", Offset = "0x1DFD380", VA = "0x181DFE580", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.rounds;
|
||||
int num2 = this.rounds;
|
||||
return "Salsa20" + "/" + num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B8CE RID: 47310 RVA: 0x00291FE0 File Offset: 0x002901E0
|
||||
[Token(Token = "0x600B8CE")]
|
||||
[Address(RVA = "0x1DFD6A0", Offset = "0x1DFC4A0", VA = "0x181DFD6A0", Slot = "12")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8CE)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8CF RID: 47311 RVA: 0x0029203C File Offset: 0x0029023C
|
||||
[Token(Token = "0x600B8CF")]
|
||||
[Address(RVA = "0x1DFCD00", Offset = "0x1DFBB00", VA = "0x181DFCD00", Slot = "13")]
|
||||
protected virtual void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 8)
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D0 RID: 47312 RVA: 0x00292064 File Offset: 0x00290264
|
||||
[Token(Token = "0x600B8D0")]
|
||||
[Address(RVA = "0x1DFD3D0", Offset = "0x1DFC1D0", VA = "0x181DFD3D0", Slot = "14")]
|
||||
public virtual void ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8D0)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D1 RID: 47313 RVA: 0x002920F4 File Offset: 0x002902F4
|
||||
[Token(Token = "0x600B8D1")]
|
||||
[Address(RVA = "0x1DFD680", Offset = "0x1DFC480", VA = "0x181DFD680", 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: 0x0600B8D2 RID: 47314 RVA: 0x00292120 File Offset: 0x00290320
|
||||
[Token(Token = "0x600B8D2")]
|
||||
[Address(RVA = "0x1DFD610", Offset = "0x1DFC410", VA = "0x181DFD610", Slot = "16")]
|
||||
protected virtual void ResetCounter()
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
int num = 0;
|
||||
array[4] = (uint)num;
|
||||
array[4] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D3 RID: 47315 RVA: 0x0029214C File Offset: 0x0029034C
|
||||
[Token(Token = "0x600B8D3")]
|
||||
[Address(RVA = "0x1DFDFF0", Offset = "0x1DFCDF0", VA = "0x181DFDFF0", 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: 0x0600B8D4 RID: 47316 RVA: 0x00292220 File Offset: 0x00290420
|
||||
[Token(Token = "0x600B8D4")]
|
||||
[Address(RVA = "0x1DFCD60", Offset = "0x1DFBB60", VA = "0x181DFCD60", 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: 0x0600B8D5 RID: 47317 RVA: 0x00292260 File Offset: 0x00290460
|
||||
[Token(Token = "0x600B8D5")]
|
||||
[Address(RVA = "0x1DFD790", Offset = "0x1DFC590", VA = "0x181DFD790")]
|
||||
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: 0x0600B8D6 RID: 47318 RVA: 0x0029250C File Offset: 0x0029070C
|
||||
[Token(Token = "0x600B8D6")]
|
||||
[Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")]
|
||||
internal static uint R(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D7 RID: 47319 RVA: 0x0029251C File Offset: 0x0029071C
|
||||
[Token(Token = "0x600B8D7")]
|
||||
[Address(RVA = "0x1DFD670", Offset = "0x1DFC470", VA = "0x181DFD670")]
|
||||
private void ResetLimitCounter()
|
||||
{
|
||||
int num = 0;
|
||||
this.cW0 = (uint)num;
|
||||
this.cW2 = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D8 RID: 47320 RVA: 0x0029253C File Offset: 0x0029073C
|
||||
[Token(Token = "0x600B8D8")]
|
||||
[Address(RVA = "0x1DFD1B0", Offset = "0x1DFBFB0", VA = "0x181DFD1B0")]
|
||||
private bool LimitExceeded()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8D8)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8D9 RID: 47321 RVA: 0x00292584 File Offset: 0x00290784
|
||||
[Token(Token = "0x600B8D9")]
|
||||
[Address(RVA = "0x1DFD180", Offset = "0x1DFBF80", VA = "0x181DFD180")]
|
||||
private bool LimitExceeded(uint len)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8D9)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8DA RID: 47322 RVA: 0x002925C0 File Offset: 0x002907C0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B8DA")]
|
||||
[Address(RVA = "0x1DFE300", Offset = "0x1DFD100", VA = "0x181DFE300")]
|
||||
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: 0x04007519 RID: 29977
|
||||
[Token(Token = "0x4007519")]
|
||||
public static readonly int DEFAULT_ROUNDS;
|
||||
|
||||
// Token: 0x0400751A RID: 29978
|
||||
[Token(Token = "0x400751A")]
|
||||
private const int StateSize = 16;
|
||||
|
||||
// Token: 0x0400751B RID: 29979
|
||||
[Token(Token = "0x400751B")]
|
||||
private static readonly uint[] TAU_SIGMA;
|
||||
|
||||
// Token: 0x0400751C RID: 29980
|
||||
[Token(Token = "0x400751C")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] sigma;
|
||||
|
||||
// Token: 0x0400751D RID: 29981
|
||||
[Token(Token = "0x400751D")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] tau;
|
||||
|
||||
// Token: 0x0400751E RID: 29982
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400751E")]
|
||||
protected int rounds;
|
||||
|
||||
// Token: 0x0400751F RID: 29983
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x400751F")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x04007520 RID: 29984
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007520")]
|
||||
internal uint[] engineState;
|
||||
|
||||
// Token: 0x04007521 RID: 29985
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007521")]
|
||||
internal uint[] x;
|
||||
|
||||
// Token: 0x04007522 RID: 29986
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007522")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x04007523 RID: 29987
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007523")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007524 RID: 29988
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x4007524")]
|
||||
private uint cW0;
|
||||
|
||||
// Token: 0x04007525 RID: 29989
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007525")]
|
||||
private uint cW1;
|
||||
|
||||
// Token: 0x04007526 RID: 29990
|
||||
[FieldOffset(Offset = "0x3C")]
|
||||
[Token(Token = "0x4007526")]
|
||||
private uint cW2;
|
||||
}
|
||||
}
|
||||
+311
@@ -0,0 +1,311 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA8 RID: 7336
|
||||
[Token(Token = "0x2001CA8")]
|
||||
public class SeedEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B89A RID: 47258 RVA: 0x002910B4 File Offset: 0x0028F2B4
|
||||
[Token(Token = "0x600B89A")]
|
||||
[Address(RVA = "0x1DFE830", Offset = "0x1DFD630", VA = "0x181DFE830", 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: 0x17001CEC RID: 7404
|
||||
// (get) Token: 0x0600B89B RID: 47259 RVA: 0x002910EC File Offset: 0x0028F2EC
|
||||
[Token(Token = "0x17001CEC")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B89B")]
|
||||
[Address(RVA = "0x1DFF0D0", Offset = "0x1DFDED0", VA = "0x181DFF0D0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SEED";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CED RID: 7405
|
||||
// (get) Token: 0x0600B89C RID: 47260 RVA: 0x00291100 File Offset: 0x0028F300
|
||||
[Token(Token = "0x17001CED")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B89C")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B89D RID: 47261 RVA: 0x00291110 File Offset: 0x0028F310
|
||||
[Token(Token = "0x600B89D")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B89E RID: 47262 RVA: 0x00291120 File Offset: 0x0028F320
|
||||
[Token(Token = "0x600B89E")]
|
||||
[Address(RVA = "0x1DFE930", Offset = "0x1DFD730", VA = "0x181DFE930", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBuf, int inOff, byte[] outBuf, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B89E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B89F RID: 47263 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B89F")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A0 RID: 47264 RVA: 0x002911EC File Offset: 0x0028F3EC
|
||||
[Token(Token = "0x600B8A0")]
|
||||
[Address(RVA = "0x1DFEE00", Offset = "0x1DFDC00", VA = "0x181DFEE00")]
|
||||
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: 0x0600B8A1 RID: 47265 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B8A1")]
|
||||
[Address(RVA = "0x7A2180", Offset = "0x7A0F80", VA = "0x1807A2180")]
|
||||
private int extractW1(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A2 RID: 47266 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B8A2")]
|
||||
[Address(RVA = "0x1DFF0C0", Offset = "0x1DFDEC0", VA = "0x181DFF0C0")]
|
||||
private int extractW0(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A3 RID: 47267 RVA: 0x00291270 File Offset: 0x0028F470
|
||||
[Token(Token = "0x600B8A3")]
|
||||
[Address(RVA = "0x1DFF210", Offset = "0x1DFE010", VA = "0x181DFF210")]
|
||||
private long rotateLeft8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A4 RID: 47268 RVA: 0x00291280 File Offset: 0x0028F480
|
||||
[Token(Token = "0x600B8A4")]
|
||||
[Address(RVA = "0x1DFF220", Offset = "0x1DFE020", VA = "0x181DFF220")]
|
||||
private long rotateRight8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A5 RID: 47269 RVA: 0x00291290 File Offset: 0x0028F490
|
||||
[Token(Token = "0x600B8A5")]
|
||||
[Address(RVA = "0x1DFEDA0", Offset = "0x1DFDBA0", VA = "0x181DFEDA0")]
|
||||
private long bytesToLong(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
while (srcOff <= 7)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A6 RID: 47270 RVA: 0x002912AC File Offset: 0x0028F4AC
|
||||
[Token(Token = "0x600B8A6")]
|
||||
[Address(RVA = "0x1DFF100", Offset = "0x1DFDF00", VA = "0x181DFF100")]
|
||||
private void longToBytes(byte[] dest, int destOff, long value)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A7 RID: 47271 RVA: 0x002912C0 File Offset: 0x0028F4C0
|
||||
[Token(Token = "0x600B8A7")]
|
||||
[Address(RVA = "0x1DFE710", Offset = "0x1DFD510", VA = "0x181DFE710")]
|
||||
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: 0x0600B8A8 RID: 47272 RVA: 0x002912F0 File Offset: 0x0028F4F0
|
||||
[Token(Token = "0x600B8A8")]
|
||||
[Address(RVA = "0x1DFE640", Offset = "0x1DFD440", VA = "0x181DFE640")]
|
||||
private long F(int ki0, int ki1, long r)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8A8)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8A9 RID: 47273 RVA: 0x00291334 File Offset: 0x0028F534
|
||||
[Token(Token = "0x600B8A9")]
|
||||
[Address(RVA = "0x1DFF160", Offset = "0x1DFDF60", VA = "0x181DFF160")]
|
||||
private int phaseCalc1(int r0, int ki0, int r1, int ki1)
|
||||
{
|
||||
int num = this.G(r0);
|
||||
return this.G(r0);
|
||||
}
|
||||
|
||||
// Token: 0x0600B8AA RID: 47274 RVA: 0x00291350 File Offset: 0x0028F550
|
||||
[Token(Token = "0x600B8AA")]
|
||||
[Address(RVA = "0x1DFF1A0", Offset = "0x1DFDFA0", VA = "0x181DFF1A0")]
|
||||
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: 0x0600B8AB RID: 47275 RVA: 0x0029137C File Offset: 0x0028F57C
|
||||
[Token(Token = "0x600B8AB")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public SeedEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8AC RID: 47276 RVA: 0x00291390 File Offset: 0x0028F590
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B8AC")]
|
||||
[Address(RVA = "0x1DFEC60", Offset = "0x1DFDA60", VA = "0x181DFEC60")]
|
||||
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: 0x04007506 RID: 29958
|
||||
[Token(Token = "0x4007506")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x04007507 RID: 29959
|
||||
[Token(Token = "0x4007507")]
|
||||
private static readonly uint[] SS0;
|
||||
|
||||
// Token: 0x04007508 RID: 29960
|
||||
[Token(Token = "0x4007508")]
|
||||
private static readonly uint[] SS1;
|
||||
|
||||
// Token: 0x04007509 RID: 29961
|
||||
[Token(Token = "0x4007509")]
|
||||
private static readonly uint[] SS2;
|
||||
|
||||
// Token: 0x0400750A RID: 29962
|
||||
[Token(Token = "0x400750A")]
|
||||
private static readonly uint[] SS3;
|
||||
|
||||
// Token: 0x0400750B RID: 29963
|
||||
[Token(Token = "0x400750B")]
|
||||
private static readonly uint[] KC;
|
||||
|
||||
// Token: 0x0400750C RID: 29964
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400750C")]
|
||||
private int[] wKey;
|
||||
|
||||
// Token: 0x0400750D RID: 29965
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400750D")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CA9 RID: 7337
|
||||
[Token(Token = "0x2001CA9")]
|
||||
public class SeedWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600B8AD RID: 47277 RVA: 0x0029142C File Offset: 0x0028F62C
|
||||
[Token(Token = "0x600B8AD")]
|
||||
[Address(RVA = "0x1DFF230", Offset = "0x1DFE030", VA = "0x181DFF230")]
|
||||
public SeedWrapEngine()
|
||||
{
|
||||
SeedEngine seedEngine;
|
||||
seedEngine.Reset();
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.5DBC1A420B61F594A834C83E3DDC229C8AB77FDC).FieldHandle);
|
||||
this.iv = array;
|
||||
base..ctor();
|
||||
this.engine = seedEngine;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1133
@@ -0,0 +1,1133 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAD RID: 7341
|
||||
[Token(Token = "0x2001CAD")]
|
||||
public sealed class SerpentEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x0600B8DB RID: 47323 RVA: 0x00292608 File Offset: 0x00290808
|
||||
[Token(Token = "0x600B8DB")]
|
||||
[Address(RVA = "0x1E04710", Offset = "0x1E03510", VA = "0x181E04710", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8DB)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8DC RID: 47324 RVA: 0x00293334 File Offset: 0x00291534
|
||||
[Token(Token = "0x600B8DC")]
|
||||
[Address(RVA = "0x1E02490", Offset = "0x1E01290", VA = "0x181E02490", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8DC)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8DD RID: 47325 RVA: 0x00293AE4 File Offset: 0x00291CE4
|
||||
[Token(Token = "0x600B8DD")]
|
||||
[Address(RVA = "0x1DFFFA0", Offset = "0x1DFEDA0", VA = "0x181DFFFA0", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8DD)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8DE RID: 47326 RVA: 0x00294794 File Offset: 0x00292994
|
||||
[Token(Token = "0x600B8DE")]
|
||||
[Address(RVA = "0x1E07600", Offset = "0x1E06400", VA = "0x181E07600")]
|
||||
public SerpentEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+389
@@ -0,0 +1,389 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAE RID: 7342
|
||||
[Token(Token = "0x2001CAE")]
|
||||
public abstract class SerpentEngineBase : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B8DF RID: 47327 RVA: 0x002947A8 File Offset: 0x002929A8
|
||||
[Token(Token = "0x600B8DF")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
protected SerpentEngineBase()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E0 RID: 47328 RVA: 0x002947BC File Offset: 0x002929BC
|
||||
[Token(Token = "0x600B8E0")]
|
||||
[Address(RVA = "0x1DFF6A0", Offset = "0x1DFE4A0", VA = "0x181DFF6A0", Slot = "10")]
|
||||
public virtual void Init(bool encrypting, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8E0)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CF2 RID: 7410
|
||||
// (get) Token: 0x0600B8E1 RID: 47329 RVA: 0x00294800 File Offset: 0x00292A00
|
||||
[Token(Token = "0x17001CF2")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B8E1")]
|
||||
[Address(RVA = "0x1DFFF70", Offset = "0x1DFED70", VA = "0x181DFFF70", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Serpent";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CF3 RID: 7411
|
||||
// (get) Token: 0x0600B8E2 RID: 47330 RVA: 0x00294814 File Offset: 0x00292A14
|
||||
[Token(Token = "0x17001CF3")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B8E2")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E3 RID: 47331 RVA: 0x00294824 File Offset: 0x00292A24
|
||||
[Token(Token = "0x600B8E3")]
|
||||
[Address(RVA = "0x1DFF2E0", Offset = "0x1DFE0E0", VA = "0x181DFF2E0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return SerpentEngineBase.BlockSize;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E4 RID: 47332 RVA: 0x00294838 File Offset: 0x00292A38
|
||||
[Token(Token = "0x600B8E4")]
|
||||
[Address(RVA = "0x1DFFA40", Offset = "0x1DFE840", VA = "0x181DFFA40", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8E4)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E5 RID: 47333 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B8E5")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E6 RID: 47334 RVA: 0x00294884 File Offset: 0x00292A84
|
||||
[Token(Token = "0x600B8E6")]
|
||||
[Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")]
|
||||
protected static int RotateLeft(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E7 RID: 47335 RVA: 0x00294894 File Offset: 0x00292A94
|
||||
[Token(Token = "0x600B8E7")]
|
||||
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
|
||||
private static int RotateRight(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E8 RID: 47336 RVA: 0x002948A4 File Offset: 0x00292AA4
|
||||
[Token(Token = "0x600B8E8")]
|
||||
[Address(RVA = "0x1DFFBF0", Offset = "0x1DFE9F0", VA = "0x181DFFBF0")]
|
||||
protected void Sb0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = c;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8E9 RID: 47337 RVA: 0x002948D0 File Offset: 0x00292AD0
|
||||
[Token(Token = "0x600B8E9")]
|
||||
[Address(RVA = "0x1DFF340", Offset = "0x1DFE140", VA = "0x181DFF340")]
|
||||
protected void Ib0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8EA RID: 47338 RVA: 0x002948FC File Offset: 0x00292AFC
|
||||
[Token(Token = "0x600B8EA")]
|
||||
[Address(RVA = "0x1DFFC50", Offset = "0x1DFEA50", VA = "0x181DFFC50")]
|
||||
protected void Sb1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8EB RID: 47339 RVA: 0x00294928 File Offset: 0x00292B28
|
||||
[Token(Token = "0x600B8EB")]
|
||||
[Address(RVA = "0x1DFF3A0", Offset = "0x1DFE1A0", VA = "0x181DFF3A0")]
|
||||
protected void Ib1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = b;
|
||||
this.X2 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8EC RID: 47340 RVA: 0x00294954 File Offset: 0x00292B54
|
||||
[Token(Token = "0x600B8EC")]
|
||||
[Address(RVA = "0x1DFFCB0", Offset = "0x1DFEAB0", VA = "0x181DFFCB0")]
|
||||
protected void Sb2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8ED RID: 47341 RVA: 0x00294980 File Offset: 0x00292B80
|
||||
[Token(Token = "0x600B8ED")]
|
||||
[Address(RVA = "0x1DFF400", Offset = "0x1DFE200", VA = "0x181DFF400")]
|
||||
protected void Ib2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
this.X2 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8EE RID: 47342 RVA: 0x002949AC File Offset: 0x00292BAC
|
||||
[Token(Token = "0x600B8EE")]
|
||||
[Address(RVA = "0x1DFFD30", Offset = "0x1DFEB30", VA = "0x181DFFD30")]
|
||||
protected void Sb3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8EF RID: 47343 RVA: 0x002949D8 File Offset: 0x00292BD8
|
||||
[Token(Token = "0x600B8EF")]
|
||||
[Address(RVA = "0x1DFF470", Offset = "0x1DFE270", VA = "0x181DFF470")]
|
||||
protected void Ib3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X2 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F0 RID: 47344 RVA: 0x00294A04 File Offset: 0x00292C04
|
||||
[Token(Token = "0x600B8F0")]
|
||||
[Address(RVA = "0x1DFFDB0", Offset = "0x1DFEBB0", VA = "0x181DFFDB0")]
|
||||
protected void Sb4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X0 = b;
|
||||
this.X2 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F1 RID: 47345 RVA: 0x00294A30 File Offset: 0x00292C30
|
||||
[Token(Token = "0x600B8F1")]
|
||||
[Address(RVA = "0x1DFF4D0", Offset = "0x1DFE2D0", VA = "0x181DFF4D0")]
|
||||
protected void Ib4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F2 RID: 47346 RVA: 0x00294A5C File Offset: 0x00292C5C
|
||||
[Token(Token = "0x600B8F2")]
|
||||
[Address(RVA = "0x1DFFE10", Offset = "0x1DFEC10", VA = "0x181DFFE10")]
|
||||
protected void Sb5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F3 RID: 47347 RVA: 0x00294A88 File Offset: 0x00292C88
|
||||
[Token(Token = "0x600B8F3")]
|
||||
[Address(RVA = "0x1DFF530", Offset = "0x1DFE330", VA = "0x181DFF530")]
|
||||
protected void Ib5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F4 RID: 47348 RVA: 0x00294AB4 File Offset: 0x00292CB4
|
||||
[Token(Token = "0x600B8F4")]
|
||||
[Address(RVA = "0x1DFFE70", Offset = "0x1DFEC70", VA = "0x181DFFE70")]
|
||||
protected void Sb6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F5 RID: 47349 RVA: 0x00294AE0 File Offset: 0x00292CE0
|
||||
[Token(Token = "0x600B8F5")]
|
||||
[Address(RVA = "0x1DFF5B0", Offset = "0x1DFE3B0", VA = "0x181DFF5B0")]
|
||||
protected void Ib6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F6 RID: 47350 RVA: 0x00294B0C File Offset: 0x00292D0C
|
||||
[Token(Token = "0x600B8F6")]
|
||||
[Address(RVA = "0x1DFFEC0", Offset = "0x1DFECC0", VA = "0x181DFFEC0")]
|
||||
protected void Sb7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = b;
|
||||
this.X3 = c;
|
||||
this.X2 = c;
|
||||
this.X0 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F7 RID: 47351 RVA: 0x00294B38 File Offset: 0x00292D38
|
||||
[Token(Token = "0x600B8F7")]
|
||||
[Address(RVA = "0x1DFF620", Offset = "0x1DFE420", VA = "0x181DFF620")]
|
||||
protected void Ib7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X1 = 0;
|
||||
this.X0 = 0;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F8 RID: 47352 RVA: 0x00294B64 File Offset: 0x00292D64
|
||||
[Token(Token = "0x600B8F8")]
|
||||
[Address(RVA = "0x1DFF960", Offset = "0x1DFE760", VA = "0x181DFF960")]
|
||||
protected void LT()
|
||||
{
|
||||
int num = this.X1;
|
||||
num += num;
|
||||
this.X1 = num;
|
||||
this.X3 = num;
|
||||
this.X0 = num;
|
||||
this.X2 = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8F9 RID: 47353 RVA: 0x00294B98 File Offset: 0x00292D98
|
||||
[Token(Token = "0x600B8F9")]
|
||||
[Address(RVA = "0x1DFF880", Offset = "0x1DFE680", VA = "0x181DFF880")]
|
||||
protected void InverseLT()
|
||||
{
|
||||
int x = this.X3;
|
||||
int x2 = this.X0;
|
||||
this.X3 = x;
|
||||
this.X1 = x2;
|
||||
this.X2 = x2;
|
||||
this.X0 = x2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B8FA RID: 47354
|
||||
[Token(Token = "0x600B8FA")]
|
||||
[Address(Slot = "15")]
|
||||
protected abstract int[] MakeWorkingKey(byte[] key);
|
||||
|
||||
// Token: 0x0600B8FB RID: 47355
|
||||
[Token(Token = "0x600B8FB")]
|
||||
[Address(Slot = "16")]
|
||||
protected abstract void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x0600B8FC RID: 47356
|
||||
[Token(Token = "0x600B8FC")]
|
||||
[Address(Slot = "17")]
|
||||
protected abstract void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x04007527 RID: 29991
|
||||
[Token(Token = "0x4007527")]
|
||||
protected static readonly int BlockSize;
|
||||
|
||||
// Token: 0x04007528 RID: 29992
|
||||
[Token(Token = "0x4007528")]
|
||||
internal const int ROUNDS = 32;
|
||||
|
||||
// Token: 0x04007529 RID: 29993
|
||||
[Token(Token = "0x4007529")]
|
||||
internal const int PHI = -1640531527;
|
||||
|
||||
// Token: 0x0400752A RID: 29994
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400752A")]
|
||||
protected bool encrypting;
|
||||
|
||||
// Token: 0x0400752B RID: 29995
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400752B")]
|
||||
protected int[] wKey;
|
||||
|
||||
// Token: 0x0400752C RID: 29996
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400752C")]
|
||||
protected int X0;
|
||||
|
||||
// Token: 0x0400752D RID: 29997
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x400752D")]
|
||||
protected int X1;
|
||||
|
||||
// Token: 0x0400752E RID: 29998
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400752E")]
|
||||
protected int X2;
|
||||
|
||||
// Token: 0x0400752F RID: 29999
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x400752F")]
|
||||
protected int X3;
|
||||
}
|
||||
}
|
||||
+259
@@ -0,0 +1,259 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CAF RID: 7343
|
||||
[Token(Token = "0x2001CAF")]
|
||||
public class SkipjackEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B8FE RID: 47358 RVA: 0x00294BE0 File Offset: 0x00292DE0
|
||||
[Token(Token = "0x600B8FE")]
|
||||
[Address(RVA = "0x1E08120", Offset = "0x1E06F20", VA = "0x181E08120", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B8FE)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CF4 RID: 7412
|
||||
// (get) Token: 0x0600B8FF RID: 47359 RVA: 0x00294D0C File Offset: 0x00292F0C
|
||||
[Token(Token = "0x17001CF4")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B8FF")]
|
||||
[Address(RVA = "0x1E08660", Offset = "0x1E07460", VA = "0x181E08660", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SKIPJACK";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CF5 RID: 7413
|
||||
// (get) Token: 0x0600B900 RID: 47360 RVA: 0x00294D20 File Offset: 0x00292F20
|
||||
[Token(Token = "0x17001CF5")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B900")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B901 RID: 47361 RVA: 0x00294D30 File Offset: 0x00292F30
|
||||
[Token(Token = "0x600B901")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B902 RID: 47362 RVA: 0x00294D40 File Offset: 0x00292F40
|
||||
[Token(Token = "0x600B902")]
|
||||
[Address(RVA = "0x1E084D0", Offset = "0x1E072D0", VA = "0x181E084D0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B902)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B903 RID: 47363 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B903")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B904 RID: 47364 RVA: 0x00294D84 File Offset: 0x00292F84
|
||||
[Token(Token = "0x600B904")]
|
||||
[Address(RVA = "0x1E07D10", Offset = "0x1E06B10", VA = "0x181E07D10")]
|
||||
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: 0x0600B905 RID: 47365 RVA: 0x00294DE4 File Offset: 0x00292FE4
|
||||
[Token(Token = "0x600B905")]
|
||||
[Address(RVA = "0x1E079C0", Offset = "0x1E067C0", VA = "0x181E079C0", 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: 0x0600B906 RID: 47366 RVA: 0x00294E58 File Offset: 0x00293058
|
||||
[Token(Token = "0x600B906")]
|
||||
[Address(RVA = "0x1E07F10", Offset = "0x1E06D10", VA = "0x181E07F10")]
|
||||
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: 0x0600B907 RID: 47367 RVA: 0x00294EB0 File Offset: 0x002930B0
|
||||
[Token(Token = "0x600B907")]
|
||||
[Address(RVA = "0x1E07660", Offset = "0x1E06460", VA = "0x181E07660", 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: 0x0600B908 RID: 47368 RVA: 0x00294F20 File Offset: 0x00293120
|
||||
[Token(Token = "0x600B908")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public SkipjackEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600B909 RID: 47369 RVA: 0x00294F34 File Offset: 0x00293134
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B909")]
|
||||
[Address(RVA = "0x1E08600", Offset = "0x1E07400", VA = "0x181E08600")]
|
||||
static SkipjackEngine()
|
||||
{
|
||||
short[] array = new short[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.21A3E0CD2847E2F12EEE37749A9E206494A55100).FieldHandle);
|
||||
SkipjackEngine.ftable = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007530 RID: 30000
|
||||
[Token(Token = "0x4007530")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04007531 RID: 30001
|
||||
[Token(Token = "0x4007531")]
|
||||
private static readonly short[] ftable;
|
||||
|
||||
// Token: 0x04007532 RID: 30002
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007532")]
|
||||
private int[] key0;
|
||||
|
||||
// Token: 0x04007533 RID: 30003
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007533")]
|
||||
private int[] key1;
|
||||
|
||||
// Token: 0x04007534 RID: 30004
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007534")]
|
||||
private int[] key2;
|
||||
|
||||
// Token: 0x04007535 RID: 30005
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007535")]
|
||||
private int[] key3;
|
||||
|
||||
// Token: 0x04007536 RID: 30006
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007536")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,252 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB0 RID: 7344
|
||||
[Token(Token = "0x2001CB0")]
|
||||
public class TeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B90A RID: 47370 RVA: 0x00294F60 File Offset: 0x00293160
|
||||
[Token(Token = "0x600B90A")]
|
||||
[Address(RVA = "0x14B9990", Offset = "0x14B8790", VA = "0x1814B9990")]
|
||||
public TeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
this._initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x17001CF6 RID: 7414
|
||||
// (get) Token: 0x0600B90B RID: 47371 RVA: 0x00294F7C File Offset: 0x0029317C
|
||||
[Token(Token = "0x17001CF6")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B90B")]
|
||||
[Address(RVA = "0x1E08C10", Offset = "0x1E07A10", VA = "0x181E08C10", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "TEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CF7 RID: 7415
|
||||
// (get) Token: 0x0600B90C RID: 47372 RVA: 0x00294F90 File Offset: 0x00293190
|
||||
[Token(Token = "0x17001CF7")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B90C")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B90D RID: 47373 RVA: 0x00294FA0 File Offset: 0x002931A0
|
||||
[Token(Token = "0x600B90D")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B90E RID: 47374 RVA: 0x00294FB0 File Offset: 0x002931B0
|
||||
[Token(Token = "0x600B90E")]
|
||||
[Address(RVA = "0x1E08690", Offset = "0x1E07490", VA = "0x181E08690", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B90E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_66:
|
||||
stloc:ArgumentException(var_9_77, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_8))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B90F RID: 47375 RVA: 0x00295038 File Offset: 0x00293238
|
||||
[Token(Token = "0x600B90F")]
|
||||
[Address(RVA = "0x1E08830", Offset = "0x1E07630", VA = "0x181E08830", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B90F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_AE:
|
||||
stloc:InvalidOperationException(var_13_B5, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_12)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B910 RID: 47376 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B910")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B911 RID: 47377 RVA: 0x002950FC File Offset: 0x002932FC
|
||||
[Token(Token = "0x600B911")]
|
||||
[Address(RVA = "0x1E08C40", Offset = "0x1E07A40", VA = "0x181E08C40")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
this._a = num2;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
this._b = num3;
|
||||
uint num4 = Pack.BE_To_UInt32(key, 8);
|
||||
this._c = num4;
|
||||
uint num5 = Pack.BE_To_UInt32(key, 12);
|
||||
this._d = num5;
|
||||
}
|
||||
|
||||
// Token: 0x0600B912 RID: 47378 RVA: 0x0029514C File Offset: 0x0029334C
|
||||
[Token(Token = "0x600B912")]
|
||||
[Address(RVA = "0x1E08B20", Offset = "0x1E07920", VA = "0x181E08B20")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B912)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::encryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_31, add:uint32(ldloc:uint32(var_1_0F), ldloc:uint32(var_2_16)))
|
||||
stloc:uint32(var_1_35, add:uint32(ldloc:uint32(var_1_31), ldloc:uint32(var_3_1D)))
|
||||
stloc:uint32(var_0_39, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_1_35)))
|
||||
stloc:uint32(var_1_3D, ldloc:uint32(var_0_39))
|
||||
stloc:uint32(var_1_42, add:uint32(ldloc:uint32(var_1_3D), ldloc:uint32(var_4_24)))
|
||||
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_42), ldloc:uint32(var_5_2C)))
|
||||
stloc:uint32(var_1_4B, add:uint32(ldloc:uint32(var_1_47), ldloc:uint32(var_1_47)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B913 RID: 47379 RVA: 0x002951A8 File Offset: 0x002933A8
|
||||
[Token(Token = "0x600B913")]
|
||||
[Address(RVA = "0x1E08A30", Offset = "0x1E07830", VA = "0x181E08A30")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B913)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::decryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_2F, ldloc:uint32(var_0_07))
|
||||
stloc:uint32(var_0_33, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_2_16)))
|
||||
stloc:uint32(var_1_37, add:uint32(ldloc:uint32(var_1_2F), ldloc:uint32(var_3_1D)))
|
||||
stloc:uint32(var_1_3B, sub:uint32(ldloc:uint32(var_1_37), ldloc:uint32(var_0_33)))
|
||||
stloc:uint32(var_0_3D, ldloc:uint32(var_1_3B))
|
||||
stloc:uint32(var_0_42, add:uint32(ldloc:uint32(var_0_3D), ldloc:uint32(var_4_24)))
|
||||
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_3B), ldloc:uint32(var_5_2C)))
|
||||
stloc:uint32(var_0_4B, sub:uint32(ldloc:uint32(var_0_42), ldloc:uint32(var_0_42)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x04007537 RID: 30007
|
||||
[Token(Token = "0x4007537")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x04007538 RID: 30008
|
||||
[Token(Token = "0x4007538")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x04007539 RID: 30009
|
||||
[Token(Token = "0x4007539")]
|
||||
private const uint delta = 2654435769U;
|
||||
|
||||
// Token: 0x0400753A RID: 30010
|
||||
[Token(Token = "0x400753A")]
|
||||
private const uint d_sum = 3337565984U;
|
||||
|
||||
// Token: 0x0400753B RID: 30011
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400753B")]
|
||||
private uint _a;
|
||||
|
||||
// Token: 0x0400753C RID: 30012
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x400753C")]
|
||||
private uint _b;
|
||||
|
||||
// Token: 0x0400753D RID: 30013
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400753D")]
|
||||
private uint _c;
|
||||
|
||||
// Token: 0x0400753E RID: 30014
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x400753E")]
|
||||
private uint _d;
|
||||
|
||||
// Token: 0x0400753F RID: 30015
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400753F")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x04007540 RID: 30016
|
||||
[FieldOffset(Offset = "0x21")]
|
||||
[Token(Token = "0x4007540")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+1766
@@ -0,0 +1,1766 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB1 RID: 7345
|
||||
[Token(Token = "0x2001CB1")]
|
||||
public class ThreefishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B914 RID: 47380 RVA: 0x00295204 File Offset: 0x00293404
|
||||
[Token(Token = "0x600B914")]
|
||||
[Address(RVA = "0x1E0C9D0", Offset = "0x1E0B7D0", VA = "0x181E0C9D0")]
|
||||
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: 0x0600B915 RID: 47381 RVA: 0x002952C8 File Offset: 0x002934C8
|
||||
[Token(Token = "0x600B915")]
|
||||
[Address(RVA = "0x1E0CC50", Offset = "0x1E0BA50", VA = "0x181E0CC50")]
|
||||
public ThreefishEngine(int blocksizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B915)
|
||||
|
||||
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_A8:
|
||||
stloc:ArgumentException(var_12_B2, 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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B916 RID: 47382 RVA: 0x00295388 File Offset: 0x00293588
|
||||
[Token(Token = "0x600B916")]
|
||||
[Address(RVA = "0x1E0BB10", Offset = "0x1E0A910", VA = "0x181E0BB10", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B916)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B917 RID: 47383 RVA: 0x002954A8 File Offset: 0x002936A8
|
||||
[Token(Token = "0x600B917")]
|
||||
[Address(RVA = "0x1E0BAC0", Offset = "0x1E0A8C0", VA = "0x181E0BAC0")]
|
||||
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: 0x0600B918 RID: 47384 RVA: 0x002954D4 File Offset: 0x002936D4
|
||||
[Token(Token = "0x600B918")]
|
||||
[Address(RVA = "0x1E0C430", Offset = "0x1E0B230", VA = "0x181E0C430")]
|
||||
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: 0x0600B919 RID: 47385 RVA: 0x00295564 File Offset: 0x00293764
|
||||
[Token(Token = "0x600B919")]
|
||||
[Address(RVA = "0x1E0C5B0", Offset = "0x1E0B3B0", VA = "0x181E0C5B0")]
|
||||
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: 0x17001CF8 RID: 7416
|
||||
// (get) Token: 0x0600B91A RID: 47386 RVA: 0x00295620 File Offset: 0x00293820
|
||||
[Token(Token = "0x17001CF8")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B91A")]
|
||||
[Address(RVA = "0x1E0CDC0", Offset = "0x1E0BBC0", VA = "0x181E0CDC0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.blocksizeBytes;
|
||||
return "Threefish-" + num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CF9 RID: 7417
|
||||
// (get) Token: 0x0600B91B RID: 47387 RVA: 0x00295640 File Offset: 0x00293840
|
||||
[Token(Token = "0x17001CF9")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B91B")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B91C RID: 47388 RVA: 0x00295650 File Offset: 0x00293850
|
||||
[Token(Token = "0x600B91C")]
|
||||
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.blocksizeBytes;
|
||||
}
|
||||
|
||||
// Token: 0x0600B91D RID: 47389 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B91D")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B91E RID: 47390 RVA: 0x00295664 File Offset: 0x00293864
|
||||
[Token(Token = "0x600B91E")]
|
||||
[Address(RVA = "0x1E0C100", Offset = "0x1E0AF00", VA = "0x181E0C100", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B91E)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B91F RID: 47391 RVA: 0x00295728 File Offset: 0x00293928
|
||||
[Token(Token = "0x600B91F")]
|
||||
[Address(RVA = "0x1E0BF70", Offset = "0x1E0AD70", VA = "0x181E0BF70")]
|
||||
internal int ProcessBlock(ulong[] inWords, ulong[] outWords)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B91F)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B920 RID: 47392 RVA: 0x002957A0 File Offset: 0x002939A0
|
||||
[Token(Token = "0x600B920")]
|
||||
[Address(RVA = "0x1E0B8C0", Offset = "0x1E0A6C0", VA = "0x181E0B8C0")]
|
||||
internal static ulong BytesToWord(byte[] bytes, int off)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B921 RID: 47393 RVA: 0x002957C0 File Offset: 0x002939C0
|
||||
[Token(Token = "0x600B921")]
|
||||
[Address(RVA = "0x1E0C7F0", Offset = "0x1E0B5F0", VA = "0x181E0C7F0")]
|
||||
internal static void WordToBytes(ulong word, byte[] bytes, int off)
|
||||
{
|
||||
int num = bytes.Length;
|
||||
int num2 = off + 1;
|
||||
num = off + 6;
|
||||
}
|
||||
|
||||
// Token: 0x0600B922 RID: 47394 RVA: 0x002957E4 File Offset: 0x002939E4
|
||||
[Token(Token = "0x600B922")]
|
||||
[Address(RVA = "0x1E0C410", Offset = "0x1E0B210", VA = "0x181E0C410")]
|
||||
private static ulong RotlXor(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B923 RID: 47395 RVA: 0x002957F4 File Offset: 0x002939F4
|
||||
[Token(Token = "0x600B923")]
|
||||
[Address(RVA = "0x1E0C9B0", Offset = "0x1E0B7B0", VA = "0x181E0C9B0")]
|
||||
private static ulong XorRotr(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x04007541 RID: 30017
|
||||
[Token(Token = "0x4007541")]
|
||||
public const int BLOCKSIZE_256 = 256;
|
||||
|
||||
// Token: 0x04007542 RID: 30018
|
||||
[Token(Token = "0x4007542")]
|
||||
public const int BLOCKSIZE_512 = 512;
|
||||
|
||||
// Token: 0x04007543 RID: 30019
|
||||
[Token(Token = "0x4007543")]
|
||||
public const int BLOCKSIZE_1024 = 1024;
|
||||
|
||||
// Token: 0x04007544 RID: 30020
|
||||
[Token(Token = "0x4007544")]
|
||||
private const int TWEAK_SIZE_BYTES = 16;
|
||||
|
||||
// Token: 0x04007545 RID: 30021
|
||||
[Token(Token = "0x4007545")]
|
||||
private const int TWEAK_SIZE_WORDS = 2;
|
||||
|
||||
// Token: 0x04007546 RID: 30022
|
||||
[Token(Token = "0x4007546")]
|
||||
private const int ROUNDS_256 = 72;
|
||||
|
||||
// Token: 0x04007547 RID: 30023
|
||||
[Token(Token = "0x4007547")]
|
||||
private const int ROUNDS_512 = 72;
|
||||
|
||||
// Token: 0x04007548 RID: 30024
|
||||
[Token(Token = "0x4007548")]
|
||||
private const int ROUNDS_1024 = 80;
|
||||
|
||||
// Token: 0x04007549 RID: 30025
|
||||
[Token(Token = "0x4007549")]
|
||||
private const int MAX_ROUNDS = 80;
|
||||
|
||||
// Token: 0x0400754A RID: 30026
|
||||
[Token(Token = "0x400754A")]
|
||||
private const ulong C_240 = 2004413935125273122UL;
|
||||
|
||||
// Token: 0x0400754B RID: 30027
|
||||
[Token(Token = "0x400754B")]
|
||||
private static readonly int[] MOD9 = new int[80];
|
||||
|
||||
// Token: 0x0400754C RID: 30028
|
||||
[Token(Token = "0x400754C")]
|
||||
private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x0400754D RID: 30029
|
||||
[Token(Token = "0x400754D")]
|
||||
private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x0400754E RID: 30030
|
||||
[Token(Token = "0x400754E")]
|
||||
private static readonly int[] MOD3;
|
||||
|
||||
// Token: 0x0400754F RID: 30031
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400754F")]
|
||||
private readonly int blocksizeBytes;
|
||||
|
||||
// Token: 0x04007550 RID: 30032
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x4007550")]
|
||||
private readonly int blocksizeWords;
|
||||
|
||||
// Token: 0x04007551 RID: 30033
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007551")]
|
||||
private readonly ulong[] currentBlock;
|
||||
|
||||
// Token: 0x04007552 RID: 30034
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007552")]
|
||||
private readonly ulong[] t;
|
||||
|
||||
// Token: 0x04007553 RID: 30035
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007553")]
|
||||
private readonly ulong[] kw;
|
||||
|
||||
// Token: 0x04007554 RID: 30036
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007554")]
|
||||
private readonly ThreefishEngine.ThreefishCipher cipher;
|
||||
|
||||
// Token: 0x04007555 RID: 30037
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007555")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x02001CB2 RID: 7346
|
||||
[Token(Token = "0x2001CB2")]
|
||||
private abstract class ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600B924 RID: 47396 RVA: 0x00295804 File Offset: 0x00293A04
|
||||
[Token(Token = "0x600B924")]
|
||||
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
||||
protected ThreefishCipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600B925 RID: 47397
|
||||
[Token(Token = "0x600B925")]
|
||||
[Address(Slot = "4")]
|
||||
internal abstract void EncryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x0600B926 RID: 47398
|
||||
[Token(Token = "0x600B926")]
|
||||
[Address(Slot = "5")]
|
||||
internal abstract void DecryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x04007556 RID: 30038
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007556")]
|
||||
protected readonly ulong[] t;
|
||||
|
||||
// Token: 0x04007557 RID: 30039
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007557")]
|
||||
protected readonly ulong[] kw;
|
||||
}
|
||||
|
||||
// Token: 0x02001CB3 RID: 7347
|
||||
[Token(Token = "0x2001CB3")]
|
||||
private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600B927 RID: 47399 RVA: 0x00295828 File Offset: 0x00293A28
|
||||
[Token(Token = "0x600B927")]
|
||||
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
||||
public Threefish256Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600B928 RID: 47400 RVA: 0x0029584C File Offset: 0x00293A4C
|
||||
[Token(Token = "0x600B928")]
|
||||
[Address(RVA = "0x1A36330", Offset = "0x1A35130", VA = "0x181A36330", 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];
|
||||
ulong num9 = ThreefishEngine.RotlXor(num, 14, (ulong)num6);
|
||||
num = num9;
|
||||
num = ThreefishEngine.RotlXor(num, 16, (ulong)num6);
|
||||
ulong num10;
|
||||
num = num10;
|
||||
ulong num11 = ThreefishEngine.RotlXor(num, 5, num);
|
||||
num = num11;
|
||||
ulong num12 = ThreefishEngine.RotlXor(num, 37, num);
|
||||
int length2 = kw.Length;
|
||||
int num13 = num6 + 1;
|
||||
int length3 = t.Length;
|
||||
num6 += 2;
|
||||
ulong num14 = kw[num6];
|
||||
int num15 = num8 + 1;
|
||||
ulong num16 = t[num15];
|
||||
ulong num17 = kw[num15];
|
||||
num17 += (ulong)num7;
|
||||
num11 += num17;
|
||||
ulong num18 = t[num8];
|
||||
num12 += num18;
|
||||
ulong num19 = kw[num6];
|
||||
num = num12;
|
||||
num19 += num12;
|
||||
ulong num20 = ThreefishEngine.RotlXor(num, 25, num19);
|
||||
num16 += num14;
|
||||
num16 += num11;
|
||||
num19 = num16;
|
||||
ulong num21 = ThreefishEngine.RotlXor(num11, 33, num19);
|
||||
num19 += num21;
|
||||
num11 = num21;
|
||||
ulong num22 = ThreefishEngine.RotlXor(num11, 46, num19);
|
||||
num16 += num20;
|
||||
num19 = num16;
|
||||
num11 = num20;
|
||||
num14 = num22;
|
||||
ulong num23 = ThreefishEngine.RotlXor(num11, 12, num19);
|
||||
num19 += num23;
|
||||
num11 = num23;
|
||||
ulong num24 = ThreefishEngine.RotlXor(num11, 58, num19);
|
||||
num16 += num14;
|
||||
num19 = num16;
|
||||
num11 = num14;
|
||||
num20 = num24;
|
||||
ulong num25 = ThreefishEngine.RotlXor(num11, 22, num19);
|
||||
num19 += num25;
|
||||
num11 = num25;
|
||||
ulong num26 = ThreefishEngine.RotlXor(num11, 32, num19);
|
||||
int num27 = 0;
|
||||
num11 = num20;
|
||||
num19 = num14;
|
||||
ulong num28 = ThreefishEngine.RotlXor(num11, 32, num19);
|
||||
int length4 = kw.Length;
|
||||
int num29 = num6 + 1;
|
||||
num16 = num28;
|
||||
num27 = (int)((ulong)num27 + num19);
|
||||
int length5 = t.Length;
|
||||
num29 = num8;
|
||||
num16 += (ulong)num8;
|
||||
num29 += 2;
|
||||
num19 += num14;
|
||||
ulong num30 = kw[num8];
|
||||
num7 += (uint)2;
|
||||
num30 += (ulong)num7;
|
||||
num26 += (ulong)1L;
|
||||
num30 += num26;
|
||||
if (num7 < (uint)18)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B929 RID: 47401 RVA: 0x00295AE0 File Offset: 0x00293CE0
|
||||
[Token(Token = "0x600B929")]
|
||||
[Address(RVA = "0x1A35C40", Offset = "0x1A34A40", VA = "0x181A35C40", Slot = "5")]
|
||||
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
||||
{
|
||||
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[0];
|
||||
ulong num2 = block[1];
|
||||
ulong num3 = block[2];
|
||||
ulong num4 = block[3];
|
||||
uint num6;
|
||||
int num5 = mod[(int)num6];
|
||||
int num7 = mod2[(int)num6];
|
||||
int num8 = num5 + 1;
|
||||
int length2 = kw.Length;
|
||||
int num9 = num7 + 1;
|
||||
int length3 = t.Length;
|
||||
ulong num10 = t[num9];
|
||||
num2 -= num10;
|
||||
ulong num11 = t[(int)num10];
|
||||
num3 -= num11;
|
||||
num4 -= (ulong)num6;
|
||||
ulong num12 = num4 - 1UL;
|
||||
ulong num13 = ThreefishEngine.XorRotr(num12, 32, num);
|
||||
num = num3;
|
||||
num12 = num2;
|
||||
num4 = num13;
|
||||
num -= num13;
|
||||
ulong num14 = ThreefishEngine.XorRotr(num12, 32, num);
|
||||
num12 = num14;
|
||||
num3 -= num14;
|
||||
ulong num15 = ThreefishEngine.XorRotr(num12, 58, num);
|
||||
num = num3;
|
||||
num12 = num4;
|
||||
num2 = num15;
|
||||
num -= num15;
|
||||
ulong num16 = ThreefishEngine.XorRotr(num12, 22, num);
|
||||
num12 = num16;
|
||||
num3 -= num16;
|
||||
ulong num17 = ThreefishEngine.XorRotr(num12, 46, num);
|
||||
num = num3;
|
||||
num12 = num2;
|
||||
num4 = num17;
|
||||
num -= num17;
|
||||
ulong num18 = ThreefishEngine.XorRotr(num12, 12, num);
|
||||
num12 = num18;
|
||||
num3 -= num18;
|
||||
ulong num19 = ThreefishEngine.XorRotr(num12, 25, num);
|
||||
num = num3;
|
||||
num12 = num4;
|
||||
ulong num20 = ThreefishEngine.XorRotr(num12, 33, num);
|
||||
int length4 = kw.Length;
|
||||
int num21 = num5 + 1;
|
||||
ulong num22 = kw[num21];
|
||||
int length5 = t.Length;
|
||||
ulong num23 = t[num7];
|
||||
int num24 = num7 + 1;
|
||||
ulong num25 = t[num24];
|
||||
num25 += num20;
|
||||
num3 -= num25;
|
||||
ulong num26 = kw[num5];
|
||||
num26 += num19;
|
||||
num -= num26;
|
||||
ulong num27 = ThreefishEngine.XorRotr(num20, 5, num);
|
||||
num19 -= num23;
|
||||
num = num3;
|
||||
num20 = num19;
|
||||
num2 = num27;
|
||||
num -= num27;
|
||||
ulong num28 = ThreefishEngine.XorRotr(num20, 37, num);
|
||||
num20 = num28;
|
||||
num3 -= num28;
|
||||
ulong num29 = ThreefishEngine.XorRotr(num20, 23, num);
|
||||
num = num3;
|
||||
num20 = num2;
|
||||
num23 = num29;
|
||||
num -= num29;
|
||||
ulong num30 = ThreefishEngine.XorRotr(num20, 40, num);
|
||||
num20 = num30;
|
||||
num3 -= num30;
|
||||
ulong num31 = ThreefishEngine.XorRotr(num20, 52, num);
|
||||
num = num3;
|
||||
num20 = num23;
|
||||
num2 = num31;
|
||||
num -= num31;
|
||||
ulong num32 = ThreefishEngine.XorRotr(num20, 57, num);
|
||||
num20 = num32;
|
||||
num3 -= num32;
|
||||
ulong num33 = ThreefishEngine.XorRotr(num20, 14, num);
|
||||
num = num3;
|
||||
num20 = num2;
|
||||
num19 = num33;
|
||||
num -= num33;
|
||||
ulong num34 = ThreefishEngine.XorRotr(num20, 16, num);
|
||||
num3 -= num34;
|
||||
num23 = num34;
|
||||
int length6 = kw.Length;
|
||||
int length7 = t.Length;
|
||||
ulong num35 = kw[1];
|
||||
ulong num36 = t[0];
|
||||
ulong num37 = kw[2];
|
||||
ulong num38 = t[1];
|
||||
ulong num39 = kw[3];
|
||||
num19 -= num36;
|
||||
num19 -= num35;
|
||||
num3 -= num38;
|
||||
num3 -= num37;
|
||||
num23 -= num39;
|
||||
}
|
||||
|
||||
// Token: 0x04007558 RID: 30040
|
||||
[Token(Token = "0x4007558")]
|
||||
private const int ROTATION_0_0 = 14;
|
||||
|
||||
// Token: 0x04007559 RID: 30041
|
||||
[Token(Token = "0x4007559")]
|
||||
private const int ROTATION_0_1 = 16;
|
||||
|
||||
// Token: 0x0400755A RID: 30042
|
||||
[Token(Token = "0x400755A")]
|
||||
private const int ROTATION_1_0 = 52;
|
||||
|
||||
// Token: 0x0400755B RID: 30043
|
||||
[Token(Token = "0x400755B")]
|
||||
private const int ROTATION_1_1 = 57;
|
||||
|
||||
// Token: 0x0400755C RID: 30044
|
||||
[Token(Token = "0x400755C")]
|
||||
private const int ROTATION_2_0 = 23;
|
||||
|
||||
// Token: 0x0400755D RID: 30045
|
||||
[Token(Token = "0x400755D")]
|
||||
private const int ROTATION_2_1 = 40;
|
||||
|
||||
// Token: 0x0400755E RID: 30046
|
||||
[Token(Token = "0x400755E")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x0400755F RID: 30047
|
||||
[Token(Token = "0x400755F")]
|
||||
private const int ROTATION_3_1 = 37;
|
||||
|
||||
// Token: 0x04007560 RID: 30048
|
||||
[Token(Token = "0x4007560")]
|
||||
private const int ROTATION_4_0 = 25;
|
||||
|
||||
// Token: 0x04007561 RID: 30049
|
||||
[Token(Token = "0x4007561")]
|
||||
private const int ROTATION_4_1 = 33;
|
||||
|
||||
// Token: 0x04007562 RID: 30050
|
||||
[Token(Token = "0x4007562")]
|
||||
private const int ROTATION_5_0 = 46;
|
||||
|
||||
// Token: 0x04007563 RID: 30051
|
||||
[Token(Token = "0x4007563")]
|
||||
private const int ROTATION_5_1 = 12;
|
||||
|
||||
// Token: 0x04007564 RID: 30052
|
||||
[Token(Token = "0x4007564")]
|
||||
private const int ROTATION_6_0 = 58;
|
||||
|
||||
// Token: 0x04007565 RID: 30053
|
||||
[Token(Token = "0x4007565")]
|
||||
private const int ROTATION_6_1 = 22;
|
||||
|
||||
// Token: 0x04007566 RID: 30054
|
||||
[Token(Token = "0x4007566")]
|
||||
private const int ROTATION_7_0 = 32;
|
||||
|
||||
// Token: 0x04007567 RID: 30055
|
||||
[Token(Token = "0x4007567")]
|
||||
private const int ROTATION_7_1 = 32;
|
||||
}
|
||||
|
||||
// Token: 0x02001CB4 RID: 7348
|
||||
[Token(Token = "0x2001CB4")]
|
||||
private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600B92A RID: 47402 RVA: 0x00295E20 File Offset: 0x00294020
|
||||
[Token(Token = "0x600B92A")]
|
||||
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
||||
internal Threefish512Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600B92B RID: 47403 RVA: 0x00295E44 File Offset: 0x00294044
|
||||
[Token(Token = "0x600B92B")]
|
||||
[Address(RVA = "0x1A375F0", Offset = "0x1A363F0", VA = "0x181A375F0", 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[5];
|
||||
ulong num5 = block[6];
|
||||
ulong num6 = t[0];
|
||||
ulong num7 = block[7];
|
||||
num4 += num6;
|
||||
ulong num8 = t[1];
|
||||
num5 += num8;
|
||||
uint num10;
|
||||
int num9 = mod[(int)num10];
|
||||
int num11 = mod2[(int)num10];
|
||||
ulong num12 = ThreefishEngine.RotlXor(num, 46, block);
|
||||
num = num3;
|
||||
ulong num13 = ThreefishEngine.RotlXor(num, 36, num);
|
||||
num = num4;
|
||||
num2 = num13;
|
||||
ulong num14 = ThreefishEngine.RotlXor(num, 19, num);
|
||||
num = num4;
|
||||
ulong num15 = ThreefishEngine.RotlXor(num7, 37, num);
|
||||
num5 = num15;
|
||||
num7 = num12;
|
||||
num = num15;
|
||||
ulong num16 = ThreefishEngine.RotlXor(num7, 33, num);
|
||||
num7 = num5;
|
||||
num12 = num16;
|
||||
ulong num17 = ThreefishEngine.RotlXor(num7, 27, num);
|
||||
num = num3;
|
||||
ulong num18 = ThreefishEngine.RotlXor(num7, 14, num);
|
||||
num7 = num2;
|
||||
ulong num19 = ThreefishEngine.RotlXor(num7, 42, block);
|
||||
num5 = num19;
|
||||
num7 = num12;
|
||||
ulong num20 = ThreefishEngine.RotlXor(num7, 17, num19);
|
||||
num19 = num;
|
||||
num7 = num5;
|
||||
num12 = num20;
|
||||
ulong num21 = ThreefishEngine.RotlXor(num7, 49, num19);
|
||||
num19 = num3;
|
||||
num2 = num21;
|
||||
ulong num22 = ThreefishEngine.RotlXor(num7, 36, num19);
|
||||
num19 = num15;
|
||||
ulong num23 = ThreefishEngine.RotlXor(num17, 39, num19);
|
||||
num5 = num23;
|
||||
num17 = num12;
|
||||
num19 = num23;
|
||||
ulong num24 = ThreefishEngine.RotlXor(num17, 44, num19);
|
||||
num19 = num12;
|
||||
num17 = num5;
|
||||
num = num24;
|
||||
ulong num25 = ThreefishEngine.RotlXor(num17, 9, num19);
|
||||
num19 = num25;
|
||||
num3 = ThreefishEngine.RotlXor(num17, 54, num19);
|
||||
num17 = num2;
|
||||
num19 += num2;
|
||||
num5 = ThreefishEngine.RotlXor(num17, 56, num19);
|
||||
int length2 = kw.Length;
|
||||
int num26 = num9 + 1;
|
||||
ulong num27 = kw[num26];
|
||||
ulong num28 = kw[num26];
|
||||
int length3 = t.Length;
|
||||
ulong num29 = kw[num26];
|
||||
num3 += num29;
|
||||
ulong num30 = kw[(int)num29];
|
||||
int num31 = num11 + 1;
|
||||
ulong num32 = t[num31];
|
||||
ulong num33 = kw[num31];
|
||||
num33 += (ulong)num10;
|
||||
ulong num34 = kw[num9];
|
||||
num34 += num12;
|
||||
num34 += num;
|
||||
ulong num35 = ThreefishEngine.RotlXor(num, 39, num34);
|
||||
num27 += num5;
|
||||
num = num5;
|
||||
num34 = num27;
|
||||
num12 = num35;
|
||||
ulong num36 = ThreefishEngine.RotlXor(num, 30, num34);
|
||||
num19 += num28;
|
||||
num19 += num3;
|
||||
num = num3;
|
||||
num34 = num19;
|
||||
ulong num37 = ThreefishEngine.RotlXor(num, 34, num34);
|
||||
num30 += num32;
|
||||
num28 = num37;
|
||||
num34 = num30;
|
||||
ulong num38 = ThreefishEngine.RotlXor(num25, 24, num34);
|
||||
num5 = num38;
|
||||
num25 = num12;
|
||||
num34 = num38;
|
||||
ulong num39 = ThreefishEngine.RotlXor(num25, 13, num34);
|
||||
num19 += num5;
|
||||
num34 = num19;
|
||||
num25 = num5;
|
||||
num12 = num39;
|
||||
ulong num40 = ThreefishEngine.RotlXor(num25, 50, num34);
|
||||
num30 += num28;
|
||||
num34 = num30;
|
||||
num25 = num28;
|
||||
num32 = num40;
|
||||
num28 = ThreefishEngine.RotlXor(num25, 10, num34);
|
||||
ulong num41 = ThreefishEngine.RotlXor(num36, 17, num34);
|
||||
num5 = num41;
|
||||
num36 = num12;
|
||||
num34 = num41;
|
||||
num12 = ThreefishEngine.RotlXor(num36, 25, num34);
|
||||
num34 = num19;
|
||||
num36 = num5;
|
||||
ulong num42 = ThreefishEngine.RotlXor(num36, 29, num34);
|
||||
num36 = num28;
|
||||
num34 = num30;
|
||||
ulong num43 = ThreefishEngine.RotlXor(num36, 39, num34);
|
||||
num38 += num32;
|
||||
num36 = num32;
|
||||
num34 = num38;
|
||||
num28 = num43;
|
||||
ulong num44 = ThreefishEngine.RotlXor(num36, 43, num34);
|
||||
num5 = num44;
|
||||
num36 = num12;
|
||||
num34 = num44;
|
||||
ulong num45 = ThreefishEngine.RotlXor(num36, 8, num34);
|
||||
num34 = num12;
|
||||
num36 = num5;
|
||||
ulong num46 = ThreefishEngine.RotlXor(num36, 35, num34);
|
||||
num36 = num28;
|
||||
num34 = num5;
|
||||
num38 = ThreefishEngine.RotlXor(num36, 56, num34);
|
||||
num34 = num41;
|
||||
ulong num47 = ThreefishEngine.RotlXor(num42, 22, num34);
|
||||
int length4 = kw.Length;
|
||||
ulong num48 = kw[num26];
|
||||
num48 += num12;
|
||||
ulong num49 = kw[num26];
|
||||
num49 += num5;
|
||||
ulong num50 = kw[num26];
|
||||
num41 += num50;
|
||||
int num51 = num11 + 1;
|
||||
int length5 = t.Length;
|
||||
ulong num52 = t[num51];
|
||||
num38 += num52;
|
||||
num11 += 2;
|
||||
num9 += 8;
|
||||
ulong num53 = kw[num9];
|
||||
num53 += (ulong)num10;
|
||||
num10 += (uint)2;
|
||||
num46 += (ulong)1L;
|
||||
num53 += num46;
|
||||
if (num10 < (uint)18)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B92C RID: 47404 RVA: 0x002962E0 File Offset: 0x002944E0
|
||||
[Token(Token = "0x600B92C")]
|
||||
[Address(RVA = "0x1A369B0", Offset = "0x1A357B0", VA = "0x181A369B0", Slot = "5")]
|
||||
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
||||
{
|
||||
ulong[] t;
|
||||
ulong[] kw;
|
||||
int[] array;
|
||||
int[] mod;
|
||||
do
|
||||
{
|
||||
t = this.t;
|
||||
kw = this.kw;
|
||||
array = ThreefishEngine.MOD9;
|
||||
mod = ThreefishEngine.MOD3;
|
||||
}
|
||||
while (kw.Length != 17 || t.Length != 5);
|
||||
int length = 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];
|
||||
uint num10;
|
||||
int num9 = array[(int)num10];
|
||||
int num11 = mod[(int)num10];
|
||||
int num12 = num9 + 1;
|
||||
int length2 = kw.Length;
|
||||
int length3 = t.Length;
|
||||
int num13 = num11 + 1;
|
||||
ulong num14 = t[num13];
|
||||
num6 -= num14;
|
||||
ulong num15;
|
||||
num15 -= (ulong)num10;
|
||||
ulong num16 = t[mod];
|
||||
num7 -= num16;
|
||||
ulong num17 = ThreefishEngine.XorRotr(num2, 8, num7);
|
||||
num7 -= num17;
|
||||
num7 = num;
|
||||
num2 = num17;
|
||||
ulong num18 = ThreefishEngine.XorRotr(num8, 35, num7);
|
||||
num -= num18;
|
||||
num7 = num3;
|
||||
num6 = num18;
|
||||
ulong num19 = ThreefishEngine.XorRotr(num6, 56, num7);
|
||||
num3 -= num19;
|
||||
num7 = num19;
|
||||
ulong num20 = ThreefishEngine.XorRotr(num4, 22, num7);
|
||||
num5 -= num20;
|
||||
num7 = num5;
|
||||
num4 = num2;
|
||||
num3 = num20;
|
||||
ulong num21 = ThreefishEngine.XorRotr(num4, 25, num7);
|
||||
num5 -= num21;
|
||||
num4 = num3;
|
||||
num2 = num21;
|
||||
ulong num22 = ThreefishEngine.XorRotr(num4, 29, num7);
|
||||
num7 = num;
|
||||
num4 = num7;
|
||||
num = num22;
|
||||
ulong num23 = ThreefishEngine.XorRotr(num4, 39, num7);
|
||||
num -= num23;
|
||||
num4 = num6;
|
||||
num7 = num23;
|
||||
num = ThreefishEngine.XorRotr(num4, 43, num3);
|
||||
num4 = num2;
|
||||
num3 -= num;
|
||||
ulong num24 = ThreefishEngine.XorRotr(num4, 13, num3);
|
||||
num3 = num5;
|
||||
num4 = num;
|
||||
num6 = num24;
|
||||
num5 = ThreefishEngine.XorRotr(num4, 50, num3);
|
||||
num4 = num7;
|
||||
ulong num25 = ThreefishEngine.XorRotr(num4, 10, num7);
|
||||
num4 = num;
|
||||
num2 = num25;
|
||||
num7 -= num25;
|
||||
ulong num26 = ThreefishEngine.XorRotr(num4, 17, num);
|
||||
num -= num26;
|
||||
num4 = num6;
|
||||
num = num26;
|
||||
ulong num27 = ThreefishEngine.XorRotr(num4, 39, num);
|
||||
num = num3;
|
||||
num4 = num;
|
||||
ulong num28 = ThreefishEngine.XorRotr(num4, 30, num);
|
||||
num = num5;
|
||||
num4 = num2;
|
||||
ulong num29 = ThreefishEngine.XorRotr(num4, 34, num);
|
||||
num = num7;
|
||||
num4 = num5;
|
||||
num2 = num29;
|
||||
ulong num30 = ThreefishEngine.XorRotr(num4, 24, num);
|
||||
int length4 = kw.Length;
|
||||
num5 = num30;
|
||||
ulong num31 = kw[num9];
|
||||
int num32 = num9 + 1;
|
||||
num31 += num27;
|
||||
num -= num31;
|
||||
ulong num33 = kw[(int)num30];
|
||||
num3 -= num33;
|
||||
ulong num34 = kw[(int)num33];
|
||||
ulong num35 = kw[(int)num34];
|
||||
num35 += num2;
|
||||
num5 -= num35;
|
||||
ulong num36 = kw[(int)num35];
|
||||
int length5 = t.Length;
|
||||
ulong num37 = t[num11];
|
||||
num11++;
|
||||
ulong num38 = t[num11];
|
||||
num38 += num5;
|
||||
ulong num39 = kw[(int)num5];
|
||||
num7 -= num38;
|
||||
ulong num40 = ThreefishEngine.XorRotr(num27, 44, num7);
|
||||
num7 -= num40;
|
||||
num5 -= num39;
|
||||
num7 = num;
|
||||
num27 = num5;
|
||||
num2 = num40;
|
||||
ulong num41 = ThreefishEngine.XorRotr(num27, 9, num7);
|
||||
num7 = num3;
|
||||
num5 = num41;
|
||||
num -= num41;
|
||||
ulong num42 = ThreefishEngine.XorRotr(num29, 54, num7);
|
||||
num3 -= num42;
|
||||
num7 = num42;
|
||||
ulong num43 = ThreefishEngine.XorRotr(num28, 56, num7);
|
||||
num5 -= num43;
|
||||
num7 = num5;
|
||||
num28 = num2;
|
||||
num39 = num43;
|
||||
ulong num44 = ThreefishEngine.XorRotr(num28, 17, num7);
|
||||
num28 = num39;
|
||||
num2 = num44;
|
||||
num5 -= num44;
|
||||
ulong num45 = ThreefishEngine.XorRotr(num28, 49, num7);
|
||||
num7 = num;
|
||||
num28 = num7;
|
||||
num3 = num45;
|
||||
ulong num46 = ThreefishEngine.XorRotr(num28, 36, num7);
|
||||
num28 = num5;
|
||||
num7 = num46;
|
||||
num -= num46;
|
||||
ulong num47 = ThreefishEngine.XorRotr(num28, 39, num3);
|
||||
num3 -= num47;
|
||||
num28 = num2;
|
||||
num39 = num47;
|
||||
ulong num48 = ThreefishEngine.XorRotr(num28, 33, num3);
|
||||
num3 -= num48;
|
||||
num2 = num48;
|
||||
num3 = num5;
|
||||
num28 = num39;
|
||||
ulong num49 = ThreefishEngine.XorRotr(num28, 27, num3);
|
||||
num28 = num7;
|
||||
num3 = num49;
|
||||
num5 -= num49;
|
||||
ulong num50 = ThreefishEngine.XorRotr(num28, 14, num3);
|
||||
num7 -= num50;
|
||||
num3 = num;
|
||||
num28 = num3;
|
||||
ulong num51 = ThreefishEngine.XorRotr(num28, 42, num3);
|
||||
num -= num51;
|
||||
num3 = num;
|
||||
num28 = num2;
|
||||
num7 = num51;
|
||||
ulong num52 = ThreefishEngine.XorRotr(num28, 46, num3);
|
||||
num28 = num7;
|
||||
num -= num52;
|
||||
ulong num53 = ThreefishEngine.XorRotr(num28, 36, num3);
|
||||
num3 = num5;
|
||||
num28 = num7;
|
||||
num3 -= num53;
|
||||
ulong num54 = ThreefishEngine.XorRotr(num28, 19, num3);
|
||||
num3 = num7;
|
||||
num28 = num3;
|
||||
num3 = num54;
|
||||
num5 -= num54;
|
||||
ulong num55 = ThreefishEngine.XorRotr(num28, 37, num3);
|
||||
num7 -= num55;
|
||||
num3 = num5;
|
||||
int length6 = kw.Length;
|
||||
ulong num56 = kw[1];
|
||||
ulong num57 = kw[2];
|
||||
ulong num58 = kw[3];
|
||||
ulong num59 = kw[4];
|
||||
ulong num60 = kw[5];
|
||||
int length7 = t.Length;
|
||||
ulong num61 = t[0];
|
||||
ulong num62 = kw[6];
|
||||
ulong num63 = t[1];
|
||||
ulong num64 = kw[7];
|
||||
num5 -= num59;
|
||||
num3 -= num61;
|
||||
num7 -= num63;
|
||||
num7 -= num62;
|
||||
array -= num64;
|
||||
}
|
||||
|
||||
// Token: 0x04007568 RID: 30056
|
||||
[Token(Token = "0x4007568")]
|
||||
private const int ROTATION_0_0 = 46;
|
||||
|
||||
// Token: 0x04007569 RID: 30057
|
||||
[Token(Token = "0x4007569")]
|
||||
private const int ROTATION_0_1 = 36;
|
||||
|
||||
// Token: 0x0400756A RID: 30058
|
||||
[Token(Token = "0x400756A")]
|
||||
private const int ROTATION_0_2 = 19;
|
||||
|
||||
// Token: 0x0400756B RID: 30059
|
||||
[Token(Token = "0x400756B")]
|
||||
private const int ROTATION_0_3 = 37;
|
||||
|
||||
// Token: 0x0400756C RID: 30060
|
||||
[Token(Token = "0x400756C")]
|
||||
private const int ROTATION_1_0 = 33;
|
||||
|
||||
// Token: 0x0400756D RID: 30061
|
||||
[Token(Token = "0x400756D")]
|
||||
private const int ROTATION_1_1 = 27;
|
||||
|
||||
// Token: 0x0400756E RID: 30062
|
||||
[Token(Token = "0x400756E")]
|
||||
private const int ROTATION_1_2 = 14;
|
||||
|
||||
// Token: 0x0400756F RID: 30063
|
||||
[Token(Token = "0x400756F")]
|
||||
private const int ROTATION_1_3 = 42;
|
||||
|
||||
// Token: 0x04007570 RID: 30064
|
||||
[Token(Token = "0x4007570")]
|
||||
private const int ROTATION_2_0 = 17;
|
||||
|
||||
// Token: 0x04007571 RID: 30065
|
||||
[Token(Token = "0x4007571")]
|
||||
private const int ROTATION_2_1 = 49;
|
||||
|
||||
// Token: 0x04007572 RID: 30066
|
||||
[Token(Token = "0x4007572")]
|
||||
private const int ROTATION_2_2 = 36;
|
||||
|
||||
// Token: 0x04007573 RID: 30067
|
||||
[Token(Token = "0x4007573")]
|
||||
private const int ROTATION_2_3 = 39;
|
||||
|
||||
// Token: 0x04007574 RID: 30068
|
||||
[Token(Token = "0x4007574")]
|
||||
private const int ROTATION_3_0 = 44;
|
||||
|
||||
// Token: 0x04007575 RID: 30069
|
||||
[Token(Token = "0x4007575")]
|
||||
private const int ROTATION_3_1 = 9;
|
||||
|
||||
// Token: 0x04007576 RID: 30070
|
||||
[Token(Token = "0x4007576")]
|
||||
private const int ROTATION_3_2 = 54;
|
||||
|
||||
// Token: 0x04007577 RID: 30071
|
||||
[Token(Token = "0x4007577")]
|
||||
private const int ROTATION_3_3 = 56;
|
||||
|
||||
// Token: 0x04007578 RID: 30072
|
||||
[Token(Token = "0x4007578")]
|
||||
private const int ROTATION_4_0 = 39;
|
||||
|
||||
// Token: 0x04007579 RID: 30073
|
||||
[Token(Token = "0x4007579")]
|
||||
private const int ROTATION_4_1 = 30;
|
||||
|
||||
// Token: 0x0400757A RID: 30074
|
||||
[Token(Token = "0x400757A")]
|
||||
private const int ROTATION_4_2 = 34;
|
||||
|
||||
// Token: 0x0400757B RID: 30075
|
||||
[Token(Token = "0x400757B")]
|
||||
private const int ROTATION_4_3 = 24;
|
||||
|
||||
// Token: 0x0400757C RID: 30076
|
||||
[Token(Token = "0x400757C")]
|
||||
private const int ROTATION_5_0 = 13;
|
||||
|
||||
// Token: 0x0400757D RID: 30077
|
||||
[Token(Token = "0x400757D")]
|
||||
private const int ROTATION_5_1 = 50;
|
||||
|
||||
// Token: 0x0400757E RID: 30078
|
||||
[Token(Token = "0x400757E")]
|
||||
private const int ROTATION_5_2 = 10;
|
||||
|
||||
// Token: 0x0400757F RID: 30079
|
||||
[Token(Token = "0x400757F")]
|
||||
private const int ROTATION_5_3 = 17;
|
||||
|
||||
// Token: 0x04007580 RID: 30080
|
||||
[Token(Token = "0x4007580")]
|
||||
private const int ROTATION_6_0 = 25;
|
||||
|
||||
// Token: 0x04007581 RID: 30081
|
||||
[Token(Token = "0x4007581")]
|
||||
private const int ROTATION_6_1 = 29;
|
||||
|
||||
// Token: 0x04007582 RID: 30082
|
||||
[Token(Token = "0x4007582")]
|
||||
private const int ROTATION_6_2 = 39;
|
||||
|
||||
// Token: 0x04007583 RID: 30083
|
||||
[Token(Token = "0x4007583")]
|
||||
private const int ROTATION_6_3 = 43;
|
||||
|
||||
// Token: 0x04007584 RID: 30084
|
||||
[Token(Token = "0x4007584")]
|
||||
private const int ROTATION_7_0 = 8;
|
||||
|
||||
// Token: 0x04007585 RID: 30085
|
||||
[Token(Token = "0x4007585")]
|
||||
private const int ROTATION_7_1 = 35;
|
||||
|
||||
// Token: 0x04007586 RID: 30086
|
||||
[Token(Token = "0x4007586")]
|
||||
private const int ROTATION_7_2 = 56;
|
||||
|
||||
// Token: 0x04007587 RID: 30087
|
||||
[Token(Token = "0x4007587")]
|
||||
private const int ROTATION_7_3 = 22;
|
||||
}
|
||||
|
||||
// Token: 0x02001CB5 RID: 7349
|
||||
[Token(Token = "0x2001CB5")]
|
||||
private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600B92D RID: 47405 RVA: 0x0029685C File Offset: 0x00294A5C
|
||||
[Token(Token = "0x600B92D")]
|
||||
[Address(RVA = "0x1E0B8B0", Offset = "0x1E0A6B0", VA = "0x181E0B8B0")]
|
||||
public Threefish1024Cipher(ulong[] kw, ulong[] t)
|
||||
: base(kw, t)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B92E RID: 47406 RVA: 0x00296874 File Offset: 0x00294A74
|
||||
[Token(Token = "0x600B92E")]
|
||||
[Address(RVA = "0x1E0A400", Offset = "0x1E09200", VA = "0x181E0A400", 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: 0x0600B92F RID: 47407 RVA: 0x00296A30 File Offset: 0x00294C30
|
||||
[Token(Token = "0x600B92F")]
|
||||
[Address(RVA = "0x1E08CB0", Offset = "0x1E07AB0", VA = "0x181E08CB0", 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: 0x04007588 RID: 30088
|
||||
[Token(Token = "0x4007588")]
|
||||
private const int ROTATION_0_0 = 24;
|
||||
|
||||
// Token: 0x04007589 RID: 30089
|
||||
[Token(Token = "0x4007589")]
|
||||
private const int ROTATION_0_1 = 13;
|
||||
|
||||
// Token: 0x0400758A RID: 30090
|
||||
[Token(Token = "0x400758A")]
|
||||
private const int ROTATION_0_2 = 8;
|
||||
|
||||
// Token: 0x0400758B RID: 30091
|
||||
[Token(Token = "0x400758B")]
|
||||
private const int ROTATION_0_3 = 47;
|
||||
|
||||
// Token: 0x0400758C RID: 30092
|
||||
[Token(Token = "0x400758C")]
|
||||
private const int ROTATION_0_4 = 8;
|
||||
|
||||
// Token: 0x0400758D RID: 30093
|
||||
[Token(Token = "0x400758D")]
|
||||
private const int ROTATION_0_5 = 17;
|
||||
|
||||
// Token: 0x0400758E RID: 30094
|
||||
[Token(Token = "0x400758E")]
|
||||
private const int ROTATION_0_6 = 22;
|
||||
|
||||
// Token: 0x0400758F RID: 30095
|
||||
[Token(Token = "0x400758F")]
|
||||
private const int ROTATION_0_7 = 37;
|
||||
|
||||
// Token: 0x04007590 RID: 30096
|
||||
[Token(Token = "0x4007590")]
|
||||
private const int ROTATION_1_0 = 38;
|
||||
|
||||
// Token: 0x04007591 RID: 30097
|
||||
[Token(Token = "0x4007591")]
|
||||
private const int ROTATION_1_1 = 19;
|
||||
|
||||
// Token: 0x04007592 RID: 30098
|
||||
[Token(Token = "0x4007592")]
|
||||
private const int ROTATION_1_2 = 10;
|
||||
|
||||
// Token: 0x04007593 RID: 30099
|
||||
[Token(Token = "0x4007593")]
|
||||
private const int ROTATION_1_3 = 55;
|
||||
|
||||
// Token: 0x04007594 RID: 30100
|
||||
[Token(Token = "0x4007594")]
|
||||
private const int ROTATION_1_4 = 49;
|
||||
|
||||
// Token: 0x04007595 RID: 30101
|
||||
[Token(Token = "0x4007595")]
|
||||
private const int ROTATION_1_5 = 18;
|
||||
|
||||
// Token: 0x04007596 RID: 30102
|
||||
[Token(Token = "0x4007596")]
|
||||
private const int ROTATION_1_6 = 23;
|
||||
|
||||
// Token: 0x04007597 RID: 30103
|
||||
[Token(Token = "0x4007597")]
|
||||
private const int ROTATION_1_7 = 52;
|
||||
|
||||
// Token: 0x04007598 RID: 30104
|
||||
[Token(Token = "0x4007598")]
|
||||
private const int ROTATION_2_0 = 33;
|
||||
|
||||
// Token: 0x04007599 RID: 30105
|
||||
[Token(Token = "0x4007599")]
|
||||
private const int ROTATION_2_1 = 4;
|
||||
|
||||
// Token: 0x0400759A RID: 30106
|
||||
[Token(Token = "0x400759A")]
|
||||
private const int ROTATION_2_2 = 51;
|
||||
|
||||
// Token: 0x0400759B RID: 30107
|
||||
[Token(Token = "0x400759B")]
|
||||
private const int ROTATION_2_3 = 13;
|
||||
|
||||
// Token: 0x0400759C RID: 30108
|
||||
[Token(Token = "0x400759C")]
|
||||
private const int ROTATION_2_4 = 34;
|
||||
|
||||
// Token: 0x0400759D RID: 30109
|
||||
[Token(Token = "0x400759D")]
|
||||
private const int ROTATION_2_5 = 41;
|
||||
|
||||
// Token: 0x0400759E RID: 30110
|
||||
[Token(Token = "0x400759E")]
|
||||
private const int ROTATION_2_6 = 59;
|
||||
|
||||
// Token: 0x0400759F RID: 30111
|
||||
[Token(Token = "0x400759F")]
|
||||
private const int ROTATION_2_7 = 17;
|
||||
|
||||
// Token: 0x040075A0 RID: 30112
|
||||
[Token(Token = "0x40075A0")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x040075A1 RID: 30113
|
||||
[Token(Token = "0x40075A1")]
|
||||
private const int ROTATION_3_1 = 20;
|
||||
|
||||
// Token: 0x040075A2 RID: 30114
|
||||
[Token(Token = "0x40075A2")]
|
||||
private const int ROTATION_3_2 = 48;
|
||||
|
||||
// Token: 0x040075A3 RID: 30115
|
||||
[Token(Token = "0x40075A3")]
|
||||
private const int ROTATION_3_3 = 41;
|
||||
|
||||
// Token: 0x040075A4 RID: 30116
|
||||
[Token(Token = "0x40075A4")]
|
||||
private const int ROTATION_3_4 = 47;
|
||||
|
||||
// Token: 0x040075A5 RID: 30117
|
||||
[Token(Token = "0x40075A5")]
|
||||
private const int ROTATION_3_5 = 28;
|
||||
|
||||
// Token: 0x040075A6 RID: 30118
|
||||
[Token(Token = "0x40075A6")]
|
||||
private const int ROTATION_3_6 = 16;
|
||||
|
||||
// Token: 0x040075A7 RID: 30119
|
||||
[Token(Token = "0x40075A7")]
|
||||
private const int ROTATION_3_7 = 25;
|
||||
|
||||
// Token: 0x040075A8 RID: 30120
|
||||
[Token(Token = "0x40075A8")]
|
||||
private const int ROTATION_4_0 = 41;
|
||||
|
||||
// Token: 0x040075A9 RID: 30121
|
||||
[Token(Token = "0x40075A9")]
|
||||
private const int ROTATION_4_1 = 9;
|
||||
|
||||
// Token: 0x040075AA RID: 30122
|
||||
[Token(Token = "0x40075AA")]
|
||||
private const int ROTATION_4_2 = 37;
|
||||
|
||||
// Token: 0x040075AB RID: 30123
|
||||
[Token(Token = "0x40075AB")]
|
||||
private const int ROTATION_4_3 = 31;
|
||||
|
||||
// Token: 0x040075AC RID: 30124
|
||||
[Token(Token = "0x40075AC")]
|
||||
private const int ROTATION_4_4 = 12;
|
||||
|
||||
// Token: 0x040075AD RID: 30125
|
||||
[Token(Token = "0x40075AD")]
|
||||
private const int ROTATION_4_5 = 47;
|
||||
|
||||
// Token: 0x040075AE RID: 30126
|
||||
[Token(Token = "0x40075AE")]
|
||||
private const int ROTATION_4_6 = 44;
|
||||
|
||||
// Token: 0x040075AF RID: 30127
|
||||
[Token(Token = "0x40075AF")]
|
||||
private const int ROTATION_4_7 = 30;
|
||||
|
||||
// Token: 0x040075B0 RID: 30128
|
||||
[Token(Token = "0x40075B0")]
|
||||
private const int ROTATION_5_0 = 16;
|
||||
|
||||
// Token: 0x040075B1 RID: 30129
|
||||
[Token(Token = "0x40075B1")]
|
||||
private const int ROTATION_5_1 = 34;
|
||||
|
||||
// Token: 0x040075B2 RID: 30130
|
||||
[Token(Token = "0x40075B2")]
|
||||
private const int ROTATION_5_2 = 56;
|
||||
|
||||
// Token: 0x040075B3 RID: 30131
|
||||
[Token(Token = "0x40075B3")]
|
||||
private const int ROTATION_5_3 = 51;
|
||||
|
||||
// Token: 0x040075B4 RID: 30132
|
||||
[Token(Token = "0x40075B4")]
|
||||
private const int ROTATION_5_4 = 4;
|
||||
|
||||
// Token: 0x040075B5 RID: 30133
|
||||
[Token(Token = "0x40075B5")]
|
||||
private const int ROTATION_5_5 = 53;
|
||||
|
||||
// Token: 0x040075B6 RID: 30134
|
||||
[Token(Token = "0x40075B6")]
|
||||
private const int ROTATION_5_6 = 42;
|
||||
|
||||
// Token: 0x040075B7 RID: 30135
|
||||
[Token(Token = "0x40075B7")]
|
||||
private const int ROTATION_5_7 = 41;
|
||||
|
||||
// Token: 0x040075B8 RID: 30136
|
||||
[Token(Token = "0x40075B8")]
|
||||
private const int ROTATION_6_0 = 31;
|
||||
|
||||
// Token: 0x040075B9 RID: 30137
|
||||
[Token(Token = "0x40075B9")]
|
||||
private const int ROTATION_6_1 = 44;
|
||||
|
||||
// Token: 0x040075BA RID: 30138
|
||||
[Token(Token = "0x40075BA")]
|
||||
private const int ROTATION_6_2 = 47;
|
||||
|
||||
// Token: 0x040075BB RID: 30139
|
||||
[Token(Token = "0x40075BB")]
|
||||
private const int ROTATION_6_3 = 46;
|
||||
|
||||
// Token: 0x040075BC RID: 30140
|
||||
[Token(Token = "0x40075BC")]
|
||||
private const int ROTATION_6_4 = 19;
|
||||
|
||||
// Token: 0x040075BD RID: 30141
|
||||
[Token(Token = "0x40075BD")]
|
||||
private const int ROTATION_6_5 = 42;
|
||||
|
||||
// Token: 0x040075BE RID: 30142
|
||||
[Token(Token = "0x40075BE")]
|
||||
private const int ROTATION_6_6 = 44;
|
||||
|
||||
// Token: 0x040075BF RID: 30143
|
||||
[Token(Token = "0x40075BF")]
|
||||
private const int ROTATION_6_7 = 25;
|
||||
|
||||
// Token: 0x040075C0 RID: 30144
|
||||
[Token(Token = "0x40075C0")]
|
||||
private const int ROTATION_7_0 = 9;
|
||||
|
||||
// Token: 0x040075C1 RID: 30145
|
||||
[Token(Token = "0x40075C1")]
|
||||
private const int ROTATION_7_1 = 48;
|
||||
|
||||
// Token: 0x040075C2 RID: 30146
|
||||
[Token(Token = "0x40075C2")]
|
||||
private const int ROTATION_7_2 = 35;
|
||||
|
||||
// Token: 0x040075C3 RID: 30147
|
||||
[Token(Token = "0x40075C3")]
|
||||
private const int ROTATION_7_3 = 52;
|
||||
|
||||
// Token: 0x040075C4 RID: 30148
|
||||
[Token(Token = "0x40075C4")]
|
||||
private const int ROTATION_7_4 = 23;
|
||||
|
||||
// Token: 0x040075C5 RID: 30149
|
||||
[Token(Token = "0x40075C5")]
|
||||
private const int ROTATION_7_5 = 31;
|
||||
|
||||
// Token: 0x040075C6 RID: 30150
|
||||
[Token(Token = "0x40075C6")]
|
||||
private const int ROTATION_7_6 = 37;
|
||||
|
||||
// Token: 0x040075C7 RID: 30151
|
||||
[Token(Token = "0x40075C7")]
|
||||
private const int ROTATION_7_7 = 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
+999
@@ -0,0 +1,999 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB6 RID: 7350
|
||||
[Token(Token = "0x2001CB6")]
|
||||
public sealed class TnepresEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x17001CFA RID: 7418
|
||||
// (get) Token: 0x0600B930 RID: 47408 RVA: 0x00296EC8 File Offset: 0x002950C8
|
||||
[Token(Token = "0x17001CFA")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B930")]
|
||||
[Address(RVA = "0x1A3E2E0", Offset = "0x1A3D0E0", VA = "0x181A3E2E0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Tnepres";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B931 RID: 47409 RVA: 0x00296EDC File Offset: 0x002950DC
|
||||
[Token(Token = "0x600B931")]
|
||||
[Address(RVA = "0x1A3BA60", Offset = "0x1A3A860", VA = "0x181A3BA60", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B931)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::MakeWorkingKey(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5F:
|
||||
stloc:int32[](var_8_69, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(132)))
|
||||
stloc:int32(var_10_71, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
|
||||
stloc:int32(var_11_7B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldloc:int32[][exp:int32](var_8_69)))
|
||||
stloc:uint32(var_12_81, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldc.i4:int32(0), ldloc:int32(var_11_7B))
|
||||
stloc:int32(var_14_8D, ldc.i4:int32(0))
|
||||
call:void(Array::Copy, ldloc:int32[][exp:Array](var_1_07), ldloc:uint32[exp:int32](var_9), ldloc:int32[][exp:Array](var_8_69), ldloc:int32(var_14_8D), ldloc:uint32[exp:int32](var_9))
|
||||
stloc:int32(var_15_A4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:uint32(var_16_B6, call:uint32(DCLHFKDDNBB::BCBNCDMHJED, ldelem:int32[exp:uint32]([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldloc:uint32[exp:int32](var_9)), ldc.i4:int32(11)))
|
||||
stloc:uint32(var_17_BC, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_16_B6))
|
||||
stloc:int32(var_18_CF, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_19_D9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_21_E6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_22_F0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
|
||||
stloc:int32(var_23_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_FA), ldloc:int32(var_22_F0), ldloc:int32(var_21_E6), ldloc:int32(var_19_D9))
|
||||
stloc:int32(var_24_110, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_24_110))
|
||||
stloc:int32(var_25_122, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_25_122))
|
||||
stloc:int32(var_26_134, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_26_134))
|
||||
stloc:int32(var_27_146, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_27_146))
|
||||
stloc:int32(var_28_159, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_29_163, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
|
||||
stloc:int32(var_30_16D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
|
||||
stloc:int32(var_31_177, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
|
||||
stloc:int32(var_32_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_181), ldloc:int32(var_31_177), ldloc:int32(var_30_16D), ldloc:int32(var_29_163))
|
||||
stloc:int32(var_33_197, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_33_197))
|
||||
stloc:int32(var_34_1A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_34_1A9))
|
||||
stloc:int32(var_35_1BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_35_1BB))
|
||||
stloc:int32(var_36_1CD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_36_1CD))
|
||||
stloc:int32(var_37_1E0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_38_1EA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
|
||||
stloc:int32(var_39_1F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
|
||||
stloc:int32(var_40_1FE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
|
||||
stloc:int32(var_41_208, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_208), ldloc:int32(var_40_1FE), ldloc:int32(var_39_1F4), ldloc:int32(var_38_1EA))
|
||||
stloc:int32(var_42_21E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_42_21E))
|
||||
stloc:int32(var_43_230, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_43_230))
|
||||
stloc:int32(var_44_242, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_44_242))
|
||||
stloc:int32(var_45_254, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_45_254))
|
||||
stloc:int32(var_46_267, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_47_271, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
|
||||
stloc:int32(var_48_27B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
|
||||
stloc:int32(var_49_285, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
stloc:int32(var_50_28F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_28F), ldloc:int32(var_49_285), ldloc:int32(var_48_27B), ldloc:int32(var_47_271))
|
||||
stloc:int32(var_51_2A5, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_51_2A5))
|
||||
stloc:int32(var_52_2B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_52_2B7))
|
||||
stloc:int32(var_53_2C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_53_2C9))
|
||||
stloc:int32(var_54_2DB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_54_2DB))
|
||||
stloc:int32(var_55_2EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_56_2F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
|
||||
stloc:int32(var_57_304, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
|
||||
stloc:int32(var_58_30E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
|
||||
stloc:int32(var_59_318, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_318), ldloc:int32(var_58_30E), ldloc:int32(var_57_304), ldloc:int32(var_56_2F9))
|
||||
stloc:int32(var_60_32E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_60_32E))
|
||||
stloc:int32(var_61_340, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_61_340))
|
||||
stloc:int32(var_62_352, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_62_352))
|
||||
stloc:int32(var_63_365, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_63_365))
|
||||
stloc:int32(var_64_379, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_65_384, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
|
||||
stloc:int32(var_66_38F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
|
||||
stloc:int32(var_67_39A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
|
||||
stloc:int32(var_68_3A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_3A5), ldloc:int32(var_67_39A), ldloc:int32(var_66_38F), ldloc:int32(var_65_384))
|
||||
stloc:int32(var_69_3BB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_69_3BB))
|
||||
stloc:int32(var_70_3CE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_70_3CE))
|
||||
stloc:int32(var_71_3E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_71_3E1))
|
||||
stloc:int32(var_72_3F4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_72_3F4))
|
||||
stloc:int32(var_73_408, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_74_413, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
|
||||
stloc:int32(var_75_41E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
|
||||
stloc:int32(var_76_429, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
|
||||
stloc:int32(var_77_434, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_434), ldloc:int32(var_76_429), ldloc:int32(var_75_41E), ldloc:int32(var_74_413))
|
||||
stloc:int32(var_78_44A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_78_44A))
|
||||
stloc:int32(var_79_45D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_79_45D))
|
||||
stloc:int32(var_80_470, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_80_470))
|
||||
stloc:int32(var_81_483, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_81_483))
|
||||
stloc:int32(var_82_497, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_83_4A2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
|
||||
stloc:int32(var_84_4AD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
|
||||
stloc:int32(var_85_4B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
|
||||
stloc:int32(var_86_4C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_4C3), ldloc:int32(var_85_4B8), ldloc:int32(var_84_4AD), ldloc:int32(var_83_4A2))
|
||||
stloc:int32(var_87_4D9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_87_4D9))
|
||||
stloc:int32(var_88_4EC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_88_4EC))
|
||||
stloc:int32(var_89_4FF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_89_4FF))
|
||||
stloc:int32(var_90_512, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_90_512))
|
||||
stloc:int32(var_91_526, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_92_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
|
||||
stloc:int32(var_93_53C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
|
||||
stloc:int32(var_94_547, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
stloc:int32(var_95_552, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_552), ldloc:int32(var_94_547), ldloc:int32(var_93_53C), ldloc:int32(var_92_531))
|
||||
stloc:int32(var_96_568, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_96_568))
|
||||
stloc:int32(var_97_57B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_97_57B))
|
||||
stloc:int32(var_98_58E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_98_58E))
|
||||
stloc:int32(var_99_5A1, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_99_5A1))
|
||||
stloc:int32(var_100_5B5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_101_5C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
|
||||
stloc:int32(var_102_5CB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
|
||||
stloc:int32(var_103_5D6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
|
||||
stloc:int32(var_104_5E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_104_5E1), ldloc:int32(var_103_5D6), ldloc:int32(var_102_5CB), ldloc:int32(var_101_5C0))
|
||||
stloc:int32(var_105_5F7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_105_5F7))
|
||||
stloc:int32(var_106_60A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_106_60A))
|
||||
stloc:int32(var_107_61D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_107_61D))
|
||||
stloc:int32(var_108_630, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_108_630))
|
||||
stloc:int32(var_109_644, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_110_64F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
|
||||
stloc:int32(var_111_65A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
|
||||
stloc:int32(var_112_665, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
|
||||
stloc:int32(var_113_670, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_670), ldloc:int32(var_112_665), ldloc:int32(var_111_65A), ldloc:int32(var_110_64F))
|
||||
stloc:int32(var_114_686, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_114_686))
|
||||
stloc:int32(var_115_699, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_115_699))
|
||||
stloc:int32(var_116_6AC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_116_6AC))
|
||||
stloc:int32(var_117_6BF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_117_6BF))
|
||||
stloc:int32(var_118_6D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_119_6DE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
|
||||
stloc:int32(var_120_6E9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
|
||||
stloc:int32(var_121_6F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
|
||||
stloc:int32(var_122_6FF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_6FF), ldloc:int32(var_121_6F4), ldloc:int32(var_120_6E9), ldloc:int32(var_119_6DE))
|
||||
stloc:int32(var_123_715, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_123_715))
|
||||
stloc:int32(var_124_728, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_124_728))
|
||||
stloc:int32(var_125_73B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_125_73B))
|
||||
stloc:int32(var_126_74E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_126_74E))
|
||||
stloc:int32(var_127_762, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_128_76D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
|
||||
stloc:int32(var_129_778, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
|
||||
stloc:int32(var_130_783, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
|
||||
stloc:int32(var_131_78E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_78E), ldloc:int32(var_130_783), ldloc:int32(var_129_778), ldloc:int32(var_128_76D))
|
||||
stloc:int32(var_132_7A4, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_132_7A4))
|
||||
stloc:int32(var_133_7B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_133_7B7))
|
||||
stloc:int32(var_134_7CA, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_134_7CA))
|
||||
stloc:int32(var_135_7DD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_135_7DD))
|
||||
stloc:int32(var_136_7F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_137_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
|
||||
stloc:int32(var_138_807, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
|
||||
stloc:int32(var_139_812, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
|
||||
stloc:int32(var_140_81D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_81D), ldloc:int32(var_139_812), ldloc:int32(var_138_807), ldloc:int32(var_137_7FC))
|
||||
stloc:int32(var_141_833, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_141_833))
|
||||
stloc:int32(var_142_846, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_142_846))
|
||||
stloc:int32(var_143_859, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_143_859))
|
||||
stloc:int32(var_144_86C, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_144_86C))
|
||||
stloc:int32(var_145_880, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_146_88B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
|
||||
stloc:int32(var_147_896, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
|
||||
stloc:int32(var_148_8A1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
|
||||
stloc:int32(var_149_8AC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_149_8AC), ldloc:int32(var_148_8A1), ldloc:int32(var_147_896), ldloc:int32(var_146_88B))
|
||||
stloc:int32(var_150_8C2, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_150_8C2))
|
||||
stloc:int32(var_151_8D5, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_151_8D5))
|
||||
stloc:int32(var_152_8E8, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_152_8E8))
|
||||
stloc:int32(var_153_8FB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_153_8FB))
|
||||
stloc:int32(var_154_90F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_155_91A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
|
||||
stloc:int32(var_156_925, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
|
||||
stloc:int32(var_157_930, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
|
||||
stloc:int32(var_158_93B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_158_93B), ldloc:int32(var_157_930), ldloc:int32(var_156_925), ldloc:int32(var_155_91A))
|
||||
stloc:int32(var_159_951, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_159_951))
|
||||
stloc:int32(var_160_964, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_160_964))
|
||||
stloc:int32(var_161_977, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_161_977))
|
||||
stloc:int32(var_162_98A, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_162_98A))
|
||||
stloc:int32(var_163_99E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_164_9A9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_165_9B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_166_9BF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
|
||||
stloc:int32(var_167_9CA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_167_9CA), ldloc:int32(var_166_9BF), ldloc:int32(var_165_9B4), ldloc:int32(var_164_9A9))
|
||||
stloc:int32(var_168_9E0, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_168_9E0))
|
||||
stloc:int32(var_169_9F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_169_9F3))
|
||||
stloc:int32(var_170_A06, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_170_A06))
|
||||
stloc:int32(var_171_A19, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_171_A19))
|
||||
stloc:int32(var_172_A2D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_173_A38, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
|
||||
stloc:int32(var_174_A43, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
|
||||
stloc:int32(var_175_A4E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
|
||||
stloc:int32(var_176_A59, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_176_A59), ldloc:int32(var_175_A4E), ldloc:int32(var_174_A43), ldloc:int32(var_173_A38))
|
||||
stloc:int32(var_177_A6F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_177_A6F))
|
||||
stloc:int32(var_178_A82, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_178_A82))
|
||||
stloc:int32(var_179_A95, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_179_A95))
|
||||
stloc:int32(var_180_AA8, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_180_AA8))
|
||||
stloc:int32(var_181_ABC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_182_AC7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
|
||||
stloc:int32(var_183_AD2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
|
||||
stloc:int32(var_184_ADD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
stloc:int32(var_185_AE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_185_AE8), ldloc:int32(var_184_ADD), ldloc:int32(var_183_AD2), ldloc:int32(var_182_AC7))
|
||||
stloc:int32(var_186_AFE, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_186_AFE))
|
||||
stloc:int32(var_187_B11, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_187_B11))
|
||||
stloc:int32(var_188_B24, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_188_B24))
|
||||
stloc:int32(var_189_B37, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_189_B37))
|
||||
stloc:int32(var_190_B4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_191_B56, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
|
||||
stloc:int32(var_192_B61, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
|
||||
stloc:int32(var_193_B6C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
|
||||
stloc:int32(var_194_B77, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_194_B77), ldloc:int32(var_193_B6C), ldloc:int32(var_192_B61), ldloc:int32(var_191_B56))
|
||||
stloc:int32(var_195_B8D, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_195_B8D))
|
||||
stloc:int32(var_196_BA0, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_196_BA0))
|
||||
stloc:int32(var_197_BB3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_197_BB3))
|
||||
stloc:int32(var_198_BC6, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_198_BC6))
|
||||
stloc:int32(var_199_BDA, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_200_BE5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_201_BF0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_202_BFB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
|
||||
stloc:int32(var_203_C06, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_203_C06), ldloc:int32(var_202_BFB), ldloc:int32(var_201_BF0), ldloc:int32(var_200_BE5))
|
||||
stloc:int32(var_204_C1C, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_204_C1C))
|
||||
stloc:int32(var_205_C2F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_205_C2F))
|
||||
stloc:int32(var_206_C42, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_206_C42))
|
||||
stloc:int32(var_207_C55, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_207_C55))
|
||||
stloc:int32(var_208_C69, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_209_C74, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
|
||||
stloc:int32(var_210_C7F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
|
||||
stloc:int32(var_211_C8A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
|
||||
stloc:int32(var_212_C95, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_212_C95), ldloc:int32(var_211_C8A), ldloc:int32(var_210_C7F), ldloc:int32(var_209_C74))
|
||||
stloc:int32(var_213_CAB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_213_CAB))
|
||||
stloc:int32(var_214_CBE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_214_CBE))
|
||||
stloc:int32(var_215_CD1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_215_CD1))
|
||||
stloc:int32(var_216_CE4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_216_CE4))
|
||||
stloc:int32(var_217_CF8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_218_D03, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
|
||||
stloc:int32(var_219_D0E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
|
||||
stloc:int32(var_220_D19, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
|
||||
stloc:int32(var_221_D24, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_221_D24), ldloc:int32(var_220_D19), ldloc:int32(var_219_D0E), ldloc:int32(var_218_D03))
|
||||
stloc:int32(var_222_D3A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_222_D3A))
|
||||
stloc:int32(var_223_D4D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_223_D4D))
|
||||
stloc:int32(var_224_D60, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_224_D60))
|
||||
stloc:int32(var_225_D73, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_225_D73))
|
||||
stloc:int32(var_226_D87, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_227_D92, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
|
||||
stloc:int32(var_228_D9D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
|
||||
stloc:int32(var_229_DA8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
|
||||
stloc:int32(var_230_DB3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_230_DB3), ldloc:int32(var_229_DA8), ldloc:int32(var_228_D9D), ldloc:int32(var_227_D92))
|
||||
stloc:int32(var_231_DC9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_231_DC9))
|
||||
stloc:int32(var_232_DDC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_232_DDC))
|
||||
stloc:int32(var_233_DEF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_233_DEF))
|
||||
stloc:int32(var_234_E02, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_234_E02))
|
||||
stloc:int32(var_235_E16, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_236_E21, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
|
||||
stloc:int32(var_237_E2C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
|
||||
stloc:int32(var_238_E37, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
|
||||
stloc:int32(var_239_E42, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_239_E42), ldloc:int32(var_238_E37), ldloc:int32(var_237_E2C), ldloc:int32(var_236_E21))
|
||||
stloc:int32(var_240_E58, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_240_E58))
|
||||
stloc:int32(var_241_E6B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_241_E6B))
|
||||
stloc:int32(var_242_E7E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_242_E7E))
|
||||
stloc:int32(var_243_E91, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_243_E91))
|
||||
stloc:int32(var_244_EA5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_245_EB0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
|
||||
stloc:int32(var_246_EBB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
|
||||
stloc:int32(var_247_EC6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
|
||||
stloc:int32(var_248_ED1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_248_ED1), ldloc:int32(var_247_EC6), ldloc:int32(var_246_EBB), ldloc:int32(var_245_EB0))
|
||||
stloc:int32(var_249_EE7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_249_EE7))
|
||||
stloc:int32(var_250_EFA, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_250_EFA))
|
||||
stloc:int32(var_251_F0D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_251_F0D))
|
||||
stloc:int32(var_252_F20, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_252_F20))
|
||||
stloc:int32(var_253_F34, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_254_F3F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
|
||||
stloc:int32(var_255_F4A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
|
||||
stloc:int32(var_256_F55, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
|
||||
stloc:int32(var_257_F62, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_257_F62), ldloc:int32(var_256_F55), ldloc:int32(var_255_F4A), ldloc:int32(var_254_F3F))
|
||||
stloc:int32(var_258_F7E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_258_F7E))
|
||||
stloc:int32(var_259_F95, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_259_F95))
|
||||
stloc:int32(var_260_FAC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_260_FAC))
|
||||
stloc:int32(var_261_FC3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_261_FC3))
|
||||
stloc:int32(var_262_FDB, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_263_FE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
|
||||
stloc:int32(var_264_FF5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
|
||||
stloc:int32(var_265_1002, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
|
||||
stloc:int32(var_266_100F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_266_100F), ldloc:int32(var_265_1002), ldloc:int32(var_264_FF5), ldloc:int32(var_263_FE8))
|
||||
stloc:int32(var_267_102F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_267_102F))
|
||||
stloc:int32(var_268_1046, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_268_1046))
|
||||
stloc:int32(var_269_105D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_269_105D))
|
||||
stloc:int32(var_270_1074, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_270_1074))
|
||||
stloc:int32(var_271_108C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B932 RID: 47410 RVA: 0x00297F78 File Offset: 0x00296178
|
||||
[Token(Token = "0x600B932")]
|
||||
[Address(RVA = "0x1A39DF0", Offset = "0x1A38BF0", VA = "0x181A39DF0", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B932)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::EncryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_0_07))
|
||||
stloc:uint32(var_1_16, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_16))
|
||||
stloc:uint32(var_2_25, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_2_25))
|
||||
stloc:uint32(var_3_34, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stloc:int32[](var_4_3B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34))
|
||||
stloc:int32(var_5_4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_4_3B)))
|
||||
stloc:int32(var_6_53, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_7_5B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_8_65, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_3B), ldc.i4:int32(1)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34), ldloc:int32(var_6_53), ldloc:int32(var_7_5B), ldloc:int32(var_8_65))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_10_83, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_11_8C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_10_83)))
|
||||
stloc:int32(var_12_94, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_13_9C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_14_A4, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_83), ldc.i4:int32(3)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_94), ldloc:int32(var_13_9C), ldloc:int32(var_14_A4), ldloc:int32(var_15_AE))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_16_CA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_17_D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_16_CA)))
|
||||
stloc:int32(var_18_DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_21_F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_16_CA), ldc.i4:int32(5)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_DB), ldloc:int32(var_19_E3), ldloc:int32(var_20_EB), ldloc:int32(var_21_F5))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_22_111, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_23_11A, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_22_111)))
|
||||
stloc:int32(var_24_122, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_12A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_132, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_27_13C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_22_111), ldc.i4:int32(7)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_122), ldloc:int32(var_25_12A), ldloc:int32(var_26_132), ldloc:int32(var_27_13C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_28_158, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_29_161, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_28_158)))
|
||||
stloc:int32(var_30_169, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_171, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_32_179, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_33_184, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_28_158), ldc.i4:int32(9)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_169), ldloc:int32(var_31_171), ldloc:int32(var_32_179), ldloc:int32(var_33_184))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_34_1A0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_35_1A9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_34_1A0)))
|
||||
stloc:int32(var_36_1B1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_37_1B9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_38_1C1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_1CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_34_1A0), ldc.i4:int32(11)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1B1), ldloc:int32(var_37_1B9), ldloc:int32(var_38_1C1), ldloc:int32(var_39_1CC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_40_1E8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_41_1F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_40_1E8)))
|
||||
stloc:int32(var_42_1F9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_43_201, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_44_209, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_45_214, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_1E8), ldc.i4:int32(13)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_1F9), ldloc:int32(var_43_201), ldloc:int32(var_44_209), ldloc:int32(var_45_214))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_46_230, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_47_239, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_46_230)))
|
||||
stloc:int32(var_48_241, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_49_249, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_50_251, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_51_25C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_230), ldc.i4:int32(15)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_241), ldloc:int32(var_49_249), ldloc:int32(var_50_251), ldloc:int32(var_51_25C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_52_278, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_53_281, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_278)))
|
||||
stloc:int32(var_54_289, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_55_291, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_299, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_57_2A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_278), ldc.i4:int32(17)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_289), ldloc:int32(var_55_291), ldloc:int32(var_56_299), ldloc:int32(var_57_2A4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_58_2C0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_59_2C9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_58_2C0)))
|
||||
stloc:int32(var_60_2D1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_61_2D9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_62_2E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_63_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_2C0), ldc.i4:int32(19)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_2D1), ldloc:int32(var_61_2D9), ldloc:int32(var_62_2E1), ldloc:int32(var_63_2EC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_64_308, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_65_311, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_64_308)))
|
||||
stloc:int32(var_66_319, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_67_321, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_68_329, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_334, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_308), ldc.i4:int32(21)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_319), ldloc:int32(var_67_321), ldloc:int32(var_68_329), ldloc:int32(var_69_334))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_70_350, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_359, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_70_350)))
|
||||
stloc:int32(var_72_361, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_73_369, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_74_371, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_75_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_350), ldc.i4:int32(23)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_361), ldloc:int32(var_73_369), ldloc:int32(var_74_371), ldloc:int32(var_75_37C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_76_398, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_77_3A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_76_398)))
|
||||
stloc:int32(var_78_3A9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_79_3B1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_80_3B9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_81_3C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_76_398), ldc.i4:int32(25)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_3A9), ldloc:int32(var_79_3B1), ldloc:int32(var_80_3B9), ldloc:int32(var_81_3C4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_82_3E0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_83_3E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_82_3E0)))
|
||||
stloc:int32(var_84_3F1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_85_3F9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_86_401, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_87_40C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_82_3E0), ldc.i4:int32(27)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_3F1), ldloc:int32(var_85_3F9), ldloc:int32(var_86_401), ldloc:int32(var_87_40C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_88_428, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_89_431, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_88_428)))
|
||||
stloc:int32(var_90_439, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_441, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_92_449, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_93_454, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_88_428), ldc.i4:int32(29)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_439), ldloc:int32(var_91_441), ldloc:int32(var_92_449), ldloc:int32(var_93_454))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_94_470, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_95_479, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_94_470)))
|
||||
stloc:int32(var_96_481, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_97_489, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_98_491, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_99_49C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_94_470), ldc.i4:int32(31)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_481), ldloc:int32(var_97_489), ldloc:int32(var_98_491), ldloc:int32(var_99_49C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_100_4B8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_101_4C1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_100_4B8)))
|
||||
stloc:int32(var_102_4C9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_103_4D1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_104_4D9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_105_4E4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_100_4B8), ldc.i4:int32(33)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_4C9), ldloc:int32(var_103_4D1), ldloc:int32(var_104_4D9), ldloc:int32(var_105_4E4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_106_500, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_107_509, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_106_500)))
|
||||
stloc:int32(var_108_511, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_109_519, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_110_521, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_111_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_106_500), ldc.i4:int32(35)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_511), ldloc:int32(var_109_519), ldloc:int32(var_110_521), ldloc:int32(var_111_52C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_112_548, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_113_551, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_112_548)))
|
||||
stloc:int32(var_114_559, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_115_561, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_116_569, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_117_574, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_548), ldc.i4:int32(37)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_559), ldloc:int32(var_115_561), ldloc:int32(var_116_569), ldloc:int32(var_117_574))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_118_590, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_119_599, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_118_590)))
|
||||
stloc:int32(var_120_5A1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_121_5A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_122_5B1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_123_5BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_590), ldc.i4:int32(39)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_5A1), ldloc:int32(var_121_5A9), ldloc:int32(var_122_5B1), ldloc:int32(var_123_5BC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_124_5D8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_5E1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_124_5D8)))
|
||||
stloc:int32(var_126_5E9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_127_5F1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_128_5F9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_129_604, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_124_5D8), ldc.i4:int32(41)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5E9), ldloc:int32(var_127_5F1), ldloc:int32(var_128_5F9), ldloc:int32(var_129_604))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_130_620, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_131_629, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_130_620)))
|
||||
stloc:int32(var_132_631, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_133_639, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_134_641, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_135_64C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_130_620), ldc.i4:int32(43)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_631), ldloc:int32(var_133_639), ldloc:int32(var_134_641), ldloc:int32(var_135_64C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_136_668, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_137_671, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_136_668)))
|
||||
stloc:int32(var_138_679, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_681, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_140_689, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_141_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_136_668), ldc.i4:int32(45)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_679), ldloc:int32(var_139_681), ldloc:int32(var_140_689), ldloc:int32(var_141_694))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_142_6B0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_143_6B9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_142_6B0)))
|
||||
stloc:int32(var_144_6C1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_145_6C9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_146_6D1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_147_6DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_142_6B0), ldc.i4:int32(47)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_6C1), ldloc:int32(var_145_6C9), ldloc:int32(var_146_6D1), ldloc:int32(var_147_6DC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_148_6F8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_149_701, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_148_6F8)))
|
||||
stloc:int32(var_150_709, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_151_711, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_152_719, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_153_724, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_148_6F8), ldc.i4:int32(49)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_150_709), ldloc:int32(var_151_711), ldloc:int32(var_152_719), ldloc:int32(var_153_724))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_154_740, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_155_749, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_154_740)))
|
||||
stloc:int32(var_156_751, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_157_759, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_158_761, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_159_76C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_154_740), ldc.i4:int32(51)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_751), ldloc:int32(var_157_759), ldloc:int32(var_158_761), ldloc:int32(var_159_76C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_160_788, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_161_791, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_160_788)))
|
||||
stloc:int32(var_162_799, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_163_7A1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_164_7A9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_165_7B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_160_788), ldc.i4:int32(53)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_162_799), ldloc:int32(var_163_7A1), ldloc:int32(var_164_7A9), ldloc:int32(var_165_7B4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_166_7D0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_167_7D9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_166_7D0)))
|
||||
stloc:int32(var_168_7E1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_169_7E9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_170_7F1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_171_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_166_7D0), ldc.i4:int32(55)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_168_7E1), ldloc:int32(var_169_7E9), ldloc:int32(var_170_7F1), ldloc:int32(var_171_7FC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_172_818, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_173_821, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_172_818)))
|
||||
stloc:int32(var_174_829, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_175_831, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_176_839, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_177_844, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_172_818), ldc.i4:int32(57)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_174_829), ldloc:int32(var_175_831), ldloc:int32(var_176_839), ldloc:int32(var_177_844))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_178_860, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_179_869, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_178_860)))
|
||||
stloc:int32(var_180_871, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_181_879, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_182_881, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_183_88C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_178_860), ldc.i4:int32(59)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_180_871), ldloc:int32(var_181_879), ldloc:int32(var_182_881), ldloc:int32(var_183_88C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_184_8A8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_185_8B1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_184_8A8)))
|
||||
stloc:int32(var_186_8B9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_187_8C1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_188_8C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_189_8D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_184_8A8), ldc.i4:int32(61)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_186_8B9), ldloc:int32(var_187_8C1), ldloc:int32(var_188_8C9), ldloc:int32(var_189_8D4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_190_8F0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_191_8F9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_190_8F0)))
|
||||
stloc:int32(var_192_901, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_193_909, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_194_911, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_195_91C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_190_8F0), ldc.i4:int32(63)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_192_901), ldloc:int32(var_193_909), ldloc:int32(var_194_911), ldloc:int32(var_195_91C))
|
||||
stloc:int32(var_196_939, ldelem:int32([mscorlib]System.Int32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)), ldc.i4:int32(65)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B933 RID: 47411 RVA: 0x002988C0 File Offset: 0x00296AC0
|
||||
[Token(Token = "0x600B933")]
|
||||
[Address(RVA = "0x1A38100", Offset = "0x1A36F00", VA = "0x181A38100", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B933)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::DecryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_1_0E, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_0E))
|
||||
stloc:int32[](var_2_1C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_3_24, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_24))
|
||||
stloc:int32[](var_4_32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_5_3B, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_5_3B))
|
||||
stloc:int32[](var_6_4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_7_54, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stloc:int32(var_8_5C, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_64, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_6C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54), ldloc:int32(var_10_6C), ldloc:int32(var_8_5C), ldloc:int32(var_9_64))
|
||||
stloc:int32[](var_12_8D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_13_9B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_14_A3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_AB, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_16_B3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_B3), ldloc:int32(var_15_AB), ldloc:int32(var_14_A3), ldloc:int32(var_13_9B))
|
||||
stloc:int32[](var_17_C9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_18_D7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_DF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_E7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_21_EF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_EF), ldloc:int32(var_20_E7), ldloc:int32(var_19_DF), ldloc:int32(var_18_D7))
|
||||
stloc:int32[](var_22_105, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_23_113, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_24_11B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_123, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_12B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_12B), ldloc:int32(var_25_123), ldloc:int32(var_24_11B), ldloc:int32(var_23_113))
|
||||
stloc:int32[](var_27_141, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_28_14F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_29_157, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_30_15F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_167, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_167), ldloc:int32(var_30_15F), ldloc:int32(var_29_157), ldloc:int32(var_28_14F))
|
||||
stloc:int32[](var_32_17D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_33_18B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_34_193, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_35_19B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_36_1A3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1A3), ldloc:int32(var_35_19B), ldloc:int32(var_34_193), ldloc:int32(var_33_18B))
|
||||
stloc:int32[](var_37_1B9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_38_1C7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_1CF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_40_1D7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_41_1DF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_1DF), ldloc:int32(var_40_1D7), ldloc:int32(var_39_1CF), ldloc:int32(var_38_1C7))
|
||||
stloc:int32[](var_42_1F5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_43_203, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_44_20B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_45_213, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_46_21B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_21B), ldloc:int32(var_45_213), ldloc:int32(var_44_20B), ldloc:int32(var_43_203))
|
||||
stloc:int32[](var_47_231, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_48_23F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_49_247, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_50_24F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_51_257, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_257), ldloc:int32(var_50_24F), ldloc:int32(var_49_247), ldloc:int32(var_48_23F))
|
||||
stloc:int32[](var_52_26D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_53_27B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_54_283, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_55_28B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_293, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_293), ldloc:int32(var_55_28B), ldloc:int32(var_54_283), ldloc:int32(var_53_27B))
|
||||
stloc:int32[](var_57_2A9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_58_2B7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_59_2BF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_60_2C7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_61_2CF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_2CF), ldloc:int32(var_60_2C7), ldloc:int32(var_59_2BF), ldloc:int32(var_58_2B7))
|
||||
stloc:int32[](var_62_2E5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_63_2F3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_64_2FB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_65_303, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_66_30B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_30B), ldloc:int32(var_65_303), ldloc:int32(var_64_2FB), ldloc:int32(var_63_2F3))
|
||||
stloc:int32[](var_67_321, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_68_32F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_337, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_33F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_347, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_347), ldloc:int32(var_70_33F), ldloc:int32(var_69_337), ldloc:int32(var_68_32F))
|
||||
stloc:int32[](var_72_35D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_73_36B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_74_373, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_75_37B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_76_383, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_383), ldloc:int32(var_75_37B), ldloc:int32(var_74_373), ldloc:int32(var_73_36B))
|
||||
stloc:int32[](var_77_399, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_78_3A7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_79_3AF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_80_3B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_81_3BF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_3BF), ldloc:int32(var_80_3B7), ldloc:int32(var_79_3AF), ldloc:int32(var_78_3A7))
|
||||
stloc:int32[](var_82_3D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_83_3E3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_84_3EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_85_3F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_86_3FB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_3FB), ldloc:int32(var_85_3F3), ldloc:int32(var_84_3EB), ldloc:int32(var_83_3E3))
|
||||
stloc:int32[](var_87_411, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_88_41F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_89_427, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_90_42F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_437, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_437), ldloc:int32(var_90_42F), ldloc:int32(var_89_427), ldloc:int32(var_88_41F))
|
||||
stloc:int32[](var_92_44D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_93_45B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_94_463, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_95_46B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_96_473, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_473), ldloc:int32(var_95_46B), ldloc:int32(var_94_463), ldloc:int32(var_93_45B))
|
||||
stloc:int32[](var_97_489, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_98_497, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_99_49F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_100_4A7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_101_4AF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_4AF), ldloc:int32(var_100_4A7), ldloc:int32(var_99_49F), ldloc:int32(var_98_497))
|
||||
stloc:int32[](var_102_4C5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_103_4D3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_104_4DB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_105_4E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_106_4EB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_4EB), ldloc:int32(var_105_4E3), ldloc:int32(var_104_4DB), ldloc:int32(var_103_4D3))
|
||||
stloc:int32[](var_107_501, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_108_50F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_109_517, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_110_51F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_111_527, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_111_527), ldloc:int32(var_110_51F), ldloc:int32(var_109_517), ldloc:int32(var_108_50F))
|
||||
stloc:int32[](var_112_53D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_113_54B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_114_553, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_115_55B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_116_563, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_563), ldloc:int32(var_115_55B), ldloc:int32(var_114_553), ldloc:int32(var_113_54B))
|
||||
stloc:int32[](var_117_579, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_118_587, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_119_58F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_120_597, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_121_59F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_59F), ldloc:int32(var_120_597), ldloc:int32(var_119_58F), ldloc:int32(var_118_587))
|
||||
stloc:int32[](var_122_5B5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_123_5C3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_124_5CB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_5D3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_126_5DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5DB), ldloc:int32(var_125_5D3), ldloc:int32(var_124_5CB), ldloc:int32(var_123_5C3))
|
||||
stloc:int32[](var_127_5F1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_128_5FF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_129_607, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_130_60F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_131_617, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_617), ldloc:int32(var_130_60F), ldloc:int32(var_129_607), ldloc:int32(var_128_5FF))
|
||||
stloc:int32[](var_132_62D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_133_63B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_134_643, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_135_64B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_136_653, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_653), ldloc:int32(var_135_64B), ldloc:int32(var_134_643), ldloc:int32(var_133_63B))
|
||||
stloc:int32[](var_137_669, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_138_677, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_67F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_140_687, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_141_68F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_68F), ldloc:int32(var_140_687), ldloc:int32(var_139_67F), ldloc:int32(var_138_677))
|
||||
stloc:int32[](var_142_6A5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_143_6B3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_144_6BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_145_6C3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_146_6CB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_6CB), ldloc:int32(var_145_6C3), ldloc:int32(var_144_6BB), ldloc:int32(var_143_6B3))
|
||||
stloc:int32[](var_147_6E1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_148_6EF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_149_6F7, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_150_6FF, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_151_707, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_151_707), ldloc:int32(var_150_6FF), ldloc:int32(var_149_6F7), ldloc:int32(var_148_6EF))
|
||||
stloc:int32[](var_152_71D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_153_72B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_154_733, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_155_73B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_156_743, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_743), ldloc:int32(var_155_73B), ldloc:int32(var_154_733), ldloc:int32(var_153_72B))
|
||||
stloc:int32[](var_157_759, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_158_767, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_159_76F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_160_777, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_161_77F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_161_77F), ldloc:int32(var_160_777), ldloc:int32(var_159_76F), ldloc:int32(var_158_767))
|
||||
stloc:int32[](var_162_795, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B934 RID: 47412 RVA: 0x00299064 File Offset: 0x00297264
|
||||
[Token(Token = "0x600B934")]
|
||||
[Address(RVA = "0x1A3E280", Offset = "0x1A3D080", VA = "0x181A3E280")]
|
||||
public TnepresEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+670
@@ -0,0 +1,670 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB7 RID: 7351
|
||||
[Token(Token = "0x2001CB7")]
|
||||
public sealed class TwofishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B935 RID: 47413 RVA: 0x00299078 File Offset: 0x00297278
|
||||
[Token(Token = "0x600B935")]
|
||||
[Address(RVA = "0x1A41150", Offset = "0x1A3FF50", VA = "0x181A41150")]
|
||||
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: 0x0600B936 RID: 47414 RVA: 0x002991B4 File Offset: 0x002973B4
|
||||
[Token(Token = "0x600B936")]
|
||||
[Address(RVA = "0x1A3FF30", Offset = "0x1A3ED30", VA = "0x181A3FF30", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B936)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001CFB RID: 7419
|
||||
// (get) Token: 0x0600B937 RID: 47415 RVA: 0x0029921C File Offset: 0x0029741C
|
||||
[Token(Token = "0x17001CFB")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B937")]
|
||||
[Address(RVA = "0x1A41670", Offset = "0x1A40470", VA = "0x181A41670", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Twofish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001CFC RID: 7420
|
||||
// (get) Token: 0x0600B938 RID: 47416 RVA: 0x00299230 File Offset: 0x00297430
|
||||
[Token(Token = "0x17001CFC")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B938")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B939 RID: 47417 RVA: 0x00299240 File Offset: 0x00297440
|
||||
[Token(Token = "0x600B939")]
|
||||
[Address(RVA = "0x1A401E0", Offset = "0x1A3EFE0", VA = "0x181A401E0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B939)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B93A RID: 47418 RVA: 0x00299280 File Offset: 0x00297480
|
||||
[Token(Token = "0x600B93A")]
|
||||
[Address(RVA = "0x1A40400", Offset = "0x1A3F200", VA = "0x181A40400", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
if (array != 0)
|
||||
{
|
||||
this.SetKey(array);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B93B RID: 47419 RVA: 0x002992A0 File Offset: 0x002974A0
|
||||
[Token(Token = "0x600B93B")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B93C RID: 47420 RVA: 0x002992B0 File Offset: 0x002974B0
|
||||
[Token(Token = "0x600B93C")]
|
||||
[Address(RVA = "0x1A40420", Offset = "0x1A3F220", VA = "0x181A40420")]
|
||||
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: 0x0600B93D RID: 47421 RVA: 0x00299634 File Offset: 0x00297834
|
||||
[Token(Token = "0x600B93D")]
|
||||
[Address(RVA = "0x1A3ECC0", Offset = "0x1A3DAC0", VA = "0x181A3ECC0")]
|
||||
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: 0x0600B93E RID: 47422 RVA: 0x002997C4 File Offset: 0x002979C4
|
||||
[Token(Token = "0x600B93E")]
|
||||
[Address(RVA = "0x1A3E460", Offset = "0x1A3D260", VA = "0x181A3E460")]
|
||||
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: 0x0600B93F RID: 47423 RVA: 0x00299980 File Offset: 0x00297B80
|
||||
[Token(Token = "0x600B93F")]
|
||||
[Address(RVA = "0x1A3F520", Offset = "0x1A3E320", VA = "0x181A3F520")]
|
||||
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: 0x0600B940 RID: 47424 RVA: 0x00299A58 File Offset: 0x00297C58
|
||||
[Token(Token = "0x600B940")]
|
||||
[Address(RVA = "0x1A402E0", Offset = "0x1A3F0E0", VA = "0x181A402E0")]
|
||||
private int RS_MDS_Encode(int k0, int k1)
|
||||
{
|
||||
return k1;
|
||||
}
|
||||
|
||||
// Token: 0x0600B941 RID: 47425 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B941")]
|
||||
[Address(RVA = "0x1A403B0", Offset = "0x1A3F1B0", VA = "0x181A403B0")]
|
||||
private int RS_rem(int x)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B942 RID: 47426 RVA: 0x00299A68 File Offset: 0x00297C68
|
||||
[Token(Token = "0x600B942")]
|
||||
[Address(RVA = "0x1A400F0", Offset = "0x1A3EEF0", VA = "0x181A400F0")]
|
||||
private int LFSR1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B943 RID: 47427 RVA: 0x00299A78 File Offset: 0x00297C78
|
||||
[Token(Token = "0x600B943")]
|
||||
[Address(RVA = "0x1A40110", Offset = "0x1A3EF10", VA = "0x181A40110")]
|
||||
private int LFSR2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B944 RID: 47428 RVA: 0x00299A88 File Offset: 0x00297C88
|
||||
[Token(Token = "0x600B944")]
|
||||
[Address(RVA = "0x1A40170", Offset = "0x1A3EF70", VA = "0x181A40170")]
|
||||
private int Mx_X(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B945 RID: 47429 RVA: 0x00299A98 File Offset: 0x00297C98
|
||||
[Token(Token = "0x600B945")]
|
||||
[Address(RVA = "0x1A401A0", Offset = "0x1A3EFA0", VA = "0x181A401A0")]
|
||||
private int Mx_Y(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B946 RID: 47430 RVA: 0x00299AA8 File Offset: 0x00297CA8
|
||||
[Token(Token = "0x600B946")]
|
||||
[Address(RVA = "0xAAA850", Offset = "0xAA9650", VA = "0x180AAA850")]
|
||||
private int M_b0(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B947 RID: 47431 RVA: 0x00299AB8 File Offset: 0x00297CB8
|
||||
[Token(Token = "0x600B947")]
|
||||
[Address(RVA = "0x1A40140", Offset = "0x1A3EF40", VA = "0x181A40140")]
|
||||
private int M_b1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B948 RID: 47432 RVA: 0x00299AC8 File Offset: 0x00297CC8
|
||||
[Token(Token = "0x600B948")]
|
||||
[Address(RVA = "0x1A40150", Offset = "0x1A3EF50", VA = "0x181A40150")]
|
||||
private int M_b2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B949 RID: 47433 RVA: 0x00299AD8 File Offset: 0x00297CD8
|
||||
[Token(Token = "0x600B949")]
|
||||
[Address(RVA = "0x1A40160", Offset = "0x1A3EF60", VA = "0x181A40160")]
|
||||
private int M_b3(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B94A RID: 47434 RVA: 0x00299AE8 File Offset: 0x00297CE8
|
||||
[Token(Token = "0x600B94A")]
|
||||
[Address(RVA = "0x1A3FD90", Offset = "0x1A3EB90", VA = "0x181A3FD90")]
|
||||
private int Fe32_0(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[x];
|
||||
}
|
||||
|
||||
// Token: 0x0600B94B RID: 47435 RVA: 0x00299B10 File Offset: 0x00297D10
|
||||
[Token(Token = "0x600B94B")]
|
||||
[Address(RVA = "0x1A3FE60", Offset = "0x1A3EC60", VA = "0x181A3FE60")]
|
||||
private int Fe32_3(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[this];
|
||||
}
|
||||
|
||||
// Token: 0x0600B94C RID: 47436 RVA: 0x00299B38 File Offset: 0x00297D38
|
||||
[Token(Token = "0x600B94C")]
|
||||
[Address(RVA = "0x1A3E3B0", Offset = "0x1A3D1B0", VA = "0x181A3E3B0")]
|
||||
private int BytesTo32Bits(byte[] b, int p)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = p + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B94D RID: 47437 RVA: 0x00299B58 File Offset: 0x00297D58
|
||||
[Token(Token = "0x600B94D")]
|
||||
[Address(RVA = "0x1A3E310", Offset = "0x1A3D110", VA = "0x181A3E310")]
|
||||
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
||||
{
|
||||
int num = offset + 1;
|
||||
}
|
||||
|
||||
// Token: 0x040075C8 RID: 30152
|
||||
[Token(Token = "0x40075C8")]
|
||||
private static readonly byte[,] P;
|
||||
|
||||
// Token: 0x040075C9 RID: 30153
|
||||
[Token(Token = "0x40075C9")]
|
||||
private const int P_00 = 1;
|
||||
|
||||
// Token: 0x040075CA RID: 30154
|
||||
[Token(Token = "0x40075CA")]
|
||||
private const int P_01 = 0;
|
||||
|
||||
// Token: 0x040075CB RID: 30155
|
||||
[Token(Token = "0x40075CB")]
|
||||
private const int P_02 = 0;
|
||||
|
||||
// Token: 0x040075CC RID: 30156
|
||||
[Token(Token = "0x40075CC")]
|
||||
private const int P_03 = 1;
|
||||
|
||||
// Token: 0x040075CD RID: 30157
|
||||
[Token(Token = "0x40075CD")]
|
||||
private const int P_04 = 1;
|
||||
|
||||
// Token: 0x040075CE RID: 30158
|
||||
[Token(Token = "0x40075CE")]
|
||||
private const int P_10 = 0;
|
||||
|
||||
// Token: 0x040075CF RID: 30159
|
||||
[Token(Token = "0x40075CF")]
|
||||
private const int P_11 = 0;
|
||||
|
||||
// Token: 0x040075D0 RID: 30160
|
||||
[Token(Token = "0x40075D0")]
|
||||
private const int P_12 = 1;
|
||||
|
||||
// Token: 0x040075D1 RID: 30161
|
||||
[Token(Token = "0x40075D1")]
|
||||
private const int P_13 = 1;
|
||||
|
||||
// Token: 0x040075D2 RID: 30162
|
||||
[Token(Token = "0x40075D2")]
|
||||
private const int P_14 = 0;
|
||||
|
||||
// Token: 0x040075D3 RID: 30163
|
||||
[Token(Token = "0x40075D3")]
|
||||
private const int P_20 = 1;
|
||||
|
||||
// Token: 0x040075D4 RID: 30164
|
||||
[Token(Token = "0x40075D4")]
|
||||
private const int P_21 = 1;
|
||||
|
||||
// Token: 0x040075D5 RID: 30165
|
||||
[Token(Token = "0x40075D5")]
|
||||
private const int P_22 = 0;
|
||||
|
||||
// Token: 0x040075D6 RID: 30166
|
||||
[Token(Token = "0x40075D6")]
|
||||
private const int P_23 = 0;
|
||||
|
||||
// Token: 0x040075D7 RID: 30167
|
||||
[Token(Token = "0x40075D7")]
|
||||
private const int P_24 = 0;
|
||||
|
||||
// Token: 0x040075D8 RID: 30168
|
||||
[Token(Token = "0x40075D8")]
|
||||
private const int P_30 = 0;
|
||||
|
||||
// Token: 0x040075D9 RID: 30169
|
||||
[Token(Token = "0x40075D9")]
|
||||
private const int P_31 = 1;
|
||||
|
||||
// Token: 0x040075DA RID: 30170
|
||||
[Token(Token = "0x40075DA")]
|
||||
private const int P_32 = 1;
|
||||
|
||||
// Token: 0x040075DB RID: 30171
|
||||
[Token(Token = "0x40075DB")]
|
||||
private const int P_33 = 0;
|
||||
|
||||
// Token: 0x040075DC RID: 30172
|
||||
[Token(Token = "0x40075DC")]
|
||||
private const int P_34 = 1;
|
||||
|
||||
// Token: 0x040075DD RID: 30173
|
||||
[Token(Token = "0x40075DD")]
|
||||
private const int GF256_FDBK = 361;
|
||||
|
||||
// Token: 0x040075DE RID: 30174
|
||||
[Token(Token = "0x40075DE")]
|
||||
private const int GF256_FDBK_2 = 180;
|
||||
|
||||
// Token: 0x040075DF RID: 30175
|
||||
[Token(Token = "0x40075DF")]
|
||||
private const int GF256_FDBK_4 = 90;
|
||||
|
||||
// Token: 0x040075E0 RID: 30176
|
||||
[Token(Token = "0x40075E0")]
|
||||
private const int RS_GF_FDBK = 333;
|
||||
|
||||
// Token: 0x040075E1 RID: 30177
|
||||
[Token(Token = "0x40075E1")]
|
||||
private const int ROUNDS = 16;
|
||||
|
||||
// Token: 0x040075E2 RID: 30178
|
||||
[Token(Token = "0x40075E2")]
|
||||
private const int MAX_ROUNDS = 16;
|
||||
|
||||
// Token: 0x040075E3 RID: 30179
|
||||
[Token(Token = "0x40075E3")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040075E4 RID: 30180
|
||||
[Token(Token = "0x40075E4")]
|
||||
private const int MAX_KEY_BITS = 256;
|
||||
|
||||
// Token: 0x040075E5 RID: 30181
|
||||
[Token(Token = "0x40075E5")]
|
||||
private const int INPUT_WHITEN = 0;
|
||||
|
||||
// Token: 0x040075E6 RID: 30182
|
||||
[Token(Token = "0x40075E6")]
|
||||
private const int OUTPUT_WHITEN = 4;
|
||||
|
||||
// Token: 0x040075E7 RID: 30183
|
||||
[Token(Token = "0x40075E7")]
|
||||
private const int ROUND_SUBKEYS = 8;
|
||||
|
||||
// Token: 0x040075E8 RID: 30184
|
||||
[Token(Token = "0x40075E8")]
|
||||
private const int TOTAL_SUBKEYS = 40;
|
||||
|
||||
// Token: 0x040075E9 RID: 30185
|
||||
[Token(Token = "0x40075E9")]
|
||||
private const int SK_STEP = 33686018;
|
||||
|
||||
// Token: 0x040075EA RID: 30186
|
||||
[Token(Token = "0x40075EA")]
|
||||
private const int SK_BUMP = 16843009;
|
||||
|
||||
// Token: 0x040075EB RID: 30187
|
||||
[Token(Token = "0x40075EB")]
|
||||
private const int SK_ROTL = 9;
|
||||
|
||||
// Token: 0x040075EC RID: 30188
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075EC")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x040075ED RID: 30189
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075ED")]
|
||||
private int[] gMDS0;
|
||||
|
||||
// Token: 0x040075EE RID: 30190
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075EE")]
|
||||
private int[] gMDS1;
|
||||
|
||||
// Token: 0x040075EF RID: 30191
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075EF")]
|
||||
private int[] gMDS2;
|
||||
|
||||
// Token: 0x040075F0 RID: 30192
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075F0")]
|
||||
private int[] gMDS3;
|
||||
|
||||
// Token: 0x040075F1 RID: 30193
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40075F1")]
|
||||
private int[] gSubKeys;
|
||||
|
||||
// Token: 0x040075F2 RID: 30194
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40075F2")]
|
||||
private int[] gSBox;
|
||||
|
||||
// Token: 0x040075F3 RID: 30195
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40075F3")]
|
||||
private int k64Cnt;
|
||||
|
||||
// Token: 0x040075F4 RID: 30196
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40075F4")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB8 RID: 7352
|
||||
[Token(Token = "0x2001CB8")]
|
||||
public class VmpcEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x17001CFD RID: 7421
|
||||
// (get) Token: 0x0600B94F RID: 47439 RVA: 0x00299B80 File Offset: 0x00297D80
|
||||
[Token(Token = "0x17001CFD")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B94F")]
|
||||
[Address(RVA = "0x1A42070", Offset = "0x1A40E70", VA = "0x181A42070", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B950 RID: 47440 RVA: 0x00299B94 File Offset: 0x00297D94
|
||||
[Token(Token = "0x600B950")]
|
||||
[Address(RVA = "0x1A419D0", Offset = "0x1A407D0", VA = "0x181A419D0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B950)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B951 RID: 47441 RVA: 0x00299BF8 File Offset: 0x00297DF8
|
||||
[Token(Token = "0x600B951")]
|
||||
[Address(RVA = "0x1A416A0", Offset = "0x1A404A0", VA = "0x181A416A0", 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: 0x0600B952 RID: 47442 RVA: 0x00299CF0 File Offset: 0x00297EF0
|
||||
[Token(Token = "0x600B952")]
|
||||
[Address(RVA = "0x1A41C20", Offset = "0x1A40A20", VA = "0x181A41C20", 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: 0x0600B953 RID: 47443 RVA: 0x00299D68 File Offset: 0x00297F68
|
||||
[Token(Token = "0x600B953")]
|
||||
[Address(RVA = "0x1A41EB0", Offset = "0x1A40CB0", VA = "0x181A41EB0", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
string algorithmName = ((IStreamCipher)this).AlgorithmName;
|
||||
}
|
||||
|
||||
// Token: 0x0600B954 RID: 47444 RVA: 0x00299D7C File Offset: 0x00297F7C
|
||||
[Token(Token = "0x600B954")]
|
||||
[Address(RVA = "0x1A41ED0", Offset = "0x1A40CD0", VA = "0x181A41ED0", 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: 0x0600B955 RID: 47445 RVA: 0x00299DE0 File Offset: 0x00297FE0
|
||||
[Token(Token = "0x600B955")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public VmpcEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040075F5 RID: 30197
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075F5")]
|
||||
protected byte n;
|
||||
|
||||
// Token: 0x040075F6 RID: 30198
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075F6")]
|
||||
protected byte[] P;
|
||||
|
||||
// Token: 0x040075F7 RID: 30199
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075F7")]
|
||||
protected byte s;
|
||||
|
||||
// Token: 0x040075F8 RID: 30200
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075F8")]
|
||||
protected byte[] workingIV;
|
||||
|
||||
// Token: 0x040075F9 RID: 30201
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075F9")]
|
||||
protected byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CB9 RID: 7353
|
||||
[Token(Token = "0x2001CB9")]
|
||||
public class VmpcKsa3Engine : VmpcEngine
|
||||
{
|
||||
// Token: 0x17001CFE RID: 7422
|
||||
// (get) Token: 0x0600B956 RID: 47446 RVA: 0x00299DF4 File Offset: 0x00297FF4
|
||||
[Token(Token = "0x17001CFE")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B956")]
|
||||
[Address(RVA = "0x1A42500", Offset = "0x1A41300", VA = "0x181A42500", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC-KSA3";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B957 RID: 47447 RVA: 0x00299E08 File Offset: 0x00298008
|
||||
[Token(Token = "0x600B957")]
|
||||
[Address(RVA = "0x1A420A0", Offset = "0x1A40EA0", VA = "0x181A420A0", 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: 0x0600B958 RID: 47448 RVA: 0x00299F78 File Offset: 0x00298178
|
||||
[Token(Token = "0x600B958")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public VmpcKsa3Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CBA RID: 7354
|
||||
[Token(Token = "0x2001CBA")]
|
||||
public class XSalsa20Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x17001CFF RID: 7423
|
||||
// (get) Token: 0x0600B959 RID: 47449 RVA: 0x00299F8C File Offset: 0x0029818C
|
||||
[Token(Token = "0x17001CFF")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B959")]
|
||||
[Address(RVA = "0x1A42A70", Offset = "0x1A41870", VA = "0x181A42A70", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "XSalsa20";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D00 RID: 7424
|
||||
// (get) Token: 0x0600B95A RID: 47450 RVA: 0x00299FA0 File Offset: 0x002981A0
|
||||
[Token(Token = "0x17001D00")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600B95A")]
|
||||
[Address(RVA = "0x4B5FE0", Offset = "0x4B4DE0", VA = "0x1804B5FE0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B95B RID: 47451 RVA: 0x00299FB0 File Offset: 0x002981B0
|
||||
[Token(Token = "0x600B95B")]
|
||||
[Address(RVA = "0x1A42530", Offset = "0x1A41330", VA = "0x181A42530", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B95B)
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B95C RID: 47452 RVA: 0x0029A138 File Offset: 0x00298338
|
||||
[Token(Token = "0x600B95C")]
|
||||
[Address(RVA = "0x1A42A10", Offset = "0x1A41810", VA = "0x181A42A10")]
|
||||
public XSalsa20Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001CBB RID: 7355
|
||||
[Token(Token = "0x2001CBB")]
|
||||
public class XteaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600B95D RID: 47453 RVA: 0x0029A14C File Offset: 0x0029834C
|
||||
[Token(Token = "0x600B95D")]
|
||||
[Address(RVA = "0x1A42FB0", Offset = "0x1A41DB0", VA = "0x181A42FB0")]
|
||||
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: 0x17001D01 RID: 7425
|
||||
// (get) Token: 0x0600B95E RID: 47454 RVA: 0x0029A194 File Offset: 0x00298394
|
||||
[Token(Token = "0x17001D01")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B95E")]
|
||||
[Address(RVA = "0x1A43260", Offset = "0x1A42060", VA = "0x181A43260", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "XTEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D02 RID: 7426
|
||||
// (get) Token: 0x0600B95F RID: 47455 RVA: 0x0029A1A8 File Offset: 0x002983A8
|
||||
[Token(Token = "0x17001D02")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600B95F")]
|
||||
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B960 RID: 47456 RVA: 0x0029A1B8 File Offset: 0x002983B8
|
||||
[Token(Token = "0x600B960")]
|
||||
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600B961 RID: 47457 RVA: 0x0029A1C8 File Offset: 0x002983C8
|
||||
[Token(Token = "0x600B961")]
|
||||
[Address(RVA = "0x1A42AA0", Offset = "0x1A418A0", VA = "0x181A42AA0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B961)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A2:
|
||||
stloc:ArgumentException(var_13_B3, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_12))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B962 RID: 47458 RVA: 0x0029A28C File Offset: 0x0029848C
|
||||
[Token(Token = "0x600B962")]
|
||||
[Address(RVA = "0x1A42D40", Offset = "0x1A41B40", VA = "0x181A42D40", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B962)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7F:
|
||||
stloc:InvalidOperationException(var_12_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_11)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600B963 RID: 47459 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600B963")]
|
||||
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600B964 RID: 47460 RVA: 0x0029A320 File Offset: 0x00298520
|
||||
[Token(Token = "0x600B964")]
|
||||
[Address(RVA = "0x1A43290", Offset = "0x1A42090", VA = "0x181A43290")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] s = this._S;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
num += 4;
|
||||
num++;
|
||||
s[0] = num2;
|
||||
uint[] s2 = this._S;
|
||||
uint[] sum = this._sum0;
|
||||
uint num3 = s2[num];
|
||||
num3 += (uint)num;
|
||||
sum[0] = num3;
|
||||
uint[] s3 = this._S;
|
||||
uint[] sum2 = this._sum1;
|
||||
uint num4 = s3[num];
|
||||
num++;
|
||||
num4 += (uint)num;
|
||||
sum2[0] = num4;
|
||||
}
|
||||
|
||||
// Token: 0x0600B965 RID: 47461 RVA: 0x0029A3AC File Offset: 0x002985AC
|
||||
[Token(Token = "0x600B965")]
|
||||
[Address(RVA = "0x1A43140", Offset = "0x1A41F40", VA = "0x181A43140")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint[] sum = this._sum0;
|
||||
int num3 = 0;
|
||||
uint[] sum2 = this._sum1;
|
||||
num2 += num2;
|
||||
num += num2;
|
||||
num2 = num;
|
||||
num3++;
|
||||
num2 += num;
|
||||
num2 += num2;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B966 RID: 47462 RVA: 0x0029A3FC File Offset: 0x002985FC
|
||||
[Token(Token = "0x600B966")]
|
||||
[Address(RVA = "0x1A43030", Offset = "0x1A41E30", VA = "0x181A43030")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint[] sum = this._sum1;
|
||||
uint[] sum2 = this._sum0;
|
||||
num2 = num;
|
||||
num += num;
|
||||
num2 -= num;
|
||||
num = num2;
|
||||
num += num2;
|
||||
num -= num;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x040075FA RID: 30202
|
||||
[Token(Token = "0x40075FA")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x040075FB RID: 30203
|
||||
[Token(Token = "0x40075FB")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x040075FC RID: 30204
|
||||
[Token(Token = "0x40075FC")]
|
||||
private const int delta = -1640531527;
|
||||
|
||||
// Token: 0x040075FD RID: 30205
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075FD")]
|
||||
private uint[] _S;
|
||||
|
||||
// Token: 0x040075FE RID: 30206
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075FE")]
|
||||
private uint[] _sum0;
|
||||
|
||||
// Token: 0x040075FF RID: 30207
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075FF")]
|
||||
private uint[] _sum1;
|
||||
|
||||
// Token: 0x04007600 RID: 30208
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007600")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x04007601 RID: 30209
|
||||
[FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x4007601")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user