m
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: 0x02001D60 RID: 7520
|
||||
[Token(Token = "0x2001D60")]
|
||||
public class AesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BA88 RID: 47752 RVA: 0x0028A6A4 File Offset: 0x002888A4
|
||||
[Token(Token = "0x600BA88")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA89 RID: 47753 RVA: 0x0028A6B4 File Offset: 0x002888B4
|
||||
[Token(Token = "0x600BA89")]
|
||||
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA89)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::FFmulX(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8A RID: 47754 RVA: 0x0028A6C8 File Offset: 0x002888C8
|
||||
[Token(Token = "0x600BA8A")]
|
||||
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8B RID: 47755 RVA: 0x0028A6D8 File Offset: 0x002888D8
|
||||
[Token(Token = "0x600BA8B")]
|
||||
[Address(RVA = "0x248F0D0", Offset = "0x248E0D0", VA = "0x18248F0D0")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8C RID: 47756 RVA: 0x0028A6E8 File Offset: 0x002888E8
|
||||
[Token(Token = "0x600BA8C")]
|
||||
[Address(RVA = "0x248F380", Offset = "0x248E380", VA = "0x18248F380")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8D RID: 47757 RVA: 0x0028A708 File Offset: 0x00288908
|
||||
[Token(Token = "0x600BA8D")]
|
||||
[Address(RVA = "0x248D8F0", Offset = "0x248C8F0", VA = "0x18248D8F0")]
|
||||
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
|
||||
{
|
||||
uint[][] array;
|
||||
int i;
|
||||
for (;;)
|
||||
{
|
||||
if (key.Length == 7)
|
||||
{
|
||||
this.ROUNDS = key;
|
||||
array = new uint[key][];
|
||||
i = 0;
|
||||
uint[] array2 = new uint[4];
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
i++;
|
||||
array[0] = array2;
|
||||
while (i <= this.rcon)
|
||||
{
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_3FB;
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle != 0)
|
||||
{
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_1E5;
|
||||
}
|
||||
uint num;
|
||||
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
uint[] array3 = array[0];
|
||||
array3[0] = (uint)i;
|
||||
uint[] array4 = array[0];
|
||||
array4[0] = array3;
|
||||
uint[] array5 = array[0];
|
||||
array5[1] = array4;
|
||||
uint[] array6 = array[0];
|
||||
array6[1] = array5;
|
||||
uint[] array7 = array[1];
|
||||
array7[0] = array6;
|
||||
uint[] array8 = array[1];
|
||||
array8[0] = array7;
|
||||
uint[] array9 = array[1];
|
||||
array9[1] = array8;
|
||||
array[1][1] = array9;
|
||||
uint num2;
|
||||
num2 += num2;
|
||||
uint num3 = AesEngine.SubWord(array9);
|
||||
ulong num4;
|
||||
array[(int)num4][0] = i;
|
||||
array[(int)num4][0] = array3;
|
||||
array[(int)num4][1] = array4;
|
||||
array[(int)num4][1] = array5;
|
||||
uint num5 = AesEngine.SubWord(array5);
|
||||
ulong num6 = num4 + 1UL;
|
||||
array[(int)num6][0] = array6;
|
||||
array[(int)num6][0] = array7;
|
||||
array[(int)num6][1] = array8;
|
||||
array[(int)num6][1] = array9;
|
||||
uint num7 = AesEngine.SubWord(array9);
|
||||
array[14][0] = (uint)i;
|
||||
array[14][0] = array3;
|
||||
array[14][1] = array4;
|
||||
uint[] array10 = array[14];
|
||||
array10[1] = array5;
|
||||
IL_1E5:
|
||||
uint[] array11 = array[0];
|
||||
array11[0] = array10;
|
||||
uint[] array12 = array[0];
|
||||
array12[0] = array11;
|
||||
uint[] array13 = array[0];
|
||||
array13[1] = array12;
|
||||
uint[] array14 = array[0];
|
||||
array14[1] = array13;
|
||||
uint[] array15 = array[1];
|
||||
array15[0] = array14;
|
||||
array[1][0] = array15;
|
||||
uint num8 = AesEngine.SubWord(array15);
|
||||
array[1][1] = num8;
|
||||
array[1][1] = array11;
|
||||
array[2][0] = array12;
|
||||
array[2][0] = array13;
|
||||
array[2][1] = array14;
|
||||
array[2][1] = array15;
|
||||
ulong num9;
|
||||
num9 += num9;
|
||||
uint num10 = AesEngine.SubWord(array15);
|
||||
uint num11;
|
||||
array[(int)num11][0] = num8;
|
||||
array[(int)num11][0] = array11;
|
||||
array[(int)num11][1] = array12;
|
||||
array[(int)num11][1] = array13;
|
||||
uint num12 = num11 + 1U;
|
||||
array[(int)num12][0] = array14;
|
||||
array[(int)num12][0] = array15;
|
||||
num9 += num9;
|
||||
uint num13 = AesEngine.SubWord(array15);
|
||||
array[(int)num12][1] = num8;
|
||||
array[(int)num12][1] = array11;
|
||||
num11 += (uint)2;
|
||||
array[(int)num11][0] = array12;
|
||||
array[(int)num11][0] = array13;
|
||||
array[(int)num11][1] = array14;
|
||||
uint[] array16 = array[(int)num11];
|
||||
num11 += (uint)3;
|
||||
array16[1] = array15;
|
||||
uint num14 = AesEngine.SubWord(array15);
|
||||
array[12][0] = num8;
|
||||
array[12][0] = array11;
|
||||
array[12][1] = array12;
|
||||
uint[] array17 = array[12];
|
||||
array17[1] = array13;
|
||||
IL_3FB:
|
||||
uint[] array18 = array[0];
|
||||
array18[0] = array17;
|
||||
uint[] array19 = array[0];
|
||||
array19[0] = array18;
|
||||
uint[] array20 = array[0];
|
||||
array20[1] = array19;
|
||||
array[0][1] = array20;
|
||||
uint num15 = AesEngine.SubWord(array20);
|
||||
byte[] array21 = AesEngine.rcon;
|
||||
uint num17;
|
||||
uint num16 = num17 - 1U;
|
||||
array[(int)num17][0] = array17;
|
||||
array[(int)num17][0] = array18;
|
||||
array[(int)num17][1] = array19;
|
||||
uint[] array22 = array[(int)num17];
|
||||
num17 += (uint)1;
|
||||
array22[1] = array20;
|
||||
while (num17 <= (uint)10)
|
||||
{
|
||||
}
|
||||
int num18 = 0;
|
||||
uint[] array23 = array[(int)num17];
|
||||
uint num19 = AesEngine.Inv_Mcol(array23[num18]);
|
||||
num18++;
|
||||
array23[0] = num19;
|
||||
num17 += (uint)1;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8E RID: 47758 RVA: 0x0028ABFC File Offset: 0x00288DFC
|
||||
[Token(Token = "0x600BA8E")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public AesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA8F RID: 47759 RVA: 0x0028AC10 File Offset: 0x00288E10
|
||||
[Token(Token = "0x600BA8F")]
|
||||
[Address(RVA = "0x248EF20", Offset = "0x248DF20", VA = "0x18248EF20", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA8F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_38:
|
||||
stloc:ArgumentException(var_5_49, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_4))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D51 RID: 7505
|
||||
// (get) Token: 0x0600BA90 RID: 47760 RVA: 0x0028AC68 File Offset: 0x00288E68
|
||||
[Token(Token = "0x17001D51")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BA90")]
|
||||
[Address(RVA = "0x248F650", Offset = "0x248E650", VA = "0x18248F650", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D52 RID: 7506
|
||||
// (get) Token: 0x0600BA91 RID: 47761 RVA: 0x0028AC7C File Offset: 0x00288E7C
|
||||
[Token(Token = "0x17001D52")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BA91")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA92 RID: 47762 RVA: 0x0028AC8C File Offset: 0x00288E8C
|
||||
[Token(Token = "0x600BA92")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA93 RID: 47763 RVA: 0x0028AC9C File Offset: 0x00288E9C
|
||||
[Token(Token = "0x600BA93")]
|
||||
[Address(RVA = "0x248F200", Offset = "0x248E200", VA = "0x18248F200", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA93)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5D:
|
||||
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA94 RID: 47764 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BA94")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BA95 RID: 47765 RVA: 0x0028AD14 File Offset: 0x00288F14
|
||||
[Token(Token = "0x600BA95")]
|
||||
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BA96 RID: 47766 RVA: 0x0028AD24 File Offset: 0x00288F24
|
||||
[Token(Token = "0x600BA96")]
|
||||
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
|
||||
private void PackBlock(byte[] bytes, int off)
|
||||
{
|
||||
Ed25519.Encode32(this.C0, bytes, off);
|
||||
Ed25519.Encode32(this.C1, bytes, off);
|
||||
Ed25519.Encode32(this.C2, bytes, off);
|
||||
Ed25519.Encode32(this.C3, bytes, off);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA97 RID: 47767 RVA: 0x0028AD68 File Offset: 0x00288F68
|
||||
[Token(Token = "0x600BA97")]
|
||||
[Address(RVA = "0x248C580", Offset = "0x248B580", VA = "0x18248C580")]
|
||||
private void EncryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array = KW[0];
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
if (array > (uint)1)
|
||||
{
|
||||
uint[] t = AesEngine.T0;
|
||||
int length3 = t.Length;
|
||||
num2 = num4;
|
||||
uint[] array2;
|
||||
int length4 = array2.Length;
|
||||
uint num5 = t[(int)num2];
|
||||
num2 = num5;
|
||||
uint num6 = t[(int)num2];
|
||||
num2 = num6;
|
||||
num = num2;
|
||||
num2 = num3;
|
||||
num6 = num2;
|
||||
num2 = num4;
|
||||
num5 = num2;
|
||||
num2 = num;
|
||||
uint num7 = t[(int)num2];
|
||||
uint num8 = t[(int)num5];
|
||||
uint num9 = t[(int)num6];
|
||||
num = num3;
|
||||
num2 = num4;
|
||||
num9 = num2;
|
||||
num2 = num;
|
||||
num8 = num2;
|
||||
uint num10 = t[(int)num2];
|
||||
uint num11 = t[(int)num8];
|
||||
uint num12 = t[(int)num9];
|
||||
num2 = num12;
|
||||
num12 = num;
|
||||
num11 = num2;
|
||||
uint num13 = t[(int)num3];
|
||||
num = num13;
|
||||
uint num14 = t[(int)num11];
|
||||
uint num15 = t[(int)num12];
|
||||
uint num16;
|
||||
num16 += (uint)1;
|
||||
num15 = num7;
|
||||
num7 = num10;
|
||||
num14 = num7;
|
||||
uint num17 = t[(int)num14];
|
||||
uint num18 = t[(int)num15];
|
||||
num7 = num18;
|
||||
num3 = num7;
|
||||
num7 = num10;
|
||||
num18 = num7;
|
||||
num7 = num;
|
||||
num17 = num7;
|
||||
uint num19 = t[(int)num17];
|
||||
uint num20 = t[(int)num18];
|
||||
num7 = num;
|
||||
num20 = num7;
|
||||
num19 = num7;
|
||||
uint num21 = t[(int)num19];
|
||||
num7 = t[(int)num20];
|
||||
}
|
||||
uint[] t2 = AesEngine.T0;
|
||||
int length5 = t2.Length;
|
||||
num = num2;
|
||||
uint num22 = t2[(int)num];
|
||||
num2 = num3;
|
||||
num = num2;
|
||||
num2 = num4;
|
||||
uint num23 = t2[(int)num2];
|
||||
uint[] array3;
|
||||
int length6 = array3.Length;
|
||||
num2 = num;
|
||||
uint num24 = t2[(int)num2];
|
||||
num24 = num3;
|
||||
uint num25 = t2[(int)num24];
|
||||
num25 = num2;
|
||||
uint num26 = t2[(int)num25];
|
||||
uint num27 = t2[(int)num3];
|
||||
uint num28;
|
||||
num28 += (uint)1;
|
||||
int length7 = AesEngine.S.Length;
|
||||
int length8 = AesEngine.S.Length;
|
||||
int length9 = AesEngine.S.Length;
|
||||
byte[] array4 = AesEngine.S;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA98 RID: 47768 RVA: 0x0028B040 File Offset: 0x00289240
|
||||
[Token(Token = "0x600BA98")]
|
||||
[Address(RVA = "0x248B270", Offset = "0x248A270", VA = "0x18248B270")]
|
||||
private void DecryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array;
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[1];
|
||||
uint num3 = array[1];
|
||||
if (array > (ulong)1L)
|
||||
{
|
||||
uint[] array2 = KW[array];
|
||||
uint[] tinv = AesEngine.Tinv0;
|
||||
int length3 = tinv.Length;
|
||||
num3 = num2;
|
||||
int length4 = array2.Length;
|
||||
uint num4 = tinv[(int)num3];
|
||||
uint num5 = tinv[(int)num3];
|
||||
num3 = num5;
|
||||
uint num6 = tinv[(int)num3];
|
||||
num3 = num;
|
||||
num6 = num3;
|
||||
num5 = num3;
|
||||
uint num7 = tinv[(int)num5];
|
||||
uint num8 = tinv[(int)num6];
|
||||
num3 = num8;
|
||||
num = num2;
|
||||
num8 = num3;
|
||||
num3 = num;
|
||||
num7 = num3;
|
||||
uint num9 = tinv[(int)num7];
|
||||
uint num10 = tinv[(int)num8];
|
||||
num3 = num10;
|
||||
num10 = num2;
|
||||
num = tinv[(int)num];
|
||||
uint num11 = tinv[(int)num9];
|
||||
uint num12 = tinv[(int)num10];
|
||||
num2 = num4;
|
||||
num12 = num;
|
||||
num11 = num;
|
||||
uint num13 = tinv[(int)num11];
|
||||
uint num14 = tinv[(int)num12];
|
||||
num = num4;
|
||||
num14 = num;
|
||||
num13 = num;
|
||||
uint num15 = tinv[(int)num];
|
||||
uint num16 = tinv[(int)num13];
|
||||
uint num17 = tinv[(int)num14];
|
||||
num = num17;
|
||||
num16 = num;
|
||||
num = num4;
|
||||
num17 = num;
|
||||
num = tinv[(int)num16];
|
||||
num = tinv[(int)num17];
|
||||
}
|
||||
uint[] array3 = KW[1];
|
||||
uint[] tinv2 = AesEngine.Tinv0;
|
||||
int length5 = tinv2.Length;
|
||||
num = num3;
|
||||
uint num18 = tinv2[(int)num];
|
||||
num3 = num2;
|
||||
num = num3;
|
||||
uint num19 = tinv2[(int)num3];
|
||||
int length6 = array3.Length;
|
||||
num3 = num;
|
||||
num19 = num3;
|
||||
uint num20 = tinv2[(int)num19];
|
||||
num3 = num2;
|
||||
uint num21 = tinv2[(int)num3];
|
||||
num3 = num20;
|
||||
num21 = num2;
|
||||
uint num22 = tinv2[(int)num21];
|
||||
num22 = num3;
|
||||
uint num23 = tinv2[(int)num22];
|
||||
num20 = num23;
|
||||
num22 = num2;
|
||||
uint num24 = tinv2[(int)num22];
|
||||
uint num25 = tinv2[(int)num22];
|
||||
uint num26 = tinv2[(int)num];
|
||||
int length7 = AesEngine.Si.Length;
|
||||
byte[] si = AesEngine.Si;
|
||||
num23 = num20;
|
||||
int length8 = AesEngine.Si.Length;
|
||||
byte b = AesEngine.Si[(int)num23];
|
||||
}
|
||||
|
||||
// Token: 0x0600BA99 RID: 47769 RVA: 0x0028B2F0 File Offset: 0x002894F0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BA99")]
|
||||
[Address(RVA = "0x248F510", Offset = "0x248E510", VA = "0x18248F510")]
|
||||
static AesEngine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
|
||||
AesEngine.S = array;
|
||||
byte[] array2 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
|
||||
AesEngine.Si = array2;
|
||||
byte[] array3 = new byte[30];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
|
||||
AesEngine.rcon = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
|
||||
AesEngine.T0 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
|
||||
AesEngine.Tinv0 = array5;
|
||||
}
|
||||
|
||||
// Token: 0x04007581 RID: 30081
|
||||
[Token(Token = "0x4007581")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x04007582 RID: 30082
|
||||
[Token(Token = "0x4007582")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x04007583 RID: 30083
|
||||
[Token(Token = "0x4007583")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x04007584 RID: 30084
|
||||
[Token(Token = "0x4007584")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x04007585 RID: 30085
|
||||
[Token(Token = "0x4007585")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x04007586 RID: 30086
|
||||
[Token(Token = "0x4007586")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x04007587 RID: 30087
|
||||
[Token(Token = "0x4007587")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x04007588 RID: 30088
|
||||
[Token(Token = "0x4007588")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x04007589 RID: 30089
|
||||
[Token(Token = "0x4007589")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x0400758A RID: 30090
|
||||
[Token(Token = "0x400758A")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x0400758B RID: 30091
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400758B")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x0400758C RID: 30092
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400758C")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x0400758D RID: 30093
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400758D")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x0400758E RID: 30094
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x400758E")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x0400758F RID: 30095
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400758F")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x04007590 RID: 30096
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4007590")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x04007591 RID: 30097
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007591")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007592 RID: 30098
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007592")]
|
||||
private byte[] s;
|
||||
|
||||
// Token: 0x04007593 RID: 30099
|
||||
[Token(Token = "0x4007593")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D61 RID: 7521
|
||||
[Token(Token = "0x2001D61")]
|
||||
[Obsolete]
|
||||
public class AesFastEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BA9A RID: 47770 RVA: 0x0028B38C File Offset: 0x0028958C
|
||||
[Token(Token = "0x600BA9A")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA9B RID: 47771 RVA: 0x0028B39C File Offset: 0x0028959C
|
||||
[Token(Token = "0x600BA9B")]
|
||||
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA9B)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::FFmulX(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA9C RID: 47772 RVA: 0x0028B3B0 File Offset: 0x002895B0
|
||||
[Token(Token = "0x600BA9C")]
|
||||
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA9D RID: 47773 RVA: 0x0028B3C0 File Offset: 0x002895C0
|
||||
[Token(Token = "0x600BA9D")]
|
||||
[Address(RVA = "0x2493240", Offset = "0x2492240", VA = "0x182493240")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA9E RID: 47774 RVA: 0x0028B3D0 File Offset: 0x002895D0
|
||||
[Token(Token = "0x600BA9E")]
|
||||
[Address(RVA = "0x2493480", Offset = "0x2492480", VA = "0x182493480")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesFastEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA9F RID: 47775 RVA: 0x0028B3F0 File Offset: 0x002895F0
|
||||
[Token(Token = "0x600BA9F")]
|
||||
[Address(RVA = "0x2491B00", Offset = "0x2490B00", VA = "0x182491B00")]
|
||||
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
|
||||
{
|
||||
uint[][] array;
|
||||
int i;
|
||||
for (;;)
|
||||
{
|
||||
if (key.Length == 7)
|
||||
{
|
||||
this.ROUNDS = key;
|
||||
array = new uint[key][];
|
||||
i = 0;
|
||||
uint[] array2 = new uint[4];
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
i++;
|
||||
array[0] = array2;
|
||||
while (i <= this.ROUNDS)
|
||||
{
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_3FB;
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle != 0)
|
||||
{
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_1E5;
|
||||
}
|
||||
uint num;
|
||||
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
uint[] array3 = array[0];
|
||||
array3[0] = (uint)i;
|
||||
uint[] array4 = array[0];
|
||||
array4[0] = array3;
|
||||
uint[] array5 = array[0];
|
||||
array5[1] = array4;
|
||||
uint[] array6 = array[0];
|
||||
array6[1] = array5;
|
||||
uint[] array7 = array[1];
|
||||
array7[0] = array6;
|
||||
uint[] array8 = array[1];
|
||||
array8[0] = array7;
|
||||
uint[] array9 = array[1];
|
||||
array9[1] = array8;
|
||||
array[1][1] = array9;
|
||||
uint num2;
|
||||
num2 += num2;
|
||||
uint num3 = AesFastEngine.SubWord(array9);
|
||||
ulong num4;
|
||||
array[(int)num4][0] = i;
|
||||
array[(int)num4][0] = array3;
|
||||
array[(int)num4][1] = array4;
|
||||
array[(int)num4][1] = array5;
|
||||
uint num5 = AesFastEngine.SubWord(array5);
|
||||
ulong num6 = num4 + 1UL;
|
||||
array[(int)num6][0] = array6;
|
||||
array[(int)num6][0] = array7;
|
||||
array[(int)num6][1] = array8;
|
||||
array[(int)num6][1] = array9;
|
||||
uint num7 = AesFastEngine.SubWord(array9);
|
||||
array[14][0] = (uint)i;
|
||||
array[14][0] = array3;
|
||||
array[14][1] = array4;
|
||||
uint[] array10 = array[14];
|
||||
array10[1] = array5;
|
||||
IL_1E5:
|
||||
uint[] array11 = array[0];
|
||||
array11[0] = array10;
|
||||
uint[] array12 = array[0];
|
||||
array12[0] = array11;
|
||||
uint[] array13 = array[0];
|
||||
array13[1] = array12;
|
||||
uint[] array14 = array[0];
|
||||
array14[1] = array13;
|
||||
uint[] array15 = array[1];
|
||||
array15[0] = array14;
|
||||
array[1][0] = array15;
|
||||
uint num8 = AesFastEngine.SubWord(array15);
|
||||
array[1][1] = num8;
|
||||
array[1][1] = array11;
|
||||
array[2][0] = array12;
|
||||
array[2][0] = array13;
|
||||
array[2][1] = array14;
|
||||
array[2][1] = array15;
|
||||
ulong num9;
|
||||
num9 += num9;
|
||||
uint num10 = AesFastEngine.SubWord(array15);
|
||||
uint num11;
|
||||
array[(int)num11][0] = num8;
|
||||
array[(int)num11][0] = array11;
|
||||
array[(int)num11][1] = array12;
|
||||
array[(int)num11][1] = array13;
|
||||
uint num12 = num11 + 1U;
|
||||
array[(int)num12][0] = array14;
|
||||
array[(int)num12][0] = array15;
|
||||
num9 += num9;
|
||||
uint num13 = AesFastEngine.SubWord(array15);
|
||||
array[(int)num12][1] = num8;
|
||||
array[(int)num12][1] = array11;
|
||||
num11 += (uint)2;
|
||||
array[(int)num11][0] = array12;
|
||||
array[(int)num11][0] = array13;
|
||||
array[(int)num11][1] = array14;
|
||||
uint[] array16 = array[(int)num11];
|
||||
num11 += (uint)3;
|
||||
array16[1] = array15;
|
||||
uint num14 = AesFastEngine.SubWord(array15);
|
||||
array[12][0] = num8;
|
||||
array[12][0] = array11;
|
||||
array[12][1] = array12;
|
||||
uint[] array17 = array[12];
|
||||
array17[1] = array13;
|
||||
IL_3FB:
|
||||
uint[] array18 = array[0];
|
||||
array18[0] = array17;
|
||||
uint[] array19 = array[0];
|
||||
array19[0] = array18;
|
||||
uint[] array20 = array[0];
|
||||
array20[1] = array19;
|
||||
array[0][1] = array20;
|
||||
uint num15 = AesFastEngine.SubWord(array20);
|
||||
byte[] array21 = AesFastEngine.rcon;
|
||||
uint num17;
|
||||
uint num16 = num17 - 1U;
|
||||
array[(int)num17][0] = array17;
|
||||
array[(int)num17][0] = array18;
|
||||
array[(int)num17][1] = array19;
|
||||
uint[] array22 = array[(int)num17];
|
||||
num17 += (uint)1;
|
||||
array22[1] = array20;
|
||||
while (num17 <= (uint)10)
|
||||
{
|
||||
}
|
||||
int num18 = 0;
|
||||
uint[] array23 = array[(int)num17];
|
||||
uint num19 = AesFastEngine.Inv_Mcol(array23[num18]);
|
||||
num18++;
|
||||
array23[0] = num19;
|
||||
num17 += (uint)1;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA0 RID: 47776 RVA: 0x0028B8E4 File Offset: 0x00289AE4
|
||||
[Token(Token = "0x600BAA0")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public AesFastEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA1 RID: 47777 RVA: 0x0028B8F8 File Offset: 0x00289AF8
|
||||
[Token(Token = "0x600BAA1")]
|
||||
[Address(RVA = "0x2493130", Offset = "0x2492130", VA = "0x182493130", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAA1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_22:
|
||||
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D53 RID: 7507
|
||||
// (get) Token: 0x0600BAA2 RID: 47778 RVA: 0x0028B938 File Offset: 0x00289B38
|
||||
[Token(Token = "0x17001D53")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BAA2")]
|
||||
[Address(RVA = "0x2493830", Offset = "0x2492830", VA = "0x182493830", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D54 RID: 7508
|
||||
// (get) Token: 0x0600BAA3 RID: 47779 RVA: 0x0028B94C File Offset: 0x00289B4C
|
||||
[Token(Token = "0x17001D54")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BAA3")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA4 RID: 47780 RVA: 0x0028B95C File Offset: 0x00289B5C
|
||||
[Token(Token = "0x600BAA4")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA5 RID: 47781 RVA: 0x0028B96C File Offset: 0x00289B6C
|
||||
[Token(Token = "0x600BAA5")]
|
||||
[Address(RVA = "0x2493300", Offset = "0x2492300", VA = "0x182493300", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAA5)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5D:
|
||||
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA6 RID: 47782 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BAA6")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA7 RID: 47783 RVA: 0x0028B9E4 File Offset: 0x00289BE4
|
||||
[Token(Token = "0x600BAA7")]
|
||||
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA8 RID: 47784 RVA: 0x0028B9F4 File Offset: 0x00289BF4
|
||||
[Token(Token = "0x600BAA8")]
|
||||
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
|
||||
private void PackBlock(byte[] bytes, int off)
|
||||
{
|
||||
Ed25519.Encode32(this.C0, bytes, off);
|
||||
Ed25519.Encode32(this.C1, bytes, off);
|
||||
Ed25519.Encode32(this.C2, bytes, off);
|
||||
Ed25519.Encode32(this.C3, bytes, off);
|
||||
}
|
||||
|
||||
// Token: 0x0600BAA9 RID: 47785 RVA: 0x0028BA38 File Offset: 0x00289C38
|
||||
[Token(Token = "0x600BAA9")]
|
||||
[Address(RVA = "0x24908B0", Offset = "0x248F8B0", VA = "0x1824908B0")]
|
||||
private void EncryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array = KW[0];
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
if (array > (uint)1)
|
||||
{
|
||||
uint[] t = AesFastEngine.T0;
|
||||
int length3 = t.Length;
|
||||
uint[] t2 = AesFastEngine.T1;
|
||||
int length4 = t2.Length;
|
||||
uint[] t3 = AesFastEngine.T2;
|
||||
int length5 = t3.Length;
|
||||
num2 = num3;
|
||||
num = num2;
|
||||
uint[] t4 = AesFastEngine.T3;
|
||||
int length6 = t4.Length;
|
||||
uint[] array2;
|
||||
int length7 = array2.Length;
|
||||
num2 = num;
|
||||
uint num5 = t4[(int)num2];
|
||||
num2 = num4;
|
||||
num = num2;
|
||||
uint num6 = t4[(int)num];
|
||||
num2 = num4;
|
||||
num = num2;
|
||||
int length8 = t4.Length;
|
||||
uint num7 = t4[(int)num];
|
||||
int length9 = t.Length;
|
||||
int length10 = t3.Length;
|
||||
uint num8 = t4[(int)num3];
|
||||
uint num9;
|
||||
num9 += (uint)1;
|
||||
int length11 = t2.Length;
|
||||
num5 = num6;
|
||||
num4 = num5;
|
||||
int length12 = t4.Length;
|
||||
num5 = num4;
|
||||
uint num10 = t3[(int)num5];
|
||||
int length13 = t.Length;
|
||||
num5 = num8;
|
||||
uint num11 = t3[(int)num5];
|
||||
num5 = num6;
|
||||
uint num12 = t2[(int)num5];
|
||||
num = num5;
|
||||
}
|
||||
uint[] t5 = AesFastEngine.T0;
|
||||
int length14 = t5.Length;
|
||||
uint num13 = t5[(int)num];
|
||||
uint[] t6 = AesFastEngine.T1;
|
||||
int length15 = t6.Length;
|
||||
num13 = num2;
|
||||
uint num14 = t6[(int)num13];
|
||||
uint[] t7 = AesFastEngine.T2;
|
||||
int length16 = t7.Length;
|
||||
num14 = num3;
|
||||
uint[] t8 = AesFastEngine.T3;
|
||||
uint num15 = t7[(int)num14];
|
||||
int length17 = t8.Length;
|
||||
num15 = num4;
|
||||
uint num16 = t8[(int)num15];
|
||||
uint[] array3;
|
||||
int length18 = array3.Length;
|
||||
uint num17 = array3[0];
|
||||
num16 = num2;
|
||||
uint num18 = t5[(int)num16];
|
||||
num16 = num3;
|
||||
uint num19 = t6[(int)num16];
|
||||
num19 = num4;
|
||||
num16 = num19;
|
||||
uint num20 = t7[(int)num16];
|
||||
uint num21 = t8[(int)num];
|
||||
uint num22 = array3[0];
|
||||
num21 = num3;
|
||||
uint num23 = t5[(int)num21];
|
||||
num23 = num4;
|
||||
num21 = num23;
|
||||
uint num24 = t6[(int)num21];
|
||||
num = num2;
|
||||
int length19 = t8.Length;
|
||||
uint num25 = t8[(int)num];
|
||||
uint num26 = array3[1];
|
||||
uint num27 = array3[1];
|
||||
uint num28;
|
||||
num28 += (uint)1;
|
||||
int length20 = AesFastEngine.S.Length;
|
||||
int length21 = AesFastEngine.S.Length;
|
||||
int length22 = AesFastEngine.S.Length;
|
||||
int length23 = AesFastEngine.S.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAAA RID: 47786 RVA: 0x0028BD3C File Offset: 0x00289F3C
|
||||
[Token(Token = "0x600BAAA")]
|
||||
[Address(RVA = "0x248F680", Offset = "0x248E680", VA = "0x18248F680")]
|
||||
private void DecryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array;
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
if (array > (ulong)1L)
|
||||
{
|
||||
uint[] array2 = KW[array];
|
||||
uint[] tinv = AesFastEngine.Tinv0;
|
||||
int length3 = tinv.Length;
|
||||
int length4 = AesFastEngine.Tinv1.Length;
|
||||
uint[] tinv2 = AesFastEngine.Tinv2;
|
||||
int length5 = tinv2.Length;
|
||||
num = num3;
|
||||
uint[] tinv3 = AesFastEngine.Tinv3;
|
||||
int length6 = tinv3.Length;
|
||||
int length7 = array2.Length;
|
||||
num3 = num;
|
||||
uint num4 = tinv3[(int)num3];
|
||||
num3 = num;
|
||||
num = num3;
|
||||
uint num5 = tinv3[(int)num];
|
||||
num3 = num2;
|
||||
int length8 = tinv3.Length;
|
||||
num = num3;
|
||||
uint num6 = tinv3[(int)num];
|
||||
int length9 = tinv.Length;
|
||||
int length10 = tinv2.Length;
|
||||
uint num7 = tinv3[(int)num];
|
||||
int length11 = tinv3.Length;
|
||||
uint num8 = tinv3[(int)num5];
|
||||
num4 = num7;
|
||||
num8 = num4;
|
||||
uint num9 = tinv2[(int)num8];
|
||||
num3 = num7;
|
||||
}
|
||||
uint[] array3 = KW[1];
|
||||
uint[] tinv4 = AesFastEngine.Tinv0;
|
||||
int length12 = tinv4.Length;
|
||||
uint num10 = tinv4[(int)num];
|
||||
uint[] tinv5 = AesFastEngine.Tinv1;
|
||||
int length13 = tinv5.Length;
|
||||
num10 = num3;
|
||||
uint num11 = tinv5[(int)num10];
|
||||
uint[] tinv6 = AesFastEngine.Tinv2;
|
||||
int length14 = tinv6.Length;
|
||||
uint[] tinv7 = AesFastEngine.Tinv3;
|
||||
uint num12 = tinv6[(int)num11];
|
||||
num12 = num2;
|
||||
uint num13 = tinv7[(int)num12];
|
||||
int length15 = array3.Length;
|
||||
uint num14 = array3[0];
|
||||
num13 = num2;
|
||||
uint num15 = tinv4[(int)num13];
|
||||
num13 = num;
|
||||
uint num16 = tinv5[(int)num13];
|
||||
num16 = num3;
|
||||
num13 = num16;
|
||||
uint num17 = tinv6[(int)num13];
|
||||
uint num18 = tinv7[(int)num17];
|
||||
uint num19 = array3[0];
|
||||
uint num20 = tinv4[(int)num18];
|
||||
num18 = num2;
|
||||
uint num21 = tinv5[(int)num18];
|
||||
int length16 = tinv7.Length;
|
||||
num = num3;
|
||||
uint num22 = tinv7[(int)num];
|
||||
uint num23 = array3[1];
|
||||
uint num24 = array3[1];
|
||||
int length17 = AesFastEngine.Si.Length;
|
||||
int length18 = AesFastEngine.Si.Length;
|
||||
int length19 = AesFastEngine.Si.Length;
|
||||
int length20 = AesFastEngine.Si.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAAB RID: 47787 RVA: 0x0028BFF8 File Offset: 0x0028A1F8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BAAB")]
|
||||
[Address(RVA = "0x24935A0", Offset = "0x24925A0", VA = "0x1824935A0")]
|
||||
static AesFastEngine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
|
||||
AesFastEngine.S = array;
|
||||
byte[] array2 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
|
||||
AesFastEngine.Si = array2;
|
||||
byte[] array3 = new byte[30];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
|
||||
AesFastEngine.rcon = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
|
||||
AesFastEngine.T0 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.102C522344FCAC1545BDA50C0FC675C502FFEC53).FieldHandle);
|
||||
AesFastEngine.T1 = array5;
|
||||
uint[] array6 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.29EC5E8FCA12DB9EC0B5E6D2DE67B624D2E2372C).FieldHandle);
|
||||
AesFastEngine.T2 = array6;
|
||||
uint[] array7 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.95CA85749ADCFBF9A2B82C0381DBCF95D175524C).FieldHandle);
|
||||
AesFastEngine.T3 = array7;
|
||||
uint[] array8 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
|
||||
AesFastEngine.Tinv0 = array8;
|
||||
uint[] array9 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.D9C221237B647EC215A7BCDED447349810E6BF9C).FieldHandle);
|
||||
AesFastEngine.Tinv1 = array9;
|
||||
uint[] array10 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.E43F6BA634642FB90FEEE1A8F9905E957741960C).FieldHandle);
|
||||
AesFastEngine.Tinv2 = array10;
|
||||
uint[] array11 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.04D2A79C8A779AFAA779125335E9334C245EBB46).FieldHandle);
|
||||
AesFastEngine.Tinv3 = array11;
|
||||
}
|
||||
|
||||
// Token: 0x04007594 RID: 30100
|
||||
[Token(Token = "0x4007594")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x04007595 RID: 30101
|
||||
[Token(Token = "0x4007595")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x04007596 RID: 30102
|
||||
[Token(Token = "0x4007596")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x04007597 RID: 30103
|
||||
[Token(Token = "0x4007597")]
|
||||
private static readonly uint[] T0;
|
||||
|
||||
// Token: 0x04007598 RID: 30104
|
||||
[Token(Token = "0x4007598")]
|
||||
private static readonly uint[] T1;
|
||||
|
||||
// Token: 0x04007599 RID: 30105
|
||||
[Token(Token = "0x4007599")]
|
||||
private static readonly uint[] T2;
|
||||
|
||||
// Token: 0x0400759A RID: 30106
|
||||
[Token(Token = "0x400759A")]
|
||||
private static readonly uint[] T3;
|
||||
|
||||
// Token: 0x0400759B RID: 30107
|
||||
[Token(Token = "0x400759B")]
|
||||
private static readonly uint[] Tinv0;
|
||||
|
||||
// Token: 0x0400759C RID: 30108
|
||||
[Token(Token = "0x400759C")]
|
||||
private static readonly uint[] Tinv1;
|
||||
|
||||
// Token: 0x0400759D RID: 30109
|
||||
[Token(Token = "0x400759D")]
|
||||
private static readonly uint[] Tinv2;
|
||||
|
||||
// Token: 0x0400759E RID: 30110
|
||||
[Token(Token = "0x400759E")]
|
||||
private static readonly uint[] Tinv3;
|
||||
|
||||
// Token: 0x0400759F RID: 30111
|
||||
[Token(Token = "0x400759F")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040075A0 RID: 30112
|
||||
[Token(Token = "0x40075A0")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040075A1 RID: 30113
|
||||
[Token(Token = "0x40075A1")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040075A2 RID: 30114
|
||||
[Token(Token = "0x40075A2")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040075A3 RID: 30115
|
||||
[Token(Token = "0x40075A3")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040075A4 RID: 30116
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075A4")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040075A5 RID: 30117
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075A5")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040075A6 RID: 30118
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075A6")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040075A7 RID: 30119
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40075A7")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040075A8 RID: 30120
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075A8")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040075A9 RID: 30121
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40075A9")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040075AA RID: 30122
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075AA")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040075AB RID: 30123
|
||||
[Token(Token = "0x40075AB")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D62 RID: 7522
|
||||
[Token(Token = "0x2001D62")]
|
||||
public class AesLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BAAC RID: 47788 RVA: 0x0028C14C File Offset: 0x0028A34C
|
||||
[Token(Token = "0x600BAAC")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static uint Shift(uint r, int shift)
|
||||
{
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAAD RID: 47789 RVA: 0x0028C15C File Offset: 0x0028A35C
|
||||
[Token(Token = "0x600BAAD")]
|
||||
[Address(RVA = "0x248D8D0", Offset = "0x248C8D0", VA = "0x18248D8D0")]
|
||||
private static uint FFmulX(uint x)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAAD)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::FFmulX(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAAE RID: 47790 RVA: 0x0028C170 File Offset: 0x0028A370
|
||||
[Token(Token = "0x600BAAE")]
|
||||
[Address(RVA = "0x248D8A0", Offset = "0x248C8A0", VA = "0x18248D8A0")]
|
||||
private static uint FFmulX2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAAF RID: 47791 RVA: 0x0028C180 File Offset: 0x0028A380
|
||||
[Token(Token = "0x600BAAF")]
|
||||
[Address(RVA = "0x24976C0", Offset = "0x24966C0", VA = "0x1824976C0")]
|
||||
private static uint Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB0 RID: 47792 RVA: 0x0028C190 File Offset: 0x0028A390
|
||||
[Token(Token = "0x600BAB0")]
|
||||
[Address(RVA = "0x2497600", Offset = "0x2496600", VA = "0x182497600")]
|
||||
private static uint Inv_Mcol(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB1 RID: 47793 RVA: 0x0028C1A0 File Offset: 0x0028A3A0
|
||||
[Token(Token = "0x600BAB1")]
|
||||
[Address(RVA = "0x24978D0", Offset = "0x24968D0", VA = "0x1824978D0")]
|
||||
private static uint SubWord(uint x)
|
||||
{
|
||||
int length = AesLightEngine.S.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB2 RID: 47794 RVA: 0x0028C1C0 File Offset: 0x0028A3C0
|
||||
[Token(Token = "0x600BAB2")]
|
||||
[Address(RVA = "0x2495EC0", Offset = "0x2494EC0", VA = "0x182495EC0")]
|
||||
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
|
||||
{
|
||||
uint[][] array;
|
||||
int i;
|
||||
for (;;)
|
||||
{
|
||||
if (key.Length == 7)
|
||||
{
|
||||
this.ROUNDS = key;
|
||||
array = new uint[key][];
|
||||
i = 0;
|
||||
uint[] array2 = new uint[4];
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
i++;
|
||||
array[0] = array2;
|
||||
while (i <= this.rcon)
|
||||
{
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_3FB;
|
||||
}
|
||||
if (typeof(uint[]).TypeHandle != 0)
|
||||
{
|
||||
if (typeof(uint[]).TypeHandle == 0)
|
||||
{
|
||||
goto IL_1E5;
|
||||
}
|
||||
uint num;
|
||||
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
uint[] array3 = array[0];
|
||||
array3[0] = (uint)i;
|
||||
uint[] array4 = array[0];
|
||||
array4[0] = array3;
|
||||
uint[] array5 = array[0];
|
||||
array5[1] = array4;
|
||||
uint[] array6 = array[0];
|
||||
array6[1] = array5;
|
||||
uint[] array7 = array[1];
|
||||
array7[0] = array6;
|
||||
uint[] array8 = array[1];
|
||||
array8[0] = array7;
|
||||
uint[] array9 = array[1];
|
||||
array9[1] = array8;
|
||||
array[1][1] = array9;
|
||||
uint num2;
|
||||
num2 += num2;
|
||||
uint num3 = AesLightEngine.SubWord(array9);
|
||||
ulong num4;
|
||||
array[(int)num4][0] = i;
|
||||
array[(int)num4][0] = array3;
|
||||
array[(int)num4][1] = array4;
|
||||
array[(int)num4][1] = array5;
|
||||
uint num5 = AesLightEngine.SubWord(array5);
|
||||
ulong num6 = num4 + 1UL;
|
||||
array[(int)num6][0] = array6;
|
||||
array[(int)num6][0] = array7;
|
||||
array[(int)num6][1] = array8;
|
||||
array[(int)num6][1] = array9;
|
||||
uint num7 = AesLightEngine.SubWord(array9);
|
||||
array[14][0] = (uint)i;
|
||||
array[14][0] = array3;
|
||||
array[14][1] = array4;
|
||||
uint[] array10 = array[14];
|
||||
array10[1] = array5;
|
||||
IL_1E5:
|
||||
uint[] array11 = array[0];
|
||||
array11[0] = array10;
|
||||
uint[] array12 = array[0];
|
||||
array12[0] = array11;
|
||||
uint[] array13 = array[0];
|
||||
array13[1] = array12;
|
||||
uint[] array14 = array[0];
|
||||
array14[1] = array13;
|
||||
uint[] array15 = array[1];
|
||||
array15[0] = array14;
|
||||
array[1][0] = array15;
|
||||
uint num8 = AesLightEngine.SubWord(array15);
|
||||
array[1][1] = num8;
|
||||
array[1][1] = array11;
|
||||
array[2][0] = array12;
|
||||
array[2][0] = array13;
|
||||
array[2][1] = array14;
|
||||
array[2][1] = array15;
|
||||
ulong num9;
|
||||
num9 += num9;
|
||||
uint num10 = AesLightEngine.SubWord(array15);
|
||||
uint num11;
|
||||
array[(int)num11][0] = num8;
|
||||
array[(int)num11][0] = array11;
|
||||
array[(int)num11][1] = array12;
|
||||
array[(int)num11][1] = array13;
|
||||
uint num12 = num11 + 1U;
|
||||
array[(int)num12][0] = array14;
|
||||
array[(int)num12][0] = array15;
|
||||
num9 += num9;
|
||||
uint num13 = AesLightEngine.SubWord(array15);
|
||||
array[(int)num12][1] = num8;
|
||||
array[(int)num12][1] = array11;
|
||||
num11 += (uint)2;
|
||||
array[(int)num11][0] = array12;
|
||||
array[(int)num11][0] = array13;
|
||||
array[(int)num11][1] = array14;
|
||||
uint[] array16 = array[(int)num11];
|
||||
num11 += (uint)3;
|
||||
array16[1] = array15;
|
||||
uint num14 = AesLightEngine.SubWord(array15);
|
||||
array[12][0] = num8;
|
||||
array[12][0] = array11;
|
||||
array[12][1] = array12;
|
||||
uint[] array17 = array[12];
|
||||
array17[1] = array13;
|
||||
IL_3FB:
|
||||
uint[] array18 = array[0];
|
||||
array18[0] = array17;
|
||||
uint[] array19 = array[0];
|
||||
array19[0] = array18;
|
||||
uint[] array20 = array[0];
|
||||
array20[1] = array19;
|
||||
array[0][1] = array20;
|
||||
uint num15 = AesLightEngine.SubWord(array20);
|
||||
byte[] array21 = AesLightEngine.rcon;
|
||||
uint num17;
|
||||
uint num16 = num17 - 1U;
|
||||
array[(int)num17][0] = array17;
|
||||
array[(int)num17][0] = array18;
|
||||
array[(int)num17][1] = array19;
|
||||
uint[] array22 = array[(int)num17];
|
||||
num17 += (uint)1;
|
||||
array22[1] = array20;
|
||||
while (num17 <= (uint)10)
|
||||
{
|
||||
}
|
||||
int num18 = 0;
|
||||
uint[] array23 = array[(int)num17];
|
||||
uint num19 = AesLightEngine.Inv_Mcol(array23[num18]);
|
||||
num18++;
|
||||
array23[0] = num19;
|
||||
num17 += (uint)1;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB3 RID: 47795 RVA: 0x0028C6B4 File Offset: 0x0028A8B4
|
||||
[Token(Token = "0x600BAB3")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public AesLightEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB4 RID: 47796 RVA: 0x0028C6C8 File Offset: 0x0028A8C8
|
||||
[Token(Token = "0x600BAB4")]
|
||||
[Address(RVA = "0x24974F0", Offset = "0x24964F0", VA = "0x1824974F0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAB4)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_22:
|
||||
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D55 RID: 7509
|
||||
// (get) Token: 0x0600BAB5 RID: 47797 RVA: 0x0028C708 File Offset: 0x0028A908
|
||||
[Token(Token = "0x17001D55")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BAB5")]
|
||||
[Address(RVA = "0x2497AC0", Offset = "0x2496AC0", VA = "0x182497AC0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "AES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D56 RID: 7510
|
||||
// (get) Token: 0x0600BAB6 RID: 47798 RVA: 0x0028C71C File Offset: 0x0028A91C
|
||||
[Token(Token = "0x17001D56")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BAB6")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB7 RID: 47799 RVA: 0x0028C72C File Offset: 0x0028A92C
|
||||
[Token(Token = "0x600BAB7")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB8 RID: 47800 RVA: 0x0028C73C File Offset: 0x0028A93C
|
||||
[Token(Token = "0x600BAB8")]
|
||||
[Address(RVA = "0x2497750", Offset = "0x2496750", VA = "0x182497750", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAB8)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5D:
|
||||
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAB9 RID: 47801 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BAB9")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BABA RID: 47802 RVA: 0x0028C7B4 File Offset: 0x0028A9B4
|
||||
[Token(Token = "0x600BABA")]
|
||||
[Address(RVA = "0x248F4A0", Offset = "0x248E4A0", VA = "0x18248F4A0")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BABB RID: 47803 RVA: 0x0028C7C4 File Offset: 0x0028A9C4
|
||||
[Token(Token = "0x600BABB")]
|
||||
[Address(RVA = "0x248F190", Offset = "0x248E190", VA = "0x18248F190")]
|
||||
private void PackBlock(byte[] bytes, int off)
|
||||
{
|
||||
Ed25519.Encode32(this.C0, bytes, off);
|
||||
Ed25519.Encode32(this.C1, bytes, off);
|
||||
Ed25519.Encode32(this.C2, bytes, off);
|
||||
Ed25519.Encode32(this.C3, bytes, off);
|
||||
}
|
||||
|
||||
// Token: 0x0600BABC RID: 47804 RVA: 0x0028C808 File Offset: 0x0028AA08
|
||||
[Token(Token = "0x600BABC")]
|
||||
[Address(RVA = "0x2494B80", Offset = "0x2493B80", VA = "0x182494B80")]
|
||||
private void EncryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array = KW[0];
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
if (array > (uint)1)
|
||||
{
|
||||
int length3 = AesLightEngine.S.Length;
|
||||
num2 = num4;
|
||||
byte b;
|
||||
uint num5 = AesLightEngine.Mcol((uint)b);
|
||||
uint[] array2;
|
||||
uint num6 = array2[0];
|
||||
int length4 = AesLightEngine.S.Length;
|
||||
byte b2;
|
||||
uint num7 = AesLightEngine.Mcol((uint)b2);
|
||||
uint num8 = array2[0];
|
||||
int length5 = AesLightEngine.S.Length;
|
||||
num4 = num2;
|
||||
byte b3;
|
||||
uint num9 = AesLightEngine.Mcol((uint)b3);
|
||||
uint num10 = array2[1];
|
||||
int length6 = AesLightEngine.S.Length;
|
||||
byte b4;
|
||||
uint num11 = AesLightEngine.Mcol((uint)b4);
|
||||
uint num12 = array2[1];
|
||||
int length7 = AesLightEngine.S.Length;
|
||||
byte b5;
|
||||
uint num13 = AesLightEngine.Mcol((uint)b5);
|
||||
int length8 = AesLightEngine.S.Length;
|
||||
byte b6;
|
||||
uint num14 = AesLightEngine.Mcol((uint)b6);
|
||||
int length9 = AesLightEngine.S.Length;
|
||||
byte b7;
|
||||
uint num15 = AesLightEngine.Mcol((uint)b7);
|
||||
int length10 = AesLightEngine.S.Length;
|
||||
byte b8;
|
||||
uint num16 = AesLightEngine.Mcol((uint)b8);
|
||||
}
|
||||
int length11 = AesLightEngine.S.Length;
|
||||
byte b9;
|
||||
uint num17 = AesLightEngine.Mcol((uint)b9);
|
||||
uint[] array3;
|
||||
uint num18 = array3[0];
|
||||
int length12 = AesLightEngine.S.Length;
|
||||
byte b10;
|
||||
uint num19 = AesLightEngine.Mcol((uint)b10);
|
||||
uint num20 = array3[0];
|
||||
int length13 = AesLightEngine.S.Length;
|
||||
byte b11;
|
||||
uint num21 = AesLightEngine.Mcol((uint)b11);
|
||||
uint num22 = array3[1];
|
||||
int length14 = AesLightEngine.S.Length;
|
||||
byte b12;
|
||||
uint num23 = AesLightEngine.Mcol((uint)b12);
|
||||
uint num24 = array3[1];
|
||||
uint num25;
|
||||
num25 += (uint)1;
|
||||
int length15 = AesLightEngine.S.Length;
|
||||
int length16 = AesLightEngine.S.Length;
|
||||
int length17 = AesLightEngine.S.Length;
|
||||
int length18 = AesLightEngine.S.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BABD RID: 47805 RVA: 0x0028CA88 File Offset: 0x0028AC88
|
||||
[Token(Token = "0x600BABD")]
|
||||
[Address(RVA = "0x2493860", Offset = "0x2492860", VA = "0x182493860")]
|
||||
private void DecryptBlock(uint[][] KW)
|
||||
{
|
||||
int length = KW.Length;
|
||||
uint[] array;
|
||||
int length2 = array.Length;
|
||||
uint num = array[0];
|
||||
uint num2 = array[0];
|
||||
uint num3 = array[1];
|
||||
uint num4 = array[1];
|
||||
uint[] array2 = KW[array];
|
||||
int length3 = AesLightEngine.Si.Length;
|
||||
byte b;
|
||||
uint num5 = AesLightEngine.Inv_Mcol((uint)b);
|
||||
uint num6 = array2[0];
|
||||
int length4 = AesLightEngine.Si.Length;
|
||||
byte b2;
|
||||
uint num7 = AesLightEngine.Inv_Mcol((uint)b2);
|
||||
uint num8 = array2[0];
|
||||
int length5 = AesLightEngine.Si.Length;
|
||||
byte b3;
|
||||
uint num9 = AesLightEngine.Inv_Mcol((uint)b3);
|
||||
uint num10 = array2[1];
|
||||
int length6 = AesLightEngine.Si.Length;
|
||||
byte b4;
|
||||
uint num11 = AesLightEngine.Inv_Mcol((uint)b4);
|
||||
uint num12 = array2[1];
|
||||
int length7 = AesLightEngine.Si.Length;
|
||||
byte b5;
|
||||
uint num13 = AesLightEngine.Inv_Mcol((uint)b5);
|
||||
int length8 = AesLightEngine.Si.Length;
|
||||
byte b6;
|
||||
uint num14 = AesLightEngine.Inv_Mcol((uint)b6);
|
||||
int length9 = AesLightEngine.Si.Length;
|
||||
byte b7;
|
||||
uint num15 = AesLightEngine.Inv_Mcol((uint)b7);
|
||||
int length10 = AesLightEngine.Si.Length;
|
||||
byte b8;
|
||||
uint num16 = AesLightEngine.Inv_Mcol((uint)b8);
|
||||
uint[] array3 = KW[1];
|
||||
int length11 = AesLightEngine.Si.Length;
|
||||
byte b9;
|
||||
uint num17 = AesLightEngine.Inv_Mcol((uint)b9);
|
||||
uint num18 = array3[0];
|
||||
int length12 = AesLightEngine.Si.Length;
|
||||
byte b10;
|
||||
uint num19 = AesLightEngine.Inv_Mcol((uint)b10);
|
||||
uint num20 = array3[0];
|
||||
int length13 = AesLightEngine.Si.Length;
|
||||
byte b11;
|
||||
uint num21 = AesLightEngine.Inv_Mcol((uint)b11);
|
||||
uint num22 = array3[1];
|
||||
int length14 = AesLightEngine.Si.Length;
|
||||
byte b12;
|
||||
uint num23 = AesLightEngine.Inv_Mcol((uint)b12);
|
||||
uint num24 = array3[1];
|
||||
int length15 = AesLightEngine.Si.Length;
|
||||
int length16 = AesLightEngine.Si.Length;
|
||||
int length17 = AesLightEngine.Si.Length;
|
||||
int length18 = AesLightEngine.Si.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BABE RID: 47806 RVA: 0x0028CD00 File Offset: 0x0028AF00
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BABE")]
|
||||
[Address(RVA = "0x24979F0", Offset = "0x24969F0", VA = "0x1824979F0")]
|
||||
static AesLightEngine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
|
||||
AesLightEngine.S = array;
|
||||
byte[] array2 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
|
||||
AesLightEngine.Si = array2;
|
||||
byte[] array3 = new byte[30];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
|
||||
AesLightEngine.rcon = array3;
|
||||
}
|
||||
|
||||
// Token: 0x040075AC RID: 30124
|
||||
[Token(Token = "0x40075AC")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040075AD RID: 30125
|
||||
[Token(Token = "0x40075AD")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040075AE RID: 30126
|
||||
[Token(Token = "0x40075AE")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040075AF RID: 30127
|
||||
[Token(Token = "0x40075AF")]
|
||||
private const uint m1 = 2155905152U;
|
||||
|
||||
// Token: 0x040075B0 RID: 30128
|
||||
[Token(Token = "0x40075B0")]
|
||||
private const uint m2 = 2139062143U;
|
||||
|
||||
// Token: 0x040075B1 RID: 30129
|
||||
[Token(Token = "0x40075B1")]
|
||||
private const uint m3 = 27U;
|
||||
|
||||
// Token: 0x040075B2 RID: 30130
|
||||
[Token(Token = "0x40075B2")]
|
||||
private const uint m4 = 3233857728U;
|
||||
|
||||
// Token: 0x040075B3 RID: 30131
|
||||
[Token(Token = "0x40075B3")]
|
||||
private const uint m5 = 1061109567U;
|
||||
|
||||
// Token: 0x040075B4 RID: 30132
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075B4")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040075B5 RID: 30133
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075B5")]
|
||||
private uint[][] WorkingKey;
|
||||
|
||||
// Token: 0x040075B6 RID: 30134
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075B6")]
|
||||
private uint C0;
|
||||
|
||||
// Token: 0x040075B7 RID: 30135
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40075B7")]
|
||||
private uint C1;
|
||||
|
||||
// Token: 0x040075B8 RID: 30136
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075B8")]
|
||||
private uint C2;
|
||||
|
||||
// Token: 0x040075B9 RID: 30137
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40075B9")]
|
||||
private uint C3;
|
||||
|
||||
// Token: 0x040075BA RID: 30138
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075BA")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040075BB RID: 30139
|
||||
[Token(Token = "0x40075BB")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D63 RID: 7523
|
||||
[Token(Token = "0x2001D63")]
|
||||
public class AesWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600BABF RID: 47807 RVA: 0x0028CD60 File Offset: 0x0028AF60
|
||||
[Token(Token = "0x600BABF")]
|
||||
[Address(RVA = "0x2497AF0", Offset = "0x2496AF0", VA = "0x182497AF0")]
|
||||
public AesWrapEngine()
|
||||
{
|
||||
AesEngine aesEngine;
|
||||
aesEngine.Reset();
|
||||
base..ctor(aesEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+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: 0x02001D64 RID: 7524
|
||||
[Token(Token = "0x2001D64")]
|
||||
public sealed class BlowfishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BAC0 RID: 47808 RVA: 0x0028CD7C File Offset: 0x0028AF7C
|
||||
[Token(Token = "0x600BAC0")]
|
||||
[Address(RVA = "0x2498A60", Offset = "0x2497A60", VA = "0x182498A60")]
|
||||
public BlowfishEngine()
|
||||
{
|
||||
this.Reset();
|
||||
uint[] array = new uint[BlowfishEngine.SBOX_SK];
|
||||
this.S0 = array;
|
||||
uint[] array2 = new uint[BlowfishEngine.SBOX_SK];
|
||||
this.S1 = array2;
|
||||
uint[] array3 = new uint[BlowfishEngine.SBOX_SK];
|
||||
this.S2 = array3;
|
||||
uint[] array4 = new uint[BlowfishEngine.SBOX_SK];
|
||||
this.S3 = array4;
|
||||
uint[] array5 = new uint[BlowfishEngine.P_SZ];
|
||||
this.P = array5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC1 RID: 47809 RVA: 0x0028CDEC File Offset: 0x0028AFEC
|
||||
[Token(Token = "0x600BAC1")]
|
||||
[Address(RVA = "0x2497FB0", Offset = "0x2496FB0", VA = "0x182497FB0", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAC1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2C:
|
||||
stloc:ArgumentException(var_5_3D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Blowfish init - "), ldloc:string(var_4))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D57 RID: 7511
|
||||
// (get) Token: 0x0600BAC2 RID: 47810 RVA: 0x0028CE38 File Offset: 0x0028B038
|
||||
[Token(Token = "0x17001D57")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BAC2")]
|
||||
[Address(RVA = "0x2498B60", Offset = "0x2497B60", VA = "0x182498B60", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Blowfish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D58 RID: 7512
|
||||
// (get) Token: 0x0600BAC3 RID: 47811 RVA: 0x0028CE4C File Offset: 0x0028B04C
|
||||
[Token(Token = "0x17001D58")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BAC3")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC4 RID: 47812 RVA: 0x0028CE5C File Offset: 0x0028B05C
|
||||
[Token(Token = "0x600BAC4")]
|
||||
[Address(RVA = "0x2498150", Offset = "0x2497150", VA = "0x182498150", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAC4)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_25:
|
||||
stloc:InvalidOperationException(var_1_2F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Blowfish not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC5 RID: 47813 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BAC5")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC6 RID: 47814 RVA: 0x0028CE98 File Offset: 0x0028B098
|
||||
[Token(Token = "0x600BAC6")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC7 RID: 47815 RVA: 0x0028CEA8 File Offset: 0x0028B0A8
|
||||
[Token(Token = "0x600BAC7")]
|
||||
[Address(RVA = "0x2497EF0", Offset = "0x2496EF0", VA = "0x182497EF0")]
|
||||
private uint F(uint x)
|
||||
{
|
||||
uint[] s = this.S0;
|
||||
uint[] s2 = this.S1;
|
||||
uint[] s3 = this.S2;
|
||||
uint[] s4 = this.S3;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC8 RID: 47816 RVA: 0x0028CED8 File Offset: 0x0028B0D8
|
||||
[Token(Token = "0x600BAC8")]
|
||||
[Address(RVA = "0x2498250", Offset = "0x2497250", VA = "0x182498250")]
|
||||
private void ProcessTable(uint xl, uint xr, uint[] table)
|
||||
{
|
||||
int length = table.Length;
|
||||
int num = 0;
|
||||
if (length > 0)
|
||||
{
|
||||
uint[] p = this.P;
|
||||
uint num2 = this.F(xl);
|
||||
uint[] p2 = this.P;
|
||||
uint num3 = this.F(xl);
|
||||
uint[] p3 = this.P;
|
||||
uint num5;
|
||||
uint num4 = num5 + 1U;
|
||||
uint num6 = p3[(int)num4];
|
||||
num5 += (uint)2;
|
||||
uint[] p4 = this.P;
|
||||
num3 += (uint)1;
|
||||
uint num7 = p4[(int)num3];
|
||||
table[0] = num7;
|
||||
table[0] = xl;
|
||||
num += 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BAC9 RID: 47817 RVA: 0x0028CF6C File Offset: 0x0028B16C
|
||||
[Token(Token = "0x600BAC9")]
|
||||
[Address(RVA = "0x2498490", Offset = "0x2497490", VA = "0x182498490")]
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] s = this.S0;
|
||||
int num2 = 0;
|
||||
int num3 = 0;
|
||||
int sbox_SK = BlowfishEngine.SBOX_SK;
|
||||
Array.Copy(BlowfishEngine.KS0, num3, s, num2, sbox_SK);
|
||||
int num4 = 0;
|
||||
uint[] s2 = this.S1;
|
||||
int num5 = 0;
|
||||
int sbox_SK2 = BlowfishEngine.SBOX_SK;
|
||||
Array.Copy(BlowfishEngine.KS1, num5, s2, num4, sbox_SK2);
|
||||
int num6 = 0;
|
||||
uint[] s3 = this.S2;
|
||||
int num7 = 0;
|
||||
int sbox_SK3 = BlowfishEngine.SBOX_SK;
|
||||
Array.Copy(BlowfishEngine.KS2, num7, s3, num6, sbox_SK3);
|
||||
int num8 = 0;
|
||||
uint[] s4 = this.S3;
|
||||
int num9 = 0;
|
||||
int sbox_SK4 = BlowfishEngine.SBOX_SK;
|
||||
Array.Copy(BlowfishEngine.KS3, num9, s4, num8, sbox_SK4);
|
||||
int num10 = 0;
|
||||
uint[] p = this.P;
|
||||
int num11 = 0;
|
||||
int p_SZ = BlowfishEngine.P_SZ;
|
||||
Array.Copy(BlowfishEngine.KP, num11, p, num10, p_SZ);
|
||||
int length = key.Length;
|
||||
int length2 = key.Length;
|
||||
num++;
|
||||
uint[] p2 = this.P;
|
||||
num++;
|
||||
uint[] p3 = this.P;
|
||||
int num12 = 0;
|
||||
int num13 = 0;
|
||||
this.ProcessTable((uint)num13, (uint)num12, p3);
|
||||
uint[] p4 = this.P;
|
||||
int p_SZ2 = BlowfishEngine.P_SZ;
|
||||
uint num14 = this.P[p_SZ2];
|
||||
uint[] s5 = this.S0;
|
||||
uint num15;
|
||||
this.ProcessTable(num15, num14, s5);
|
||||
uint[] s6 = this.S0;
|
||||
int sbox_SK5 = BlowfishEngine.SBOX_SK;
|
||||
int length3 = s6.Length;
|
||||
uint num16 = s6[(int)num14];
|
||||
uint num17 = s6[sbox_SK5];
|
||||
uint[] s7 = this.S1;
|
||||
this.ProcessTable(num16, num17, s7);
|
||||
uint[] s8 = this.S1;
|
||||
int sbox_SK6 = BlowfishEngine.SBOX_SK;
|
||||
int length4 = s8.Length;
|
||||
uint num18 = s8[(int)num17];
|
||||
uint num19 = s8[sbox_SK6];
|
||||
uint[] s9 = this.S2;
|
||||
this.ProcessTable(num18, num19, s9);
|
||||
uint[] s10 = this.S2;
|
||||
int sbox_SK7 = BlowfishEngine.SBOX_SK;
|
||||
int length5 = s10.Length;
|
||||
uint num20 = s10[(int)num19];
|
||||
uint num21 = s10[sbox_SK7];
|
||||
uint[] s11 = this.S3;
|
||||
this.ProcessTable(num20, num21, s11);
|
||||
}
|
||||
|
||||
// Token: 0x0600BACA RID: 47818 RVA: 0x0028D170 File Offset: 0x0028B370
|
||||
[Token(Token = "0x600BACA")]
|
||||
[Address(RVA = "0x2497D10", Offset = "0x2496D10", VA = "0x182497D10")]
|
||||
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] p = this.P;
|
||||
uint num3 = this.F(num);
|
||||
uint[] p2 = this.P;
|
||||
num = num2;
|
||||
uint num4 = this.F(num);
|
||||
uint[] p3 = this.P;
|
||||
uint num6;
|
||||
uint num5 = num6 + 1U;
|
||||
uint num7 = p3[(int)num5];
|
||||
num6 += (uint)2;
|
||||
uint[] p4 = this.P;
|
||||
num4 += (uint)1;
|
||||
uint num8 = p4[(int)num4];
|
||||
}
|
||||
|
||||
// Token: 0x0600BACB RID: 47819 RVA: 0x0028D1F4 File Offset: 0x0028B3F4
|
||||
[Token(Token = "0x600BACB")]
|
||||
[Address(RVA = "0x2497B50", Offset = "0x2496B50", VA = "0x182497B50")]
|
||||
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] p = this.P;
|
||||
int rounds = BlowfishEngine.ROUNDS;
|
||||
int num3 = rounds + 1;
|
||||
if (rounds > 0)
|
||||
{
|
||||
uint num4 = this.F(num);
|
||||
uint[] p2 = this.P;
|
||||
num = num2;
|
||||
uint num5 = this.F(num);
|
||||
uint[] p3 = this.P;
|
||||
int num6 = rounds - 1;
|
||||
}
|
||||
uint num7 = this.P[0];
|
||||
}
|
||||
|
||||
// Token: 0x0600BACC RID: 47820 RVA: 0x0028D268 File Offset: 0x0028B468
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BACC")]
|
||||
[Address(RVA = "0x24988E0", Offset = "0x24978E0", VA = "0x1824988E0")]
|
||||
static BlowfishEngine()
|
||||
{
|
||||
uint[] array = new uint[18];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.643A9D76937E94519B73BE072D65E79BAFF3C213).FieldHandle);
|
||||
BlowfishEngine.KP = array;
|
||||
uint[] array2 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.E117A40BF9A3AE32474AD7B22EB4C60E95D3BE2A).FieldHandle);
|
||||
BlowfishEngine.KS0 = array2;
|
||||
uint[] array3 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.6F576E8737EAAC9B6B12BDFC370048CD205E2CDD).FieldHandle);
|
||||
BlowfishEngine.KS1 = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.E2F8F75B7ABE5A6E4ECF5E32B935909BE2CC9F4B).FieldHandle);
|
||||
BlowfishEngine.KS2 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1C1237F52E2ED7B4D229AE3978DA144B9E653F5E).FieldHandle);
|
||||
BlowfishEngine.KS3 = array5;
|
||||
int num = BlowfishEngine.ROUNDS;
|
||||
num += 2;
|
||||
BlowfishEngine.P_SZ = num;
|
||||
}
|
||||
|
||||
// Token: 0x040075BC RID: 30140
|
||||
[Token(Token = "0x40075BC")]
|
||||
private static readonly uint[] KP;
|
||||
|
||||
// Token: 0x040075BD RID: 30141
|
||||
[Token(Token = "0x40075BD")]
|
||||
private static readonly uint[] KS0;
|
||||
|
||||
// Token: 0x040075BE RID: 30142
|
||||
[Token(Token = "0x40075BE")]
|
||||
private static readonly uint[] KS1;
|
||||
|
||||
// Token: 0x040075BF RID: 30143
|
||||
[Token(Token = "0x40075BF")]
|
||||
private static readonly uint[] KS2;
|
||||
|
||||
// Token: 0x040075C0 RID: 30144
|
||||
[Token(Token = "0x40075C0")]
|
||||
private static readonly uint[] KS3;
|
||||
|
||||
// Token: 0x040075C1 RID: 30145
|
||||
[Token(Token = "0x40075C1")]
|
||||
private static readonly int ROUNDS;
|
||||
|
||||
// Token: 0x040075C2 RID: 30146
|
||||
[Token(Token = "0x40075C2")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040075C3 RID: 30147
|
||||
[Token(Token = "0x40075C3")]
|
||||
private static readonly int SBOX_SK;
|
||||
|
||||
// Token: 0x040075C4 RID: 30148
|
||||
[Token(Token = "0x40075C4")]
|
||||
private static readonly int P_SZ;
|
||||
|
||||
// Token: 0x040075C5 RID: 30149
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075C5")]
|
||||
private readonly uint[] S0;
|
||||
|
||||
// Token: 0x040075C6 RID: 30150
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075C6")]
|
||||
private readonly uint[] S1;
|
||||
|
||||
// Token: 0x040075C7 RID: 30151
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075C7")]
|
||||
private readonly uint[] S2;
|
||||
|
||||
// Token: 0x040075C8 RID: 30152
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075C8")]
|
||||
private readonly uint[] S3;
|
||||
|
||||
// Token: 0x040075C9 RID: 30153
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075C9")]
|
||||
private readonly uint[] P;
|
||||
|
||||
// Token: 0x040075CA RID: 30154
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40075CA")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x040075CB RID: 30155
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40075CB")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+560
@@ -0,0 +1,560 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D65 RID: 7525
|
||||
[Token(Token = "0x2001D65")]
|
||||
public class CamelliaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BACD RID: 47821 RVA: 0x0028D31C File Offset: 0x0028B51C
|
||||
[Token(Token = "0x600BACD")]
|
||||
[Address(RVA = "0x249A960", Offset = "0x2499960", VA = "0x18249A960")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BACE RID: 47822 RVA: 0x0028D32C File Offset: 0x0028B52C
|
||||
[Token(Token = "0x600BACE")]
|
||||
[Address(RVA = "0x2499E10", Offset = "0x2498E10", VA = "0x182499E10")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BACF RID: 47823 RVA: 0x0028D33C File Offset: 0x0028B53C
|
||||
[Token(Token = "0x600BACF")]
|
||||
[Address(RVA = "0x249A980", Offset = "0x2499980", VA = "0x18249A980")]
|
||||
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
uint num = ki[ioff];
|
||||
int num2 = ioff + 1;
|
||||
uint num3 = ki[num2];
|
||||
ko[0] = num3;
|
||||
int length2 = ki.Length;
|
||||
uint num4 = ki[(int)num];
|
||||
ko[0] = num4;
|
||||
int length3 = ki.Length;
|
||||
uint num5 = ki[(int)num4];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
ko[0] = num5;
|
||||
uint num6;
|
||||
ki[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
ki[0] = num7;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD0 RID: 47824 RVA: 0x0028D3DC File Offset: 0x0028B5DC
|
||||
[Token(Token = "0x600BAD0")]
|
||||
[Address(RVA = "0x2499770", Offset = "0x2498770", VA = "0x182499770")]
|
||||
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
uint num = ki[ioff];
|
||||
int num2 = ioff + 1;
|
||||
uint num3 = ki[num2];
|
||||
ko[0] = num3;
|
||||
int length2 = ki.Length;
|
||||
uint num4 = ki[(int)num];
|
||||
ko[0] = num4;
|
||||
int length3 = ki.Length;
|
||||
uint num5 = ki[(int)num];
|
||||
uint num6 = ki[(int)num4];
|
||||
ko[0] = num6;
|
||||
int length4 = ki.Length;
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
ki[0] = num8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD1 RID: 47825 RVA: 0x0028D47C File Offset: 0x0028B67C
|
||||
[Token(Token = "0x600BAD1")]
|
||||
[Address(RVA = "0x249ACC0", Offset = "0x2499CC0", VA = "0x18249ACC0")]
|
||||
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
int num = ioff + 1;
|
||||
uint num2;
|
||||
ko[0] = num2;
|
||||
int length2 = ki.Length;
|
||||
uint num3 = ki[(int)num2];
|
||||
ko[0] = num3;
|
||||
int length3 = ki.Length;
|
||||
uint num4 = ki[(int)num2];
|
||||
uint num5 = ki[ioff];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
uint num6 = ki[num];
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
uint num9 = ko[(int)num3];
|
||||
ki[0] = num9;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD2 RID: 47826 RVA: 0x0028D528 File Offset: 0x0028B728
|
||||
[Token(Token = "0x600BAD2")]
|
||||
[Address(RVA = "0x2499AB0", Offset = "0x2498AB0", VA = "0x182499AB0")]
|
||||
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
int num = ioff + 1;
|
||||
uint num2;
|
||||
ko[0] = num2;
|
||||
int length2 = ki.Length;
|
||||
uint num3 = ki[(int)num2];
|
||||
ko[0] = num3;
|
||||
int length3 = ki.Length;
|
||||
uint num4 = ki[(int)num2];
|
||||
uint num5 = ki[ioff];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
uint num6 = ki[num];
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
uint num9;
|
||||
ki[0] = num9;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD3 RID: 47827 RVA: 0x0028D5C4 File Offset: 0x0028B7C4
|
||||
[Token(Token = "0x600BAD3")]
|
||||
[Address(RVA = "0x2498FC0", Offset = "0x2497FC0", VA = "0x182498FC0")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD4 RID: 47828 RVA: 0x0028D5DC File Offset: 0x0028B7DC
|
||||
[Token(Token = "0x600BAD4")]
|
||||
[Address(RVA = "0x249CE30", Offset = "0x249BE30", VA = "0x18249CE30")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD5 RID: 47829 RVA: 0x0028D5F8 File Offset: 0x0028B7F8
|
||||
[Token(Token = "0x600BAD5")]
|
||||
[Address(RVA = "0x2499020", Offset = "0x2498020", VA = "0x182499020")]
|
||||
private static void camelliaF2(uint[] s, uint[] skey, int keyoff)
|
||||
{
|
||||
uint num = skey[keyoff];
|
||||
uint[] sbox4_ = CamelliaEngine.SBOX4_4404;
|
||||
uint[] sbox3_ = CamelliaEngine.SBOX3_3033;
|
||||
uint num2 = sbox4_[(int)num];
|
||||
uint[] sbox2_ = CamelliaEngine.SBOX2_0222;
|
||||
uint[] sbox1_ = CamelliaEngine.SBOX1_1110;
|
||||
int length = s.Length;
|
||||
int num3 = keyoff + 1;
|
||||
uint num4 = skey[num3];
|
||||
num4 += num4;
|
||||
s[1] = num4;
|
||||
uint num5 = skey[(int)num4];
|
||||
uint[] sbox4_2 = CamelliaEngine.SBOX4_4404;
|
||||
uint[] sbox3_2 = CamelliaEngine.SBOX3_3033;
|
||||
uint[] sbox2_2 = CamelliaEngine.SBOX2_0222;
|
||||
int length2 = CamelliaEngine.SBOX1_1110.Length;
|
||||
uint num6 = skey[(int)num5];
|
||||
uint num7 = s[0];
|
||||
s[0] = num7;
|
||||
num6 += num7;
|
||||
s[0] = num6;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD6 RID: 47830 RVA: 0x0028D6C4 File Offset: 0x0028B8C4
|
||||
[Token(Token = "0x600BAD6")]
|
||||
[Address(RVA = "0x2499590", Offset = "0x2498590", VA = "0x182499590")]
|
||||
private static void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
|
||||
{
|
||||
s[0] = typeof(CamelliaEngine).TypeHandle;
|
||||
int length = s.Length;
|
||||
int num = keyoff + 1;
|
||||
uint num2 = fkey[num];
|
||||
s[1] = num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD7 RID: 47831 RVA: 0x0028D700 File Offset: 0x0028B900
|
||||
[Token(Token = "0x600BAD7")]
|
||||
[Address(RVA = "0x249AFF0", Offset = "0x2499FF0", VA = "0x18249AFF0")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAD7)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::setKey(System.Boolean,System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A98:
|
||||
stloc:uint32(var_223_A9F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_169_824), ldc.i4:int32(0), ldloc:uint32(var_223_A9F))
|
||||
stloc:uint32[](var_224_AB1, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
|
||||
stloc:uint32(var_225_ABA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_224_AB1), ldc.i4:int32(0), ldloc:uint32(var_225_ABA))
|
||||
stloc:uint32[](var_226_ACC, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
|
||||
stloc:uint32(var_227_AD5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_ACC), ldc.i4:int32(1), ldloc:uint32(var_227_AD5))
|
||||
stloc:uint32[](var_228_AE7, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
|
||||
stloc:uint32(var_229_AF0, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AE7), ldc.i4:int32(1), ldloc:uint32(var_229_AF0))
|
||||
stloc:uint32[](var_230_B02, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
|
||||
stloc:int32(var_231_B05, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_231_B05), ldloc:uint32[](var_230_B02), ldloc:uint64[exp:int32](var_232))
|
||||
stloc:uint32[](var_233_B1B, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
|
||||
stloc:int32(var_234_B1E, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_234_B1E), ldloc:uint32[](var_233_B1B), ldloc:uint64[exp:int32](var_235))
|
||||
stloc:int32(var_236_B2F, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B2F), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_259))
|
||||
stloc:uint32[](var_237_B45, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
|
||||
stloc:uint32(var_238_B4F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_237_B45), ldc.i4:int32(9), ldloc:uint32(var_238_B4F))
|
||||
stloc:uint32[](var_239_B62, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
|
||||
stloc:uint32(var_240_B6C, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B62), ldc.i4:int32(9), ldloc:uint32(var_240_B6C))
|
||||
stloc:int32(var_241_B7A, ldc.i4:int32(0))
|
||||
stloc:uint32[](var_242_B82, ldfld:uint32[](CamelliaEngine::ke, ldloc:CamelliaEngine(this)))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_241_B7A), ldloc:uint32[](var_242_B82), ldloc:uint64[exp:int32](var_243))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD8 RID: 47832 RVA: 0x0028E2A0 File Offset: 0x0028C4A0
|
||||
[Token(Token = "0x600BAD8")]
|
||||
[Address(RVA = "0x2499E30", Offset = "0x2498E30", VA = "0x182499E30")]
|
||||
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] array = this.state;
|
||||
num++;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
array[0] = (uint)num;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.kw;
|
||||
num++;
|
||||
uint[] array4 = this.state;
|
||||
uint[] array5 = this.subkey;
|
||||
int num2 = 0;
|
||||
CamelliaEngine.camelliaF2(array4, array5, num2);
|
||||
uint[] array6 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array6, 4);
|
||||
uint[] array7 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array7, 8);
|
||||
uint[] array8 = this.ke;
|
||||
uint[] array9 = this.state;
|
||||
int num3 = 0;
|
||||
CamelliaEngine.camelliaFLs(array9, array8, num3);
|
||||
uint[] array10 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array10, 12);
|
||||
uint[] array11 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array11, 16);
|
||||
uint[] array12 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array12, 20);
|
||||
uint[] array13 = this.ke;
|
||||
CamelliaEngine.camelliaFLs(this.state, array13, 4);
|
||||
uint[] array14 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array14, 24);
|
||||
uint[] array15 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array15, 28);
|
||||
uint[] array16 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array16, 32);
|
||||
uint[] array17 = this.state;
|
||||
uint[] array18 = this.kw;
|
||||
uint[] array19 = this.state;
|
||||
uint[] array20 = this.kw;
|
||||
uint[] array21 = this.state;
|
||||
uint[] array22 = this.kw;
|
||||
uint[] array23 = this.state;
|
||||
uint[] array24 = this.kw;
|
||||
uint[] array25 = this.state;
|
||||
num++;
|
||||
uint[] array26 = this.state;
|
||||
num++;
|
||||
uint[] array27 = this.state;
|
||||
num++;
|
||||
uint[] array28 = this.state;
|
||||
num++;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAD9 RID: 47833 RVA: 0x0028E458 File Offset: 0x0028C658
|
||||
[Token(Token = "0x600BAD9")]
|
||||
[Address(RVA = "0x249A3A0", Offset = "0x24993A0", VA = "0x18249A3A0")]
|
||||
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] array = this.state;
|
||||
num++;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
array[0] = (uint)num;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.kw;
|
||||
num++;
|
||||
uint[] array4 = this.state;
|
||||
uint[] array5 = this.subkey;
|
||||
int num2 = 0;
|
||||
CamelliaEngine.camelliaF2(array4, array5, num2);
|
||||
uint[] array6 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array6, 4);
|
||||
uint[] array7 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array7, 8);
|
||||
uint[] array8 = this.ke;
|
||||
uint[] array9 = this.state;
|
||||
int num3 = 0;
|
||||
CamelliaEngine.camelliaFLs(array9, array8, num3);
|
||||
uint[] array10 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array10, 12);
|
||||
uint[] array11 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array11, 16);
|
||||
uint[] array12 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array12, 20);
|
||||
uint[] array13 = this.ke;
|
||||
CamelliaEngine.camelliaFLs(this.state, array13, 4);
|
||||
uint[] array14 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array14, 24);
|
||||
uint[] array15 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array15, 28);
|
||||
uint[] array16 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array16, 32);
|
||||
uint[] array17 = this.ke;
|
||||
CamelliaEngine.camelliaFLs(this.state, array17, 8);
|
||||
uint[] array18 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array18, 36);
|
||||
uint[] array19 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array19, 40);
|
||||
uint[] array20 = this.subkey;
|
||||
CamelliaEngine.camelliaF2(this.state, array20, 44);
|
||||
uint[] array21 = this.state;
|
||||
uint[] array22 = this.kw;
|
||||
uint[] array23 = this.state;
|
||||
uint[] array24 = this.kw;
|
||||
uint[] array25 = this.state;
|
||||
uint[] array26 = this.kw;
|
||||
uint[] array27 = this.state;
|
||||
uint[] array28 = this.kw;
|
||||
uint[] array29 = this.state;
|
||||
num++;
|
||||
uint[] array30 = this.state;
|
||||
num++;
|
||||
uint[] array31 = this.state;
|
||||
num++;
|
||||
uint[] array32 = this.state;
|
||||
num++;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BADA RID: 47834 RVA: 0x0028E66C File Offset: 0x0028C86C
|
||||
[Token(Token = "0x600BADA")]
|
||||
[Address(RVA = "0x2498F30", Offset = "0x2497F30", VA = "0x182498F30")]
|
||||
public CamelliaEngine()
|
||||
{
|
||||
uint[] array = new uint[96];
|
||||
this.subkey = array;
|
||||
uint[] array2 = new uint[8];
|
||||
this.kw = array2;
|
||||
uint[] array3 = new uint[12];
|
||||
this.ke = array3;
|
||||
uint[] array4 = new uint[4];
|
||||
this.state = array4;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BADB RID: 47835 RVA: 0x0028E6BC File Offset: 0x0028C8BC
|
||||
[Token(Token = "0x600BADB")]
|
||||
[Address(RVA = "0x2498B90", Offset = "0x2497B90", VA = "0x182498B90", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BADB)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_26:
|
||||
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D59 RID: 7513
|
||||
// (get) Token: 0x0600BADC RID: 47836 RVA: 0x0028E6FC File Offset: 0x0028C8FC
|
||||
[Token(Token = "0x17001D59")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BADC")]
|
||||
[Address(RVA = "0x2499DE0", Offset = "0x2498DE0", VA = "0x182499DE0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D5A RID: 7514
|
||||
// (get) Token: 0x0600BADD RID: 47837 RVA: 0x0028E710 File Offset: 0x0028C910
|
||||
[Token(Token = "0x17001D5A")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BADD")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BADE RID: 47838 RVA: 0x0028E720 File Offset: 0x0028C920
|
||||
[Token(Token = "0x600BADE")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BADF RID: 47839 RVA: 0x0028E730 File Offset: 0x0028C930
|
||||
[Token(Token = "0x600BADF")]
|
||||
[Address(RVA = "0x2498CF0", Offset = "0x2497CF0", VA = "0x182498CF0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BADF)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_24:
|
||||
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE0 RID: 47840 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BAE0")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE1 RID: 47841 RVA: 0x0028E76C File Offset: 0x0028C96C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BAE1")]
|
||||
[Address(RVA = "0x2498DF0", Offset = "0x2497DF0", VA = "0x182498DF0")]
|
||||
static CamelliaEngine()
|
||||
{
|
||||
uint[] array = new uint[12];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
|
||||
CamelliaEngine.SIGMA = array;
|
||||
uint[] array2 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.B1108EE6609DB783B2EC606B3BFDD544A7D4C2B3).FieldHandle);
|
||||
CamelliaEngine.SBOX1_1110 = array2;
|
||||
uint[] array3 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.14F6FAB1B4065EBADBBA4A3661ADE689FF444EDD).FieldHandle);
|
||||
CamelliaEngine.SBOX4_4404 = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B718C95C87C6B65DFA29D58A10442CEC9EBBDF1F).FieldHandle);
|
||||
CamelliaEngine.SBOX2_0222 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.124B1C35B19149213F8F7D40AA8E0ABA15DD70EC).FieldHandle);
|
||||
CamelliaEngine.SBOX3_3033 = array5;
|
||||
}
|
||||
|
||||
// Token: 0x040075CC RID: 30156
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075CC")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040075CD RID: 30157
|
||||
[FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x40075CD")]
|
||||
private bool _keyIs128;
|
||||
|
||||
// Token: 0x040075CE RID: 30158
|
||||
[Token(Token = "0x40075CE")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040075CF RID: 30159
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075CF")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x040075D0 RID: 30160
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075D0")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x040075D1 RID: 30161
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075D1")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x040075D2 RID: 30162
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075D2")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x040075D3 RID: 30163
|
||||
[Token(Token = "0x40075D3")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x040075D4 RID: 30164
|
||||
[Token(Token = "0x40075D4")]
|
||||
private static readonly uint[] SBOX1_1110;
|
||||
|
||||
// Token: 0x040075D5 RID: 30165
|
||||
[Token(Token = "0x40075D5")]
|
||||
private static readonly uint[] SBOX4_4404;
|
||||
|
||||
// Token: 0x040075D6 RID: 30166
|
||||
[Token(Token = "0x40075D6")]
|
||||
private static readonly uint[] SBOX2_0222;
|
||||
|
||||
// Token: 0x040075D7 RID: 30167
|
||||
[Token(Token = "0x40075D7")]
|
||||
private static readonly uint[] SBOX3_3033;
|
||||
}
|
||||
}
|
||||
+643
@@ -0,0 +1,643 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D66 RID: 7526
|
||||
[Token(Token = "0x2001D66")]
|
||||
public class CamelliaLightEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BAE2 RID: 47842 RVA: 0x0028E808 File Offset: 0x0028CA08
|
||||
[Token(Token = "0x600BAE2")]
|
||||
[Address(RVA = "0x249A960", Offset = "0x2499960", VA = "0x18249A960")]
|
||||
private static uint rightRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE3 RID: 47843 RVA: 0x0028E818 File Offset: 0x0028CA18
|
||||
[Token(Token = "0x600BAE3")]
|
||||
[Address(RVA = "0x2499E10", Offset = "0x2498E10", VA = "0x182499E10")]
|
||||
private static uint leftRotate(uint x, int s)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE4 RID: 47844 RVA: 0x0028E828 File Offset: 0x0028CA28
|
||||
[Token(Token = "0x600BAE4")]
|
||||
[Address(RVA = "0x249A980", Offset = "0x2499980", VA = "0x18249A980")]
|
||||
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
uint num = ki[ioff];
|
||||
int num2 = ioff + 1;
|
||||
uint num3 = ki[num2];
|
||||
ko[0] = num3;
|
||||
int length2 = ki.Length;
|
||||
uint num4 = ki[(int)num];
|
||||
ko[0] = num4;
|
||||
int length3 = ki.Length;
|
||||
uint num5 = ki[(int)num4];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
ko[0] = num5;
|
||||
uint num6;
|
||||
ki[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
ki[0] = num7;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE5 RID: 47845 RVA: 0x0028E8C8 File Offset: 0x0028CAC8
|
||||
[Token(Token = "0x600BAE5")]
|
||||
[Address(RVA = "0x2499770", Offset = "0x2498770", VA = "0x182499770")]
|
||||
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
uint num = ki[ioff];
|
||||
int num2 = ioff + 1;
|
||||
uint num3 = ki[num2];
|
||||
ko[0] = num3;
|
||||
int length2 = ki.Length;
|
||||
uint num4 = ki[(int)num];
|
||||
ko[0] = num4;
|
||||
int length3 = ki.Length;
|
||||
uint num5 = ki[(int)num];
|
||||
uint num6 = ki[(int)num4];
|
||||
ko[0] = num6;
|
||||
int length4 = ki.Length;
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
ki[0] = num8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE6 RID: 47846 RVA: 0x0028E968 File Offset: 0x0028CB68
|
||||
[Token(Token = "0x600BAE6")]
|
||||
[Address(RVA = "0x249ACC0", Offset = "0x2499CC0", VA = "0x18249ACC0")]
|
||||
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
int num = ioff + 1;
|
||||
uint num2;
|
||||
ko[0] = num2;
|
||||
int length2 = ki.Length;
|
||||
uint num3 = ki[(int)num2];
|
||||
ko[0] = num3;
|
||||
int length3 = ki.Length;
|
||||
uint num4 = ki[(int)num2];
|
||||
uint num5 = ki[ioff];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
uint num6 = ki[num];
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
uint num9 = ko[(int)num3];
|
||||
ki[0] = num9;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE7 RID: 47847 RVA: 0x0028EA14 File Offset: 0x0028CC14
|
||||
[Token(Token = "0x600BAE7")]
|
||||
[Address(RVA = "0x2499AB0", Offset = "0x2498AB0", VA = "0x182499AB0")]
|
||||
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
|
||||
{
|
||||
int length = ki.Length;
|
||||
int num = ioff + 1;
|
||||
uint num2;
|
||||
ko[0] = num2;
|
||||
int length2 = ki.Length;
|
||||
uint num3 = ki[(int)num2];
|
||||
ko[0] = num3;
|
||||
int length3 = ki.Length;
|
||||
uint num4 = ki[(int)num2];
|
||||
uint num5 = ki[ioff];
|
||||
ko[0] = num5;
|
||||
int length4 = ki.Length;
|
||||
uint num6 = ki[num];
|
||||
ko[0] = num6;
|
||||
uint num7;
|
||||
ki[0] = num7;
|
||||
uint num8;
|
||||
ki[0] = num8;
|
||||
uint num9;
|
||||
ki[0] = num9;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE8 RID: 47848 RVA: 0x0028EAB0 File Offset: 0x0028CCB0
|
||||
[Token(Token = "0x600BAE8")]
|
||||
[Address(RVA = "0x2498FC0", Offset = "0x2497FC0", VA = "0x182498FC0")]
|
||||
private static uint bytes2uint(byte[] src, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAE9 RID: 47849 RVA: 0x0028EAC8 File Offset: 0x0028CCC8
|
||||
[Token(Token = "0x600BAE9")]
|
||||
[Address(RVA = "0x249CE30", Offset = "0x249BE30", VA = "0x18249CE30")]
|
||||
private static void uint2bytes(uint word, byte[] dst, int offset)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAEA RID: 47850 RVA: 0x0028EAE4 File Offset: 0x0028CCE4
|
||||
[Token(Token = "0x600BAEA")]
|
||||
[Address(RVA = "0x27D99F0", Offset = "0x27D89F0", VA = "0x1827D99F0")]
|
||||
private byte lRot8(byte v, int rot)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)rot;
|
||||
return v;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAEB RID: 47851 RVA: 0x0028EAF8 File Offset: 0x0028CCF8
|
||||
[Token(Token = "0x600BAEB")]
|
||||
[Address(RVA = "0x27DA5C0", Offset = "0x27D95C0", VA = "0x1827DA5C0")]
|
||||
private uint sbox2(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAEC RID: 47852 RVA: 0x0028EB10 File Offset: 0x0028CD10
|
||||
[Token(Token = "0x600BAEC")]
|
||||
[Address(RVA = "0x27DA650", Offset = "0x27D9650", VA = "0x1827DA650")]
|
||||
private uint sbox3(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAED RID: 47853 RVA: 0x0028EB28 File Offset: 0x0028CD28
|
||||
[Token(Token = "0x600BAED")]
|
||||
[Address(RVA = "0x27DA6E0", Offset = "0x27D96E0", VA = "0x1827DA6E0")]
|
||||
private uint sbox4(int x)
|
||||
{
|
||||
byte[] sbox = CamelliaLightEngine.SBOX1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAEE RID: 47854 RVA: 0x0028EB40 File Offset: 0x0028CD40
|
||||
[Token(Token = "0x600BAEE")]
|
||||
[Address(RVA = "0x27D9330", Offset = "0x27D8330", VA = "0x1827D9330")]
|
||||
private void camelliaF2(uint[] s, uint[] skey, int keyoff)
|
||||
{
|
||||
uint num = skey[keyoff];
|
||||
uint num2 = this.sbox4((int)num);
|
||||
uint num3 = this.sbox3((int)num);
|
||||
uint num4 = this.sbox2((int)num);
|
||||
int length = CamelliaLightEngine.SBOX1.Length;
|
||||
int num5 = keyoff + 1;
|
||||
uint num6 = skey[num5];
|
||||
num3 = this.sbox4((int)num6);
|
||||
uint num7 = this.sbox3((int)num6);
|
||||
uint num8 = this.sbox2((int)num6);
|
||||
num8 += num8;
|
||||
num6 = num8;
|
||||
num6 += num8;
|
||||
byte b;
|
||||
b += b;
|
||||
num6 += num6;
|
||||
s[1] = num6;
|
||||
b += b;
|
||||
uint num9 = skey[(int)b];
|
||||
num6 = num9;
|
||||
num7 = this.sbox4((int)num6);
|
||||
num6 = num9;
|
||||
num3 = this.sbox3((int)num6);
|
||||
num6 = num9;
|
||||
uint num10 = this.sbox2((int)num6);
|
||||
int length2 = CamelliaLightEngine.SBOX1.Length;
|
||||
num3 = this.sbox4((int)num10);
|
||||
uint num11 = this.sbox3((int)num10);
|
||||
uint num12 = this.sbox2((int)num10);
|
||||
num12 += num12;
|
||||
num10 = num12;
|
||||
num10 += num12;
|
||||
byte b2;
|
||||
b2 += b2;
|
||||
num10 += num10;
|
||||
s[0] = num10;
|
||||
b2 += b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAEF RID: 47855 RVA: 0x0028EC6C File Offset: 0x0028CE6C
|
||||
[Token(Token = "0x600BAEF")]
|
||||
[Address(RVA = "0x27D97E0", Offset = "0x27D87E0", VA = "0x1827D97E0")]
|
||||
private void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
|
||||
{
|
||||
s[0] = typeof(CamelliaLightEngine).TypeHandle;
|
||||
int length = s.Length;
|
||||
int num = keyoff + 1;
|
||||
uint num2 = fkey[num];
|
||||
s[1] = num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF0 RID: 47856 RVA: 0x0028ECA8 File Offset: 0x0028CEA8
|
||||
[Token(Token = "0x600BAF0")]
|
||||
[Address(RVA = "0x27DA770", Offset = "0x27D9770", VA = "0x1827DA770")]
|
||||
private void setKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAF0)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::setKey(System.Boolean,System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A9D:
|
||||
stloc:uint32(var_225_AA4, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_171_829), ldc.i4:int32(0), ldloc:uint32(var_225_AA4))
|
||||
stloc:uint32[](var_226_AB6, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:uint32(var_227_ABF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_AB6), ldc.i4:int32(0), ldloc:uint32(var_227_ABF))
|
||||
stloc:uint32[](var_228_AD1, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:uint32(var_229_ADA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AD1), ldc.i4:int32(1), ldloc:uint32(var_229_ADA))
|
||||
stloc:uint32[](var_230_AEC, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:uint32(var_231_AF5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_230_AEC), ldc.i4:int32(1), ldloc:uint32(var_231_AF5))
|
||||
stloc:uint32[](var_232_B07, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:int32(var_233_B0A, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_233_B0A), ldloc:uint32[](var_232_B07), ldloc:uint64[exp:int32](var_234))
|
||||
stloc:uint32[](var_235_B20, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:int32(var_236_B23, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B23), ldloc:uint32[](var_235_B20), ldloc:uint64[exp:int32](var_237))
|
||||
stloc:int32(var_238_B34, ldc.i4:int32(0))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_238_B34), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_25A))
|
||||
stloc:uint32[](var_239_B4A, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:uint32(var_240_B54, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B4A), ldc.i4:int32(9), ldloc:uint32(var_240_B54))
|
||||
stloc:uint32[](var_241_B67, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
|
||||
stloc:uint32(var_242_B71, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
|
||||
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_241_B67), ldc.i4:int32(9), ldloc:uint32(var_242_B71))
|
||||
stloc:int32(var_243_B7F, ldc.i4:int32(0))
|
||||
stloc:uint32[](var_244_B87, ldfld:uint32[](CamelliaLightEngine::ke, ldloc:CamelliaLightEngine(this)))
|
||||
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_243_B7F), ldloc:uint32[](var_244_B87), ldloc:uint64[exp:int32](var_245))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF1 RID: 47857 RVA: 0x0028F84C File Offset: 0x0028DA4C
|
||||
[Token(Token = "0x600BAF1")]
|
||||
[Address(RVA = "0x27D9A20", Offset = "0x27D8A20", VA = "0x1827D9A20")]
|
||||
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] array = this.state;
|
||||
num++;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
array[0] = (uint)num;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.kw;
|
||||
num++;
|
||||
uint[] array4 = this.subkey;
|
||||
int num2 = 0;
|
||||
uint[] array5 = this.state;
|
||||
this.camelliaF2(array5, array4, num2);
|
||||
uint[] array6 = this.subkey;
|
||||
uint[] array7 = this.state;
|
||||
uint num3;
|
||||
this.camelliaF2(array7, array6, (int)num3);
|
||||
uint[] array8 = this.subkey;
|
||||
uint[] array9 = this.state;
|
||||
uint num4;
|
||||
this.camelliaF2(array9, array8, (int)num4);
|
||||
uint[] array10 = this.ke;
|
||||
int num5 = 0;
|
||||
uint[] array11 = this.state;
|
||||
this.camelliaFLs(array11, array10, num5);
|
||||
uint[] array12 = this.subkey;
|
||||
uint[] array13 = this.state;
|
||||
uint num6;
|
||||
this.camelliaF2(array13, array12, (int)num6);
|
||||
uint[] array14 = this.subkey;
|
||||
uint[] array15 = this.state;
|
||||
uint num7;
|
||||
this.camelliaF2(array15, array14, (int)num7);
|
||||
uint[] array16 = this.subkey;
|
||||
uint[] array17 = this.state;
|
||||
uint num8;
|
||||
this.camelliaF2(array17, array16, (int)num8);
|
||||
uint[] array18 = this.ke;
|
||||
uint[] array19 = this.state;
|
||||
uint num9;
|
||||
this.camelliaFLs(array19, array18, (int)num9);
|
||||
uint[] array20 = this.subkey;
|
||||
uint[] array21 = this.state;
|
||||
uint num10;
|
||||
this.camelliaF2(array21, array20, (int)num10);
|
||||
uint[] array22 = this.subkey;
|
||||
uint[] array23 = this.state;
|
||||
uint num11;
|
||||
this.camelliaF2(array23, array22, (int)num11);
|
||||
uint[] array24 = this.subkey;
|
||||
uint[] array25 = this.state;
|
||||
uint num12;
|
||||
this.camelliaF2(array25, array24, (int)num12);
|
||||
uint[] array26 = this.state;
|
||||
uint[] array27 = this.kw;
|
||||
uint[] array28 = this.state;
|
||||
uint[] array29 = this.kw;
|
||||
uint[] array30 = this.state;
|
||||
uint[] array31 = this.kw;
|
||||
uint[] array32 = this.state;
|
||||
uint[] array33 = this.kw;
|
||||
uint[] array34 = this.state;
|
||||
num++;
|
||||
uint num13 = this.state[1];
|
||||
output[0] = (byte)num13;
|
||||
num++;
|
||||
uint num14 = this.state[0];
|
||||
output[0] = (byte)num14;
|
||||
num++;
|
||||
uint num15 = this.state[0];
|
||||
output[0] = (byte)num15;
|
||||
num++;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF2 RID: 47858 RVA: 0x0028FA64 File Offset: 0x0028DC64
|
||||
[Token(Token = "0x600BAF2")]
|
||||
[Address(RVA = "0x27D9FC0", Offset = "0x27D8FC0", VA = "0x1827D9FC0")]
|
||||
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] array = this.state;
|
||||
num++;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
array[0] = (uint)num;
|
||||
uint[] array2 = this.state;
|
||||
uint[] array3 = this.kw;
|
||||
num++;
|
||||
uint[] array4 = this.subkey;
|
||||
int num2 = 0;
|
||||
uint[] array5 = this.state;
|
||||
this.camelliaF2(array5, array4, num2);
|
||||
uint[] array6 = this.subkey;
|
||||
uint[] array7 = this.state;
|
||||
uint num3;
|
||||
this.camelliaF2(array7, array6, (int)num3);
|
||||
uint[] array8 = this.subkey;
|
||||
uint[] array9 = this.state;
|
||||
uint num4;
|
||||
this.camelliaF2(array9, array8, (int)num4);
|
||||
uint[] array10 = this.ke;
|
||||
int num5 = 0;
|
||||
uint[] array11 = this.state;
|
||||
this.camelliaFLs(array11, array10, num5);
|
||||
uint[] array12 = this.subkey;
|
||||
uint[] array13 = this.state;
|
||||
uint num6;
|
||||
this.camelliaF2(array13, array12, (int)num6);
|
||||
uint[] array14 = this.subkey;
|
||||
uint[] array15 = this.state;
|
||||
uint num7;
|
||||
this.camelliaF2(array15, array14, (int)num7);
|
||||
uint[] array16 = this.subkey;
|
||||
uint[] array17 = this.state;
|
||||
uint num8;
|
||||
this.camelliaF2(array17, array16, (int)num8);
|
||||
uint[] array18 = this.ke;
|
||||
uint[] array19 = this.state;
|
||||
uint num9;
|
||||
this.camelliaFLs(array19, array18, (int)num9);
|
||||
uint[] array20 = this.subkey;
|
||||
uint[] array21 = this.state;
|
||||
uint num10;
|
||||
this.camelliaF2(array21, array20, (int)num10);
|
||||
uint[] array22 = this.subkey;
|
||||
uint[] array23 = this.state;
|
||||
uint num11;
|
||||
this.camelliaF2(array23, array22, (int)num11);
|
||||
uint[] array24 = this.subkey;
|
||||
uint[] array25 = this.state;
|
||||
uint num12;
|
||||
this.camelliaF2(array25, array24, (int)num12);
|
||||
uint[] array26 = this.ke;
|
||||
uint[] array27 = this.state;
|
||||
uint num13;
|
||||
this.camelliaFLs(array27, array26, (int)num13);
|
||||
uint[] array28 = this.subkey;
|
||||
uint[] array29 = this.state;
|
||||
uint num14;
|
||||
this.camelliaF2(array29, array28, (int)num14);
|
||||
uint[] array30 = this.subkey;
|
||||
uint[] array31 = this.state;
|
||||
uint num15;
|
||||
this.camelliaF2(array31, array30, (int)num15);
|
||||
uint[] array32 = this.subkey;
|
||||
uint[] array33 = this.state;
|
||||
uint num16;
|
||||
this.camelliaF2(array33, array32, (int)num16);
|
||||
uint[] array34 = this.state;
|
||||
uint[] array35 = this.kw;
|
||||
uint[] array36 = this.state;
|
||||
uint[] array37 = this.kw;
|
||||
uint[] array38 = this.state;
|
||||
uint[] array39 = this.kw;
|
||||
uint[] array40 = this.state;
|
||||
uint[] array41 = this.kw;
|
||||
uint[] array42 = this.state;
|
||||
num++;
|
||||
uint num17 = this.state[1];
|
||||
output[0] = (byte)num17;
|
||||
num++;
|
||||
uint num18 = this.state[0];
|
||||
output[0] = (byte)num18;
|
||||
num++;
|
||||
uint num19 = this.state[0];
|
||||
output[0] = (byte)num19;
|
||||
num++;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF3 RID: 47859 RVA: 0x0028FCEC File Offset: 0x0028DEEC
|
||||
[Token(Token = "0x600BAF3")]
|
||||
[Address(RVA = "0x27D92A0", Offset = "0x27D82A0", VA = "0x1827D92A0")]
|
||||
public CamelliaLightEngine()
|
||||
{
|
||||
uint[] array = new uint[96];
|
||||
this.subkey = array;
|
||||
uint[] array2 = new uint[8];
|
||||
this.kw = array2;
|
||||
uint[] array3 = new uint[12];
|
||||
this.ke = array3;
|
||||
uint[] array4 = new uint[4];
|
||||
this.state = array4;
|
||||
this.Reset();
|
||||
this.initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x17001D5B RID: 7515
|
||||
// (get) Token: 0x0600BAF4 RID: 47860 RVA: 0x0028FD40 File Offset: 0x0028DF40
|
||||
[Token(Token = "0x17001D5B")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BAF4")]
|
||||
[Address(RVA = "0x27D99C0", Offset = "0x27D89C0", VA = "0x1827D99C0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Camellia";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D5C RID: 7516
|
||||
// (get) Token: 0x0600BAF5 RID: 47861 RVA: 0x0028FD54 File Offset: 0x0028DF54
|
||||
[Token(Token = "0x17001D5C")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BAF5")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF6 RID: 47862 RVA: 0x0028FD64 File Offset: 0x0028DF64
|
||||
[Token(Token = "0x600BAF6")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF7 RID: 47863 RVA: 0x0028FD74 File Offset: 0x0028DF74
|
||||
[Token(Token = "0x600BAF7")]
|
||||
[Address(RVA = "0x27D8FA0", Offset = "0x27D7FA0", VA = "0x1827D8FA0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAF7)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_26:
|
||||
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF8 RID: 47864 RVA: 0x0028FDB4 File Offset: 0x0028DFB4
|
||||
[Token(Token = "0x600BAF8")]
|
||||
[Address(RVA = "0x27D9100", Offset = "0x27D8100", VA = "0x1827D9100", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAF8)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_24:
|
||||
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BAF9 RID: 47865 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BAF9")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BAFA RID: 47866 RVA: 0x0028FDF0 File Offset: 0x0028DFF0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BAFA")]
|
||||
[Address(RVA = "0x27D9200", Offset = "0x27D8200", VA = "0x1827D9200")]
|
||||
static CamelliaLightEngine()
|
||||
{
|
||||
uint[] array = new uint[12];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
|
||||
CamelliaLightEngine.SIGMA = array;
|
||||
byte[] array2 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.81FDCC6319440C75C8E422A1FE4E3F1A80B89F5F).FieldHandle);
|
||||
CamelliaLightEngine.SBOX1 = array2;
|
||||
}
|
||||
|
||||
// Token: 0x040075D8 RID: 30168
|
||||
[Token(Token = "0x40075D8")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040075D9 RID: 30169
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075D9")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040075DA RID: 30170
|
||||
[FieldOffset(Offset = "0x11")]
|
||||
[Token(Token = "0x40075DA")]
|
||||
private bool _keyis128;
|
||||
|
||||
// Token: 0x040075DB RID: 30171
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075DB")]
|
||||
private uint[] subkey;
|
||||
|
||||
// Token: 0x040075DC RID: 30172
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075DC")]
|
||||
private uint[] kw;
|
||||
|
||||
// Token: 0x040075DD RID: 30173
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075DD")]
|
||||
private uint[] ke;
|
||||
|
||||
// Token: 0x040075DE RID: 30174
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075DE")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x040075DF RID: 30175
|
||||
[Token(Token = "0x40075DF")]
|
||||
private static readonly uint[] SIGMA;
|
||||
|
||||
// Token: 0x040075E0 RID: 30176
|
||||
[Token(Token = "0x40075E0")]
|
||||
private static readonly byte[] SBOX1;
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D67 RID: 7527
|
||||
[Token(Token = "0x2001D67")]
|
||||
public class CamelliaWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600BAFB RID: 47867 RVA: 0x0028FE34 File Offset: 0x0028E034
|
||||
[Token(Token = "0x600BAFB")]
|
||||
[Address(RVA = "0x27DC5C0", Offset = "0x27DB5C0", VA = "0x1827DC5C0")]
|
||||
public CamelliaWrapEngine()
|
||||
{
|
||||
CamelliaEngine camelliaEngine = new CamelliaEngine();
|
||||
base..ctor(camelliaEngine);
|
||||
}
|
||||
}
|
||||
}
|
||||
+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: 0x02001D68 RID: 7528
|
||||
[Token(Token = "0x2001D68")]
|
||||
public class Cast5Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BAFC RID: 47868 RVA: 0x0028FE50 File Offset: 0x0028E050
|
||||
[Token(Token = "0x600BAFC")]
|
||||
[Address(RVA = "0x27E4290", Offset = "0x27E3290", VA = "0x1827E4290")]
|
||||
public Cast5Engine()
|
||||
{
|
||||
int[] array = new int[17];
|
||||
this._Kr = array;
|
||||
uint[] array2 = new uint[17];
|
||||
this._Km = array2;
|
||||
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
|
||||
this._rounds = max_ROUNDS;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BAFD RID: 47869 RVA: 0x0028FE90 File Offset: 0x0028E090
|
||||
[Token(Token = "0x600BAFD")]
|
||||
[Address(RVA = "0x27DD260", Offset = "0x27DC260", VA = "0x1827DD260", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BAFD)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_30:
|
||||
stloc:ArgumentException(var_8_37, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_7)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D5D RID: 7517
|
||||
// (get) Token: 0x0600BAFE RID: 47870 RVA: 0x0028FED8 File Offset: 0x0028E0D8
|
||||
[Token(Token = "0x17001D5D")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BAFE")]
|
||||
[Address(RVA = "0x27E4330", Offset = "0x27E3330", VA = "0x1827E4330", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST5";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D5E RID: 7518
|
||||
// (get) Token: 0x0600BAFF RID: 47871 RVA: 0x0028FEEC File Offset: 0x0028E0EC
|
||||
[Token(Token = "0x17001D5E")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BAFF")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB00 RID: 47872 RVA: 0x0028FEFC File Offset: 0x0028E0FC
|
||||
[Token(Token = "0x600BB00")]
|
||||
[Address(RVA = "0x27DD4F0", Offset = "0x27DC4F0", VA = "0x1827DD4F0", Slot = "13")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB00)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_25:
|
||||
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB01 RID: 47873 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BB01")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BB02 RID: 47874 RVA: 0x0028FF38 File Offset: 0x0028E138
|
||||
[Token(Token = "0x600BB02")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "15")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB03 RID: 47875 RVA: 0x0028FF48 File Offset: 0x0028E148
|
||||
[Token(Token = "0x600BB03")]
|
||||
[Address(RVA = "0x27DD650", Offset = "0x27DC650", VA = "0x1827DD650", Slot = "16")]
|
||||
internal virtual void SetKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB03)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::SetKey(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3F:
|
||||
stloc:int32(var_6_40, ldc.i4:int32(0))
|
||||
stloc:uint32(var_7_4A, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_6_40)))
|
||||
stloc:uint32(var_8_53, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_9_5C, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
|
||||
stloc:uint32(var_10_66, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
|
||||
stloc:uint32[](var_11_6D, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_12_75, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:int32(var_13_7E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_14_85, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_15_8E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:uint32[](var_16_95, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_17_9E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_18_A5, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_19_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:int32(var_20_B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_21_C2, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_16_95), ldloc:int32(var_20_B7)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
|
||||
stloc:int32(var_22_EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_23_F5, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:uint32[](var_24_FC, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_25_105, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_26_10C, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_27_115, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32(var_28_120, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_26_10C), ldloc:int32(var_27_115)))
|
||||
stloc:uint32[](var_29_127, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_30_130, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:int32(var_31_139, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_29_127), ldloc:int32(var_31_139)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
|
||||
stloc:int32(var_32_151, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_33_158, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_34_161, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_35_168, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_36_171, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_37_178, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_38_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_39_188, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_40_191, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:int32(var_41_19A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_33_158), ldloc:int32(var_41_19A)), ldloc:int32[](var_1_1E), ldc.i4:int32(8))
|
||||
stloc:int32(var_42_1B2, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_43_1B9, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_44_1C2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_45_1C9, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_46_1D2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:uint32[](var_47_1D9, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_48_1E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_49_1E9, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_50_1F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:int32(var_51_1FB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_45_1C9), ldloc:int32(var_51_1FB)), ldloc:int32[](var_1_1E), ldc.i4:int32(12))
|
||||
stloc:int32(var_52_214, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_53_21B, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_54_224, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:uint32[](var_55_22B, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_56_234, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:uint32[](var_57_23B, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_58_244, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_59_24B, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_60_254, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:int32(var_61_25D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:uint32(var_62_268, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_53_21B), ldloc:int32(var_61_25D)))
|
||||
stloc:int32(var_63_270, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_64_277, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_65_280, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_66_287, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_67_290, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_68_297, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_69_2A0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_70_2A7, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_71_2B0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:uint32(var_72_2BB, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_70_2A7), ldloc:int32(var_71_2B0)))
|
||||
stloc:int32(var_73_2C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:int32(var_74_2CC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_75_2D3, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_76_2DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_77_2E3, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_78_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_79_2F3, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_80_2FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_81_303, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_82_30C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:uint32(var_83_317, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_81_303), ldloc:int32(var_82_30C)))
|
||||
stloc:int32(var_84_320, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:int32(var_85_328, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_86_32F, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_87_338, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
|
||||
stloc:uint32[](var_88_33F, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_89_348, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
|
||||
stloc:uint32[](var_90_34F, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_91_358, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_92_35F, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_93_368, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32(var_94_373, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_92_35F), ldloc:int32(var_93_368)))
|
||||
stloc:int32(var_95_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
|
||||
stloc:int32(var_96_37F, ldc.i4:int32(0))
|
||||
stloc:uint32(var_97_389, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldloc:int32(var_96_37F)))
|
||||
stloc:uint32(var_10_392, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_98_39B, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(8)))
|
||||
stloc:uint32(var_8_3A5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(12)))
|
||||
stloc:int32(var_99_3AD, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_100_3B4, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_101_3BD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_102_3C4, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_103_3CD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_104_3D4, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_105_3DD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_106_3E4, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_107_3ED, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:int32(var_108_3F6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32(var_109_401, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_104_3D4), ldloc:int32(var_108_3F6)))
|
||||
stloc:int32(var_110_404, ldc.i4:int32(0))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_109_401), ldloc:int32[](var_2_26), ldloc:int32(var_110_404))
|
||||
stloc:int32(var_111_416, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_112_41D, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_113_426, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_114_42D, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_115_436, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_116_43D, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_117_446, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_118_44D, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_119_456, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
|
||||
stloc:int32(var_120_45F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_118_44D), ldloc:int32(var_120_45F)), ldloc:int32[](var_2_26), ldc.i4:int32(4))
|
||||
stloc:int32(var_121_477, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_122_47E, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_123_487, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_124_48E, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_125_497, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_126_49E, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_127_4A7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_128_4AE, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_129_4B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
|
||||
stloc:int32(var_130_4C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_122_47E), ldloc:int32(var_130_4C0)), ldloc:int32[](var_2_26), ldc.i4:int32(8))
|
||||
stloc:int32(var_131_4D8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_132_4DF, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_133_4E8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_134_4EF, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_135_4F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32[](var_136_4FF, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_137_508, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
stloc:uint32(var_138_513, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_136_4FF), ldloc:int32(var_137_508)))
|
||||
stloc:uint32[](var_139_51A, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_140_523, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:int32(var_141_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_134_4EF), ldloc:int32(var_141_52C)), ldloc:int32[](var_2_26), ldc.i4:int32(12))
|
||||
stloc:int32(var_142_545, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_143_54C, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_144_555, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_145_55C, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_146_565, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_147_56C, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_148_575, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_149_57C, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_150_585, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32(var_151_590, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_149_57C), ldloc:int32(var_150_585)))
|
||||
stloc:int32(var_152_599, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:int32(var_153_5A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_154_5A8, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_155_5B1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_156_5B8, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_157_5C1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_158_5C8, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_159_5D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:uint32(var_160_5DC, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_158_5C8), ldloc:int32(var_159_5D1)))
|
||||
stloc:uint32[](var_161_5E3, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_162_5EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:uint32(var_163_5F7, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_161_5E3), ldloc:int32(var_162_5EC)))
|
||||
stloc:int32(var_164_600, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:int32(var_165_608, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_166_60F, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_167_618, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_168_61F, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_169_628, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_170_62F, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_171_638, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32[](var_172_63F, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_173_648, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_174_653, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_172_63F), ldloc:int32(var_173_648)))
|
||||
stloc:int32(var_175_65C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
|
||||
stloc:int32(var_176_664, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_177_66B, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_178_674, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_179_67B, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_180_684, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
|
||||
stloc:uint32[](var_181_68B, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_182_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
stloc:uint32[](var_183_69B, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_184_6A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
stloc:uint32(var_185_6AF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_183_69B), ldloc:int32(var_184_6A4)))
|
||||
stloc:int32(var_186_6B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
|
||||
stloc:int32(var_187_6BB, ldc.i4:int32(0))
|
||||
stloc:uint32(var_188_6C5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_187_6BB)))
|
||||
stloc:uint32(var_8_6CE, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_97_6D7, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
|
||||
stloc:uint32(var_10_6E1, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
|
||||
stloc:int32(var_189_6E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
|
||||
stloc:uint32[](var_190_6F0, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_191_6F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_192_700, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_193_709, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:uint32[](var_194_710, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_195_719, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
|
||||
stloc:uint32[](var_196_720, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_197_729, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
|
||||
stloc:int32(var_198_732, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
|
||||
stloc:uint32(var_199_73D, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_194_710), ldloc:int32(var_198_732)))
|
||||
stloc:int32(var_200_740, ldc.i4:int32(0))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_199_73D), ldloc:int32[](var_1_1E), ldloc:int32(var_200_740))
|
||||
stloc:int32(var_201_752, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_202_759, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_203_762, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_204_769, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_205_772, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:uint32[](var_206_779, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_207_782, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
|
||||
stloc:uint32[](var_208_789, ldsfld:uint32[](Cast5Engine::S8))
|
||||
stloc:int32(var_209_792, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
|
||||
stloc:int32(var_210_79B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
|
||||
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_208_789), ldloc:int32(var_210_79B)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
|
||||
stloc:int32(var_211_7B3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
|
||||
stloc:uint32[](var_212_7BA, ldsfld:uint32[](Cast5Engine::S5))
|
||||
stloc:int32(var_213_7C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_214_7CA, ldsfld:uint32[](Cast5Engine::S6))
|
||||
stloc:int32(var_215_7D3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
|
||||
stloc:uint32[](var_216_7DA, ldsfld:uint32[](Cast5Engine::S7))
|
||||
stloc:int32(var_217_7E3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB04 RID: 47876 RVA: 0x0029073C File Offset: 0x0028E93C
|
||||
[Token(Token = "0x600BB04")]
|
||||
[Address(RVA = "0x27DCD90", Offset = "0x27DBD90", VA = "0x1827DCD90", Slot = "17")]
|
||||
internal virtual int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Encipher(num, num2, array);
|
||||
uint num3 = array[0];
|
||||
uint num4 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB05 RID: 47877 RVA: 0x00290784 File Offset: 0x0028E984
|
||||
[Token(Token = "0x600BB05")]
|
||||
[Address(RVA = "0x27DCC80", Offset = "0x27DBC80", VA = "0x1827DCC80", Slot = "18")]
|
||||
internal virtual int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[2];
|
||||
this.CAST_Decipher(num, num2, array);
|
||||
uint num3 = array[0];
|
||||
uint num4 = array[0];
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB06 RID: 47878 RVA: 0x002907CC File Offset: 0x0028E9CC
|
||||
[Token(Token = "0x600BB06")]
|
||||
[Address(RVA = "0x27DCEA0", Offset = "0x27DBEA0", VA = "0x1827DCEA0")]
|
||||
internal static uint F1(uint D, uint Kmi, int Kri)
|
||||
{
|
||||
uint[] s = Cast5Engine.S1;
|
||||
uint num = Cast5Engine.S2[(int)Kmi];
|
||||
uint num2 = Cast5Engine.S3[(int)Kmi];
|
||||
uint num3 = Cast5Engine.S4[(int)Kmi];
|
||||
num3 += num;
|
||||
return num3 - num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB07 RID: 47879 RVA: 0x00290814 File Offset: 0x0028EA14
|
||||
[Token(Token = "0x600BB07")]
|
||||
[Address(RVA = "0x27DCFE0", Offset = "0x27DBFE0", VA = "0x1827DCFE0")]
|
||||
internal static uint F2(uint D, uint Kmi, int Kri)
|
||||
{
|
||||
uint num = Cast5Engine.S1[(int)Kmi];
|
||||
uint num2 = Cast5Engine.S2[(int)Kmi];
|
||||
uint num3 = Cast5Engine.S3[(int)Kmi];
|
||||
uint num4 = Cast5Engine.S4[(int)Kmi];
|
||||
num3 -= num2;
|
||||
num3 += num;
|
||||
return num4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB08 RID: 47880 RVA: 0x00290860 File Offset: 0x0028EA60
|
||||
[Token(Token = "0x600BB08")]
|
||||
[Address(RVA = "0x27DD120", Offset = "0x27DC120", VA = "0x1827DD120")]
|
||||
internal static uint F3(uint D, uint Kmi, int Kri)
|
||||
{
|
||||
uint[] s = Cast5Engine.S1;
|
||||
uint[] s2 = Cast5Engine.S2;
|
||||
uint[] s3 = Cast5Engine.S3;
|
||||
uint[] s4 = Cast5Engine.S4;
|
||||
return D;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB09 RID: 47881 RVA: 0x0029088C File Offset: 0x0028EA8C
|
||||
[Token(Token = "0x600BB09")]
|
||||
[Address(RVA = "0x27DC9B0", Offset = "0x27DB9B0", VA = "0x1827DC9B0")]
|
||||
internal void CAST_Encipher(uint L0, uint R0, uint[] result)
|
||||
{
|
||||
uint num;
|
||||
if (num - 1U <= (uint)15)
|
||||
{
|
||||
uint num2 = num - 1U;
|
||||
uint num3 = this._Km[(int)num];
|
||||
int num4 = this._Kr[(int)num];
|
||||
uint num5 = Cast5Engine.F2(R0, num3, num4);
|
||||
uint[] km = this._Km;
|
||||
int[] kr = this._Kr;
|
||||
uint num6 = Cast5Engine.F3(R0, num3, num4);
|
||||
uint[] km2 = this._Km;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num7 = Cast5Engine.F1(R0, num3, num4);
|
||||
}
|
||||
num += (uint)1;
|
||||
while (num <= this.S7)
|
||||
{
|
||||
}
|
||||
result[0] = R0;
|
||||
result[0] = L0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB0A RID: 47882 RVA: 0x00290924 File Offset: 0x0028EB24
|
||||
[Token(Token = "0x600BB0A")]
|
||||
[Address(RVA = "0x27DC6D0", Offset = "0x27DB6D0", VA = "0x1827DC6D0")]
|
||||
internal void CAST_Decipher(uint L16, uint R16, uint[] result)
|
||||
{
|
||||
int rounds = this._rounds;
|
||||
if (rounds > 0)
|
||||
{
|
||||
int num = rounds - 1;
|
||||
if (num <= 15)
|
||||
{
|
||||
uint num2 = this._Km[rounds];
|
||||
int[] kr = this._Kr;
|
||||
uint num3 = Cast5Engine.F2(R16, num2, rounds);
|
||||
uint[] km = this._Km;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num4 = Cast5Engine.F3(R16, num2, rounds);
|
||||
uint[] km2 = this._Km;
|
||||
int[] kr3 = this._Kr;
|
||||
uint num5 = Cast5Engine.F1(R16, num2, rounds);
|
||||
}
|
||||
}
|
||||
result[0] = R16;
|
||||
result[0] = L16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB0B RID: 47883 RVA: 0x002909B0 File Offset: 0x0028EBB0
|
||||
[Token(Token = "0x600BB0B")]
|
||||
[Address(RVA = "0x27DC620", Offset = "0x27DB620", VA = "0x1827DC620")]
|
||||
internal static void Bits32ToInts(uint inData, int[] b, int offset)
|
||||
{
|
||||
b[0] = (int)inData;
|
||||
b[0] = (int)inData;
|
||||
int num = offset + 1;
|
||||
b[0] = (int)inData;
|
||||
b[0] = (int)inData;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB0C RID: 47884 RVA: 0x002909E8 File Offset: 0x0028EBE8
|
||||
[Token(Token = "0x600BB0C")]
|
||||
[Address(RVA = "0x27DD440", Offset = "0x27DC440", VA = "0x1827DD440")]
|
||||
internal static uint IntsTo32bits(int[] b, int i)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = i + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB0D RID: 47885 RVA: 0x00290A08 File Offset: 0x0028EC08
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BB0D")]
|
||||
[Address(RVA = "0x27E4080", Offset = "0x27E3080", VA = "0x1827E4080")]
|
||||
static Cast5Engine()
|
||||
{
|
||||
uint[] array = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.37454D933508E238CFB980F1077B24ADA4A480F4).FieldHandle);
|
||||
Cast5Engine.S1 = array;
|
||||
uint[] array2 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.555BD8216452A1A1E3CB7AD8F4DAE8F41FB30380).FieldHandle);
|
||||
Cast5Engine.S2 = array2;
|
||||
uint[] array3 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EF813A47B13574822D335279EF445343654A4F04).FieldHandle);
|
||||
Cast5Engine.S3 = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.A47DBBBB6655DAA5E024374BB9C8AA44FF40D444).FieldHandle);
|
||||
Cast5Engine.S4 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.84F6B4137736E2F6671FC8787A500AC5C6E1D6AC).FieldHandle);
|
||||
Cast5Engine.S5 = array5;
|
||||
uint[] array6 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.17651A9FA4DEA6C24D1287324CF4A640D080FE8E).FieldHandle);
|
||||
Cast5Engine.S6 = array6;
|
||||
uint[] array7 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.7FF0A15672FF2807983AB77C0DA74928986427C0).FieldHandle);
|
||||
Cast5Engine.S7 = array7;
|
||||
uint[] array8 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.B539B4DC5A69E3FE6AB10F668DDCA96E9D51235B).FieldHandle);
|
||||
Cast5Engine.S8 = array8;
|
||||
}
|
||||
|
||||
// Token: 0x040075E1 RID: 30177
|
||||
[Token(Token = "0x40075E1")]
|
||||
private static readonly uint[] S1;
|
||||
|
||||
// Token: 0x040075E2 RID: 30178
|
||||
[Token(Token = "0x40075E2")]
|
||||
private static readonly uint[] S2;
|
||||
|
||||
// Token: 0x040075E3 RID: 30179
|
||||
[Token(Token = "0x40075E3")]
|
||||
private static readonly uint[] S3;
|
||||
|
||||
// Token: 0x040075E4 RID: 30180
|
||||
[Token(Token = "0x40075E4")]
|
||||
private static readonly uint[] S4;
|
||||
|
||||
// Token: 0x040075E5 RID: 30181
|
||||
[Token(Token = "0x40075E5")]
|
||||
private static readonly uint[] S5;
|
||||
|
||||
// Token: 0x040075E6 RID: 30182
|
||||
[Token(Token = "0x40075E6")]
|
||||
private static readonly uint[] S6;
|
||||
|
||||
// Token: 0x040075E7 RID: 30183
|
||||
[Token(Token = "0x40075E7")]
|
||||
private static readonly uint[] S7;
|
||||
|
||||
// Token: 0x040075E8 RID: 30184
|
||||
[Token(Token = "0x40075E8")]
|
||||
private static readonly uint[] S8;
|
||||
|
||||
// Token: 0x040075E9 RID: 30185
|
||||
[Token(Token = "0x40075E9")]
|
||||
internal static readonly int MAX_ROUNDS;
|
||||
|
||||
// Token: 0x040075EA RID: 30186
|
||||
[Token(Token = "0x40075EA")]
|
||||
internal static readonly int RED_ROUNDS;
|
||||
|
||||
// Token: 0x040075EB RID: 30187
|
||||
[Token(Token = "0x40075EB")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040075EC RID: 30188
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075EC")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x040075ED RID: 30189
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075ED")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x040075EE RID: 30190
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075EE")]
|
||||
private bool _encrypting;
|
||||
|
||||
// Token: 0x040075EF RID: 30191
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075EF")]
|
||||
private byte[] _workingKey;
|
||||
|
||||
// Token: 0x040075F0 RID: 30192
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075F0")]
|
||||
private int _rounds;
|
||||
}
|
||||
}
|
||||
+388
@@ -0,0 +1,388 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D69 RID: 7529
|
||||
[Token(Token = "0x2001D69")]
|
||||
public sealed class Cast6Engine : Cast5Engine
|
||||
{
|
||||
// Token: 0x0600BB0E RID: 47886 RVA: 0x00290B04 File Offset: 0x0028ED04
|
||||
[Token(Token = "0x600BB0E")]
|
||||
[Address(RVA = "0x27E5FF0", Offset = "0x27E4FF0", VA = "0x1827E5FF0")]
|
||||
public Cast6Engine()
|
||||
{
|
||||
int[] array = new int[48];
|
||||
this._Kr = array;
|
||||
uint[] array2 = new uint[48];
|
||||
this._Km = array2;
|
||||
int[] array3 = new int[192];
|
||||
this._Tr = array3;
|
||||
uint[] array4 = new uint[192];
|
||||
this._Tm = array4;
|
||||
uint[] array5 = new uint[8];
|
||||
this._workingKey = array5;
|
||||
int[] array6 = new int[17];
|
||||
this._Kr = array6;
|
||||
uint[] array7 = new uint[17];
|
||||
this._Km = array7;
|
||||
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
|
||||
this._rounds = max_ROUNDS;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x17001D5F RID: 7519
|
||||
// (get) Token: 0x0600BB0F RID: 47887 RVA: 0x00290B9C File Offset: 0x0028ED9C
|
||||
[Token(Token = "0x17001D5F")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB0F")]
|
||||
[Address(RVA = "0x27E6130", Offset = "0x27E5130", VA = "0x1827E6130", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "CAST6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB10 RID: 47888 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BB10")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BB11 RID: 47889 RVA: 0x00290BB0 File Offset: 0x0028EDB0
|
||||
[Token(Token = "0x600BB11")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "15")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB12 RID: 47890 RVA: 0x00290BC0 File Offset: 0x0028EDC0
|
||||
[Token(Token = "0x600BB12")]
|
||||
[Address(RVA = "0x27E4FE0", Offset = "0x27E3FE0", VA = "0x1827E4FE0", Slot = "16")]
|
||||
internal override void SetKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2;
|
||||
this._Tm[0] = num2;
|
||||
num2 += (uint)1859775393;
|
||||
uint num3;
|
||||
this._Tr[0] = (int)num3;
|
||||
num++;
|
||||
num3 += (uint)(-15);
|
||||
num += 8;
|
||||
byte[] array = new byte[64];
|
||||
uint[] workingKey = this._workingKey;
|
||||
num++;
|
||||
uint num4;
|
||||
workingKey[0] = num4;
|
||||
uint[] workingKey2 = this._workingKey;
|
||||
int length = workingKey2.Length;
|
||||
uint[] tm = this._Tm;
|
||||
uint num5 = workingKey2[3];
|
||||
uint num6 = tm[num];
|
||||
int num7 = this._Tr[num];
|
||||
uint num8 = Cast5Engine.F1(num5, num6, num7);
|
||||
workingKey2[3] = num8;
|
||||
uint[] workingKey3 = this._workingKey;
|
||||
int length2 = workingKey3.Length;
|
||||
uint[] tm2 = this._Tm;
|
||||
int[] tr = this._Tr;
|
||||
uint num10;
|
||||
int num11;
|
||||
uint num9 = Cast5Engine.F2(workingKey3[3], num10, num11);
|
||||
workingKey3[2] = num9;
|
||||
uint[] workingKey4 = this._workingKey;
|
||||
int length3 = workingKey4.Length;
|
||||
uint[] tm3 = this._Tm;
|
||||
int[] tr2 = this._Tr;
|
||||
uint num13;
|
||||
int num14;
|
||||
uint num12 = Cast5Engine.F3(workingKey4[2], num13, num14);
|
||||
workingKey4[2] = num12;
|
||||
uint[] workingKey5 = this._workingKey;
|
||||
int length4 = workingKey5.Length;
|
||||
uint[] tm4 = this._Tm;
|
||||
int[] tr3 = this._Tr;
|
||||
uint num16;
|
||||
int num17;
|
||||
uint num15 = Cast5Engine.F1(workingKey5[2], num16, num17);
|
||||
workingKey5[1] = num15;
|
||||
uint[] workingKey6 = this._workingKey;
|
||||
int length5 = workingKey6.Length;
|
||||
uint[] tm5 = this._Tm;
|
||||
int[] tr4 = this._Tr;
|
||||
uint num19;
|
||||
int num20;
|
||||
uint num18 = Cast5Engine.F2(workingKey6[1], num19, num20);
|
||||
workingKey6[1] = num18;
|
||||
uint[] workingKey7 = this._workingKey;
|
||||
int length6 = workingKey7.Length;
|
||||
uint[] tm6 = this._Tm;
|
||||
int[] tr5 = this._Tr;
|
||||
uint num22;
|
||||
int num23;
|
||||
uint num21 = Cast5Engine.F3(workingKey7[1], num22, num23);
|
||||
workingKey7[0] = num21;
|
||||
uint[] workingKey8 = this._workingKey;
|
||||
int length7 = workingKey8.Length;
|
||||
uint[] tm7 = this._Tm;
|
||||
int[] tr6 = this._Tr;
|
||||
uint num25;
|
||||
int num26;
|
||||
uint num24 = Cast5Engine.F1(workingKey8[0], num25, num26);
|
||||
workingKey8[0] = num24;
|
||||
uint[] workingKey9 = this._workingKey;
|
||||
int length8 = workingKey9.Length;
|
||||
uint[] tm8 = this._Tm;
|
||||
int[] tr7 = this._Tr;
|
||||
uint num28;
|
||||
int num29;
|
||||
uint num27 = Cast5Engine.F2(workingKey9[0], num28, num29);
|
||||
workingKey9[3] = num27;
|
||||
uint[] workingKey10 = this._workingKey;
|
||||
int length9 = workingKey10.Length;
|
||||
uint[] tm9 = this._Tm;
|
||||
int[] tr8 = this._Tr;
|
||||
uint num30 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
|
||||
workingKey10[3] = num30;
|
||||
uint[] workingKey11 = this._workingKey;
|
||||
int length10 = workingKey11.Length;
|
||||
uint[] tm10 = this._Tm;
|
||||
int[] tr9 = this._Tr;
|
||||
uint num32;
|
||||
int num33;
|
||||
uint num31 = Cast5Engine.F2(workingKey11[3], num32, num33);
|
||||
workingKey11[2] = num31;
|
||||
uint[] workingKey12 = this._workingKey;
|
||||
int length11 = workingKey12.Length;
|
||||
uint[] tm11 = this._Tm;
|
||||
int[] tr10 = this._Tr;
|
||||
uint num35;
|
||||
int num36;
|
||||
uint num34 = Cast5Engine.F3(workingKey12[2], num35, num36);
|
||||
workingKey12[2] = num34;
|
||||
uint[] workingKey13 = this._workingKey;
|
||||
int length12 = workingKey13.Length;
|
||||
uint[] tm12 = this._Tm;
|
||||
int[] tr11 = this._Tr;
|
||||
uint num38;
|
||||
int num39;
|
||||
uint num37 = Cast5Engine.F1(workingKey13[2], num38, num39);
|
||||
workingKey13[1] = num37;
|
||||
uint[] workingKey14 = this._workingKey;
|
||||
int length13 = workingKey14.Length;
|
||||
uint[] tm13 = this._Tm;
|
||||
int[] tr12 = this._Tr;
|
||||
uint num41;
|
||||
int num42;
|
||||
uint num40 = Cast5Engine.F2(workingKey14[1], num41, num42);
|
||||
workingKey14[1] = num40;
|
||||
uint[] workingKey15 = this._workingKey;
|
||||
int length14 = workingKey15.Length;
|
||||
uint[] tm14 = this._Tm;
|
||||
int[] tr13 = this._Tr;
|
||||
uint num44;
|
||||
int num45;
|
||||
uint num43 = Cast5Engine.F3(workingKey15[1], num44, num45);
|
||||
workingKey15[0] = num43;
|
||||
uint[] workingKey16 = this._workingKey;
|
||||
int length15 = workingKey16.Length;
|
||||
uint[] tm15 = this._Tm;
|
||||
int[] tr14 = this._Tr;
|
||||
uint num47;
|
||||
int num48;
|
||||
uint num46 = Cast5Engine.F1(workingKey16[0], num47, num48);
|
||||
workingKey16[0] = num46;
|
||||
uint[] workingKey17 = this._workingKey;
|
||||
int length16 = workingKey17.Length;
|
||||
uint[] tm16 = this._Tm;
|
||||
num += 15;
|
||||
int num49 = this._Tr[num];
|
||||
uint num50 = workingKey17[0];
|
||||
uint num51 = tm16[num];
|
||||
uint num52 = Cast5Engine.F2(num50, num51, num49);
|
||||
workingKey17[3] = num52;
|
||||
uint[] workingKey18 = this._workingKey;
|
||||
int[] kr = this._Kr;
|
||||
uint num53 = workingKey18[0];
|
||||
num.m_value = (int)num53;
|
||||
uint[] workingKey19 = this._workingKey;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num54 = workingKey19[1];
|
||||
kr2[0] = (int)num54;
|
||||
uint[] workingKey20 = this._workingKey;
|
||||
int[] kr3 = this._Kr;
|
||||
uint num55 = workingKey20[2];
|
||||
kr3[0] = (int)num55;
|
||||
uint[] workingKey21 = this._workingKey;
|
||||
int[] kr4 = this._Kr;
|
||||
uint num56 = workingKey21[3];
|
||||
kr4[0] = (int)num56;
|
||||
uint[] workingKey22 = this._workingKey;
|
||||
uint[] km = this._Km;
|
||||
uint num57 = workingKey22[3];
|
||||
num.m_value = (int)num57;
|
||||
uint[] workingKey23 = this._workingKey;
|
||||
uint[] km2 = this._Km;
|
||||
uint num58 = workingKey23[2];
|
||||
km2[0] = num58;
|
||||
uint[] workingKey24 = this._workingKey;
|
||||
uint[] km3 = this._Km;
|
||||
uint num59 = workingKey24[1];
|
||||
km3[0] = num59;
|
||||
uint[] workingKey25 = this._workingKey;
|
||||
uint[] km4 = this._Km;
|
||||
uint num60 = workingKey25[0];
|
||||
num++;
|
||||
km4[0] = num60;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB13 RID: 47891 RVA: 0x00291158 File Offset: 0x0028F358
|
||||
[Token(Token = "0x600BB13")]
|
||||
[Address(RVA = "0x27E4E30", Offset = "0x27E3E30", VA = "0x1827E4E30", Slot = "17")]
|
||||
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[4];
|
||||
this.CAST_Encipher(num, num2, num3, num4, array);
|
||||
uint num5 = array[0];
|
||||
uint num6 = array[0];
|
||||
uint num7 = array[1];
|
||||
uint num8 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB14 RID: 47892 RVA: 0x002911CC File Offset: 0x0028F3CC
|
||||
[Token(Token = "0x600BB14")]
|
||||
[Address(RVA = "0x27E4C80", Offset = "0x27E3C80", VA = "0x1827E4C80", Slot = "18")]
|
||||
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint[] array = new uint[4];
|
||||
this.CAST_Decipher(num, num2, num3, num4, array);
|
||||
uint num5 = array[0];
|
||||
uint num6 = array[0];
|
||||
uint num7 = array[1];
|
||||
uint num8 = array[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB15 RID: 47893 RVA: 0x00291240 File Offset: 0x0028F440
|
||||
[Token(Token = "0x600BB15")]
|
||||
[Address(RVA = "0x27E47F0", Offset = "0x27E37F0", VA = "0x1827E47F0")]
|
||||
private void CAST_Encipher(uint A, uint B, uint C, uint D, uint[] result)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] km = this._Km;
|
||||
int[] kr = this._Kr;
|
||||
uint[] km2 = this._Km;
|
||||
int[] kr2 = this._Kr;
|
||||
uint num3;
|
||||
int num4;
|
||||
uint num2 = Cast5Engine.F2(C, num3, num4);
|
||||
uint[] km3 = this._Km;
|
||||
int[] kr3 = this._Kr;
|
||||
uint[] km4 = this._Km;
|
||||
num += 3;
|
||||
int[] kr4 = this._Kr;
|
||||
uint num5 = km4[num];
|
||||
int num6 = kr4[num];
|
||||
uint num7 = Cast5Engine.F1(A, num5, num6);
|
||||
num += 4;
|
||||
uint[] km5 = this._Km;
|
||||
int[] kr5 = this._Kr;
|
||||
uint num8 = Cast5Engine.F1(A, num5, num6);
|
||||
uint[] km6 = this._Km;
|
||||
int[] kr6 = this._Kr;
|
||||
uint[] km7 = this._Km;
|
||||
uint num10;
|
||||
uint num9 = num10 + 1U;
|
||||
int num11 = this._Kr[(int)num9];
|
||||
uint num12 = km7[(int)num9];
|
||||
uint num13 = Cast5Engine.F2(C, num12, num11);
|
||||
uint[] km8 = this._Km;
|
||||
int[] kr7 = this._Kr;
|
||||
num10 += (uint)4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB16 RID: 47894 RVA: 0x00291340 File Offset: 0x0028F540
|
||||
[Token(Token = "0x600BB16")]
|
||||
[Address(RVA = "0x27E4360", Offset = "0x27E3360", VA = "0x1827E4360")]
|
||||
private void CAST_Decipher(uint A, uint B, uint C, uint D, uint[] result)
|
||||
{
|
||||
uint[] km = this._Km;
|
||||
int[] kr = this._Kr;
|
||||
uint[] km2 = this._Km;
|
||||
uint num2;
|
||||
uint num = num2 + 1U;
|
||||
int num3 = this._Kr[(int)num];
|
||||
uint num4 = km2[(int)num];
|
||||
uint num5 = Cast5Engine.F2(C, num4, num3);
|
||||
uint[] km3 = this._Km;
|
||||
int[] kr2 = this._Kr;
|
||||
uint[] km4 = this._Km;
|
||||
num2 += (uint)3;
|
||||
int[] kr3 = this._Kr;
|
||||
uint num6 = km4[(int)num2];
|
||||
int num7 = kr3[(int)num2];
|
||||
uint num8 = Cast5Engine.F1(A, num6, num7);
|
||||
uint[] km5 = this._Km;
|
||||
int[] kr4 = this._Kr;
|
||||
uint num9 = Cast5Engine.F1(A, num6, num7);
|
||||
uint[] km6 = this._Km;
|
||||
int[] kr5 = this._Kr;
|
||||
uint[] km7 = this._Km;
|
||||
uint num11;
|
||||
uint num10 = num11 + 1U;
|
||||
int num12 = this._Kr[(int)num10];
|
||||
uint num13 = km7[(int)num10];
|
||||
uint num14 = Cast5Engine.F2(C, num13, num12);
|
||||
uint[] km8 = this._Km;
|
||||
int[] kr6 = this._Kr;
|
||||
}
|
||||
|
||||
// Token: 0x040075F1 RID: 30193
|
||||
[Token(Token = "0x40075F1")]
|
||||
private const int ROUNDS = 12;
|
||||
|
||||
// Token: 0x040075F2 RID: 30194
|
||||
[Token(Token = "0x40075F2")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040075F3 RID: 30195
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40075F3")]
|
||||
private int[] _Kr;
|
||||
|
||||
// Token: 0x040075F4 RID: 30196
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40075F4")]
|
||||
private uint[] _Km;
|
||||
|
||||
// Token: 0x040075F5 RID: 30197
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40075F5")]
|
||||
private int[] _Tr;
|
||||
|
||||
// Token: 0x040075F6 RID: 30198
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40075F6")]
|
||||
private uint[] _Tm;
|
||||
|
||||
// Token: 0x040075F7 RID: 30199
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40075F7")]
|
||||
private uint[] _workingKey;
|
||||
}
|
||||
}
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D6A RID: 7530
|
||||
[Token(Token = "0x2001D6A")]
|
||||
public class ChaCha7539Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x0600BB17 RID: 47895 RVA: 0x0029144C File Offset: 0x0028F64C
|
||||
[Token(Token = "0x600BB17")]
|
||||
[Address(RVA = "0x27E6380", Offset = "0x27E5380", VA = "0x1827E6380")]
|
||||
public ChaCha7539Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001D60 RID: 7520
|
||||
// (get) Token: 0x0600BB18 RID: 47896 RVA: 0x00291460 File Offset: 0x0028F660
|
||||
[Token(Token = "0x17001D60")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB18")]
|
||||
[Address(RVA = "0x27E63E0", Offset = "0x27E53E0", VA = "0x1827E63E0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha7539" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D61 RID: 7521
|
||||
// (get) Token: 0x0600BB19 RID: 47897 RVA: 0x00291480 File Offset: 0x0028F680
|
||||
[Token(Token = "0x17001D61")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600BB19")]
|
||||
[Address(RVA = "0x4B2B30", Offset = "0x4B1B30", VA = "0x1804B2B30", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 12;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1A RID: 47898 RVA: 0x00291490 File Offset: 0x0028F690
|
||||
[Token(Token = "0x600BB1A")]
|
||||
[Address(RVA = "0x27E6160", Offset = "0x27E5160", VA = "0x1827E6160", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB1A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::AdvanceCounter()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_16:
|
||||
stloc:InvalidOperationException(var_0_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to increase counter past 2^32.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1B RID: 47899 RVA: 0x002914C0 File Offset: 0x0028F6C0
|
||||
[Token(Token = "0x600BB1B")]
|
||||
[Address(RVA = "0x27E6230", Offset = "0x27E5230", VA = "0x1827E6230", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1C RID: 47900 RVA: 0x002914DC File Offset: 0x0028F6DC
|
||||
[Token(Token = "0x600BB1C")]
|
||||
[Address(RVA = "0x27E6270", Offset = "0x27E5270", VA = "0x1827E6270", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB1C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::SetKey(System.Byte[],System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_51:
|
||||
stloc:ArgumentException(var_12_58, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_11)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1D RID: 47901 RVA: 0x00291544 File Offset: 0x0028F744
|
||||
[Token(Token = "0x600BB1D")]
|
||||
[Address(RVA = "0x27E61F0", Offset = "0x27E51F0", VA = "0x1827E61F0", Slot = "18")]
|
||||
protected override void GenerateKeyStream(byte[] output)
|
||||
{
|
||||
uint[] x = this.x;
|
||||
uint[] engineState = this.engineState;
|
||||
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
|
||||
uint[] x2 = this.x;
|
||||
int num = 0;
|
||||
Pack.UInt32_To_LE(x2, output, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D6B RID: 7531
|
||||
[Token(Token = "0x2001D6B")]
|
||||
public class ChaChaEngine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x0600BB1E RID: 47902 RVA: 0x00291580 File Offset: 0x0028F780
|
||||
[Token(Token = "0x600BB1E")]
|
||||
[Address(RVA = "0x27E7000", Offset = "0x27E6000", VA = "0x1827E7000")]
|
||||
public ChaChaEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1F RID: 47903 RVA: 0x00291594 File Offset: 0x0028F794
|
||||
[Token(Token = "0x600BB1F")]
|
||||
[Address(RVA = "0x27E6FA0", Offset = "0x27E5FA0", VA = "0x1827E6FA0")]
|
||||
public ChaChaEngine(int rounds)
|
||||
: base(rounds)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001D62 RID: 7522
|
||||
// (get) Token: 0x0600BB20 RID: 47904 RVA: 0x002915A8 File Offset: 0x0028F7A8
|
||||
[Token(Token = "0x17001D62")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB20")]
|
||||
[Address(RVA = "0x27E7060", Offset = "0x27E6060", VA = "0x1827E7060", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB21 RID: 47905 RVA: 0x002915C8 File Offset: 0x0028F7C8
|
||||
[Token(Token = "0x600BB21")]
|
||||
[Address(RVA = "0x27E6440", Offset = "0x27E5440", VA = "0x1827E6440", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 12)
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB22 RID: 47906 RVA: 0x002915F4 File Offset: 0x0028F7F4
|
||||
[Token(Token = "0x600BB22")]
|
||||
[Address(RVA = "0x27E6E10", Offset = "0x27E5E10", VA = "0x1827E6E10", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
engineState[6] = (uint)num;
|
||||
engineState[6] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB23 RID: 47907 RVA: 0x00291620 File Offset: 0x0028F820
|
||||
[Token(Token = "0x600BB23")]
|
||||
[Address(RVA = "0x27E6E70", Offset = "0x27E5E70", VA = "0x1827E6E70", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
if (keyBytes != 0)
|
||||
{
|
||||
int length = keyBytes.Length;
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
base.PackTauOrSigma(length, engineState, num);
|
||||
uint[] engineState2 = this.engineState;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Pack.LE_To_UInt32(keyBytes, num2, engineState2, 4, (int)num3);
|
||||
int length2 = keyBytes.Length;
|
||||
uint[] engineState3 = this.engineState;
|
||||
ulong num4;
|
||||
Pack.LE_To_UInt32(keyBytes, length2, engineState3, 8, (int)num4);
|
||||
}
|
||||
uint[] engineState4 = this.engineState;
|
||||
int num5 = 0;
|
||||
uint num6;
|
||||
ulong num7;
|
||||
Pack.LE_To_UInt32(ivBytes, num5, engineState4, (int)num6, (int)num7);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB24 RID: 47908 RVA: 0x002916A4 File Offset: 0x0028F8A4
|
||||
[Token(Token = "0x600BB24")]
|
||||
[Address(RVA = "0x27E61F0", Offset = "0x27E51F0", VA = "0x1827E61F0", Slot = "18")]
|
||||
protected override void GenerateKeyStream(byte[] output)
|
||||
{
|
||||
uint[] x = this.x;
|
||||
uint[] engineState = this.engineState;
|
||||
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
|
||||
uint[] x2 = this.x;
|
||||
int num = 0;
|
||||
Pack.UInt32_To_LE(x2, output, num);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB25 RID: 47909 RVA: 0x002916E0 File Offset: 0x0028F8E0
|
||||
[Token(Token = "0x600BB25")]
|
||||
[Address(RVA = "0x27E64A0", Offset = "0x27E54A0", VA = "0x1827E64A0")]
|
||||
internal static void ChachaCore(int rounds, uint[] input, uint[] x)
|
||||
{
|
||||
while (input.Length != 16 || rounds != 1)
|
||||
{
|
||||
}
|
||||
uint num = input[2];
|
||||
uint num2 = input[6];
|
||||
uint num3 = input[5];
|
||||
uint num4 = input[6];
|
||||
uint num5 = input[0];
|
||||
uint num6 = input[0];
|
||||
uint num7 = input[2];
|
||||
uint num8 = input[4];
|
||||
uint num9 = input[3];
|
||||
uint num10 = input[4];
|
||||
uint num11 = input[3];
|
||||
uint num12 = input[7];
|
||||
uint num13 = input[1];
|
||||
uint num14 = input[5];
|
||||
uint num15 = input[7];
|
||||
uint num16 = input[1];
|
||||
if (rounds > 0)
|
||||
{
|
||||
int num17 = rounds - 1;
|
||||
num17++;
|
||||
num5 += num7;
|
||||
num10 += num5;
|
||||
num5 += num5;
|
||||
num10 += num5;
|
||||
num4 = num10;
|
||||
num8 = num5;
|
||||
num8 += num5;
|
||||
num6 += num5;
|
||||
num8 = num5;
|
||||
num10 = num5;
|
||||
num8 += num10;
|
||||
num6 = num8;
|
||||
num5 = num8;
|
||||
num14 += num5;
|
||||
num13 += num14;
|
||||
num14 += num14;
|
||||
num12 = num14;
|
||||
num13 = num14;
|
||||
num5 = num14;
|
||||
num3 += num5;
|
||||
num16 += num3;
|
||||
num5 = num3;
|
||||
num3 += num5;
|
||||
num5 += num6;
|
||||
num16 = num3;
|
||||
num5 = num3;
|
||||
num14 += num5;
|
||||
num5 += num14;
|
||||
num15 = num14;
|
||||
num14 += num15;
|
||||
num6 += num13;
|
||||
num3 += num14;
|
||||
num6 += num14;
|
||||
num3 += num14;
|
||||
num13 += num16;
|
||||
num10 += num14;
|
||||
num13 += num14;
|
||||
num10 += num14;
|
||||
num15 = num10;
|
||||
num8 += num14;
|
||||
num5 = num14;
|
||||
num14 = num8;
|
||||
num16 += num14;
|
||||
num14 = num5;
|
||||
num5 = num14;
|
||||
num8 += num14;
|
||||
num14 = num8;
|
||||
num7 = num14;
|
||||
}
|
||||
uint num18 = input[0];
|
||||
num5 += num18;
|
||||
uint num19 = input[0];
|
||||
num19 += num6;
|
||||
uint num20 = input[1];
|
||||
num20 += num13;
|
||||
uint num21 = input[1];
|
||||
num21 += num16;
|
||||
uint num22 = input[2];
|
||||
num22 += num7;
|
||||
uint num23 = input[4];
|
||||
num23 += num10;
|
||||
uint num24 = input[4];
|
||||
num24 += num8;
|
||||
uint num25 = input[5];
|
||||
num25 += num14;
|
||||
uint num26 = input[5];
|
||||
num26 += num3;
|
||||
uint num27 = input[6];
|
||||
num27 += num4;
|
||||
uint num28 = input[7];
|
||||
num28 += num12;
|
||||
uint num29 = input[7];
|
||||
num29 += num15;
|
||||
}
|
||||
}
|
||||
}
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D6C RID: 7532
|
||||
[Token(Token = "0x2001D6C")]
|
||||
public class DesEdeEngine : DesEngine
|
||||
{
|
||||
// Token: 0x0600BB26 RID: 47910 RVA: 0x002919D0 File Offset: 0x0028FBD0
|
||||
[Token(Token = "0x600BB26")]
|
||||
[Address(RVA = "0x27E70C0", Offset = "0x27E60C0", VA = "0x1827E70C0", Slot = "11")]
|
||||
public override void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB26)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_D5:
|
||||
stloc:ArgumentException(var_24_DF, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("key size must be 16 or 24 bytes.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D63 RID: 7523
|
||||
// (get) Token: 0x0600BB27 RID: 47911 RVA: 0x00291AC0 File Offset: 0x0028FCC0
|
||||
[Token(Token = "0x17001D63")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB27")]
|
||||
[Address(RVA = "0x27E7610", Offset = "0x27E6610", VA = "0x1827E7610", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB28 RID: 47912 RVA: 0x00291AD4 File Offset: 0x0028FCD4
|
||||
[Token(Token = "0x600BB28")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
|
||||
public override int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB29 RID: 47913 RVA: 0x00291AE4 File Offset: 0x0028FCE4
|
||||
[Token(Token = "0x600BB29")]
|
||||
[Address(RVA = "0x27E73E0", Offset = "0x27E63E0", VA = "0x1827E73E0", Slot = "15")]
|
||||
public override int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB29)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7C:
|
||||
stloc:InvalidOperationException(var_7_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DESede engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB2A RID: 47914 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BB2A")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "16")]
|
||||
public override void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BB2B RID: 47915 RVA: 0x00291B78 File Offset: 0x0028FD78
|
||||
[Token(Token = "0x600BB2B")]
|
||||
[Address(RVA = "0x27E75B0", Offset = "0x27E65B0", VA = "0x1827E75B0")]
|
||||
public DesEdeEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x040075F8 RID: 30200
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075F8")]
|
||||
private int[] workingKey1;
|
||||
|
||||
// Token: 0x040075F9 RID: 30201
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075F9")]
|
||||
private int[] workingKey2;
|
||||
|
||||
// Token: 0x040075FA RID: 30202
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075FA")]
|
||||
private int[] workingKey3;
|
||||
|
||||
// Token: 0x040075FB RID: 30203
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40075FB")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D6D RID: 7533
|
||||
[Token(Token = "0x2001D6D")]
|
||||
public class DesEdeWrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600BB2C RID: 47916 RVA: 0x00291B8C File Offset: 0x0028FD8C
|
||||
[Token(Token = "0x600BB2C")]
|
||||
[Address(RVA = "0x27E77A0", Offset = "0x27E67A0", VA = "0x1827E77A0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB2C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_E5:
|
||||
stloc:ArgumentException(var_16_F4, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("IV is not 8 octets"), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D64 RID: 7524
|
||||
// (get) Token: 0x0600BB2D RID: 47917 RVA: 0x00291C90 File Offset: 0x0028FE90
|
||||
[Token(Token = "0x17001D64")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB2D")]
|
||||
[Address(RVA = "0x27E83D0", Offset = "0x27E73D0", VA = "0x1827E83D0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "DESede";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB2E RID: 47918 RVA: 0x00291CA4 File Offset: 0x0028FEA4
|
||||
[Token(Token = "0x600BB2E")]
|
||||
[Address(RVA = "0x27E7FC0", Offset = "0x27E6FC0", VA = "0x1827E7FC0", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB2E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_19D:
|
||||
stloc:InvalidOperationException(var_34_1A7, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not multiple of block length")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB2F RID: 47919 RVA: 0x00291E5C File Offset: 0x0029005C
|
||||
[Token(Token = "0x600BB2F")]
|
||||
[Address(RVA = "0x27E7B60", Offset = "0x27E6B60", VA = "0x1827E7B60", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB2F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1C0:
|
||||
stloc:InvalidCipherTextException(var_39_1D0, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Ciphertext not multiple of "), ldloc:int32[exp:object](var_2))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB30 RID: 47920 RVA: 0x0029203C File Offset: 0x0029023C
|
||||
[Token(Token = "0x600BB30")]
|
||||
[Address(RVA = "0x27E7640", Offset = "0x27E6640", VA = "0x1827E7640")]
|
||||
private byte[] CalculateCmsKeyChecksum(byte[] key)
|
||||
{
|
||||
IDigest digest = this.sha1;
|
||||
int length = key.Length;
|
||||
IDigest digest2 = this.sha1;
|
||||
byte[] array = new byte[8];
|
||||
byte[] array2 = this.digest;
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Array.Copy(array2, num2, array, num, (int)num3);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB31 RID: 47921 RVA: 0x0029208C File Offset: 0x0029028C
|
||||
[Token(Token = "0x600BB31")]
|
||||
[Address(RVA = "0x27E7720", Offset = "0x27E6720", VA = "0x1827E7720")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB32 RID: 47922 RVA: 0x002920A8 File Offset: 0x002902A8
|
||||
[Token(Token = "0x600BB32")]
|
||||
[Address(RVA = "0x27E8400", Offset = "0x27E7400", VA = "0x1827E8400")]
|
||||
private static byte[] reverse(byte[] bs)
|
||||
{
|
||||
byte[] array = new byte[bs.Length];
|
||||
int num = 0;
|
||||
int num2 = bs.Length;
|
||||
if (num < num2)
|
||||
{
|
||||
num2 -= num;
|
||||
num++;
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB33 RID: 47923 RVA: 0x002920E0 File Offset: 0x002902E0
|
||||
[Token(Token = "0x600BB33")]
|
||||
[Address(RVA = "0x27E8360", Offset = "0x27E7360", VA = "0x1827E8360")]
|
||||
public DesEdeWrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB34 RID: 47924 RVA: 0x00292110 File Offset: 0x00290310
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BB34")]
|
||||
[Address(RVA = "0x27E8300", Offset = "0x27E7300", VA = "0x1827E8300")]
|
||||
static DesEdeWrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
DesEdeWrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x040075FC RID: 30204
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40075FC")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x040075FD RID: 30205
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40075FD")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x040075FE RID: 30206
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40075FE")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x040075FF RID: 30207
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40075FF")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007600 RID: 30208
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007600")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x04007601 RID: 30209
|
||||
[Token(Token = "0x4007601")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x04007602 RID: 30210
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007602")]
|
||||
private readonly IDigest sha1;
|
||||
|
||||
// Token: 0x04007603 RID: 30211
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007603")]
|
||||
private readonly byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,305 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D6E RID: 7534
|
||||
[Token(Token = "0x2001D6E")]
|
||||
public class DesEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BB35 RID: 47925 RVA: 0x00292138 File Offset: 0x00290338
|
||||
[Token(Token = "0x600BB35")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "10")]
|
||||
public virtual int[] GetWorkingKey()
|
||||
{
|
||||
return this.workingKey;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB36 RID: 47926 RVA: 0x0029214C File Offset: 0x0029034C
|
||||
[Token(Token = "0x600BB36")]
|
||||
[Address(RVA = "0x27E9230", Offset = "0x27E8230", VA = "0x1827E9230", Slot = "11")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB36)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_28:
|
||||
stloc:ArgumentException(var_6_39, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to DES init - "), ldloc:string(var_5))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D65 RID: 7525
|
||||
// (get) Token: 0x0600BB37 RID: 47927 RVA: 0x00292194 File Offset: 0x00290394
|
||||
[Token(Token = "0x17001D65")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB37")]
|
||||
[Address(RVA = "0x27E9820", Offset = "0x27E8820", VA = "0x1827E9820", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DES";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D66 RID: 7526
|
||||
// (get) Token: 0x0600BB38 RID: 47928 RVA: 0x002921A8 File Offset: 0x002903A8
|
||||
[Token(Token = "0x17001D66")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BB38")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB39 RID: 47929 RVA: 0x002921B8 File Offset: 0x002903B8
|
||||
[Token(Token = "0x600BB39")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3A RID: 47930 RVA: 0x002921C8 File Offset: 0x002903C8
|
||||
[Token(Token = "0x600BB3A")]
|
||||
[Address(RVA = "0x27E93F0", Offset = "0x27E83F0", VA = "0x1827E93F0", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB3A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_21:
|
||||
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DES engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3B RID: 47931 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BB3B")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "16")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3C RID: 47932 RVA: 0x00292204 File Offset: 0x00290404
|
||||
[Token(Token = "0x600BB3C")]
|
||||
[Address(RVA = "0x27E8B00", Offset = "0x27E7B00", VA = "0x1827E8B00")]
|
||||
protected static int[] GenerateWorkingKey(bool encrypting, byte[] key)
|
||||
{
|
||||
int[] array = new int[32];
|
||||
bool[] array2 = new bool[56];
|
||||
bool[] array3 = new bool[56];
|
||||
int num = 0;
|
||||
byte[] array4 = DesEngine.pc1;
|
||||
short[] array5 = DesEngine.bytebit;
|
||||
num++;
|
||||
array[0] = num;
|
||||
array[0] = num;
|
||||
byte[] array6 = DesEngine.totrot;
|
||||
int length = array2.Length;
|
||||
byte b = (byte)((int)b + num);
|
||||
num++;
|
||||
byte[] array7 = DesEngine.totrot;
|
||||
int length2 = array2.Length;
|
||||
uint num2;
|
||||
byte b2 = (byte)((uint)b2 + num2);
|
||||
num2 += (uint)1;
|
||||
byte b3 = DesEngine.pc2[num];
|
||||
if ("{il2cpp array field local7->}" != (ulong)0L)
|
||||
{
|
||||
int num3 = DesEngine.bigbyte[num];
|
||||
array[0] = num3;
|
||||
}
|
||||
byte[] array8 = DesEngine.pc2;
|
||||
if ("{il2cpp array field local7->}" != (ulong)0L)
|
||||
{
|
||||
int num4 = DesEngine.bigbyte[num];
|
||||
array[0] = num4;
|
||||
}
|
||||
num++;
|
||||
num++;
|
||||
uint num5;
|
||||
if (num5 > (uint)(-2))
|
||||
{
|
||||
}
|
||||
int num6 = 0;
|
||||
int num7 = array.Length;
|
||||
int num8;
|
||||
num7 = num8;
|
||||
array[0] = num8;
|
||||
num6 += 2;
|
||||
array[0] = num7;
|
||||
while (num6 != 32)
|
||||
{
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3D RID: 47933 RVA: 0x0029232C File Offset: 0x0029052C
|
||||
[Token(Token = "0x600BB3D")]
|
||||
[Address(RVA = "0x27E84B0", Offset = "0x27E74B0", VA = "0x1827E84B0")]
|
||||
internal static void DesFunc(int[] wKey, byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
int num3 = 0;
|
||||
uint[] sp = DesEngine.SP7;
|
||||
uint[] sp2 = DesEngine.SP5;
|
||||
uint[] sp3 = DesEngine.SP3;
|
||||
uint[] sp4 = DesEngine.SP1;
|
||||
uint[] sp5 = DesEngine.SP8;
|
||||
uint[] sp6 = DesEngine.SP6;
|
||||
uint[] sp7 = DesEngine.SP4;
|
||||
uint[] sp8 = DesEngine.SP2;
|
||||
num3 += 4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3E RID: 47934 RVA: 0x002923A8 File Offset: 0x002905A8
|
||||
[Token(Token = "0x600BB3E")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DesEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB3F RID: 47935 RVA: 0x002923BC File Offset: 0x002905BC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BB3F")]
|
||||
[Address(RVA = "0x27E9520", Offset = "0x27E8520", VA = "0x1827E9520")]
|
||||
static DesEngine()
|
||||
{
|
||||
short[] array = new short[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.4FFC8339E09825A68B861995F9C660EB11DBF13D).FieldHandle);
|
||||
DesEngine.bytebit = array;
|
||||
int[] array2 = new int[24];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.C105B70BED997DB5D36E1D2E84C1EFCB445A428C).FieldHandle);
|
||||
DesEngine.bigbyte = array2;
|
||||
byte[] array3 = new byte[56];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.DC2B830D8CD59AD6A4E4332D21CA0DCA2821AD82).FieldHandle);
|
||||
DesEngine.pc1 = array3;
|
||||
byte[] array4 = new byte[16];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B4FBD02AAB5B16E0F4BD858DA5D9E348F3CE501D).FieldHandle);
|
||||
DesEngine.totrot = array4;
|
||||
byte[] array5 = new byte[48];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.62BAB0F245E66C3EB982CF5A7015F0A7C3382283).FieldHandle);
|
||||
DesEngine.pc2 = array5;
|
||||
uint[] array6 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.04B9E6B1364BBA4125AE2866E09C57C9E8CD6DA6).FieldHandle);
|
||||
DesEngine.SP1 = array6;
|
||||
uint[] array7 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.3D6EB645BC212077C1B37A3A32CA2A62F7B39018).FieldHandle);
|
||||
DesEngine.SP2 = array7;
|
||||
uint[] array8 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.821D1E62CD072AE9EC73D238C7DE19C5C5F3A7D8).FieldHandle);
|
||||
DesEngine.SP3 = array8;
|
||||
uint[] array9 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.64354464C9074B5BB4369689AAA131961CD1EF19).FieldHandle);
|
||||
DesEngine.SP4 = array9;
|
||||
uint[] array10 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.3F653EBF39CFCB2FD7FF335DC96E82F3CDFDF0C7).FieldHandle);
|
||||
DesEngine.SP5 = array10;
|
||||
uint[] array11 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.6D7292FF64ED402BBFFF5E7534C0980BEBF0EEB1).FieldHandle);
|
||||
DesEngine.SP6 = array11;
|
||||
uint[] array12 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array12, fieldof(<PrivateImplementationDetails>.FC9EEBC457831129D4AF4FF84333B481F4BED60E).FieldHandle);
|
||||
DesEngine.SP7 = array12;
|
||||
uint[] array13 = new uint[64];
|
||||
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.4C44594E2C603D85EC6195B1A7A6C5876CBB58E2).FieldHandle);
|
||||
DesEngine.SP8 = array13;
|
||||
}
|
||||
|
||||
// Token: 0x04007604 RID: 30212
|
||||
[Token(Token = "0x4007604")]
|
||||
internal const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04007605 RID: 30213
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007605")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04007606 RID: 30214
|
||||
[Token(Token = "0x4007606")]
|
||||
private static readonly short[] bytebit;
|
||||
|
||||
// Token: 0x04007607 RID: 30215
|
||||
[Token(Token = "0x4007607")]
|
||||
private static readonly int[] bigbyte;
|
||||
|
||||
// Token: 0x04007608 RID: 30216
|
||||
[Token(Token = "0x4007608")]
|
||||
private static readonly byte[] pc1;
|
||||
|
||||
// Token: 0x04007609 RID: 30217
|
||||
[Token(Token = "0x4007609")]
|
||||
private static readonly byte[] totrot;
|
||||
|
||||
// Token: 0x0400760A RID: 30218
|
||||
[Token(Token = "0x400760A")]
|
||||
private static readonly byte[] pc2;
|
||||
|
||||
// Token: 0x0400760B RID: 30219
|
||||
[Token(Token = "0x400760B")]
|
||||
private static readonly uint[] SP1;
|
||||
|
||||
// Token: 0x0400760C RID: 30220
|
||||
[Token(Token = "0x400760C")]
|
||||
private static readonly uint[] SP2;
|
||||
|
||||
// Token: 0x0400760D RID: 30221
|
||||
[Token(Token = "0x400760D")]
|
||||
private static readonly uint[] SP3;
|
||||
|
||||
// Token: 0x0400760E RID: 30222
|
||||
[Token(Token = "0x400760E")]
|
||||
private static readonly uint[] SP4;
|
||||
|
||||
// Token: 0x0400760F RID: 30223
|
||||
[Token(Token = "0x400760F")]
|
||||
private static readonly uint[] SP5;
|
||||
|
||||
// Token: 0x04007610 RID: 30224
|
||||
[Token(Token = "0x4007610")]
|
||||
private static readonly uint[] SP6;
|
||||
|
||||
// Token: 0x04007611 RID: 30225
|
||||
[Token(Token = "0x4007611")]
|
||||
private static readonly uint[] SP7;
|
||||
|
||||
// Token: 0x04007612 RID: 30226
|
||||
[Token(Token = "0x4007612")]
|
||||
private static readonly uint[] SP8;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D6F RID: 7535
|
||||
[Token(Token = "0x2001D6F")]
|
||||
public class Dstu7624Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BB40 RID: 47936 RVA: 0x00292528 File Offset: 0x00290728
|
||||
[Token(Token = "0x600BB40")]
|
||||
[Address(RVA = "0x27ED920", Offset = "0x27EC920", VA = "0x1827ED920")]
|
||||
public Dstu7624Engine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB40)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::.ctor(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_26:
|
||||
stloc:ArgumentException(var_2_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB41 RID: 47937 RVA: 0x00292568 File Offset: 0x00290768
|
||||
[Token(Token = "0x600BB41")]
|
||||
[Address(RVA = "0x27EA770", Offset = "0x27E9770", VA = "0x1827EA770", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB41)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1A8:
|
||||
stloc:ArgumentException(var_23_1B2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unsupported key length")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB42 RID: 47938 RVA: 0x00292728 File Offset: 0x00290928
|
||||
[Token(Token = "0x600BB42")]
|
||||
[Address(RVA = "0x27ED2F0", Offset = "0x27EC2F0", VA = "0x1827ED2F0")]
|
||||
private void WorkingKeyExpandKT(ulong[] workingKey, ulong[] tempKeys)
|
||||
{
|
||||
do
|
||||
{
|
||||
ulong[] array = new ulong[this.wordsInBlock];
|
||||
ulong[] array2 = new ulong[this.wordsInBlock];
|
||||
ulong[] array3 = new ulong[this.wordsInBlock];
|
||||
this.internalState = array3;
|
||||
int num = this.wordsInBlock;
|
||||
num++;
|
||||
int num2 = this.wordsInBlock;
|
||||
if (num2 != this.wordsInKey)
|
||||
{
|
||||
int num3 = 0;
|
||||
int num4 = 0;
|
||||
Array.Copy(workingKey, num4, array, num3, num2);
|
||||
}
|
||||
int length = array.Length;
|
||||
int num5 = 0;
|
||||
int num6 = 0;
|
||||
Array.Copy(workingKey, num6, array, num5, length);
|
||||
int length2 = array2.Length;
|
||||
int num7 = 0;
|
||||
int num8 = 0;
|
||||
Array.Copy(workingKey, num7, array2, num8, length2);
|
||||
ulong[] array4 = this.internalState;
|
||||
int num9 = 0;
|
||||
int num10 = 0;
|
||||
if (num10 < array4.Length)
|
||||
{
|
||||
num9++;
|
||||
ulong[] array5 = this.internalState;
|
||||
}
|
||||
this.EncryptionRound();
|
||||
ulong[] array6 = this.internalState;
|
||||
int num11 = 0;
|
||||
int num12 = 0;
|
||||
if (num12 < array6.Length)
|
||||
{
|
||||
num11++;
|
||||
if (this.internalState != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.EncryptionRound();
|
||||
ulong[] array7 = this.internalState;
|
||||
int num13 = 0;
|
||||
int num14 = 0;
|
||||
if (num14 >= array7.Length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num13++;
|
||||
}
|
||||
while (this.internalState != 0);
|
||||
this.EncryptionRound();
|
||||
int num15 = this.wordsInBlock;
|
||||
int num16 = 0;
|
||||
ulong[] array8 = this.internalState;
|
||||
int num17 = 0;
|
||||
Array.Copy(array8, num17, tempKeys, num16, num15);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB43 RID: 47939 RVA: 0x00292898 File Offset: 0x00290A98
|
||||
[Token(Token = "0x600BB43")]
|
||||
[Address(RVA = "0x27ECD10", Offset = "0x27EBD10", VA = "0x1827ECD10")]
|
||||
private void WorkingKeyExpandEven(ulong[] workingKey, ulong[] tempKey)
|
||||
{
|
||||
ulong[] array;
|
||||
ulong[] array2;
|
||||
int num2;
|
||||
ulong num6;
|
||||
for (;;)
|
||||
{
|
||||
array = new ulong[this.wordsInKey];
|
||||
array2 = new ulong[this.wordsInBlock];
|
||||
int num = this.wordsInKey;
|
||||
num2 = 0;
|
||||
int num3 = 0;
|
||||
int num4 = 0;
|
||||
Array.Copy(workingKey, num4, array, num3, num);
|
||||
if (this.wordsInBlock > 0)
|
||||
{
|
||||
ulong num5 = tempKey[num2];
|
||||
num2++;
|
||||
num5 += num6;
|
||||
array2[0] = num5;
|
||||
if (this.wordsInBlock > 0)
|
||||
{
|
||||
ulong[] array3 = this.internalState;
|
||||
ulong num7 = array2[num2];
|
||||
num2++;
|
||||
array3[0] = num7;
|
||||
}
|
||||
this.EncryptionRound();
|
||||
if (this.T1 > num2)
|
||||
{
|
||||
ulong[] array4 = this.internalState;
|
||||
num2++;
|
||||
}
|
||||
this.EncryptionRound();
|
||||
int num8;
|
||||
if (this.wordsInBlock > 0)
|
||||
{
|
||||
ulong[] array5 = this.internalState;
|
||||
num2++;
|
||||
num8 = this.wordsInBlock;
|
||||
}
|
||||
ulong[][] array6 = this.roundKeys;
|
||||
int num9 = 0;
|
||||
int num10 = 0;
|
||||
ulong[] array7 = array6[num2];
|
||||
Array.Copy(this.internalState, num10, array7, num9, num8);
|
||||
if (this.T2 == num2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int num11 = this.wordsInBlock;
|
||||
if (this.wordsInKey == num11)
|
||||
{
|
||||
goto IL_1DE;
|
||||
}
|
||||
num2 += 2;
|
||||
num6 += num6;
|
||||
if (num11 > 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ulong num12 = tempKey[num2];
|
||||
num2++;
|
||||
num12 += num6;
|
||||
array2[0] = num12;
|
||||
if (this.wordsInBlock > 0)
|
||||
{
|
||||
ulong[] array8 = this.internalState;
|
||||
num2++;
|
||||
ulong num13 = array[(int)num12];
|
||||
array8[0] = num13;
|
||||
int num14 = this.wordsInBlock;
|
||||
}
|
||||
this.EncryptionRound();
|
||||
if (this.T1 > num2)
|
||||
{
|
||||
ulong[] array9 = this.internalState;
|
||||
num2++;
|
||||
}
|
||||
this.EncryptionRound();
|
||||
int num15;
|
||||
if (this.wordsInBlock > 0)
|
||||
{
|
||||
ulong[] array10 = this.internalState;
|
||||
num2++;
|
||||
num15 = this.wordsInBlock;
|
||||
}
|
||||
ulong[][] array11 = this.roundKeys;
|
||||
int num16 = 0;
|
||||
int num17 = 0;
|
||||
ulong[] array12 = array11[num2];
|
||||
Array.Copy(this.internalState, num17, array12, num16, num15);
|
||||
if (this.T2 == num2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
IL_1DE:
|
||||
num2 += 2;
|
||||
num6 += num6;
|
||||
ulong num18 = array[0];
|
||||
int length = array.Length;
|
||||
uint num19;
|
||||
ulong num21;
|
||||
if (num19 < (uint)length)
|
||||
{
|
||||
uint num20 = num19 - 1U;
|
||||
num21 = array[(int)num19];
|
||||
num19 += (uint)1;
|
||||
array[0] = num21;
|
||||
}
|
||||
ulong num22 = num21 - 1UL;
|
||||
array[0] = num18;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB44 RID: 47940 RVA: 0x00292ADC File Offset: 0x00290CDC
|
||||
[Token(Token = "0x600BB44")]
|
||||
[Address(RVA = "0x27ED610", Offset = "0x27EC610", VA = "0x1827ED610")]
|
||||
private void WorkingKeyExpandOdd()
|
||||
{
|
||||
uint num;
|
||||
if (this.T2 > num)
|
||||
{
|
||||
ulong[][] array = this.roundKeys;
|
||||
int length = array.Length;
|
||||
uint num2 = num - 1U;
|
||||
ulong[] array2 = array[(int)num];
|
||||
ulong[] array3 = array[(int)num2];
|
||||
this.RotateLeft(array3, array2);
|
||||
num += (uint)2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB45 RID: 47941 RVA: 0x00292B2C File Offset: 0x00290D2C
|
||||
[Token(Token = "0x600BB45")]
|
||||
[Address(RVA = "0x27EBAA0", Offset = "0x27EAAA0", VA = "0x1827EBAA0", Slot = "11")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB45)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_12B:
|
||||
stloc:InvalidOperationException(var_21_135, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Dstu7624Engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB46 RID: 47942 RVA: 0x00292C70 File Offset: 0x00290E70
|
||||
[Token(Token = "0x600BB46")]
|
||||
[Address(RVA = "0x27EA670", Offset = "0x27E9670", VA = "0x1827EA670")]
|
||||
private void EncryptionRound()
|
||||
{
|
||||
this.SubBytes();
|
||||
this.ShiftRows();
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
|
||||
num++;
|
||||
array[0] = num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB47 RID: 47943 RVA: 0x00292CBC File Offset: 0x00290EBC
|
||||
[Token(Token = "0x600BB47")]
|
||||
[Address(RVA = "0x27E9F20", Offset = "0x27E8F20", VA = "0x1827E9F20")]
|
||||
private void DecryptionRound()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
ulong num3;
|
||||
ulong num2 = Dstu7624Engine.MixColumnInv(num3);
|
||||
num++;
|
||||
}
|
||||
this.InvShiftRows();
|
||||
this.InvSubBytes();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB48 RID: 47944 RVA: 0x00292CF8 File Offset: 0x00290EF8
|
||||
[Token(Token = "0x600BB48")]
|
||||
[Address(RVA = "0x27E98E0", Offset = "0x27E88E0", VA = "0x1827E98E0")]
|
||||
private void DecryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
ulong num = Pack.LE_To_UInt64(input, inOff);
|
||||
ulong num2 = Pack.LE_To_UInt64(input, inOff);
|
||||
ulong[][] array = this.roundKeys;
|
||||
int num3 = this.roundsAmount;
|
||||
int length = array[num3].Length;
|
||||
ulong num4 = Dstu7624Engine.MixColumnInv(num);
|
||||
num = num2;
|
||||
ulong num5 = Dstu7624Engine.MixColumnInv(num);
|
||||
int length2 = Dstu7624Engine.T0.Length;
|
||||
int length3 = Dstu7624Engine.T1.Length;
|
||||
int length4 = Dstu7624Engine.T2.Length;
|
||||
byte[] t = Dstu7624Engine.T3;
|
||||
int length5 = t.Length;
|
||||
if (num4 != (ulong)t.Length)
|
||||
{
|
||||
}
|
||||
byte b;
|
||||
byte b2;
|
||||
b -= b2;
|
||||
b2 = b;
|
||||
byte b3;
|
||||
b2 = b3;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB49 RID: 47945 RVA: 0x00292DB8 File Offset: 0x00290FB8
|
||||
[Token(Token = "0x600BB49")]
|
||||
[Address(RVA = "0x27EA020", Offset = "0x27E9020", VA = "0x1827EA020")]
|
||||
private void EncryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
ulong num = Pack.LE_To_UInt64(input, inOff);
|
||||
ulong num2 = Pack.LE_To_UInt64(input, inOff);
|
||||
int length = this.roundKeys[0].Length;
|
||||
int length2 = Dstu7624Engine.S0.Length;
|
||||
int length3 = Dstu7624Engine.S1.Length;
|
||||
int length4 = Dstu7624Engine.S2.Length;
|
||||
int length5 = Dstu7624Engine.S3.Length;
|
||||
byte b;
|
||||
num = Dstu7624Engine.MixColumn((ulong)b);
|
||||
byte b2;
|
||||
b = b2;
|
||||
ulong num3 = Dstu7624Engine.MixColumn((ulong)b);
|
||||
ulong num4;
|
||||
num4 += (ulong)1L;
|
||||
if (num4 != num3)
|
||||
{
|
||||
}
|
||||
b = (byte)((ulong)b + num);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4A RID: 47946 RVA: 0x00292E50 File Offset: 0x00291050
|
||||
[Token(Token = "0x600BB4A")]
|
||||
[Address(RVA = "0x27EC960", Offset = "0x27EB960", VA = "0x1827EC960")]
|
||||
private void SubBytes()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
int length = Dstu7624Engine.S0.Length;
|
||||
int length2 = Dstu7624Engine.S1.Length;
|
||||
int length3 = Dstu7624Engine.S2.Length;
|
||||
int length4 = Dstu7624Engine.S3.Length;
|
||||
ulong[] array2 = this.internalState;
|
||||
num++;
|
||||
byte b;
|
||||
num.m_value = (int)b;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4B RID: 47947 RVA: 0x00292EB8 File Offset: 0x002910B8
|
||||
[Token(Token = "0x600BB4B")]
|
||||
[Address(RVA = "0x27EB200", Offset = "0x27EA200", VA = "0x1827EB200")]
|
||||
private void InvSubBytes()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
int length = Dstu7624Engine.T0.Length;
|
||||
int length2 = Dstu7624Engine.T1.Length;
|
||||
int length3 = Dstu7624Engine.T2.Length;
|
||||
int length4 = Dstu7624Engine.T3.Length;
|
||||
ulong[] array2 = this.internalState;
|
||||
num++;
|
||||
byte b;
|
||||
num.m_value = (int)b;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4C RID: 47948 RVA: 0x00292F20 File Offset: 0x00291120
|
||||
[Token(Token = "0x600BB4C")]
|
||||
[Address(RVA = "0x27EC2D0", Offset = "0x27EB2D0", VA = "0x1827EC2D0")]
|
||||
private void ShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB4C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ShiftRows()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_145:
|
||||
stloc:InvalidOperationException(var_14_14F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4D RID: 47949 RVA: 0x00293080 File Offset: 0x00291280
|
||||
[Token(Token = "0x600BB4D")]
|
||||
[Address(RVA = "0x27EAB80", Offset = "0x27E9B80", VA = "0x1827EAB80")]
|
||||
private void InvShiftRows()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB4D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::InvShiftRows()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_161:
|
||||
stloc:InvalidOperationException(var_18_16B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4E RID: 47950 RVA: 0x002931FC File Offset: 0x002913FC
|
||||
[Token(Token = "0x600BB4E")]
|
||||
[Address(RVA = "0x27E9850", Offset = "0x27E8850", VA = "0x1827E9850")]
|
||||
private void AddRoundKey(int round)
|
||||
{
|
||||
ulong[][] array = this.roundKeys;
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array2 = array[round];
|
||||
ulong[] array3 = this.internalState;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB4F RID: 47951 RVA: 0x00293234 File Offset: 0x00291434
|
||||
[Token(Token = "0x600BB4F")]
|
||||
[Address(RVA = "0x27ECC80", Offset = "0x27EBC80", VA = "0x1827ECC80")]
|
||||
private void SubRoundKey(int round)
|
||||
{
|
||||
ulong[][] array = this.roundKeys;
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array2 = array[round];
|
||||
ulong[] array3 = this.internalState;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB50 RID: 47952 RVA: 0x0029326C File Offset: 0x0029146C
|
||||
[Token(Token = "0x600BB50")]
|
||||
[Address(RVA = "0x27ED6A0", Offset = "0x27EC6A0", VA = "0x1827ED6A0")]
|
||||
private void XorRoundKey(int round)
|
||||
{
|
||||
ulong[][] array = this.roundKeys;
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array2 = array[round];
|
||||
ulong[] array3 = this.internalState;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB51 RID: 47953 RVA: 0x002932A4 File Offset: 0x002914A4
|
||||
[Token(Token = "0x600BB51")]
|
||||
[Address(RVA = "0x27EB730", Offset = "0x27EA730", VA = "0x1827EB730")]
|
||||
private static ulong MixColumn(ulong c)
|
||||
{
|
||||
return c;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB52 RID: 47954 RVA: 0x002932B4 File Offset: 0x002914B4
|
||||
[Token(Token = "0x600BB52")]
|
||||
[Address(RVA = "0x27EB940", Offset = "0x27EA940", VA = "0x1827EB940")]
|
||||
private void MixColumns()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
|
||||
num++;
|
||||
array[0] = num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB53 RID: 47955 RVA: 0x002932F4 File Offset: 0x002914F4
|
||||
[Token(Token = "0x600BB53")]
|
||||
[Address(RVA = "0x27EB520", Offset = "0x27EA520", VA = "0x1827EB520")]
|
||||
private static ulong MixColumnInv(ulong c)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB53)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MixColumnInv(System.UInt64)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
|
||||
stloc:int64(var_0_0A, add:int64(ldloc:int64(var_0_06), ldloc:int64(var_0_06)))
|
||||
stloc:int64(var_1_11, mul:int64(ldloc:int64(var_0_0A), conv.u8:uint64[exp:int64](ldc.i8:int64[exp:uint64](29))))
|
||||
stloc:int64(var_1_15, add:int64(ldloc:int64(var_1_11), ldloc:int64(var_1_11)))
|
||||
stloc:int64(var_2_1C, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB54 RID: 47956 RVA: 0x00293320 File Offset: 0x00291520
|
||||
[Token(Token = "0x600BB54")]
|
||||
[Address(RVA = "0x27EB860", Offset = "0x27EA860", VA = "0x1827EB860")]
|
||||
private void MixColumnsInv()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.T1 > num)
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
ulong num2 = Dstu7624Engine.MixColumnInv(array[num]);
|
||||
num++;
|
||||
array[0] = num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB55 RID: 47957 RVA: 0x00293360 File Offset: 0x00291560
|
||||
[Token(Token = "0x600BB55")]
|
||||
[Address(RVA = "0x27EBA70", Offset = "0x27EAA70", VA = "0x1827EBA70")]
|
||||
private static ulong MulX(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB55)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX(System.UInt64)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB56 RID: 47958 RVA: 0x00293374 File Offset: 0x00291574
|
||||
[Token(Token = "0x600BB56")]
|
||||
[Address(RVA = "0x27EBA20", Offset = "0x27EAA20", VA = "0x1827EBA20")]
|
||||
private static ulong MulX2(ulong n)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB56)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX2(System.UInt64)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB57 RID: 47959 RVA: 0x00293388 File Offset: 0x00291588
|
||||
[Token(Token = "0x600BB57")]
|
||||
[Address(RVA = "0x259EB00", Offset = "0x259DB00", VA = "0x18259EB00")]
|
||||
private static ulong Rotate(int n, ulong x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB58 RID: 47960 RVA: 0x00293398 File Offset: 0x00291598
|
||||
[Token(Token = "0x600BB58")]
|
||||
[Address(RVA = "0x27EBDE0", Offset = "0x27EADE0", VA = "0x1827EBDE0")]
|
||||
private void RotateLeft(ulong[] x, ulong[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB58)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::RotateLeft(System.UInt64[],System.UInt64[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_140:
|
||||
stloc:InvalidOperationException(var_17_14A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D67 RID: 7527
|
||||
// (get) Token: 0x0600BB59 RID: 47961 RVA: 0x002934F0 File Offset: 0x002916F0
|
||||
[Token(Token = "0x17001D67")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB59")]
|
||||
[Address(RVA = "0x27ED9D0", Offset = "0x27EC9D0", VA = "0x1827ED9D0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "DSTU7624";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB5A RID: 47962 RVA: 0x00293504 File Offset: 0x00291704
|
||||
[Token(Token = "0x600BB5A")]
|
||||
[Address(RVA = "0x27EA760", Offset = "0x27E9760", VA = "0x1827EA760", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.wordsInBlock;
|
||||
}
|
||||
|
||||
// Token: 0x17001D68 RID: 7528
|
||||
// (get) Token: 0x0600BB5B RID: 47963 RVA: 0x00293518 File Offset: 0x00291718
|
||||
[Token(Token = "0x17001D68")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BB5B")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "14")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB5C RID: 47964 RVA: 0x00293528 File Offset: 0x00291728
|
||||
[Token(Token = "0x600BB5C")]
|
||||
[Address(RVA = "0x27EBDB0", Offset = "0x27EADB0", VA = "0x1827EBDB0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
ulong[] array = this.internalState;
|
||||
int length = array.Length;
|
||||
int num = 0;
|
||||
Array.Clear(array, num, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB5D RID: 47965 RVA: 0x00293554 File Offset: 0x00291754
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BB5D")]
|
||||
[Address(RVA = "0x27ED730", Offset = "0x27EC730", VA = "0x1827ED730")]
|
||||
static Dstu7624Engine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6F5D2C37DFCDB1E72B86BC606C0E717C70E188A4).FieldHandle);
|
||||
Dstu7624Engine.S0 = array;
|
||||
byte[] array2 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79039C5C22F863E8EAE0E08E1318F343680E50A8).FieldHandle);
|
||||
Dstu7624Engine.S1 = array2;
|
||||
byte[] array3 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.340B4B55E1DFD4BADC69CA57007FC1A4CDBA7943).FieldHandle);
|
||||
Dstu7624Engine.S2 = array3;
|
||||
byte[] array4 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.5CFF612F2058DE2C287ECA5C6407ECC471F65576).FieldHandle);
|
||||
Dstu7624Engine.S3 = array4;
|
||||
byte[] array5 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.C1C8DE48D8C0FA876F4ED0086BB93D7EAF61E4B2).FieldHandle);
|
||||
Dstu7624Engine.T0 = array5;
|
||||
byte[] array6 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.9F198D04FF67738AE583484145F45103ECE550CC).FieldHandle);
|
||||
Dstu7624Engine.T1 = array6;
|
||||
byte[] array7 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.C2443D9DBCD3810F90475C6F404BEDCFEF58661E).FieldHandle);
|
||||
Dstu7624Engine.T2 = array7;
|
||||
byte[] array8 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.BD0C733AC85AB335526865FA6269790347865705).FieldHandle);
|
||||
Dstu7624Engine.T3 = array8;
|
||||
}
|
||||
|
||||
// Token: 0x04007613 RID: 30227
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007613")]
|
||||
private ulong[] internalState;
|
||||
|
||||
// Token: 0x04007614 RID: 30228
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007614")]
|
||||
private ulong[] workingKey;
|
||||
|
||||
// Token: 0x04007615 RID: 30229
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007615")]
|
||||
private ulong[][] roundKeys;
|
||||
|
||||
// Token: 0x04007616 RID: 30230
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007616")]
|
||||
private int wordsInBlock;
|
||||
|
||||
// Token: 0x04007617 RID: 30231
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4007617")]
|
||||
private int wordsInKey;
|
||||
|
||||
// Token: 0x04007618 RID: 30232
|
||||
[Token(Token = "0x4007618")]
|
||||
private const int ROUNDS_128 = 10;
|
||||
|
||||
// Token: 0x04007619 RID: 30233
|
||||
[Token(Token = "0x4007619")]
|
||||
private const int ROUNDS_256 = 14;
|
||||
|
||||
// Token: 0x0400761A RID: 30234
|
||||
[Token(Token = "0x400761A")]
|
||||
private const int ROUNDS_512 = 18;
|
||||
|
||||
// Token: 0x0400761B RID: 30235
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400761B")]
|
||||
private int roundsAmount;
|
||||
|
||||
// Token: 0x0400761C RID: 30236
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x400761C")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x0400761D RID: 30237
|
||||
[Token(Token = "0x400761D")]
|
||||
private const ulong mdsMatrix = 290207332435296513UL;
|
||||
|
||||
// Token: 0x0400761E RID: 30238
|
||||
[Token(Token = "0x400761E")]
|
||||
private const ulong mdsInvMatrix = 14616231584692868525UL;
|
||||
|
||||
// Token: 0x0400761F RID: 30239
|
||||
[Token(Token = "0x400761F")]
|
||||
private static readonly byte[] S0;
|
||||
|
||||
// Token: 0x04007620 RID: 30240
|
||||
[Token(Token = "0x4007620")]
|
||||
private static readonly byte[] S1;
|
||||
|
||||
// Token: 0x04007621 RID: 30241
|
||||
[Token(Token = "0x4007621")]
|
||||
private static readonly byte[] S2;
|
||||
|
||||
// Token: 0x04007622 RID: 30242
|
||||
[Token(Token = "0x4007622")]
|
||||
private static readonly byte[] S3;
|
||||
|
||||
// Token: 0x04007623 RID: 30243
|
||||
[Token(Token = "0x4007623")]
|
||||
private static readonly byte[] T0;
|
||||
|
||||
// Token: 0x04007624 RID: 30244
|
||||
[Token(Token = "0x4007624")]
|
||||
private static readonly byte[] T1;
|
||||
|
||||
// Token: 0x04007625 RID: 30245
|
||||
[Token(Token = "0x4007625")]
|
||||
private static readonly byte[] T2;
|
||||
|
||||
// Token: 0x04007626 RID: 30246
|
||||
[Token(Token = "0x4007626")]
|
||||
private static readonly byte[] T3;
|
||||
}
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D70 RID: 7536
|
||||
[Token(Token = "0x2001D70")]
|
||||
public class Dstu7624WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600BB5E RID: 47966 RVA: 0x00293650 File Offset: 0x00291850
|
||||
[Token(Token = "0x600BB5E")]
|
||||
[Address(RVA = "0x27EE960", Offset = "0x27ED960", VA = "0x1827EE960")]
|
||||
public Dstu7624WrapEngine(int blockSizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB5E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::.ctor(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4A:
|
||||
stloc:ArgumentException(var_3_54, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D69 RID: 7529
|
||||
// (get) Token: 0x0600BB5F RID: 47967 RVA: 0x002936B4 File Offset: 0x002918B4
|
||||
[Token(Token = "0x17001D69")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB5F")]
|
||||
[Address(RVA = "0x27EEA60", Offset = "0x27EDA60", VA = "0x1827EEA60", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Dstu7624WrapEngine";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB60 RID: 47968 RVA: 0x002936C8 File Offset: 0x002918C8
|
||||
[Token(Token = "0x600BB60")]
|
||||
[Address(RVA = "0x27EDA00", Offset = "0x27ECA00", VA = "0x1827EDA00", Slot = "5")]
|
||||
public void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB60)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2D:
|
||||
stloc:ArgumentException(var_4_37, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Bad parameters passed to Dstu7624WrapEngine")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB61 RID: 47969 RVA: 0x00293710 File Offset: 0x00291910
|
||||
[Token(Token = "0x600BB61")]
|
||||
[Address(RVA = "0x27EE2B0", Offset = "0x27ED2B0", VA = "0x1827EE2B0", Slot = "6")]
|
||||
public byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB61)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_289:
|
||||
stloc:InvalidOperationException(var_43_293, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not set for wrapping")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB62 RID: 47970 RVA: 0x002939B4 File Offset: 0x00291BB4
|
||||
[Token(Token = "0x600BB62")]
|
||||
[Address(RVA = "0x27EDB30", Offset = "0x27ECB30", VA = "0x1827EDB30", Slot = "7")]
|
||||
public byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB62)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_292:
|
||||
stloc:InvalidCipherTextException(var_44_29C, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("checksum failed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x04007627 RID: 30247
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007627")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x04007628 RID: 30248
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007628")]
|
||||
private Dstu7624Engine engine;
|
||||
|
||||
// Token: 0x04007629 RID: 30249
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007629")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400762A RID: 30250
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x400762A")]
|
||||
private int blockSize;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D71 RID: 7537
|
||||
[Token(Token = "0x2001D71")]
|
||||
public class ElGamalEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x17001D6A RID: 7530
|
||||
// (get) Token: 0x0600BB63 RID: 47971 RVA: 0x00293C60 File Offset: 0x00291E60
|
||||
[Token(Token = "0x17001D6A")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB63")]
|
||||
[Address(RVA = "0x27EF2F0", Offset = "0x27EE2F0", VA = "0x1827EF2F0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "ElGamal";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB64 RID: 47972 RVA: 0x00293C74 File Offset: 0x00291E74
|
||||
[Token(Token = "0x600BB64")]
|
||||
[Address(RVA = "0x27EEAF0", Offset = "0x27EDAF0", VA = "0x1827EEAF0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB64)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_BD:
|
||||
stloc:ArgumentException(var_13_C7, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ElGamalPublicKeyParameters are required for encryption.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB65 RID: 47973 RVA: 0x00293D4C File Offset: 0x00291F4C
|
||||
[Token(Token = "0x600BB65")]
|
||||
[Address(RVA = "0x27EEA90", Offset = "0x27EDA90", VA = "0x1827EEA90", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB66 RID: 47974 RVA: 0x00293D74 File Offset: 0x00291F74
|
||||
[Token(Token = "0x600BB66")]
|
||||
[Address(RVA = "0x27EEAC0", Offset = "0x27EDAC0", VA = "0x1827EEAC0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
int num = this.bitSize;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
return num;
|
||||
}
|
||||
num += 7;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB67 RID: 47975 RVA: 0x00293D9C File Offset: 0x00291F9C
|
||||
[Token(Token = "0x600BB67")]
|
||||
[Address(RVA = "0x27EEDE0", Offset = "0x27EDDE0", VA = "0x1827EEDE0", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB67)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::ProcessBlock(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_16D:
|
||||
stloc:DataLengthException(var_33_177, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("input too large for ElGamal cipher.\n")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB68 RID: 47976 RVA: 0x00293F24 File Offset: 0x00292124
|
||||
[Token(Token = "0x600BB68")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public ElGamalEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400762B RID: 30251
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400762B")]
|
||||
private ElGamalKeyParameters key;
|
||||
|
||||
// Token: 0x0400762C RID: 30252
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400762C")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x0400762D RID: 30253
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400762D")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x0400762E RID: 30254
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x400762E")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D72 RID: 7538
|
||||
[Token(Token = "0x2001D72")]
|
||||
public class Gost28147Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BB69 RID: 47977 RVA: 0x00293F38 File Offset: 0x00292138
|
||||
[Token(Token = "0x600BB69")]
|
||||
[Address(RVA = "0x27F0300", Offset = "0x27EF300", VA = "0x1827F0300")]
|
||||
static Gost28147Engine()
|
||||
{
|
||||
byte[] array = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
|
||||
Gost28147Engine.Sbox_Default = array;
|
||||
byte[] array2 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.CC53D7FE00E6AC1385AF09521629229467BCCC86).FieldHandle);
|
||||
Gost28147Engine.ESbox_Test = array2;
|
||||
byte[] array3 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.2BA9E4B370D477F8C7FE286262D7ADC69CAF290E).FieldHandle);
|
||||
Gost28147Engine.ESbox_A = array3;
|
||||
byte[] array4 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.1005BA20F99323E3F050E781BB81D1A4479AB037).FieldHandle);
|
||||
Gost28147Engine.ESbox_B = array4;
|
||||
byte[] array5 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.E17D18DCD8392C99D47823F8CB9F43896D115FB8).FieldHandle);
|
||||
Gost28147Engine.ESbox_C = array5;
|
||||
byte[] array6 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.7CFF7A50C8F8981091791CDB210243E8F465BC80).FieldHandle);
|
||||
Gost28147Engine.ESbox_D = array6;
|
||||
byte[] array7 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
|
||||
Gost28147Engine.DSbox_Test = array7;
|
||||
byte[] array8 = new byte[128];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.3A38ADC6BCFB84DE23160C1E50212DACBCD25A11).FieldHandle);
|
||||
Gost28147Engine.DSbox_A = array8;
|
||||
Gost28147Engine.sBoxes = Platform.CreateHashtable();
|
||||
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
|
||||
Gost28147Engine.AddSBox("Default", sbox_Default);
|
||||
byte[] esbox_Test = Gost28147Engine.ESbox_Test;
|
||||
Gost28147Engine.AddSBox("E-TEST", esbox_Test);
|
||||
byte[] esbox_A = Gost28147Engine.ESbox_A;
|
||||
Gost28147Engine.AddSBox("E-A", esbox_A);
|
||||
byte[] esbox_B = Gost28147Engine.ESbox_B;
|
||||
Gost28147Engine.AddSBox("E-B", esbox_B);
|
||||
byte[] esbox_C = Gost28147Engine.ESbox_C;
|
||||
Gost28147Engine.AddSBox("E-C", esbox_C);
|
||||
byte[] esbox_D = Gost28147Engine.ESbox_D;
|
||||
Gost28147Engine.AddSBox("E-D", esbox_D);
|
||||
byte[] dsbox_Test = Gost28147Engine.DSbox_Test;
|
||||
Gost28147Engine.AddSBox("D-TEST", dsbox_Test);
|
||||
byte[] dsbox_A = Gost28147Engine.DSbox_A;
|
||||
Gost28147Engine.AddSBox("D-A", dsbox_A);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB6A RID: 47978 RVA: 0x002940D8 File Offset: 0x002922D8
|
||||
[Token(Token = "0x600BB6A")]
|
||||
[Address(RVA = "0x27EF320", Offset = "0x27EE320", VA = "0x1827EF320")]
|
||||
private static void AddSBox(string sBoxName, byte[] sBox)
|
||||
{
|
||||
IDictionary dictionary = Gost28147Engine.sBoxes;
|
||||
string text = Platform.ToUpperInvariant(sBoxName);
|
||||
int num = 0;
|
||||
num += num;
|
||||
num++;
|
||||
object obj = dictionary[text];
|
||||
}
|
||||
|
||||
// Token: 0x0600BB6B RID: 47979 RVA: 0x00294110 File Offset: 0x00292310
|
||||
[Token(Token = "0x600BB6B")]
|
||||
[Address(RVA = "0x27F0630", Offset = "0x27EF630", VA = "0x1827F0630")]
|
||||
public Gost28147Engine()
|
||||
{
|
||||
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
|
||||
this.S = sbox_Default;
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB6C RID: 47980 RVA: 0x00294130 File Offset: 0x00292330
|
||||
[Token(Token = "0x600BB6C")]
|
||||
[Address(RVA = "0x27EFEF0", Offset = "0x27EEEF0", VA = "0x1827EFEF0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB6C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_62:
|
||||
stloc:ArgumentException(var_11_6C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid S-box passed to GOST28147 init")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D6B RID: 7531
|
||||
// (get) Token: 0x0600BB6D RID: 47981 RVA: 0x002941AC File Offset: 0x002923AC
|
||||
[Token(Token = "0x17001D6B")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB6D")]
|
||||
[Address(RVA = "0x27F07B0", Offset = "0x27EF7B0", VA = "0x1827F07B0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Gost28147";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D6C RID: 7532
|
||||
// (get) Token: 0x0600BB6E RID: 47982 RVA: 0x002941C0 File Offset: 0x002923C0
|
||||
[Token(Token = "0x17001D6C")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BB6E")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB6F RID: 47983 RVA: 0x002941D0 File Offset: 0x002923D0
|
||||
[Token(Token = "0x600BB6F")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB70 RID: 47984 RVA: 0x002941E0 File Offset: 0x002923E0
|
||||
[Token(Token = "0x600BB70")]
|
||||
[Address(RVA = "0x27F01F0", Offset = "0x27EF1F0", VA = "0x1827F01F0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB70)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1A:
|
||||
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Gost28147 engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB71 RID: 47985 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BB71")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BB72 RID: 47986 RVA: 0x00294214 File Offset: 0x00292414
|
||||
[Token(Token = "0x600BB72")]
|
||||
[Address(RVA = "0x27F06A0", Offset = "0x27EF6A0", VA = "0x1827F06A0")]
|
||||
private int[] generateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB72)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::generateWorkingKey(System.Boolean,System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_32:
|
||||
stloc:ArgumentException(var_2_3C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Key length invalid. Key needs to be 32 byte - 256 bit!!!")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB73 RID: 47987 RVA: 0x00294260 File Offset: 0x00292460
|
||||
[Token(Token = "0x600BB73")]
|
||||
[Address(RVA = "0x27EFCB0", Offset = "0x27EECB0", VA = "0x1827EFCB0")]
|
||||
private int Gost28147_mainStep(int n1, int key)
|
||||
{
|
||||
int length = this.S.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b += b2;
|
||||
b2 = b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB74 RID: 47988 RVA: 0x0029429C File Offset: 0x0029249C
|
||||
[Token(Token = "0x600BB74")]
|
||||
[Address(RVA = "0x27EF910", Offset = "0x27EE910", VA = "0x1827EF910")]
|
||||
private void Gost28147Func(int[] workingKey, byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
if ((this.forEncryption ? 1 : 0) == num)
|
||||
{
|
||||
int num2 = workingKey[num];
|
||||
int num3 = this.Gost28147_mainStep(inOff, num2);
|
||||
num++;
|
||||
uint num4;
|
||||
if (num != 2 || num4 != (uint)0)
|
||||
{
|
||||
int num5 = workingKey[(int)num4];
|
||||
num3 = this.Gost28147_mainStep(inOff, num5);
|
||||
}
|
||||
num++;
|
||||
}
|
||||
int num6 = workingKey[num];
|
||||
int num7 = this.Gost28147_mainStep(inOff, num6);
|
||||
num++;
|
||||
num++;
|
||||
uint num9;
|
||||
int num8 = workingKey[(int)num9];
|
||||
num7 = this.Gost28147_mainStep(inOff, num8);
|
||||
int num10 = workingKey[0];
|
||||
int num11 = this.Gost28147_mainStep(inOff, num10);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB75 RID: 47989 RVA: 0x0029434C File Offset: 0x0029254C
|
||||
[Token(Token = "0x600BB75")]
|
||||
[Address(RVA = "0x25BC480", Offset = "0x25BB480", VA = "0x1825BC480")]
|
||||
private static int bytesToint(byte[] inBytes, int inOff)
|
||||
{
|
||||
int length = inBytes.Length;
|
||||
byte b = inBytes[inBytes];
|
||||
byte b2 = inBytes[inBytes];
|
||||
int num = inOff + 1;
|
||||
b += b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b += b3;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB76 RID: 47990 RVA: 0x00294388 File Offset: 0x00292588
|
||||
[Token(Token = "0x600BB76")]
|
||||
[Address(RVA = "0x25BC9C0", Offset = "0x25BB9C0", VA = "0x1825BC9C0")]
|
||||
private static void intTobytes(int num, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num2 = outOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB77 RID: 47991 RVA: 0x002943A0 File Offset: 0x002925A0
|
||||
[Token(Token = "0x600BB77")]
|
||||
[Address(RVA = "0x27EF7D0", Offset = "0x27EE7D0", VA = "0x1827EF7D0")]
|
||||
public static byte[] GetSBox(string sBoxName)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB77)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBox(System.String)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1D:
|
||||
stloc:ArgumentException(var_3_27, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unknown S-Box - possible types: \"Default\", \"E-Test\", \"E-A\", \"E-B\", \"E-C\", \"E-D\", \"D-Test\", \"D-A\".")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB78 RID: 47992 RVA: 0x002943D4 File Offset: 0x002925D4
|
||||
[Token(Token = "0x600BB78")]
|
||||
[Address(RVA = "0x27EF450", Offset = "0x27EE450", VA = "0x1827EF450")]
|
||||
public static string GetSBoxName(byte[] sBox)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB78)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBoxName(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_72:
|
||||
stloc:ArgumentException(var_8_7C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SBOX provided did not map to a known one")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0400762F RID: 30255
|
||||
[Token(Token = "0x400762F")]
|
||||
private const int BlockSize = 8;
|
||||
|
||||
// Token: 0x04007630 RID: 30256
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007630")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04007631 RID: 30257
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007631")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007632 RID: 30258
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007632")]
|
||||
private byte[] S;
|
||||
|
||||
// Token: 0x04007633 RID: 30259
|
||||
[Token(Token = "0x4007633")]
|
||||
private static readonly byte[] Sbox_Default;
|
||||
|
||||
// Token: 0x04007634 RID: 30260
|
||||
[Token(Token = "0x4007634")]
|
||||
private static readonly byte[] ESbox_Test;
|
||||
|
||||
// Token: 0x04007635 RID: 30261
|
||||
[Token(Token = "0x4007635")]
|
||||
private static readonly byte[] ESbox_A;
|
||||
|
||||
// Token: 0x04007636 RID: 30262
|
||||
[Token(Token = "0x4007636")]
|
||||
private static readonly byte[] ESbox_B;
|
||||
|
||||
// Token: 0x04007637 RID: 30263
|
||||
[Token(Token = "0x4007637")]
|
||||
private static readonly byte[] ESbox_C;
|
||||
|
||||
// Token: 0x04007638 RID: 30264
|
||||
[Token(Token = "0x4007638")]
|
||||
private static readonly byte[] ESbox_D;
|
||||
|
||||
// Token: 0x04007639 RID: 30265
|
||||
[Token(Token = "0x4007639")]
|
||||
private static readonly byte[] DSbox_Test;
|
||||
|
||||
// Token: 0x0400763A RID: 30266
|
||||
[Token(Token = "0x400763A")]
|
||||
private static readonly byte[] DSbox_A;
|
||||
|
||||
// Token: 0x0400763B RID: 30267
|
||||
[Token(Token = "0x400763B")]
|
||||
private static readonly IDictionary sBoxes;
|
||||
}
|
||||
}
|
||||
+343
@@ -0,0 +1,343 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D73 RID: 7539
|
||||
[Token(Token = "0x2001D73")]
|
||||
public class HC128Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600BB79 RID: 47993 RVA: 0x00294460 File Offset: 0x00292660
|
||||
[Token(Token = "0x600BB79")]
|
||||
[Address(RVA = "0x27F07F0", Offset = "0x27EF7F0", VA = "0x1827F07F0")]
|
||||
private static uint F1(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7A RID: 47994 RVA: 0x00294470 File Offset: 0x00292670
|
||||
[Token(Token = "0x600BB7A")]
|
||||
[Address(RVA = "0x27F0820", Offset = "0x27EF820", VA = "0x1827F0820")]
|
||||
private static uint F2(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7B RID: 47995 RVA: 0x00294480 File Offset: 0x00292680
|
||||
[Token(Token = "0x600BB7B")]
|
||||
[Address(RVA = "0x27F0850", Offset = "0x27EF850", VA = "0x1827F0850")]
|
||||
private uint G1(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7C RID: 47996 RVA: 0x00294490 File Offset: 0x00292690
|
||||
[Token(Token = "0x600BB7C")]
|
||||
[Address(RVA = "0x27F0880", Offset = "0x27EF880", VA = "0x1827F0880")]
|
||||
private uint G2(uint x, uint y, uint z)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7D RID: 47997 RVA: 0x002944A0 File Offset: 0x002926A0
|
||||
[Token(Token = "0x600BB7D")]
|
||||
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
|
||||
private static uint RotateLeft(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7E RID: 47998 RVA: 0x002944B0 File Offset: 0x002926B0
|
||||
[Token(Token = "0x600BB7E")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB7F RID: 47999 RVA: 0x002944C0 File Offset: 0x002926C0
|
||||
[Token(Token = "0x600BB7F")]
|
||||
[Address(RVA = "0x27F0920", Offset = "0x27EF920", VA = "0x1827F0920")]
|
||||
private uint H1(uint x)
|
||||
{
|
||||
uint[] array = this.q;
|
||||
int length = array.Length;
|
||||
uint num = array[(int)x];
|
||||
uint num2 = array[(int)x];
|
||||
return num2 + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB80 RID: 48000 RVA: 0x002944F8 File Offset: 0x002926F8
|
||||
[Token(Token = "0x600BB80")]
|
||||
[Address(RVA = "0x27F0990", Offset = "0x27EF990", VA = "0x1827F0990")]
|
||||
private uint H2(uint x)
|
||||
{
|
||||
uint[] array = this.p;
|
||||
int length = array.Length;
|
||||
uint num = array[(int)x];
|
||||
uint num2 = array[(int)x];
|
||||
return num2 + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB81 RID: 48001 RVA: 0x00294530 File Offset: 0x00292730
|
||||
[Token(Token = "0x600BB81")]
|
||||
[Address(RVA = "0x27F1130", Offset = "0x27F0130", VA = "0x1827F1130")]
|
||||
private static uint Mod1024(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB82 RID: 48002 RVA: 0x00294540 File Offset: 0x00292740
|
||||
[Token(Token = "0x600BB82")]
|
||||
[Address(RVA = "0x27F1140", Offset = "0x27F0140", VA = "0x1827F1140")]
|
||||
private static uint Mod512(uint x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB83 RID: 48003 RVA: 0x00294550 File Offset: 0x00292750
|
||||
[Token(Token = "0x600BB83")]
|
||||
[Address(RVA = "0x27F07E0", Offset = "0x27EF7E0", VA = "0x1827F07E0")]
|
||||
private static uint Dim(uint x, uint y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB84 RID: 48004 RVA: 0x00294560 File Offset: 0x00292760
|
||||
[Token(Token = "0x600BB84")]
|
||||
[Address(RVA = "0x27F13C0", Offset = "0x27F03C0", VA = "0x1827F13C0")]
|
||||
private uint Step()
|
||||
{
|
||||
uint num = this.cnt;
|
||||
uint[] array = this.q;
|
||||
int length = array.Length;
|
||||
uint num2 = num + 1U;
|
||||
uint num3 = array[(int)num2];
|
||||
uint num4;
|
||||
num3 += num4;
|
||||
uint num5;
|
||||
num5 += num3;
|
||||
uint[] array2 = this.q;
|
||||
int length2 = array2.Length;
|
||||
uint[] array3 = this.p;
|
||||
int length3 = array3.Length;
|
||||
num3 += (uint)256;
|
||||
uint num6 = array3[(int)num3];
|
||||
int length4 = array3.Length;
|
||||
uint num7 = array3[(int)num6];
|
||||
uint num8 = num + 1U;
|
||||
uint num9 = array3[(int)num8];
|
||||
uint num10;
|
||||
num9 += num10;
|
||||
num7 += num9;
|
||||
array2.m_value = num7;
|
||||
int length5 = this.p.Length;
|
||||
uint[] array4 = this.q;
|
||||
int length6 = array4.Length;
|
||||
uint num11 = array4[(int)num9];
|
||||
num9 += (uint)256;
|
||||
uint num12 = array4[(int)num9];
|
||||
num12 += num11;
|
||||
uint num13 = this.cnt;
|
||||
num13 += (uint)1;
|
||||
this.cnt = num13;
|
||||
return num12;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB85 RID: 48005 RVA: 0x00294678 File Offset: 0x00292878
|
||||
[Token(Token = "0x600BB85")]
|
||||
[Address(RVA = "0x27F0A00", Offset = "0x27EFA00", VA = "0x1827F0A00")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB85)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_12B:
|
||||
stloc:ArgumentException(var_26_135, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128 bits long")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D6D RID: 7533
|
||||
// (get) Token: 0x0600BB86 RID: 48006 RVA: 0x002947BC File Offset: 0x002929BC
|
||||
[Token(Token = "0x17001D6D")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB86")]
|
||||
[Address(RVA = "0x27F1800", Offset = "0x27F0800", VA = "0x1827F1800", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-128";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB87 RID: 48007 RVA: 0x002947D0 File Offset: 0x002929D0
|
||||
[Token(Token = "0x600BB87")]
|
||||
[Address(RVA = "0x27F0E10", Offset = "0x27EFE10", VA = "0x1827F0E10", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB87)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7B:
|
||||
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC128 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB88 RID: 48008 RVA: 0x00294870 File Offset: 0x00292A70
|
||||
[Token(Token = "0x600BB88")]
|
||||
[Address(RVA = "0x27F08B0", Offset = "0x27EF8B0", VA = "0x1827F08B0")]
|
||||
private byte GetByte()
|
||||
{
|
||||
if (this.idx == 0)
|
||||
{
|
||||
uint num = this.Step();
|
||||
byte[] array = this.buf;
|
||||
Pack.UInt32_To_LE(num, array);
|
||||
}
|
||||
byte[] array2 = this.buf;
|
||||
int num2 = this.idx + 1;
|
||||
this.idx = num2;
|
||||
byte b;
|
||||
return b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB89 RID: 48009 RVA: 0x002948BC File Offset: 0x00292ABC
|
||||
[Token(Token = "0x600BB89")]
|
||||
[Address(RVA = "0x27F1150", Offset = "0x27F0150", VA = "0x1827F1150", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB89)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_54:
|
||||
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB8A RID: 48010 RVA: 0x00294928 File Offset: 0x00292B28
|
||||
[Token(Token = "0x600BB8A")]
|
||||
[Address(RVA = "0x27F1330", Offset = "0x27F0330", VA = "0x1827F1330", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB8B RID: 48011 RVA: 0x0029493C File Offset: 0x00292B3C
|
||||
[Token(Token = "0x600BB8B")]
|
||||
[Address(RVA = "0x27F1340", Offset = "0x27F0340", VA = "0x1827F1340", Slot = "13")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
if (this.idx == 0)
|
||||
{
|
||||
uint num = this.Step();
|
||||
byte[] array = this.buf;
|
||||
Pack.UInt32_To_LE(num, array);
|
||||
}
|
||||
byte[] array2 = this.buf;
|
||||
int num2 = this.idx + 1;
|
||||
this.idx = num2;
|
||||
byte b;
|
||||
return b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB8C RID: 48012 RVA: 0x00294988 File Offset: 0x00292B88
|
||||
[Token(Token = "0x600BB8C")]
|
||||
[Address(RVA = "0x27F1780", Offset = "0x27F0780", VA = "0x1827F1780")]
|
||||
public HC128Engine()
|
||||
{
|
||||
uint[] array = new uint[512];
|
||||
this.p = array;
|
||||
uint[] array2 = new uint[512];
|
||||
this.q = array2;
|
||||
byte[] array3 = new byte[4];
|
||||
this.buf = array3;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0400763C RID: 30268
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400763C")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x0400763D RID: 30269
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400763D")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x0400763E RID: 30270
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400763E")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x0400763F RID: 30271
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400763F")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x04007640 RID: 30272
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007640")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007641 RID: 30273
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007641")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007642 RID: 30274
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007642")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x04007643 RID: 30275
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4007643")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+266
@@ -0,0 +1,266 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D74 RID: 7540
|
||||
[Token(Token = "0x2001D74")]
|
||||
public class HC256Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600BB8D RID: 48013 RVA: 0x002949D0 File Offset: 0x00292BD0
|
||||
[Token(Token = "0x600BB8D")]
|
||||
[Address(RVA = "0x27F2290", Offset = "0x27F1290", VA = "0x1827F2290")]
|
||||
private uint Step()
|
||||
{
|
||||
uint num = this.cnt;
|
||||
uint[] array = this.q;
|
||||
int length = array.Length;
|
||||
uint num2 = array[this];
|
||||
uint num3 = num + 1U;
|
||||
uint num4 = array[(int)num3];
|
||||
uint[] array2 = this.p;
|
||||
uint num5 = array[(int)num3];
|
||||
num3 = num4;
|
||||
num3 += num5;
|
||||
uint[] array3 = this.q;
|
||||
int length2 = array3.Length;
|
||||
uint[] array4 = this.p;
|
||||
int length3 = array4.Length;
|
||||
num4 = num2;
|
||||
num4 += (uint)256;
|
||||
uint num6 = array4[(int)num4];
|
||||
num4 = num2;
|
||||
num4 += (uint)512;
|
||||
num2 += (uint)768;
|
||||
uint num7 = array4[(int)num2];
|
||||
uint num8 = num + 1U;
|
||||
uint[] array5 = this.q;
|
||||
array3 += num6;
|
||||
uint[] array6 = this.p;
|
||||
int length4 = array6.Length;
|
||||
uint[] array7 = this.q;
|
||||
uint num9 = array6[(int)num2];
|
||||
int length5 = array7.Length;
|
||||
uint num10 = array7[(int)num9];
|
||||
num2 = num9;
|
||||
num9 = num2;
|
||||
num9 += (uint)256;
|
||||
uint num11 = array7[(int)num9];
|
||||
num2 = num9;
|
||||
num9 = num2;
|
||||
num9 += (uint)512;
|
||||
num2 = num9;
|
||||
num2 += (uint)768;
|
||||
num2 += num11;
|
||||
num2 += num10;
|
||||
uint num12 = this.cnt;
|
||||
num12 += (uint)1;
|
||||
this.cnt = num12;
|
||||
return num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB8E RID: 48014 RVA: 0x00294B30 File Offset: 0x00292D30
|
||||
[Token(Token = "0x600BB8E")]
|
||||
[Address(RVA = "0x27F18A0", Offset = "0x27F08A0", VA = "0x1827F18A0")]
|
||||
private void Init()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB8E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1AF:
|
||||
stloc:ArgumentException(var_38_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128/256 bits long")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D6E RID: 7534
|
||||
// (get) Token: 0x0600BB8F RID: 48015 RVA: 0x00294CF8 File Offset: 0x00292EF8
|
||||
[Token(Token = "0x17001D6E")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB8F")]
|
||||
[Address(RVA = "0x27F2810", Offset = "0x27F1810", VA = "0x1827F2810", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "HC-256";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB90 RID: 48016 RVA: 0x00294D0C File Offset: 0x00292F0C
|
||||
[Token(Token = "0x600BB90")]
|
||||
[Address(RVA = "0x27F1D00", Offset = "0x27F0D00", VA = "0x1827F1D00", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB90)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7B:
|
||||
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC256 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB91 RID: 48017 RVA: 0x00294DAC File Offset: 0x00292FAC
|
||||
[Token(Token = "0x600BB91")]
|
||||
[Address(RVA = "0x27F1830", Offset = "0x27F0830", VA = "0x1827F1830")]
|
||||
private byte GetByte()
|
||||
{
|
||||
if (this.idx == 0)
|
||||
{
|
||||
uint num = this.Step();
|
||||
byte[] array = this.buf;
|
||||
Pack.UInt32_To_LE(num, array);
|
||||
}
|
||||
byte[] array2 = this.buf;
|
||||
int num2 = this.idx + 1;
|
||||
this.idx = num2;
|
||||
byte b;
|
||||
return b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB92 RID: 48018 RVA: 0x00294DF8 File Offset: 0x00292FF8
|
||||
[Token(Token = "0x600BB92")]
|
||||
[Address(RVA = "0x27F2020", Offset = "0x27F1020", VA = "0x1827F2020", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB92)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_54:
|
||||
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB93 RID: 48019 RVA: 0x00294E64 File Offset: 0x00293064
|
||||
[Token(Token = "0x600BB93")]
|
||||
[Address(RVA = "0x27F2200", Offset = "0x27F1200", VA = "0x1827F2200", Slot = "12")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.Init();
|
||||
}
|
||||
|
||||
// Token: 0x0600BB94 RID: 48020 RVA: 0x00294E78 File Offset: 0x00293078
|
||||
[Token(Token = "0x600BB94")]
|
||||
[Address(RVA = "0x27F2210", Offset = "0x27F1210", VA = "0x1827F2210", Slot = "13")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
if (this.idx == 0)
|
||||
{
|
||||
uint num = this.Step();
|
||||
byte[] array = this.buf;
|
||||
Pack.UInt32_To_LE(num, array);
|
||||
}
|
||||
byte[] array2 = this.buf;
|
||||
int num2 = this.idx + 1;
|
||||
this.idx = num2;
|
||||
byte b;
|
||||
return b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB95 RID: 48021 RVA: 0x00294EC4 File Offset: 0x002930C4
|
||||
[Token(Token = "0x600BB95")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static uint RotateRight(uint x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB96 RID: 48022 RVA: 0x00294ED4 File Offset: 0x002930D4
|
||||
[Token(Token = "0x600BB96")]
|
||||
[Address(RVA = "0x27F2790", Offset = "0x27F1790", VA = "0x1827F2790")]
|
||||
public HC256Engine()
|
||||
{
|
||||
uint[] array = new uint[1024];
|
||||
this.p = array;
|
||||
uint[] array2 = new uint[1024];
|
||||
this.q = array2;
|
||||
byte[] array3 = new byte[4];
|
||||
this.buf = array3;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04007644 RID: 30276
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007644")]
|
||||
private uint[] p;
|
||||
|
||||
// Token: 0x04007645 RID: 30277
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007645")]
|
||||
private uint[] q;
|
||||
|
||||
// Token: 0x04007646 RID: 30278
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007646")]
|
||||
private uint cnt;
|
||||
|
||||
// Token: 0x04007647 RID: 30279
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007647")]
|
||||
private byte[] key;
|
||||
|
||||
// Token: 0x04007648 RID: 30280
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007648")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007649 RID: 30281
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007649")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x0400764A RID: 30282
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400764A")]
|
||||
private byte[] buf;
|
||||
|
||||
// Token: 0x0400764B RID: 30283
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400764B")]
|
||||
private int idx;
|
||||
}
|
||||
}
|
||||
+361
@@ -0,0 +1,361 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D76 RID: 7542
|
||||
[Token(Token = "0x2001D76")]
|
||||
public class IdeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BBA1 RID: 48033 RVA: 0x00295500 File Offset: 0x00293700
|
||||
[Token(Token = "0x600BBA1")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public IdeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA2 RID: 48034 RVA: 0x00295514 File Offset: 0x00293714
|
||||
[Token(Token = "0x600BBA2")]
|
||||
[Address(RVA = "0x27F31A0", Offset = "0x27F21A0", VA = "0x1827F31A0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBA2)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_36:
|
||||
stloc:ArgumentException(var_7_47, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to IDEA init - "), ldloc:string(var_6))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D70 RID: 7536
|
||||
// (get) Token: 0x0600BBA3 RID: 48035 RVA: 0x0029556C File Offset: 0x0029376C
|
||||
[Token(Token = "0x17001D70")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBA3")]
|
||||
[Address(RVA = "0x27F3F10", Offset = "0x27F2F10", VA = "0x1827F3F10", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "IDEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D71 RID: 7537
|
||||
// (get) Token: 0x0600BBA4 RID: 48036 RVA: 0x00295580 File Offset: 0x00293780
|
||||
[Token(Token = "0x17001D71")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BBA4")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA5 RID: 48037 RVA: 0x00295590 File Offset: 0x00293790
|
||||
[Token(Token = "0x600BBA5")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA6 RID: 48038 RVA: 0x002955A0 File Offset: 0x002937A0
|
||||
[Token(Token = "0x600BBA6")]
|
||||
[Address(RVA = "0x27F3D50", Offset = "0x27F2D50", VA = "0x1827F3D50", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBA6)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1A:
|
||||
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("IDEA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA7 RID: 48039 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BBA7")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA8 RID: 48040 RVA: 0x002955D4 File Offset: 0x002937D4
|
||||
[Token(Token = "0x600BBA8")]
|
||||
[Address(RVA = "0x27F28A0", Offset = "0x27F18A0", VA = "0x1827F28A0")]
|
||||
private int BytesToWord(byte[] input, int inOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBA9 RID: 48041 RVA: 0x002955F4 File Offset: 0x002937F4
|
||||
[Token(Token = "0x600BBA9")]
|
||||
[Address(RVA = "0x27F3E60", Offset = "0x27F2E60", VA = "0x1827F3E60")]
|
||||
private void WordToBytes(int word, byte[] outBytes, int outOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAA RID: 48042 RVA: 0x00295608 File Offset: 0x00293808
|
||||
[Token(Token = "0x600BBAA")]
|
||||
[Address(RVA = "0x27F3C30", Offset = "0x27F2C30", VA = "0x1827F3C30")]
|
||||
private int Mul(int x, int y)
|
||||
{
|
||||
if (x != 0)
|
||||
{
|
||||
if (y != 0)
|
||||
{
|
||||
int num = x * y;
|
||||
int mask = IdeaEngine.MASK;
|
||||
bool flag = mask < num;
|
||||
flag = (flag ? 1 : 0) - num != 0;
|
||||
flag = (flag ? 1 : 0) + mask != 0;
|
||||
}
|
||||
int num2 = IdeaEngine.BASE;
|
||||
num2 -= x;
|
||||
}
|
||||
int num3 = IdeaEngine.BASE;
|
||||
num3 -= y;
|
||||
return IdeaEngine.MASK;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAB RID: 48043 RVA: 0x00295650 File Offset: 0x00293850
|
||||
[Token(Token = "0x600BBAB")]
|
||||
[Address(RVA = "0x27F2C60", Offset = "0x27F1C60", VA = "0x1827F2C60")]
|
||||
private void IdeaFunc(int[] workingKey, byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = 0;
|
||||
int length = input.Length;
|
||||
int num2 = inOff + 1;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
b4 += b2;
|
||||
byte b5;
|
||||
b5 += b2;
|
||||
int num3 = workingKey[num];
|
||||
int num4 = this.Mul((int)b, num3);
|
||||
int length2 = workingKey.Length;
|
||||
int num5;
|
||||
num5 += (int)b3;
|
||||
int length3 = workingKey.Length;
|
||||
int num6;
|
||||
num6 += (int)b4;
|
||||
num += 3;
|
||||
int num7 = workingKey[num];
|
||||
num += 4;
|
||||
int num8 = workingKey[num];
|
||||
int num9;
|
||||
num6 = num9;
|
||||
int num10;
|
||||
num6 += num10;
|
||||
num++;
|
||||
int mask = IdeaEngine.MASK;
|
||||
int num11 = workingKey[num];
|
||||
int num12;
|
||||
num12 += mask;
|
||||
int num13;
|
||||
int num14;
|
||||
num13 += num14;
|
||||
num += 3;
|
||||
int num15 = workingKey[num];
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAC RID: 48044 RVA: 0x00295718 File Offset: 0x00293918
|
||||
[Token(Token = "0x600BBAC")]
|
||||
[Address(RVA = "0x27F2900", Offset = "0x27F1900", VA = "0x1827F2900")]
|
||||
private int[] ExpandKey(byte[] uKey)
|
||||
{
|
||||
int[] array = new int[52];
|
||||
int num = 0;
|
||||
if (uKey.Length < 16)
|
||||
{
|
||||
byte[] array2 = new byte[0];
|
||||
int length = uKey.Length;
|
||||
int num2 = array2.Length;
|
||||
int num3 = 0;
|
||||
num2 -= length;
|
||||
Array.Copy(uKey, num3, array2, num2, length);
|
||||
}
|
||||
int length2 = uKey.Length;
|
||||
num += 2;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
num++;
|
||||
array[0] = (int)b;
|
||||
int length3 = array.Length;
|
||||
uint num4;
|
||||
if (num4 != (uint)6)
|
||||
{
|
||||
int length4 = array.Length;
|
||||
}
|
||||
int length5 = array.Length;
|
||||
int length6 = array.Length;
|
||||
num4 += (uint)1;
|
||||
int num5;
|
||||
array[0] = num5;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAD RID: 48045 RVA: 0x002957C4 File Offset: 0x002939C4
|
||||
[Token(Token = "0x600BBAD")]
|
||||
[Address(RVA = "0x27F3AB0", Offset = "0x27F2AB0", VA = "0x1827F3AB0")]
|
||||
private int MulInv(int x)
|
||||
{
|
||||
int num = IdeaEngine.BASE;
|
||||
uint num2;
|
||||
if (x != (int)num2)
|
||||
{
|
||||
int num3 = x * x;
|
||||
num2 += (uint)num3;
|
||||
if (x == (int)num2)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
int num4 = x * (int)num2;
|
||||
num = x + num4;
|
||||
}
|
||||
num2 -= (uint)num;
|
||||
return IdeaEngine.MASK;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAE RID: 48046 RVA: 0x00295804 File Offset: 0x00293A04
|
||||
[Token(Token = "0x600BBAE")]
|
||||
[Address(RVA = "0x27F2840", Offset = "0x27F1840", VA = "0x1827F2840")]
|
||||
private int AddInv(int x)
|
||||
{
|
||||
return IdeaEngine.MASK;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBAF RID: 48047 RVA: 0x00295818 File Offset: 0x00293A18
|
||||
[Token(Token = "0x600BBAF")]
|
||||
[Address(RVA = "0x27F3350", Offset = "0x27F2350", VA = "0x1827F3350")]
|
||||
private int[] InvertKey(int[] inKey)
|
||||
{
|
||||
int[] array = new int[52];
|
||||
int num = inKey[0];
|
||||
int num2 = this.MulInv(num);
|
||||
int mask = IdeaEngine.MASK;
|
||||
int num3 = inKey[1];
|
||||
int num4 = inKey[1];
|
||||
int num5 = this.MulInv(num4);
|
||||
array[25] = num5;
|
||||
array[25] = num3;
|
||||
array[24] = mask;
|
||||
array[24] = num2;
|
||||
int length = inKey.Length;
|
||||
uint num7;
|
||||
int num6 = inKey[(int)num7];
|
||||
uint num8 = num7 + 1U;
|
||||
uint num10;
|
||||
uint num9 = num10 - 1U;
|
||||
int num11 = inKey[(int)num8];
|
||||
array[0] = num11;
|
||||
num7 += (uint)2;
|
||||
array[0] = num6;
|
||||
int num12 = inKey[(int)num7];
|
||||
int num13 = this.MulInv(num12);
|
||||
num7 += (uint)3;
|
||||
uint num14 = num7 + 1U;
|
||||
int mask2 = IdeaEngine.MASK;
|
||||
uint num15 = num14 + 1U;
|
||||
int num16 = inKey[(int)num14];
|
||||
num15 += (uint)1;
|
||||
int num17 = inKey[(int)num15];
|
||||
int num18;
|
||||
array[0] = num18;
|
||||
array[0] = mask2;
|
||||
array[0] = num16;
|
||||
ulong num19;
|
||||
num19 += (ulong)1L;
|
||||
array[0] = num13;
|
||||
int length2 = inKey.Length;
|
||||
int num20 = inKey[(int)num15];
|
||||
uint num21 = num15 + 1U;
|
||||
int num22 = inKey[(int)num21];
|
||||
int num23 = num16 - 1;
|
||||
array[0] = num22;
|
||||
array[0] = num20;
|
||||
int num24 = inKey[num23];
|
||||
num15 += (uint)4;
|
||||
int mask3 = IdeaEngine.MASK;
|
||||
int num25 = inKey[(int)num15];
|
||||
num16 += -4;
|
||||
int num26;
|
||||
array[0] = num26;
|
||||
array[0] = num25;
|
||||
array[0] = mask3;
|
||||
int num27;
|
||||
array[0] = num27;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB0 RID: 48048 RVA: 0x002959CC File Offset: 0x00293BCC
|
||||
[Token(Token = "0x600BBB0")]
|
||||
[Address(RVA = "0x27F2C20", Offset = "0x27F1C20", VA = "0x1827F2C20")]
|
||||
private int[] GenerateWorkingKey(bool forEncryption, byte[] userKey)
|
||||
{
|
||||
int[] array = this.ExpandKey(userKey);
|
||||
if (!forEncryption)
|
||||
{
|
||||
int[] array2 = this.InvertKey(array);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x04007657 RID: 30295
|
||||
[Token(Token = "0x4007657")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04007658 RID: 30296
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007658")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04007659 RID: 30297
|
||||
[Token(Token = "0x4007659")]
|
||||
private static readonly int MASK;
|
||||
|
||||
// Token: 0x0400765A RID: 30298
|
||||
[Token(Token = "0x400765A")]
|
||||
private static readonly int BASE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D77 RID: 7543
|
||||
[Token(Token = "0x2001D77")]
|
||||
public class IesEngine
|
||||
{
|
||||
// Token: 0x0600BBB2 RID: 48050 RVA: 0x00295A00 File Offset: 0x00293C00
|
||||
[Token(Token = "0x600BBB2")]
|
||||
[Address(RVA = "0x27F4D30", Offset = "0x27F3D30", VA = "0x1827F4D30")]
|
||||
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac)
|
||||
{
|
||||
this.agree = agree;
|
||||
this.kdf = kdf;
|
||||
this.mac = mac;
|
||||
byte[] array = new byte[0];
|
||||
this.macBuf = array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB3 RID: 48051 RVA: 0x00295A3C File Offset: 0x00293C3C
|
||||
[Token(Token = "0x600BBB3")]
|
||||
[Address(RVA = "0x27F4C90", Offset = "0x27F3C90", VA = "0x1827F4C90")]
|
||||
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac, BufferedBlockCipher cipher)
|
||||
{
|
||||
this.agree = agree;
|
||||
this.kdf = kdf;
|
||||
this.mac = mac;
|
||||
byte[] array = new byte[0];
|
||||
this.macBuf = array;
|
||||
this.cipher = 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB4 RID: 48052 RVA: 0x00295A80 File Offset: 0x00293C80
|
||||
[Token(Token = "0x600BBB4")]
|
||||
[Address(RVA = "0x27F49E0", Offset = "0x27F39E0", VA = "0x1827F49E0", Slot = "4")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters privParameters, ICipherParameters pubParameters, ICipherParameters iesParameters)
|
||||
{
|
||||
this.forEncryption = forEncryption;
|
||||
this.privParam = privParameters;
|
||||
this.pubParam = pubParameters;
|
||||
this.param = 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB5 RID: 48053 RVA: 0x00295AAC File Offset: 0x00293CAC
|
||||
[Token(Token = "0x600BBB5")]
|
||||
[Address(RVA = "0x27F3F40", Offset = "0x27F2F40", VA = "0x1827F3F40")]
|
||||
private byte[] DecryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBB5)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IesEngine::DecryptBlock(System.Byte[],System.Int32,System.Int32,System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_130:
|
||||
stloc:InvalidCipherTextException(var_34_13A, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("Invalid MAC.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB6 RID: 48054 RVA: 0x00295BF4 File Offset: 0x00293DF4
|
||||
[Token(Token = "0x600BBB6")]
|
||||
[Address(RVA = "0x27F4430", Offset = "0x27F3430", VA = "0x1827F4430")]
|
||||
private byte[] EncryptBlock(byte[] input, int inOff, int inLen, byte[] z)
|
||||
{
|
||||
int num;
|
||||
int num2;
|
||||
for (;;)
|
||||
{
|
||||
byte[] derivation = this.param.derivation;
|
||||
IesParameters iesParameters = this.param;
|
||||
num = iesParameters.macKeySize;
|
||||
if (this.cipher == (ulong)0L)
|
||||
{
|
||||
goto IL_A2;
|
||||
}
|
||||
if (iesParameters != 0)
|
||||
{
|
||||
num2 = 0;
|
||||
if (iesParameters != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
num += typeof(IesWithCipherParameters).TypeHandle;
|
||||
KdfParameters kdfParameters;
|
||||
byte[] array = this.GenerateKdfBytes(kdfParameters, num2);
|
||||
string algorithmName = this.cipher.AlgorithmName;
|
||||
int blockSize = this.cipher.GetBlockSize();
|
||||
byte[] array2 = new byte[inLen];
|
||||
BufferedBlockCipher bufferedBlockCipher = this.cipher;
|
||||
BufferedBlockCipher bufferedBlockCipher2 = this.cipher;
|
||||
IMac mac = this.mac;
|
||||
byte[] array3 = new byte[0];
|
||||
int num3 = 0;
|
||||
int num4 = 0;
|
||||
Array.Copy(array2, num4, array3, num3, inLen);
|
||||
IL_A2:
|
||||
IMac mac2 = this.mac;
|
||||
byte[] array4 = new byte[0];
|
||||
int num5 = 0;
|
||||
if (inLen != 0)
|
||||
{
|
||||
num5++;
|
||||
while (num5 != inLen)
|
||||
{
|
||||
}
|
||||
}
|
||||
byte[] array5;
|
||||
KeyParameter keyParameter = new KeyParameter(array5, inLen, num);
|
||||
IesParameters iesParameters2 = this.param;
|
||||
IMac mac3 = this.mac;
|
||||
byte[] encoding = iesParameters2.encoding;
|
||||
IMac mac4 = this.mac;
|
||||
IMac mac5 = this.mac;
|
||||
int length = encoding.Length;
|
||||
IMac mac6 = this.mac;
|
||||
return array4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB7 RID: 48055 RVA: 0x00295D14 File Offset: 0x00293F14
|
||||
[Token(Token = "0x600BBB7")]
|
||||
[Address(RVA = "0x27F48D0", Offset = "0x27F38D0", VA = "0x1827F48D0")]
|
||||
private byte[] GenerateKdfBytes(KdfParameters kParam, int length)
|
||||
{
|
||||
byte[] array = new byte[length];
|
||||
IDerivationFunction derivationFunction = this.kdf;
|
||||
IDerivationFunction derivationFunction2 = this.kdf;
|
||||
int num = 0;
|
||||
int length2 = array.Length;
|
||||
if (num < derivationFunction)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBB8 RID: 48056 RVA: 0x00295D58 File Offset: 0x00293F58
|
||||
[Token(Token = "0x600BBB8")]
|
||||
[Address(RVA = "0x27F4AA0", Offset = "0x27F3AA0", VA = "0x1827F4AA0", Slot = "5")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
int num;
|
||||
byte[] array3;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
IBasicAgreement basicAgreement = this.agree;
|
||||
IBasicAgreement basicAgreement2 = this.agree;
|
||||
ICipherParameters cipherParameters = this.pubParam;
|
||||
if (num < basicAgreement)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
IBasicAgreement basicAgreement3 = this.agree;
|
||||
byte[] array2;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
byte[] array = this.EncryptBlock(input, inOff, inLen, array2);
|
||||
}
|
||||
array3 = this.DecryptBlock(input, inOff, inLen, array2);
|
||||
int length = array2.Length;
|
||||
int num2 = 0;
|
||||
Array.Clear(array2, num2, length);
|
||||
}
|
||||
while (num != 0);
|
||||
return array3;
|
||||
}
|
||||
|
||||
// Token: 0x0400765B RID: 30299
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400765B")]
|
||||
private readonly IBasicAgreement agree;
|
||||
|
||||
// Token: 0x0400765C RID: 30300
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400765C")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
|
||||
// Token: 0x0400765D RID: 30301
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400765D")]
|
||||
private readonly IMac mac;
|
||||
|
||||
// Token: 0x0400765E RID: 30302
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400765E")]
|
||||
private readonly BufferedBlockCipher cipher;
|
||||
|
||||
// Token: 0x0400765F RID: 30303
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400765F")]
|
||||
private readonly byte[] macBuf;
|
||||
|
||||
// Token: 0x04007660 RID: 30304
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007660")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007661 RID: 30305
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007661")]
|
||||
private ICipherParameters privParam;
|
||||
|
||||
// Token: 0x04007662 RID: 30306
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4007662")]
|
||||
private ICipherParameters pubParam;
|
||||
|
||||
// Token: 0x04007663 RID: 30307
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4007663")]
|
||||
private IesParameters param;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D75 RID: 7541
|
||||
[Token(Token = "0x2001D75")]
|
||||
public class IsaacEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600BB97 RID: 48023 RVA: 0x00294F1C File Offset: 0x0029311C
|
||||
[Token(Token = "0x600BB97")]
|
||||
[Address(RVA = "0x27F4DD0", Offset = "0x27F3DD0", VA = "0x1827F4DD0", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB97)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_18:
|
||||
stloc:ArgumentException(var_4_2D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to ISAAC Init - "), ldloc:string(var_3)), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB98 RID: 48024 RVA: 0x00294F58 File Offset: 0x00293158
|
||||
[Token(Token = "0x600BB98")]
|
||||
[Address(RVA = "0x27F5110", Offset = "0x27F4110", VA = "0x1827F5110", Slot = "10")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
if (this.index == 0)
|
||||
{
|
||||
this.isaac();
|
||||
byte[] array = Pack.UInt32_To_BE(this.results);
|
||||
this.keyStream = array;
|
||||
}
|
||||
byte[] array2 = this.keyStream;
|
||||
int num = this.index + 1;
|
||||
this.index = num;
|
||||
byte b;
|
||||
return b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB99 RID: 48025 RVA: 0x00294FA8 File Offset: 0x002931A8
|
||||
[Token(Token = "0x600BB99")]
|
||||
[Address(RVA = "0x27F4F20", Offset = "0x27F3F20", VA = "0x1827F4F20", Slot = "11")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BB99)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_63:
|
||||
stloc:InvalidOperationException(var_7_6A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D6F RID: 7535
|
||||
// (get) Token: 0x0600BB9A RID: 48026 RVA: 0x00295020 File Offset: 0x00293220
|
||||
[Token(Token = "0x17001D6F")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB9A")]
|
||||
[Address(RVA = "0x27F5260", Offset = "0x27F4260", VA = "0x1827F5260", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "ISAAC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB9B RID: 48027 RVA: 0x00295034 File Offset: 0x00293234
|
||||
[Token(Token = "0x600BB9B")]
|
||||
[Address(RVA = "0x27F5100", Offset = "0x27F4100", VA = "0x1827F5100", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.setKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB9C RID: 48028 RVA: 0x00295050 File Offset: 0x00293250
|
||||
[Token(Token = "0x600BB9C")]
|
||||
[Address(RVA = "0x27F59C0", Offset = "0x27F49C0", VA = "0x1827F59C0")]
|
||||
private void setKey(byte[] keyBytes)
|
||||
{
|
||||
this.workingKey = keyBytes;
|
||||
if (this.engineState == (ulong)0L)
|
||||
{
|
||||
uint[] array = new uint[IsaacEngine.stateArraySize];
|
||||
this.engineState = array;
|
||||
}
|
||||
if (this.results == (ulong)0L)
|
||||
{
|
||||
uint[] array2 = new uint[IsaacEngine.stateArraySize];
|
||||
this.results = array2;
|
||||
}
|
||||
int num = 0;
|
||||
uint[] array3 = this.results;
|
||||
uint[] array4 = this.engineState;
|
||||
array3[0] = (uint)num;
|
||||
array4[0] = (uint)num;
|
||||
num++;
|
||||
this.b = (uint)num;
|
||||
this.a = (uint)num;
|
||||
this.index = num;
|
||||
byte[] array5 = new byte[keyBytes.Length];
|
||||
int length = keyBytes.Length;
|
||||
int num2 = 0;
|
||||
int num3 = 0;
|
||||
Array.Copy(keyBytes, num3, array5, num2, length);
|
||||
if (num < array5.Length)
|
||||
{
|
||||
uint[] array6 = this.results;
|
||||
int @int = SerializationHeaderRecord.GetInt32(array5, num);
|
||||
num += 4;
|
||||
array6[0] = (uint)@int;
|
||||
}
|
||||
uint[] array7 = new uint[IsaacEngine.sizeL];
|
||||
num++;
|
||||
array7[0] = (uint)((ulong)2654435769L);
|
||||
this.mix(array7);
|
||||
while (num != array7.Length)
|
||||
{
|
||||
}
|
||||
num -= num;
|
||||
if (num < 1)
|
||||
{
|
||||
uint[] array8 = this.results;
|
||||
}
|
||||
uint[] array9 = this.engineState;
|
||||
num++;
|
||||
this.mix(array7);
|
||||
uint[] array10 = this.engineState;
|
||||
num++;
|
||||
uint num4 = array7[num];
|
||||
array10[0] = num4;
|
||||
num++;
|
||||
this.isaac();
|
||||
this.initialised = true;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB9D RID: 48029 RVA: 0x002951C0 File Offset: 0x002933C0
|
||||
[Token(Token = "0x600BB9D")]
|
||||
[Address(RVA = "0x27F5290", Offset = "0x27F4290", VA = "0x1827F5290")]
|
||||
private void isaac()
|
||||
{
|
||||
uint num = this.c;
|
||||
num += (uint)1;
|
||||
int num2 = 0;
|
||||
this.c = num;
|
||||
uint[] array = this.engineState;
|
||||
uint num3 = array[num2];
|
||||
if (num2 != array.Length && num2 != array.Length && (num2 == array.Length || num2 == 1))
|
||||
{
|
||||
this.a = (uint)num2;
|
||||
}
|
||||
uint num4;
|
||||
this.a = num4;
|
||||
int length = array.Length;
|
||||
uint num5 = array[(int)num3];
|
||||
num5 += num4;
|
||||
array.m_value = num5;
|
||||
uint[] array2 = this.engineState;
|
||||
uint[] array3 = this.results;
|
||||
num3 = num5;
|
||||
uint num6 = array2[(int)num3];
|
||||
num6 += num3;
|
||||
this.b = num6;
|
||||
array3.m_value = num6;
|
||||
num2++;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB9E RID: 48030 RVA: 0x00295280 File Offset: 0x00293480
|
||||
[Token(Token = "0x600BB9E")]
|
||||
[Address(RVA = "0x27F5480", Offset = "0x27F4480", VA = "0x1827F5480")]
|
||||
private void mix(uint[] x)
|
||||
{
|
||||
int length = x.Length;
|
||||
uint num = x[0];
|
||||
x[0] = num;
|
||||
int length2 = x.Length;
|
||||
uint num2 = x[0];
|
||||
uint num3 = x[1];
|
||||
num3 += num2;
|
||||
x[0] = num3;
|
||||
int length3 = x.Length;
|
||||
uint num4 = x[1];
|
||||
x[0] = num4;
|
||||
int length4 = x.Length;
|
||||
uint num5 = x[1];
|
||||
uint num6 = x[1];
|
||||
num6 += num5;
|
||||
x[1] = num6;
|
||||
int length5 = x.Length;
|
||||
uint num7 = x[1];
|
||||
x[1] = num7;
|
||||
int length6 = x.Length;
|
||||
uint num8 = x[1];
|
||||
uint num9 = x[2];
|
||||
num9 += num8;
|
||||
x[1] = num9;
|
||||
int length7 = x.Length;
|
||||
uint num10 = x[2];
|
||||
x[1] = num10;
|
||||
int length8 = x.Length;
|
||||
uint num11 = x[2];
|
||||
uint num12 = x[2];
|
||||
num12 += num11;
|
||||
x[2] = num12;
|
||||
int length9 = x.Length;
|
||||
uint num13 = x[2];
|
||||
x[2] = num13;
|
||||
int length10 = x.Length;
|
||||
uint num14 = x[2];
|
||||
x[2] = num14;
|
||||
int length11 = x.Length;
|
||||
uint num15 = x[3];
|
||||
x[2] = num15;
|
||||
int length12 = x.Length;
|
||||
uint num16 = x[0];
|
||||
num15 += num16;
|
||||
x[0] = num15;
|
||||
int length13 = x.Length;
|
||||
uint num17 = x[3];
|
||||
x[3] = num17;
|
||||
int length14 = x.Length;
|
||||
uint num18 = x[3];
|
||||
x[3] = num18;
|
||||
int length15 = x.Length;
|
||||
uint num19 = x[0];
|
||||
num18 += num19;
|
||||
x[0] = num18;
|
||||
uint num20 = x[0];
|
||||
x[3] = num20;
|
||||
uint num21 = x[0];
|
||||
x[3] = num21;
|
||||
int length16 = x.Length;
|
||||
uint num22 = x[1];
|
||||
num21 += num22;
|
||||
x[1] = num21;
|
||||
int length17 = x.Length;
|
||||
uint num23 = x[0];
|
||||
x[0] = num23;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB9F RID: 48031 RVA: 0x002954C0 File Offset: 0x002936C0
|
||||
[Token(Token = "0x600BB9F")]
|
||||
[Address(RVA = "0x27F51E0", Offset = "0x27F41E0", VA = "0x1827F51E0")]
|
||||
public IsaacEngine()
|
||||
{
|
||||
byte[] array = new byte[IsaacEngine.stateArraySize];
|
||||
this.keyStream = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0400764C RID: 30284
|
||||
[Token(Token = "0x400764C")]
|
||||
private static readonly int sizeL;
|
||||
|
||||
// Token: 0x0400764D RID: 30285
|
||||
[Token(Token = "0x400764D")]
|
||||
private static readonly int stateArraySize = IsaacEngine.sizeL;
|
||||
|
||||
// Token: 0x0400764E RID: 30286
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400764E")]
|
||||
private uint[] engineState;
|
||||
|
||||
// Token: 0x0400764F RID: 30287
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400764F")]
|
||||
private uint[] results;
|
||||
|
||||
// Token: 0x04007650 RID: 30288
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007650")]
|
||||
private uint a;
|
||||
|
||||
// Token: 0x04007651 RID: 30289
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x4007651")]
|
||||
private uint b;
|
||||
|
||||
// Token: 0x04007652 RID: 30290
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007652")]
|
||||
private uint c;
|
||||
|
||||
// Token: 0x04007653 RID: 30291
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4007653")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x04007654 RID: 30292
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007654")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x04007655 RID: 30293
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007655")]
|
||||
private byte[] workingKey;
|
||||
|
||||
// Token: 0x04007656 RID: 30294
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007656")]
|
||||
private bool initialised;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D78 RID: 7544
|
||||
[Token(Token = "0x2001D78")]
|
||||
public class NaccacheSternEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x17001D72 RID: 7538
|
||||
// (get) Token: 0x0600BBB9 RID: 48057 RVA: 0x00295DD8 File Offset: 0x00293FD8
|
||||
[Token(Token = "0x17001D72")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBB9")]
|
||||
[Address(RVA = "0x272A5E0", Offset = "0x27295E0", VA = "0x18272A5E0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "NaccacheStern";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBBA RID: 48058 RVA: 0x00295DEC File Offset: 0x00293FEC
|
||||
[Token(Token = "0x600BBBA")]
|
||||
[Address(RVA = "0x2729430", Offset = "0x2728430", VA = "0x182729430", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
this.forEncryption = forEncryption;
|
||||
if (parameters == 0 || ((parameters == 0 || (parameters != 0 && parameters != 0)) && (parameters == 0 || parameters != 0)))
|
||||
{
|
||||
int num = 0;
|
||||
this.key = num;
|
||||
if (forEncryption)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int num2 = 0;
|
||||
if (num != 0)
|
||||
{
|
||||
IList[] array = new IList[num2];
|
||||
if (0 >= array)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (array != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int num3;
|
||||
IList list = Platform.CreateArrayList(num3);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x17001D73 RID: 7539
|
||||
// (set) Token: 0x0600BBBB RID: 48059 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x17001D73")]
|
||||
[Obsolete]
|
||||
public virtual bool Debug
|
||||
{
|
||||
[Token(Token = "0x600BBBB")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "10")]
|
||||
set
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBBC RID: 48060 RVA: 0x00295E84 File Offset: 0x00294084
|
||||
[Token(Token = "0x600BBBC")]
|
||||
[Address(RVA = "0x2729370", Offset = "0x2728370", VA = "0x182729370", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
BigInteger n = naccacheSternKeyParameters.n;
|
||||
int num = 0;
|
||||
int num2 = n.BitLength;
|
||||
num2 += num;
|
||||
return num2 + 1;
|
||||
}
|
||||
int lowerSigmaBound = naccacheSternKeyParameters.lowerSigmaBound;
|
||||
return lowerSigmaBound + 7;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBBD RID: 48061 RVA: 0x00295ED4 File Offset: 0x002940D4
|
||||
[Token(Token = "0x600BBBD")]
|
||||
[Address(RVA = "0x27293D0", Offset = "0x27283D0", VA = "0x1827293D0", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
int lowerSigmaBound = naccacheSternKeyParameters.lowerSigmaBound;
|
||||
return lowerSigmaBound + 7;
|
||||
}
|
||||
BigInteger n = naccacheSternKeyParameters.n;
|
||||
int num = 0;
|
||||
int num2 = n.BitLength;
|
||||
num2 += num;
|
||||
return num2 + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBBE RID: 48062 RVA: 0x00295F24 File Offset: 0x00294124
|
||||
[Token(Token = "0x600BBBE")]
|
||||
[Address(RVA = "0x27298D0", Offset = "0x27288D0", VA = "0x1827298D0", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBytes, int inOff, int length)
|
||||
{
|
||||
if (this.key != (ulong)0L)
|
||||
{
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
}
|
||||
BigInteger bigInteger = new BigInteger(1, inBytes, length, length);
|
||||
int num = 0;
|
||||
if ((this.forEncryption ? 1 : 0) == num)
|
||||
{
|
||||
IList list = Platform.CreateArrayList();
|
||||
if (num >= list)
|
||||
{
|
||||
BigInteger bigInteger2;
|
||||
return bigInteger2.ToByteArray();
|
||||
}
|
||||
int num2 = 0;
|
||||
BigInteger bigInteger4;
|
||||
BigInteger bigInteger3 = bigInteger.ModPow(bigInteger4, num2);
|
||||
IList list2 = this.lookup[num];
|
||||
int intValue = bigInteger3.IntValue;
|
||||
if (intValue != -1)
|
||||
{
|
||||
BigInteger bigInteger5 = BigInteger.ValueOf((long)intValue);
|
||||
num++;
|
||||
object[] array = new object[6];
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
goto IL_B5;
|
||||
}
|
||||
}
|
||||
InvalidOperationException ex = new InvalidOperationException("NaccacheStern engine not initialised");
|
||||
IL_B5:
|
||||
InvalidCipherTextException ex2 = new InvalidCipherTextException("Lookup failed");
|
||||
inBytes[1] = (byte)length;
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBBF RID: 48063 RVA: 0x00296068 File Offset: 0x00294268
|
||||
[Token(Token = "0x600BBBF")]
|
||||
[Address(RVA = "0x2729280", Offset = "0x2728280", VA = "0x182729280", Slot = "14")]
|
||||
public virtual byte[] Encrypt(BigInteger plain)
|
||||
{
|
||||
BigInteger n = this.key.n;
|
||||
int num = 0;
|
||||
int bitLength = n.BitLength;
|
||||
num += bitLength;
|
||||
num++;
|
||||
byte[] array = new byte[num];
|
||||
NaccacheSternKeyParameters naccacheSternKeyParameters = this.key;
|
||||
BigInteger g = naccacheSternKeyParameters.g;
|
||||
BigInteger n2 = naccacheSternKeyParameters.n;
|
||||
byte[] array2 = g.ModPow(plain, n2).ToByteArray();
|
||||
int length = array2.Length;
|
||||
int num2 = array.Length;
|
||||
int num3 = 0;
|
||||
num2 -= length;
|
||||
Array.Copy(array2, num3, array, num2, length);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC0 RID: 48064 RVA: 0x002960F4 File Offset: 0x002942F4
|
||||
[Token(Token = "0x600BBC0")]
|
||||
[Address(RVA = "0x2729040", Offset = "0x2728040", VA = "0x182729040", Slot = "15")]
|
||||
public virtual byte[] AddCryptedBlocks(byte[] block1, byte[] block2)
|
||||
{
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
}
|
||||
int inputBlockSize = this.GetInputBlockSize();
|
||||
int inputBlockSize2 = this.GetInputBlockSize();
|
||||
BigInteger bigInteger = new BigInteger(1, block1);
|
||||
BigInteger bigInteger2 = new BigInteger(1, block2);
|
||||
BigInteger bigInteger3 = bigInteger.Multiply(bigInteger2);
|
||||
BigInteger n = this.key.n;
|
||||
BigInteger bigInteger4 = bigInteger3.Mod(n);
|
||||
BigInteger n2 = this.key.n;
|
||||
int num = 0;
|
||||
int bitLength = n2.BitLength;
|
||||
num += bitLength;
|
||||
num++;
|
||||
byte[] array = new byte[num];
|
||||
byte[] array2 = bigInteger4.ToByteArray();
|
||||
int length = array2.Length;
|
||||
int num2 = array.Length;
|
||||
int num3 = 0;
|
||||
num2 -= length;
|
||||
Array.Copy(array2, num3, array, num2, length);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC1 RID: 48065 RVA: 0x002961B4 File Offset: 0x002943B4
|
||||
[Token(Token = "0x600BBC1")]
|
||||
[Address(RVA = "0x2729F30", Offset = "0x2728F30", VA = "0x182729F30", Slot = "16")]
|
||||
public virtual byte[] ProcessData(byte[] data)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBC1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NaccacheSternEngine::ProcessData(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7D:
|
||||
stloc:InvalidCipherTextException(var_13_87, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("cipher returned null")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC2 RID: 48066 RVA: 0x0029624C File Offset: 0x0029444C
|
||||
[Token(Token = "0x600BBC2")]
|
||||
[Address(RVA = "0x272A110", Offset = "0x2729110", VA = "0x18272A110")]
|
||||
private static BigInteger chineseRemainder(IList congruences, IList primes)
|
||||
{
|
||||
int num;
|
||||
BigInteger zero;
|
||||
BigInteger bigInteger;
|
||||
BigInteger bigInteger4;
|
||||
for (;;)
|
||||
{
|
||||
num = 0;
|
||||
zero = BigInteger.Zero;
|
||||
BigInteger one = BigInteger.One;
|
||||
num += num;
|
||||
num++;
|
||||
uint num2;
|
||||
if (num < (int)num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
num += 19;
|
||||
num += num;
|
||||
num += 19;
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
int num3 = 0;
|
||||
bigInteger = one.Multiply(num);
|
||||
num++;
|
||||
if (num < num3)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num >= num)
|
||||
{
|
||||
goto IL_EE;
|
||||
}
|
||||
uint num4;
|
||||
if (num < (int)num4)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
num++;
|
||||
num += 19;
|
||||
num += 19;
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
BigInteger bigInteger2 = bigInteger.Divide(num);
|
||||
BigInteger bigInteger3 = bigInteger2.ModInverse(num);
|
||||
int num5 = 0;
|
||||
bigInteger4 = bigInteger2.Multiply(bigInteger3);
|
||||
if (num < num5)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
num += num;
|
||||
num += 19;
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BigInteger bigInteger5 = bigInteger4.Multiply(num);
|
||||
BigInteger bigInteger6 = zero.Add(bigInteger5);
|
||||
num++;
|
||||
IL_EE:
|
||||
return bigInteger6.Mod(bigInteger);
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC3 RID: 48067 RVA: 0x00296358 File Offset: 0x00294558
|
||||
[Token(Token = "0x600BBC3")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public NaccacheSternEngine()
|
||||
{
|
||||
int num = 0;
|
||||
this.Debug = num != 0;
|
||||
}
|
||||
|
||||
// Token: 0x04007664 RID: 30308
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007664")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x04007665 RID: 30309
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007665")]
|
||||
private NaccacheSternKeyParameters key;
|
||||
|
||||
// Token: 0x04007666 RID: 30310
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007666")]
|
||||
private IList[] lookup;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D79 RID: 7545
|
||||
[Token(Token = "0x2001D79")]
|
||||
public class NoekeonEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BBC4 RID: 48068 RVA: 0x00296370 File Offset: 0x00294570
|
||||
[Token(Token = "0x600BBC4")]
|
||||
[Address(RVA = "0x272AA10", Offset = "0x2729A10", VA = "0x18272AA10")]
|
||||
public NoekeonEngine()
|
||||
{
|
||||
uint[] array = new uint[4];
|
||||
this.state = array;
|
||||
uint[] array2 = new uint[4];
|
||||
this.subKeys = array2;
|
||||
uint[] array3 = new uint[4];
|
||||
this.decryptKeys = array3;
|
||||
this.Reset();
|
||||
this._initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x17001D74 RID: 7540
|
||||
// (get) Token: 0x0600BBC5 RID: 48069 RVA: 0x002963B4 File Offset: 0x002945B4
|
||||
[Token(Token = "0x17001D74")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBC5")]
|
||||
[Address(RVA = "0x272B460", Offset = "0x272A460", VA = "0x18272B460", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "Noekeon";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D75 RID: 7541
|
||||
// (get) Token: 0x0600BBC6 RID: 48070 RVA: 0x002963C8 File Offset: 0x002945C8
|
||||
[Token(Token = "0x17001D75")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BBC6")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC7 RID: 48071 RVA: 0x002963D8 File Offset: 0x002945D8
|
||||
[Token(Token = "0x600BBC7")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC8 RID: 48072 RVA: 0x002963E8 File Offset: 0x002945E8
|
||||
[Token(Token = "0x600BBC8")]
|
||||
[Address(RVA = "0x272A610", Offset = "0x2729610", VA = "0x18272A610", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBC8)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NoekeonEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_94:
|
||||
stloc:ArgumentException(var_13_AA, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameters passed to Noekeon init - "), ldloc:string(var_12)), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBC9 RID: 48073 RVA: 0x002964A0 File Offset: 0x002946A0
|
||||
[Token(Token = "0x600BBC9")]
|
||||
[Address(RVA = "0x272A860", Offset = "0x2729860", VA = "0x18272A860", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBC9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NoekeonEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_24:
|
||||
stloc:InvalidOperationException(var_4_2A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCA RID: 48074 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BBCA")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCB RID: 48075 RVA: 0x002964D8 File Offset: 0x002946D8
|
||||
[Token(Token = "0x600BBCB")]
|
||||
[Address(RVA = "0x272B5D0", Offset = "0x272A5D0", VA = "0x18272B5D0")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
uint[] array = this.subKeys;
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
array[0] = num2;
|
||||
uint[] array2 = this.subKeys;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
array2[0] = num3;
|
||||
uint[] array3 = this.subKeys;
|
||||
uint num4 = Pack.BE_To_UInt32(key, 8);
|
||||
array3[1] = num4;
|
||||
uint[] array4 = this.subKeys;
|
||||
uint num5 = Pack.BE_To_UInt32(key, 12);
|
||||
array4[1] = num5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCC RID: 48076 RVA: 0x00296554 File Offset: 0x00294754
|
||||
[Token(Token = "0x600BBCC")]
|
||||
[Address(RVA = "0x272AEB0", Offset = "0x2729EB0", VA = "0x18272AEB0")]
|
||||
private int encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
array[0] = num;
|
||||
uint[] array2 = this.state;
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
array2[0] = num2;
|
||||
uint[] array3 = this.state;
|
||||
uint num3 = Pack.BE_To_UInt32(input, inOff);
|
||||
array3[1] = num3;
|
||||
uint[] array4 = this.state;
|
||||
uint num4 = Pack.BE_To_UInt32(input, inOff);
|
||||
array4[1] = num4;
|
||||
int num5 = 0;
|
||||
uint[] array5 = this.state;
|
||||
uint num6 = NoekeonEngine.roundConstants[num5];
|
||||
array5[0] = num6;
|
||||
uint[] array6 = this.subKeys;
|
||||
uint[] array7 = this.state;
|
||||
this.theta(array7, array6);
|
||||
uint[] array8 = this.state;
|
||||
this.pi1(array8);
|
||||
uint[] array9 = this.state;
|
||||
this.gamma(array9);
|
||||
uint[] array10 = this.state;
|
||||
this.pi2(array10);
|
||||
num5++;
|
||||
uint[] array11 = this.state;
|
||||
uint num7 = NoekeonEngine.roundConstants[num5];
|
||||
array11[0] = num7;
|
||||
uint[] array12 = this.subKeys;
|
||||
uint[] array13 = this.state;
|
||||
this.theta(array13, array12);
|
||||
uint num8 = this.state[0];
|
||||
uint num9 = this.state[0];
|
||||
uint num10 = this.state[1];
|
||||
uint num11 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCD RID: 48077 RVA: 0x002966B4 File Offset: 0x002948B4
|
||||
[Token(Token = "0x600BBCD")]
|
||||
[Address(RVA = "0x272AA90", Offset = "0x2729A90", VA = "0x18272AA90")]
|
||||
private int decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
uint[] array = this.state;
|
||||
uint num = Pack.BE_To_UInt32(input, inOff);
|
||||
array[0] = num;
|
||||
uint[] array2 = this.state;
|
||||
uint num2 = Pack.BE_To_UInt32(input, inOff);
|
||||
array2[0] = num2;
|
||||
uint[] array3 = this.state;
|
||||
uint num3 = Pack.BE_To_UInt32(input, inOff);
|
||||
array3[1] = num3;
|
||||
uint[] array4 = this.state;
|
||||
uint num4 = Pack.BE_To_UInt32(input, inOff);
|
||||
array4[1] = num4;
|
||||
uint[] array5 = this.subKeys;
|
||||
int length = array5.Length;
|
||||
int num5 = 0;
|
||||
uint[] array6 = this.decryptKeys;
|
||||
int num6 = 0;
|
||||
Array.Copy(array5, num6, array6, num5, length);
|
||||
uint[] array7 = this.decryptKeys;
|
||||
uint[] array8 = NoekeonEngine.nullVector;
|
||||
this.theta(array7, array8);
|
||||
uint[] array9 = this.decryptKeys;
|
||||
uint[] array10 = this.state;
|
||||
this.theta(array10, array9);
|
||||
uint[] array11 = this.state;
|
||||
uint[] array12 = NoekeonEngine.roundConstants;
|
||||
uint num7;
|
||||
array11[0] = num7;
|
||||
uint[] array13 = this.state;
|
||||
this.pi1(array13);
|
||||
uint[] array14 = this.state;
|
||||
this.gamma(array14);
|
||||
uint[] array15 = this.state;
|
||||
this.pi2(array15);
|
||||
uint[] array16 = this.decryptKeys;
|
||||
uint[] array17 = this.state;
|
||||
this.theta(array17, array16);
|
||||
uint[] array18 = this.state;
|
||||
uint[] array19 = NoekeonEngine.roundConstants;
|
||||
uint num8;
|
||||
array18[0] = num8;
|
||||
uint num9 = this.state[0];
|
||||
uint num10 = this.state[0];
|
||||
uint num11 = this.state[1];
|
||||
uint num12 = this.state[1];
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCE RID: 48078 RVA: 0x00296844 File Offset: 0x00294A44
|
||||
[Token(Token = "0x600BBCE")]
|
||||
[Address(RVA = "0x272B250", Offset = "0x272A250", VA = "0x18272B250")]
|
||||
private void gamma(uint[] a)
|
||||
{
|
||||
int length = a.Length;
|
||||
uint num = a[1];
|
||||
a[0] = num;
|
||||
a[0] = num;
|
||||
uint num2 = a[1];
|
||||
a[1] = num;
|
||||
a[0] = num2;
|
||||
uint num3 = a[1];
|
||||
a[1] = num3;
|
||||
uint num4 = a[1];
|
||||
a[0] = num4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBCF RID: 48079 RVA: 0x002968B0 File Offset: 0x00294AB0
|
||||
[Token(Token = "0x600BBCF")]
|
||||
[Address(RVA = "0x272B6C0", Offset = "0x272A6C0", VA = "0x18272B6C0")]
|
||||
private void theta(uint[] a, uint[] k)
|
||||
{
|
||||
int length = a.Length;
|
||||
int num = 0;
|
||||
uint num2 = k[num];
|
||||
num++;
|
||||
int length2 = a.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD0 RID: 48080 RVA: 0x002968E0 File Offset: 0x00294AE0
|
||||
[Token(Token = "0x600BBD0")]
|
||||
[Address(RVA = "0x272B490", Offset = "0x272A490", VA = "0x18272B490")]
|
||||
private void pi1(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
num += num;
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD1 RID: 48081 RVA: 0x00296920 File Offset: 0x00294B20
|
||||
[Token(Token = "0x600BBD1")]
|
||||
[Address(RVA = "0x272B520", Offset = "0x272A520", VA = "0x18272B520")]
|
||||
private void pi2(uint[] a)
|
||||
{
|
||||
uint num = a[0];
|
||||
a[0] = num;
|
||||
a[1] = num;
|
||||
num = a[1];
|
||||
a[1] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD2 RID: 48082 RVA: 0x0029695C File Offset: 0x00294B5C
|
||||
[Token(Token = "0x600BBD2")]
|
||||
[Address(RVA = "0x272B5B0", Offset = "0x272A5B0", VA = "0x18272B5B0")]
|
||||
private uint rotl(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD3 RID: 48083 RVA: 0x0029696C File Offset: 0x00294B6C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BBD3")]
|
||||
[Address(RVA = "0x272A980", Offset = "0x2729980", VA = "0x18272A980")]
|
||||
static NoekeonEngine()
|
||||
{
|
||||
uint[] array = new uint[17];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AF3E960D2F0572119C78CAF04B900985A299000E).FieldHandle);
|
||||
NoekeonEngine.roundConstants = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007667 RID: 30311
|
||||
[Token(Token = "0x4007667")]
|
||||
private const int GenericSize = 16;
|
||||
|
||||
// Token: 0x04007668 RID: 30312
|
||||
[Token(Token = "0x4007668")]
|
||||
private static readonly uint[] nullVector = new uint[4];
|
||||
|
||||
// Token: 0x04007669 RID: 30313
|
||||
[Token(Token = "0x4007669")]
|
||||
private static readonly uint[] roundConstants;
|
||||
|
||||
// Token: 0x0400766A RID: 30314
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400766A")]
|
||||
private uint[] state;
|
||||
|
||||
// Token: 0x0400766B RID: 30315
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400766B")]
|
||||
private uint[] subKeys;
|
||||
|
||||
// Token: 0x0400766C RID: 30316
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400766C")]
|
||||
private uint[] decryptKeys;
|
||||
|
||||
// Token: 0x0400766D RID: 30317
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400766D")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x0400766E RID: 30318
|
||||
[FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x400766E")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7A RID: 7546
|
||||
[Token(Token = "0x2001D7A")]
|
||||
public class NullEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BBD4 RID: 48084 RVA: 0x002969A0 File Offset: 0x00294BA0
|
||||
[Token(Token = "0x600BBD4")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public NullEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD5 RID: 48085 RVA: 0x002969B4 File Offset: 0x00294BB4
|
||||
[Token(Token = "0x600BBD5")]
|
||||
[Address(RVA = "0x73F650", Offset = "0x73E650", VA = "0x18073F650", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
this.initialised = true;
|
||||
}
|
||||
|
||||
// Token: 0x17001D76 RID: 7542
|
||||
// (get) Token: 0x0600BBD6 RID: 48086 RVA: 0x002969C8 File Offset: 0x00294BC8
|
||||
[Token(Token = "0x17001D76")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBD6")]
|
||||
[Address(RVA = "0x272B9B0", Offset = "0x272A9B0", VA = "0x18272B9B0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Null";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D77 RID: 7543
|
||||
// (get) Token: 0x0600BBD7 RID: 48087 RVA: 0x002969DC File Offset: 0x00294BDC
|
||||
[Token(Token = "0x17001D77")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BBD7")]
|
||||
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD8 RID: 48088 RVA: 0x002969EC File Offset: 0x00294BEC
|
||||
[Token(Token = "0x600BBD8")]
|
||||
[Address(RVA = "0x4E8690", Offset = "0x4E7690", VA = "0x1804E8690", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBD9 RID: 48089 RVA: 0x002969FC File Offset: 0x00294BFC
|
||||
[Token(Token = "0x600BBD9")]
|
||||
[Address(RVA = "0x272B860", Offset = "0x272A860", VA = "0x18272B860", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBD9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.NullEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_18:
|
||||
stloc:InvalidOperationException(var_2_22, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Null engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBDA RID: 48090 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BBDA")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0400766F RID: 30319
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400766F")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x04007670 RID: 30320
|
||||
[Token(Token = "0x4007670")]
|
||||
private const int BlockSize = 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,435 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7B RID: 7547
|
||||
[Token(Token = "0x2001D7B")]
|
||||
public class RC2Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BBDB RID: 48091 RVA: 0x00296A2C File Offset: 0x00294C2C
|
||||
[Token(Token = "0x600BBDB")]
|
||||
[Address(RVA = "0x272C9C0", Offset = "0x272B9C0", VA = "0x18272C9C0")]
|
||||
private int[] GenerateWorkingKey(byte[] key, int bits)
|
||||
{
|
||||
int[] array = new int[128];
|
||||
int num = 0;
|
||||
int num2 = key.Length;
|
||||
if (num != num2)
|
||||
{
|
||||
num++;
|
||||
byte b;
|
||||
array[0] = (int)b;
|
||||
}
|
||||
uint num3;
|
||||
if (num2 < (int)num3)
|
||||
{
|
||||
int num4 = num2 - 1;
|
||||
int num5 = array[num4];
|
||||
int length = array.Length;
|
||||
byte[] array2 = RC2Engine.piTable;
|
||||
num++;
|
||||
int num6 = array[num];
|
||||
num6 += num5;
|
||||
num2++;
|
||||
byte b2;
|
||||
array[0] = (int)b2;
|
||||
}
|
||||
byte[] array3 = RC2Engine.piTable;
|
||||
num3 -= (uint)num;
|
||||
byte b3;
|
||||
array[0] = (int)b3;
|
||||
uint num7;
|
||||
num7 -= (uint)num;
|
||||
int length2 = array.Length;
|
||||
byte[] array4 = RC2Engine.piTable;
|
||||
int num8 = array[(int)num7];
|
||||
byte b4;
|
||||
array[0] = (int)b4;
|
||||
int[] array5 = new int[64];
|
||||
int length3 = array5.Length;
|
||||
if (num != length3)
|
||||
{
|
||||
int length4 = array.Length;
|
||||
num++;
|
||||
num += 2;
|
||||
int num9;
|
||||
array5[0] = num9;
|
||||
}
|
||||
return array5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBDC RID: 48092 RVA: 0x00296B1C File Offset: 0x00294D1C
|
||||
[Token(Token = "0x600BBDC")]
|
||||
[Address(RVA = "0x272CDA0", Offset = "0x272BDA0", VA = "0x18272CDA0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBDC)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_56:
|
||||
stloc:ArgumentException(var_12_67, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC2 init - "), ldloc:string(var_11))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBDD RID: 48093 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BBDD")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "11")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x17001D78 RID: 7544
|
||||
// (get) Token: 0x0600BBDE RID: 48094 RVA: 0x00296B94 File Offset: 0x00294D94
|
||||
[Token(Token = "0x17001D78")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBDE")]
|
||||
[Address(RVA = "0x272D160", Offset = "0x272C160", VA = "0x18272D160", Slot = "12")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D79 RID: 7545
|
||||
// (get) Token: 0x0600BBDF RID: 48095 RVA: 0x00296BA8 File Offset: 0x00294DA8
|
||||
[Token(Token = "0x17001D79")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BBDF")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "13")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE0 RID: 48096 RVA: 0x00296BB8 File Offset: 0x00294DB8
|
||||
[Token(Token = "0x600BBE0")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "14")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE1 RID: 48097 RVA: 0x00296BC8 File Offset: 0x00294DC8
|
||||
[Token(Token = "0x600BBE1")]
|
||||
[Address(RVA = "0x272CFD0", Offset = "0x272BFD0", VA = "0x18272CFD0", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBE1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_25:
|
||||
stloc:InvalidOperationException(var_1_2F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RC2 engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE2 RID: 48098 RVA: 0x00296C04 File Offset: 0x00294E04
|
||||
[Token(Token = "0x600BBE2")]
|
||||
[Address(RVA = "0x272D0D0", Offset = "0x272C0D0", VA = "0x18272D0D0")]
|
||||
private int RotateWordLeft(int x, int y)
|
||||
{
|
||||
uint num;
|
||||
num -= (uint)y;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE3 RID: 48099 RVA: 0x00296C18 File Offset: 0x00294E18
|
||||
[Token(Token = "0x600BBE3")]
|
||||
[Address(RVA = "0x272C1B0", Offset = "0x272B1B0", VA = "0x18272C1B0")]
|
||||
private void EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
b4 += b2;
|
||||
int num = inOff + 1;
|
||||
int[] array = this.workingKey;
|
||||
byte b5;
|
||||
byte b6;
|
||||
b5 += b6;
|
||||
int i = 0;
|
||||
int length2 = array.Length;
|
||||
b6 = b;
|
||||
int num2 = array[i];
|
||||
num2 += (int)b6;
|
||||
b6 = b3;
|
||||
num2 += (int)b5;
|
||||
b6 = (byte)((int)b6 + num2);
|
||||
b5 = b6;
|
||||
b6 += b6;
|
||||
b6 = b5;
|
||||
int num3;
|
||||
num3 += (int)b6;
|
||||
b6 = b5;
|
||||
num3 += (int)b4;
|
||||
b6 = (byte)((int)b6 + num3);
|
||||
b4 = b6;
|
||||
b6 = b4;
|
||||
int num4;
|
||||
num4 += (int)b6;
|
||||
b6 = b5;
|
||||
num4 += (int)b3;
|
||||
b6 = (byte)((int)b6 + num4);
|
||||
b3 = b6;
|
||||
i += 3;
|
||||
int num5 = array[i];
|
||||
b6 = b3;
|
||||
i += 4;
|
||||
num5 += (int)b6;
|
||||
b6 = b4;
|
||||
num5 += (int)b;
|
||||
b6 = (byte)((int)b6 + num5);
|
||||
b = b6;
|
||||
while (i <= 16)
|
||||
{
|
||||
}
|
||||
b6 = b;
|
||||
int num6 = array[(int)b6];
|
||||
num6 += (int)b5;
|
||||
b4 = b3;
|
||||
b6 = b;
|
||||
uint num8;
|
||||
int num7 = array[(int)num8];
|
||||
num7 += (int)b6;
|
||||
b6 = b3;
|
||||
num7 += num6;
|
||||
b6 = (byte)((int)b6 + num7);
|
||||
b5 = b6;
|
||||
b6 += b6;
|
||||
uint num9 = num8 + 1U;
|
||||
int num10 = array[(int)num9];
|
||||
b6 = b5;
|
||||
num10 += (int)b6;
|
||||
b6 = b;
|
||||
num10 += (int)b4;
|
||||
b6 = (byte)((int)b6 + num10);
|
||||
b4 = b6;
|
||||
int num11 = array[(int)b6];
|
||||
b6 = b4;
|
||||
num11 += (int)b6;
|
||||
b6 = b4;
|
||||
num11 += (int)b3;
|
||||
b6 = (byte)((int)b6 + num11);
|
||||
b3 = b6;
|
||||
num8 += (uint)3;
|
||||
int num12 = array[(int)num8];
|
||||
b6 = b3;
|
||||
num8 += (uint)4;
|
||||
num12 += (int)b6;
|
||||
b6 = b4;
|
||||
num12 += (int)b;
|
||||
b6 = (byte)((int)b6 + num12);
|
||||
b = b6;
|
||||
b6 = b;
|
||||
while (num8 <= (uint)40)
|
||||
{
|
||||
}
|
||||
int num13 = array[(int)b6];
|
||||
num13 += (int)b5;
|
||||
b4 = b3;
|
||||
b6 = b;
|
||||
uint num15;
|
||||
int num14 = array[(int)num15];
|
||||
num14 += (int)b6;
|
||||
b6 = b3;
|
||||
num14 += num13;
|
||||
b6 = (byte)((int)b6 + num14);
|
||||
b5 = b6;
|
||||
b6 += b6;
|
||||
uint num16 = num15 + 1U;
|
||||
int num17 = array[(int)num16];
|
||||
b6 = b5;
|
||||
num17 += (int)b6;
|
||||
b6 = b;
|
||||
num17 += (int)b4;
|
||||
b6 = (byte)((int)b6 + num17);
|
||||
b4 = b6;
|
||||
int num18 = array[(int)b6];
|
||||
b6 = b4;
|
||||
num18 += (int)b6;
|
||||
b6 = b5;
|
||||
num18 += (int)b3;
|
||||
b6 = (byte)((int)b6 + num18);
|
||||
b3 = b6;
|
||||
num15 += (uint)3;
|
||||
int num19 = array[(int)num15];
|
||||
b6 = b3;
|
||||
num15 += (uint)4;
|
||||
num19 += (int)b6;
|
||||
b6 = b4;
|
||||
num19 += (int)b;
|
||||
b6 = (byte)((int)b6 + num19);
|
||||
b = b6;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE4 RID: 48100 RVA: 0x00296ECC File Offset: 0x002950CC
|
||||
[Token(Token = "0x600BBE4")]
|
||||
[Address(RVA = "0x272B9E0", Offset = "0x272A9E0", VA = "0x18272B9E0")]
|
||||
private void DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
b4 += b2;
|
||||
int num = inOff + 1;
|
||||
int[] array = this.workingKey;
|
||||
byte b5;
|
||||
byte b6;
|
||||
b5 += b6;
|
||||
int length2 = array.Length;
|
||||
b = b3;
|
||||
b6 = b3;
|
||||
b -= b6;
|
||||
b6 = b4;
|
||||
b -= b6;
|
||||
b3 = b;
|
||||
b = b4;
|
||||
b6 = b4;
|
||||
b3 -= b6;
|
||||
b6 = b4;
|
||||
b3 -= b6;
|
||||
uint num3;
|
||||
uint num2 = num3 + 1U;
|
||||
b4 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b5 -= b5;
|
||||
b5 = b3;
|
||||
b5 -= b5;
|
||||
while (num3 >= (uint)44)
|
||||
{
|
||||
}
|
||||
b5 = b3;
|
||||
b5 = b4;
|
||||
b5 = b;
|
||||
b = b3;
|
||||
b5 = b3;
|
||||
b -= b5;
|
||||
b5 = b4;
|
||||
b -= b5;
|
||||
b3 = b;
|
||||
b = b4;
|
||||
b5 = b4;
|
||||
b3 -= b5;
|
||||
b5 = b4;
|
||||
b3 -= b5;
|
||||
uint num5;
|
||||
uint num4 = num5 + 1U;
|
||||
b4 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b5 -= b5;
|
||||
b5 = b3;
|
||||
b5 -= b5;
|
||||
while (num5 >= (uint)20)
|
||||
{
|
||||
}
|
||||
b5 = b3;
|
||||
b5 = b4;
|
||||
b5 = b;
|
||||
b = b3;
|
||||
b5 = b3;
|
||||
b -= b5;
|
||||
b5 = b4;
|
||||
b -= b5;
|
||||
b3 = b;
|
||||
b = b4;
|
||||
b5 = b4;
|
||||
b3 -= b5;
|
||||
b3 -= b5;
|
||||
uint num7;
|
||||
uint num6 = num7 + 1U;
|
||||
b4 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b4 -= b5;
|
||||
b5 = b;
|
||||
b5 -= b5;
|
||||
b5 = b3;
|
||||
b5 -= b5;
|
||||
array[0] = (int)b5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE5 RID: 48101 RVA: 0x00297044 File Offset: 0x00295244
|
||||
[Token(Token = "0x600BBE5")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RC2Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE6 RID: 48102 RVA: 0x00297058 File Offset: 0x00295258
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BBE6")]
|
||||
[Address(RVA = "0x272D100", Offset = "0x272C100", VA = "0x18272D100")]
|
||||
static RC2Engine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.0392525BCB01691D1F319D89F2C12BF93A478467).FieldHandle);
|
||||
RC2Engine.piTable = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007671 RID: 30321
|
||||
[Token(Token = "0x4007671")]
|
||||
private static readonly byte[] piTable;
|
||||
|
||||
// Token: 0x04007672 RID: 30322
|
||||
[Token(Token = "0x4007672")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x04007673 RID: 30323
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007673")]
|
||||
private int[] workingKey;
|
||||
|
||||
// Token: 0x04007674 RID: 30324
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007674")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7C RID: 7548
|
||||
[Token(Token = "0x2001D7C")]
|
||||
public class RC2WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600BBE7 RID: 48103 RVA: 0x00297084 File Offset: 0x00295284
|
||||
[Token(Token = "0x600BBE7")]
|
||||
[Address(RVA = "0x272D2F0", Offset = "0x272C2F0", VA = "0x18272D2F0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
this.forWrapping = forWrapping;
|
||||
RC2Engine rc2Engine;
|
||||
rc2Engine.Reset();
|
||||
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(rc2Engine);
|
||||
this.engine = cbcBlockCipher;
|
||||
if (parameters != 0 && parameters != 0)
|
||||
{
|
||||
int num = 0;
|
||||
if (parameters == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
this.sr = num;
|
||||
}
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
this.sr = secureRandom;
|
||||
if (parameters == 0 || parameters == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (forWrapping && parameters != 0)
|
||||
{
|
||||
this.paramPlusIV = parameters;
|
||||
ParametersWithIV parametersWithIV = this.paramPlusIV;
|
||||
byte[] array;
|
||||
this.iv = array;
|
||||
ICipherParameters cipherParameters = parametersWithIV.parameters;
|
||||
if (array.Length == 8)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.parameters = parameters;
|
||||
if (this.forWrapping != parameters)
|
||||
{
|
||||
byte[] array2 = new byte[8];
|
||||
SecureRandom secureRandom2 = this.sr;
|
||||
this.iv = array2;
|
||||
double num2 = secureRandom2.NextDouble();
|
||||
ICipherParameters cipherParameters2 = this.parameters;
|
||||
byte[] array3 = this.iv;
|
||||
ParametersWithIV parametersWithIV2 = new ParametersWithIV(cipherParameters2, array3);
|
||||
this.paramPlusIV = parametersWithIV2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D7A RID: 7546
|
||||
// (get) Token: 0x0600BBE8 RID: 48104 RVA: 0x00297170 File Offset: 0x00295370
|
||||
[Token(Token = "0x17001D7A")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBE8")]
|
||||
[Address(RVA = "0x272E1C0", Offset = "0x272D1C0", VA = "0x18272E1C0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RC2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBE9 RID: 48105 RVA: 0x00297184 File Offset: 0x00295384
|
||||
[Token(Token = "0x600BBE9")]
|
||||
[Address(RVA = "0x272DC30", Offset = "0x272CC30", VA = "0x18272DC30", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBE9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_27B:
|
||||
stloc:InvalidOperationException(var_52_285, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not multiple of block length")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBEA RID: 48106 RVA: 0x00297418 File Offset: 0x00295618
|
||||
[Token(Token = "0x600BBEA")]
|
||||
[Address(RVA = "0x272D5E0", Offset = "0x272C5E0", VA = "0x18272D5E0", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBEA)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC2WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_29E:
|
||||
stloc:InvalidOperationException(var_58_2A8, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not set for unwrapping")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBEB RID: 48107 RVA: 0x002976D0 File Offset: 0x002958D0
|
||||
[Token(Token = "0x600BBEB")]
|
||||
[Address(RVA = "0x272D190", Offset = "0x272C190", VA = "0x18272D190")]
|
||||
private byte[] CalculateCmsKeyChecksum(byte[] key)
|
||||
{
|
||||
IDigest digest = this.sha1;
|
||||
int length = key.Length;
|
||||
IDigest digest2 = this.sha1;
|
||||
byte[] array = new byte[8];
|
||||
byte[] array2 = this.digest;
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Array.Copy(array2, num2, array, num, (int)num3);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBEC RID: 48108 RVA: 0x00297720 File Offset: 0x00295920
|
||||
[Token(Token = "0x600BBEC")]
|
||||
[Address(RVA = "0x272D270", Offset = "0x272C270", VA = "0x18272D270")]
|
||||
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
|
||||
{
|
||||
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
|
||||
}
|
||||
|
||||
// Token: 0x0600BBED RID: 48109 RVA: 0x0029773C File Offset: 0x0029593C
|
||||
[Token(Token = "0x600BBED")]
|
||||
[Address(RVA = "0x272E150", Offset = "0x272D150", VA = "0x18272E150")]
|
||||
public RC2WrapEngine()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
this.sha1 = sha1Digest;
|
||||
byte[] array = new byte[20];
|
||||
this.digest = array;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600BBEE RID: 48110 RVA: 0x0029776C File Offset: 0x0029596C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BBEE")]
|
||||
[Address(RVA = "0x272E0F0", Offset = "0x272D0F0", VA = "0x18272E0F0")]
|
||||
static RC2WrapEngine()
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
|
||||
RC2WrapEngine.IV2 = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007675 RID: 30325
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007675")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x04007676 RID: 30326
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007676")]
|
||||
private ICipherParameters parameters;
|
||||
|
||||
// Token: 0x04007677 RID: 30327
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007677")]
|
||||
private ParametersWithIV paramPlusIV;
|
||||
|
||||
// Token: 0x04007678 RID: 30328
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007678")]
|
||||
private byte[] iv;
|
||||
|
||||
// Token: 0x04007679 RID: 30329
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007679")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400767A RID: 30330
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400767A")]
|
||||
private SecureRandom sr;
|
||||
|
||||
// Token: 0x0400767B RID: 30331
|
||||
[Token(Token = "0x400767B")]
|
||||
private static readonly byte[] IV2;
|
||||
|
||||
// Token: 0x0400767C RID: 30332
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400767C")]
|
||||
private IDigest sha1;
|
||||
|
||||
// Token: 0x0400767D RID: 30333
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400767D")]
|
||||
private byte[] digest;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7D RID: 7549
|
||||
[Token(Token = "0x2001D7D")]
|
||||
public class RC4Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600BBEF RID: 48111 RVA: 0x00297794 File Offset: 0x00295994
|
||||
[Token(Token = "0x600BBEF")]
|
||||
[Address(RVA = "0x272E1F0", Offset = "0x272D1F0", VA = "0x18272E1F0", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBEF)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC4Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_25:
|
||||
stloc:ArgumentException(var_5_36, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC4 init - "), ldloc:string(var_4))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D7B RID: 7547
|
||||
// (get) Token: 0x0600BBF0 RID: 48112 RVA: 0x002977D8 File Offset: 0x002959D8
|
||||
[Token(Token = "0x17001D7B")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBF0")]
|
||||
[Address(RVA = "0x272E9D0", Offset = "0x272D9D0", VA = "0x18272E9D0", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBF1 RID: 48113 RVA: 0x002977EC File Offset: 0x002959EC
|
||||
[Token(Token = "0x600BBF1")]
|
||||
[Address(RVA = "0x272E600", Offset = "0x272D600", VA = "0x18272E600", Slot = "11")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
int num = this.x;
|
||||
byte[] array = this.engineState;
|
||||
num++;
|
||||
this.x = num;
|
||||
byte b;
|
||||
this.y = (int)b;
|
||||
int length = array.Length;
|
||||
byte[] array2 = this.engineState;
|
||||
int num2 = this.y;
|
||||
byte[] array3 = this.engineState;
|
||||
int num3 = this.x;
|
||||
int length2 = array3.Length;
|
||||
int num4 = this.y;
|
||||
byte b2;
|
||||
byte b3;
|
||||
b2 += b3;
|
||||
b3 = b2;
|
||||
byte b4;
|
||||
return b4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBF2 RID: 48114 RVA: 0x00297864 File Offset: 0x00295A64
|
||||
[Token(Token = "0x600BBF2")]
|
||||
[Address(RVA = "0x272E380", Offset = "0x272D380", VA = "0x18272E380", Slot = "12")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
|
||||
{
|
||||
Check.DataLength(input, inOff, inOff, "input buffer too short");
|
||||
if (length > 0)
|
||||
{
|
||||
int num = this.x;
|
||||
byte[] array = this.engineState;
|
||||
num++;
|
||||
this.x = num;
|
||||
byte b;
|
||||
this.y = (int)b;
|
||||
int length2 = array.Length;
|
||||
byte[] array2 = this.engineState;
|
||||
int num2 = this.y;
|
||||
byte[] array3 = this.engineState;
|
||||
int num3 = this.x;
|
||||
int length3 = array3.Length;
|
||||
int num4 = this.y;
|
||||
byte b2;
|
||||
byte b3;
|
||||
b2 += b3;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBF3 RID: 48115 RVA: 0x002978EC File Offset: 0x00295AEC
|
||||
[Token(Token = "0x600BBF3")]
|
||||
[Address(RVA = "0x272E5F0", Offset = "0x272D5F0", VA = "0x18272E5F0", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
this.SetKey(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600BBF4 RID: 48116 RVA: 0x00297908 File Offset: 0x00295B08
|
||||
[Token(Token = "0x600BBF4")]
|
||||
[Address(RVA = "0x272E770", Offset = "0x272D770", VA = "0x18272E770")]
|
||||
private void SetKey(byte[] keyBytes)
|
||||
{
|
||||
int num = 0;
|
||||
this.workingKey = keyBytes;
|
||||
this.x = num;
|
||||
if (this.engineState == num)
|
||||
{
|
||||
byte[] array = new byte[RC4Engine.STATE_LENGTH];
|
||||
this.engineState = array;
|
||||
}
|
||||
byte[] array2 = this.engineState;
|
||||
if (num < "{il2cpp array field local5->}")
|
||||
{
|
||||
int length = this.engineState.Length;
|
||||
byte b = (byte)((int)b + num);
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte[] array3 = this.engineState;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBF5 RID: 48117 RVA: 0x0029797C File Offset: 0x00295B7C
|
||||
[Token(Token = "0x600BBF5")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RC4Engine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400767E RID: 30334
|
||||
[Token(Token = "0x400767E")]
|
||||
private static readonly int STATE_LENGTH;
|
||||
|
||||
// Token: 0x0400767F RID: 30335
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400767F")]
|
||||
private byte[] engineState;
|
||||
|
||||
// Token: 0x04007680 RID: 30336
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007680")]
|
||||
private int x;
|
||||
|
||||
// Token: 0x04007681 RID: 30337
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x4007681")]
|
||||
private int y;
|
||||
|
||||
// Token: 0x04007682 RID: 30338
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007682")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+258
@@ -0,0 +1,258 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7E RID: 7550
|
||||
[Token(Token = "0x2001D7E")]
|
||||
public class RC532Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BBF7 RID: 48119 RVA: 0x002979A0 File Offset: 0x00295BA0
|
||||
[Token(Token = "0x600BBF7")]
|
||||
[Address(RVA = "0x272F6F0", Offset = "0x272E6F0", VA = "0x18272F6F0")]
|
||||
public RC532Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x17001D7C RID: 7548
|
||||
// (get) Token: 0x0600BBF8 RID: 48120 RVA: 0x002979C0 File Offset: 0x00295BC0
|
||||
[Token(Token = "0x17001D7C")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BBF8")]
|
||||
[Address(RVA = "0x272F710", Offset = "0x272E710", VA = "0x18272F710", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-32";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D7D RID: 7549
|
||||
// (get) Token: 0x0600BBF9 RID: 48121 RVA: 0x002979D4 File Offset: 0x00295BD4
|
||||
[Token(Token = "0x17001D7D")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BBF9")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFA RID: 48122 RVA: 0x002979E4 File Offset: 0x00295BE4
|
||||
[Token(Token = "0x600BBFA")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFB RID: 48123 RVA: 0x002979F4 File Offset: 0x00295BF4
|
||||
[Token(Token = "0x600BBFB")]
|
||||
[Address(RVA = "0x272F0D0", Offset = "0x272E0D0", VA = "0x18272F0D0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BBFB)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC532Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4A:
|
||||
stloc:ArgumentException(var_8_5B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC532 init - "), ldloc:string(var_7))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFC RID: 48124 RVA: 0x00297A60 File Offset: 0x00295C60
|
||||
[Token(Token = "0x600BBFC")]
|
||||
[Address(RVA = "0x272F300", Offset = "0x272E300", VA = "0x18272F300", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
if (this.forEncryption)
|
||||
{
|
||||
int num;
|
||||
return num;
|
||||
}
|
||||
int num2;
|
||||
return num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFD RID: 48125 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BBFD")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFE RID: 48126 RVA: 0x00297A7C File Offset: 0x00295C7C
|
||||
[Token(Token = "0x600BBFE")]
|
||||
[Address(RVA = "0x272F370", Offset = "0x272E370", VA = "0x18272F370")]
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
int num = key.Length;
|
||||
num += 3;
|
||||
int[] array = new int[key];
|
||||
int num2 = 0;
|
||||
int length = key.Length;
|
||||
if (num2 != length)
|
||||
{
|
||||
num2 += key;
|
||||
num2 -= key;
|
||||
num2++;
|
||||
}
|
||||
int[] array2 = new int[this._noRounds];
|
||||
this._S = array2;
|
||||
int p = RC532Engine.P32;
|
||||
array2[0] = p;
|
||||
int[] s = this._S;
|
||||
uint num3;
|
||||
int[] s2;
|
||||
if (num3 < (uint)s.Length)
|
||||
{
|
||||
int length2 = s.Length;
|
||||
uint num4 = num3 - 1U;
|
||||
int num5 = s[(int)num4];
|
||||
int length3 = s.Length;
|
||||
num3 += (uint)1;
|
||||
int num6 = RC532Engine.Q32;
|
||||
num6 += num5;
|
||||
s[0] = num6;
|
||||
s2 = this._S;
|
||||
}
|
||||
int length4 = s2.Length;
|
||||
if (array.Length > length4)
|
||||
{
|
||||
}
|
||||
if (num3 > (uint)0)
|
||||
{
|
||||
s2[0] = 0;
|
||||
int num7 = array[num2];
|
||||
num7 += 0;
|
||||
num7 += num2;
|
||||
array[0] = num7;
|
||||
int[] s3 = this._S;
|
||||
num2++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BBFF RID: 48127 RVA: 0x00297B8C File Offset: 0x00295D8C
|
||||
[Token(Token = "0x600BBFF")]
|
||||
[Address(RVA = "0x272ED60", Offset = "0x272DD60", VA = "0x18272ED60")]
|
||||
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = this.BytesToWord(input, inOff);
|
||||
int[] s = this._S;
|
||||
int length = s.Length;
|
||||
int num2 = s[0];
|
||||
num2 += num;
|
||||
int length2 = input.Length;
|
||||
byte b = input[input];
|
||||
num = inOff + 7;
|
||||
int noRounds = this._noRounds;
|
||||
uint num4;
|
||||
uint num3 = num4 + 1U;
|
||||
byte b2;
|
||||
b = b2;
|
||||
int num5 = s[(int)num3];
|
||||
num5 += (int)b;
|
||||
uint num6 = num3 + 1U;
|
||||
num4 += (uint)1;
|
||||
num3 += (uint)2;
|
||||
while (num4 <= (uint)noRounds)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC00 RID: 48128 RVA: 0x00297C18 File Offset: 0x00295E18
|
||||
[Token(Token = "0x600BC00")]
|
||||
[Address(RVA = "0x272EA00", Offset = "0x272DA00", VA = "0x18272EA00")]
|
||||
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = this.BytesToWord(input, inOff);
|
||||
int length = input.Length;
|
||||
num = inOff + 7;
|
||||
int i = this._noRounds;
|
||||
int length2 = this._S.Length;
|
||||
byte b2;
|
||||
byte b = b2 + 1;
|
||||
while (i >= 1)
|
||||
{
|
||||
}
|
||||
int[] s = this._S;
|
||||
byte b3;
|
||||
this._S[0] = (int)b3;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC01 RID: 48129 RVA: 0x00297C78 File Offset: 0x00295E78
|
||||
[Token(Token = "0x600BC01")]
|
||||
[Address(RVA = "0x272F330", Offset = "0x272E330", VA = "0x18272F330")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC02 RID: 48130 RVA: 0x00297C88 File Offset: 0x00295E88
|
||||
[Token(Token = "0x600BC02")]
|
||||
[Address(RVA = "0x272F350", Offset = "0x272E350", VA = "0x18272F350")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC03 RID: 48131 RVA: 0x00297C98 File Offset: 0x00295E98
|
||||
[Token(Token = "0x600BC03")]
|
||||
[Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int length = src.Length;
|
||||
int num = srcOff + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC04 RID: 48132 RVA: 0x00297CB8 File Offset: 0x00295EB8
|
||||
[Token(Token = "0x600BC04")]
|
||||
[Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
int num = dstOff + 1;
|
||||
}
|
||||
|
||||
// Token: 0x04007683 RID: 30339
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007683")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x04007684 RID: 30340
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007684")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x04007685 RID: 30341
|
||||
[Token(Token = "0x4007685")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x04007686 RID: 30342
|
||||
[Token(Token = "0x4007686")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x04007687 RID: 30343
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007687")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+310
@@ -0,0 +1,310 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D7F RID: 7551
|
||||
[Token(Token = "0x2001D7F")]
|
||||
public class RC564Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC06 RID: 48134 RVA: 0x00297CE0 File Offset: 0x00295EE0
|
||||
[Token(Token = "0x600BC06")]
|
||||
[Address(RVA = "0x272F6F0", Offset = "0x272E6F0", VA = "0x18272F6F0")]
|
||||
public RC564Engine()
|
||||
{
|
||||
this.Reset();
|
||||
this._noRounds = (int)((ulong)12L);
|
||||
}
|
||||
|
||||
// Token: 0x17001D7E RID: 7550
|
||||
// (get) Token: 0x0600BC07 RID: 48135 RVA: 0x00297D00 File Offset: 0x00295F00
|
||||
[Token(Token = "0x17001D7E")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC07")]
|
||||
[Address(RVA = "0x2730790", Offset = "0x272F790", VA = "0x182730790", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC5-64";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D7F RID: 7551
|
||||
// (get) Token: 0x0600BC08 RID: 48136 RVA: 0x00297D14 File Offset: 0x00295F14
|
||||
[Token(Token = "0x17001D7F")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BC08")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC09 RID: 48137 RVA: 0x00297D24 File Offset: 0x00295F24
|
||||
[Token(Token = "0x600BC09")]
|
||||
[Address(RVA = "0x272FE70", Offset = "0x272EE70", VA = "0x18272FE70", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
int num = RC564Engine.bytesPerWord;
|
||||
return num + num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0A RID: 48138 RVA: 0x00297D3C File Offset: 0x00295F3C
|
||||
[Token(Token = "0x600BC0A")]
|
||||
[Address(RVA = "0x272FED0", Offset = "0x272EED0", VA = "0x18272FED0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC0A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC564Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_35:
|
||||
stloc:ArgumentException(var_5_46, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC564 init - "), ldloc:string(var_4))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0B RID: 48139 RVA: 0x00297D90 File Offset: 0x00295F90
|
||||
[Token(Token = "0x600BC0B")]
|
||||
[Address(RVA = "0x2730060", Offset = "0x272F060", VA = "0x182730060", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
if (this.forEncryption)
|
||||
{
|
||||
int num;
|
||||
return num;
|
||||
}
|
||||
int num2;
|
||||
return num2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0C RID: 48140 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC0C")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0D RID: 48141 RVA: 0x00297DAC File Offset: 0x00295FAC
|
||||
[Token(Token = "0x600BC0D")]
|
||||
[Address(RVA = "0x27301B0", Offset = "0x272F1B0", VA = "0x1827301B0")]
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
int num = RC564Engine.bytesPerWord;
|
||||
int num2 = key.Length;
|
||||
num2 += num;
|
||||
long[] array = new long[num2];
|
||||
int num3 = 0;
|
||||
if (num3 != key.Length)
|
||||
{
|
||||
num3++;
|
||||
}
|
||||
long[] array2 = new long[this._noRounds];
|
||||
this._S = array2;
|
||||
long p = RC564Engine.P64;
|
||||
array2[0] = p;
|
||||
long[] s = this._S;
|
||||
uint num4;
|
||||
long[] s2;
|
||||
if (num4 < (uint)s.Length)
|
||||
{
|
||||
int length = s.Length;
|
||||
uint num5 = num4 - 1U;
|
||||
long num6 = s[(int)num5];
|
||||
int length2 = s.Length;
|
||||
num4 += (uint)1;
|
||||
long num7 = RC564Engine.Q64;
|
||||
num7 += num6;
|
||||
s[0] = num7;
|
||||
s2 = this._S;
|
||||
}
|
||||
int length3 = s2.Length;
|
||||
if (array.Length > length3)
|
||||
{
|
||||
}
|
||||
if (s2 > 0)
|
||||
{
|
||||
long num8 = s2[num3];
|
||||
num8 += (long)num3;
|
||||
num8 += (long)num3;
|
||||
int num9 = RC564Engine.wordSize;
|
||||
int num10 = num9 - 1;
|
||||
num9 -= num10;
|
||||
s2[0] = num8;
|
||||
long num11 = array[num3];
|
||||
num11 += num8;
|
||||
num11 += (long)num3;
|
||||
int num12 = RC564Engine.wordSize;
|
||||
int num13 = num12 - 1;
|
||||
num12 -= num13;
|
||||
array[0] = num11;
|
||||
num3++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0E RID: 48142 RVA: 0x00297EF8 File Offset: 0x002960F8
|
||||
[Token(Token = "0x600BC0E")]
|
||||
[Address(RVA = "0x272FAF0", Offset = "0x272EAF0", VA = "0x18272FAF0")]
|
||||
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
long num = this.BytesToWord(input, inOff);
|
||||
long num2 = this._S[0];
|
||||
num2 += num;
|
||||
int num3 = RC564Engine.bytesPerWord;
|
||||
num3 += inOff;
|
||||
long num4 = this.BytesToWord(input, num3);
|
||||
long num5 = this._S[1];
|
||||
num5 += num4;
|
||||
uint num7;
|
||||
uint num6 = num7 + 1U;
|
||||
long[] s = this._S;
|
||||
int num8 = RC564Engine.wordSize;
|
||||
int num9 = num8 - 1;
|
||||
num8 -= num9;
|
||||
long[] s2 = this._S;
|
||||
uint num10 = num6 + 1U;
|
||||
num7 += (uint)1;
|
||||
num6 += (uint)2;
|
||||
int num11 = RC564Engine.wordSize;
|
||||
int num12 = num11 - 1;
|
||||
num11 -= num12;
|
||||
while (num7 <= (uint)this._noRounds)
|
||||
{
|
||||
}
|
||||
int num13 = 0;
|
||||
int num14 = RC564Engine.bytesPerWord;
|
||||
if (num13 < num14)
|
||||
{
|
||||
num13++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC0F RID: 48143 RVA: 0x00297FCC File Offset: 0x002961CC
|
||||
[Token(Token = "0x600BC0F")]
|
||||
[Address(RVA = "0x272F800", Offset = "0x272E800", VA = "0x18272F800")]
|
||||
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
long num = this.BytesToWord(input, inOff);
|
||||
int num2 = RC564Engine.bytesPerWord;
|
||||
num2 += inOff;
|
||||
long num3 = this.BytesToWord(input, num2);
|
||||
int i = this._noRounds;
|
||||
long[] s = this._S;
|
||||
int num4 = RC564Engine.wordSize;
|
||||
int num5 = num4 - 1;
|
||||
num4 -= num5;
|
||||
long[] s2 = this._S;
|
||||
int num6 = RC564Engine.wordSize;
|
||||
int num7 = num6 - 1;
|
||||
num6 -= num7;
|
||||
while (i >= 1)
|
||||
{
|
||||
}
|
||||
long[] s3 = this._S;
|
||||
long num8 = this._S[1];
|
||||
num3 -= num8;
|
||||
num = num3;
|
||||
int num9 = RC564Engine.bytesPerWord;
|
||||
this.WordToBytes(num, outBytes, num9);
|
||||
int num10 = RC564Engine.bytesPerWord;
|
||||
return num10 + num10;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC10 RID: 48144 RVA: 0x00298088 File Offset: 0x00296288
|
||||
[Token(Token = "0x600BC10")]
|
||||
[Address(RVA = "0x2730090", Offset = "0x272F090", VA = "0x182730090")]
|
||||
private long RotateLeft(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC11 RID: 48145 RVA: 0x002980A8 File Offset: 0x002962A8
|
||||
[Token(Token = "0x600BC11")]
|
||||
[Address(RVA = "0x2730120", Offset = "0x272F120", VA = "0x182730120")]
|
||||
private long RotateRight(long x, long y)
|
||||
{
|
||||
int num = RC564Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC12 RID: 48146 RVA: 0x002980C8 File Offset: 0x002962C8
|
||||
[Token(Token = "0x600BC12")]
|
||||
[Address(RVA = "0x272F740", Offset = "0x272E740", VA = "0x18272F740")]
|
||||
private long BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
num += (int)b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC13 RID: 48147 RVA: 0x002980E8 File Offset: 0x002962E8
|
||||
[Token(Token = "0x600BC13")]
|
||||
[Address(RVA = "0x2730640", Offset = "0x272F640", VA = "0x182730640")]
|
||||
private void WordToBytes(long word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BC14 RID: 48148 RVA: 0x002980FC File Offset: 0x002962FC
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BC14")]
|
||||
[Address(RVA = "0x2730700", Offset = "0x272F700", VA = "0x182730700")]
|
||||
static RC564Engine()
|
||||
{
|
||||
ulong num;
|
||||
RC564Engine.P64 = (long)num;
|
||||
ulong num2;
|
||||
RC564Engine.Q64 = (long)num2;
|
||||
}
|
||||
|
||||
// Token: 0x04007688 RID: 30344
|
||||
[Token(Token = "0x4007688")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x04007689 RID: 30345
|
||||
[Token(Token = "0x4007689")]
|
||||
private static readonly int bytesPerWord = RC564Engine.wordSize;
|
||||
|
||||
// Token: 0x0400768A RID: 30346
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400768A")]
|
||||
private int _noRounds;
|
||||
|
||||
// Token: 0x0400768B RID: 30347
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400768B")]
|
||||
private long[] _S;
|
||||
|
||||
// Token: 0x0400768C RID: 30348
|
||||
[Token(Token = "0x400768C")]
|
||||
private static readonly long P64;
|
||||
|
||||
// Token: 0x0400768D RID: 30349
|
||||
[Token(Token = "0x400768D")]
|
||||
private static readonly long Q64;
|
||||
|
||||
// Token: 0x0400768E RID: 30350
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400768E")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,333 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D80 RID: 7552
|
||||
[Token(Token = "0x2001D80")]
|
||||
public class RC6Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC15 RID: 48149 RVA: 0x00298120 File Offset: 0x00296320
|
||||
[Token(Token = "0x600BC15")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RC6Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x17001D80 RID: 7552
|
||||
// (get) Token: 0x0600BC16 RID: 48150 RVA: 0x00298134 File Offset: 0x00296334
|
||||
[Token(Token = "0x17001D80")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC16")]
|
||||
[Address(RVA = "0x2731D20", Offset = "0x2730D20", VA = "0x182731D20", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "RC6";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D81 RID: 7553
|
||||
// (get) Token: 0x0600BC17 RID: 48151 RVA: 0x00298148 File Offset: 0x00296348
|
||||
[Token(Token = "0x17001D81")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BC17")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC18 RID: 48152 RVA: 0x00298158 File Offset: 0x00296358
|
||||
[Token(Token = "0x600BC18")]
|
||||
[Address(RVA = "0x2731360", Offset = "0x2730360", VA = "0x182731360", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return RC6Engine.bytesPerWord;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC19 RID: 48153 RVA: 0x0029816C File Offset: 0x0029636C
|
||||
[Token(Token = "0x600BC19")]
|
||||
[Address(RVA = "0x27313C0", Offset = "0x27303C0", VA = "0x1827313C0", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC19)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC6Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1F:
|
||||
stloc:ArgumentException(var_4_2F, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC6 init - "), ldloc:string(var_3))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1A RID: 48154 RVA: 0x002981AC File Offset: 0x002963AC
|
||||
[Token(Token = "0x600BC1A")]
|
||||
[Address(RVA = "0x2731520", Offset = "0x2730520", VA = "0x182731520", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC1A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC6Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2C:
|
||||
stloc:InvalidOperationException(var_4_36, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RC6 engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1B RID: 48155 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC1B")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1C RID: 48156 RVA: 0x002981F0 File Offset: 0x002963F0
|
||||
[Token(Token = "0x600BC1C")]
|
||||
[Address(RVA = "0x2731730", Offset = "0x2730730", VA = "0x182731730")]
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
int num = RC6Engine.bytesPerWord;
|
||||
int num2 = key.Length;
|
||||
num2 += num;
|
||||
int[] array = new int[num2];
|
||||
num2 = key.Length;
|
||||
int num3 = array[num2];
|
||||
byte b = (byte)((int)b + num3);
|
||||
array[0] = (int)b;
|
||||
int[] array2 = new int[RC6Engine._noRounds];
|
||||
this._S = array2;
|
||||
int p = RC6Engine.P32;
|
||||
array2[0] = p;
|
||||
int[] s = this._S;
|
||||
uint num4;
|
||||
int[] s2;
|
||||
if (num4 < (uint)s.Length)
|
||||
{
|
||||
int length = s.Length;
|
||||
uint num5 = num4 - 1U;
|
||||
int num6 = s[(int)num5];
|
||||
int length2 = s.Length;
|
||||
num4 += (uint)1;
|
||||
int num7 = RC6Engine.Q32;
|
||||
num7 += num6;
|
||||
s[0] = num7;
|
||||
s2 = this._S;
|
||||
}
|
||||
int length3 = s2.Length;
|
||||
if (array.Length > length3)
|
||||
{
|
||||
}
|
||||
int num8 = 0;
|
||||
if (s2 > 0)
|
||||
{
|
||||
int num9 = s2[num8];
|
||||
num9 += num8;
|
||||
num9 += num8;
|
||||
int num10 = RC6Engine.wordSize;
|
||||
int num11 = num10 - 1;
|
||||
num10 -= num11;
|
||||
s2[0] = num9;
|
||||
int num12 = array[num8];
|
||||
num12 += num9;
|
||||
num12 += num8;
|
||||
int num13 = RC6Engine.wordSize;
|
||||
int num14 = num13 - 1;
|
||||
num13 -= num14;
|
||||
array[0] = num12;
|
||||
num8++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1D RID: 48157 RVA: 0x00298350 File Offset: 0x00296550
|
||||
[Token(Token = "0x600BC1D")]
|
||||
[Address(RVA = "0x2730C50", Offset = "0x272FC50", VA = "0x182730C50")]
|
||||
private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = this.BytesToWord(input, inOff);
|
||||
int num2 = RC6Engine.bytesPerWord;
|
||||
num2 += inOff;
|
||||
int num3 = this.BytesToWord(input, num2);
|
||||
int num4 = this.BytesToWord(input, num2);
|
||||
int num5 = RC6Engine.bytesPerWord;
|
||||
num5 += typeof(RC6Engine).TypeHandle;
|
||||
int num6 = this.BytesToWord(input, num5);
|
||||
int length = this._S.Length;
|
||||
int num7 = RC6Engine.wordSize;
|
||||
int num8 = num7 - 1;
|
||||
num7 -= num8;
|
||||
int num9 = RC6Engine.wordSize;
|
||||
int num10 = num9 - 1;
|
||||
num9 -= num10;
|
||||
int[] s = this._S;
|
||||
int num11 = RC6Engine.wordSize;
|
||||
int num12 = num11 - 1;
|
||||
num11 -= num12;
|
||||
ulong num14;
|
||||
ulong num13 = num14 + 1UL;
|
||||
int num15 = RC6Engine.wordSize;
|
||||
int num16 = num15 - 1;
|
||||
num15 -= num16;
|
||||
uint num17;
|
||||
num17 += (uint)1;
|
||||
int num18 = RC6Engine._noRounds;
|
||||
num18 += num18;
|
||||
num18 += 3;
|
||||
num3 += num16;
|
||||
int num19 = RC6Engine.bytesPerWord;
|
||||
int num20 = 0;
|
||||
int num21 = RC6Engine.bytesPerWord;
|
||||
if (num20 < num21)
|
||||
{
|
||||
num20++;
|
||||
}
|
||||
int num22 = RC6Engine.bytesPerWord;
|
||||
if (num20 < num22)
|
||||
{
|
||||
num20++;
|
||||
}
|
||||
int num23 = RC6Engine.bytesPerWord;
|
||||
if (num20 < num23)
|
||||
{
|
||||
num20++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1E RID: 48158 RVA: 0x00298488 File Offset: 0x00296688
|
||||
[Token(Token = "0x600BC1E")]
|
||||
[Address(RVA = "0x2730880", Offset = "0x272F880", VA = "0x182730880")]
|
||||
private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int num = this.BytesToWord(input, inOff);
|
||||
int num2 = RC6Engine.bytesPerWord;
|
||||
num2 += inOff;
|
||||
int num3 = this.BytesToWord(input, num2);
|
||||
int num4 = this.BytesToWord(input, num2);
|
||||
int num5 = RC6Engine.bytesPerWord;
|
||||
num5 += typeof(RC6Engine).TypeHandle;
|
||||
int num6 = this.BytesToWord(input, num5);
|
||||
int length = this._S.Length;
|
||||
int noRounds = RC6Engine._noRounds;
|
||||
num6 = num4;
|
||||
int num7 = num4 * num;
|
||||
int lgw = RC6Engine.LGW;
|
||||
num7 = this.RotateLeft(num7, lgw);
|
||||
int num8 = RC6Engine.LGW;
|
||||
int[] s = this._S;
|
||||
int num9 = inOff + 1;
|
||||
num8 = num7;
|
||||
num7 = this.RotateRight(num3, num8);
|
||||
int[] s2 = this._S;
|
||||
num3 = num6;
|
||||
int num10;
|
||||
num = this.RotateRight(num3, num10);
|
||||
int[] s3 = this._S;
|
||||
int num11 = s3[0];
|
||||
num -= num11;
|
||||
int num12 = RC6Engine.bytesPerWord;
|
||||
int num13 = RC6Engine.bytesPerWord;
|
||||
num13 += typeof(RC6Engine).TypeHandle;
|
||||
return RC6Engine.bytesPerWord;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC1F RID: 48159 RVA: 0x0029858C File Offset: 0x0029678C
|
||||
[Token(Token = "0x600BC1F")]
|
||||
[Address(RVA = "0x2731630", Offset = "0x2730630", VA = "0x182731630")]
|
||||
private int RotateLeft(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC20 RID: 48160 RVA: 0x002985AC File Offset: 0x002967AC
|
||||
[Token(Token = "0x600BC20")]
|
||||
[Address(RVA = "0x27316B0", Offset = "0x27306B0", VA = "0x1827316B0")]
|
||||
private int RotateRight(int x, int y)
|
||||
{
|
||||
int num = RC6Engine.wordSize;
|
||||
int num2 = num - 1;
|
||||
num -= num2;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC21 RID: 48161 RVA: 0x002985CC File Offset: 0x002967CC
|
||||
[Token(Token = "0x600BC21")]
|
||||
[Address(RVA = "0x27307C0", Offset = "0x272F7C0", VA = "0x1827307C0")]
|
||||
private int BytesToWord(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b = src[src];
|
||||
return num + (int)b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC22 RID: 48162 RVA: 0x002985F0 File Offset: 0x002967F0
|
||||
[Token(Token = "0x600BC22")]
|
||||
[Address(RVA = "0x2731BB0", Offset = "0x2730BB0", VA = "0x182731BB0")]
|
||||
private void WordToBytes(int word, byte[] dst, int dstOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400768F RID: 30351
|
||||
[Token(Token = "0x400768F")]
|
||||
private static readonly int wordSize;
|
||||
|
||||
// Token: 0x04007690 RID: 30352
|
||||
[Token(Token = "0x4007690")]
|
||||
private static readonly int bytesPerWord = RC6Engine.wordSize;
|
||||
|
||||
// Token: 0x04007691 RID: 30353
|
||||
[Token(Token = "0x4007691")]
|
||||
private static readonly int _noRounds;
|
||||
|
||||
// Token: 0x04007692 RID: 30354
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007692")]
|
||||
private int[] _S;
|
||||
|
||||
// Token: 0x04007693 RID: 30355
|
||||
[Token(Token = "0x4007693")]
|
||||
private static readonly int P32;
|
||||
|
||||
// Token: 0x04007694 RID: 30356
|
||||
[Token(Token = "0x4007694")]
|
||||
private static readonly int Q32;
|
||||
|
||||
// Token: 0x04007695 RID: 30357
|
||||
[Token(Token = "0x4007695")]
|
||||
private static readonly int LGW;
|
||||
|
||||
// Token: 0x04007696 RID: 30358
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007696")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D81 RID: 7553
|
||||
[Token(Token = "0x2001D81")]
|
||||
public class Rfc3211WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600BC24 RID: 48164 RVA: 0x0029861C File Offset: 0x0029681C
|
||||
[Token(Token = "0x600BC24")]
|
||||
[Address(RVA = "0x27325E0", Offset = "0x27315E0", VA = "0x1827325E0")]
|
||||
public Rfc3211WrapEngine(IBlockCipher engine)
|
||||
{
|
||||
CbcBlockCipher cbcBlockCipher = new CbcBlockCipher(engine);
|
||||
this.engine = cbcBlockCipher;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC25 RID: 48165 RVA: 0x00298640 File Offset: 0x00296840
|
||||
[Token(Token = "0x600BC25")]
|
||||
[Address(RVA = "0x2731D50", Offset = "0x2730D50", VA = "0x182731D50", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters param)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC25)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4C:
|
||||
stloc:ArgumentException(var_5_5B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("RFC3211Wrap requires an IV"), ldstr:string("param")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D82 RID: 7554
|
||||
// (get) Token: 0x0600BC26 RID: 48166 RVA: 0x002986AC File Offset: 0x002968AC
|
||||
[Token(Token = "0x17001D82")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC26")]
|
||||
[Address(RVA = "0x2732650", Offset = "0x2731650", VA = "0x182732650", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher cipher = this.engine.cipher;
|
||||
string text;
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC27 RID: 48167 RVA: 0x002986CC File Offset: 0x002968CC
|
||||
[Token(Token = "0x600BC27")]
|
||||
[Address(RVA = "0x2732330", Offset = "0x2731330", VA = "0x182732330", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC27)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_10F:
|
||||
stloc:InvalidOperationException(var_15_119, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("not set for wrapping")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC28 RID: 48168 RVA: 0x002987F4 File Offset: 0x002969F4
|
||||
[Token(Token = "0x600BC28")]
|
||||
[Address(RVA = "0x2731F30", Offset = "0x2730F30", VA = "0x182731F30", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC28)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3211WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1A1:
|
||||
stloc:InvalidCipherTextException(var_33_1AB, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("wrapped key corrupted")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x04007697 RID: 30359
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007697")]
|
||||
private CbcBlockCipher engine;
|
||||
|
||||
// Token: 0x04007698 RID: 30360
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007698")]
|
||||
private ParametersWithIV param;
|
||||
|
||||
// Token: 0x04007699 RID: 30361
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007699")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400769A RID: 30362
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400769A")]
|
||||
private SecureRandom rand;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D82 RID: 7554
|
||||
[Token(Token = "0x2001D82")]
|
||||
public class Rfc3394WrapEngine : IWrapper
|
||||
{
|
||||
// Token: 0x0600BC29 RID: 48169 RVA: 0x002989B0 File Offset: 0x00296BB0
|
||||
[Token(Token = "0x600BC29")]
|
||||
[Address(RVA = "0x2733040", Offset = "0x2732040", VA = "0x182733040")]
|
||||
public Rfc3394WrapEngine(IBlockCipher engine)
|
||||
{
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.5DBC1A420B61F594A834C83E3DDC229C8AB77FDC).FieldHandle);
|
||||
this.iv = array;
|
||||
base..ctor();
|
||||
this.engine = engine;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC2A RID: 48170 RVA: 0x002989E4 File Offset: 0x00296BE4
|
||||
[Token(Token = "0x600BC2A")]
|
||||
[Address(RVA = "0x27326C0", Offset = "0x27316C0", VA = "0x1827326C0", Slot = "8")]
|
||||
public virtual void Init(bool forWrapping, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC2A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_54:
|
||||
stloc:ArgumentException(var_8_63, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("IV length not equal to 8"), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D83 RID: 7555
|
||||
// (get) Token: 0x0600BC2B RID: 48171 RVA: 0x00298A58 File Offset: 0x00296C58
|
||||
[Token(Token = "0x17001D83")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC2B")]
|
||||
[Address(RVA = "0x27330C0", Offset = "0x27320C0", VA = "0x1827330C0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
IBlockCipher blockCipher = this.engine;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC2C RID: 48172 RVA: 0x00298A74 File Offset: 0x00296C74
|
||||
[Token(Token = "0x600BC2C")]
|
||||
[Address(RVA = "0x2732D20", Offset = "0x2731D20", VA = "0x182732D20", Slot = "10")]
|
||||
public virtual byte[] Wrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC2C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_132:
|
||||
stloc:InvalidOperationException(var_32_13C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("not set for wrapping")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC2D RID: 48173 RVA: 0x00298BC0 File Offset: 0x00296DC0
|
||||
[Token(Token = "0x600BC2D")]
|
||||
[Address(RVA = "0x2732950", Offset = "0x2731950", VA = "0x182732950", Slot = "11")]
|
||||
public virtual byte[] Unwrap(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC2D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Rfc3394WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_13B:
|
||||
stloc:InvalidCipherTextException(var_34_145, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("checksum failed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0400769B RID: 30363
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400769B")]
|
||||
private readonly IBlockCipher engine;
|
||||
|
||||
// Token: 0x0400769C RID: 30364
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400769C")]
|
||||
private KeyParameter param;
|
||||
|
||||
// Token: 0x0400769D RID: 30365
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400769D")]
|
||||
private bool forWrapping;
|
||||
|
||||
// Token: 0x0400769E RID: 30366
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400769E")]
|
||||
private byte[] iv;
|
||||
}
|
||||
}
|
||||
+728
@@ -0,0 +1,728 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D86 RID: 7558
|
||||
[Token(Token = "0x2001D86")]
|
||||
public class RijndaelEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC46 RID: 48198 RVA: 0x002992EC File Offset: 0x002974EC
|
||||
[Token(Token = "0x600BC46")]
|
||||
[Address(RVA = "0x2734610", Offset = "0x2733610", VA = "0x182734610")]
|
||||
private byte Mul0x2(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC47 RID: 48199 RVA: 0x00299314 File Offset: 0x00297514
|
||||
[Token(Token = "0x600BC47")]
|
||||
[Address(RVA = "0x27346D0", Offset = "0x27336D0", VA = "0x1827346D0")]
|
||||
private byte Mul0x3(int b)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
}
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC48 RID: 48200 RVA: 0x0029933C File Offset: 0x0029753C
|
||||
[Token(Token = "0x600BC48")]
|
||||
[Address(RVA = "0x2734790", Offset = "0x2733790", VA = "0x182734790")]
|
||||
private byte Mul0x9(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC49 RID: 48201 RVA: 0x00299358 File Offset: 0x00297558
|
||||
[Token(Token = "0x600BC49")]
|
||||
[Address(RVA = "0x2734830", Offset = "0x2733830", VA = "0x182734830")]
|
||||
private byte Mul0xb(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4A RID: 48202 RVA: 0x00299374 File Offset: 0x00297574
|
||||
[Token(Token = "0x600BC4A")]
|
||||
[Address(RVA = "0x27348D0", Offset = "0x27338D0", VA = "0x1827348D0")]
|
||||
private byte Mul0xd(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4B RID: 48203 RVA: 0x00299390 File Offset: 0x00297590
|
||||
[Token(Token = "0x600BC4B")]
|
||||
[Address(RVA = "0x2734970", Offset = "0x2733970", VA = "0x182734970")]
|
||||
private byte Mul0xe(int b)
|
||||
{
|
||||
byte[] alogtable = RijndaelEngine.Alogtable;
|
||||
byte b2;
|
||||
return b2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4C RID: 48204 RVA: 0x002993AC File Offset: 0x002975AC
|
||||
[Token(Token = "0x600BC4C")]
|
||||
[Address(RVA = "0x2734370", Offset = "0x2733370", VA = "0x182734370")]
|
||||
private void KeyAddition(long[] rk)
|
||||
{
|
||||
long num = rk[3];
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4D RID: 48205 RVA: 0x002993C8 File Offset: 0x002975C8
|
||||
[Token(Token = "0x600BC4D")]
|
||||
[Address(RVA = "0x27350B0", Offset = "0x27340B0", VA = "0x1827350B0")]
|
||||
private long Shift(long r, int shift)
|
||||
{
|
||||
int num = this.BC;
|
||||
num -= shift;
|
||||
return r;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4E RID: 48206 RVA: 0x002993E4 File Offset: 0x002975E4
|
||||
[Token(Token = "0x600BC4E")]
|
||||
[Address(RVA = "0x2734F90", Offset = "0x2733F90", VA = "0x182734F90")]
|
||||
private void ShiftRow(byte[] shiftsSC)
|
||||
{
|
||||
long a = this.A1;
|
||||
byte b = shiftsSC[0];
|
||||
int num = this.BC;
|
||||
num -= (int)b;
|
||||
this.A1 = a;
|
||||
byte b2 = shiftsSC[0];
|
||||
num -= (int)b2;
|
||||
this.A2 = a;
|
||||
byte b3 = shiftsSC[0];
|
||||
num -= (int)b3;
|
||||
this.A3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC4F RID: 48207 RVA: 0x00299440 File Offset: 0x00297640
|
||||
[Token(Token = "0x600BC4F")]
|
||||
[Address(RVA = "0x2733110", Offset = "0x2732110", VA = "0x182733110")]
|
||||
private long ApplyS(long r, byte[] box)
|
||||
{
|
||||
int bc = this.BC;
|
||||
int num = 0;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC50 RID: 48208 RVA: 0x00299464 File Offset: 0x00297664
|
||||
[Token(Token = "0x600BC50")]
|
||||
[Address(RVA = "0x27350E0", Offset = "0x27340E0", VA = "0x1827350E0")]
|
||||
private void Substitution(byte[] box)
|
||||
{
|
||||
int bc = this.BC;
|
||||
int num = 0;
|
||||
long a = this.A0;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
this.A0 = (long)num;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
this.A1 = (long)num;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
this.A2 = (long)num;
|
||||
if (bc > 0)
|
||||
{
|
||||
num += 8;
|
||||
}
|
||||
this.A3 = (long)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC51 RID: 48209 RVA: 0x002994C4 File Offset: 0x002976C4
|
||||
[Token(Token = "0x600BC51")]
|
||||
[Address(RVA = "0x2734400", Offset = "0x2733400", VA = "0x182734400")]
|
||||
private void MixColumn()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.Alogtable > num)
|
||||
{
|
||||
long num2 = this.A0;
|
||||
long num3 = this.A1;
|
||||
long num4 = this.A2;
|
||||
byte b = this.Mul0x2((int)num2);
|
||||
num2 = num3;
|
||||
byte b2 = this.Mul0x3((int)num2);
|
||||
b = this.Mul0x2((int)num3);
|
||||
num3 = num4;
|
||||
byte b3 = this.Mul0x3((int)num3);
|
||||
b = this.Mul0x2((int)num4);
|
||||
byte b4 = this.Mul0x3((int)num4);
|
||||
b = this.Mul0x2((int)num4);
|
||||
num4 = num2;
|
||||
byte b5 = this.Mul0x3((int)num4);
|
||||
num += 8;
|
||||
}
|
||||
this.A0 = (long)num;
|
||||
this.A1 = (long)num;
|
||||
this.A2 = (long)num;
|
||||
this.A3 = (long)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC52 RID: 48210 RVA: 0x00299564 File Offset: 0x00297764
|
||||
[Token(Token = "0x600BC52")]
|
||||
[Address(RVA = "0x2733F30", Offset = "0x2732F30", VA = "0x182733F30")]
|
||||
private void InvMixColumn()
|
||||
{
|
||||
int num = 0;
|
||||
if (this.Alogtable > num)
|
||||
{
|
||||
long num2 = this.A2;
|
||||
long a = this.A0;
|
||||
long a2 = this.A1;
|
||||
num2 = this.A3;
|
||||
byte[] logtable = RijndaelEngine.Logtable;
|
||||
byte[] logtable2 = RijndaelEngine.Logtable;
|
||||
byte[] logtable3 = RijndaelEngine.Logtable;
|
||||
byte[] logtable4 = RijndaelEngine.Logtable;
|
||||
uint num3;
|
||||
byte b = this.Mul0xe((int)num3);
|
||||
uint num4;
|
||||
byte b2 = this.Mul0xb((int)num4);
|
||||
uint num5;
|
||||
byte b3 = this.Mul0xd((int)num5);
|
||||
uint num6;
|
||||
byte b4 = this.Mul0x9((int)num6);
|
||||
b = this.Mul0xe((int)num4);
|
||||
b2 = this.Mul0xb((int)num5);
|
||||
b3 = this.Mul0xd((int)num6);
|
||||
byte b5 = this.Mul0x9((int)num3);
|
||||
b = this.Mul0xe((int)num5);
|
||||
b2 = this.Mul0xb((int)num6);
|
||||
b3 = this.Mul0xd((int)num3);
|
||||
byte b6 = this.Mul0x9((int)num4);
|
||||
b = this.Mul0xe((int)num6);
|
||||
b2 = this.Mul0xb((int)num3);
|
||||
b3 = this.Mul0xd((int)num4);
|
||||
byte b7 = this.Mul0x9((int)num5);
|
||||
num += 8;
|
||||
}
|
||||
this.A0 = (long)num;
|
||||
this.A1 = (long)num;
|
||||
this.A2 = (long)num;
|
||||
this.A3 = (long)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC53 RID: 48211 RVA: 0x00299680 File Offset: 0x00297880
|
||||
[Token(Token = "0x600BC53")]
|
||||
[Address(RVA = "0x27334A0", Offset = "0x27324A0", VA = "0x1827334A0")]
|
||||
private long[][] GenerateWorkingKey(byte[] key)
|
||||
{
|
||||
long[][] array;
|
||||
int num10;
|
||||
for (;;)
|
||||
{
|
||||
int length = key.Length;
|
||||
int maxkc = RijndaelEngine.MAXKC;
|
||||
int num = RijndaelEngine.MAXROUNDS;
|
||||
num++;
|
||||
array = new long[num][];
|
||||
int num2 = 0;
|
||||
int num3 = RijndaelEngine.MAXROUNDS;
|
||||
num3++;
|
||||
if (num2 < num3)
|
||||
{
|
||||
long[] array2 = new long[4];
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
num2++;
|
||||
array[0] = array2;
|
||||
}
|
||||
if (length > 160)
|
||||
{
|
||||
if (length == 192)
|
||||
{
|
||||
}
|
||||
if (length == 224)
|
||||
{
|
||||
}
|
||||
if (length != 256)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (length == 128)
|
||||
{
|
||||
}
|
||||
if (length == 160)
|
||||
{
|
||||
if (length < this.blockBits)
|
||||
{
|
||||
int num4 = this.BC;
|
||||
num4 += num;
|
||||
}
|
||||
uint num5;
|
||||
num5 += (uint)6;
|
||||
int num6 = 0;
|
||||
int num7 = 0;
|
||||
this.ROUNDS = (int)num5;
|
||||
int num8 = 0;
|
||||
int length2 = key.Length;
|
||||
if (num8 < length2)
|
||||
{
|
||||
num6++;
|
||||
num7++;
|
||||
num7 += num8;
|
||||
int num9 = num7 * (int)num5;
|
||||
num7++;
|
||||
}
|
||||
num10 = 0;
|
||||
int num11 = this.BC;
|
||||
int rounds = this.ROUNDS;
|
||||
num11 += num7;
|
||||
int num12 = (rounds + 1) * num11;
|
||||
if (num10 < num12)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
long[] array3 = array[num10];
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC54 RID: 48212 RVA: 0x00299934 File Offset: 0x00297B34
|
||||
[Token(Token = "0x600BC54")]
|
||||
[Address(RVA = "0x2735A70", Offset = "0x2734A70", VA = "0x182735A70")]
|
||||
public RijndaelEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BC55 RID: 48213 RVA: 0x00299944 File Offset: 0x00297B44
|
||||
[Token(Token = "0x600BC55")]
|
||||
[Address(RVA = "0x2735A80", Offset = "0x2734A80", VA = "0x182735A80")]
|
||||
public RijndaelEngine(int blockBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC55)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::.ctor(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_13A:
|
||||
stloc:ArgumentException(var_10_144, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unknown blocksize to Rijndael")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC56 RID: 48214 RVA: 0x00299A98 File Offset: 0x00297C98
|
||||
[Token(Token = "0x600BC56")]
|
||||
[Address(RVA = "0x2733D60", Offset = "0x2732D60", VA = "0x182733D60", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC56)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3B:
|
||||
stloc:ArgumentException(var_7_4C, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Rijndael init - "), ldloc:string(var_6))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D86 RID: 7558
|
||||
// (get) Token: 0x0600BC57 RID: 48215 RVA: 0x00299AF4 File Offset: 0x00297CF4
|
||||
[Token(Token = "0x17001D86")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC57")]
|
||||
[Address(RVA = "0x2735EE0", Offset = "0x2734EE0", VA = "0x182735EE0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Rijndael";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D87 RID: 7559
|
||||
// (get) Token: 0x0600BC58 RID: 48216 RVA: 0x00299B08 File Offset: 0x00297D08
|
||||
[Token(Token = "0x17001D87")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BC58")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC59 RID: 48217 RVA: 0x00299B18 File Offset: 0x00297D18
|
||||
[Token(Token = "0x600BC59")]
|
||||
[Address(RVA = "0x2733D50", Offset = "0x2732D50", VA = "0x182733D50", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.BC;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5A RID: 48218 RVA: 0x00299B2C File Offset: 0x00297D2C
|
||||
[Token(Token = "0x600BC5A")]
|
||||
[Address(RVA = "0x2734AF0", Offset = "0x2733AF0", VA = "0x182734AF0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC5A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RijndaelEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1A5:
|
||||
stloc:InvalidOperationException(var_26_1AF, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Rijndael engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5B RID: 48219 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC5B")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5C RID: 48220 RVA: 0x00299CEC File Offset: 0x00297EEC
|
||||
[Token(Token = "0x600BC5C")]
|
||||
[Address(RVA = "0x2735290", Offset = "0x2734290", VA = "0x182735290")]
|
||||
private void UnPackBlock(byte[] bytes, int off)
|
||||
{
|
||||
byte b;
|
||||
this.A0 = (long)b;
|
||||
int num = off + 1;
|
||||
byte b2;
|
||||
this.A1 = (long)b2;
|
||||
byte b3;
|
||||
this.A2 = (long)b3;
|
||||
int num2 = off + 1;
|
||||
int bc = this.BC;
|
||||
byte b4;
|
||||
this.A3 = (long)b4;
|
||||
uint num3;
|
||||
if (bc != (int)num3)
|
||||
{
|
||||
int num4 = num2 + 1;
|
||||
num2 += 2;
|
||||
byte b5 = bytes[num2];
|
||||
num3 += (uint)8;
|
||||
while (num3 != (uint)bc)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5D RID: 48221 RVA: 0x00299D58 File Offset: 0x00297F58
|
||||
[Token(Token = "0x600BC5D")]
|
||||
[Address(RVA = "0x2734A10", Offset = "0x2733A10", VA = "0x182734A10")]
|
||||
private void PackBlock(byte[] bytes, int off)
|
||||
{
|
||||
int num = 0;
|
||||
if (this.Alogtable != num)
|
||||
{
|
||||
long a = this.A0;
|
||||
int num2 = off + 1;
|
||||
long a2 = this.A1;
|
||||
bytes[0] = (byte)a2;
|
||||
long a3 = this.A2;
|
||||
bytes[0] = (byte)a3;
|
||||
long a4 = this.A3;
|
||||
num += 8;
|
||||
while (num != this.Alogtable)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5E RID: 48222 RVA: 0x00299DB8 File Offset: 0x00297FB8
|
||||
[Token(Token = "0x600BC5E")]
|
||||
[Address(RVA = "0x2733310", Offset = "0x2732310", VA = "0x182733310")]
|
||||
private void EncryptBlock(long[][] rk)
|
||||
{
|
||||
long[] array = rk[0];
|
||||
this.KeyAddition(array);
|
||||
if (this.ROUNDS > 1)
|
||||
{
|
||||
byte[] s = RijndaelEngine.S;
|
||||
this.Substitution(s);
|
||||
byte[] array2 = this.shifts0SC;
|
||||
this.ShiftRow(array2);
|
||||
this.MixColumn();
|
||||
long[] array3;
|
||||
this.KeyAddition(array3);
|
||||
}
|
||||
byte[] s2 = RijndaelEngine.S;
|
||||
this.Substitution(s2);
|
||||
byte[] array4 = this.shifts0SC;
|
||||
this.ShiftRow(array4);
|
||||
int rounds = this.ROUNDS;
|
||||
long[] array5 = rk[rounds];
|
||||
this.KeyAddition(array5);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC5F RID: 48223 RVA: 0x00299E44 File Offset: 0x00298044
|
||||
[Token(Token = "0x600BC5F")]
|
||||
[Address(RVA = "0x2733180", Offset = "0x2732180", VA = "0x182733180")]
|
||||
private void DecryptBlock(long[][] rk)
|
||||
{
|
||||
int rounds = this.ROUNDS;
|
||||
long[] array = rk[rounds];
|
||||
this.KeyAddition(array);
|
||||
byte[] si = RijndaelEngine.Si;
|
||||
this.Substitution(si);
|
||||
byte[] array2 = this.shifts1SC;
|
||||
this.ShiftRow(array2);
|
||||
int rounds2 = this.ROUNDS;
|
||||
if (rounds2 > 0)
|
||||
{
|
||||
long[] array3 = rk[rounds2];
|
||||
this.KeyAddition(array3);
|
||||
this.InvMixColumn();
|
||||
byte[] si2 = RijndaelEngine.Si;
|
||||
this.Substitution(si2);
|
||||
byte[] array4 = this.shifts1SC;
|
||||
this.ShiftRow(array4);
|
||||
}
|
||||
long[] array5 = rk[0];
|
||||
this.KeyAddition(array5);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC60 RID: 48224 RVA: 0x00299EE0 File Offset: 0x002980E0
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BC60")]
|
||||
[Address(RVA = "0x2735430", Offset = "0x2734430", VA = "0x182735430")]
|
||||
static RijndaelEngine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8AC10B57091AFE182D9E4375C05E3FA037FFB3FA).FieldHandle);
|
||||
RijndaelEngine.Logtable = array;
|
||||
byte[] array2 = new byte[511];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.A94DF043C88FB07ACCA327B6A0BB063F20637E71).FieldHandle);
|
||||
RijndaelEngine.Alogtable = array2;
|
||||
byte[] array3 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
|
||||
RijndaelEngine.S = array3;
|
||||
byte[] array4 = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
|
||||
RijndaelEngine.Si = array4;
|
||||
byte[] array5 = new byte[30];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
|
||||
RijndaelEngine.rcon = array5;
|
||||
byte[][] array6 = new byte[5][];
|
||||
byte[] array7 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
|
||||
if (array7 != 0)
|
||||
{
|
||||
}
|
||||
array6[0] = array7;
|
||||
byte[] array8 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
|
||||
if (array8 != 0)
|
||||
{
|
||||
}
|
||||
array6[1] = array8;
|
||||
byte[] array9 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.8D3FE5CBAB9E7C2A376892E4DD9EF43B5F8A712A).FieldHandle);
|
||||
if (array9 != 0)
|
||||
{
|
||||
}
|
||||
array6[2] = array9;
|
||||
byte[] array10 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.18F46E3C2ECF4BAAE65361632BA7C1B4B9028827).FieldHandle);
|
||||
if (array10 != 0)
|
||||
{
|
||||
}
|
||||
array6[3] = array10;
|
||||
byte[] array11 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.D5B4B2417720C9E5EDBF83CB4440D9C8B76B5557).FieldHandle);
|
||||
if (array11 != 0)
|
||||
{
|
||||
}
|
||||
array6[4] = array11;
|
||||
RijndaelEngine.shifts0 = array6;
|
||||
byte[][] array12 = new byte[5][];
|
||||
byte[] array13 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.47A4F979AF156CDA62313B97411B4C6CE62B8B5A).FieldHandle);
|
||||
if (array13 != 0)
|
||||
{
|
||||
}
|
||||
array12[0] = array13;
|
||||
byte[] array14 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array14, fieldof(<PrivateImplementationDetails>.3E8E493888B1BFB763D7553A6CC1978C17C198A3).FieldHandle);
|
||||
if (array14 != 0)
|
||||
{
|
||||
}
|
||||
array12[1] = array14;
|
||||
byte[] array15 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array15, fieldof(<PrivateImplementationDetails>.3045D5B29BA900304981918A153806D371B02549).FieldHandle);
|
||||
if (array15 != 0)
|
||||
{
|
||||
}
|
||||
array12[2] = array15;
|
||||
byte[] array16 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array16, fieldof(<PrivateImplementationDetails>.F3E701C38098B41D23FA88977423371B3C00C0D1).FieldHandle);
|
||||
if (array16 != 0)
|
||||
{
|
||||
}
|
||||
array12[3] = array16;
|
||||
byte[] array17 = new byte[4];
|
||||
RuntimeHelpers.InitializeArray(array17, fieldof(<PrivateImplementationDetails>.6D19ABD7FD0986E382242A9B88C8D8B5F52598DF).FieldHandle);
|
||||
if (array17 != 0)
|
||||
{
|
||||
}
|
||||
array12[4] = array17;
|
||||
RijndaelEngine.shifts1 = array12;
|
||||
}
|
||||
|
||||
// Token: 0x040076A9 RID: 30377
|
||||
[Token(Token = "0x40076A9")]
|
||||
private static readonly int MAXROUNDS;
|
||||
|
||||
// Token: 0x040076AA RID: 30378
|
||||
[Token(Token = "0x40076AA")]
|
||||
private static readonly int MAXKC;
|
||||
|
||||
// Token: 0x040076AB RID: 30379
|
||||
[Token(Token = "0x40076AB")]
|
||||
private static readonly byte[] Logtable;
|
||||
|
||||
// Token: 0x040076AC RID: 30380
|
||||
[Token(Token = "0x40076AC")]
|
||||
private static readonly byte[] Alogtable;
|
||||
|
||||
// Token: 0x040076AD RID: 30381
|
||||
[Token(Token = "0x40076AD")]
|
||||
private static readonly byte[] S;
|
||||
|
||||
// Token: 0x040076AE RID: 30382
|
||||
[Token(Token = "0x40076AE")]
|
||||
private static readonly byte[] Si;
|
||||
|
||||
// Token: 0x040076AF RID: 30383
|
||||
[Token(Token = "0x40076AF")]
|
||||
private static readonly byte[] rcon;
|
||||
|
||||
// Token: 0x040076B0 RID: 30384
|
||||
[Token(Token = "0x40076B0")]
|
||||
private static readonly byte[][] shifts0;
|
||||
|
||||
// Token: 0x040076B1 RID: 30385
|
||||
[Token(Token = "0x40076B1")]
|
||||
private static readonly byte[][] shifts1;
|
||||
|
||||
// Token: 0x040076B2 RID: 30386
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076B2")]
|
||||
private int BC;
|
||||
|
||||
// Token: 0x040076B3 RID: 30387
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076B3")]
|
||||
private long BC_MASK;
|
||||
|
||||
// Token: 0x040076B4 RID: 30388
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076B4")]
|
||||
private int ROUNDS;
|
||||
|
||||
// Token: 0x040076B5 RID: 30389
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40076B5")]
|
||||
private int blockBits;
|
||||
|
||||
// Token: 0x040076B6 RID: 30390
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076B6")]
|
||||
private long[][] workingKey;
|
||||
|
||||
// Token: 0x040076B7 RID: 30391
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40076B7")]
|
||||
private long A0;
|
||||
|
||||
// Token: 0x040076B8 RID: 30392
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40076B8")]
|
||||
private long A1;
|
||||
|
||||
// Token: 0x040076B9 RID: 30393
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40076B9")]
|
||||
private long A2;
|
||||
|
||||
// Token: 0x040076BA RID: 30394
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40076BA")]
|
||||
private long A3;
|
||||
|
||||
// Token: 0x040076BB RID: 30395
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40076BB")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040076BC RID: 30396
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40076BC")]
|
||||
private byte[] shifts0SC;
|
||||
|
||||
// Token: 0x040076BD RID: 30397
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40076BD")]
|
||||
private byte[] shifts1SC;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D83 RID: 7555
|
||||
[Token(Token = "0x2001D83")]
|
||||
public class RsaBlindedEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC2E RID: 48174 RVA: 0x00298D14 File Offset: 0x00296F14
|
||||
[Token(Token = "0x600BC2E")]
|
||||
[Address(RVA = "0x27364D0", Offset = "0x27354D0", VA = "0x1827364D0")]
|
||||
public RsaBlindedEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC2F RID: 48175 RVA: 0x00298D34 File Offset: 0x00296F34
|
||||
[Token(Token = "0x600BC2F")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public RsaBlindedEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001D84 RID: 7556
|
||||
// (get) Token: 0x0600BC30 RID: 48176 RVA: 0x00298D50 File Offset: 0x00296F50
|
||||
[Token(Token = "0x17001D84")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC30")]
|
||||
[Address(RVA = "0x2736530", Offset = "0x2735530", VA = "0x182736530", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC31 RID: 48177 RVA: 0x00298D64 File Offset: 0x00296F64
|
||||
[Token(Token = "0x600BC31")]
|
||||
[Address(RVA = "0x2735FB0", Offset = "0x2734FB0", VA = "0x182735FB0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters param)
|
||||
{
|
||||
int num;
|
||||
for (;;)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
if (param == 0)
|
||||
{
|
||||
goto IL_44;
|
||||
}
|
||||
if ((param != 0 || param != 0) && param != 0)
|
||||
{
|
||||
if (typeof(ParametersWithRandom).TypeHandle == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num = 0;
|
||||
if (typeof(ParametersWithRandom).TypeHandle != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.key = typeof(ParametersWithRandom).TypeHandle;
|
||||
this.random = num;
|
||||
return;
|
||||
IL_44:
|
||||
int num2 = 0;
|
||||
this.key = num2;
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
this.random = secureRandom;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC32 RID: 48178 RVA: 0x00298DD8 File Offset: 0x00296FD8
|
||||
[Token(Token = "0x600BC32")]
|
||||
[Address(RVA = "0x2735F10", Offset = "0x2734F10", VA = "0x182735F10", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC33 RID: 48179 RVA: 0x00298DF4 File Offset: 0x00296FF4
|
||||
[Token(Token = "0x600BC33")]
|
||||
[Address(RVA = "0x2735F60", Offset = "0x2734F60", VA = "0x182735F60", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC34 RID: 48180 RVA: 0x00298E10 File Offset: 0x00297010
|
||||
[Token(Token = "0x600BC34")]
|
||||
[Address(RVA = "0x2736190", Offset = "0x2735190", VA = "0x182736190", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC34)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaBlindedEngine::ProcessBlock(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_AD:
|
||||
stloc:InvalidOperationException(var_19_B7, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0400769F RID: 30367
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400769F")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040076A0 RID: 30368
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076A0")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040076A1 RID: 30369
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076A1")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D84 RID: 7556
|
||||
[Token(Token = "0x2001D84")]
|
||||
public class RsaBlindingEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC35 RID: 48181 RVA: 0x00298ED8 File Offset: 0x002970D8
|
||||
[Token(Token = "0x600BC35")]
|
||||
[Address(RVA = "0x2736A20", Offset = "0x2735A20", VA = "0x182736A20")]
|
||||
public RsaBlindingEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC36 RID: 48182 RVA: 0x00298EF8 File Offset: 0x002970F8
|
||||
[Token(Token = "0x600BC36")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public RsaBlindingEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001D85 RID: 7557
|
||||
// (get) Token: 0x0600BC37 RID: 48183 RVA: 0x00298F14 File Offset: 0x00297114
|
||||
[Token(Token = "0x17001D85")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC37")]
|
||||
[Address(RVA = "0x2736A80", Offset = "0x2735A80", VA = "0x182736A80", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC38 RID: 48184 RVA: 0x00298F28 File Offset: 0x00297128
|
||||
[Token(Token = "0x600BC38")]
|
||||
[Address(RVA = "0x2736680", Offset = "0x2735680", VA = "0x182736680", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters param)
|
||||
{
|
||||
int num;
|
||||
for (;;)
|
||||
{
|
||||
if ((param != 0 || param != 0) && param != 0 && param != 0)
|
||||
{
|
||||
num = 0;
|
||||
if (param != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
IRsa rsa = this.core;
|
||||
this.forEncryption = forEncryption;
|
||||
this.key = num;
|
||||
this.blindingFactor = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC39 RID: 48185 RVA: 0x00298F7C File Offset: 0x0029717C
|
||||
[Token(Token = "0x600BC39")]
|
||||
[Address(RVA = "0x27365E0", Offset = "0x27355E0", VA = "0x1827365E0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC3A RID: 48186 RVA: 0x00298F98 File Offset: 0x00297198
|
||||
[Token(Token = "0x600BC3A")]
|
||||
[Address(RVA = "0x2736630", Offset = "0x2735630", VA = "0x182736630", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC3B RID: 48187 RVA: 0x00298FB4 File Offset: 0x002971B4
|
||||
[Token(Token = "0x600BC3B")]
|
||||
[Address(RVA = "0x2736870", Offset = "0x2735870", VA = "0x182736870", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
RsaKeyParameters rsaKeyParameters = this.key;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
BigInteger bigInteger = this.blindingFactor;
|
||||
BigInteger modulus = rsaKeyParameters.modulus;
|
||||
BigInteger bigInteger2 = bigInteger.ModInverse(modulus);
|
||||
}
|
||||
BigInteger bigInteger3 = this.blindingFactor;
|
||||
BigInteger modulus2 = rsaKeyParameters.modulus;
|
||||
BigInteger exponent = rsaKeyParameters.exponent;
|
||||
BigInteger bigInteger4 = bigInteger3.ModPow(exponent, modulus2);
|
||||
BigInteger modulus3 = this.key.modulus;
|
||||
BigInteger bigInteger6;
|
||||
BigInteger bigInteger5 = bigInteger6.Mod(modulus3);
|
||||
IRsa rsa2 = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC3C RID: 48188 RVA: 0x0029903C File Offset: 0x0029723C
|
||||
[Token(Token = "0x600BC3C")]
|
||||
[Address(RVA = "0x2736560", Offset = "0x2735560", VA = "0x182736560")]
|
||||
private BigInteger BlindMessage(BigInteger msg)
|
||||
{
|
||||
RsaKeyParameters rsaKeyParameters = this.key;
|
||||
BigInteger bigInteger = this.blindingFactor;
|
||||
BigInteger modulus = rsaKeyParameters.modulus;
|
||||
BigInteger exponent = rsaKeyParameters.exponent;
|
||||
BigInteger bigInteger2 = bigInteger.ModPow(exponent, modulus);
|
||||
BigInteger bigInteger3 = msg.Multiply(bigInteger2);
|
||||
BigInteger modulus2 = this.key.modulus;
|
||||
return bigInteger3.Mod(modulus2);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC3D RID: 48189 RVA: 0x00299098 File Offset: 0x00297298
|
||||
[Token(Token = "0x600BC3D")]
|
||||
[Address(RVA = "0x27369B0", Offset = "0x27359B0", VA = "0x1827369B0")]
|
||||
private BigInteger UnblindMessage(BigInteger blindedMsg)
|
||||
{
|
||||
RsaKeyParameters rsaKeyParameters = this.key;
|
||||
BigInteger bigInteger = this.blindingFactor;
|
||||
BigInteger modulus = rsaKeyParameters.modulus;
|
||||
BigInteger bigInteger2 = bigInteger.ModInverse(modulus);
|
||||
return blindedMsg.Multiply(bigInteger2).Mod(modulus);
|
||||
}
|
||||
|
||||
// Token: 0x040076A2 RID: 30370
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076A2")]
|
||||
private readonly IRsa core;
|
||||
|
||||
// Token: 0x040076A3 RID: 30371
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076A3")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040076A4 RID: 30372
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076A4")]
|
||||
private BigInteger blindingFactor;
|
||||
|
||||
// Token: 0x040076A5 RID: 30373
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076A5")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D85 RID: 7557
|
||||
[Token(Token = "0x2001D85")]
|
||||
public class RsaCoreEngine : IRsa
|
||||
{
|
||||
// Token: 0x0600BC3E RID: 48190 RVA: 0x002990D8 File Offset: 0x002972D8
|
||||
[Token(Token = "0x600BC3E")]
|
||||
[Address(RVA = "0x2736AB0", Offset = "0x2735AB0", VA = "0x182736AB0")]
|
||||
private void CheckInitialised()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC3E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::CheckInitialised()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_0C:
|
||||
stloc:InvalidOperationException(var_0_16, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC3F RID: 48191 RVA: 0x002990FC File Offset: 0x002972FC
|
||||
[Token(Token = "0x600BC3F")]
|
||||
[Address(RVA = "0x2736ED0", Offset = "0x2735ED0", VA = "0x182736ED0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC3F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3E:
|
||||
stloc:InvalidKeyException(var_6_48, newobj:InvalidKeyException(InvalidKeyException::.ctor, ldstr:string("Not an RSA key")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC40 RID: 48192 RVA: 0x00299154 File Offset: 0x00297354
|
||||
[Token(Token = "0x600BC40")]
|
||||
[Address(RVA = "0x2736DB0", Offset = "0x2735DB0", VA = "0x182736DB0", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC40)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::GetInputBlockSize()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_23:
|
||||
stloc:InvalidOperationException(var_1_2D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC41 RID: 48193 RVA: 0x00299190 File Offset: 0x00297390
|
||||
[Token(Token = "0x600BC41")]
|
||||
[Address(RVA = "0x2736E40", Offset = "0x2735E40", VA = "0x182736E40", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC41)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::GetOutputBlockSize()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_23:
|
||||
stloc:InvalidOperationException(var_1_2D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC42 RID: 48194 RVA: 0x002991CC File Offset: 0x002973CC
|
||||
[Token(Token = "0x600BC42")]
|
||||
[Address(RVA = "0x2736B20", Offset = "0x2735B20", VA = "0x182736B20", Slot = "13")]
|
||||
public virtual BigInteger ConvertInput(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC42)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ConvertInput(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3D:
|
||||
stloc:InvalidOperationException(var_6_47, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC43 RID: 48195 RVA: 0x00299224 File Offset: 0x00297424
|
||||
[Token(Token = "0x600BC43")]
|
||||
[Address(RVA = "0x2736CB0", Offset = "0x2735CB0", VA = "0x182736CB0", Slot = "14")]
|
||||
public virtual byte[] ConvertOutput(BigInteger result)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC43)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ConvertOutput(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_39:
|
||||
stloc:InvalidOperationException(var_3_43, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC44 RID: 48196 RVA: 0x00299274 File Offset: 0x00297474
|
||||
[Token(Token = "0x600BC44")]
|
||||
[Address(RVA = "0x27370D0", Offset = "0x27360D0", VA = "0x1827370D0", Slot = "15")]
|
||||
public virtual BigInteger ProcessBlock(BigInteger input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC44)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RsaCoreEngine::ProcessBlock(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_49:
|
||||
stloc:InvalidOperationException(var_15_53, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("RSA engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC45 RID: 48197 RVA: 0x002992D8 File Offset: 0x002974D8
|
||||
[Token(Token = "0x600BC45")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RsaCoreEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040076A6 RID: 30374
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076A6")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x040076A7 RID: 30375
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076A7")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040076A8 RID: 30376
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40076A8")]
|
||||
private int bitSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D87 RID: 7559
|
||||
[Token(Token = "0x2001D87")]
|
||||
public class RsaEngine : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC61 RID: 48225 RVA: 0x0029A0FC File Offset: 0x002982FC
|
||||
[Token(Token = "0x600BC61")]
|
||||
[Address(RVA = "0x27374E0", Offset = "0x27364E0", VA = "0x1827374E0")]
|
||||
public RsaEngine()
|
||||
{
|
||||
RsaCoreEngine rsaCoreEngine = new RsaCoreEngine();
|
||||
base..ctor();
|
||||
this.core = rsaCoreEngine;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC62 RID: 48226 RVA: 0x0029A11C File Offset: 0x0029831C
|
||||
[Token(Token = "0x600BC62")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public RsaEngine(IRsa rsa)
|
||||
{
|
||||
this.core = rsa;
|
||||
}
|
||||
|
||||
// Token: 0x17001D88 RID: 7560
|
||||
// (get) Token: 0x0600BC63 RID: 48227 RVA: 0x0029A138 File Offset: 0x00298338
|
||||
[Token(Token = "0x17001D88")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC63")]
|
||||
[Address(RVA = "0x2737540", Offset = "0x2736540", VA = "0x182737540", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "RSA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC64 RID: 48228 RVA: 0x0029A14C File Offset: 0x0029834C
|
||||
[Token(Token = "0x600BC64")]
|
||||
[Address(RVA = "0x27373B0", Offset = "0x27363B0", VA = "0x1827373B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC65 RID: 48229 RVA: 0x0029A168 File Offset: 0x00298368
|
||||
[Token(Token = "0x600BC65")]
|
||||
[Address(RVA = "0x2737310", Offset = "0x2736310", VA = "0x182737310", Slot = "11")]
|
||||
public virtual int GetInputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC66 RID: 48230 RVA: 0x0029A184 File Offset: 0x00298384
|
||||
[Token(Token = "0x600BC66")]
|
||||
[Address(RVA = "0x2737360", Offset = "0x2736360", VA = "0x182737360", Slot = "12")]
|
||||
public virtual int GetOutputBlockSize()
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC67 RID: 48231 RVA: 0x0029A1A0 File Offset: 0x002983A0
|
||||
[Token(Token = "0x600BC67")]
|
||||
[Address(RVA = "0x2737420", Offset = "0x2736420", VA = "0x182737420", Slot = "13")]
|
||||
public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
|
||||
{
|
||||
IRsa rsa = this.core;
|
||||
IRsa rsa2 = this.core;
|
||||
IRsa rsa3 = this.core;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x040076BE RID: 30398
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076BE")]
|
||||
private readonly IRsa core;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D8A RID: 7562
|
||||
[Token(Token = "0x2001D8A")]
|
||||
public class SM2Engine
|
||||
{
|
||||
// Token: 0x0600BC7C RID: 48252 RVA: 0x0029A57C File Offset: 0x0029877C
|
||||
[Token(Token = "0x600BC7C")]
|
||||
[Address(RVA = "0x27387B0", Offset = "0x27377B0", VA = "0x1827387B0")]
|
||||
public SM2Engine()
|
||||
{
|
||||
SM3Digest sm3Digest = new SM3Digest();
|
||||
base..ctor();
|
||||
this.mDigest = sm3Digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC7D RID: 48253 RVA: 0x0029A59C File Offset: 0x0029879C
|
||||
[Token(Token = "0x600BC7D")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public SM2Engine(IDigest digest)
|
||||
{
|
||||
this.mDigest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC7E RID: 48254 RVA: 0x0029A5B8 File Offset: 0x002987B8
|
||||
[Token(Token = "0x600BC7E")]
|
||||
[Address(RVA = "0x2738000", Offset = "0x2737000", VA = "0x182738000", Slot = "4")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters param)
|
||||
{
|
||||
bool flag;
|
||||
for (;;)
|
||||
{
|
||||
this.mForEncryption = forEncryption;
|
||||
if (!forEncryption)
|
||||
{
|
||||
if (param == 0)
|
||||
{
|
||||
}
|
||||
int num = 0;
|
||||
if (param == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
this.mECKey = param;
|
||||
this.mECParams = num;
|
||||
}
|
||||
if (param != 0)
|
||||
{
|
||||
if (typeof(ParametersWithRandom).TypeHandle == 0)
|
||||
{
|
||||
}
|
||||
if (typeof(ParametersWithRandom).TypeHandle != 0)
|
||||
{
|
||||
this.mECKey = typeof(ParametersWithRandom).TypeHandle;
|
||||
this.mECParams = param;
|
||||
if (typeof(ParametersWithRandom).TypeHandle != 0 && typeof(ParametersWithRandom).TypeHandle != 0 && !flag)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.mRandom = flag;
|
||||
string text = this.mECParams.curve.ToString();
|
||||
this.mCurveLength = text;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC7F RID: 48255 RVA: 0x0029A654 File Offset: 0x00298854
|
||||
[Token(Token = "0x600BC7F")]
|
||||
[Address(RVA = "0x2738700", Offset = "0x2737700", VA = "0x182738700", Slot = "5")]
|
||||
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
if (!this.mForEncryption)
|
||||
{
|
||||
return this.Decrypt(input, inOff, inLen);
|
||||
}
|
||||
return this.Encrypt(input, inOff, inLen);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC80 RID: 48256 RVA: 0x0029A680 File Offset: 0x00298880
|
||||
[Token(Token = "0x600BC80")]
|
||||
[Address(RVA = "0x2737600", Offset = "0x2736600", VA = "0x182737600", Slot = "6")]
|
||||
protected virtual ECMultiplier CreateBasePointMultiplier()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC80)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM2Engine::CreateBasePointMultiplier()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:FixedPointCombMultiplier(var_0_05, newobj:FixedPointCombMultiplier(FixedPointCombMultiplier::.ctor))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC81 RID: 48257 RVA: 0x0029A694 File Offset: 0x00298894
|
||||
[Token(Token = "0x600BC81")]
|
||||
[Address(RVA = "0x2737AB0", Offset = "0x2736AB0", VA = "0x182737AB0")]
|
||||
private byte[] Encrypt(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
byte[] array;
|
||||
int num2;
|
||||
int num9;
|
||||
for (;;)
|
||||
{
|
||||
array = new byte[inLen];
|
||||
int length = array.Length;
|
||||
int num = 0;
|
||||
Array.Copy(input, inLen, array, num, length);
|
||||
num2 = this.mECParams.n.BitLength;
|
||||
SecureRandom secureRandom = this.mRandom;
|
||||
BigInteger bigInteger = new BigInteger(num2, secureRandom);
|
||||
while (bigInteger.sign == 0)
|
||||
{
|
||||
}
|
||||
BigInteger n = this.mECParams.n;
|
||||
int num3 = 0;
|
||||
int num4 = bigInteger.CompareTo(n);
|
||||
ECPoint g = this.mECParams.g;
|
||||
int num5 = 0;
|
||||
if (num5 < num3)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
int num6 = 0;
|
||||
ulong num8;
|
||||
int num7 = num8.CompareTo((ulong)num6);
|
||||
ECKeyParameters eckeyParameters = this.mECKey;
|
||||
num2 = num7;
|
||||
num8 += num8;
|
||||
num7 += 19;
|
||||
if (eckeyParameters != 0)
|
||||
{
|
||||
num9 = 0;
|
||||
if (eckeyParameters != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
int length2 = array.Length;
|
||||
while (num9 == length2)
|
||||
{
|
||||
}
|
||||
num9++;
|
||||
IDigest digest = this.mDigest;
|
||||
byte[] array2 = DigestUtilities.DoFinal(this.mDigest);
|
||||
byte[][] array3 = new byte[3][];
|
||||
if (num2 != 0)
|
||||
{
|
||||
}
|
||||
array3[0] = num2;
|
||||
array3[1] = array;
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
array3[2] = array2;
|
||||
return Arrays.ConcatenateAll(array3);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC82 RID: 48258 RVA: 0x0029A7D0 File Offset: 0x002989D0
|
||||
[Token(Token = "0x600BC82")]
|
||||
[Address(RVA = "0x2737650", Offset = "0x2736650", VA = "0x182737650")]
|
||||
private byte[] Decrypt(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC82)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM2Engine::Decrypt(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_139:
|
||||
stloc:int32(var_28_13A, ldc.i4:int32(0))
|
||||
call:void(Arrays::Fill, ldloc:uint8[](var_13_6C), ldloc:int32[exp:uint8](var_28_13A))
|
||||
stloc:InvalidCipherTextException(var_29_14F, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("invalid cipher text")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC83 RID: 48259 RVA: 0x0029A930 File Offset: 0x00298B30
|
||||
[Token(Token = "0x600BC83")]
|
||||
[Address(RVA = "0x2738680", Offset = "0x2737680", VA = "0x182738680")]
|
||||
private bool NotEncrypted(byte[] encData, byte[] input, int inOff)
|
||||
{
|
||||
int num = 0;
|
||||
int length = encData.Length;
|
||||
if (num != length)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC84 RID: 48260 RVA: 0x0029A958 File Offset: 0x00298B58
|
||||
[Token(Token = "0x600BC84")]
|
||||
[Address(RVA = "0x27382C0", Offset = "0x27372C0", VA = "0x1827382C0")]
|
||||
private void Kdf(IDigest digest, ECPoint c1, byte[] encData)
|
||||
{
|
||||
int num;
|
||||
byte[] array = new byte[num];
|
||||
int num2 = 0;
|
||||
if (array != 0)
|
||||
{
|
||||
int curveCoordinateSystem = c1.CurveCoordinateSystem;
|
||||
ECFieldElement affineXCoord = c1.AffineXCoord;
|
||||
this.AddFieldElement(digest, affineXCoord);
|
||||
num2 += num2;
|
||||
num2++;
|
||||
}
|
||||
int num3 = 0;
|
||||
if (num3 < encData.Length)
|
||||
{
|
||||
if (array == 0)
|
||||
{
|
||||
int curveCoordinateSystem2 = c1.CurveCoordinateSystem;
|
||||
ECFieldElement affineXCoord2 = c1.AffineXCoord;
|
||||
this.AddFieldElement(digest, affineXCoord2);
|
||||
}
|
||||
int num4 = 0;
|
||||
Pack.UInt32_To_BE((uint)1, array, num4);
|
||||
int num5 = encData.Length;
|
||||
num5 -= num2;
|
||||
int num6;
|
||||
this.Xor(encData, array, num2, num6);
|
||||
num2 += num6;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC85 RID: 48261 RVA: 0x0029A9F4 File Offset: 0x00298BF4
|
||||
[Token(Token = "0x600BC85")]
|
||||
[Address(RVA = "0x2738730", Offset = "0x2737730", VA = "0x182738730")]
|
||||
private void Xor(byte[] data, byte[] kdfOut, int dOff, int dRemaining)
|
||||
{
|
||||
int num = 0;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC86 RID: 48262 RVA: 0x0029AA10 File Offset: 0x00298C10
|
||||
[Token(Token = "0x600BC86")]
|
||||
[Address(RVA = "0x27385C0", Offset = "0x27375C0", VA = "0x1827385C0")]
|
||||
private BigInteger NextK()
|
||||
{
|
||||
int bitLength = this.mECParams.n.BitLength;
|
||||
SecureRandom secureRandom = this.mRandom;
|
||||
BigInteger bigInteger = new BigInteger(bitLength, secureRandom);
|
||||
while (bigInteger.sign == 0)
|
||||
{
|
||||
}
|
||||
BigInteger n = this.mECParams.n;
|
||||
int num = bigInteger.CompareTo(n);
|
||||
return bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC87 RID: 48263 RVA: 0x0029AA64 File Offset: 0x00298C64
|
||||
[Token(Token = "0x600BC87")]
|
||||
[Address(RVA = "0x2737570", Offset = "0x2736570", VA = "0x182737570")]
|
||||
private void AddFieldElement(IDigest digest, ECFieldElement v)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040076C7 RID: 30407
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076C7")]
|
||||
private readonly IDigest mDigest;
|
||||
|
||||
// Token: 0x040076C8 RID: 30408
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076C8")]
|
||||
private bool mForEncryption;
|
||||
|
||||
// Token: 0x040076C9 RID: 30409
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076C9")]
|
||||
private ECKeyParameters mECKey;
|
||||
|
||||
// Token: 0x040076CA RID: 30410
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076CA")]
|
||||
private ECDomainParameters mECParams;
|
||||
|
||||
// Token: 0x040076CB RID: 30411
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40076CB")]
|
||||
private int mCurveLength;
|
||||
|
||||
// Token: 0x040076CC RID: 30412
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40076CC")]
|
||||
private SecureRandom mRandom;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D8B RID: 7563
|
||||
[Token(Token = "0x2001D8B")]
|
||||
public class SM4Engine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC88 RID: 48264 RVA: 0x0029AA78 File Offset: 0x00298C78
|
||||
[Token(Token = "0x600BC88")]
|
||||
[Address(RVA = "0x2739940", Offset = "0x2738940", VA = "0x182739940")]
|
||||
private static uint tau(uint A)
|
||||
{
|
||||
int length = SM4Engine.Sbox.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC89 RID: 48265 RVA: 0x0029AA98 File Offset: 0x00298C98
|
||||
[Token(Token = "0x600BC89")]
|
||||
[Address(RVA = "0x27393A0", Offset = "0x27383A0", VA = "0x1827393A0")]
|
||||
private static uint L_ap(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC89)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::L_ap(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32(var_0_08, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(13)))
|
||||
stloc:int32(var_1_11, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(23)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC8A RID: 48266 RVA: 0x0029AAB8 File Offset: 0x00298CB8
|
||||
[Token(Token = "0x600BC8A")]
|
||||
[Address(RVA = "0x2739700", Offset = "0x2738700", VA = "0x182739700")]
|
||||
private uint T_ap(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC8A)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::T_ap(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_06, call:uint32(SM4Engine::tau, ldloc:uint32(Z)))
|
||||
stloc:int32(var_1_0F, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(13)))
|
||||
stloc:int32(var_2_18, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(23)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC8B RID: 48267 RVA: 0x0029AAE0 File Offset: 0x00298CE0
|
||||
[Token(Token = "0x600BC8B")]
|
||||
[Address(RVA = "0x2738810", Offset = "0x2737810", VA = "0x182738810")]
|
||||
private void ExpandKey(bool forEncryption, byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
uint[] fk = SM4Engine.FK;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
uint[] fk2 = SM4Engine.FK;
|
||||
uint[] fk3 = SM4Engine.FK;
|
||||
uint[] fk4 = SM4Engine.FK;
|
||||
uint[] array = this.rk;
|
||||
if (!forEncryption)
|
||||
{
|
||||
uint num4 = SM4Engine.CK[0];
|
||||
uint num5 = this.T_ap(num4);
|
||||
array[15] = num5;
|
||||
uint[] array2 = this.rk;
|
||||
uint num6 = SM4Engine.CK[0];
|
||||
uint num7 = this.T_ap(num6);
|
||||
array2[15] = num7;
|
||||
uint[] array3 = this.rk;
|
||||
uint num8 = SM4Engine.CK[1];
|
||||
uint num9 = this.T_ap(num8);
|
||||
array3[14] = num9;
|
||||
uint[] array4 = this.rk;
|
||||
int length = array4.Length;
|
||||
uint num10 = SM4Engine.CK[1];
|
||||
uint num11 = this.T_ap(num10);
|
||||
array4[14] = num11;
|
||||
uint[] array5 = this.rk;
|
||||
int length2 = array5.Length;
|
||||
uint num12 = array5[this];
|
||||
uint[] ck = SM4Engine.CK;
|
||||
uint num14;
|
||||
uint num13 = this.T_ap(num14);
|
||||
array5[0] = num13;
|
||||
while (4UL <= (ulong)31L)
|
||||
{
|
||||
}
|
||||
return;
|
||||
}
|
||||
uint num15 = SM4Engine.CK[0];
|
||||
uint num16 = this.T_ap(num15);
|
||||
array[0] = num16;
|
||||
uint[] array6 = this.rk;
|
||||
uint num17 = SM4Engine.CK[0];
|
||||
uint num18 = this.T_ap(num17);
|
||||
array6[0] = num18;
|
||||
uint[] array7 = this.rk;
|
||||
int length3 = array7.Length;
|
||||
uint num19 = SM4Engine.CK[1];
|
||||
uint num20 = this.T_ap(num19);
|
||||
array7[1] = num20;
|
||||
uint[] array8 = this.rk;
|
||||
int length4 = array8.Length;
|
||||
uint num21 = SM4Engine.CK[1];
|
||||
uint num22 = this.T_ap(num21);
|
||||
array8[1] = num22;
|
||||
uint[] array9 = this.rk;
|
||||
int length5 = array9.Length;
|
||||
uint[] ck2 = SM4Engine.CK;
|
||||
uint num24;
|
||||
uint num23 = this.T_ap(num24);
|
||||
array9[0] = num23;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC8C RID: 48268 RVA: 0x0029ACF0 File Offset: 0x00298EF0
|
||||
[Token(Token = "0x600BC8C")]
|
||||
[Address(RVA = "0x27393E0", Offset = "0x27383E0", VA = "0x1827393E0")]
|
||||
private static uint L(uint B)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC8C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::L(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32(var_0_07, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(2)))
|
||||
stloc:int32(var_1_10, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(10)))
|
||||
stloc:int32(var_2_19, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(18)))
|
||||
stloc:int32(var_3_22, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](B), ldc.i4:int32(24)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC8D RID: 48269 RVA: 0x0029AD20 File Offset: 0x00298F20
|
||||
[Token(Token = "0x600BC8D")]
|
||||
[Address(RVA = "0x2739780", Offset = "0x2738780", VA = "0x182739780")]
|
||||
private static uint T(uint Z)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC8D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::T(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_06, call:uint32(SM4Engine::tau, ldloc:uint32(Z)))
|
||||
stloc:int32(var_1_0E, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(2)))
|
||||
stloc:int32(var_2_17, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(10)))
|
||||
stloc:int32(var_3_20, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(18)))
|
||||
stloc:int32(var_4_29, call:int32(Integers::RotateLeft, ldloc:uint32[exp:int32](Z), ldc.i4:int32(24)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC8E RID: 48270 RVA: 0x0029AD58 File Offset: 0x00298F58
|
||||
[Token(Token = "0x600BC8E")]
|
||||
[Address(RVA = "0x2739210", Offset = "0x2738210", VA = "0x182739210", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC8E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4E:
|
||||
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SM4 requires a 128 bit key"), ldstr:string("parameters")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D8B RID: 7563
|
||||
// (get) Token: 0x0600BC8F RID: 48271 RVA: 0x0029ADC4 File Offset: 0x00298FC4
|
||||
[Token(Token = "0x17001D8B")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC8F")]
|
||||
[Address(RVA = "0x2739910", Offset = "0x2738910", VA = "0x182739910", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SM4";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D8C RID: 7564
|
||||
// (get) Token: 0x0600BC90 RID: 48272 RVA: 0x0029ADD8 File Offset: 0x00298FD8
|
||||
[Token(Token = "0x17001D8C")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BC90")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC91 RID: 48273 RVA: 0x0029ADE8 File Offset: 0x00298FE8
|
||||
[Token(Token = "0x600BC91")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC92 RID: 48274 RVA: 0x0029ADF8 File Offset: 0x00298FF8
|
||||
[Token(Token = "0x600BC92")]
|
||||
[Address(RVA = "0x2739450", Offset = "0x2738450", VA = "0x182739450", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC92)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SM4Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A4:
|
||||
stloc:InvalidOperationException(var_16_AE, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SM4 not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC93 RID: 48275 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC93")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC94 RID: 48276 RVA: 0x0029AEB4 File Offset: 0x002990B4
|
||||
[Token(Token = "0x600BC94")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public SM4Engine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC95 RID: 48277 RVA: 0x0029AEC8 File Offset: 0x002990C8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BC95")]
|
||||
[Address(RVA = "0x2739840", Offset = "0x2738840", VA = "0x182739840")]
|
||||
static SM4Engine()
|
||||
{
|
||||
byte[] array = new byte[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.C1122CB95F41A6F2E808A0B815C822BFDAB9F180).FieldHandle);
|
||||
SM4Engine.Sbox = array;
|
||||
uint[] array2 = new uint[32];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.A77B822E6880234B59FD1904BF79AF68F5CB623F).FieldHandle);
|
||||
SM4Engine.CK = array2;
|
||||
uint[] array3 = new uint[4];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.321CB68F886E22F95877B3535C1B34A6A94A40B6).FieldHandle);
|
||||
SM4Engine.FK = array3;
|
||||
}
|
||||
|
||||
// Token: 0x040076CD RID: 30413
|
||||
[Token(Token = "0x40076CD")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x040076CE RID: 30414
|
||||
[Token(Token = "0x40076CE")]
|
||||
private static readonly byte[] Sbox;
|
||||
|
||||
// Token: 0x040076CF RID: 30415
|
||||
[Token(Token = "0x40076CF")]
|
||||
private static readonly uint[] CK;
|
||||
|
||||
// Token: 0x040076D0 RID: 30416
|
||||
[Token(Token = "0x40076D0")]
|
||||
private static readonly uint[] FK;
|
||||
|
||||
// Token: 0x040076D1 RID: 30417
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076D1")]
|
||||
private uint[] rk;
|
||||
}
|
||||
}
|
||||
+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: 0x02001D8C RID: 7564
|
||||
[Token(Token = "0x2001D8C")]
|
||||
public class Salsa20Engine : IStreamCipher
|
||||
{
|
||||
// Token: 0x0600BC96 RID: 48278 RVA: 0x0029AF24 File Offset: 0x00299124
|
||||
[Token(Token = "0x600BC96")]
|
||||
[Address(RVA = "0x2739F40", Offset = "0x2738F40", VA = "0x182739F40")]
|
||||
internal void PackTauOrSigma(int keyLength, uint[] state, int stateOffset)
|
||||
{
|
||||
uint num = Salsa20Engine.TAU_SIGMA[keyLength];
|
||||
state[0] = num;
|
||||
uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA;
|
||||
int num2 = keyLength + 1;
|
||||
uint num3 = tau_SIGMA[num2];
|
||||
int num4 = stateOffset + 1;
|
||||
state[0] = num3;
|
||||
uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA;
|
||||
uint num5;
|
||||
state[0] = num5;
|
||||
uint num6 = Salsa20Engine.TAU_SIGMA[keyLength];
|
||||
state[0] = num6;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC97 RID: 48279 RVA: 0x0029AF90 File Offset: 0x00299190
|
||||
[Token(Token = "0x600BC97")]
|
||||
[Address(RVA = "0x273B130", Offset = "0x273A130", VA = "0x18273B130")]
|
||||
public Salsa20Engine()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC97)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_49:
|
||||
stloc:ArgumentException(var_4_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC98 RID: 48280 RVA: 0x0029AFF4 File Offset: 0x002991F4
|
||||
[Token(Token = "0x600BC98")]
|
||||
[Address(RVA = "0x273B240", Offset = "0x273A240", VA = "0x18273B240")]
|
||||
public Salsa20Engine(int rounds)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC98)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_43:
|
||||
stloc:ArgumentException(var_3_4D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC99 RID: 48281 RVA: 0x0029B050 File Offset: 0x00299250
|
||||
[Token(Token = "0x600BC99")]
|
||||
[Address(RVA = "0x2739B60", Offset = "0x2738B60", VA = "0x182739B60", Slot = "9")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC99)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_52:
|
||||
stloc:InvalidOperationException(var_8_59, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_7)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D8D RID: 7565
|
||||
// (get) Token: 0x0600BC9A RID: 48282 RVA: 0x0029B0B8 File Offset: 0x002992B8
|
||||
[Token(Token = "0x17001D8D")]
|
||||
protected virtual int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600BC9A")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D8E RID: 7566
|
||||
// (get) Token: 0x0600BC9B RID: 48283 RVA: 0x0029B0C8 File Offset: 0x002992C8
|
||||
[Token(Token = "0x17001D8E")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC9B")]
|
||||
[Address(RVA = "0x273B300", Offset = "0x273A300", VA = "0x18273B300", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.rounds;
|
||||
int num2 = this.rounds;
|
||||
return "Salsa20" + "/" + num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC9C RID: 48284 RVA: 0x0029B0F4 File Offset: 0x002992F4
|
||||
[Token(Token = "0x600BC9C")]
|
||||
[Address(RVA = "0x273A420", Offset = "0x2739420", VA = "0x18273A420", Slot = "12")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC9C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ReturnByte(System.Byte)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_43:
|
||||
stloc:MaxBytesExceededException(var_5_4D, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV; Change IV")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC9D RID: 48285 RVA: 0x0029B150 File Offset: 0x00299350
|
||||
[Token(Token = "0x600BC9D")]
|
||||
[Address(RVA = "0x2739A60", Offset = "0x2738A60", VA = "0x182739A60", Slot = "13")]
|
||||
protected virtual void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 8)
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC9E RID: 48286 RVA: 0x0029B178 File Offset: 0x00299378
|
||||
[Token(Token = "0x600BC9E")]
|
||||
[Address(RVA = "0x273A130", Offset = "0x2739130", VA = "0x18273A130", Slot = "14")]
|
||||
public virtual void ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC9E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_75:
|
||||
stloc:MaxBytesExceededException(var_10_7F, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV would be exceeded; Change IV")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC9F RID: 48287 RVA: 0x0029B208 File Offset: 0x00299408
|
||||
[Token(Token = "0x600BC9F")]
|
||||
[Address(RVA = "0x273A400", Offset = "0x2739400", VA = "0x18273A400", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
int num = 0;
|
||||
this.index = num;
|
||||
this.cW0 = (uint)num;
|
||||
this.cW2 = (uint)num;
|
||||
string algorithmName = ((IStreamCipher)this).AlgorithmName;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA0 RID: 48288 RVA: 0x0029B234 File Offset: 0x00299434
|
||||
[Token(Token = "0x600BCA0")]
|
||||
[Address(RVA = "0x273A390", Offset = "0x2739390", VA = "0x18273A390", Slot = "16")]
|
||||
protected virtual void ResetCounter()
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
int num = 0;
|
||||
array[4] = (uint)num;
|
||||
array[4] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA1 RID: 48289 RVA: 0x0029B260 File Offset: 0x00299460
|
||||
[Token(Token = "0x600BCA1")]
|
||||
[Address(RVA = "0x273AD70", Offset = "0x2739D70", VA = "0x18273AD70", Slot = "17")]
|
||||
protected virtual void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
if (keyBytes != 0)
|
||||
{
|
||||
uint[] array = this.engineState;
|
||||
uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA;
|
||||
uint num;
|
||||
array[0] = num;
|
||||
uint[] array2 = this.engineState;
|
||||
uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA;
|
||||
uint num2;
|
||||
array2[2] = num2;
|
||||
uint[] array3 = this.engineState;
|
||||
uint[] tau_SIGMA3 = Salsa20Engine.TAU_SIGMA;
|
||||
uint num3;
|
||||
array3[5] = num3;
|
||||
uint[] array4 = this.engineState;
|
||||
uint num4 = Salsa20Engine.TAU_SIGMA[keyBytes];
|
||||
array4[7] = num4;
|
||||
uint[] array5 = this.engineState;
|
||||
int num5 = 0;
|
||||
uint num6;
|
||||
ulong num7;
|
||||
Pack.LE_To_UInt32(keyBytes, num5, array5, (int)num6, (int)num7);
|
||||
int length = keyBytes.Length;
|
||||
uint[] array6 = this.engineState;
|
||||
uint num8;
|
||||
ulong num9;
|
||||
Pack.LE_To_UInt32(keyBytes, length, array6, (int)num8, (int)num9);
|
||||
}
|
||||
uint[] array7 = this.engineState;
|
||||
int num10 = 0;
|
||||
uint num11;
|
||||
ulong num12;
|
||||
Pack.LE_To_UInt32(ivBytes, num10, array7, (int)num11, (int)num12);
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA2 RID: 48290 RVA: 0x0029B334 File Offset: 0x00299534
|
||||
[Token(Token = "0x600BCA2")]
|
||||
[Address(RVA = "0x2739AC0", Offset = "0x2738AC0", VA = "0x182739AC0", Slot = "18")]
|
||||
protected virtual void GenerateKeyStream(byte[] output)
|
||||
{
|
||||
int num = this.rounds;
|
||||
uint[] array = this.engineState;
|
||||
uint[] array2 = this.x;
|
||||
Salsa20Engine.SalsaCore(num, array, array2);
|
||||
uint[] array3 = this.x;
|
||||
int num2 = 0;
|
||||
Pack.UInt32_To_LE(array3, output, num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA3 RID: 48291 RVA: 0x0029B374 File Offset: 0x00299574
|
||||
[Token(Token = "0x600BCA3")]
|
||||
[Address(RVA = "0x273A510", Offset = "0x2739510", VA = "0x18273A510")]
|
||||
internal static void SalsaCore(int rounds, uint[] input, uint[] x)
|
||||
{
|
||||
int length;
|
||||
do
|
||||
{
|
||||
length = input.Length;
|
||||
}
|
||||
while (length != 16 || x.Length != length || rounds != 1);
|
||||
uint num = input[5];
|
||||
uint num2 = input[4];
|
||||
uint num3 = input[2];
|
||||
uint num4 = input[3];
|
||||
uint num5 = input[3];
|
||||
uint num6 = input[4];
|
||||
uint num7 = input[0];
|
||||
uint num8 = input[6];
|
||||
uint num9 = input[1];
|
||||
uint num10 = input[6];
|
||||
uint num11 = input[2];
|
||||
uint num12 = input[7];
|
||||
uint num13 = input[0];
|
||||
uint num14 = input[7];
|
||||
uint num15 = input[5];
|
||||
uint num16 = input[1];
|
||||
if (rounds > 0)
|
||||
{
|
||||
int num17 = rounds - 1;
|
||||
num17++;
|
||||
num11 += num7;
|
||||
num += num14;
|
||||
num += num5;
|
||||
num += num15;
|
||||
num += num6;
|
||||
num12 += num14;
|
||||
num8 += num14;
|
||||
num10 += num8;
|
||||
num11 = num10;
|
||||
}
|
||||
uint num18 = input[0];
|
||||
num18 += num7;
|
||||
x[0] = num18;
|
||||
uint num19 = input[0];
|
||||
num19 += num13;
|
||||
x[0] = num19;
|
||||
uint num20 = input[1];
|
||||
num20 += num16;
|
||||
x[1] = num20;
|
||||
uint num21 = input[1];
|
||||
num21 += num9;
|
||||
x[1] = num21;
|
||||
uint num22 = input[2];
|
||||
num22 += num11;
|
||||
x[2] = num22;
|
||||
uint num23 = input[2];
|
||||
num23 += num3;
|
||||
x[2] = num23;
|
||||
uint num24 = input[3];
|
||||
num24 += num4;
|
||||
x[3] = num24;
|
||||
uint num25 = input[3];
|
||||
num25 += num5;
|
||||
x[3] = num25;
|
||||
uint num26 = input[4];
|
||||
num26 += num6;
|
||||
x[4] = num26;
|
||||
uint num27 = input[4];
|
||||
num27 += num2;
|
||||
x[4] = num27;
|
||||
uint num28 = input[5];
|
||||
num28 += num15;
|
||||
x[5] = num28;
|
||||
uint num29 = input[5];
|
||||
x[5] = num29;
|
||||
uint num30 = input[6];
|
||||
x[6] = num30;
|
||||
uint num31 = input[6];
|
||||
x[6] = num31;
|
||||
uint num32 = input[7];
|
||||
x[7] = num32;
|
||||
uint num33 = input[7];
|
||||
num33 += num14;
|
||||
x[7] = num33;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA4 RID: 48292 RVA: 0x0029B620 File Offset: 0x00299820
|
||||
[Token(Token = "0x600BCA4")]
|
||||
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
|
||||
internal static uint R(uint x, int y)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA5 RID: 48293 RVA: 0x0029B630 File Offset: 0x00299830
|
||||
[Token(Token = "0x600BCA5")]
|
||||
[Address(RVA = "0x273A3F0", Offset = "0x27393F0", VA = "0x18273A3F0")]
|
||||
private void ResetLimitCounter()
|
||||
{
|
||||
int num = 0;
|
||||
this.cW0 = (uint)num;
|
||||
this.cW2 = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA6 RID: 48294 RVA: 0x0029B650 File Offset: 0x00299850
|
||||
[Token(Token = "0x600BCA6")]
|
||||
[Address(RVA = "0x2739F10", Offset = "0x2738F10", VA = "0x182739F10")]
|
||||
private bool LimitExceeded()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCA6)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_0_0B, add:uint32(ldloc:uint32(var_0_06), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
|
||||
stfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this), ldloc:uint32(var_0_0B))
|
||||
stloc:uint32(var_1_19, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_1_1E, add:uint32(ldloc:uint32(var_1_19), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
|
||||
stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_1E))
|
||||
stloc:uint32(var_2_2C, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_2_31, add:uint32(ldloc:uint32(var_2_2C), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
|
||||
stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_31))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA7 RID: 48295 RVA: 0x0029B698 File Offset: 0x00299898
|
||||
[Token(Token = "0x600BCA7")]
|
||||
[Address(RVA = "0x2739EE0", Offset = "0x2738EE0", VA = "0x182739EE0")]
|
||||
private bool LimitExceeded(uint len)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCA7)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded(System.UInt32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_1_0D, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_1_12, add:uint32(ldloc:uint32(var_1_0D), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
|
||||
stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_12))
|
||||
stloc:uint32(var_2_20, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this)))
|
||||
stloc:uint32(var_2_25, add:uint32(ldloc:uint32(var_2_20), conv.u4:uint32(ldc.i4:int32[exp:uint32](1))))
|
||||
stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_25))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCA8 RID: 48296 RVA: 0x0029B6D4 File Offset: 0x002998D4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BCA8")]
|
||||
[Address(RVA = "0x273B080", Offset = "0x273A080", VA = "0x18273B080")]
|
||||
static Salsa20Engine()
|
||||
{
|
||||
byte[] array = Strings.ToAsciiByteArray("expand 16-byte kexpand 32-byte k");
|
||||
int num = 0;
|
||||
Salsa20Engine.TAU_SIGMA = Pack.LE_To_UInt32(array, num, 8);
|
||||
Salsa20Engine.sigma = Strings.ToAsciiByteArray("expand 32-byte k");
|
||||
Salsa20Engine.tau = Strings.ToAsciiByteArray("expand 16-byte k");
|
||||
}
|
||||
|
||||
// Token: 0x040076D2 RID: 30418
|
||||
[Token(Token = "0x40076D2")]
|
||||
public static readonly int DEFAULT_ROUNDS;
|
||||
|
||||
// Token: 0x040076D3 RID: 30419
|
||||
[Token(Token = "0x40076D3")]
|
||||
private const int StateSize = 16;
|
||||
|
||||
// Token: 0x040076D4 RID: 30420
|
||||
[Token(Token = "0x40076D4")]
|
||||
private static readonly uint[] TAU_SIGMA;
|
||||
|
||||
// Token: 0x040076D5 RID: 30421
|
||||
[Token(Token = "0x40076D5")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] sigma;
|
||||
|
||||
// Token: 0x040076D6 RID: 30422
|
||||
[Token(Token = "0x40076D6")]
|
||||
[Obsolete]
|
||||
protected static readonly byte[] tau;
|
||||
|
||||
// Token: 0x040076D7 RID: 30423
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076D7")]
|
||||
protected int rounds;
|
||||
|
||||
// Token: 0x040076D8 RID: 30424
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x40076D8")]
|
||||
private int index;
|
||||
|
||||
// Token: 0x040076D9 RID: 30425
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076D9")]
|
||||
internal uint[] engineState;
|
||||
|
||||
// Token: 0x040076DA RID: 30426
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076DA")]
|
||||
internal uint[] x;
|
||||
|
||||
// Token: 0x040076DB RID: 30427
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076DB")]
|
||||
private byte[] keyStream;
|
||||
|
||||
// Token: 0x040076DC RID: 30428
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40076DC")]
|
||||
private bool initialised;
|
||||
|
||||
// Token: 0x040076DD RID: 30429
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x40076DD")]
|
||||
private uint cW0;
|
||||
|
||||
// Token: 0x040076DE RID: 30430
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40076DE")]
|
||||
private uint cW1;
|
||||
|
||||
// Token: 0x040076DF RID: 30431
|
||||
[FieldOffset(Offset = "0x3C")]
|
||||
[Token(Token = "0x40076DF")]
|
||||
private uint cW2;
|
||||
}
|
||||
}
|
||||
+311
@@ -0,0 +1,311 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D88 RID: 7560
|
||||
[Token(Token = "0x2001D88")]
|
||||
public class SeedEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BC68 RID: 48232 RVA: 0x0029A1C8 File Offset: 0x002983C8
|
||||
[Token(Token = "0x600BC68")]
|
||||
[Address(RVA = "0x273B5B0", Offset = "0x273A5B0", VA = "0x18273B5B0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
do
|
||||
{
|
||||
this.forEncryption = forEncryption;
|
||||
}
|
||||
while (parameters == 0 || parameters == 0);
|
||||
byte[] array2;
|
||||
int[] array = this.createWorkingKey(array2);
|
||||
this.wKey = array;
|
||||
}
|
||||
|
||||
// Token: 0x17001D89 RID: 7561
|
||||
// (get) Token: 0x0600BC69 RID: 48233 RVA: 0x0029A200 File Offset: 0x00298400
|
||||
[Token(Token = "0x17001D89")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BC69")]
|
||||
[Address(RVA = "0x273BE50", Offset = "0x273AE50", VA = "0x18273BE50", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SEED";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D8A RID: 7562
|
||||
// (get) Token: 0x0600BC6A RID: 48234 RVA: 0x0029A214 File Offset: 0x00298414
|
||||
[Token(Token = "0x17001D8A")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BC6A")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BC6B RID: 48235 RVA: 0x0029A224 File Offset: 0x00298424
|
||||
[Token(Token = "0x600BC6B")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC6C RID: 48236 RVA: 0x0029A234 File Offset: 0x00298434
|
||||
[Token(Token = "0x600BC6C")]
|
||||
[Address(RVA = "0x273B6B0", Offset = "0x273A6B0", VA = "0x18273B6B0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBuf, int inOff, byte[] outBuf, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC6C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_B1:
|
||||
stloc:InvalidOperationException(var_18_BB, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SEED engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC6D RID: 48237 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC6D")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC6E RID: 48238 RVA: 0x0029A300 File Offset: 0x00298500
|
||||
[Token(Token = "0x600BC6E")]
|
||||
[Address(RVA = "0x273BB80", Offset = "0x273AB80", VA = "0x18273BB80")]
|
||||
private int[] createWorkingKey(byte[] inKey)
|
||||
{
|
||||
int[] array = new int[32];
|
||||
int i = 0;
|
||||
int length = inKey.Length;
|
||||
i++;
|
||||
byte b;
|
||||
i += (int)b;
|
||||
while (i <= 7)
|
||||
{
|
||||
}
|
||||
i += 8;
|
||||
i++;
|
||||
byte b2 = (byte)((int)b2 + i);
|
||||
while (i <= 7)
|
||||
{
|
||||
}
|
||||
uint[] kc = SeedEngine.KC;
|
||||
b2 = (byte)((int)b2 + i);
|
||||
int num = this.G((int)b2);
|
||||
array[0] = num;
|
||||
uint[] kc2 = SeedEngine.KC;
|
||||
i++;
|
||||
int num2;
|
||||
array[0] = num2;
|
||||
if (i != 1)
|
||||
{
|
||||
}
|
||||
i++;
|
||||
i += 2;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC6F RID: 48239 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC6F")]
|
||||
[Address(RVA = "0x5028A0", Offset = "0x5018A0", VA = "0x1805028A0")]
|
||||
private int extractW1(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC70 RID: 48240 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BC70")]
|
||||
[Address(RVA = "0x273BE40", Offset = "0x273AE40", VA = "0x18273BE40")]
|
||||
private int extractW0(long lVal)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BC71 RID: 48241 RVA: 0x0029A384 File Offset: 0x00298584
|
||||
[Token(Token = "0x600BC71")]
|
||||
[Address(RVA = "0x273BF90", Offset = "0x273AF90", VA = "0x18273BF90")]
|
||||
private long rotateLeft8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC72 RID: 48242 RVA: 0x0029A394 File Offset: 0x00298594
|
||||
[Token(Token = "0x600BC72")]
|
||||
[Address(RVA = "0x273BFA0", Offset = "0x273AFA0", VA = "0x18273BFA0")]
|
||||
private long rotateRight8(long x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC73 RID: 48243 RVA: 0x0029A3A4 File Offset: 0x002985A4
|
||||
[Token(Token = "0x600BC73")]
|
||||
[Address(RVA = "0x273BB20", Offset = "0x273AB20", VA = "0x18273BB20")]
|
||||
private long bytesToLong(byte[] src, int srcOff)
|
||||
{
|
||||
int num = 0;
|
||||
byte b;
|
||||
num += (int)b;
|
||||
while (srcOff <= 7)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC74 RID: 48244 RVA: 0x0029A3C0 File Offset: 0x002985C0
|
||||
[Token(Token = "0x600BC74")]
|
||||
[Address(RVA = "0x273BE80", Offset = "0x273AE80", VA = "0x18273BE80")]
|
||||
private void longToBytes(byte[] dest, int destOff, long value)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BC75 RID: 48245 RVA: 0x0029A3D4 File Offset: 0x002985D4
|
||||
[Token(Token = "0x600BC75")]
|
||||
[Address(RVA = "0x273B490", Offset = "0x273A490", VA = "0x18273B490")]
|
||||
private int G(int x)
|
||||
{
|
||||
uint[] ss = SeedEngine.SS0;
|
||||
uint[] ss2 = SeedEngine.SS1;
|
||||
uint[] ss3 = SeedEngine.SS2;
|
||||
uint num = SeedEngine.SS3[x];
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC76 RID: 48246 RVA: 0x0029A404 File Offset: 0x00298604
|
||||
[Token(Token = "0x600BC76")]
|
||||
[Address(RVA = "0x273B3C0", Offset = "0x273A3C0", VA = "0x18273B3C0")]
|
||||
private long F(int ki0, int ki1, long r)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BC76)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::F(System.Int32,System.Int32,System.Int64)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32(var_0_07, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_1_0F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_2_17, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_1_1F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_3_27, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_4_2F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r)))
|
||||
stloc:int32(var_4_35, add:int32(ldloc:int32(var_4_2F), ldloc:int32(var_1_1F)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BC77 RID: 48247 RVA: 0x0029A448 File Offset: 0x00298648
|
||||
[Token(Token = "0x600BC77")]
|
||||
[Address(RVA = "0x273BEE0", Offset = "0x273AEE0", VA = "0x18273BEE0")]
|
||||
private int phaseCalc1(int r0, int ki0, int r1, int ki1)
|
||||
{
|
||||
int num = this.G(r0);
|
||||
return this.G(r0);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC78 RID: 48248 RVA: 0x0029A464 File Offset: 0x00298664
|
||||
[Token(Token = "0x600BC78")]
|
||||
[Address(RVA = "0x273BF20", Offset = "0x273AF20", VA = "0x18273BF20")]
|
||||
private int phaseCalc2(int r0, int ki0, int r1, int ki1)
|
||||
{
|
||||
int num = this.G(r0);
|
||||
int num2 = this.G(r0);
|
||||
int num3 = this.G(r0);
|
||||
return this.G(r0);
|
||||
}
|
||||
|
||||
// Token: 0x0600BC79 RID: 48249 RVA: 0x0029A490 File Offset: 0x00298690
|
||||
[Token(Token = "0x600BC79")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public SeedEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BC7A RID: 48250 RVA: 0x0029A4A4 File Offset: 0x002986A4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BC7A")]
|
||||
[Address(RVA = "0x273B9E0", Offset = "0x273A9E0", VA = "0x18273B9E0")]
|
||||
static SeedEngine()
|
||||
{
|
||||
uint[] array = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D9642D3FF9879EC5C4BB28AE7001CEE3D43956AB).FieldHandle);
|
||||
SeedEngine.SS0 = array;
|
||||
uint[] array2 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.8C7FEE53346CDB1B119FCAD8D605F476400A03CE).FieldHandle);
|
||||
SeedEngine.SS1 = array2;
|
||||
uint[] array3 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EEDBCB52C67688DE5F5FD9209E8A25BC786A2430).FieldHandle);
|
||||
SeedEngine.SS2 = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.F8AB5CA414AD9084F3E8B8D887217E6DFC32C62C).FieldHandle);
|
||||
SeedEngine.SS3 = array4;
|
||||
uint[] array5 = new uint[16];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.641D0D9E9CE6DDAC3F12536417A6A64C8DDD4776).FieldHandle);
|
||||
SeedEngine.KC = array5;
|
||||
}
|
||||
|
||||
// Token: 0x040076BF RID: 30399
|
||||
[Token(Token = "0x40076BF")]
|
||||
private const int BlockSize = 16;
|
||||
|
||||
// Token: 0x040076C0 RID: 30400
|
||||
[Token(Token = "0x40076C0")]
|
||||
private static readonly uint[] SS0;
|
||||
|
||||
// Token: 0x040076C1 RID: 30401
|
||||
[Token(Token = "0x40076C1")]
|
||||
private static readonly uint[] SS1;
|
||||
|
||||
// Token: 0x040076C2 RID: 30402
|
||||
[Token(Token = "0x40076C2")]
|
||||
private static readonly uint[] SS2;
|
||||
|
||||
// Token: 0x040076C3 RID: 30403
|
||||
[Token(Token = "0x40076C3")]
|
||||
private static readonly uint[] SS3;
|
||||
|
||||
// Token: 0x040076C4 RID: 30404
|
||||
[Token(Token = "0x40076C4")]
|
||||
private static readonly uint[] KC;
|
||||
|
||||
// Token: 0x040076C5 RID: 30405
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076C5")]
|
||||
private int[] wKey;
|
||||
|
||||
// Token: 0x040076C6 RID: 30406
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076C6")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D89 RID: 7561
|
||||
[Token(Token = "0x2001D89")]
|
||||
public class SeedWrapEngine : Rfc3394WrapEngine
|
||||
{
|
||||
// Token: 0x0600BC7B RID: 48251 RVA: 0x0029A540 File Offset: 0x00298740
|
||||
[Token(Token = "0x600BC7B")]
|
||||
[Address(RVA = "0x273BFB0", Offset = "0x273AFB0", VA = "0x18273BFB0")]
|
||||
public SeedWrapEngine()
|
||||
{
|
||||
SeedEngine seedEngine;
|
||||
seedEngine.Reset();
|
||||
byte[] array = new byte[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.5DBC1A420B61F594A834C83E3DDC229C8AB77FDC).FieldHandle);
|
||||
this.iv = array;
|
||||
base..ctor();
|
||||
this.engine = seedEngine;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1133
@@ -0,0 +1,1133 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D8D RID: 7565
|
||||
[Token(Token = "0x2001D8D")]
|
||||
public sealed class SerpentEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x0600BCA9 RID: 48297 RVA: 0x0029B71C File Offset: 0x0029991C
|
||||
[Token(Token = "0x600BCA9")]
|
||||
[Address(RVA = "0x2741490", Offset = "0x2740490", VA = "0x182741490", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCA9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::MakeWorkingKey(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_73:
|
||||
stloc:int32[](var_9_7D, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(132)))
|
||||
stloc:int32(var_11_85, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
|
||||
stloc:int32(var_12_8F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldloc:int32[][exp:int32](var_9_7D)))
|
||||
stloc:int32(var_13_97, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
|
||||
stloc:uint32(var_14_9D, add:uint32(ldloc:uint32(var_10), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldc.i4:int32(0), ldtoken:RuntimeTypeHandle[exp:int32](BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase))
|
||||
stloc:int32(var_16_AC, ldc.i4:int32(0))
|
||||
call:void(Array::Copy, ldloc:int32[][exp:Array](var_1_07), ldloc:uint32[exp:int32](var_10), ldloc:int32[][exp:Array](var_9_7D), ldloc:int32(var_16_AC), ldloc:uint32[exp:int32](var_10))
|
||||
stloc:int32(var_17_C3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_18_CE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldloc:uint32[exp:int32](var_10)))
|
||||
stloc:int32(var_19_D7, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:uint32(var_20_DD, add:uint32(ldloc:uint32(var_10), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_18_CE))
|
||||
stloc:int32(var_21_F0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_22_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0)))
|
||||
stloc:int32(var_23_104, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1)))
|
||||
stloc:int32(var_24_10E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1)))
|
||||
stloc:int32(var_23_112, ldloc:int32(var_24_10E))
|
||||
stloc:int32(var_21_116, ldloc:int32(var_24_10E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_116))
|
||||
stloc:int32(var_24_122, ldloc:int32(var_23_112))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_112))
|
||||
stloc:int32(var_21_12E, ldloc:int32(var_24_122))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_122))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_12E))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_23_112))
|
||||
stloc:int32(var_25_150, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(0), ldloc:int32(var_25_150))
|
||||
stloc:int32(var_26_162, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1), ldloc:int32(var_26_162))
|
||||
stloc:int32(var_27_174, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(1), ldloc:int32(var_27_174))
|
||||
stloc:int32(var_28_187, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_29_191, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2)))
|
||||
stloc:int32(var_30_19B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3)))
|
||||
stloc:int32(var_22_19F, ldloc:int32(var_30_19B))
|
||||
stloc:int32(var_19_1A3, ldloc:int32(var_30_19B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_19F))
|
||||
stloc:int32(var_29_1B3, ldloc:int32(var_19_1A3))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_1B3))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_19B))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_112))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2), ldloc:int32(var_22_19F))
|
||||
stloc:int32(var_31_1DD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(2), ldloc:int32(var_31_1DD))
|
||||
stloc:int32(var_32_1EF, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3), ldloc:int32(var_32_1EF))
|
||||
stloc:int32(var_33_201, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(3), ldloc:int32(var_33_201))
|
||||
stloc:int32(var_34_214, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_35_21E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4)))
|
||||
stloc:int32(var_36_228, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5)))
|
||||
stloc:int32(var_29_22C, ldloc:int32(var_35_21E))
|
||||
stloc:int32(var_34_234, ldloc:int32(var_35_21E))
|
||||
stloc:int32(var_36_238, ldloc:int32(var_35_21E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_234))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_238))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_22C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_238))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4), ldloc:int32(var_29_22C))
|
||||
stloc:int32(var_37_26E, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(4), ldloc:int32(var_37_26E))
|
||||
stloc:int32(var_38_280, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5), ldloc:int32(var_38_280))
|
||||
stloc:int32(var_39_292, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(5), ldloc:int32(var_39_292))
|
||||
stloc:int32(var_40_2A5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_41_2AF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6)))
|
||||
stloc:int32(var_42_2B9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6)))
|
||||
stloc:int32(var_43_2C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7)))
|
||||
stloc:int32(var_36_2C7, ldloc:int32(var_41_2AF))
|
||||
stloc:int32(var_29_2CB, ldloc:int32(var_41_2AF))
|
||||
stloc:int32(var_35_2CF, ldloc:int32(var_36_2C7))
|
||||
stloc:int32(var_19_2D3, ldloc:int32(var_35_2CF))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_2CB))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_2C3))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_2CF))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_2B9))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6), ldloc:int32(var_42_2B9))
|
||||
stloc:int32(var_44_309, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(6), ldloc:int32(var_44_309))
|
||||
stloc:int32(var_45_31B, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7), ldloc:int32(var_45_31B))
|
||||
stloc:int32(var_46_32D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(7), ldloc:int32(var_46_32D))
|
||||
stloc:int32(var_47_340, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_48_34A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8)))
|
||||
stloc:int32(var_29_352, ldloc:int32(var_19_2D3))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_352))
|
||||
stloc:int32(var_47_35E, ldloc:int32(var_48_34A))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_34A))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_35E))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_35E))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8), ldloc:int32(var_47_35E))
|
||||
stloc:int32(var_49_388, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(8), ldloc:int32(var_49_388))
|
||||
stloc:int32(var_50_39A, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(9), ldloc:int32(var_50_39A))
|
||||
stloc:int32(var_51_3AD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(9), ldloc:int32(var_51_3AD))
|
||||
stloc:int32(var_52_3C1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_53_3CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10)))
|
||||
stloc:int32(var_54_3D7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10)))
|
||||
stloc:int32(var_19_3DF, ldloc:int32(var_53_3CC))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_3DF))
|
||||
stloc:int32(var_52_3EB, ldloc:int32(var_19_3DF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_3EB))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_3EB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_3DF))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10), ldloc:int32(var_52_3EB))
|
||||
stloc:int32(var_55_416, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(10), ldloc:int32(var_55_416))
|
||||
stloc:int32(var_56_429, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(11), ldloc:int32(var_56_429))
|
||||
stloc:int32(var_57_43C, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(11), ldloc:int32(var_57_43C))
|
||||
stloc:int32(var_58_450, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_59_45B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13)))
|
||||
stloc:int32(var_41_463, ldloc:int32(var_54_3D7))
|
||||
stloc:int32(var_29_467, ldloc:int32(var_41_463))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_463))
|
||||
stloc:int32(var_19_473, ldloc:int32(var_41_463))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_473))
|
||||
stloc:int32(var_59_47F, ldloc:int32(var_29_467))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_473))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_47F))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(12), ldloc:int32(var_41_463))
|
||||
stloc:int32(var_60_4A2, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(12), ldloc:int32(var_60_4A2))
|
||||
stloc:int32(var_61_4B5, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13), ldloc:int32(var_61_4B5))
|
||||
stloc:int32(var_62_4C8, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(13), ldloc:int32(var_62_4C8))
|
||||
stloc:int32(var_63_4DC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_64_4E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14)))
|
||||
stloc:int32(var_65_4F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15)))
|
||||
stloc:int32(var_53_4F6, ldloc:int32(var_65_4F2))
|
||||
stloc:int32(var_29_4FA, ldloc:int32(var_53_4F6))
|
||||
stloc:int32(var_54_4FE, ldloc:int32(var_53_4F6))
|
||||
stloc:int32(var_19_502, ldloc:int32(var_29_4FA))
|
||||
stloc:int32(var_65_506, ldloc:int32(var_19_502))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_506))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4FE))
|
||||
stloc:int32(var_64_51E, ldloc:int32(var_54_4FE))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_51E))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4F6))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14), ldloc:int32(var_54_4FE))
|
||||
stloc:int32(var_66_541, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(14), ldloc:int32(var_66_541))
|
||||
stloc:int32(var_67_554, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15), ldloc:int32(var_67_554))
|
||||
stloc:int32(var_68_567, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(15), ldloc:int32(var_68_567))
|
||||
stloc:int32(var_69_57B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_70_586, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16)))
|
||||
stloc:int32(var_71_591, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17)))
|
||||
stloc:int32(var_72_59C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17)))
|
||||
stloc:int32(var_53_5A4, ldloc:int32(var_72_59C))
|
||||
stloc:int32(var_70_5AC, ldloc:int32(var_71_591))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_5AC))
|
||||
stloc:int32(var_64_5B8, ldloc:int32(var_53_5A4))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_5B8))
|
||||
stloc:int32(var_69_5C4, ldloc:int32(var_70_5AC))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_59C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_5C4))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16), ldloc:int32(var_64_5B8))
|
||||
stloc:int32(var_73_5E7, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(16), ldloc:int32(var_73_5E7))
|
||||
stloc:int32(var_74_5FA, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17), ldloc:int32(var_74_5FA))
|
||||
stloc:int32(var_75_60D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(17), ldloc:int32(var_75_60D))
|
||||
stloc:int32(var_76_621, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_77_62C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18)))
|
||||
stloc:int32(var_78_637, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19)))
|
||||
stloc:int32(var_71_63F, ldloc:int32(var_29_4FA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_63F))
|
||||
stloc:int32(var_77_64B, ldloc:int32(var_71_63F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_5AC))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_64B))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_637))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18), ldloc:int32(var_71_63F))
|
||||
stloc:int32(var_79_67A, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(18), ldloc:int32(var_79_67A))
|
||||
stloc:int32(var_80_68D, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19), ldloc:int32(var_80_68D))
|
||||
stloc:int32(var_81_6A0, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(19), ldloc:int32(var_81_6A0))
|
||||
stloc:int32(var_82_6B4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_83_6BF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20)))
|
||||
stloc:int32(var_84_6CA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21)))
|
||||
stloc:int32(var_29_6CE, ldloc:int32(var_83_6BF))
|
||||
stloc:int32(var_82_6D6, ldloc:int32(var_83_6BF))
|
||||
stloc:int32(var_84_6DA, ldloc:int32(var_83_6BF))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_6D6))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_6DA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_6CE))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_6DA))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20), ldloc:int32(var_29_6CE))
|
||||
stloc:int32(var_85_711, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(20), ldloc:int32(var_85_711))
|
||||
stloc:int32(var_86_724, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21), ldloc:int32(var_86_724))
|
||||
stloc:int32(var_87_737, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(21), ldloc:int32(var_87_737))
|
||||
stloc:int32(var_88_74B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_89_756, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22)))
|
||||
stloc:int32(var_90_761, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23)))
|
||||
stloc:int32(var_83_765, ldloc:int32(var_84_6DA))
|
||||
stloc:int32(var_70_769, ldloc:int32(var_83_765))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_6CE))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_761))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_756))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22), ldloc:int32(var_89_756))
|
||||
stloc:int32(var_91_79C, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(22), ldloc:int32(var_91_79C))
|
||||
stloc:int32(var_92_7AF, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23), ldloc:int32(var_92_7AF))
|
||||
stloc:int32(var_93_7C2, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(23), ldloc:int32(var_93_7C2))
|
||||
stloc:int32(var_94_7D6, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_95_7E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24)))
|
||||
stloc:int32(var_96_7EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25)))
|
||||
stloc:int32(var_29_7F4, ldloc:int32(var_70_769))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_7F4))
|
||||
stloc:int32(var_96_800, ldloc:int32(var_95_7E1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_7E1))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_800))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_800))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24), ldloc:int32(var_96_800))
|
||||
stloc:int32(var_97_82B, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(24), ldloc:int32(var_97_82B))
|
||||
stloc:int32(var_98_83E, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25), ldloc:int32(var_98_83E))
|
||||
stloc:int32(var_99_851, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(25), ldloc:int32(var_99_851))
|
||||
stloc:int32(var_100_865, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_101_870, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26)))
|
||||
stloc:int32(var_102_87B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27)))
|
||||
stloc:int32(var_70_887, ldloc:int32(var_101_870))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_887))
|
||||
stloc:int32(var_100_893, ldloc:int32(var_70_887))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_893))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_893))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_887))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26), ldloc:int32(var_100_893))
|
||||
stloc:int32(var_103_8BE, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(26), ldloc:int32(var_103_8BE))
|
||||
stloc:int32(var_104_8D1, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27), ldloc:int32(var_104_8D1))
|
||||
stloc:int32(var_105_8E4, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(27), ldloc:int32(var_105_8E4))
|
||||
stloc:int32(var_106_8F8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_107_903, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28)))
|
||||
stloc:int32(var_108_90E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29)))
|
||||
stloc:int32(var_101_91A, ldloc:int32(var_107_903))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_91A))
|
||||
stloc:int32(var_108_92A, ldloc:int32(var_101_91A))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_92A))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_903))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_92A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28), ldloc:int32(var_101_91A))
|
||||
stloc:int32(var_109_955, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(28), ldloc:int32(var_109_955))
|
||||
stloc:int32(var_110_968, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29), ldloc:int32(var_110_968))
|
||||
stloc:int32(var_111_97B, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(29), ldloc:int32(var_111_97B))
|
||||
stloc:int32(var_112_98F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_113_99A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30)))
|
||||
stloc:int32(var_114_9A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31)))
|
||||
stloc:int32(var_102_9A9, ldloc:int32(var_114_9A5))
|
||||
stloc:int32(var_29_9AD, ldloc:int32(var_102_9A9))
|
||||
stloc:int32(var_70_9B1, ldloc:int32(var_29_9AD))
|
||||
stloc:int32(var_107_9B5, ldloc:int32(var_113_99A))
|
||||
stloc:int32(var_114_9B9, ldloc:int32(var_70_9B1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_9B9))
|
||||
stloc:int32(var_102_9C5, ldloc:int32(var_113_99A))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_9B5))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_9C5))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_99A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30), ldloc:int32(var_107_9B5))
|
||||
stloc:int32(var_115_9F4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(30), ldloc:int32(var_115_9F4))
|
||||
stloc:int32(var_116_A07, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31), ldloc:int32(var_116_A07))
|
||||
stloc:int32(var_117_A1A, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(31), ldloc:int32(var_117_A1A))
|
||||
stloc:int32(var_118_A2E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_119_A39, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32)))
|
||||
stloc:int32(var_120_A44, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32)))
|
||||
stloc:int32(var_121_A4F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33)))
|
||||
stloc:int32(var_122_A5A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33)))
|
||||
stloc:int32(var_29_A62, ldloc:int32(var_122_A5A))
|
||||
stloc:int32(var_113_A66, ldloc:int32(var_122_A5A))
|
||||
stloc:int32(var_118_A6A, ldloc:int32(var_29_A62))
|
||||
stloc:int32(var_121_A6E, ldloc:int32(var_118_A6A))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_A6E))
|
||||
stloc:int32(var_119_A7A, ldloc:int32(var_113_A66))
|
||||
stloc:int32(var_102_A7E, ldloc:int32(var_119_A7A))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A7A))
|
||||
stloc:int32(var_118_A8A, ldloc:int32(var_102_A7E))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_A5A))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_118_A8A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32), ldloc:int32(var_119_A7A))
|
||||
stloc:int32(var_123_AAD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(32), ldloc:int32(var_123_AAD))
|
||||
stloc:int32(var_124_AC0, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33), ldloc:int32(var_124_AC0))
|
||||
stloc:int32(var_125_AD3, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(33), ldloc:int32(var_125_AD3))
|
||||
stloc:int32(var_126_AE7, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_127_AF2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35)))
|
||||
stloc:int32(var_120_AF6, ldloc:int32(var_119_A7A))
|
||||
stloc:int32(var_29_AFE, ldloc:int32(var_120_AF6))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_AF6))
|
||||
stloc:int32(var_127_B0E, ldloc:int32(var_29_AFE))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B0E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_AFE))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A7A))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(34), ldloc:int32(var_120_AF6))
|
||||
stloc:int32(var_128_B39, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(34), ldloc:int32(var_128_B39))
|
||||
stloc:int32(var_129_B4C, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35), ldloc:int32(var_129_B4C))
|
||||
stloc:int32(var_130_B5F, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(35), ldloc:int32(var_130_B5F))
|
||||
stloc:int32(var_131_B73, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_132_B7E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36)))
|
||||
stloc:int32(var_133_B89, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36)))
|
||||
stloc:int32(var_131_B8D, ldloc:int32(var_132_B7E))
|
||||
stloc:int32(var_127_B91, ldloc:int32(var_132_B7E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B8D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B8D))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36), ldloc:int32(var_127_B91))
|
||||
stloc:int32(var_134_BC4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(36), ldloc:int32(var_134_BC4))
|
||||
stloc:int32(var_135_BD7, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(37), ldloc:int32(var_135_BD7))
|
||||
stloc:int32(var_136_BEA, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(37), ldloc:int32(var_136_BEA))
|
||||
stloc:int32(var_137_BFE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_138_C09, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39)))
|
||||
stloc:int32(var_132_C0D, ldloc:int32(var_133_B89))
|
||||
stloc:int32(var_138_C11, ldloc:int32(var_133_B89))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_B91))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_C11))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_C0D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_133_B89))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(38), ldloc:int32(var_133_B89))
|
||||
stloc:int32(var_139_C48, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(38), ldloc:int32(var_139_C48))
|
||||
stloc:int32(var_140_C5B, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39), ldloc:int32(var_140_C5B))
|
||||
stloc:int32(var_141_C6E, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(39), ldloc:int32(var_141_C6E))
|
||||
stloc:int32(var_142_C82, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
stloc:int32(var_143_C8D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41)))
|
||||
stloc:int32(var_144_C98, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41)))
|
||||
stloc:int32(var_127_C9C, ldloc:int32(var_143_C8D))
|
||||
stloc:int32(var_133_CA0, ldloc:int32(var_127_C9C))
|
||||
stloc:int32(var_132_CA4, ldloc:int32(var_127_C9C))
|
||||
stloc:int32(var_143_CA8, ldloc:int32(var_133_CA0))
|
||||
stloc:int32(var_144_CAC, ldloc:int32(var_143_CA8))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_CA4))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_CAC))
|
||||
stloc:int32(var_143_CC0, ldloc:int32(var_144_CAC))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_CC0))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_CC0))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(40), ldloc:int32(var_143_CC0))
|
||||
stloc:int32(var_145_CE3, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(40), ldloc:int32(var_145_CE3))
|
||||
stloc:int32(var_146_CF6, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41), ldloc:int32(var_146_CF6))
|
||||
stloc:int32(var_147_D09, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_9_7D), ldc.i4:int32(41), ldloc:int32(var_147_D09))
|
||||
stloc:int32(var_148_D1D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_9_7D)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCAA RID: 48298 RVA: 0x0029C448 File Offset: 0x0029A648
|
||||
[Token(Token = "0x600BCAA")]
|
||||
[Address(RVA = "0x273F210", Offset = "0x273E210", VA = "0x18273F210", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCAA)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::EncryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_1_0D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_0_06)))
|
||||
stloc:int32(var_2_14, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_1_16, ldloc:int32(var_2_14))
|
||||
stloc:int32(var_3_1E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(1)))
|
||||
stloc:int32(var_3_20, ldloc:int32(var_2_14))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_3_20))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_1_16))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_14))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_14))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_4_4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_5_54, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_4_4B)))
|
||||
stloc:int32(var_6_5C, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_2_60, ldloc:int32(var_6_5C))
|
||||
stloc:int32(var_7_69, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_4B), ldc.i4:int32(3)))
|
||||
stloc:int32(var_6_6C, ldloc:int32(var_2_60))
|
||||
stloc:int32(var_7_70, ldloc:int32(var_6_6C))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_60))
|
||||
stloc:int32(var_2_7B, ldloc:int32(var_6_6C))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_70))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_6C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_8_A4, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_9_AC, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
|
||||
stloc:int32(var_8_B7, ldloc:int32(var_9_AC))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_B7))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_AC))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_2_7B))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_10_E1, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_11_E9, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_E1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_11_E9))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_12_117, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_13_120, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_12_117)))
|
||||
stloc:int32(var_14_12A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(8)))
|
||||
stloc:int32(var_15_132, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_16_13D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(9)))
|
||||
stloc:int32(var_17_148, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_12_117), ldc.i4:int32(9)))
|
||||
stloc:int32(var_16_14C, ldloc:int32(var_15_132))
|
||||
stloc:int32(var_17_150, ldloc:int32(var_14_12A))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_150))
|
||||
stloc:int32(var_13_15C, ldloc:int32(var_15_132))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_14C))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_15C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_132))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_18_187, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_19_18F, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_14_193, ldloc:int32(var_19_18F))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_18F))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_187))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_18F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_193))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_20_1C6, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_21_1CE, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_1D6, ldloc:int32(var_21_1CE))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_1D6))
|
||||
stloc:int32(var_21_1E2, ldloc:int32(var_20_1D6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_1E2))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_1E2))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_20_1D6))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_22_208, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_23_211, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_22_208)))
|
||||
stloc:int32(var_24_219, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_224, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_22_208), ldc.i4:int32(15)))
|
||||
stloc:int32(var_14_228, ldloc:int32(var_23_211))
|
||||
stloc:int32(var_24_22C, ldloc:int32(var_23_211))
|
||||
stloc:int32(var_25_230, ldloc:int32(var_14_228))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_22C))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_230))
|
||||
stloc:int32(var_14_244, ldloc:int32(var_25_230))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_244))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_230))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_26_262, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_27_26B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_26_262)))
|
||||
stloc:int32(var_28_276, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(16)))
|
||||
stloc:int32(var_29_281, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(16)))
|
||||
stloc:int32(var_30_28C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(17)))
|
||||
stloc:int32(var_31_297, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_262), ldc.i4:int32(17)))
|
||||
stloc:int32(var_29_29B, ldloc:int32(var_28_276))
|
||||
stloc:int32(var_31_2A3, ldloc:int32(var_28_276))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_28C))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_2A3))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_29B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_276))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_32_2D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_33_2DE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_32_2D5)))
|
||||
stloc:int32(var_34_2E6, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_28_2EA, ldloc:int32(var_34_2E6))
|
||||
stloc:int32(var_35_2F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_2D5), ldc.i4:int32(19)))
|
||||
stloc:int32(var_29_2F9, ldloc:int32(var_28_2EA))
|
||||
stloc:int32(var_34_2FD, ldloc:int32(var_28_2EA))
|
||||
stloc:int32(var_35_301, ldloc:int32(var_34_2FD))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_2F9))
|
||||
stloc:int32(var_29_30D, ldloc:int32(var_34_2FD))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_301))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2FD))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_30D))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_36_338, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_37_340, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_38_348, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_36_350, ldloc:int32(var_28_2EA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_350))
|
||||
stloc:int32(var_37_35C, ldloc:int32(var_38_348))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_35C))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_38_348))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_2EA))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_39_387, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_40_38F, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_387))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_40_38F))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_41_3BD, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_42_3C6, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_41_3BD)))
|
||||
stloc:int32(var_43_3D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(24)))
|
||||
stloc:int32(var_44_3DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(25)))
|
||||
stloc:int32(var_45_3E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_41_3BD), ldc.i4:int32(25)))
|
||||
stloc:int32(var_45_3EB, ldloc:int32(var_44_3DC))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_45_3EB))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_3C6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_3D1))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_3D1))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_46_41E, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_47_426, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_46_42E, ldloc:int32(var_47_426))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_426))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_42E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_426))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_42E))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_48_45C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_49_465, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_48_45C)))
|
||||
stloc:int32(var_50_46D, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_51_478, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_48_45C), ldc.i4:int32(29)))
|
||||
stloc:int32(var_44_47C, ldloc:int32(var_50_46D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_46D))
|
||||
stloc:int32(var_51_488, ldloc:int32(var_44_47C))
|
||||
stloc:int32(var_50_48C, ldloc:int32(var_44_47C))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_488))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_48C))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_47C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_52_4B2, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_53_4BB, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_4B2)))
|
||||
stloc:int32(var_54_4C6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_4B2), ldc.i4:int32(31)))
|
||||
stloc:int32(var_50_4CA, ldloc:int32(var_53_4BB))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4BB))
|
||||
stloc:int32(var_53_4D6, ldloc:int32(var_50_4CA))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4C6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4D6))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_4D6))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_55_4FC, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_505, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_55_4FC)))
|
||||
stloc:int32(var_57_510, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(32)))
|
||||
stloc:int32(var_58_51B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(32)))
|
||||
stloc:int32(var_59_526, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(33)))
|
||||
stloc:int32(var_60_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_55_4FC), ldc.i4:int32(33)))
|
||||
stloc:int32(var_58_535, ldloc:int32(var_57_510))
|
||||
stloc:int32(var_60_53D, ldloc:int32(var_57_510))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_526))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_53D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_535))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_510))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_61_56F, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_62_578, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_61_56F)))
|
||||
stloc:int32(var_63_580, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_57_584, ldloc:int32(var_63_580))
|
||||
stloc:int32(var_64_58F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_61_56F), ldc.i4:int32(35)))
|
||||
stloc:int32(var_58_593, ldloc:int32(var_57_584))
|
||||
stloc:int32(var_63_597, ldloc:int32(var_57_584))
|
||||
stloc:int32(var_64_59B, ldloc:int32(var_63_597))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_593))
|
||||
stloc:int32(var_58_5A7, ldloc:int32(var_63_597))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_59B))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_63_597))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_5A7))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_65_5D2, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_66_5DA, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_67_5E2, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_65_5EA, ldloc:int32(var_57_584))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_5EA))
|
||||
stloc:int32(var_66_5F6, ldloc:int32(var_67_5E2))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_5F6))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_67_5E2))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_57_584))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_68_621, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_69_629, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_621))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_629))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_70_657, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_660, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_70_657)))
|
||||
stloc:int32(var_72_66B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_657), ldc.i4:int32(40)))
|
||||
stloc:int32(var_73_673, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_74_67E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_657), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_67E))
|
||||
stloc:int32(var_74_68E, ldloc:int32(var_73_673))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_68E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_660))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_673))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_75_6BD, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
stloc:int32(var_76_6C5, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_72_6C9, ldloc:int32(var_76_6C5))
|
||||
stloc:int32(var_75_6CD, ldloc:int32(var_76_6C5))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_75_6CD))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_6C5))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_6C5))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_6C9))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_77_6FB, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_78_704, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_77_6FB)))
|
||||
stloc:int32(var_79_70C, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_80_717, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_6FB), ldc.i4:int32(45)))
|
||||
stloc:int32(var_72_71B, ldloc:int32(var_79_70C))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_70C))
|
||||
stloc:int32(var_80_727, ldloc:int32(var_72_71B))
|
||||
stloc:int32(var_79_72B, ldloc:int32(var_72_71B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_727))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_72B))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_71B))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_81_751, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_82_75A, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_81_751)))
|
||||
stloc:int32(var_83_765, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_81_751), ldc.i4:int32(47)))
|
||||
stloc:int32(var_79_769, ldloc:int32(var_82_75A))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_75A))
|
||||
stloc:int32(var_82_775, ldloc:int32(var_79_769))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_775))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_765))
|
||||
call:void(SerpentEngineBase::LT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_84_7A0, callgetter:int32(Array::get_Length, ldfld:int32[][exp:Array](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCAB RID: 48299 RVA: 0x0029CBF8 File Offset: 0x0029ADF8
|
||||
[Token(Token = "0x600BCAB")]
|
||||
[Address(RVA = "0x273CD20", Offset = "0x273BD20", VA = "0x18273CD20", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCAB)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngine::DecryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_0_06))
|
||||
stloc:int32[](var_1_14, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_1_14))
|
||||
stloc:int32[](var_2_22, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_2_22))
|
||||
stloc:int32[](var_3_30, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_4_37, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_3_30))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32[][exp:int32](var_3_30))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_5_5E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(62)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_5_5E))
|
||||
stloc:int32(var_6_71, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(62)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_6_71))
|
||||
stloc:int32(var_7_84, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(63)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_7_84))
|
||||
stloc:int32(var_8_97, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_37), ldc.i4:int32(63)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_97))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_9_AD, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_B5, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_8_B9, ldloc:int32(var_10_B5))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_8_B9))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_11_D7, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_10_B5))
|
||||
stloc:int32(var_12_F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(60)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_F2))
|
||||
stloc:int32(var_13_105, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(60)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_13_105))
|
||||
stloc:int32(var_14_118, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(61)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_14_118))
|
||||
stloc:int32(var_15_12B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_11_D7), ldc.i4:int32(61)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_12B))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_16_141, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_145, ldloc:int32(var_16_141))
|
||||
stloc:int32(var_17_14D, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_18_155, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_159, ldloc:int32(var_18_155))
|
||||
stloc:int32(var_19_161, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_155))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_159))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_20_180, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_145))
|
||||
stloc:int32(var_21_193, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(58)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_193))
|
||||
stloc:int32(var_22_1A6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(58)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_22_1A6))
|
||||
stloc:int32(var_23_1B9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(59)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_1B9))
|
||||
stloc:int32(var_24_1CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_20_180), ldc.i4:int32(59)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_1CC))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_25_1E2, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_17_1E6, ldloc:int32(var_25_1E2))
|
||||
stloc:int32(var_19_1EA, ldloc:int32(var_16_141))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_19_1EA))
|
||||
stloc:int32[](var_26_1FA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_18_1FE, ldloc:int32(var_16_141))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_141))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_1FE))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_17_1E6))
|
||||
stloc:int32(var_27_221, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(56)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_27_221))
|
||||
stloc:int32(var_28_234, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(56)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_28_234))
|
||||
stloc:int32(var_29_247, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(57)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_29_247))
|
||||
stloc:int32(var_30_25A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_26_1FA), ldc.i4:int32(57)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_25A))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_31_270, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_32_278, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_18_27C, ldloc:int32(var_16_141))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_27C))
|
||||
stloc:int32(var_25_288, ldloc:int32(var_31_270))
|
||||
stloc:int32(var_16_28C, ldloc:int32(var_25_288))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_288))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_28C))
|
||||
stloc:int32(var_33_2AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(54)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_33_2AE))
|
||||
stloc:int32(var_34_2C1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(54)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_34_2C1))
|
||||
stloc:int32(var_35_2D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(55)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_35_2D4))
|
||||
stloc:int32(var_36_2E7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_32_278), ldc.i4:int32(55)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_2E7))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_37_2FD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_301, ldloc:int32(var_37_2FD))
|
||||
stloc:int32(var_38_309, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_18_30D, ldloc:int32(var_25_301))
|
||||
stloc:int32(var_39_315, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_40_31D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_321, ldloc:int32(var_25_301))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_30D))
|
||||
stloc:int32(var_36_32D, ldloc:int32(var_18_30D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_38_338, ldloc:int32(var_36_32D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_38_338))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_321))
|
||||
stloc:int32(var_41_353, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(52)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_353))
|
||||
stloc:int32(var_42_366, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(52)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_366))
|
||||
stloc:int32(var_43_379, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(53)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_43_379))
|
||||
stloc:int32(var_44_38C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_31D), ldc.i4:int32(53)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_38C))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_25_39E, ldloc:int32(var_44_38C))
|
||||
stloc:int32(var_37_3A2, ldloc:int32(var_44_38C))
|
||||
stloc:int32(var_31_3A6, ldloc:int32(var_25_39E))
|
||||
stloc:int32(var_39_3AA, ldloc:int32(var_37_3A2))
|
||||
stloc:int32[](var_45_3B2, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_3A6))
|
||||
stloc:int32(var_44_3C2, ldloc:int32(var_39_3AA))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_3AA))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_44_3C2))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_37_3A2))
|
||||
stloc:int32(var_46_3E5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(50)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_3E5))
|
||||
stloc:int32(var_47_3F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(50)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_47_3F8))
|
||||
stloc:int32(var_48_40B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(51)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_40B))
|
||||
stloc:int32(var_49_41E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_45_3B2), ldc.i4:int32(51)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_49_41E))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_25_430, ldloc:int32(var_39_3AA))
|
||||
stloc:int32(var_18_434, ldloc:int32(var_25_430))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_434))
|
||||
stloc:int32[](var_50_444, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_448, ldloc:int32(var_39_3AA))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_448))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_3AA))
|
||||
stloc:int32(var_51_46A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(48)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_46A))
|
||||
stloc:int32(var_52_47D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(48)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_52_47D))
|
||||
stloc:int32(var_53_490, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(49)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_53_490))
|
||||
stloc:int32(var_54_4A3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_50_444), ldc.i4:int32(49)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_4A3))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_55_4B9, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_4C1, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_4C5, ldloc:int32(var_56_4C1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_434))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_39_4C5))
|
||||
stloc:int32[](var_57_4DD, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_4C1))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_55_4B9))
|
||||
stloc:int32(var_58_4F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(46)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_58_4F8))
|
||||
stloc:int32(var_59_50B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(46)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_50B))
|
||||
stloc:int32(var_60_51E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(47)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_51E))
|
||||
stloc:int32(var_61_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_57_4DD), ldc.i4:int32(47)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_531))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_62_54B, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_63_553, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_61_557, ldloc:int32(var_62_54B))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_25_562, ldloc:int32(var_61_557))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_25_562))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_54B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_62_54B))
|
||||
stloc:int32(var_64_585, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(44)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_64_585))
|
||||
stloc:int32(var_65_598, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(44)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_65_598))
|
||||
stloc:int32(var_66_5AB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(45)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_5AB))
|
||||
stloc:int32(var_67_5BE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_63_553), ldc.i4:int32(45)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_67_5BE))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_68_5D4, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_67_5D8, ldloc:int32(var_68_5D4))
|
||||
stloc:int32(var_69_5E0, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_5E4, ldloc:int32(var_69_5E0))
|
||||
stloc:int32(var_70_5EC, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_5F0, ldloc:int32(var_25_5E4))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_5E0))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_5F0))
|
||||
stloc:int32(var_15_604, ldloc:int32(var_67_5D8))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32[](var_71_613, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_604))
|
||||
stloc:int32(var_72_626, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(42)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_626))
|
||||
stloc:int32(var_73_639, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(42)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_73_639))
|
||||
stloc:int32(var_74_64C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(43)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_74_64C))
|
||||
stloc:int32(var_75_65F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_71_613), ldc.i4:int32(43)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_75_65F))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_76_675, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_67D, ldloc:int32(var_76_675))
|
||||
stloc:int32(var_69_681, ldloc:int32(var_70_67D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_70_67D))
|
||||
stloc:int32(var_68_68D, ldloc:int32(var_70_67D))
|
||||
stloc:int32[](var_77_695, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_76_699, ldloc:int32(var_69_681))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_681))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_699))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_68D))
|
||||
stloc:int32(var_78_6BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(40)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_6BC))
|
||||
stloc:int32(var_79_6CF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(40)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_79_6CF))
|
||||
stloc:int32(var_80_6E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_80_6E2))
|
||||
stloc:int32(var_81_6F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_77_695), ldc.i4:int32(41)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_6F5))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_82_70B, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_83_713, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_84_71F, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_85_727, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_72B, ldloc:int32(var_84_71F))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_72B))
|
||||
stloc:int32(var_82_737, ldloc:int32(var_69_72B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_713))
|
||||
stloc:int32(var_84_743, ldloc:int32(var_69_72B))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_82_737))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_743))
|
||||
stloc:int32(var_86_75E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(38)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_75E))
|
||||
stloc:int32(var_87_771, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(38)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_87_771))
|
||||
stloc:int32(var_88_784, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(39)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_88_784))
|
||||
stloc:int32(var_89_797, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_85_727), ldc.i4:int32(39)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_89_797))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_90_7AD, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_83_7B1, ldloc:int32(var_90_7AD))
|
||||
stloc:int32(var_91_7B9, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_92_7C1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_7C5, ldloc:int32(var_91_7B9))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_7C5))
|
||||
stloc:int32(var_89_7D1, ldloc:int32(var_83_7B1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_7B1))
|
||||
stloc:int32(var_90_7DD, ldloc:int32(var_89_7D1))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_7DD))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_7B9))
|
||||
stloc:int32(var_93_7F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(36)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_93_7F8))
|
||||
stloc:int32(var_94_80B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(36)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_94_80B))
|
||||
stloc:int32(var_95_81E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(37)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_81E))
|
||||
stloc:int32(var_96_831, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_92_7C1), ldc.i4:int32(37)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_831))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_97_847, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_853, ldloc:int32(var_83_7B1))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_7B1))
|
||||
stloc:int32(var_97_85F, ldloc:int32(var_83_7B1))
|
||||
stloc:int32[](var_98_867, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_90_86B, ldloc:int32(var_97_85F))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_853))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_86B))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_97_85F))
|
||||
stloc:int32(var_99_892, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(34)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_99_892))
|
||||
stloc:int32(var_100_8A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(34)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_100_8A5))
|
||||
stloc:int32(var_101_8B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(35)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_8B8))
|
||||
stloc:int32(var_102_8CB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_98_867), ldc.i4:int32(35)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_8CB))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_103_8E1, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_90_8E5, ldloc:int32(var_102_8CB))
|
||||
stloc:int32[](var_104_8ED, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_8F1, ldloc:int32(var_90_8E5))
|
||||
stloc:int32(var_83_8F5, ldloc:int32(var_69_8F1))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_8F1))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_83_8F5))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_105_922, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(32)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_105_922))
|
||||
stloc:int32(var_106_935, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(32)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_935))
|
||||
stloc:int32(var_107_948, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(33)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_107_948))
|
||||
stloc:int32(var_108_95B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_104_8ED), ldc.i4:int32(33)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_95B))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_109_971, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_110_979, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_108_97D, ldloc:int32(var_109_971))
|
||||
stloc:int32[](var_111_985, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_103_989, ldloc:int32(var_110_979))
|
||||
stloc:int32(var_69_98D, ldloc:int32(var_108_97D))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_69_98D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_103_989))
|
||||
stloc:int32(var_109_9A1, ldloc:int32(var_69_98D))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_110_979))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_109_9A1))
|
||||
stloc:int32(var_112_9BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(30)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_112_9BC))
|
||||
stloc:int32(var_113_9CF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(30)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_9CF))
|
||||
stloc:int32(var_114_9E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(31)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_9E2))
|
||||
stloc:int32(var_115_9F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_111_985), ldc.i4:int32(31)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_115_9F5))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_116_A0B, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_A0F, ldloc:int32(var_116_A0B))
|
||||
stloc:int32(var_117_A17, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stloc:int32(var_115_A22, ldloc:int32(var_15_A0F))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_A0F))
|
||||
stloc:int32(var_116_A2E, ldloc:int32(var_115_A22))
|
||||
stloc:int32[](var_118_A36, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_A2E))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_117_A17))
|
||||
stloc:int32(var_119_A51, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(28)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_119_A51))
|
||||
stloc:int32(var_120_A64, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(28)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_A64))
|
||||
stloc:int32(var_121_A77, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(29)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_A77))
|
||||
stloc:int32(var_122_A8A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_A36), ldc.i4:int32(29)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_A8A))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_123_AA0, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_AA4, ldloc:int32(var_123_AA0))
|
||||
stloc:int32(var_124_AAC, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_AB4, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_9_AA4))
|
||||
stloc:int32[](var_126_AC8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_15_A0F))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(inOff))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_AAC))
|
||||
stloc:int32(var_127_AEA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(26)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_127_AEA))
|
||||
stloc:int32(var_128_AFD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(26)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_128_AFD))
|
||||
stloc:int32(var_129_B10, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(27)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_129_B10))
|
||||
stloc:int32(var_130_B23, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_126_AC8), ldc.i4:int32(27)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_130_B23))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_131_B39, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_123_B3D, ldloc:int32(var_131_B39))
|
||||
stloc:int32(var_124_B41, ldloc:int32(var_123_B3D))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_123_B3D))
|
||||
stloc:int32(var_125_B4D, ldloc:int32(var_123_B3D))
|
||||
stloc:int32[](var_132_B55, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_131_B59, ldloc:int32(var_124_B41))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_B41))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_B59))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_125_B4D))
|
||||
stloc:int32(var_133_B7C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(24)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_133_B7C))
|
||||
stloc:int32(var_134_B8F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(24)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_134_B8F))
|
||||
stloc:int32(var_135_BA2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(25)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_135_BA2))
|
||||
stloc:int32(var_136_BB5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_132_B55), ldc.i4:int32(25)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_BB5))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_137_BCB, ldfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_138_BD3, ldfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_BDF, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32[](var_140_BE7, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_124_BEB, ldloc:int32(var_139_BDF))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_BEB))
|
||||
stloc:int32(var_137_BF7, ldloc:int32(var_124_BEB))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_BD3))
|
||||
stloc:int32(var_139_C03, ldloc:int32(var_124_BEB))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_137_BF7))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_139_C03))
|
||||
stloc:int32(var_141_C1E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(22)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_C1E))
|
||||
stloc:int32(var_142_C31, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(22)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_142_C31))
|
||||
stloc:int32(var_143_C44, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(23)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_143_C44))
|
||||
stloc:int32(var_144_C57, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_140_BE7), ldc.i4:int32(23)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_C57))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:SerpentEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_145_C6D, ldfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_146_C75, ldfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_138_C79, ldloc:int32(var_145_C6D))
|
||||
stloc:int32[](var_147_C81, ldfld:int32[](SerpentEngineBase::wKey, ldloc:SerpentEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_C75))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_C79))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_124_BEB))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:SerpentEngine[exp:SerpentEngineBase](this), ldloc:int32(var_145_C6D))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCAC RID: 48300 RVA: 0x0029D8A8 File Offset: 0x0029BAA8
|
||||
[Token(Token = "0x600BCAC")]
|
||||
[Address(RVA = "0x2744380", Offset = "0x2743380", VA = "0x182744380")]
|
||||
public SerpentEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+389
@@ -0,0 +1,389 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D8E RID: 7566
|
||||
[Token(Token = "0x2001D8E")]
|
||||
public abstract class SerpentEngineBase : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BCAD RID: 48301 RVA: 0x0029D8BC File Offset: 0x0029BABC
|
||||
[Token(Token = "0x600BCAD")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
protected SerpentEngineBase()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BCAE RID: 48302 RVA: 0x0029D8D0 File Offset: 0x0029BAD0
|
||||
[Token(Token = "0x600BCAE")]
|
||||
[Address(RVA = "0x273C420", Offset = "0x273B420", VA = "0x18273C420", Slot = "10")]
|
||||
public virtual void Init(bool encrypting, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCAE)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2E:
|
||||
stloc:ArgumentException(var_7_35, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_6)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D8F RID: 7567
|
||||
// (get) Token: 0x0600BCAF RID: 48303 RVA: 0x0029D914 File Offset: 0x0029BB14
|
||||
[Token(Token = "0x17001D8F")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BCAF")]
|
||||
[Address(RVA = "0x273CCF0", Offset = "0x273BCF0", VA = "0x18273CCF0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Serpent";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D90 RID: 7568
|
||||
// (get) Token: 0x0600BCB0 RID: 48304 RVA: 0x0029D928 File Offset: 0x0029BB28
|
||||
[Token(Token = "0x17001D90")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BCB0")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB1 RID: 48305 RVA: 0x0029D938 File Offset: 0x0029BB38
|
||||
[Token(Token = "0x600BCB1")]
|
||||
[Address(RVA = "0x273C060", Offset = "0x273B060", VA = "0x18273C060", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return SerpentEngineBase.BlockSize;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB2 RID: 48306 RVA: 0x0029D94C File Offset: 0x0029BB4C
|
||||
[Token(Token = "0x600BCB2")]
|
||||
[Address(RVA = "0x273C7C0", Offset = "0x273B7C0", VA = "0x18273C7C0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCB2)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SerpentEngineBase::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_37:
|
||||
stloc:InvalidOperationException(var_4_3D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB3 RID: 48307 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BCB3")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB4 RID: 48308 RVA: 0x0029D998 File Offset: 0x0029BB98
|
||||
[Token(Token = "0x600BCB4")]
|
||||
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
|
||||
protected static int RotateLeft(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB5 RID: 48309 RVA: 0x0029D9A8 File Offset: 0x0029BBA8
|
||||
[Token(Token = "0x600BCB5")]
|
||||
[Address(RVA = "0x1030AC0", Offset = "0x102FAC0", VA = "0x181030AC0")]
|
||||
private static int RotateRight(int x, int bits)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB6 RID: 48310 RVA: 0x0029D9B8 File Offset: 0x0029BBB8
|
||||
[Token(Token = "0x600BCB6")]
|
||||
[Address(RVA = "0x273C970", Offset = "0x273B970", VA = "0x18273C970")]
|
||||
protected void Sb0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = c;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB7 RID: 48311 RVA: 0x0029D9E4 File Offset: 0x0029BBE4
|
||||
[Token(Token = "0x600BCB7")]
|
||||
[Address(RVA = "0x273C0C0", Offset = "0x273B0C0", VA = "0x18273C0C0")]
|
||||
protected void Ib0(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB8 RID: 48312 RVA: 0x0029DA10 File Offset: 0x0029BC10
|
||||
[Token(Token = "0x600BCB8")]
|
||||
[Address(RVA = "0x273C9D0", Offset = "0x273B9D0", VA = "0x18273C9D0")]
|
||||
protected void Sb1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCB9 RID: 48313 RVA: 0x0029DA3C File Offset: 0x0029BC3C
|
||||
[Token(Token = "0x600BCB9")]
|
||||
[Address(RVA = "0x273C120", Offset = "0x273B120", VA = "0x18273C120")]
|
||||
protected void Ib1(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X0 = b;
|
||||
this.X2 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBA RID: 48314 RVA: 0x0029DA68 File Offset: 0x0029BC68
|
||||
[Token(Token = "0x600BCBA")]
|
||||
[Address(RVA = "0x273CA30", Offset = "0x273BA30", VA = "0x18273CA30")]
|
||||
protected void Sb2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X1 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBB RID: 48315 RVA: 0x0029DA94 File Offset: 0x0029BC94
|
||||
[Token(Token = "0x600BCBB")]
|
||||
[Address(RVA = "0x273C180", Offset = "0x273B180", VA = "0x18273C180")]
|
||||
protected void Ib2(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
this.X2 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBC RID: 48316 RVA: 0x0029DAC0 File Offset: 0x0029BCC0
|
||||
[Token(Token = "0x600BCBC")]
|
||||
[Address(RVA = "0x273CAB0", Offset = "0x273BAB0", VA = "0x18273CAB0")]
|
||||
protected void Sb3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X3 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBD RID: 48317 RVA: 0x0029DAEC File Offset: 0x0029BCEC
|
||||
[Token(Token = "0x600BCBD")]
|
||||
[Address(RVA = "0x273C1F0", Offset = "0x273B1F0", VA = "0x18273C1F0")]
|
||||
protected void Ib3(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X2 = b;
|
||||
this.X3 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBE RID: 48318 RVA: 0x0029DB18 File Offset: 0x0029BD18
|
||||
[Token(Token = "0x600BCBE")]
|
||||
[Address(RVA = "0x273CB30", Offset = "0x273BB30", VA = "0x18273CB30")]
|
||||
protected void Sb4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X0 = b;
|
||||
this.X2 = b;
|
||||
this.X1 = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCBF RID: 48319 RVA: 0x0029DB44 File Offset: 0x0029BD44
|
||||
[Token(Token = "0x600BCBF")]
|
||||
[Address(RVA = "0x273C250", Offset = "0x273B250", VA = "0x18273C250")]
|
||||
protected void Ib4(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X0 = a;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC0 RID: 48320 RVA: 0x0029DB70 File Offset: 0x0029BD70
|
||||
[Token(Token = "0x600BCC0")]
|
||||
[Address(RVA = "0x273CB90", Offset = "0x273BB90", VA = "0x18273CB90")]
|
||||
protected void Sb5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X0 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC1 RID: 48321 RVA: 0x0029DB9C File Offset: 0x0029BD9C
|
||||
[Token(Token = "0x600BCC1")]
|
||||
[Address(RVA = "0x273C2B0", Offset = "0x273B2B0", VA = "0x18273C2B0")]
|
||||
protected void Ib5(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = a;
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC2 RID: 48322 RVA: 0x0029DBC8 File Offset: 0x0029BDC8
|
||||
[Token(Token = "0x600BCC2")]
|
||||
[Address(RVA = "0x273CBF0", Offset = "0x273BBF0", VA = "0x18273CBF0")]
|
||||
protected void Sb6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
this.X3 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC3 RID: 48323 RVA: 0x0029DBF4 File Offset: 0x0029BDF4
|
||||
[Token(Token = "0x600BCC3")]
|
||||
[Address(RVA = "0x273C330", Offset = "0x273B330", VA = "0x18273C330")]
|
||||
protected void Ib6(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = a;
|
||||
this.X3 = a;
|
||||
this.X2 = a;
|
||||
this.X0 = a;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC4 RID: 48324 RVA: 0x0029DC20 File Offset: 0x0029BE20
|
||||
[Token(Token = "0x600BCC4")]
|
||||
[Address(RVA = "0x273CC40", Offset = "0x273BC40", VA = "0x18273CC40")]
|
||||
protected void Sb7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X1 = b;
|
||||
this.X3 = c;
|
||||
this.X2 = c;
|
||||
this.X0 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC5 RID: 48325 RVA: 0x0029DC4C File Offset: 0x0029BE4C
|
||||
[Token(Token = "0x600BCC5")]
|
||||
[Address(RVA = "0x273C3A0", Offset = "0x273B3A0", VA = "0x18273C3A0")]
|
||||
protected void Ib7(int a, int b, int c, int d)
|
||||
{
|
||||
this.X3 = c;
|
||||
this.X1 = 0;
|
||||
this.X0 = 0;
|
||||
this.X2 = c;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC6 RID: 48326 RVA: 0x0029DC78 File Offset: 0x0029BE78
|
||||
[Token(Token = "0x600BCC6")]
|
||||
[Address(RVA = "0x273C6E0", Offset = "0x273B6E0", VA = "0x18273C6E0")]
|
||||
protected void LT()
|
||||
{
|
||||
int num = this.X1;
|
||||
num += num;
|
||||
this.X1 = num;
|
||||
this.X3 = num;
|
||||
this.X0 = num;
|
||||
this.X2 = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC7 RID: 48327 RVA: 0x0029DCAC File Offset: 0x0029BEAC
|
||||
[Token(Token = "0x600BCC7")]
|
||||
[Address(RVA = "0x273C600", Offset = "0x273B600", VA = "0x18273C600")]
|
||||
protected void InverseLT()
|
||||
{
|
||||
int x = this.X3;
|
||||
int x2 = this.X0;
|
||||
this.X3 = x;
|
||||
this.X1 = x2;
|
||||
this.X2 = x2;
|
||||
this.X0 = x2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCC8 RID: 48328
|
||||
[Token(Token = "0x600BCC8")]
|
||||
[Address(Slot = "15")]
|
||||
protected abstract int[] MakeWorkingKey(byte[] key);
|
||||
|
||||
// Token: 0x0600BCC9 RID: 48329
|
||||
[Token(Token = "0x600BCC9")]
|
||||
[Address(Slot = "16")]
|
||||
protected abstract void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x0600BCCA RID: 48330
|
||||
[Token(Token = "0x600BCCA")]
|
||||
[Address(Slot = "17")]
|
||||
protected abstract void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff);
|
||||
|
||||
// Token: 0x040076E0 RID: 30432
|
||||
[Token(Token = "0x40076E0")]
|
||||
protected static readonly int BlockSize;
|
||||
|
||||
// Token: 0x040076E1 RID: 30433
|
||||
[Token(Token = "0x40076E1")]
|
||||
internal const int ROUNDS = 32;
|
||||
|
||||
// Token: 0x040076E2 RID: 30434
|
||||
[Token(Token = "0x40076E2")]
|
||||
internal const int PHI = -1640531527;
|
||||
|
||||
// Token: 0x040076E3 RID: 30435
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076E3")]
|
||||
protected bool encrypting;
|
||||
|
||||
// Token: 0x040076E4 RID: 30436
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076E4")]
|
||||
protected int[] wKey;
|
||||
|
||||
// Token: 0x040076E5 RID: 30437
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076E5")]
|
||||
protected int X0;
|
||||
|
||||
// Token: 0x040076E6 RID: 30438
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40076E6")]
|
||||
protected int X1;
|
||||
|
||||
// Token: 0x040076E7 RID: 30439
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076E7")]
|
||||
protected int X2;
|
||||
|
||||
// Token: 0x040076E8 RID: 30440
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x40076E8")]
|
||||
protected int X3;
|
||||
}
|
||||
}
|
||||
+259
@@ -0,0 +1,259 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D8F RID: 7567
|
||||
[Token(Token = "0x2001D8F")]
|
||||
public class SkipjackEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BCCC RID: 48332 RVA: 0x0029DCF4 File Offset: 0x0029BEF4
|
||||
[Token(Token = "0x600BCCC")]
|
||||
[Address(RVA = "0x2744EA0", Offset = "0x2743EA0", VA = "0x182744EA0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCCC)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SkipjackEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_10A:
|
||||
stloc:ArgumentException(var_26_11B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to SKIPJACK init - "), ldloc:string(var_25))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D91 RID: 7569
|
||||
// (get) Token: 0x0600BCCD RID: 48333 RVA: 0x0029DE20 File Offset: 0x0029C020
|
||||
[Token(Token = "0x17001D91")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BCCD")]
|
||||
[Address(RVA = "0x27453E0", Offset = "0x27443E0", VA = "0x1827453E0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "SKIPJACK";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D92 RID: 7570
|
||||
// (get) Token: 0x0600BCCE RID: 48334 RVA: 0x0029DE34 File Offset: 0x0029C034
|
||||
[Token(Token = "0x17001D92")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BCCE")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCCF RID: 48335 RVA: 0x0029DE44 File Offset: 0x0029C044
|
||||
[Token(Token = "0x600BCCF")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD0 RID: 48336 RVA: 0x0029DE54 File Offset: 0x0029C054
|
||||
[Token(Token = "0x600BCD0")]
|
||||
[Address(RVA = "0x2745250", Offset = "0x2744250", VA = "0x182745250", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCD0)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SkipjackEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2B:
|
||||
stloc:InvalidOperationException(var_2_35, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SKIPJACK engine not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD1 RID: 48337 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BCD1")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD2 RID: 48338 RVA: 0x0029DE98 File Offset: 0x0029C098
|
||||
[Token(Token = "0x600BCD2")]
|
||||
[Address(RVA = "0x2744A90", Offset = "0x2743A90", VA = "0x182744A90")]
|
||||
private int G(int k, int w)
|
||||
{
|
||||
short[] array = SkipjackEngine.ftable;
|
||||
int num = this.key0[k];
|
||||
int length = array.Length;
|
||||
int num2 = this.key1[k];
|
||||
int num3 = this.key2[k];
|
||||
int num4 = this.key3[k];
|
||||
return num3 + num3;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD3 RID: 48339 RVA: 0x0029DEF8 File Offset: 0x0029C0F8
|
||||
[Token(Token = "0x600BCD3")]
|
||||
[Address(RVA = "0x2744740", Offset = "0x2743740", VA = "0x182744740", Slot = "16")]
|
||||
public virtual int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
int num = inOff + 1;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
b4 += b2;
|
||||
byte b5;
|
||||
b5 += b2;
|
||||
int num2 = 0;
|
||||
b5 = b4;
|
||||
b4 = b3;
|
||||
int num3 = this.G(num2, (int)b);
|
||||
num2++;
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
b5 = b4;
|
||||
int num4 = this.G(num2, num2);
|
||||
num2++;
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD4 RID: 48340 RVA: 0x0029DF6C File Offset: 0x0029C16C
|
||||
[Token(Token = "0x600BCD4")]
|
||||
[Address(RVA = "0x2744C90", Offset = "0x2743C90", VA = "0x182744C90")]
|
||||
private int H(int k, int w)
|
||||
{
|
||||
short[] array = SkipjackEngine.ftable;
|
||||
int num = this.key3[k];
|
||||
int length = array.Length;
|
||||
int num2 = this.key2[k];
|
||||
int num3 = this.key1[k];
|
||||
int num4 = this.key0[k];
|
||||
return w;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD5 RID: 48341 RVA: 0x0029DFC4 File Offset: 0x0029C1C4
|
||||
[Token(Token = "0x600BCD5")]
|
||||
[Address(RVA = "0x27443E0", Offset = "0x27433E0", VA = "0x1827443E0", Slot = "17")]
|
||||
public virtual int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
int length = input.Length;
|
||||
int num = inOff + 1;
|
||||
byte b;
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
b4 += b2;
|
||||
byte b5;
|
||||
b5 += b2;
|
||||
b4 = b5;
|
||||
b5 = b;
|
||||
uint num3;
|
||||
int num2 = this.H((int)num3, (int)b3);
|
||||
uint num4 = num3 + 1U;
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
uint num5 = num3 + 1U;
|
||||
b4 = b5;
|
||||
int num6 = this.H((int)num3, (int)num4);
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
while (inOff != length)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD6 RID: 48342 RVA: 0x0029E034 File Offset: 0x0029C234
|
||||
[Token(Token = "0x600BCD6")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public SkipjackEngine()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600BCD7 RID: 48343 RVA: 0x0029E048 File Offset: 0x0029C248
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BCD7")]
|
||||
[Address(RVA = "0x2745380", Offset = "0x2744380", VA = "0x182745380")]
|
||||
static SkipjackEngine()
|
||||
{
|
||||
short[] array = new short[256];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.21A3E0CD2847E2F12EEE37749A9E206494A55100).FieldHandle);
|
||||
SkipjackEngine.ftable = array;
|
||||
}
|
||||
|
||||
// Token: 0x040076E9 RID: 30441
|
||||
[Token(Token = "0x40076E9")]
|
||||
private const int BLOCK_SIZE = 8;
|
||||
|
||||
// Token: 0x040076EA RID: 30442
|
||||
[Token(Token = "0x40076EA")]
|
||||
private static readonly short[] ftable;
|
||||
|
||||
// Token: 0x040076EB RID: 30443
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076EB")]
|
||||
private int[] key0;
|
||||
|
||||
// Token: 0x040076EC RID: 30444
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076EC")]
|
||||
private int[] key1;
|
||||
|
||||
// Token: 0x040076ED RID: 30445
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076ED")]
|
||||
private int[] key2;
|
||||
|
||||
// Token: 0x040076EE RID: 30446
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40076EE")]
|
||||
private int[] key3;
|
||||
|
||||
// Token: 0x040076EF RID: 30447
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40076EF")]
|
||||
private bool encrypting;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,252 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D90 RID: 7568
|
||||
[Token(Token = "0x2001D90")]
|
||||
public class TeaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BCD8 RID: 48344 RVA: 0x0029E074 File Offset: 0x0029C274
|
||||
[Token(Token = "0x600BCD8")]
|
||||
[Address(RVA = "0x2023640", Offset = "0x2022640", VA = "0x182023640")]
|
||||
public TeaEngine()
|
||||
{
|
||||
this.Reset();
|
||||
this._initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x17001D93 RID: 7571
|
||||
// (get) Token: 0x0600BCD9 RID: 48345 RVA: 0x0029E090 File Offset: 0x0029C290
|
||||
[Token(Token = "0x17001D93")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BCD9")]
|
||||
[Address(RVA = "0x2745990", Offset = "0x2744990", VA = "0x182745990", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "TEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D94 RID: 7572
|
||||
// (get) Token: 0x0600BCDA RID: 48346 RVA: 0x0029E0A4 File Offset: 0x0029C2A4
|
||||
[Token(Token = "0x17001D94")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BCDA")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCDB RID: 48347 RVA: 0x0029E0B4 File Offset: 0x0029C2B4
|
||||
[Token(Token = "0x600BCDB")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCDC RID: 48348 RVA: 0x0029E0C4 File Offset: 0x0029C2C4
|
||||
[Token(Token = "0x600BCDC")]
|
||||
[Address(RVA = "0x2745410", Offset = "0x2744410", VA = "0x182745410", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCDC)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_66:
|
||||
stloc:ArgumentException(var_9_77, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_8))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCDD RID: 48349 RVA: 0x0029E14C File Offset: 0x0029C34C
|
||||
[Token(Token = "0x600BCDD")]
|
||||
[Address(RVA = "0x27455B0", Offset = "0x27445B0", VA = "0x1827455B0", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCDD)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_AE:
|
||||
stloc:InvalidOperationException(var_13_B5, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_12)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCDE RID: 48350 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BCDE")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BCDF RID: 48351 RVA: 0x0029E210 File Offset: 0x0029C410
|
||||
[Token(Token = "0x600BCDF")]
|
||||
[Address(RVA = "0x27459C0", Offset = "0x27449C0", VA = "0x1827459C0")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
this._a = num2;
|
||||
uint num3 = Pack.BE_To_UInt32(key, 4);
|
||||
this._b = num3;
|
||||
uint num4 = Pack.BE_To_UInt32(key, 8);
|
||||
this._c = num4;
|
||||
uint num5 = Pack.BE_To_UInt32(key, 12);
|
||||
this._d = num5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE0 RID: 48352 RVA: 0x0029E260 File Offset: 0x0029C460
|
||||
[Token(Token = "0x600BCE0")]
|
||||
[Address(RVA = "0x27458A0", Offset = "0x27448A0", VA = "0x1827458A0")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCE0)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::encryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_31, add:uint32(ldloc:uint32(var_1_0F), ldloc:uint32(var_2_16)))
|
||||
stloc:uint32(var_1_35, add:uint32(ldloc:uint32(var_1_31), ldloc:uint32(var_3_1D)))
|
||||
stloc:uint32(var_0_39, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_1_35)))
|
||||
stloc:uint32(var_1_3D, ldloc:uint32(var_0_39))
|
||||
stloc:uint32(var_1_42, add:uint32(ldloc:uint32(var_1_3D), ldloc:uint32(var_4_24)))
|
||||
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_42), ldloc:uint32(var_5_2C)))
|
||||
stloc:uint32(var_1_4B, add:uint32(ldloc:uint32(var_1_47), ldloc:uint32(var_1_47)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE1 RID: 48353 RVA: 0x0029E2BC File Offset: 0x0029C4BC
|
||||
[Token(Token = "0x600BCE1")]
|
||||
[Address(RVA = "0x27457B0", Offset = "0x27447B0", VA = "0x1827457B0")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCE1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TeaEngine::decryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_1_0F, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](inBytes), ldloc:int32(inOff)))
|
||||
stloc:uint32(var_2_16, ldfld:uint32(TeaEngine::_c, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_3_1D, ldfld:uint32(TeaEngine::_d, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_4_24, ldfld:uint32(TeaEngine::_a, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_5_2C, ldfld:uint32(TeaEngine::_b, ldloc:TeaEngine(this)))
|
||||
stloc:uint32(var_1_2F, ldloc:uint32(var_0_07))
|
||||
stloc:uint32(var_0_33, add:uint32(ldloc:uint32(var_0_07), ldloc:uint32(var_2_16)))
|
||||
stloc:uint32(var_1_37, add:uint32(ldloc:uint32(var_1_2F), ldloc:uint32(var_3_1D)))
|
||||
stloc:uint32(var_1_3B, sub:uint32(ldloc:uint32(var_1_37), ldloc:uint32(var_0_33)))
|
||||
stloc:uint32(var_0_3D, ldloc:uint32(var_1_3B))
|
||||
stloc:uint32(var_0_42, add:uint32(ldloc:uint32(var_0_3D), ldloc:uint32(var_4_24)))
|
||||
stloc:uint32(var_1_47, add:uint32(ldloc:uint32(var_1_3B), ldloc:uint32(var_5_2C)))
|
||||
stloc:uint32(var_0_4B, sub:uint32(ldloc:uint32(var_0_42), ldloc:uint32(var_0_42)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x040076F0 RID: 30448
|
||||
[Token(Token = "0x40076F0")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x040076F1 RID: 30449
|
||||
[Token(Token = "0x40076F1")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x040076F2 RID: 30450
|
||||
[Token(Token = "0x40076F2")]
|
||||
private const uint delta = 2654435769U;
|
||||
|
||||
// Token: 0x040076F3 RID: 30451
|
||||
[Token(Token = "0x40076F3")]
|
||||
private const uint d_sum = 3337565984U;
|
||||
|
||||
// Token: 0x040076F4 RID: 30452
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40076F4")]
|
||||
private uint _a;
|
||||
|
||||
// Token: 0x040076F5 RID: 30453
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x40076F5")]
|
||||
private uint _b;
|
||||
|
||||
// Token: 0x040076F6 RID: 30454
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40076F6")]
|
||||
private uint _c;
|
||||
|
||||
// Token: 0x040076F7 RID: 30455
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40076F7")]
|
||||
private uint _d;
|
||||
|
||||
// Token: 0x040076F8 RID: 30456
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40076F8")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x040076F9 RID: 30457
|
||||
[FieldOffset(Offset = "0x21")]
|
||||
[Token(Token = "0x40076F9")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
+1537
@@ -0,0 +1,1537 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D91 RID: 7569
|
||||
[Token(Token = "0x2001D91")]
|
||||
public class ThreefishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BCE2 RID: 48354 RVA: 0x0029E318 File Offset: 0x0029C518
|
||||
[Token(Token = "0x600BCE2")]
|
||||
[Address(RVA = "0x258AAD0", Offset = "0x2589AD0", VA = "0x18258AAD0")]
|
||||
static ThreefishEngine()
|
||||
{
|
||||
int[] array = new int[ThreefishEngine.MOD9.Length];
|
||||
int num = 0;
|
||||
ThreefishEngine.MOD3 = array;
|
||||
int[] mod = ThreefishEngine.MOD9;
|
||||
if (num < mod.Length)
|
||||
{
|
||||
int[] mod2 = ThreefishEngine.MOD17;
|
||||
ulong num2;
|
||||
num2 += num2;
|
||||
long num3 = (long)(num2 * (ulong)((uint)17));
|
||||
num = (int)((long)num - num3);
|
||||
int[] mod3 = ThreefishEngine.MOD9;
|
||||
ulong num4;
|
||||
num4 += num4;
|
||||
num = (int)((ulong)num - num4);
|
||||
int[] mod4 = ThreefishEngine.MOD5;
|
||||
ulong num5;
|
||||
num5 += num5;
|
||||
num = (int)((ulong)num - num5);
|
||||
int[] mod5 = ThreefishEngine.MOD3;
|
||||
num++;
|
||||
int[] mod6 = ThreefishEngine.MOD9;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE3 RID: 48355 RVA: 0x0029E3DC File Offset: 0x0029C5DC
|
||||
[Token(Token = "0x600BCE3")]
|
||||
[Address(RVA = "0x258AD50", Offset = "0x2589D50", VA = "0x18258AD50")]
|
||||
public ThreefishEngine(int blocksizeBits)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCE3)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::.ctor(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_86:
|
||||
stloc:ArgumentException(var_8_90, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid blocksize - Threefish is defined with block size of 256, 512, or 1024 bits")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE4 RID: 48356 RVA: 0x0029E47C File Offset: 0x0029C67C
|
||||
[Token(Token = "0x600BCE4")]
|
||||
[Address(RVA = "0x2589C10", Offset = "0x2588C10", VA = "0x182589C10", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCE4)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_E2:
|
||||
stloc:ArgumentException(var_18_F8, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish key must be same size as block ("), ldloc:ArgumentException[exp:object](var_17), ldstr:string[exp:object](" bytes)"))))
|
||||
stloc:ArgumentException(var_21_110, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish tweak must be "), ldloc:int32[exp:object](var_20), ldstr:string[exp:object](" bytes"))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE5 RID: 48357 RVA: 0x0029E59C File Offset: 0x0029C79C
|
||||
[Token(Token = "0x600BCE5")]
|
||||
[Address(RVA = "0x2589BC0", Offset = "0x2588BC0", VA = "0x182589BC0")]
|
||||
internal void Init(bool forEncryption, ulong[] key, ulong[] tweak)
|
||||
{
|
||||
this.forEncryption = forEncryption;
|
||||
if (key != 0)
|
||||
{
|
||||
this.SetKey(key);
|
||||
}
|
||||
if (tweak != 0)
|
||||
{
|
||||
this.SetTweak(tweak);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE6 RID: 48358 RVA: 0x0029E5C8 File Offset: 0x0029C7C8
|
||||
[Token(Token = "0x600BCE6")]
|
||||
[Address(RVA = "0x258A530", Offset = "0x2589530", VA = "0x18258A530")]
|
||||
private void SetKey(ulong[] key)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = this.blocksizeWords;
|
||||
}
|
||||
while (key.Length != num);
|
||||
ulong[] array = this.kw;
|
||||
int num2 = 0;
|
||||
if (num > 0)
|
||||
{
|
||||
ulong num3 = key[num2];
|
||||
array[0] = num3;
|
||||
ulong[] array2 = this.kw;
|
||||
num2++;
|
||||
int num4 = this.blocksizeWords;
|
||||
}
|
||||
int num5 = 0;
|
||||
array[0] = (ulong)2004413935125273122L;
|
||||
int num6 = this.blocksizeWords;
|
||||
ulong[] array3 = this.kw;
|
||||
int num7 = num6 + 1;
|
||||
Array.Copy(array3, num5, array3, num7, num6);
|
||||
}
|
||||
|
||||
// Token: 0x0600BCE7 RID: 48359 RVA: 0x0029E658 File Offset: 0x0029C858
|
||||
[Token(Token = "0x600BCE7")]
|
||||
[Address(RVA = "0x258A6B0", Offset = "0x25896B0", VA = "0x18258A6B0")]
|
||||
private void SetTweak(ulong[] tweak)
|
||||
{
|
||||
while (tweak.Length != 2)
|
||||
{
|
||||
}
|
||||
ulong[] array = this.t;
|
||||
ulong num = tweak[0];
|
||||
array[0] = num;
|
||||
ulong[] array2 = this.t;
|
||||
ulong num2 = tweak[1];
|
||||
array2[1] = num2;
|
||||
ulong[] array3 = this.t;
|
||||
int length = array3.Length;
|
||||
ulong num3 = array3[1];
|
||||
array3[2] = num3;
|
||||
ulong[] array4 = this.t;
|
||||
int length2 = array4.Length;
|
||||
ulong num4 = array4[0];
|
||||
array4[3] = num4;
|
||||
ulong[] array5 = this.t;
|
||||
int length3 = array5.Length;
|
||||
ulong num5 = array5[1];
|
||||
array5[4] = num5;
|
||||
}
|
||||
|
||||
// Token: 0x17001D95 RID: 7573
|
||||
// (get) Token: 0x0600BCE8 RID: 48360 RVA: 0x0029E714 File Offset: 0x0029C914
|
||||
[Token(Token = "0x17001D95")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BCE8")]
|
||||
[Address(RVA = "0x258AE90", Offset = "0x2589E90", VA = "0x18258AE90", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int num = this.blocksizeBytes;
|
||||
return "Threefish-" + num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D96 RID: 7574
|
||||
// (get) Token: 0x0600BCE9 RID: 48361 RVA: 0x0029E734 File Offset: 0x0029C934
|
||||
[Token(Token = "0x17001D96")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BCE9")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCEA RID: 48362 RVA: 0x0029E744 File Offset: 0x0029C944
|
||||
[Token(Token = "0x600BCEA")]
|
||||
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000", Slot = "13")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return this.blocksizeBytes;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCEB RID: 48363 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BCEB")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "14")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BCEC RID: 48364 RVA: 0x0029E758 File Offset: 0x0029C958
|
||||
[Token(Token = "0x600BCEC")]
|
||||
[Address(RVA = "0x258A200", Offset = "0x2589200", VA = "0x18258A200", Slot = "15")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCEC)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A9:
|
||||
stloc:DataLengthException(var_10_B3, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Input buffer too short")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCED RID: 48365 RVA: 0x0029E81C File Offset: 0x0029CA1C
|
||||
[Token(Token = "0x600BCED")]
|
||||
[Address(RVA = "0x258A070", Offset = "0x2589070", VA = "0x18258A070")]
|
||||
internal int ProcessBlock(ulong[] inWords, ulong[] outWords)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCED)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.UInt64[],System.UInt64[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5D:
|
||||
stloc:DataLengthException(var_4_67, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Output buffer too short")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCEE RID: 48366 RVA: 0x0029E894 File Offset: 0x0029CA94
|
||||
[Token(Token = "0x600BCEE")]
|
||||
[Address(RVA = "0x25899C0", Offset = "0x25889C0", VA = "0x1825899C0")]
|
||||
internal static ulong BytesToWord(byte[] bytes, int off)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BCEF RID: 48367 RVA: 0x0029E8B4 File Offset: 0x0029CAB4
|
||||
[Token(Token = "0x600BCEF")]
|
||||
[Address(RVA = "0x258A8F0", Offset = "0x25898F0", VA = "0x18258A8F0")]
|
||||
internal static void WordToBytes(ulong word, byte[] bytes, int off)
|
||||
{
|
||||
int num = bytes.Length;
|
||||
int num2 = off + 1;
|
||||
num = off + 6;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF0 RID: 48368 RVA: 0x0029E8D8 File Offset: 0x0029CAD8
|
||||
[Token(Token = "0x600BCF0")]
|
||||
[Address(RVA = "0x258A510", Offset = "0x2589510", VA = "0x18258A510")]
|
||||
private static ulong RotlXor(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF1 RID: 48369 RVA: 0x0029E8E8 File Offset: 0x0029CAE8
|
||||
[Token(Token = "0x600BCF1")]
|
||||
[Address(RVA = "0x258AAB0", Offset = "0x2589AB0", VA = "0x18258AAB0")]
|
||||
private static ulong XorRotr(ulong x, int n, ulong xor)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x040076FA RID: 30458
|
||||
[Token(Token = "0x40076FA")]
|
||||
public const int BLOCKSIZE_256 = 256;
|
||||
|
||||
// Token: 0x040076FB RID: 30459
|
||||
[Token(Token = "0x40076FB")]
|
||||
public const int BLOCKSIZE_512 = 512;
|
||||
|
||||
// Token: 0x040076FC RID: 30460
|
||||
[Token(Token = "0x40076FC")]
|
||||
public const int BLOCKSIZE_1024 = 1024;
|
||||
|
||||
// Token: 0x040076FD RID: 30461
|
||||
[Token(Token = "0x40076FD")]
|
||||
private const int TWEAK_SIZE_BYTES = 16;
|
||||
|
||||
// Token: 0x040076FE RID: 30462
|
||||
[Token(Token = "0x40076FE")]
|
||||
private const int TWEAK_SIZE_WORDS = 2;
|
||||
|
||||
// Token: 0x040076FF RID: 30463
|
||||
[Token(Token = "0x40076FF")]
|
||||
private const int ROUNDS_256 = 72;
|
||||
|
||||
// Token: 0x04007700 RID: 30464
|
||||
[Token(Token = "0x4007700")]
|
||||
private const int ROUNDS_512 = 72;
|
||||
|
||||
// Token: 0x04007701 RID: 30465
|
||||
[Token(Token = "0x4007701")]
|
||||
private const int ROUNDS_1024 = 80;
|
||||
|
||||
// Token: 0x04007702 RID: 30466
|
||||
[Token(Token = "0x4007702")]
|
||||
private const int MAX_ROUNDS = 80;
|
||||
|
||||
// Token: 0x04007703 RID: 30467
|
||||
[Token(Token = "0x4007703")]
|
||||
private const ulong C_240 = 2004413935125273122UL;
|
||||
|
||||
// Token: 0x04007704 RID: 30468
|
||||
[Token(Token = "0x4007704")]
|
||||
private static readonly int[] MOD9 = new int[80];
|
||||
|
||||
// Token: 0x04007705 RID: 30469
|
||||
[Token(Token = "0x4007705")]
|
||||
private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x04007706 RID: 30470
|
||||
[Token(Token = "0x4007706")]
|
||||
private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length];
|
||||
|
||||
// Token: 0x04007707 RID: 30471
|
||||
[Token(Token = "0x4007707")]
|
||||
private static readonly int[] MOD3;
|
||||
|
||||
// Token: 0x04007708 RID: 30472
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007708")]
|
||||
private readonly int blocksizeBytes;
|
||||
|
||||
// Token: 0x04007709 RID: 30473
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x4007709")]
|
||||
private readonly int blocksizeWords;
|
||||
|
||||
// Token: 0x0400770A RID: 30474
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400770A")]
|
||||
private readonly ulong[] currentBlock;
|
||||
|
||||
// Token: 0x0400770B RID: 30475
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400770B")]
|
||||
private readonly ulong[] t;
|
||||
|
||||
// Token: 0x0400770C RID: 30476
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400770C")]
|
||||
private readonly ulong[] kw;
|
||||
|
||||
// Token: 0x0400770D RID: 30477
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400770D")]
|
||||
private readonly ThreefishEngine.ThreefishCipher cipher;
|
||||
|
||||
// Token: 0x0400770E RID: 30478
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400770E")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x02001D92 RID: 7570
|
||||
[Token(Token = "0x2001D92")]
|
||||
private abstract class ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600BCF2 RID: 48370 RVA: 0x0029E8F8 File Offset: 0x0029CAF8
|
||||
[Token(Token = "0x600BCF2")]
|
||||
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
|
||||
protected ThreefishCipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF3 RID: 48371
|
||||
[Token(Token = "0x600BCF3")]
|
||||
[Address(Slot = "4")]
|
||||
internal abstract void EncryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x0600BCF4 RID: 48372
|
||||
[Token(Token = "0x600BCF4")]
|
||||
[Address(Slot = "5")]
|
||||
internal abstract void DecryptBlock(ulong[] block, ulong[] outWords);
|
||||
|
||||
// Token: 0x0400770F RID: 30479
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400770F")]
|
||||
protected readonly ulong[] t;
|
||||
|
||||
// Token: 0x04007710 RID: 30480
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007710")]
|
||||
protected readonly ulong[] kw;
|
||||
}
|
||||
|
||||
// Token: 0x02001D93 RID: 7571
|
||||
[Token(Token = "0x2001D93")]
|
||||
private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600BCF5 RID: 48373 RVA: 0x0029E91C File Offset: 0x0029CB1C
|
||||
[Token(Token = "0x600BCF5")]
|
||||
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
|
||||
public Threefish256Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF6 RID: 48374 RVA: 0x0029E940 File Offset: 0x0029CB40
|
||||
[Token(Token = "0x600BCF6")]
|
||||
[Address(RVA = "0x2587DF0", Offset = "0x2586DF0", VA = "0x182587DF0", Slot = "4")]
|
||||
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
||||
{
|
||||
ulong[] kw;
|
||||
ulong[] t;
|
||||
int[] mod;
|
||||
int[] mod2;
|
||||
do
|
||||
{
|
||||
kw = this.kw;
|
||||
t = this.t;
|
||||
mod = ThreefishEngine.MOD5;
|
||||
mod2 = ThreefishEngine.MOD3;
|
||||
}
|
||||
while (kw.Length != 9 || t.Length != 5);
|
||||
int length = block.Length;
|
||||
ulong num = block[1];
|
||||
ulong num2 = block[2];
|
||||
ulong num3 = t[0];
|
||||
ulong num4 = block[3];
|
||||
num += num3;
|
||||
ulong num5 = t[1];
|
||||
num2 += num5;
|
||||
uint num7;
|
||||
int num6 = mod[(int)num7];
|
||||
int num8 = mod2[(int)num7];
|
||||
int length2 = kw.Length;
|
||||
num8 = (int)((ulong)num8 + num4);
|
||||
num4 = num;
|
||||
num = num4;
|
||||
int num9 = num6 + 1;
|
||||
int length3 = t.Length;
|
||||
ulong num10 = kw[num9];
|
||||
num4 += num10;
|
||||
int num11 = num8 + 1;
|
||||
num10 = num;
|
||||
num10 += (ulong)num7;
|
||||
ulong num12;
|
||||
num10 += num12;
|
||||
ulong num13 = kw[num6];
|
||||
num13 += num4;
|
||||
ulong num14 = t[num11];
|
||||
num11 = (int)((ulong)num11 + num14);
|
||||
num14 = num10;
|
||||
num11 = (int)((ulong)num11 + num10);
|
||||
num11 = (int)((ulong)num11 + num4);
|
||||
num13 += num14;
|
||||
num = num14;
|
||||
num13 = num;
|
||||
int num15 = num6 + 1;
|
||||
num10 += num;
|
||||
int num16 = num8 + 1;
|
||||
num8 += 2;
|
||||
ulong num17 = t[num8];
|
||||
num6 += 4;
|
||||
num17 += (ulong)num11;
|
||||
num13 += (ulong)1L;
|
||||
num7 = (uint)((ulong)num7 + num13);
|
||||
num7 += (uint)2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF7 RID: 48375 RVA: 0x0029EAB8 File Offset: 0x0029CCB8
|
||||
[Token(Token = "0x600BCF7")]
|
||||
[Address(RVA = "0x2587730", Offset = "0x2586730", VA = "0x182587730", Slot = "5")]
|
||||
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
||||
{
|
||||
ulong[] kw;
|
||||
ulong[] t;
|
||||
int[] mod;
|
||||
int[] mod2;
|
||||
int length;
|
||||
do
|
||||
{
|
||||
kw = this.kw;
|
||||
t = this.t;
|
||||
mod = ThreefishEngine.MOD5;
|
||||
mod2 = ThreefishEngine.MOD3;
|
||||
length = kw.Length;
|
||||
}
|
||||
while (length != 9 || t.Length != 5);
|
||||
int length2 = block.Length;
|
||||
ulong num = block[0];
|
||||
ulong num2 = block[1];
|
||||
ulong num3 = block[2];
|
||||
ulong num4 = block[3];
|
||||
int num5 = mod[length2];
|
||||
int num6 = mod2[length2];
|
||||
num5++;
|
||||
int num7 = num6 + 1;
|
||||
ulong num8 = t[num7];
|
||||
num2 -= num8;
|
||||
ulong num9 = t[(int)num8];
|
||||
num3 -= num9;
|
||||
num4 -= (ulong)length;
|
||||
num3 -= num3;
|
||||
num -= num4;
|
||||
num3 = num4;
|
||||
num3 -= num3;
|
||||
num -= num3;
|
||||
num4 = num3;
|
||||
num -= num4;
|
||||
num3 -= num3;
|
||||
int length3 = kw.Length;
|
||||
int num10 = num5 + 1;
|
||||
int length4 = t.Length;
|
||||
int num11 = num6 + 1;
|
||||
ulong num12 = t[num11];
|
||||
num12 += num4;
|
||||
num3 -= num12;
|
||||
ulong num13 = kw[num5];
|
||||
num13 += num3;
|
||||
num -= num13;
|
||||
num4 -= num13;
|
||||
num13 = num3;
|
||||
num -= num4;
|
||||
num3 -= num13;
|
||||
num3 = num13;
|
||||
num13 = num4;
|
||||
num -= num3;
|
||||
num3 -= num13;
|
||||
num4 = num13;
|
||||
num13 = num3;
|
||||
num -= num4;
|
||||
num3 = num13;
|
||||
num3 -= num3;
|
||||
num3 -= num4;
|
||||
num -= num3;
|
||||
ulong num14 = kw[1];
|
||||
ulong num15 = t[0];
|
||||
ulong num16 = kw[2];
|
||||
ulong num17 = t[1];
|
||||
ulong num18 = kw[3];
|
||||
num3 -= num15;
|
||||
num3 -= num14;
|
||||
num3 -= num17;
|
||||
num3 -= num16;
|
||||
num4 -= num18;
|
||||
}
|
||||
|
||||
// Token: 0x04007711 RID: 30481
|
||||
[Token(Token = "0x4007711")]
|
||||
private const int ROTATION_0_0 = 14;
|
||||
|
||||
// Token: 0x04007712 RID: 30482
|
||||
[Token(Token = "0x4007712")]
|
||||
private const int ROTATION_0_1 = 16;
|
||||
|
||||
// Token: 0x04007713 RID: 30483
|
||||
[Token(Token = "0x4007713")]
|
||||
private const int ROTATION_1_0 = 52;
|
||||
|
||||
// Token: 0x04007714 RID: 30484
|
||||
[Token(Token = "0x4007714")]
|
||||
private const int ROTATION_1_1 = 57;
|
||||
|
||||
// Token: 0x04007715 RID: 30485
|
||||
[Token(Token = "0x4007715")]
|
||||
private const int ROTATION_2_0 = 23;
|
||||
|
||||
// Token: 0x04007716 RID: 30486
|
||||
[Token(Token = "0x4007716")]
|
||||
private const int ROTATION_2_1 = 40;
|
||||
|
||||
// Token: 0x04007717 RID: 30487
|
||||
[Token(Token = "0x4007717")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x04007718 RID: 30488
|
||||
[Token(Token = "0x4007718")]
|
||||
private const int ROTATION_3_1 = 37;
|
||||
|
||||
// Token: 0x04007719 RID: 30489
|
||||
[Token(Token = "0x4007719")]
|
||||
private const int ROTATION_4_0 = 25;
|
||||
|
||||
// Token: 0x0400771A RID: 30490
|
||||
[Token(Token = "0x400771A")]
|
||||
private const int ROTATION_4_1 = 33;
|
||||
|
||||
// Token: 0x0400771B RID: 30491
|
||||
[Token(Token = "0x400771B")]
|
||||
private const int ROTATION_5_0 = 46;
|
||||
|
||||
// Token: 0x0400771C RID: 30492
|
||||
[Token(Token = "0x400771C")]
|
||||
private const int ROTATION_5_1 = 12;
|
||||
|
||||
// Token: 0x0400771D RID: 30493
|
||||
[Token(Token = "0x400771D")]
|
||||
private const int ROTATION_6_0 = 58;
|
||||
|
||||
// Token: 0x0400771E RID: 30494
|
||||
[Token(Token = "0x400771E")]
|
||||
private const int ROTATION_6_1 = 22;
|
||||
|
||||
// Token: 0x0400771F RID: 30495
|
||||
[Token(Token = "0x400771F")]
|
||||
private const int ROTATION_7_0 = 32;
|
||||
|
||||
// Token: 0x04007720 RID: 30496
|
||||
[Token(Token = "0x4007720")]
|
||||
private const int ROTATION_7_1 = 32;
|
||||
}
|
||||
|
||||
// Token: 0x02001D94 RID: 7572
|
||||
[Token(Token = "0x2001D94")]
|
||||
private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600BCF8 RID: 48376 RVA: 0x0029EC98 File Offset: 0x0029CE98
|
||||
[Token(Token = "0x600BCF8")]
|
||||
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
|
||||
internal Threefish512Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCF9 RID: 48377 RVA: 0x0029ECBC File Offset: 0x0029CEBC
|
||||
[Token(Token = "0x600BCF9")]
|
||||
[Address(RVA = "0x2588F90", Offset = "0x2587F90", VA = "0x182588F90", Slot = "4")]
|
||||
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
||||
{
|
||||
ulong[] t;
|
||||
ulong[] kw;
|
||||
int[] mod;
|
||||
int[] mod2;
|
||||
do
|
||||
{
|
||||
t = this.t;
|
||||
kw = this.kw;
|
||||
mod = ThreefishEngine.MOD9;
|
||||
mod2 = ThreefishEngine.MOD3;
|
||||
}
|
||||
while (kw.Length != 17 || t.Length != 5);
|
||||
int length = block.Length;
|
||||
ulong num = block[1];
|
||||
ulong num2 = block[2];
|
||||
ulong num3 = block[3];
|
||||
ulong num4 = block[4];
|
||||
ulong num5 = block[5];
|
||||
ulong num6 = block[6];
|
||||
ulong num7 = t[0];
|
||||
ulong num8 = block[7];
|
||||
num5 += num7;
|
||||
ulong num9 = t[1];
|
||||
num6 += num9;
|
||||
uint num11;
|
||||
int num10 = mod[(int)num11];
|
||||
int num12 = mod2[(int)num11];
|
||||
num2 += num3;
|
||||
num = num3;
|
||||
num4 = num;
|
||||
num3 = num8;
|
||||
num8 = num;
|
||||
num6 = num8;
|
||||
num = num4;
|
||||
num5 = num3;
|
||||
int length2 = kw.Length;
|
||||
int num13 = num10 + 1;
|
||||
ulong num14 = kw[num13];
|
||||
num += num14;
|
||||
ulong num15 = kw[(int)num14];
|
||||
num4 = num6;
|
||||
num4 += num15;
|
||||
int length3 = t.Length;
|
||||
ulong num16 = kw[mod];
|
||||
num5 += num16;
|
||||
int num17 = num12 + 1;
|
||||
ulong num18 = kw[length3];
|
||||
num16 = num5;
|
||||
num6 = num4;
|
||||
num3 += num4;
|
||||
ulong num19 = kw[num10];
|
||||
num16 += (ulong)num11;
|
||||
num16 += num18;
|
||||
ulong num20 = t[num17];
|
||||
num19 += num;
|
||||
num5 = num;
|
||||
num4 = num5;
|
||||
num += num5;
|
||||
num5 += num20;
|
||||
num20 = num16;
|
||||
num5 += num16;
|
||||
num16 = num5;
|
||||
num += num20;
|
||||
num5 += num4;
|
||||
num20 = num6;
|
||||
num6 = num20;
|
||||
num5 = num20;
|
||||
num3 = num5;
|
||||
num += num5;
|
||||
num4 += num6;
|
||||
int num21 = num10 + 1;
|
||||
num14 += num;
|
||||
num15 += num5;
|
||||
num16 += num4;
|
||||
int length4 = t.Length;
|
||||
num5 = num3;
|
||||
num12 += 2;
|
||||
num10 += 8;
|
||||
uint num22 = num11 + 1U;
|
||||
num11 += (uint)2;
|
||||
num22 = (uint)((ulong)num22 + num5);
|
||||
}
|
||||
|
||||
// Token: 0x0600BCFA RID: 48378 RVA: 0x0029EED4 File Offset: 0x0029D0D4
|
||||
[Token(Token = "0x600BCFA")]
|
||||
[Address(RVA = "0x2588420", Offset = "0x2587420", VA = "0x182588420", Slot = "5")]
|
||||
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
||||
{
|
||||
ulong[] t;
|
||||
ulong[] kw;
|
||||
int[] mod;
|
||||
int[] mod2;
|
||||
int length;
|
||||
do
|
||||
{
|
||||
t = this.t;
|
||||
kw = this.kw;
|
||||
mod = ThreefishEngine.MOD9;
|
||||
mod2 = ThreefishEngine.MOD3;
|
||||
length = kw.Length;
|
||||
}
|
||||
while (length != 17 || t.Length != 5);
|
||||
int i = block.Length;
|
||||
ulong num = block[0];
|
||||
ulong num2 = block[1];
|
||||
ulong num3 = block[2];
|
||||
ulong num4 = block[3];
|
||||
ulong num5 = block[4];
|
||||
ulong num6 = block[5];
|
||||
ulong num7 = block[6];
|
||||
ulong num8 = block[7];
|
||||
i = length;
|
||||
int num9 = mod[i];
|
||||
int num10 = mod2[i];
|
||||
int num11 = num9 + 1;
|
||||
int num12 = num10 + 1;
|
||||
ulong num13 = t[num12];
|
||||
num6 -= num13;
|
||||
ulong num14;
|
||||
num14 -= (ulong)i;
|
||||
num8 += num14;
|
||||
ulong num15 = t[(int)num13];
|
||||
num7 -= num15;
|
||||
num15 = num5;
|
||||
num7 -= num2;
|
||||
num2 = num8;
|
||||
num5 -= num15;
|
||||
num3 -= num6;
|
||||
num -= num2;
|
||||
num15 = num5;
|
||||
num2 = num15;
|
||||
num5 -= num2;
|
||||
num15 = num7;
|
||||
num -= num6;
|
||||
num8 = num15;
|
||||
num15 = num2;
|
||||
num7 -= num8;
|
||||
num3 -= num15;
|
||||
num15 = num3;
|
||||
num6 = num15;
|
||||
num2 = num15;
|
||||
num3 -= num2;
|
||||
num5 -= num6;
|
||||
num15 = num8;
|
||||
num7 -= num15;
|
||||
num -= num15;
|
||||
num6 = num2;
|
||||
int length2 = kw.Length;
|
||||
num2 = num15;
|
||||
num15 = num6;
|
||||
ulong num16 = kw[num9];
|
||||
int num17 = num9 + 1;
|
||||
num16 += num6;
|
||||
num -= num16;
|
||||
ulong num18 = kw[(int)num16];
|
||||
num18 += num2;
|
||||
num3 -= num18;
|
||||
ulong num19 = kw[(int)num18];
|
||||
num19 += num2;
|
||||
num5 -= num19;
|
||||
int length3 = t.Length;
|
||||
num10++;
|
||||
ulong num20 = t[num10];
|
||||
num7 -= num20;
|
||||
num2 = num6;
|
||||
num7 -= num2;
|
||||
num -= num15;
|
||||
num6 = num2;
|
||||
num3 -= num6;
|
||||
num2 = num6;
|
||||
num5 -= num2;
|
||||
num18 = num5;
|
||||
num2 = num18;
|
||||
num -= num2;
|
||||
num5 -= num2;
|
||||
num2 = num15;
|
||||
num3 -= num2;
|
||||
num18 = num3;
|
||||
num6 = num2;
|
||||
num2 = num18;
|
||||
num7 -= num2;
|
||||
num3 -= num2;
|
||||
num5 -= num6;
|
||||
num18 = num7;
|
||||
num2 = num18;
|
||||
num18 = num2;
|
||||
num7 -= num2;
|
||||
num -= num18;
|
||||
num15 = num6;
|
||||
num2 = num18;
|
||||
num7 -= num15;
|
||||
num -= num2;
|
||||
num3 -= num2;
|
||||
num5 -= num2;
|
||||
while (i >= 1)
|
||||
{
|
||||
}
|
||||
ulong num21 = kw[1];
|
||||
ulong num22 = kw[2];
|
||||
ulong num23 = kw[3];
|
||||
ulong num24 = kw[4];
|
||||
ulong num25 = kw[5];
|
||||
int length4 = t.Length;
|
||||
ulong num26 = t[0];
|
||||
ulong num27 = kw[6];
|
||||
ulong num28 = t[1];
|
||||
ulong num29 = kw[7];
|
||||
num5 -= num24;
|
||||
num2 -= num26;
|
||||
num7 -= num28;
|
||||
num7 -= num27;
|
||||
num15 -= num29;
|
||||
}
|
||||
|
||||
// Token: 0x04007721 RID: 30497
|
||||
[Token(Token = "0x4007721")]
|
||||
private const int ROTATION_0_0 = 46;
|
||||
|
||||
// Token: 0x04007722 RID: 30498
|
||||
[Token(Token = "0x4007722")]
|
||||
private const int ROTATION_0_1 = 36;
|
||||
|
||||
// Token: 0x04007723 RID: 30499
|
||||
[Token(Token = "0x4007723")]
|
||||
private const int ROTATION_0_2 = 19;
|
||||
|
||||
// Token: 0x04007724 RID: 30500
|
||||
[Token(Token = "0x4007724")]
|
||||
private const int ROTATION_0_3 = 37;
|
||||
|
||||
// Token: 0x04007725 RID: 30501
|
||||
[Token(Token = "0x4007725")]
|
||||
private const int ROTATION_1_0 = 33;
|
||||
|
||||
// Token: 0x04007726 RID: 30502
|
||||
[Token(Token = "0x4007726")]
|
||||
private const int ROTATION_1_1 = 27;
|
||||
|
||||
// Token: 0x04007727 RID: 30503
|
||||
[Token(Token = "0x4007727")]
|
||||
private const int ROTATION_1_2 = 14;
|
||||
|
||||
// Token: 0x04007728 RID: 30504
|
||||
[Token(Token = "0x4007728")]
|
||||
private const int ROTATION_1_3 = 42;
|
||||
|
||||
// Token: 0x04007729 RID: 30505
|
||||
[Token(Token = "0x4007729")]
|
||||
private const int ROTATION_2_0 = 17;
|
||||
|
||||
// Token: 0x0400772A RID: 30506
|
||||
[Token(Token = "0x400772A")]
|
||||
private const int ROTATION_2_1 = 49;
|
||||
|
||||
// Token: 0x0400772B RID: 30507
|
||||
[Token(Token = "0x400772B")]
|
||||
private const int ROTATION_2_2 = 36;
|
||||
|
||||
// Token: 0x0400772C RID: 30508
|
||||
[Token(Token = "0x400772C")]
|
||||
private const int ROTATION_2_3 = 39;
|
||||
|
||||
// Token: 0x0400772D RID: 30509
|
||||
[Token(Token = "0x400772D")]
|
||||
private const int ROTATION_3_0 = 44;
|
||||
|
||||
// Token: 0x0400772E RID: 30510
|
||||
[Token(Token = "0x400772E")]
|
||||
private const int ROTATION_3_1 = 9;
|
||||
|
||||
// Token: 0x0400772F RID: 30511
|
||||
[Token(Token = "0x400772F")]
|
||||
private const int ROTATION_3_2 = 54;
|
||||
|
||||
// Token: 0x04007730 RID: 30512
|
||||
[Token(Token = "0x4007730")]
|
||||
private const int ROTATION_3_3 = 56;
|
||||
|
||||
// Token: 0x04007731 RID: 30513
|
||||
[Token(Token = "0x4007731")]
|
||||
private const int ROTATION_4_0 = 39;
|
||||
|
||||
// Token: 0x04007732 RID: 30514
|
||||
[Token(Token = "0x4007732")]
|
||||
private const int ROTATION_4_1 = 30;
|
||||
|
||||
// Token: 0x04007733 RID: 30515
|
||||
[Token(Token = "0x4007733")]
|
||||
private const int ROTATION_4_2 = 34;
|
||||
|
||||
// Token: 0x04007734 RID: 30516
|
||||
[Token(Token = "0x4007734")]
|
||||
private const int ROTATION_4_3 = 24;
|
||||
|
||||
// Token: 0x04007735 RID: 30517
|
||||
[Token(Token = "0x4007735")]
|
||||
private const int ROTATION_5_0 = 13;
|
||||
|
||||
// Token: 0x04007736 RID: 30518
|
||||
[Token(Token = "0x4007736")]
|
||||
private const int ROTATION_5_1 = 50;
|
||||
|
||||
// Token: 0x04007737 RID: 30519
|
||||
[Token(Token = "0x4007737")]
|
||||
private const int ROTATION_5_2 = 10;
|
||||
|
||||
// Token: 0x04007738 RID: 30520
|
||||
[Token(Token = "0x4007738")]
|
||||
private const int ROTATION_5_3 = 17;
|
||||
|
||||
// Token: 0x04007739 RID: 30521
|
||||
[Token(Token = "0x4007739")]
|
||||
private const int ROTATION_6_0 = 25;
|
||||
|
||||
// Token: 0x0400773A RID: 30522
|
||||
[Token(Token = "0x400773A")]
|
||||
private const int ROTATION_6_1 = 29;
|
||||
|
||||
// Token: 0x0400773B RID: 30523
|
||||
[Token(Token = "0x400773B")]
|
||||
private const int ROTATION_6_2 = 39;
|
||||
|
||||
// Token: 0x0400773C RID: 30524
|
||||
[Token(Token = "0x400773C")]
|
||||
private const int ROTATION_6_3 = 43;
|
||||
|
||||
// Token: 0x0400773D RID: 30525
|
||||
[Token(Token = "0x400773D")]
|
||||
private const int ROTATION_7_0 = 8;
|
||||
|
||||
// Token: 0x0400773E RID: 30526
|
||||
[Token(Token = "0x400773E")]
|
||||
private const int ROTATION_7_1 = 35;
|
||||
|
||||
// Token: 0x0400773F RID: 30527
|
||||
[Token(Token = "0x400773F")]
|
||||
private const int ROTATION_7_2 = 56;
|
||||
|
||||
// Token: 0x04007740 RID: 30528
|
||||
[Token(Token = "0x4007740")]
|
||||
private const int ROTATION_7_3 = 22;
|
||||
}
|
||||
|
||||
// Token: 0x02001D95 RID: 7573
|
||||
[Token(Token = "0x2001D95")]
|
||||
private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher
|
||||
{
|
||||
// Token: 0x0600BCFB RID: 48379 RVA: 0x0029F1F8 File Offset: 0x0029D3F8
|
||||
[Token(Token = "0x600BCFB")]
|
||||
[Address(RVA = "0xE5DFE0", Offset = "0xE5CFE0", VA = "0x180E5DFE0")]
|
||||
public Threefish1024Cipher(ulong[] kw, ulong[] t)
|
||||
{
|
||||
this.kw = kw;
|
||||
this.t = t;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCFC RID: 48380 RVA: 0x0029F21C File Offset: 0x0029D41C
|
||||
[Token(Token = "0x600BCFC")]
|
||||
[Address(RVA = "0x2586280", Offset = "0x2585280", VA = "0x182586280", Slot = "4")]
|
||||
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
||||
{
|
||||
ulong[] array;
|
||||
ulong[] array2;
|
||||
int[] array3;
|
||||
int[] array4;
|
||||
do
|
||||
{
|
||||
array = this.kw;
|
||||
array2 = this.t;
|
||||
array3 = ThreefishEngine.MOD17;
|
||||
array4 = ThreefishEngine.MOD3;
|
||||
}
|
||||
while (array.Length != 33 || array2.Length != 5);
|
||||
ulong num = array2[0];
|
||||
ulong num2 = array2[1];
|
||||
array4 += num2;
|
||||
uint num4;
|
||||
int num3 = array3[(int)num4];
|
||||
int num5 = array4[(int)num4];
|
||||
array += typeof(ThreefishEngine).TypeHandle;
|
||||
array4 += this;
|
||||
array += this;
|
||||
array4 += array4;
|
||||
array3 += array4;
|
||||
int length = array.Length;
|
||||
int num6 = num3 + 1;
|
||||
int length2 = array2.Length;
|
||||
int num7 = num5 + 1;
|
||||
num3 += 15;
|
||||
array3 += num4;
|
||||
ulong num8 = array[num3];
|
||||
num8 += this;
|
||||
ulong num9 = array[num6];
|
||||
array3 += num9;
|
||||
array3 += this;
|
||||
ulong num10 = array[array4];
|
||||
array4 += num10;
|
||||
array4 += this;
|
||||
ulong num11 = array[this];
|
||||
array4 += num11;
|
||||
array4 += array4;
|
||||
ulong num12 = array[this];
|
||||
ulong num13 = array[this];
|
||||
array += num12;
|
||||
num13 += array4;
|
||||
ulong num14 = array[this];
|
||||
array2 += array3;
|
||||
array += this;
|
||||
num13 += this;
|
||||
array4 += array4;
|
||||
ulong num15 = array[num6];
|
||||
ulong num16 = array[array4];
|
||||
num16 += array3;
|
||||
ulong num17 = array[array4];
|
||||
num17 += array4;
|
||||
ulong num18 = array[this];
|
||||
ulong num19 = array[this];
|
||||
num19 += num8;
|
||||
ulong num20 = array[this];
|
||||
ulong num21 = array[this];
|
||||
num21 += this;
|
||||
num5++;
|
||||
int length3 = array2.Length;
|
||||
num5 += 2;
|
||||
ulong num22 = array2[num5];
|
||||
num4 += (uint)1;
|
||||
num4 += array3;
|
||||
num4 += (uint)2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BCFD RID: 48381 RVA: 0x0029F3D8 File Offset: 0x0029D5D8
|
||||
[Token(Token = "0x600BCFD")]
|
||||
[Address(RVA = "0x2584B30", Offset = "0x2583B30", VA = "0x182584B30", Slot = "5")]
|
||||
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
||||
{
|
||||
ulong[] t;
|
||||
ulong[] kw;
|
||||
int[] mod;
|
||||
int[] mod2;
|
||||
do
|
||||
{
|
||||
t = this.t;
|
||||
kw = this.kw;
|
||||
mod = ThreefishEngine.MOD17;
|
||||
mod2 = ThreefishEngine.MOD3;
|
||||
}
|
||||
while (kw.Length != 33 || t.Length != 5);
|
||||
int length = block.Length;
|
||||
ulong num = block[1];
|
||||
ulong num2 = block[2];
|
||||
ulong num3 = block[3];
|
||||
ulong num4 = block[5];
|
||||
ulong num5 = block[6];
|
||||
ulong num6 = block[7];
|
||||
ulong num7 = block[8];
|
||||
ulong num8 = block[9];
|
||||
ulong num9 = block[10];
|
||||
ulong num10 = block[11];
|
||||
ulong num11 = block[12];
|
||||
ulong num12 = block[13];
|
||||
ulong num13 = block[14];
|
||||
ulong num14 = block[15];
|
||||
uint num16;
|
||||
int num15 = mod[(int)num16];
|
||||
int num17 = mod2[(int)num16];
|
||||
int num18 = num15 + 1;
|
||||
num17++;
|
||||
ulong num19 = t[num17];
|
||||
num17 += 2;
|
||||
ulong num20 = t[num17];
|
||||
num13 -= num20;
|
||||
num14 -= (ulong)num16;
|
||||
num2 -= num10;
|
||||
num13 = num12;
|
||||
num5 -= num13;
|
||||
num14 = num8;
|
||||
num8 = num7;
|
||||
num13 -= num8;
|
||||
num5 = num8;
|
||||
num8 = num9;
|
||||
num7 -= num5;
|
||||
num7 = num8;
|
||||
num8 = num11;
|
||||
num9 -= num7;
|
||||
num13 = num8;
|
||||
num11 -= num13;
|
||||
num11 = num13;
|
||||
num2 -= num5;
|
||||
num5 -= num5;
|
||||
num8 = num14;
|
||||
num11 -= num8;
|
||||
num5 = num10;
|
||||
num11 = num13;
|
||||
num7 = num11;
|
||||
num7 -= num5;
|
||||
num13 -= num7;
|
||||
num13 = num9;
|
||||
num9 -= num13;
|
||||
num7 = num13;
|
||||
num10 = num7;
|
||||
num2 -= num10;
|
||||
num5 -= num5;
|
||||
num14 = num8;
|
||||
num9 = num11;
|
||||
num5 = num9;
|
||||
num11 -= num5;
|
||||
num9 = num13;
|
||||
num7 = num9;
|
||||
num13 -= num7;
|
||||
num9 = num7;
|
||||
num13 = num9;
|
||||
num7 -= num13;
|
||||
num5 = num13;
|
||||
num9 = num14;
|
||||
int length2 = kw.Length;
|
||||
ulong num21 = kw[num15];
|
||||
num21 += num5;
|
||||
int num22 = num15 + 1;
|
||||
ulong num23 = kw[num22];
|
||||
num23 += num5;
|
||||
num2 -= num23;
|
||||
ulong num24 = kw[(int)num23];
|
||||
ulong num25 = kw[(int)num24];
|
||||
num5 -= num25;
|
||||
ulong num26 = kw[(int)num25];
|
||||
num7 -= num26;
|
||||
ulong num27 = kw[(int)num26];
|
||||
num9 -= num27;
|
||||
ulong num28 = kw[(int)num27];
|
||||
num28 += num10;
|
||||
num11 -= num28;
|
||||
int length3 = t.Length;
|
||||
num17++;
|
||||
ulong num29 = t[num17];
|
||||
num15 += 15;
|
||||
num29 += num9;
|
||||
num13 -= num29;
|
||||
num9 -= (ulong)num16;
|
||||
num2 -= num9;
|
||||
num5 -= num10;
|
||||
num13 -= num5;
|
||||
num5 = num9;
|
||||
num7 -= num5;
|
||||
num9 = num5;
|
||||
num9 -= num9;
|
||||
num25 = num9;
|
||||
num11 -= num25;
|
||||
num9 = num5;
|
||||
num11 = num9;
|
||||
num2 -= num9;
|
||||
num2 = num5;
|
||||
num5 -= num2;
|
||||
num5 = num13;
|
||||
num13 -= num5;
|
||||
num5 = num9;
|
||||
num7 -= num5;
|
||||
num13 = num9;
|
||||
num9 -= num13;
|
||||
num9 = num5;
|
||||
num2 -= num9;
|
||||
num5 -= num5;
|
||||
num9 = num11;
|
||||
num11 = num9;
|
||||
num9 = num11;
|
||||
num9 -= num11;
|
||||
num5 = num9;
|
||||
num9 = num13;
|
||||
num11 -= num5;
|
||||
num5 = num9;
|
||||
num9 = num7;
|
||||
num13 -= num5;
|
||||
num11 = num9;
|
||||
num7 -= num11;
|
||||
num9 = num5;
|
||||
num2 -= num9;
|
||||
num5 -= num11;
|
||||
num11 = num9;
|
||||
num2 = num9;
|
||||
num7 -= num11;
|
||||
num11 = num5;
|
||||
num13 -= num2;
|
||||
num5 = num9;
|
||||
num5 -= num11;
|
||||
num11 -= num9;
|
||||
while (num16 >= (uint)1)
|
||||
{
|
||||
}
|
||||
ulong num30 = kw[1];
|
||||
ulong num31 = kw[2];
|
||||
ulong num32 = kw[3];
|
||||
ulong num33 = kw[4];
|
||||
ulong num34 = kw[5];
|
||||
ulong num35 = kw[6];
|
||||
ulong num36 = kw[7];
|
||||
ulong num37 = kw[8];
|
||||
ulong num38 = kw[9];
|
||||
ulong num39 = kw[10];
|
||||
ulong num40 = kw[11];
|
||||
ulong num41 = kw[12];
|
||||
ulong num42 = kw[13];
|
||||
int length4 = t.Length;
|
||||
ulong num43 = t[0];
|
||||
ulong num44 = kw[14];
|
||||
ulong num45 = t[1];
|
||||
ulong num46 = kw[15];
|
||||
num13 -= num45;
|
||||
num13 -= num44;
|
||||
num2 -= num46;
|
||||
}
|
||||
|
||||
// Token: 0x04007741 RID: 30529
|
||||
[Token(Token = "0x4007741")]
|
||||
private const int ROTATION_0_0 = 24;
|
||||
|
||||
// Token: 0x04007742 RID: 30530
|
||||
[Token(Token = "0x4007742")]
|
||||
private const int ROTATION_0_1 = 13;
|
||||
|
||||
// Token: 0x04007743 RID: 30531
|
||||
[Token(Token = "0x4007743")]
|
||||
private const int ROTATION_0_2 = 8;
|
||||
|
||||
// Token: 0x04007744 RID: 30532
|
||||
[Token(Token = "0x4007744")]
|
||||
private const int ROTATION_0_3 = 47;
|
||||
|
||||
// Token: 0x04007745 RID: 30533
|
||||
[Token(Token = "0x4007745")]
|
||||
private const int ROTATION_0_4 = 8;
|
||||
|
||||
// Token: 0x04007746 RID: 30534
|
||||
[Token(Token = "0x4007746")]
|
||||
private const int ROTATION_0_5 = 17;
|
||||
|
||||
// Token: 0x04007747 RID: 30535
|
||||
[Token(Token = "0x4007747")]
|
||||
private const int ROTATION_0_6 = 22;
|
||||
|
||||
// Token: 0x04007748 RID: 30536
|
||||
[Token(Token = "0x4007748")]
|
||||
private const int ROTATION_0_7 = 37;
|
||||
|
||||
// Token: 0x04007749 RID: 30537
|
||||
[Token(Token = "0x4007749")]
|
||||
private const int ROTATION_1_0 = 38;
|
||||
|
||||
// Token: 0x0400774A RID: 30538
|
||||
[Token(Token = "0x400774A")]
|
||||
private const int ROTATION_1_1 = 19;
|
||||
|
||||
// Token: 0x0400774B RID: 30539
|
||||
[Token(Token = "0x400774B")]
|
||||
private const int ROTATION_1_2 = 10;
|
||||
|
||||
// Token: 0x0400774C RID: 30540
|
||||
[Token(Token = "0x400774C")]
|
||||
private const int ROTATION_1_3 = 55;
|
||||
|
||||
// Token: 0x0400774D RID: 30541
|
||||
[Token(Token = "0x400774D")]
|
||||
private const int ROTATION_1_4 = 49;
|
||||
|
||||
// Token: 0x0400774E RID: 30542
|
||||
[Token(Token = "0x400774E")]
|
||||
private const int ROTATION_1_5 = 18;
|
||||
|
||||
// Token: 0x0400774F RID: 30543
|
||||
[Token(Token = "0x400774F")]
|
||||
private const int ROTATION_1_6 = 23;
|
||||
|
||||
// Token: 0x04007750 RID: 30544
|
||||
[Token(Token = "0x4007750")]
|
||||
private const int ROTATION_1_7 = 52;
|
||||
|
||||
// Token: 0x04007751 RID: 30545
|
||||
[Token(Token = "0x4007751")]
|
||||
private const int ROTATION_2_0 = 33;
|
||||
|
||||
// Token: 0x04007752 RID: 30546
|
||||
[Token(Token = "0x4007752")]
|
||||
private const int ROTATION_2_1 = 4;
|
||||
|
||||
// Token: 0x04007753 RID: 30547
|
||||
[Token(Token = "0x4007753")]
|
||||
private const int ROTATION_2_2 = 51;
|
||||
|
||||
// Token: 0x04007754 RID: 30548
|
||||
[Token(Token = "0x4007754")]
|
||||
private const int ROTATION_2_3 = 13;
|
||||
|
||||
// Token: 0x04007755 RID: 30549
|
||||
[Token(Token = "0x4007755")]
|
||||
private const int ROTATION_2_4 = 34;
|
||||
|
||||
// Token: 0x04007756 RID: 30550
|
||||
[Token(Token = "0x4007756")]
|
||||
private const int ROTATION_2_5 = 41;
|
||||
|
||||
// Token: 0x04007757 RID: 30551
|
||||
[Token(Token = "0x4007757")]
|
||||
private const int ROTATION_2_6 = 59;
|
||||
|
||||
// Token: 0x04007758 RID: 30552
|
||||
[Token(Token = "0x4007758")]
|
||||
private const int ROTATION_2_7 = 17;
|
||||
|
||||
// Token: 0x04007759 RID: 30553
|
||||
[Token(Token = "0x4007759")]
|
||||
private const int ROTATION_3_0 = 5;
|
||||
|
||||
// Token: 0x0400775A RID: 30554
|
||||
[Token(Token = "0x400775A")]
|
||||
private const int ROTATION_3_1 = 20;
|
||||
|
||||
// Token: 0x0400775B RID: 30555
|
||||
[Token(Token = "0x400775B")]
|
||||
private const int ROTATION_3_2 = 48;
|
||||
|
||||
// Token: 0x0400775C RID: 30556
|
||||
[Token(Token = "0x400775C")]
|
||||
private const int ROTATION_3_3 = 41;
|
||||
|
||||
// Token: 0x0400775D RID: 30557
|
||||
[Token(Token = "0x400775D")]
|
||||
private const int ROTATION_3_4 = 47;
|
||||
|
||||
// Token: 0x0400775E RID: 30558
|
||||
[Token(Token = "0x400775E")]
|
||||
private const int ROTATION_3_5 = 28;
|
||||
|
||||
// Token: 0x0400775F RID: 30559
|
||||
[Token(Token = "0x400775F")]
|
||||
private const int ROTATION_3_6 = 16;
|
||||
|
||||
// Token: 0x04007760 RID: 30560
|
||||
[Token(Token = "0x4007760")]
|
||||
private const int ROTATION_3_7 = 25;
|
||||
|
||||
// Token: 0x04007761 RID: 30561
|
||||
[Token(Token = "0x4007761")]
|
||||
private const int ROTATION_4_0 = 41;
|
||||
|
||||
// Token: 0x04007762 RID: 30562
|
||||
[Token(Token = "0x4007762")]
|
||||
private const int ROTATION_4_1 = 9;
|
||||
|
||||
// Token: 0x04007763 RID: 30563
|
||||
[Token(Token = "0x4007763")]
|
||||
private const int ROTATION_4_2 = 37;
|
||||
|
||||
// Token: 0x04007764 RID: 30564
|
||||
[Token(Token = "0x4007764")]
|
||||
private const int ROTATION_4_3 = 31;
|
||||
|
||||
// Token: 0x04007765 RID: 30565
|
||||
[Token(Token = "0x4007765")]
|
||||
private const int ROTATION_4_4 = 12;
|
||||
|
||||
// Token: 0x04007766 RID: 30566
|
||||
[Token(Token = "0x4007766")]
|
||||
private const int ROTATION_4_5 = 47;
|
||||
|
||||
// Token: 0x04007767 RID: 30567
|
||||
[Token(Token = "0x4007767")]
|
||||
private const int ROTATION_4_6 = 44;
|
||||
|
||||
// Token: 0x04007768 RID: 30568
|
||||
[Token(Token = "0x4007768")]
|
||||
private const int ROTATION_4_7 = 30;
|
||||
|
||||
// Token: 0x04007769 RID: 30569
|
||||
[Token(Token = "0x4007769")]
|
||||
private const int ROTATION_5_0 = 16;
|
||||
|
||||
// Token: 0x0400776A RID: 30570
|
||||
[Token(Token = "0x400776A")]
|
||||
private const int ROTATION_5_1 = 34;
|
||||
|
||||
// Token: 0x0400776B RID: 30571
|
||||
[Token(Token = "0x400776B")]
|
||||
private const int ROTATION_5_2 = 56;
|
||||
|
||||
// Token: 0x0400776C RID: 30572
|
||||
[Token(Token = "0x400776C")]
|
||||
private const int ROTATION_5_3 = 51;
|
||||
|
||||
// Token: 0x0400776D RID: 30573
|
||||
[Token(Token = "0x400776D")]
|
||||
private const int ROTATION_5_4 = 4;
|
||||
|
||||
// Token: 0x0400776E RID: 30574
|
||||
[Token(Token = "0x400776E")]
|
||||
private const int ROTATION_5_5 = 53;
|
||||
|
||||
// Token: 0x0400776F RID: 30575
|
||||
[Token(Token = "0x400776F")]
|
||||
private const int ROTATION_5_6 = 42;
|
||||
|
||||
// Token: 0x04007770 RID: 30576
|
||||
[Token(Token = "0x4007770")]
|
||||
private const int ROTATION_5_7 = 41;
|
||||
|
||||
// Token: 0x04007771 RID: 30577
|
||||
[Token(Token = "0x4007771")]
|
||||
private const int ROTATION_6_0 = 31;
|
||||
|
||||
// Token: 0x04007772 RID: 30578
|
||||
[Token(Token = "0x4007772")]
|
||||
private const int ROTATION_6_1 = 44;
|
||||
|
||||
// Token: 0x04007773 RID: 30579
|
||||
[Token(Token = "0x4007773")]
|
||||
private const int ROTATION_6_2 = 47;
|
||||
|
||||
// Token: 0x04007774 RID: 30580
|
||||
[Token(Token = "0x4007774")]
|
||||
private const int ROTATION_6_3 = 46;
|
||||
|
||||
// Token: 0x04007775 RID: 30581
|
||||
[Token(Token = "0x4007775")]
|
||||
private const int ROTATION_6_4 = 19;
|
||||
|
||||
// Token: 0x04007776 RID: 30582
|
||||
[Token(Token = "0x4007776")]
|
||||
private const int ROTATION_6_5 = 42;
|
||||
|
||||
// Token: 0x04007777 RID: 30583
|
||||
[Token(Token = "0x4007777")]
|
||||
private const int ROTATION_6_6 = 44;
|
||||
|
||||
// Token: 0x04007778 RID: 30584
|
||||
[Token(Token = "0x4007778")]
|
||||
private const int ROTATION_6_7 = 25;
|
||||
|
||||
// Token: 0x04007779 RID: 30585
|
||||
[Token(Token = "0x4007779")]
|
||||
private const int ROTATION_7_0 = 9;
|
||||
|
||||
// Token: 0x0400777A RID: 30586
|
||||
[Token(Token = "0x400777A")]
|
||||
private const int ROTATION_7_1 = 48;
|
||||
|
||||
// Token: 0x0400777B RID: 30587
|
||||
[Token(Token = "0x400777B")]
|
||||
private const int ROTATION_7_2 = 35;
|
||||
|
||||
// Token: 0x0400777C RID: 30588
|
||||
[Token(Token = "0x400777C")]
|
||||
private const int ROTATION_7_3 = 52;
|
||||
|
||||
// Token: 0x0400777D RID: 30589
|
||||
[Token(Token = "0x400777D")]
|
||||
private const int ROTATION_7_4 = 23;
|
||||
|
||||
// Token: 0x0400777E RID: 30590
|
||||
[Token(Token = "0x400777E")]
|
||||
private const int ROTATION_7_5 = 31;
|
||||
|
||||
// Token: 0x0400777F RID: 30591
|
||||
[Token(Token = "0x400777F")]
|
||||
private const int ROTATION_7_6 = 37;
|
||||
|
||||
// Token: 0x04007780 RID: 30592
|
||||
[Token(Token = "0x4007780")]
|
||||
private const int ROTATION_7_7 = 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
+999
@@ -0,0 +1,999 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D96 RID: 7574
|
||||
[Token(Token = "0x2001D96")]
|
||||
public sealed class TnepresEngine : SerpentEngineBase
|
||||
{
|
||||
// Token: 0x17001D97 RID: 7575
|
||||
// (get) Token: 0x0600BCFE RID: 48382 RVA: 0x0029F870 File Offset: 0x0029DA70
|
||||
[Token(Token = "0x17001D97")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BCFE")]
|
||||
[Address(RVA = "0x25910D0", Offset = "0x25900D0", VA = "0x1825910D0", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "Tnepres";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BCFF RID: 48383 RVA: 0x0029F884 File Offset: 0x0029DA84
|
||||
[Token(Token = "0x600BCFF")]
|
||||
[Address(RVA = "0x258E850", Offset = "0x258D850", VA = "0x18258E850", Slot = "15")]
|
||||
protected override int[] MakeWorkingKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BCFF)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::MakeWorkingKey(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5F:
|
||||
stloc:int32[](var_8_69, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(132)))
|
||||
stloc:int32(var_10_71, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_07)))
|
||||
stloc:int32(var_11_7B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldloc:int32[][exp:int32](var_8_69)))
|
||||
stloc:uint32(var_12_81, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_07), ldc.i4:int32(0), ldloc:int32(var_11_7B))
|
||||
stloc:int32(var_14_8D, ldc.i4:int32(0))
|
||||
call:void(Array::Copy, ldloc:int32[][exp:Array](var_1_07), ldloc:uint32[exp:int32](var_9), ldloc:int32[][exp:Array](var_8_69), ldloc:int32(var_14_8D), ldloc:uint32[exp:int32](var_9))
|
||||
stloc:int32(var_15_A4, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:uint32(var_16_B6, call:uint32(LAELBLPHAIB::BCBNCDMHJED, ldelem:int32[exp:uint32]([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldloc:uint32[exp:int32](var_9)), ldc.i4:int32(11)))
|
||||
stloc:uint32(var_17_BC, add:uint32(ldloc:uint32(var_9), ldc.i4:uint32(1)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_16_B6))
|
||||
stloc:int32(var_18_CF, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_19_D9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_21_E6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1)))
|
||||
stloc:int32(var_22_F0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
|
||||
stloc:int32(var_23_FA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_23_FA), ldloc:int32(var_22_F0), ldloc:int32(var_21_E6), ldloc:int32(var_19_D9))
|
||||
stloc:int32(var_24_110, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_24_110))
|
||||
stloc:int32(var_25_122, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(0), ldloc:int32(var_25_122))
|
||||
stloc:int32(var_26_134, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_26_134))
|
||||
stloc:int32(var_27_146, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(1), ldloc:int32(var_27_146))
|
||||
stloc:int32(var_28_159, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_29_163, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
|
||||
stloc:int32(var_30_16D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3)))
|
||||
stloc:int32(var_31_177, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
|
||||
stloc:int32(var_32_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_32_181), ldloc:int32(var_31_177), ldloc:int32(var_30_16D), ldloc:int32(var_29_163))
|
||||
stloc:int32(var_33_197, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_33_197))
|
||||
stloc:int32(var_34_1A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(2), ldloc:int32(var_34_1A9))
|
||||
stloc:int32(var_35_1BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_35_1BB))
|
||||
stloc:int32(var_36_1CD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(3), ldloc:int32(var_36_1CD))
|
||||
stloc:int32(var_37_1E0, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_38_1EA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
|
||||
stloc:int32(var_39_1F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5)))
|
||||
stloc:int32(var_40_1FE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
|
||||
stloc:int32(var_41_208, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_208), ldloc:int32(var_40_1FE), ldloc:int32(var_39_1F4), ldloc:int32(var_38_1EA))
|
||||
stloc:int32(var_42_21E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_42_21E))
|
||||
stloc:int32(var_43_230, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(4), ldloc:int32(var_43_230))
|
||||
stloc:int32(var_44_242, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_44_242))
|
||||
stloc:int32(var_45_254, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(5), ldloc:int32(var_45_254))
|
||||
stloc:int32(var_46_267, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_47_271, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
|
||||
stloc:int32(var_48_27B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7)))
|
||||
stloc:int32(var_49_285, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
stloc:int32(var_50_28F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_50_28F), ldloc:int32(var_49_285), ldloc:int32(var_48_27B), ldloc:int32(var_47_271))
|
||||
stloc:int32(var_51_2A5, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_51_2A5))
|
||||
stloc:int32(var_52_2B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(6), ldloc:int32(var_52_2B7))
|
||||
stloc:int32(var_53_2C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_53_2C9))
|
||||
stloc:int32(var_54_2DB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(7), ldloc:int32(var_54_2DB))
|
||||
stloc:int32(var_55_2EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_56_2F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
|
||||
stloc:int32(var_57_304, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9)))
|
||||
stloc:int32(var_58_30E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
|
||||
stloc:int32(var_59_318, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_59_318), ldloc:int32(var_58_30E), ldloc:int32(var_57_304), ldloc:int32(var_56_2F9))
|
||||
stloc:int32(var_60_32E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_60_32E))
|
||||
stloc:int32(var_61_340, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(8), ldloc:int32(var_61_340))
|
||||
stloc:int32(var_62_352, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_62_352))
|
||||
stloc:int32(var_63_365, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(9), ldloc:int32(var_63_365))
|
||||
stloc:int32(var_64_379, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_65_384, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
|
||||
stloc:int32(var_66_38F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11)))
|
||||
stloc:int32(var_67_39A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
|
||||
stloc:int32(var_68_3A5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_68_3A5), ldloc:int32(var_67_39A), ldloc:int32(var_66_38F), ldloc:int32(var_65_384))
|
||||
stloc:int32(var_69_3BB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_69_3BB))
|
||||
stloc:int32(var_70_3CE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(10), ldloc:int32(var_70_3CE))
|
||||
stloc:int32(var_71_3E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_71_3E1))
|
||||
stloc:int32(var_72_3F4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(11), ldloc:int32(var_72_3F4))
|
||||
stloc:int32(var_73_408, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_74_413, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
|
||||
stloc:int32(var_75_41E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13)))
|
||||
stloc:int32(var_76_429, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
|
||||
stloc:int32(var_77_434, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_77_434), ldloc:int32(var_76_429), ldloc:int32(var_75_41E), ldloc:int32(var_74_413))
|
||||
stloc:int32(var_78_44A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_78_44A))
|
||||
stloc:int32(var_79_45D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(12), ldloc:int32(var_79_45D))
|
||||
stloc:int32(var_80_470, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_80_470))
|
||||
stloc:int32(var_81_483, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(13), ldloc:int32(var_81_483))
|
||||
stloc:int32(var_82_497, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_83_4A2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
|
||||
stloc:int32(var_84_4AD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15)))
|
||||
stloc:int32(var_85_4B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
|
||||
stloc:int32(var_86_4C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_4C3), ldloc:int32(var_85_4B8), ldloc:int32(var_84_4AD), ldloc:int32(var_83_4A2))
|
||||
stloc:int32(var_87_4D9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_87_4D9))
|
||||
stloc:int32(var_88_4EC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(14), ldloc:int32(var_88_4EC))
|
||||
stloc:int32(var_89_4FF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_89_4FF))
|
||||
stloc:int32(var_90_512, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(15), ldloc:int32(var_90_512))
|
||||
stloc:int32(var_91_526, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_92_531, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
|
||||
stloc:int32(var_93_53C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17)))
|
||||
stloc:int32(var_94_547, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
stloc:int32(var_95_552, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_95_552), ldloc:int32(var_94_547), ldloc:int32(var_93_53C), ldloc:int32(var_92_531))
|
||||
stloc:int32(var_96_568, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_96_568))
|
||||
stloc:int32(var_97_57B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(16), ldloc:int32(var_97_57B))
|
||||
stloc:int32(var_98_58E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_98_58E))
|
||||
stloc:int32(var_99_5A1, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(17), ldloc:int32(var_99_5A1))
|
||||
stloc:int32(var_100_5B5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_101_5C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
|
||||
stloc:int32(var_102_5CB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19)))
|
||||
stloc:int32(var_103_5D6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
|
||||
stloc:int32(var_104_5E1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_104_5E1), ldloc:int32(var_103_5D6), ldloc:int32(var_102_5CB), ldloc:int32(var_101_5C0))
|
||||
stloc:int32(var_105_5F7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_105_5F7))
|
||||
stloc:int32(var_106_60A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(18), ldloc:int32(var_106_60A))
|
||||
stloc:int32(var_107_61D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_107_61D))
|
||||
stloc:int32(var_108_630, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(19), ldloc:int32(var_108_630))
|
||||
stloc:int32(var_109_644, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_110_64F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
|
||||
stloc:int32(var_111_65A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21)))
|
||||
stloc:int32(var_112_665, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
|
||||
stloc:int32(var_113_670, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_113_670), ldloc:int32(var_112_665), ldloc:int32(var_111_65A), ldloc:int32(var_110_64F))
|
||||
stloc:int32(var_114_686, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_114_686))
|
||||
stloc:int32(var_115_699, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(20), ldloc:int32(var_115_699))
|
||||
stloc:int32(var_116_6AC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_116_6AC))
|
||||
stloc:int32(var_117_6BF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(21), ldloc:int32(var_117_6BF))
|
||||
stloc:int32(var_118_6D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_119_6DE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
|
||||
stloc:int32(var_120_6E9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23)))
|
||||
stloc:int32(var_121_6F4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
|
||||
stloc:int32(var_122_6FF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_122_6FF), ldloc:int32(var_121_6F4), ldloc:int32(var_120_6E9), ldloc:int32(var_119_6DE))
|
||||
stloc:int32(var_123_715, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_123_715))
|
||||
stloc:int32(var_124_728, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(22), ldloc:int32(var_124_728))
|
||||
stloc:int32(var_125_73B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_125_73B))
|
||||
stloc:int32(var_126_74E, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(23), ldloc:int32(var_126_74E))
|
||||
stloc:int32(var_127_762, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_128_76D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
|
||||
stloc:int32(var_129_778, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25)))
|
||||
stloc:int32(var_130_783, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
|
||||
stloc:int32(var_131_78E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_78E), ldloc:int32(var_130_783), ldloc:int32(var_129_778), ldloc:int32(var_128_76D))
|
||||
stloc:int32(var_132_7A4, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_132_7A4))
|
||||
stloc:int32(var_133_7B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(24), ldloc:int32(var_133_7B7))
|
||||
stloc:int32(var_134_7CA, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_134_7CA))
|
||||
stloc:int32(var_135_7DD, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(25), ldloc:int32(var_135_7DD))
|
||||
stloc:int32(var_136_7F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_137_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
|
||||
stloc:int32(var_138_807, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27)))
|
||||
stloc:int32(var_139_812, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
|
||||
stloc:int32(var_140_81D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_140_81D), ldloc:int32(var_139_812), ldloc:int32(var_138_807), ldloc:int32(var_137_7FC))
|
||||
stloc:int32(var_141_833, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_141_833))
|
||||
stloc:int32(var_142_846, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(26), ldloc:int32(var_142_846))
|
||||
stloc:int32(var_143_859, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_143_859))
|
||||
stloc:int32(var_144_86C, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(27), ldloc:int32(var_144_86C))
|
||||
stloc:int32(var_145_880, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_146_88B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
|
||||
stloc:int32(var_147_896, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29)))
|
||||
stloc:int32(var_148_8A1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
|
||||
stloc:int32(var_149_8AC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_149_8AC), ldloc:int32(var_148_8A1), ldloc:int32(var_147_896), ldloc:int32(var_146_88B))
|
||||
stloc:int32(var_150_8C2, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_150_8C2))
|
||||
stloc:int32(var_151_8D5, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(28), ldloc:int32(var_151_8D5))
|
||||
stloc:int32(var_152_8E8, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_152_8E8))
|
||||
stloc:int32(var_153_8FB, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(29), ldloc:int32(var_153_8FB))
|
||||
stloc:int32(var_154_90F, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_155_91A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
|
||||
stloc:int32(var_156_925, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31)))
|
||||
stloc:int32(var_157_930, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
|
||||
stloc:int32(var_158_93B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_158_93B), ldloc:int32(var_157_930), ldloc:int32(var_156_925), ldloc:int32(var_155_91A))
|
||||
stloc:int32(var_159_951, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_159_951))
|
||||
stloc:int32(var_160_964, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(30), ldloc:int32(var_160_964))
|
||||
stloc:int32(var_161_977, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_161_977))
|
||||
stloc:int32(var_162_98A, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(31), ldloc:int32(var_162_98A))
|
||||
stloc:int32(var_163_99E, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_164_9A9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_165_9B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33)))
|
||||
stloc:int32(var_166_9BF, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
|
||||
stloc:int32(var_167_9CA, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_167_9CA), ldloc:int32(var_166_9BF), ldloc:int32(var_165_9B4), ldloc:int32(var_164_9A9))
|
||||
stloc:int32(var_168_9E0, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_168_9E0))
|
||||
stloc:int32(var_169_9F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(32), ldloc:int32(var_169_9F3))
|
||||
stloc:int32(var_170_A06, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_170_A06))
|
||||
stloc:int32(var_171_A19, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(33), ldloc:int32(var_171_A19))
|
||||
stloc:int32(var_172_A2D, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_173_A38, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
|
||||
stloc:int32(var_174_A43, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35)))
|
||||
stloc:int32(var_175_A4E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
|
||||
stloc:int32(var_176_A59, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_176_A59), ldloc:int32(var_175_A4E), ldloc:int32(var_174_A43), ldloc:int32(var_173_A38))
|
||||
stloc:int32(var_177_A6F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_177_A6F))
|
||||
stloc:int32(var_178_A82, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(34), ldloc:int32(var_178_A82))
|
||||
stloc:int32(var_179_A95, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_179_A95))
|
||||
stloc:int32(var_180_AA8, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(35), ldloc:int32(var_180_AA8))
|
||||
stloc:int32(var_181_ABC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_182_AC7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
|
||||
stloc:int32(var_183_AD2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37)))
|
||||
stloc:int32(var_184_ADD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
stloc:int32(var_185_AE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_185_AE8), ldloc:int32(var_184_ADD), ldloc:int32(var_183_AD2), ldloc:int32(var_182_AC7))
|
||||
stloc:int32(var_186_AFE, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_186_AFE))
|
||||
stloc:int32(var_187_B11, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(36), ldloc:int32(var_187_B11))
|
||||
stloc:int32(var_188_B24, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_188_B24))
|
||||
stloc:int32(var_189_B37, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(37), ldloc:int32(var_189_B37))
|
||||
stloc:int32(var_190_B4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_191_B56, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
|
||||
stloc:int32(var_192_B61, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39)))
|
||||
stloc:int32(var_193_B6C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
|
||||
stloc:int32(var_194_B77, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_194_B77), ldloc:int32(var_193_B6C), ldloc:int32(var_192_B61), ldloc:int32(var_191_B56))
|
||||
stloc:int32(var_195_B8D, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_195_B8D))
|
||||
stloc:int32(var_196_BA0, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(38), ldloc:int32(var_196_BA0))
|
||||
stloc:int32(var_197_BB3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_197_BB3))
|
||||
stloc:int32(var_198_BC6, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(39), ldloc:int32(var_198_BC6))
|
||||
stloc:int32(var_199_BDA, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_200_BE5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_201_BF0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41)))
|
||||
stloc:int32(var_202_BFB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
|
||||
stloc:int32(var_203_C06, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_203_C06), ldloc:int32(var_202_BFB), ldloc:int32(var_201_BF0), ldloc:int32(var_200_BE5))
|
||||
stloc:int32(var_204_C1C, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_204_C1C))
|
||||
stloc:int32(var_205_C2F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(40), ldloc:int32(var_205_C2F))
|
||||
stloc:int32(var_206_C42, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_206_C42))
|
||||
stloc:int32(var_207_C55, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(41), ldloc:int32(var_207_C55))
|
||||
stloc:int32(var_208_C69, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_209_C74, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
|
||||
stloc:int32(var_210_C7F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43)))
|
||||
stloc:int32(var_211_C8A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
|
||||
stloc:int32(var_212_C95, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_212_C95), ldloc:int32(var_211_C8A), ldloc:int32(var_210_C7F), ldloc:int32(var_209_C74))
|
||||
stloc:int32(var_213_CAB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_213_CAB))
|
||||
stloc:int32(var_214_CBE, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(42), ldloc:int32(var_214_CBE))
|
||||
stloc:int32(var_215_CD1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_215_CD1))
|
||||
stloc:int32(var_216_CE4, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(43), ldloc:int32(var_216_CE4))
|
||||
stloc:int32(var_217_CF8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_218_D03, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
|
||||
stloc:int32(var_219_D0E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45)))
|
||||
stloc:int32(var_220_D19, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
|
||||
stloc:int32(var_221_D24, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_221_D24), ldloc:int32(var_220_D19), ldloc:int32(var_219_D0E), ldloc:int32(var_218_D03))
|
||||
stloc:int32(var_222_D3A, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_222_D3A))
|
||||
stloc:int32(var_223_D4D, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(44), ldloc:int32(var_223_D4D))
|
||||
stloc:int32(var_224_D60, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_224_D60))
|
||||
stloc:int32(var_225_D73, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(45), ldloc:int32(var_225_D73))
|
||||
stloc:int32(var_226_D87, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_227_D92, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
|
||||
stloc:int32(var_228_D9D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47)))
|
||||
stloc:int32(var_229_DA8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
|
||||
stloc:int32(var_230_DB3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_230_DB3), ldloc:int32(var_229_DA8), ldloc:int32(var_228_D9D), ldloc:int32(var_227_D92))
|
||||
stloc:int32(var_231_DC9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_231_DC9))
|
||||
stloc:int32(var_232_DDC, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(46), ldloc:int32(var_232_DDC))
|
||||
stloc:int32(var_233_DEF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_233_DEF))
|
||||
stloc:int32(var_234_E02, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(47), ldloc:int32(var_234_E02))
|
||||
stloc:int32(var_235_E16, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_236_E21, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
|
||||
stloc:int32(var_237_E2C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49)))
|
||||
stloc:int32(var_238_E37, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
|
||||
stloc:int32(var_239_E42, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_239_E42), ldloc:int32(var_238_E37), ldloc:int32(var_237_E2C), ldloc:int32(var_236_E21))
|
||||
stloc:int32(var_240_E58, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_240_E58))
|
||||
stloc:int32(var_241_E6B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(48), ldloc:int32(var_241_E6B))
|
||||
stloc:int32(var_242_E7E, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_242_E7E))
|
||||
stloc:int32(var_243_E91, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(49), ldloc:int32(var_243_E91))
|
||||
stloc:int32(var_244_EA5, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_245_EB0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
|
||||
stloc:int32(var_246_EBB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51)))
|
||||
stloc:int32(var_247_EC6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
|
||||
stloc:int32(var_248_ED1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_248_ED1), ldloc:int32(var_247_EC6), ldloc:int32(var_246_EBB), ldloc:int32(var_245_EB0))
|
||||
stloc:int32(var_249_EE7, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_249_EE7))
|
||||
stloc:int32(var_250_EFA, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(50), ldloc:int32(var_250_EFA))
|
||||
stloc:int32(var_251_F0D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_251_F0D))
|
||||
stloc:int32(var_252_F20, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(51), ldloc:int32(var_252_F20))
|
||||
stloc:int32(var_253_F34, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_254_F3F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
|
||||
stloc:int32(var_255_F4A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53)))
|
||||
stloc:int32(var_256_F55, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
|
||||
stloc:int32(var_257_F62, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_257_F62), ldloc:int32(var_256_F55), ldloc:int32(var_255_F4A), ldloc:int32(var_254_F3F))
|
||||
stloc:int32(var_258_F7E, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_258_F7E))
|
||||
stloc:int32(var_259_F95, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(52), ldloc:int32(var_259_F95))
|
||||
stloc:int32(var_260_FAC, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_260_FAC))
|
||||
stloc:int32(var_261_FC3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(53), ldloc:int32(var_261_FC3))
|
||||
stloc:int32(var_262_FDB, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
stloc:int32(var_263_FE8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
|
||||
stloc:int32(var_264_FF5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55)))
|
||||
stloc:int32(var_265_1002, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
|
||||
stloc:int32(var_266_100F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_266_100F), ldloc:int32(var_265_1002), ldloc:int32(var_264_FF5), ldloc:int32(var_263_FE8))
|
||||
stloc:int32(var_267_102F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_267_102F))
|
||||
stloc:int32(var_268_1046, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(54), ldloc:int32(var_268_1046))
|
||||
stloc:int32(var_269_105D, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_269_105D))
|
||||
stloc:int32(var_270_1074, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_8_69), ldc.i4:int32(55), ldloc:int32(var_270_1074))
|
||||
stloc:int32(var_271_108C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_8_69)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD00 RID: 48384 RVA: 0x002A0920 File Offset: 0x0029EB20
|
||||
[Token(Token = "0x600BD00")]
|
||||
[Address(RVA = "0x258CBE0", Offset = "0x258BBE0", VA = "0x18258CBE0", Slot = "16")]
|
||||
protected override void EncryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD00)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::EncryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint32(var_0_07, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_0_07))
|
||||
stloc:uint32(var_1_16, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_16))
|
||||
stloc:uint32(var_2_25, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_2_25))
|
||||
stloc:uint32(var_3_34, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stloc:int32[](var_4_3B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34))
|
||||
stloc:int32(var_5_4B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_4_3B)))
|
||||
stloc:int32(var_6_53, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_7_5B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_8_65, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_4_3B), ldc.i4:int32(1)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_34), ldloc:int32(var_6_53), ldloc:int32(var_7_5B), ldloc:int32(var_8_65))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_10_83, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_11_8C, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_10_83)))
|
||||
stloc:int32(var_12_94, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_13_9C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_14_A4, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_83), ldc.i4:int32(3)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_12_94), ldloc:int32(var_13_9C), ldloc:int32(var_14_A4), ldloc:int32(var_15_AE))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_16_CA, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_17_D3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_16_CA)))
|
||||
stloc:int32(var_18_DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_21_F5, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_16_CA), ldc.i4:int32(5)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_18_DB), ldloc:int32(var_19_E3), ldloc:int32(var_20_EB), ldloc:int32(var_21_F5))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_22_111, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_23_11A, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_22_111)))
|
||||
stloc:int32(var_24_122, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_12A, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_132, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_27_13C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_22_111), ldc.i4:int32(7)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_24_122), ldloc:int32(var_25_12A), ldloc:int32(var_26_132), ldloc:int32(var_27_13C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_28_158, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_29_161, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_28_158)))
|
||||
stloc:int32(var_30_169, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_171, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_32_179, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_33_184, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_28_158), ldc.i4:int32(9)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_30_169), ldloc:int32(var_31_171), ldloc:int32(var_32_179), ldloc:int32(var_33_184))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_34_1A0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_35_1A9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_34_1A0)))
|
||||
stloc:int32(var_36_1B1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_37_1B9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_38_1C1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_1CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_34_1A0), ldc.i4:int32(11)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1B1), ldloc:int32(var_37_1B9), ldloc:int32(var_38_1C1), ldloc:int32(var_39_1CC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_40_1E8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_41_1F1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_40_1E8)))
|
||||
stloc:int32(var_42_1F9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_43_201, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_44_209, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_45_214, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_40_1E8), ldc.i4:int32(13)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_42_1F9), ldloc:int32(var_43_201), ldloc:int32(var_44_209), ldloc:int32(var_45_214))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_46_230, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_47_239, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_46_230)))
|
||||
stloc:int32(var_48_241, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_49_249, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_50_251, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_51_25C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_46_230), ldc.i4:int32(15)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_48_241), ldloc:int32(var_49_249), ldloc:int32(var_50_251), ldloc:int32(var_51_25C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_52_278, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_53_281, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_52_278)))
|
||||
stloc:int32(var_54_289, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_55_291, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_299, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_57_2A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_52_278), ldc.i4:int32(17)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_54_289), ldloc:int32(var_55_291), ldloc:int32(var_56_299), ldloc:int32(var_57_2A4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_58_2C0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_59_2C9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_58_2C0)))
|
||||
stloc:int32(var_60_2D1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_61_2D9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_62_2E1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_63_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_58_2C0), ldc.i4:int32(19)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_60_2D1), ldloc:int32(var_61_2D9), ldloc:int32(var_62_2E1), ldloc:int32(var_63_2EC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_64_308, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_65_311, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_64_308)))
|
||||
stloc:int32(var_66_319, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_67_321, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_68_329, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_334, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_64_308), ldc.i4:int32(21)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_319), ldloc:int32(var_67_321), ldloc:int32(var_68_329), ldloc:int32(var_69_334))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_70_350, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_359, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_70_350)))
|
||||
stloc:int32(var_72_361, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_73_369, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_74_371, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_75_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_70_350), ldc.i4:int32(23)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_72_361), ldloc:int32(var_73_369), ldloc:int32(var_74_371), ldloc:int32(var_75_37C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_76_398, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_77_3A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_76_398)))
|
||||
stloc:int32(var_78_3A9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_79_3B1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_80_3B9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_81_3C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_76_398), ldc.i4:int32(25)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_78_3A9), ldloc:int32(var_79_3B1), ldloc:int32(var_80_3B9), ldloc:int32(var_81_3C4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_82_3E0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_83_3E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_82_3E0)))
|
||||
stloc:int32(var_84_3F1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_85_3F9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_86_401, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_87_40C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_82_3E0), ldc.i4:int32(27)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_84_3F1), ldloc:int32(var_85_3F9), ldloc:int32(var_86_401), ldloc:int32(var_87_40C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_88_428, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_89_431, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_88_428)))
|
||||
stloc:int32(var_90_439, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_441, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_92_449, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_93_454, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_88_428), ldc.i4:int32(29)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_90_439), ldloc:int32(var_91_441), ldloc:int32(var_92_449), ldloc:int32(var_93_454))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_94_470, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_95_479, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_94_470)))
|
||||
stloc:int32(var_96_481, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_97_489, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_98_491, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_99_49C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_94_470), ldc.i4:int32(31)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_481), ldloc:int32(var_97_489), ldloc:int32(var_98_491), ldloc:int32(var_99_49C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_100_4B8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_101_4C1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_100_4B8)))
|
||||
stloc:int32(var_102_4C9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_103_4D1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_104_4D9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_105_4E4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_100_4B8), ldc.i4:int32(33)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_102_4C9), ldloc:int32(var_103_4D1), ldloc:int32(var_104_4D9), ldloc:int32(var_105_4E4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_106_500, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_107_509, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_106_500)))
|
||||
stloc:int32(var_108_511, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_109_519, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_110_521, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_111_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_106_500), ldc.i4:int32(35)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_108_511), ldloc:int32(var_109_519), ldloc:int32(var_110_521), ldloc:int32(var_111_52C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_112_548, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_113_551, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_112_548)))
|
||||
stloc:int32(var_114_559, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_115_561, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_116_569, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_117_574, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_112_548), ldc.i4:int32(37)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_114_559), ldloc:int32(var_115_561), ldloc:int32(var_116_569), ldloc:int32(var_117_574))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_118_590, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_119_599, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_118_590)))
|
||||
stloc:int32(var_120_5A1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_121_5A9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_122_5B1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_123_5BC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_118_590), ldc.i4:int32(39)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_120_5A1), ldloc:int32(var_121_5A9), ldloc:int32(var_122_5B1), ldloc:int32(var_123_5BC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_124_5D8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_5E1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_124_5D8)))
|
||||
stloc:int32(var_126_5E9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_127_5F1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_128_5F9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_129_604, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_124_5D8), ldc.i4:int32(41)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5E9), ldloc:int32(var_127_5F1), ldloc:int32(var_128_5F9), ldloc:int32(var_129_604))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_130_620, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_131_629, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_130_620)))
|
||||
stloc:int32(var_132_631, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_133_639, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_134_641, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_135_64C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_130_620), ldc.i4:int32(43)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_132_631), ldloc:int32(var_133_639), ldloc:int32(var_134_641), ldloc:int32(var_135_64C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_136_668, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_137_671, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_136_668)))
|
||||
stloc:int32(var_138_679, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_681, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_140_689, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_141_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_136_668), ldc.i4:int32(45)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_138_679), ldloc:int32(var_139_681), ldloc:int32(var_140_689), ldloc:int32(var_141_694))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_142_6B0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_143_6B9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_142_6B0)))
|
||||
stloc:int32(var_144_6C1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_145_6C9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_146_6D1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_147_6DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_142_6B0), ldc.i4:int32(47)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_144_6C1), ldloc:int32(var_145_6C9), ldloc:int32(var_146_6D1), ldloc:int32(var_147_6DC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_148_6F8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_149_701, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_148_6F8)))
|
||||
stloc:int32(var_150_709, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_151_711, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_152_719, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_153_724, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_148_6F8), ldc.i4:int32(49)))
|
||||
call:void(SerpentEngineBase::Sb0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_150_709), ldloc:int32(var_151_711), ldloc:int32(var_152_719), ldloc:int32(var_153_724))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_154_740, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_155_749, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_154_740)))
|
||||
stloc:int32(var_156_751, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_157_759, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_158_761, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_159_76C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_154_740), ldc.i4:int32(51)))
|
||||
call:void(SerpentEngineBase::Sb1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_751), ldloc:int32(var_157_759), ldloc:int32(var_158_761), ldloc:int32(var_159_76C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_160_788, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_161_791, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_160_788)))
|
||||
stloc:int32(var_162_799, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_163_7A1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_164_7A9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_165_7B4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_160_788), ldc.i4:int32(53)))
|
||||
call:void(SerpentEngineBase::Sb2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_162_799), ldloc:int32(var_163_7A1), ldloc:int32(var_164_7A9), ldloc:int32(var_165_7B4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_166_7D0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_167_7D9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_166_7D0)))
|
||||
stloc:int32(var_168_7E1, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_169_7E9, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_170_7F1, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_171_7FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_166_7D0), ldc.i4:int32(55)))
|
||||
call:void(SerpentEngineBase::Sb3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_168_7E1), ldloc:int32(var_169_7E9), ldloc:int32(var_170_7F1), ldloc:int32(var_171_7FC))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_172_818, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_173_821, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_172_818)))
|
||||
stloc:int32(var_174_829, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_175_831, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_176_839, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_177_844, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_172_818), ldc.i4:int32(57)))
|
||||
call:void(SerpentEngineBase::Sb4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_174_829), ldloc:int32(var_175_831), ldloc:int32(var_176_839), ldloc:int32(var_177_844))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_178_860, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_179_869, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_178_860)))
|
||||
stloc:int32(var_180_871, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_181_879, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_182_881, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_183_88C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_178_860), ldc.i4:int32(59)))
|
||||
call:void(SerpentEngineBase::Sb5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_180_871), ldloc:int32(var_181_879), ldloc:int32(var_182_881), ldloc:int32(var_183_88C))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_184_8A8, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_185_8B1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_184_8A8)))
|
||||
stloc:int32(var_186_8B9, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_187_8C1, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_188_8C9, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_189_8D4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_184_8A8), ldc.i4:int32(61)))
|
||||
call:void(SerpentEngineBase::Sb6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_186_8B9), ldloc:int32(var_187_8C1), ldloc:int32(var_188_8C9), ldloc:int32(var_189_8D4))
|
||||
call:void(SerpentEngineBase::LT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32[](var_190_8F0, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_191_8F9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_190_8F0)))
|
||||
stloc:int32(var_192_901, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_193_909, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_194_911, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_195_91C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_190_8F0), ldc.i4:int32(63)))
|
||||
call:void(SerpentEngineBase::Sb7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_192_901), ldloc:int32(var_193_909), ldloc:int32(var_194_911), ldloc:int32(var_195_91C))
|
||||
stloc:int32(var_196_939, ldelem:int32([mscorlib]System.Int32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)), ldc.i4:int32(65)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD01 RID: 48385 RVA: 0x002A1268 File Offset: 0x0029F468
|
||||
[Token(Token = "0x600BD01")]
|
||||
[Address(RVA = "0x258AEF0", Offset = "0x2589EF0", VA = "0x18258AEF0", Slot = "17")]
|
||||
protected override void DecryptBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD01)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TnepresEngine::DecryptBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32[](var_0_06, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_1_0E, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_1_0E))
|
||||
stloc:int32[](var_2_1C, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_3_24, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_3_24))
|
||||
stloc:int32[](var_4_32, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_5_3B, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_5_3B))
|
||||
stloc:int32[](var_6_4B, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:uint32(var_7_54, call:uint32(Pack::BE_To_UInt32, ldloc:uint8[](input), ldloc:int32(inOff)))
|
||||
stloc:int32(var_8_5C, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_9_64, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_10_6C, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:uint32[exp:int32](var_7_54), ldloc:int32(var_10_6C), ldloc:int32(var_8_5C), ldloc:int32(var_9_64))
|
||||
stloc:int32[](var_12_8D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_13_9B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_14_A3, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_15_AB, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_16_B3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_16_B3), ldloc:int32(var_15_AB), ldloc:int32(var_14_A3), ldloc:int32(var_13_9B))
|
||||
stloc:int32[](var_17_C9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_18_D7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_19_DF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_20_E7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_21_EF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_21_EF), ldloc:int32(var_20_E7), ldloc:int32(var_19_DF), ldloc:int32(var_18_D7))
|
||||
stloc:int32[](var_22_105, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_23_113, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_24_11B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_25_123, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_26_12B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_26_12B), ldloc:int32(var_25_123), ldloc:int32(var_24_11B), ldloc:int32(var_23_113))
|
||||
stloc:int32[](var_27_141, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_28_14F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_29_157, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_30_15F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_31_167, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_31_167), ldloc:int32(var_30_15F), ldloc:int32(var_29_157), ldloc:int32(var_28_14F))
|
||||
stloc:int32[](var_32_17D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_33_18B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_34_193, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_35_19B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_36_1A3, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_36_1A3), ldloc:int32(var_35_19B), ldloc:int32(var_34_193), ldloc:int32(var_33_18B))
|
||||
stloc:int32[](var_37_1B9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_38_1C7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_39_1CF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_40_1D7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_41_1DF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_41_1DF), ldloc:int32(var_40_1D7), ldloc:int32(var_39_1CF), ldloc:int32(var_38_1C7))
|
||||
stloc:int32[](var_42_1F5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_43_203, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_44_20B, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_45_213, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_46_21B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_46_21B), ldloc:int32(var_45_213), ldloc:int32(var_44_20B), ldloc:int32(var_43_203))
|
||||
stloc:int32[](var_47_231, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_48_23F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_49_247, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_50_24F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_51_257, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_51_257), ldloc:int32(var_50_24F), ldloc:int32(var_49_247), ldloc:int32(var_48_23F))
|
||||
stloc:int32[](var_52_26D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_53_27B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_54_283, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_55_28B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_56_293, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_56_293), ldloc:int32(var_55_28B), ldloc:int32(var_54_283), ldloc:int32(var_53_27B))
|
||||
stloc:int32[](var_57_2A9, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_58_2B7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_59_2BF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_60_2C7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_61_2CF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_61_2CF), ldloc:int32(var_60_2C7), ldloc:int32(var_59_2BF), ldloc:int32(var_58_2B7))
|
||||
stloc:int32[](var_62_2E5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_63_2F3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_64_2FB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_65_303, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_66_30B, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_66_30B), ldloc:int32(var_65_303), ldloc:int32(var_64_2FB), ldloc:int32(var_63_2F3))
|
||||
stloc:int32[](var_67_321, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_68_32F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_69_337, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_70_33F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_71_347, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_71_347), ldloc:int32(var_70_33F), ldloc:int32(var_69_337), ldloc:int32(var_68_32F))
|
||||
stloc:int32[](var_72_35D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_73_36B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_74_373, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_75_37B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_76_383, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_76_383), ldloc:int32(var_75_37B), ldloc:int32(var_74_373), ldloc:int32(var_73_36B))
|
||||
stloc:int32[](var_77_399, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_78_3A7, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_79_3AF, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_80_3B7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_81_3BF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_81_3BF), ldloc:int32(var_80_3B7), ldloc:int32(var_79_3AF), ldloc:int32(var_78_3A7))
|
||||
stloc:int32[](var_82_3D5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_83_3E3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_84_3EB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_85_3F3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_86_3FB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_86_3FB), ldloc:int32(var_85_3F3), ldloc:int32(var_84_3EB), ldloc:int32(var_83_3E3))
|
||||
stloc:int32[](var_87_411, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_88_41F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_89_427, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_90_42F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_91_437, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_91_437), ldloc:int32(var_90_42F), ldloc:int32(var_89_427), ldloc:int32(var_88_41F))
|
||||
stloc:int32[](var_92_44D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_93_45B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_94_463, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_95_46B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_96_473, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_96_473), ldloc:int32(var_95_46B), ldloc:int32(var_94_463), ldloc:int32(var_93_45B))
|
||||
stloc:int32[](var_97_489, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_98_497, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_99_49F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_100_4A7, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_101_4AF, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_101_4AF), ldloc:int32(var_100_4A7), ldloc:int32(var_99_49F), ldloc:int32(var_98_497))
|
||||
stloc:int32[](var_102_4C5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_103_4D3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_104_4DB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_105_4E3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_106_4EB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_106_4EB), ldloc:int32(var_105_4E3), ldloc:int32(var_104_4DB), ldloc:int32(var_103_4D3))
|
||||
stloc:int32[](var_107_501, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_108_50F, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_109_517, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_110_51F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_111_527, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_111_527), ldloc:int32(var_110_51F), ldloc:int32(var_109_517), ldloc:int32(var_108_50F))
|
||||
stloc:int32[](var_112_53D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_113_54B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_114_553, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_115_55B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_116_563, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_116_563), ldloc:int32(var_115_55B), ldloc:int32(var_114_553), ldloc:int32(var_113_54B))
|
||||
stloc:int32[](var_117_579, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_118_587, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_119_58F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_120_597, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_121_59F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_121_59F), ldloc:int32(var_120_597), ldloc:int32(var_119_58F), ldloc:int32(var_118_587))
|
||||
stloc:int32[](var_122_5B5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_123_5C3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_124_5CB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_125_5D3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_126_5DB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib0, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_126_5DB), ldloc:int32(var_125_5D3), ldloc:int32(var_124_5CB), ldloc:int32(var_123_5C3))
|
||||
stloc:int32[](var_127_5F1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_128_5FF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_129_607, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_130_60F, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_131_617, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib7, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_131_617), ldloc:int32(var_130_60F), ldloc:int32(var_129_607), ldloc:int32(var_128_5FF))
|
||||
stloc:int32[](var_132_62D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_133_63B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_134_643, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_135_64B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_136_653, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib6, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_136_653), ldloc:int32(var_135_64B), ldloc:int32(var_134_643), ldloc:int32(var_133_63B))
|
||||
stloc:int32[](var_137_669, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_138_677, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_139_67F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_140_687, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_141_68F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib5, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_141_68F), ldloc:int32(var_140_687), ldloc:int32(var_139_67F), ldloc:int32(var_138_677))
|
||||
stloc:int32[](var_142_6A5, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_143_6B3, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_144_6BB, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_145_6C3, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_146_6CB, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib4, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_146_6CB), ldloc:int32(var_145_6C3), ldloc:int32(var_144_6BB), ldloc:int32(var_143_6B3))
|
||||
stloc:int32[](var_147_6E1, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_148_6EF, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_149_6F7, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_150_6FF, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_151_707, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib3, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_151_707), ldloc:int32(var_150_6FF), ldloc:int32(var_149_6F7), ldloc:int32(var_148_6EF))
|
||||
stloc:int32[](var_152_71D, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_153_72B, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_154_733, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_155_73B, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_156_743, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib2, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_156_743), ldloc:int32(var_155_73B), ldloc:int32(var_154_733), ldloc:int32(var_153_72B))
|
||||
stloc:int32[](var_157_759, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::InverseLT, ldloc:TnepresEngine[exp:SerpentEngineBase](this))
|
||||
stloc:int32(var_158_767, ldfld:int32(SerpentEngineBase::X3, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_159_76F, ldfld:int32(SerpentEngineBase::X2, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_160_777, ldfld:int32(SerpentEngineBase::X1, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
stloc:int32(var_161_77F, ldfld:int32(SerpentEngineBase::X0, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
call:void(SerpentEngineBase::Ib1, ldloc:TnepresEngine[exp:SerpentEngineBase](this), ldloc:int32(var_161_77F), ldloc:int32(var_160_777), ldloc:int32(var_159_76F), ldloc:int32(var_158_767))
|
||||
stloc:int32[](var_162_795, ldfld:int32[](SerpentEngineBase::wKey, ldloc:TnepresEngine[exp:SerpentEngineBase](this)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD02 RID: 48386 RVA: 0x002A1A0C File Offset: 0x0029FC0C
|
||||
[Token(Token = "0x600BD02")]
|
||||
[Address(RVA = "0x2591070", Offset = "0x2590070", VA = "0x182591070")]
|
||||
public TnepresEngine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+670
@@ -0,0 +1,670 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D97 RID: 7575
|
||||
[Token(Token = "0x2001D97")]
|
||||
public sealed class TwofishEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BD03 RID: 48387 RVA: 0x002A1A20 File Offset: 0x0029FC20
|
||||
[Token(Token = "0x600BD03")]
|
||||
[Address(RVA = "0x2593F40", Offset = "0x2592F40", VA = "0x182593F40")]
|
||||
public TwofishEngine()
|
||||
{
|
||||
int[] array = new int[256];
|
||||
this.gMDS0 = array;
|
||||
int[] array2 = new int[256];
|
||||
this.gMDS1 = array2;
|
||||
int[] array3 = new int[256];
|
||||
this.gMDS2 = array3;
|
||||
int[] array4 = new int[256];
|
||||
this.gMDS3 = array4;
|
||||
base..ctor();
|
||||
int[] array5 = new int[2];
|
||||
int[] array6 = new int[2];
|
||||
int[] array7 = new int[2];
|
||||
byte[,] p = TwofishEngine.P;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD04 RID: 48388 RVA: 0x002A1B5C File Offset: 0x0029FD5C
|
||||
[Token(Token = "0x600BD04")]
|
||||
[Address(RVA = "0x2592D20", Offset = "0x2591D20", VA = "0x182592D20", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD04)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_47:
|
||||
stloc:ArgumentException(var_7_58, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Twofish init - "), ldloc:string(var_6))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001D98 RID: 7576
|
||||
// (get) Token: 0x0600BD05 RID: 48389 RVA: 0x002A1BC4 File Offset: 0x0029FDC4
|
||||
[Token(Token = "0x17001D98")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD05")]
|
||||
[Address(RVA = "0x2594460", Offset = "0x2593460", VA = "0x182594460", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return "Twofish";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D99 RID: 7577
|
||||
// (get) Token: 0x0600BD06 RID: 48390 RVA: 0x002A1BD8 File Offset: 0x0029FDD8
|
||||
[Token(Token = "0x17001D99")]
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BD06")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD07 RID: 48391 RVA: 0x002A1BE8 File Offset: 0x0029FDE8
|
||||
[Token(Token = "0x600BD07")]
|
||||
[Address(RVA = "0x2592FD0", Offset = "0x2591FD0", VA = "0x182592FD0", Slot = "8")]
|
||||
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD07)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_27:
|
||||
stloc:InvalidOperationException(var_1_31, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Twofish not initialised")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD08 RID: 48392 RVA: 0x002A1C28 File Offset: 0x0029FE28
|
||||
[Token(Token = "0x600BD08")]
|
||||
[Address(RVA = "0x25931F0", Offset = "0x25921F0", VA = "0x1825931F0", Slot = "9")]
|
||||
public void Reset()
|
||||
{
|
||||
byte[] array = this.workingKey;
|
||||
if (array != 0)
|
||||
{
|
||||
this.SetKey(array);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD09 RID: 48393 RVA: 0x002A1C48 File Offset: 0x0029FE48
|
||||
[Token(Token = "0x600BD09")]
|
||||
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "6")]
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0A RID: 48394 RVA: 0x002A1C58 File Offset: 0x0029FE58
|
||||
[Token(Token = "0x600BD0A")]
|
||||
[Address(RVA = "0x2593210", Offset = "0x2592210", VA = "0x182593210")]
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
int[] array = new int[4];
|
||||
int[] array2 = new int[4];
|
||||
int[] array3 = new int[4];
|
||||
int[] array4 = new int[40];
|
||||
int num = this.k64Cnt;
|
||||
this.gSubKeys = array4;
|
||||
int num2 = 0;
|
||||
if (num > 0)
|
||||
{
|
||||
int num3 = this.BytesTo32Bits(key, num2);
|
||||
int length = key.Length;
|
||||
num2 += 7;
|
||||
int num4 = this.k64Cnt;
|
||||
while (num2 != array2.Length)
|
||||
{
|
||||
}
|
||||
while (num2 != array2.Length)
|
||||
{
|
||||
}
|
||||
num4 -= num2;
|
||||
num2++;
|
||||
byte b;
|
||||
array3[0] = (int)b;
|
||||
num2 += 8;
|
||||
}
|
||||
int num5 = this.F32(num2, array);
|
||||
int num6 = this.F32(16843009, array2);
|
||||
int[] array5 = this.gSubKeys;
|
||||
num5 += num6;
|
||||
array5[0] = num5;
|
||||
num5 += num6;
|
||||
int[] array6 = this.gSubKeys;
|
||||
num2++;
|
||||
num2 += 33686018;
|
||||
num2 += 2;
|
||||
array6[0] = num5;
|
||||
int length2 = array3.Length;
|
||||
int num7 = array3[0];
|
||||
int num8 = array3[0];
|
||||
int num9 = array3[1];
|
||||
int num10 = array3[1];
|
||||
int[] array7 = new int[1024];
|
||||
this.gSBox = array7;
|
||||
int num11 = this.k64Cnt;
|
||||
if (length2 != 3)
|
||||
{
|
||||
if (length2 != 3)
|
||||
{
|
||||
if (length2 == 3)
|
||||
{
|
||||
int[] array8 = this.gMDS0;
|
||||
int[] array9 = this.gSBox;
|
||||
byte[,] p = TwofishEngine.P;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
if (num11 == 1)
|
||||
{
|
||||
byte[,] p2 = TwofishEngine.P;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
}
|
||||
int[] array10 = this.gSBox;
|
||||
int[] array11 = this.gMDS0;
|
||||
byte[,] p3 = TwofishEngine.P;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
byte[,] p4 = TwofishEngine.P;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0B RID: 48395 RVA: 0x002A1FDC File Offset: 0x002A01DC
|
||||
[Token(Token = "0x600BD0B")]
|
||||
[Address(RVA = "0x2591AB0", Offset = "0x2590AB0", VA = "0x182591AB0")]
|
||||
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
int num = this.BytesTo32Bits(src, srcIndex);
|
||||
int length = this.gSubKeys.Length;
|
||||
int length2 = src.Length;
|
||||
int num2 = this.Fe32_0(length2);
|
||||
byte b;
|
||||
int num3 = this.Fe32_3((int)b);
|
||||
int[] array = this.gSubKeys;
|
||||
int length3 = array.Length;
|
||||
uint num5;
|
||||
int num4 = array[(int)num5];
|
||||
num4 += num3;
|
||||
num4 += num2;
|
||||
uint num6 = num5 + 1U;
|
||||
array += num2;
|
||||
int[] array2 = this.gSBox;
|
||||
int length4 = array2.Length;
|
||||
byte b2;
|
||||
b2 += b2;
|
||||
int num7 = array2[(int)b2];
|
||||
int num8 = this.Fe32_3(array);
|
||||
int[] array3 = this.gSubKeys;
|
||||
int length5 = array3.Length;
|
||||
int num9 = array3[this];
|
||||
num9 += num8;
|
||||
num9 += num7;
|
||||
num5 += (uint)3;
|
||||
uint num10 = num5 + 1U;
|
||||
num8 += num7;
|
||||
int num11 = array3[2];
|
||||
array3[0] = num11;
|
||||
array3[0] = num11;
|
||||
int[] array4 = this.gSubKeys;
|
||||
int num12 = array4[2];
|
||||
array4[0] = num12;
|
||||
array3[0] = num12;
|
||||
array3[0] = num12;
|
||||
int[] array5 = this.gSubKeys;
|
||||
int num13 = array5[3];
|
||||
array5[0] = num13;
|
||||
array3[0] = num13;
|
||||
array3[0] = num13;
|
||||
int[] array6 = this.gSubKeys;
|
||||
int num14 = array6[3];
|
||||
array6[0] = num14;
|
||||
array3[0] = num14;
|
||||
array3[0] = num14;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0C RID: 48396 RVA: 0x002A216C File Offset: 0x002A036C
|
||||
[Token(Token = "0x600BD0C")]
|
||||
[Address(RVA = "0x2591250", Offset = "0x2590250", VA = "0x182591250")]
|
||||
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
||||
{
|
||||
int num = this.BytesTo32Bits(src, srcIndex);
|
||||
int length = this.gSubKeys.Length;
|
||||
int length2 = src.Length;
|
||||
byte b2;
|
||||
byte b = b2;
|
||||
int num2 = this.Fe32_0(length2);
|
||||
byte b3;
|
||||
int num3 = this.Fe32_3((int)b3);
|
||||
int[] array = this.gSubKeys;
|
||||
int length3 = array.Length;
|
||||
b3 = (byte)((int)b3 + num2);
|
||||
uint num5;
|
||||
uint num4 = num5 - 1U;
|
||||
byte b4 = b;
|
||||
int num6 = array[(int)num4];
|
||||
int[] array2 = this.gSBox;
|
||||
num6 += num3;
|
||||
num6 += num2;
|
||||
int length4 = array2.Length;
|
||||
b4 += b4;
|
||||
b = b4;
|
||||
b4 = b;
|
||||
num3++;
|
||||
b = b4;
|
||||
int num7 = array2[(int)b4];
|
||||
int num8 = this.Fe32_3((int)b);
|
||||
int[] array3 = this.gSubKeys;
|
||||
num3 = num8;
|
||||
int length5 = array3.Length;
|
||||
num5 += (uint)(-2);
|
||||
b = (byte)((int)b + num7);
|
||||
num5 += (uint)(-3);
|
||||
uint num9 = num5 - 1U;
|
||||
int num10 = array3[(int)num5];
|
||||
num10 += num3;
|
||||
num10 += num7;
|
||||
int num11 = array3[0];
|
||||
array3[0] = num11;
|
||||
array3[0] = num11;
|
||||
int[] array4 = this.gSubKeys;
|
||||
int num12 = array4[0];
|
||||
array4[0] = num12;
|
||||
array3[0] = num12;
|
||||
array3[0] = num12;
|
||||
int[] array5 = this.gSubKeys;
|
||||
int num13 = array5[1];
|
||||
array5[0] = num13;
|
||||
array3[0] = num13;
|
||||
array3[0] = num13;
|
||||
int[] array6 = this.gSubKeys;
|
||||
int num14 = array6[1];
|
||||
array6[0] = num14;
|
||||
array3[0] = num14;
|
||||
array3[0] = num14;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0D RID: 48397 RVA: 0x002A2328 File Offset: 0x002A0528
|
||||
[Token(Token = "0x600BD0D")]
|
||||
[Address(RVA = "0x2592310", Offset = "0x2591310", VA = "0x182592310")]
|
||||
private int F32(int x, int[] k32)
|
||||
{
|
||||
int length = k32.Length;
|
||||
int num = k32[0];
|
||||
int num2 = k32[1];
|
||||
int num3 = this.k64Cnt;
|
||||
int num4 = 0;
|
||||
int num5 = k32[1];
|
||||
if (length != 3)
|
||||
{
|
||||
if (length != 3 && length != 3 && num3 != 1)
|
||||
{
|
||||
return num4;
|
||||
}
|
||||
int[] array = this.gMDS0;
|
||||
byte[,] p = TwofishEngine.P;
|
||||
int[] array2 = this.gMDS1;
|
||||
int[] array3 = this.gMDS2;
|
||||
int[] array4 = this.gMDS3;
|
||||
}
|
||||
byte[,] p2 = TwofishEngine.P;
|
||||
num5 = x + k32;
|
||||
byte[,] p3 = TwofishEngine.P;
|
||||
byte b;
|
||||
b += k32;
|
||||
byte b2;
|
||||
b2 += k32;
|
||||
int[] array5 = this.gMDS0;
|
||||
byte[,] p4 = TwofishEngine.P;
|
||||
int[] array6 = this.gMDS1;
|
||||
byte b3 = (byte)((int)b3 + num);
|
||||
int[] array7 = this.gMDS2;
|
||||
int[] array8 = this.gMDS3;
|
||||
byte b5;
|
||||
byte b4 = b5;
|
||||
b4 = (byte)((int)b4 + num);
|
||||
return num4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0E RID: 48398 RVA: 0x002A2400 File Offset: 0x002A0600
|
||||
[Token(Token = "0x600BD0E")]
|
||||
[Address(RVA = "0x25930D0", Offset = "0x25920D0", VA = "0x1825930D0")]
|
||||
private int RS_MDS_Encode(int k0, int k1)
|
||||
{
|
||||
return k1;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD0F RID: 48399 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BD0F")]
|
||||
[Address(RVA = "0x25931A0", Offset = "0x25921A0", VA = "0x1825931A0")]
|
||||
private int RS_rem(int x)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BD10 RID: 48400 RVA: 0x002A2410 File Offset: 0x002A0610
|
||||
[Token(Token = "0x600BD10")]
|
||||
[Address(RVA = "0x2592EE0", Offset = "0x2591EE0", VA = "0x182592EE0")]
|
||||
private int LFSR1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD11 RID: 48401 RVA: 0x002A2420 File Offset: 0x002A0620
|
||||
[Token(Token = "0x600BD11")]
|
||||
[Address(RVA = "0x2592F00", Offset = "0x2591F00", VA = "0x182592F00")]
|
||||
private int LFSR2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD12 RID: 48402 RVA: 0x002A2430 File Offset: 0x002A0630
|
||||
[Token(Token = "0x600BD12")]
|
||||
[Address(RVA = "0x2592F60", Offset = "0x2591F60", VA = "0x182592F60")]
|
||||
private int Mx_X(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD13 RID: 48403 RVA: 0x002A2440 File Offset: 0x002A0640
|
||||
[Token(Token = "0x600BD13")]
|
||||
[Address(RVA = "0x2592F90", Offset = "0x2591F90", VA = "0x182592F90")]
|
||||
private int Mx_Y(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD14 RID: 48404 RVA: 0x002A2450 File Offset: 0x002A0650
|
||||
[Token(Token = "0x600BD14")]
|
||||
[Address(RVA = "0x16A3490", Offset = "0x16A2490", VA = "0x1816A3490")]
|
||||
private int M_b0(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD15 RID: 48405 RVA: 0x002A2460 File Offset: 0x002A0660
|
||||
[Token(Token = "0x600BD15")]
|
||||
[Address(RVA = "0x2592F30", Offset = "0x2591F30", VA = "0x182592F30")]
|
||||
private int M_b1(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD16 RID: 48406 RVA: 0x002A2470 File Offset: 0x002A0670
|
||||
[Token(Token = "0x600BD16")]
|
||||
[Address(RVA = "0x2592F40", Offset = "0x2591F40", VA = "0x182592F40")]
|
||||
private int M_b2(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD17 RID: 48407 RVA: 0x002A2480 File Offset: 0x002A0680
|
||||
[Token(Token = "0x600BD17")]
|
||||
[Address(RVA = "0x2592F50", Offset = "0x2591F50", VA = "0x182592F50")]
|
||||
private int M_b3(int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD18 RID: 48408 RVA: 0x002A2490 File Offset: 0x002A0690
|
||||
[Token(Token = "0x600BD18")]
|
||||
[Address(RVA = "0x2592B80", Offset = "0x2591B80", VA = "0x182592B80")]
|
||||
private int Fe32_0(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[x];
|
||||
}
|
||||
|
||||
// Token: 0x0600BD19 RID: 48409 RVA: 0x002A24B8 File Offset: 0x002A06B8
|
||||
[Token(Token = "0x600BD19")]
|
||||
[Address(RVA = "0x2592C50", Offset = "0x2591C50", VA = "0x182592C50")]
|
||||
private int Fe32_3(int x)
|
||||
{
|
||||
int[] array = this.gSBox;
|
||||
int length = array.Length;
|
||||
return array[this];
|
||||
}
|
||||
|
||||
// Token: 0x0600BD1A RID: 48410 RVA: 0x002A24E0 File Offset: 0x002A06E0
|
||||
[Token(Token = "0x600BD1A")]
|
||||
[Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")]
|
||||
private int BytesTo32Bits(byte[] b, int p)
|
||||
{
|
||||
int length = b.Length;
|
||||
int num = p + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD1B RID: 48411 RVA: 0x002A2500 File Offset: 0x002A0700
|
||||
[Token(Token = "0x600BD1B")]
|
||||
[Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")]
|
||||
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
||||
{
|
||||
int num = offset + 1;
|
||||
}
|
||||
|
||||
// Token: 0x04007781 RID: 30593
|
||||
[Token(Token = "0x4007781")]
|
||||
private static readonly byte[,] P;
|
||||
|
||||
// Token: 0x04007782 RID: 30594
|
||||
[Token(Token = "0x4007782")]
|
||||
private const int P_00 = 1;
|
||||
|
||||
// Token: 0x04007783 RID: 30595
|
||||
[Token(Token = "0x4007783")]
|
||||
private const int P_01 = 0;
|
||||
|
||||
// Token: 0x04007784 RID: 30596
|
||||
[Token(Token = "0x4007784")]
|
||||
private const int P_02 = 0;
|
||||
|
||||
// Token: 0x04007785 RID: 30597
|
||||
[Token(Token = "0x4007785")]
|
||||
private const int P_03 = 1;
|
||||
|
||||
// Token: 0x04007786 RID: 30598
|
||||
[Token(Token = "0x4007786")]
|
||||
private const int P_04 = 1;
|
||||
|
||||
// Token: 0x04007787 RID: 30599
|
||||
[Token(Token = "0x4007787")]
|
||||
private const int P_10 = 0;
|
||||
|
||||
// Token: 0x04007788 RID: 30600
|
||||
[Token(Token = "0x4007788")]
|
||||
private const int P_11 = 0;
|
||||
|
||||
// Token: 0x04007789 RID: 30601
|
||||
[Token(Token = "0x4007789")]
|
||||
private const int P_12 = 1;
|
||||
|
||||
// Token: 0x0400778A RID: 30602
|
||||
[Token(Token = "0x400778A")]
|
||||
private const int P_13 = 1;
|
||||
|
||||
// Token: 0x0400778B RID: 30603
|
||||
[Token(Token = "0x400778B")]
|
||||
private const int P_14 = 0;
|
||||
|
||||
// Token: 0x0400778C RID: 30604
|
||||
[Token(Token = "0x400778C")]
|
||||
private const int P_20 = 1;
|
||||
|
||||
// Token: 0x0400778D RID: 30605
|
||||
[Token(Token = "0x400778D")]
|
||||
private const int P_21 = 1;
|
||||
|
||||
// Token: 0x0400778E RID: 30606
|
||||
[Token(Token = "0x400778E")]
|
||||
private const int P_22 = 0;
|
||||
|
||||
// Token: 0x0400778F RID: 30607
|
||||
[Token(Token = "0x400778F")]
|
||||
private const int P_23 = 0;
|
||||
|
||||
// Token: 0x04007790 RID: 30608
|
||||
[Token(Token = "0x4007790")]
|
||||
private const int P_24 = 0;
|
||||
|
||||
// Token: 0x04007791 RID: 30609
|
||||
[Token(Token = "0x4007791")]
|
||||
private const int P_30 = 0;
|
||||
|
||||
// Token: 0x04007792 RID: 30610
|
||||
[Token(Token = "0x4007792")]
|
||||
private const int P_31 = 1;
|
||||
|
||||
// Token: 0x04007793 RID: 30611
|
||||
[Token(Token = "0x4007793")]
|
||||
private const int P_32 = 1;
|
||||
|
||||
// Token: 0x04007794 RID: 30612
|
||||
[Token(Token = "0x4007794")]
|
||||
private const int P_33 = 0;
|
||||
|
||||
// Token: 0x04007795 RID: 30613
|
||||
[Token(Token = "0x4007795")]
|
||||
private const int P_34 = 1;
|
||||
|
||||
// Token: 0x04007796 RID: 30614
|
||||
[Token(Token = "0x4007796")]
|
||||
private const int GF256_FDBK = 361;
|
||||
|
||||
// Token: 0x04007797 RID: 30615
|
||||
[Token(Token = "0x4007797")]
|
||||
private const int GF256_FDBK_2 = 180;
|
||||
|
||||
// Token: 0x04007798 RID: 30616
|
||||
[Token(Token = "0x4007798")]
|
||||
private const int GF256_FDBK_4 = 90;
|
||||
|
||||
// Token: 0x04007799 RID: 30617
|
||||
[Token(Token = "0x4007799")]
|
||||
private const int RS_GF_FDBK = 333;
|
||||
|
||||
// Token: 0x0400779A RID: 30618
|
||||
[Token(Token = "0x400779A")]
|
||||
private const int ROUNDS = 16;
|
||||
|
||||
// Token: 0x0400779B RID: 30619
|
||||
[Token(Token = "0x400779B")]
|
||||
private const int MAX_ROUNDS = 16;
|
||||
|
||||
// Token: 0x0400779C RID: 30620
|
||||
[Token(Token = "0x400779C")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x0400779D RID: 30621
|
||||
[Token(Token = "0x400779D")]
|
||||
private const int MAX_KEY_BITS = 256;
|
||||
|
||||
// Token: 0x0400779E RID: 30622
|
||||
[Token(Token = "0x400779E")]
|
||||
private const int INPUT_WHITEN = 0;
|
||||
|
||||
// Token: 0x0400779F RID: 30623
|
||||
[Token(Token = "0x400779F")]
|
||||
private const int OUTPUT_WHITEN = 4;
|
||||
|
||||
// Token: 0x040077A0 RID: 30624
|
||||
[Token(Token = "0x40077A0")]
|
||||
private const int ROUND_SUBKEYS = 8;
|
||||
|
||||
// Token: 0x040077A1 RID: 30625
|
||||
[Token(Token = "0x40077A1")]
|
||||
private const int TOTAL_SUBKEYS = 40;
|
||||
|
||||
// Token: 0x040077A2 RID: 30626
|
||||
[Token(Token = "0x40077A2")]
|
||||
private const int SK_STEP = 33686018;
|
||||
|
||||
// Token: 0x040077A3 RID: 30627
|
||||
[Token(Token = "0x40077A3")]
|
||||
private const int SK_BUMP = 16843009;
|
||||
|
||||
// Token: 0x040077A4 RID: 30628
|
||||
[Token(Token = "0x40077A4")]
|
||||
private const int SK_ROTL = 9;
|
||||
|
||||
// Token: 0x040077A5 RID: 30629
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077A5")]
|
||||
private bool encrypting;
|
||||
|
||||
// Token: 0x040077A6 RID: 30630
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077A6")]
|
||||
private int[] gMDS0;
|
||||
|
||||
// Token: 0x040077A7 RID: 30631
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077A7")]
|
||||
private int[] gMDS1;
|
||||
|
||||
// Token: 0x040077A8 RID: 30632
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077A8")]
|
||||
private int[] gMDS2;
|
||||
|
||||
// Token: 0x040077A9 RID: 30633
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40077A9")]
|
||||
private int[] gMDS3;
|
||||
|
||||
// Token: 0x040077AA RID: 30634
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40077AA")]
|
||||
private int[] gSubKeys;
|
||||
|
||||
// Token: 0x040077AB RID: 30635
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40077AB")]
|
||||
private int[] gSBox;
|
||||
|
||||
// Token: 0x040077AC RID: 30636
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40077AC")]
|
||||
private int k64Cnt;
|
||||
|
||||
// Token: 0x040077AD RID: 30637
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40077AD")]
|
||||
private byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D98 RID: 7576
|
||||
[Token(Token = "0x2001D98")]
|
||||
public class VmpcEngine : IStreamCipher
|
||||
{
|
||||
// Token: 0x17001D9A RID: 7578
|
||||
// (get) Token: 0x0600BD1D RID: 48413 RVA: 0x002A2528 File Offset: 0x002A0728
|
||||
[Token(Token = "0x17001D9A")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD1D")]
|
||||
[Address(RVA = "0x2594E60", Offset = "0x2593E60", VA = "0x182594E60", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD1E RID: 48414 RVA: 0x002A253C File Offset: 0x002A073C
|
||||
[Token(Token = "0x600BD1E")]
|
||||
[Address(RVA = "0x25947C0", Offset = "0x25937C0", VA = "0x1825947C0", Slot = "10")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD1E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.VmpcEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4C:
|
||||
stloc:ArgumentException(var_8_56, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("VMPC requires 1 to 768 bytes of IV")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD1F RID: 48415 RVA: 0x002A25A0 File Offset: 0x002A07A0
|
||||
[Token(Token = "0x600BD1F")]
|
||||
[Address(RVA = "0x2594490", Offset = "0x2593490", VA = "0x182594490", Slot = "11")]
|
||||
protected virtual void InitKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
this.s = (byte)((ulong)0L);
|
||||
byte[] array = new byte[256];
|
||||
int num = 0;
|
||||
this.P = array;
|
||||
byte[] p = this.P;
|
||||
num++;
|
||||
byte[] p2 = this.P;
|
||||
int length = p2.Length;
|
||||
byte b = p[keyBytes];
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte b3 = this.s;
|
||||
b += b3;
|
||||
byte b4;
|
||||
this.s = b4;
|
||||
int length2 = p2.Length;
|
||||
byte[] p3 = this.P;
|
||||
byte b5 = this.s;
|
||||
num++;
|
||||
byte[] p4 = this.P;
|
||||
int length3 = p4.Length;
|
||||
int length4 = ivBytes.Length;
|
||||
byte b6;
|
||||
byte b7;
|
||||
b6 += b7;
|
||||
byte b8 = this.s;
|
||||
b6 += b8;
|
||||
byte b9;
|
||||
this.s = b9;
|
||||
int length5 = p4.Length;
|
||||
byte[] p5 = this.P;
|
||||
byte b10 = this.s;
|
||||
num++;
|
||||
this.n = (byte)((ulong)0L);
|
||||
}
|
||||
|
||||
// Token: 0x0600BD20 RID: 48416 RVA: 0x002A2698 File Offset: 0x002A0898
|
||||
[Token(Token = "0x600BD20")]
|
||||
[Address(RVA = "0x2594A10", Offset = "0x2593A10", VA = "0x182594A10", Slot = "12")]
|
||||
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
|
||||
{
|
||||
Check.DataLength(input, inOff, inOff, "input buffer too short");
|
||||
if (len > 0)
|
||||
{
|
||||
byte[] p = this.P;
|
||||
byte b = this.n;
|
||||
int length = p.Length;
|
||||
byte b2 = this.s;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
this.s = b4;
|
||||
int length2 = p.Length;
|
||||
byte[] p2 = this.P;
|
||||
byte b5 = this.s;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD21 RID: 48417 RVA: 0x002A2710 File Offset: 0x002A0910
|
||||
[Token(Token = "0x600BD21")]
|
||||
[Address(RVA = "0x2594CA0", Offset = "0x2593CA0", VA = "0x182594CA0", Slot = "13")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
string algorithmName = ((IStreamCipher)this).AlgorithmName;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD22 RID: 48418 RVA: 0x002A2724 File Offset: 0x002A0924
|
||||
[Token(Token = "0x600BD22")]
|
||||
[Address(RVA = "0x2594CC0", Offset = "0x2593CC0", VA = "0x182594CC0", Slot = "14")]
|
||||
public virtual byte ReturnByte(byte input)
|
||||
{
|
||||
byte[] p = this.P;
|
||||
byte b = this.n;
|
||||
int length = p.Length;
|
||||
byte b2 = this.s;
|
||||
byte b3;
|
||||
b3 += b2;
|
||||
byte b4;
|
||||
this.s = b4;
|
||||
int length2 = p.Length;
|
||||
byte[] p2 = this.P;
|
||||
byte b5 = this.s;
|
||||
byte b6;
|
||||
return b6;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD23 RID: 48419 RVA: 0x002A2788 File Offset: 0x002A0988
|
||||
[Token(Token = "0x600BD23")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public VmpcEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040077AE RID: 30638
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077AE")]
|
||||
protected byte n;
|
||||
|
||||
// Token: 0x040077AF RID: 30639
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077AF")]
|
||||
protected byte[] P;
|
||||
|
||||
// Token: 0x040077B0 RID: 30640
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077B0")]
|
||||
protected byte s;
|
||||
|
||||
// Token: 0x040077B1 RID: 30641
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077B1")]
|
||||
protected byte[] workingIV;
|
||||
|
||||
// Token: 0x040077B2 RID: 30642
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40077B2")]
|
||||
protected byte[] workingKey;
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D99 RID: 7577
|
||||
[Token(Token = "0x2001D99")]
|
||||
public class VmpcKsa3Engine : VmpcEngine
|
||||
{
|
||||
// Token: 0x17001D9B RID: 7579
|
||||
// (get) Token: 0x0600BD24 RID: 48420 RVA: 0x002A279C File Offset: 0x002A099C
|
||||
[Token(Token = "0x17001D9B")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD24")]
|
||||
[Address(RVA = "0x25952F0", Offset = "0x25942F0", VA = "0x1825952F0", Slot = "9")]
|
||||
get
|
||||
{
|
||||
return "VMPC-KSA3";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD25 RID: 48421 RVA: 0x002A27B0 File Offset: 0x002A09B0
|
||||
[Token(Token = "0x600BD25")]
|
||||
[Address(RVA = "0x2594E90", Offset = "0x2593E90", VA = "0x182594E90", Slot = "11")]
|
||||
protected override void InitKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
this.s = (byte)((ulong)0L);
|
||||
byte[] array = new byte[256];
|
||||
int num = 0;
|
||||
this.P = array;
|
||||
byte[] p = this.P;
|
||||
num++;
|
||||
byte[] p2 = this.P;
|
||||
int length = p2.Length;
|
||||
byte b = p[keyBytes];
|
||||
byte b2;
|
||||
b += b2;
|
||||
byte s = this.s;
|
||||
b += s;
|
||||
byte b3;
|
||||
this.s = b3;
|
||||
int length2 = p2.Length;
|
||||
byte b4 = p2[num];
|
||||
byte b5;
|
||||
p2[0] = b5;
|
||||
byte[] p3 = this.P;
|
||||
byte s2 = this.s;
|
||||
num++;
|
||||
byte[] p4 = this.P;
|
||||
int length3 = p4.Length;
|
||||
byte b6;
|
||||
byte b7;
|
||||
b6 += b7;
|
||||
byte s3 = this.s;
|
||||
b6 += s3;
|
||||
byte b8;
|
||||
this.s = b8;
|
||||
int length4 = p4.Length;
|
||||
byte b9;
|
||||
p4[0] = b9;
|
||||
byte[] p5 = this.P;
|
||||
byte s4 = this.s;
|
||||
num++;
|
||||
byte[] p6 = this.P;
|
||||
int length5 = p6.Length;
|
||||
byte b10;
|
||||
byte b11;
|
||||
b10 += b11;
|
||||
byte s5 = this.s;
|
||||
b10 += s5;
|
||||
byte b12;
|
||||
this.s = b12;
|
||||
int length6 = p6.Length;
|
||||
byte b13 = p6[num];
|
||||
byte b14;
|
||||
p6[0] = b14;
|
||||
byte[] p7 = this.P;
|
||||
byte s6 = this.s;
|
||||
num++;
|
||||
this.n = (byte)((ulong)0L);
|
||||
}
|
||||
|
||||
// Token: 0x0600BD26 RID: 48422 RVA: 0x002A2920 File Offset: 0x002A0B20
|
||||
[Token(Token = "0x600BD26")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public VmpcKsa3Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D9A RID: 7578
|
||||
[Token(Token = "0x2001D9A")]
|
||||
public class XSalsa20Engine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x17001D9C RID: 7580
|
||||
// (get) Token: 0x0600BD27 RID: 48423 RVA: 0x002A2934 File Offset: 0x002A0B34
|
||||
[Token(Token = "0x17001D9C")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD27")]
|
||||
[Address(RVA = "0x2595860", Offset = "0x2594860", VA = "0x182595860", Slot = "11")]
|
||||
get
|
||||
{
|
||||
return "XSalsa20";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D9D RID: 7581
|
||||
// (get) Token: 0x0600BD28 RID: 48424 RVA: 0x002A2948 File Offset: 0x002A0B48
|
||||
[Token(Token = "0x17001D9D")]
|
||||
protected override int NonceSize
|
||||
{
|
||||
[Token(Token = "0x600BD28")]
|
||||
[Address(RVA = "0xC42F00", Offset = "0xC41F00", VA = "0x180C42F00", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD29 RID: 48425 RVA: 0x002A2958 File Offset: 0x002A0B58
|
||||
[Token(Token = "0x600BD29")]
|
||||
[Address(RVA = "0x2595320", Offset = "0x2594320", VA = "0x182595320", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD29)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XSalsa20Engine::SetKey(System.Byte[],System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_173:
|
||||
stloc:ArgumentException(var_33_17A, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_32)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD2A RID: 48426 RVA: 0x002A2AE0 File Offset: 0x002A0CE0
|
||||
[Token(Token = "0x600BD2A")]
|
||||
[Address(RVA = "0x2595800", Offset = "0x2594800", VA = "0x182595800")]
|
||||
public XSalsa20Engine()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D9B RID: 7579
|
||||
[Token(Token = "0x2001D9B")]
|
||||
public class XteaEngine : IBlockCipher
|
||||
{
|
||||
// Token: 0x0600BD2B RID: 48427 RVA: 0x002A2AF4 File Offset: 0x002A0CF4
|
||||
[Token(Token = "0x600BD2B")]
|
||||
[Address(RVA = "0x2595DA0", Offset = "0x2594DA0", VA = "0x182595DA0")]
|
||||
public XteaEngine()
|
||||
{
|
||||
uint[] array = new uint[4];
|
||||
this._S = array;
|
||||
uint[] array2 = new uint[32];
|
||||
this._sum0 = array2;
|
||||
uint[] array3 = new uint[32];
|
||||
this._sum1 = array3;
|
||||
this.Reset();
|
||||
this._initialised = false;
|
||||
}
|
||||
|
||||
// Token: 0x17001D9E RID: 7582
|
||||
// (get) Token: 0x0600BD2C RID: 48428 RVA: 0x002A2B3C File Offset: 0x002A0D3C
|
||||
[Token(Token = "0x17001D9E")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD2C")]
|
||||
[Address(RVA = "0x2596050", Offset = "0x2595050", VA = "0x182596050", Slot = "10")]
|
||||
get
|
||||
{
|
||||
return "XTEA";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D9F RID: 7583
|
||||
// (get) Token: 0x0600BD2D RID: 48429 RVA: 0x002A2B50 File Offset: 0x002A0D50
|
||||
[Token(Token = "0x17001D9F")]
|
||||
public virtual bool IsPartialBlockOkay
|
||||
{
|
||||
[Token(Token = "0x600BD2D")]
|
||||
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "11")]
|
||||
get
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD2E RID: 48430 RVA: 0x002A2B60 File Offset: 0x002A0D60
|
||||
[Token(Token = "0x600BD2E")]
|
||||
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "12")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD2F RID: 48431 RVA: 0x002A2B70 File Offset: 0x002A0D70
|
||||
[Token(Token = "0x600BD2F")]
|
||||
[Address(RVA = "0x2595890", Offset = "0x2594890", VA = "0x182595890", Slot = "13")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD2F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A2:
|
||||
stloc:ArgumentException(var_13_B3, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to TEA init - "), ldloc:string(var_12))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD30 RID: 48432 RVA: 0x002A2C34 File Offset: 0x002A0E34
|
||||
[Token(Token = "0x600BD30")]
|
||||
[Address(RVA = "0x2595B30", Offset = "0x2594B30", VA = "0x182595B30", Slot = "14")]
|
||||
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD30)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.XteaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_7F:
|
||||
stloc:InvalidOperationException(var_12_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_11)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD31 RID: 48433 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BD31")]
|
||||
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BD32 RID: 48434 RVA: 0x002A2CC8 File Offset: 0x002A0EC8
|
||||
[Token(Token = "0x600BD32")]
|
||||
[Address(RVA = "0x2596080", Offset = "0x2595080", VA = "0x182596080")]
|
||||
private void setKey(byte[] key)
|
||||
{
|
||||
int num = 0;
|
||||
uint[] s = this._S;
|
||||
uint num2 = Pack.BE_To_UInt32(key, num);
|
||||
num += 4;
|
||||
num++;
|
||||
s[0] = num2;
|
||||
uint[] s2 = this._S;
|
||||
uint[] sum = this._sum0;
|
||||
uint num3 = s2[num];
|
||||
num3 += (uint)num;
|
||||
sum[0] = num3;
|
||||
uint[] s3 = this._S;
|
||||
uint[] sum2 = this._sum1;
|
||||
uint num4 = s3[num];
|
||||
num++;
|
||||
num4 += (uint)num;
|
||||
sum2[0] = num4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD33 RID: 48435 RVA: 0x002A2D54 File Offset: 0x002A0F54
|
||||
[Token(Token = "0x600BD33")]
|
||||
[Address(RVA = "0x2595F30", Offset = "0x2594F30", VA = "0x182595F30")]
|
||||
private int encryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint[] sum = this._sum0;
|
||||
int num3 = 0;
|
||||
uint[] sum2 = this._sum1;
|
||||
num2 += num2;
|
||||
num += num2;
|
||||
num2 = num;
|
||||
num3++;
|
||||
num2 += num;
|
||||
num2 += num2;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD34 RID: 48436 RVA: 0x002A2DA4 File Offset: 0x002A0FA4
|
||||
[Token(Token = "0x600BD34")]
|
||||
[Address(RVA = "0x2595E20", Offset = "0x2594E20", VA = "0x182595E20")]
|
||||
private int decryptBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
||||
{
|
||||
uint num = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint num2 = Pack.BE_To_UInt32(inBytes, inOff);
|
||||
uint[] sum = this._sum1;
|
||||
uint[] sum2 = this._sum0;
|
||||
num2 = num;
|
||||
num += num;
|
||||
num2 -= num;
|
||||
num = num2;
|
||||
num += num2;
|
||||
num -= num;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x040077B3 RID: 30643
|
||||
[Token(Token = "0x40077B3")]
|
||||
private const int rounds = 32;
|
||||
|
||||
// Token: 0x040077B4 RID: 30644
|
||||
[Token(Token = "0x40077B4")]
|
||||
private const int block_size = 8;
|
||||
|
||||
// Token: 0x040077B5 RID: 30645
|
||||
[Token(Token = "0x40077B5")]
|
||||
private const int delta = -1640531527;
|
||||
|
||||
// Token: 0x040077B6 RID: 30646
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077B6")]
|
||||
private uint[] _S;
|
||||
|
||||
// Token: 0x040077B7 RID: 30647
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077B7")]
|
||||
private uint[] _sum0;
|
||||
|
||||
// Token: 0x040077B8 RID: 30648
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077B8")]
|
||||
private uint[] _sum1;
|
||||
|
||||
// Token: 0x040077B9 RID: 30649
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077B9")]
|
||||
private bool _initialised;
|
||||
|
||||
// Token: 0x040077BA RID: 30650
|
||||
[FieldOffset(Offset = "0x29")]
|
||||
[Token(Token = "0x40077BA")]
|
||||
private bool _forEncryption;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user