1767 lines
57 KiB
C#
1767 lines
57 KiB
C#
using System;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
|
{
|
|
// Token: 0x02001CB1 RID: 7345
|
|
[Token(Token = "0x2001CB1")]
|
|
public class ThreefishEngine : IBlockCipher
|
|
{
|
|
// Token: 0x0600B914 RID: 47380 RVA: 0x00295204 File Offset: 0x00293404
|
|
[Token(Token = "0x600B914")]
|
|
[Address(RVA = "0x1E0C9D0", Offset = "0x1E0B7D0", VA = "0x181E0C9D0")]
|
|
static ThreefishEngine()
|
|
{
|
|
int[] array = new int[ThreefishEngine.MOD9.Length];
|
|
int num = 0;
|
|
ThreefishEngine.MOD3 = array;
|
|
int[] mod = ThreefishEngine.MOD9;
|
|
if (num < mod.Length)
|
|
{
|
|
int[] mod2 = ThreefishEngine.MOD17;
|
|
ulong num2;
|
|
num2 += num2;
|
|
long num3 = (long)(num2 * (ulong)((uint)17));
|
|
num = (int)((long)num - num3);
|
|
int[] mod3 = ThreefishEngine.MOD9;
|
|
ulong num4;
|
|
num4 += num4;
|
|
num = (int)((ulong)num - num4);
|
|
int[] mod4 = ThreefishEngine.MOD5;
|
|
ulong num5;
|
|
num5 += num5;
|
|
num = (int)((ulong)num - num5);
|
|
int[] mod5 = ThreefishEngine.MOD3;
|
|
num++;
|
|
int[] mod6 = ThreefishEngine.MOD9;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B915 RID: 47381 RVA: 0x002952C8 File Offset: 0x002934C8
|
|
[Token(Token = "0x600B915")]
|
|
[Address(RVA = "0x1E0CC50", Offset = "0x1E0BA50", VA = "0x181E0CC50")]
|
|
public ThreefishEngine(int blocksizeBits)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B915)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::.ctor(System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_A8:
|
|
stloc:ArgumentException(var_12_B2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid blocksize - Threefish is defined with block size of 256, 512, or 1024 bits")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B916 RID: 47382 RVA: 0x00295388 File Offset: 0x00293588
|
|
[Token(Token = "0x600B916")]
|
|
[Address(RVA = "0x1E0BB10", Offset = "0x1E0A910", VA = "0x181E0BB10", Slot = "10")]
|
|
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B916)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_E2:
|
|
stloc:ArgumentException(var_18_F8, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish key must be same size as block ("), ldloc:ArgumentException[exp:object](var_17), ldstr:string[exp:object](" bytes)"))))
|
|
stloc:ArgumentException(var_21_110, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish tweak must be "), ldloc:int32[exp:object](var_20), ldstr:string[exp:object](" bytes"))))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B917 RID: 47383 RVA: 0x002954A8 File Offset: 0x002936A8
|
|
[Token(Token = "0x600B917")]
|
|
[Address(RVA = "0x1E0BAC0", Offset = "0x1E0A8C0", VA = "0x181E0BAC0")]
|
|
internal void Init(bool forEncryption, ulong[] key, ulong[] tweak)
|
|
{
|
|
this.forEncryption = forEncryption;
|
|
if (key != 0)
|
|
{
|
|
this.SetKey(key);
|
|
}
|
|
if (tweak != 0)
|
|
{
|
|
this.SetTweak(tweak);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B918 RID: 47384 RVA: 0x002954D4 File Offset: 0x002936D4
|
|
[Token(Token = "0x600B918")]
|
|
[Address(RVA = "0x1E0C430", Offset = "0x1E0B230", VA = "0x181E0C430")]
|
|
private void SetKey(ulong[] key)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = this.blocksizeWords;
|
|
}
|
|
while (key.Length != num);
|
|
ulong[] array = this.kw;
|
|
int num2 = 0;
|
|
if (num > 0)
|
|
{
|
|
ulong num3 = key[num2];
|
|
array[0] = num3;
|
|
ulong[] array2 = this.kw;
|
|
num2++;
|
|
int num4 = this.blocksizeWords;
|
|
}
|
|
int num5 = 0;
|
|
array[0] = (ulong)2004413935125273122L;
|
|
int num6 = this.blocksizeWords;
|
|
ulong[] array3 = this.kw;
|
|
int num7 = num6 + 1;
|
|
Array.Copy(array3, num5, array3, num7, num6);
|
|
}
|
|
|
|
// Token: 0x0600B919 RID: 47385 RVA: 0x00295564 File Offset: 0x00293764
|
|
[Token(Token = "0x600B919")]
|
|
[Address(RVA = "0x1E0C5B0", Offset = "0x1E0B3B0", VA = "0x181E0C5B0")]
|
|
private void SetTweak(ulong[] tweak)
|
|
{
|
|
while (tweak.Length != 2)
|
|
{
|
|
}
|
|
ulong[] array = this.t;
|
|
ulong num = tweak[0];
|
|
array[0] = num;
|
|
ulong[] array2 = this.t;
|
|
ulong num2 = tweak[1];
|
|
array2[1] = num2;
|
|
ulong[] array3 = this.t;
|
|
int length = array3.Length;
|
|
ulong num3 = array3[1];
|
|
array3[2] = num3;
|
|
ulong[] array4 = this.t;
|
|
int length2 = array4.Length;
|
|
ulong num4 = array4[0];
|
|
array4[3] = num4;
|
|
ulong[] array5 = this.t;
|
|
int length3 = array5.Length;
|
|
ulong num5 = array5[1];
|
|
array5[4] = num5;
|
|
}
|
|
|
|
// Token: 0x17001CF8 RID: 7416
|
|
// (get) Token: 0x0600B91A RID: 47386 RVA: 0x00295620 File Offset: 0x00293820
|
|
[Token(Token = "0x17001CF8")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600B91A")]
|
|
[Address(RVA = "0x1E0CDC0", Offset = "0x1E0BBC0", VA = "0x181E0CDC0", Slot = "11")]
|
|
get
|
|
{
|
|
int num = this.blocksizeBytes;
|
|
return "Threefish-" + num;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CF9 RID: 7417
|
|
// (get) Token: 0x0600B91B RID: 47387 RVA: 0x00295640 File Offset: 0x00293840
|
|
[Token(Token = "0x17001CF9")]
|
|
public virtual bool IsPartialBlockOkay
|
|
{
|
|
[Token(Token = "0x600B91B")]
|
|
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
|
|
get
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B91C RID: 47388 RVA: 0x00295650 File Offset: 0x00293850
|
|
[Token(Token = "0x600B91C")]
|
|
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "13")]
|
|
public virtual int GetBlockSize()
|
|
{
|
|
return this.blocksizeBytes;
|
|
}
|
|
|
|
// Token: 0x0600B91D RID: 47389 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600B91D")]
|
|
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
|
|
public virtual void Reset()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600B91E RID: 47390 RVA: 0x00295664 File Offset: 0x00293864
|
|
[Token(Token = "0x600B91E")]
|
|
[Address(RVA = "0x1E0C100", Offset = "0x1E0AF00", VA = "0x181E0C100", Slot = "15")]
|
|
public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B91E)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_A9:
|
|
stloc:DataLengthException(var_10_B3, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Input buffer too short")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B91F RID: 47391 RVA: 0x00295728 File Offset: 0x00293928
|
|
[Token(Token = "0x600B91F")]
|
|
[Address(RVA = "0x1E0BF70", Offset = "0x1E0AD70", VA = "0x181E0BF70")]
|
|
internal int ProcessBlock(ulong[] inWords, ulong[] outWords)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B91F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.UInt64[],System.UInt64[])
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_5D:
|
|
stloc:DataLengthException(var_4_67, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Output buffer too short")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B920 RID: 47392 RVA: 0x002957A0 File Offset: 0x002939A0
|
|
[Token(Token = "0x600B920")]
|
|
[Address(RVA = "0x1E0B8C0", Offset = "0x1E0A6C0", VA = "0x181E0B8C0")]
|
|
internal static ulong BytesToWord(byte[] bytes, int off)
|
|
{
|
|
int length = bytes.Length;
|
|
int num = off + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B921 RID: 47393 RVA: 0x002957C0 File Offset: 0x002939C0
|
|
[Token(Token = "0x600B921")]
|
|
[Address(RVA = "0x1E0C7F0", Offset = "0x1E0B5F0", VA = "0x181E0C7F0")]
|
|
internal static void WordToBytes(ulong word, byte[] bytes, int off)
|
|
{
|
|
int num = bytes.Length;
|
|
int num2 = off + 1;
|
|
num = off + 6;
|
|
}
|
|
|
|
// Token: 0x0600B922 RID: 47394 RVA: 0x002957E4 File Offset: 0x002939E4
|
|
[Token(Token = "0x600B922")]
|
|
[Address(RVA = "0x1E0C410", Offset = "0x1E0B210", VA = "0x181E0C410")]
|
|
private static ulong RotlXor(ulong x, int n, ulong xor)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B923 RID: 47395 RVA: 0x002957F4 File Offset: 0x002939F4
|
|
[Token(Token = "0x600B923")]
|
|
[Address(RVA = "0x1E0C9B0", Offset = "0x1E0B7B0", VA = "0x181E0C9B0")]
|
|
private static ulong XorRotr(ulong x, int n, ulong xor)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x04007541 RID: 30017
|
|
[Token(Token = "0x4007541")]
|
|
public const int BLOCKSIZE_256 = 256;
|
|
|
|
// Token: 0x04007542 RID: 30018
|
|
[Token(Token = "0x4007542")]
|
|
public const int BLOCKSIZE_512 = 512;
|
|
|
|
// Token: 0x04007543 RID: 30019
|
|
[Token(Token = "0x4007543")]
|
|
public const int BLOCKSIZE_1024 = 1024;
|
|
|
|
// Token: 0x04007544 RID: 30020
|
|
[Token(Token = "0x4007544")]
|
|
private const int TWEAK_SIZE_BYTES = 16;
|
|
|
|
// Token: 0x04007545 RID: 30021
|
|
[Token(Token = "0x4007545")]
|
|
private const int TWEAK_SIZE_WORDS = 2;
|
|
|
|
// Token: 0x04007546 RID: 30022
|
|
[Token(Token = "0x4007546")]
|
|
private const int ROUNDS_256 = 72;
|
|
|
|
// Token: 0x04007547 RID: 30023
|
|
[Token(Token = "0x4007547")]
|
|
private const int ROUNDS_512 = 72;
|
|
|
|
// Token: 0x04007548 RID: 30024
|
|
[Token(Token = "0x4007548")]
|
|
private const int ROUNDS_1024 = 80;
|
|
|
|
// Token: 0x04007549 RID: 30025
|
|
[Token(Token = "0x4007549")]
|
|
private const int MAX_ROUNDS = 80;
|
|
|
|
// Token: 0x0400754A RID: 30026
|
|
[Token(Token = "0x400754A")]
|
|
private const ulong C_240 = 2004413935125273122UL;
|
|
|
|
// Token: 0x0400754B RID: 30027
|
|
[Token(Token = "0x400754B")]
|
|
private static readonly int[] MOD9 = new int[80];
|
|
|
|
// Token: 0x0400754C RID: 30028
|
|
[Token(Token = "0x400754C")]
|
|
private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length];
|
|
|
|
// Token: 0x0400754D RID: 30029
|
|
[Token(Token = "0x400754D")]
|
|
private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length];
|
|
|
|
// Token: 0x0400754E RID: 30030
|
|
[Token(Token = "0x400754E")]
|
|
private static readonly int[] MOD3;
|
|
|
|
// Token: 0x0400754F RID: 30031
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400754F")]
|
|
private readonly int blocksizeBytes;
|
|
|
|
// Token: 0x04007550 RID: 30032
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x4007550")]
|
|
private readonly int blocksizeWords;
|
|
|
|
// Token: 0x04007551 RID: 30033
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007551")]
|
|
private readonly ulong[] currentBlock;
|
|
|
|
// Token: 0x04007552 RID: 30034
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007552")]
|
|
private readonly ulong[] t;
|
|
|
|
// Token: 0x04007553 RID: 30035
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007553")]
|
|
private readonly ulong[] kw;
|
|
|
|
// Token: 0x04007554 RID: 30036
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007554")]
|
|
private readonly ThreefishEngine.ThreefishCipher cipher;
|
|
|
|
// Token: 0x04007555 RID: 30037
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007555")]
|
|
private bool forEncryption;
|
|
|
|
// Token: 0x02001CB2 RID: 7346
|
|
[Token(Token = "0x2001CB2")]
|
|
private abstract class ThreefishCipher
|
|
{
|
|
// Token: 0x0600B924 RID: 47396 RVA: 0x00295804 File Offset: 0x00293A04
|
|
[Token(Token = "0x600B924")]
|
|
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
|
protected ThreefishCipher(ulong[] kw, ulong[] t)
|
|
{
|
|
this.kw = kw;
|
|
this.t = t;
|
|
}
|
|
|
|
// Token: 0x0600B925 RID: 47397
|
|
[Token(Token = "0x600B925")]
|
|
[Address(Slot = "4")]
|
|
internal abstract void EncryptBlock(ulong[] block, ulong[] outWords);
|
|
|
|
// Token: 0x0600B926 RID: 47398
|
|
[Token(Token = "0x600B926")]
|
|
[Address(Slot = "5")]
|
|
internal abstract void DecryptBlock(ulong[] block, ulong[] outWords);
|
|
|
|
// Token: 0x04007556 RID: 30038
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007556")]
|
|
protected readonly ulong[] t;
|
|
|
|
// Token: 0x04007557 RID: 30039
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007557")]
|
|
protected readonly ulong[] kw;
|
|
}
|
|
|
|
// Token: 0x02001CB3 RID: 7347
|
|
[Token(Token = "0x2001CB3")]
|
|
private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher
|
|
{
|
|
// Token: 0x0600B927 RID: 47399 RVA: 0x00295828 File Offset: 0x00293A28
|
|
[Token(Token = "0x600B927")]
|
|
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
|
public Threefish256Cipher(ulong[] kw, ulong[] t)
|
|
{
|
|
this.kw = kw;
|
|
this.t = t;
|
|
}
|
|
|
|
// Token: 0x0600B928 RID: 47400 RVA: 0x0029584C File Offset: 0x00293A4C
|
|
[Token(Token = "0x600B928")]
|
|
[Address(RVA = "0x1A36330", Offset = "0x1A35130", VA = "0x181A36330", Slot = "4")]
|
|
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
|
{
|
|
ulong[] kw;
|
|
ulong[] t;
|
|
int[] mod;
|
|
int[] mod2;
|
|
do
|
|
{
|
|
kw = this.kw;
|
|
t = this.t;
|
|
mod = ThreefishEngine.MOD5;
|
|
mod2 = ThreefishEngine.MOD3;
|
|
}
|
|
while (kw.Length != 9 || t.Length != 5);
|
|
int length = block.Length;
|
|
ulong num = block[1];
|
|
ulong num2 = block[2];
|
|
ulong num3 = t[0];
|
|
ulong num4 = block[3];
|
|
num += num3;
|
|
ulong num5 = t[1];
|
|
num2 += num5;
|
|
uint num7;
|
|
int num6 = mod[(int)num7];
|
|
int num8 = mod2[(int)num7];
|
|
ulong num9 = ThreefishEngine.RotlXor(num, 14, (ulong)num6);
|
|
num = num9;
|
|
num = ThreefishEngine.RotlXor(num, 16, (ulong)num6);
|
|
ulong num10;
|
|
num = num10;
|
|
ulong num11 = ThreefishEngine.RotlXor(num, 5, num);
|
|
num = num11;
|
|
ulong num12 = ThreefishEngine.RotlXor(num, 37, num);
|
|
int length2 = kw.Length;
|
|
int num13 = num6 + 1;
|
|
int length3 = t.Length;
|
|
num6 += 2;
|
|
ulong num14 = kw[num6];
|
|
int num15 = num8 + 1;
|
|
ulong num16 = t[num15];
|
|
ulong num17 = kw[num15];
|
|
num17 += (ulong)num7;
|
|
num11 += num17;
|
|
ulong num18 = t[num8];
|
|
num12 += num18;
|
|
ulong num19 = kw[num6];
|
|
num = num12;
|
|
num19 += num12;
|
|
ulong num20 = ThreefishEngine.RotlXor(num, 25, num19);
|
|
num16 += num14;
|
|
num16 += num11;
|
|
num19 = num16;
|
|
ulong num21 = ThreefishEngine.RotlXor(num11, 33, num19);
|
|
num19 += num21;
|
|
num11 = num21;
|
|
ulong num22 = ThreefishEngine.RotlXor(num11, 46, num19);
|
|
num16 += num20;
|
|
num19 = num16;
|
|
num11 = num20;
|
|
num14 = num22;
|
|
ulong num23 = ThreefishEngine.RotlXor(num11, 12, num19);
|
|
num19 += num23;
|
|
num11 = num23;
|
|
ulong num24 = ThreefishEngine.RotlXor(num11, 58, num19);
|
|
num16 += num14;
|
|
num19 = num16;
|
|
num11 = num14;
|
|
num20 = num24;
|
|
ulong num25 = ThreefishEngine.RotlXor(num11, 22, num19);
|
|
num19 += num25;
|
|
num11 = num25;
|
|
ulong num26 = ThreefishEngine.RotlXor(num11, 32, num19);
|
|
int num27 = 0;
|
|
num11 = num20;
|
|
num19 = num14;
|
|
ulong num28 = ThreefishEngine.RotlXor(num11, 32, num19);
|
|
int length4 = kw.Length;
|
|
int num29 = num6 + 1;
|
|
num16 = num28;
|
|
num27 = (int)((ulong)num27 + num19);
|
|
int length5 = t.Length;
|
|
num29 = num8;
|
|
num16 += (ulong)num8;
|
|
num29 += 2;
|
|
num19 += num14;
|
|
ulong num30 = kw[num8];
|
|
num7 += (uint)2;
|
|
num30 += (ulong)num7;
|
|
num26 += (ulong)1L;
|
|
num30 += num26;
|
|
if (num7 < (uint)18)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B929 RID: 47401 RVA: 0x00295AE0 File Offset: 0x00293CE0
|
|
[Token(Token = "0x600B929")]
|
|
[Address(RVA = "0x1A35C40", Offset = "0x1A34A40", VA = "0x181A35C40", Slot = "5")]
|
|
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
|
{
|
|
ulong[] kw;
|
|
ulong[] t;
|
|
int[] mod;
|
|
int[] mod2;
|
|
do
|
|
{
|
|
kw = this.kw;
|
|
t = this.t;
|
|
mod = ThreefishEngine.MOD5;
|
|
mod2 = ThreefishEngine.MOD3;
|
|
}
|
|
while (kw.Length != 9 || t.Length != 5);
|
|
int length = block.Length;
|
|
ulong num = block[0];
|
|
ulong num2 = block[1];
|
|
ulong num3 = block[2];
|
|
ulong num4 = block[3];
|
|
uint num6;
|
|
int num5 = mod[(int)num6];
|
|
int num7 = mod2[(int)num6];
|
|
int num8 = num5 + 1;
|
|
int length2 = kw.Length;
|
|
int num9 = num7 + 1;
|
|
int length3 = t.Length;
|
|
ulong num10 = t[num9];
|
|
num2 -= num10;
|
|
ulong num11 = t[(int)num10];
|
|
num3 -= num11;
|
|
num4 -= (ulong)num6;
|
|
ulong num12 = num4 - 1UL;
|
|
ulong num13 = ThreefishEngine.XorRotr(num12, 32, num);
|
|
num = num3;
|
|
num12 = num2;
|
|
num4 = num13;
|
|
num -= num13;
|
|
ulong num14 = ThreefishEngine.XorRotr(num12, 32, num);
|
|
num12 = num14;
|
|
num3 -= num14;
|
|
ulong num15 = ThreefishEngine.XorRotr(num12, 58, num);
|
|
num = num3;
|
|
num12 = num4;
|
|
num2 = num15;
|
|
num -= num15;
|
|
ulong num16 = ThreefishEngine.XorRotr(num12, 22, num);
|
|
num12 = num16;
|
|
num3 -= num16;
|
|
ulong num17 = ThreefishEngine.XorRotr(num12, 46, num);
|
|
num = num3;
|
|
num12 = num2;
|
|
num4 = num17;
|
|
num -= num17;
|
|
ulong num18 = ThreefishEngine.XorRotr(num12, 12, num);
|
|
num12 = num18;
|
|
num3 -= num18;
|
|
ulong num19 = ThreefishEngine.XorRotr(num12, 25, num);
|
|
num = num3;
|
|
num12 = num4;
|
|
ulong num20 = ThreefishEngine.XorRotr(num12, 33, num);
|
|
int length4 = kw.Length;
|
|
int num21 = num5 + 1;
|
|
ulong num22 = kw[num21];
|
|
int length5 = t.Length;
|
|
ulong num23 = t[num7];
|
|
int num24 = num7 + 1;
|
|
ulong num25 = t[num24];
|
|
num25 += num20;
|
|
num3 -= num25;
|
|
ulong num26 = kw[num5];
|
|
num26 += num19;
|
|
num -= num26;
|
|
ulong num27 = ThreefishEngine.XorRotr(num20, 5, num);
|
|
num19 -= num23;
|
|
num = num3;
|
|
num20 = num19;
|
|
num2 = num27;
|
|
num -= num27;
|
|
ulong num28 = ThreefishEngine.XorRotr(num20, 37, num);
|
|
num20 = num28;
|
|
num3 -= num28;
|
|
ulong num29 = ThreefishEngine.XorRotr(num20, 23, num);
|
|
num = num3;
|
|
num20 = num2;
|
|
num23 = num29;
|
|
num -= num29;
|
|
ulong num30 = ThreefishEngine.XorRotr(num20, 40, num);
|
|
num20 = num30;
|
|
num3 -= num30;
|
|
ulong num31 = ThreefishEngine.XorRotr(num20, 52, num);
|
|
num = num3;
|
|
num20 = num23;
|
|
num2 = num31;
|
|
num -= num31;
|
|
ulong num32 = ThreefishEngine.XorRotr(num20, 57, num);
|
|
num20 = num32;
|
|
num3 -= num32;
|
|
ulong num33 = ThreefishEngine.XorRotr(num20, 14, num);
|
|
num = num3;
|
|
num20 = num2;
|
|
num19 = num33;
|
|
num -= num33;
|
|
ulong num34 = ThreefishEngine.XorRotr(num20, 16, num);
|
|
num3 -= num34;
|
|
num23 = num34;
|
|
int length6 = kw.Length;
|
|
int length7 = t.Length;
|
|
ulong num35 = kw[1];
|
|
ulong num36 = t[0];
|
|
ulong num37 = kw[2];
|
|
ulong num38 = t[1];
|
|
ulong num39 = kw[3];
|
|
num19 -= num36;
|
|
num19 -= num35;
|
|
num3 -= num38;
|
|
num3 -= num37;
|
|
num23 -= num39;
|
|
}
|
|
|
|
// Token: 0x04007558 RID: 30040
|
|
[Token(Token = "0x4007558")]
|
|
private const int ROTATION_0_0 = 14;
|
|
|
|
// Token: 0x04007559 RID: 30041
|
|
[Token(Token = "0x4007559")]
|
|
private const int ROTATION_0_1 = 16;
|
|
|
|
// Token: 0x0400755A RID: 30042
|
|
[Token(Token = "0x400755A")]
|
|
private const int ROTATION_1_0 = 52;
|
|
|
|
// Token: 0x0400755B RID: 30043
|
|
[Token(Token = "0x400755B")]
|
|
private const int ROTATION_1_1 = 57;
|
|
|
|
// Token: 0x0400755C RID: 30044
|
|
[Token(Token = "0x400755C")]
|
|
private const int ROTATION_2_0 = 23;
|
|
|
|
// Token: 0x0400755D RID: 30045
|
|
[Token(Token = "0x400755D")]
|
|
private const int ROTATION_2_1 = 40;
|
|
|
|
// Token: 0x0400755E RID: 30046
|
|
[Token(Token = "0x400755E")]
|
|
private const int ROTATION_3_0 = 5;
|
|
|
|
// Token: 0x0400755F RID: 30047
|
|
[Token(Token = "0x400755F")]
|
|
private const int ROTATION_3_1 = 37;
|
|
|
|
// Token: 0x04007560 RID: 30048
|
|
[Token(Token = "0x4007560")]
|
|
private const int ROTATION_4_0 = 25;
|
|
|
|
// Token: 0x04007561 RID: 30049
|
|
[Token(Token = "0x4007561")]
|
|
private const int ROTATION_4_1 = 33;
|
|
|
|
// Token: 0x04007562 RID: 30050
|
|
[Token(Token = "0x4007562")]
|
|
private const int ROTATION_5_0 = 46;
|
|
|
|
// Token: 0x04007563 RID: 30051
|
|
[Token(Token = "0x4007563")]
|
|
private const int ROTATION_5_1 = 12;
|
|
|
|
// Token: 0x04007564 RID: 30052
|
|
[Token(Token = "0x4007564")]
|
|
private const int ROTATION_6_0 = 58;
|
|
|
|
// Token: 0x04007565 RID: 30053
|
|
[Token(Token = "0x4007565")]
|
|
private const int ROTATION_6_1 = 22;
|
|
|
|
// Token: 0x04007566 RID: 30054
|
|
[Token(Token = "0x4007566")]
|
|
private const int ROTATION_7_0 = 32;
|
|
|
|
// Token: 0x04007567 RID: 30055
|
|
[Token(Token = "0x4007567")]
|
|
private const int ROTATION_7_1 = 32;
|
|
}
|
|
|
|
// Token: 0x02001CB4 RID: 7348
|
|
[Token(Token = "0x2001CB4")]
|
|
private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher
|
|
{
|
|
// Token: 0x0600B92A RID: 47402 RVA: 0x00295E20 File Offset: 0x00294020
|
|
[Token(Token = "0x600B92A")]
|
|
[Address(RVA = "0x579630", Offset = "0x578430", VA = "0x180579630")]
|
|
internal Threefish512Cipher(ulong[] kw, ulong[] t)
|
|
{
|
|
this.kw = kw;
|
|
this.t = t;
|
|
}
|
|
|
|
// Token: 0x0600B92B RID: 47403 RVA: 0x00295E44 File Offset: 0x00294044
|
|
[Token(Token = "0x600B92B")]
|
|
[Address(RVA = "0x1A375F0", Offset = "0x1A363F0", VA = "0x181A375F0", Slot = "4")]
|
|
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
|
{
|
|
ulong[] t;
|
|
ulong[] kw;
|
|
int[] mod;
|
|
int[] mod2;
|
|
do
|
|
{
|
|
t = this.t;
|
|
kw = this.kw;
|
|
mod = ThreefishEngine.MOD9;
|
|
mod2 = ThreefishEngine.MOD3;
|
|
}
|
|
while (kw.Length != 17 || t.Length != 5);
|
|
int length = block.Length;
|
|
ulong num = block[1];
|
|
ulong num2 = block[2];
|
|
ulong num3 = block[3];
|
|
ulong num4 = block[5];
|
|
ulong num5 = block[6];
|
|
ulong num6 = t[0];
|
|
ulong num7 = block[7];
|
|
num4 += num6;
|
|
ulong num8 = t[1];
|
|
num5 += num8;
|
|
uint num10;
|
|
int num9 = mod[(int)num10];
|
|
int num11 = mod2[(int)num10];
|
|
ulong num12 = ThreefishEngine.RotlXor(num, 46, block);
|
|
num = num3;
|
|
ulong num13 = ThreefishEngine.RotlXor(num, 36, num);
|
|
num = num4;
|
|
num2 = num13;
|
|
ulong num14 = ThreefishEngine.RotlXor(num, 19, num);
|
|
num = num4;
|
|
ulong num15 = ThreefishEngine.RotlXor(num7, 37, num);
|
|
num5 = num15;
|
|
num7 = num12;
|
|
num = num15;
|
|
ulong num16 = ThreefishEngine.RotlXor(num7, 33, num);
|
|
num7 = num5;
|
|
num12 = num16;
|
|
ulong num17 = ThreefishEngine.RotlXor(num7, 27, num);
|
|
num = num3;
|
|
ulong num18 = ThreefishEngine.RotlXor(num7, 14, num);
|
|
num7 = num2;
|
|
ulong num19 = ThreefishEngine.RotlXor(num7, 42, block);
|
|
num5 = num19;
|
|
num7 = num12;
|
|
ulong num20 = ThreefishEngine.RotlXor(num7, 17, num19);
|
|
num19 = num;
|
|
num7 = num5;
|
|
num12 = num20;
|
|
ulong num21 = ThreefishEngine.RotlXor(num7, 49, num19);
|
|
num19 = num3;
|
|
num2 = num21;
|
|
ulong num22 = ThreefishEngine.RotlXor(num7, 36, num19);
|
|
num19 = num15;
|
|
ulong num23 = ThreefishEngine.RotlXor(num17, 39, num19);
|
|
num5 = num23;
|
|
num17 = num12;
|
|
num19 = num23;
|
|
ulong num24 = ThreefishEngine.RotlXor(num17, 44, num19);
|
|
num19 = num12;
|
|
num17 = num5;
|
|
num = num24;
|
|
ulong num25 = ThreefishEngine.RotlXor(num17, 9, num19);
|
|
num19 = num25;
|
|
num3 = ThreefishEngine.RotlXor(num17, 54, num19);
|
|
num17 = num2;
|
|
num19 += num2;
|
|
num5 = ThreefishEngine.RotlXor(num17, 56, num19);
|
|
int length2 = kw.Length;
|
|
int num26 = num9 + 1;
|
|
ulong num27 = kw[num26];
|
|
ulong num28 = kw[num26];
|
|
int length3 = t.Length;
|
|
ulong num29 = kw[num26];
|
|
num3 += num29;
|
|
ulong num30 = kw[(int)num29];
|
|
int num31 = num11 + 1;
|
|
ulong num32 = t[num31];
|
|
ulong num33 = kw[num31];
|
|
num33 += (ulong)num10;
|
|
ulong num34 = kw[num9];
|
|
num34 += num12;
|
|
num34 += num;
|
|
ulong num35 = ThreefishEngine.RotlXor(num, 39, num34);
|
|
num27 += num5;
|
|
num = num5;
|
|
num34 = num27;
|
|
num12 = num35;
|
|
ulong num36 = ThreefishEngine.RotlXor(num, 30, num34);
|
|
num19 += num28;
|
|
num19 += num3;
|
|
num = num3;
|
|
num34 = num19;
|
|
ulong num37 = ThreefishEngine.RotlXor(num, 34, num34);
|
|
num30 += num32;
|
|
num28 = num37;
|
|
num34 = num30;
|
|
ulong num38 = ThreefishEngine.RotlXor(num25, 24, num34);
|
|
num5 = num38;
|
|
num25 = num12;
|
|
num34 = num38;
|
|
ulong num39 = ThreefishEngine.RotlXor(num25, 13, num34);
|
|
num19 += num5;
|
|
num34 = num19;
|
|
num25 = num5;
|
|
num12 = num39;
|
|
ulong num40 = ThreefishEngine.RotlXor(num25, 50, num34);
|
|
num30 += num28;
|
|
num34 = num30;
|
|
num25 = num28;
|
|
num32 = num40;
|
|
num28 = ThreefishEngine.RotlXor(num25, 10, num34);
|
|
ulong num41 = ThreefishEngine.RotlXor(num36, 17, num34);
|
|
num5 = num41;
|
|
num36 = num12;
|
|
num34 = num41;
|
|
num12 = ThreefishEngine.RotlXor(num36, 25, num34);
|
|
num34 = num19;
|
|
num36 = num5;
|
|
ulong num42 = ThreefishEngine.RotlXor(num36, 29, num34);
|
|
num36 = num28;
|
|
num34 = num30;
|
|
ulong num43 = ThreefishEngine.RotlXor(num36, 39, num34);
|
|
num38 += num32;
|
|
num36 = num32;
|
|
num34 = num38;
|
|
num28 = num43;
|
|
ulong num44 = ThreefishEngine.RotlXor(num36, 43, num34);
|
|
num5 = num44;
|
|
num36 = num12;
|
|
num34 = num44;
|
|
ulong num45 = ThreefishEngine.RotlXor(num36, 8, num34);
|
|
num34 = num12;
|
|
num36 = num5;
|
|
ulong num46 = ThreefishEngine.RotlXor(num36, 35, num34);
|
|
num36 = num28;
|
|
num34 = num5;
|
|
num38 = ThreefishEngine.RotlXor(num36, 56, num34);
|
|
num34 = num41;
|
|
ulong num47 = ThreefishEngine.RotlXor(num42, 22, num34);
|
|
int length4 = kw.Length;
|
|
ulong num48 = kw[num26];
|
|
num48 += num12;
|
|
ulong num49 = kw[num26];
|
|
num49 += num5;
|
|
ulong num50 = kw[num26];
|
|
num41 += num50;
|
|
int num51 = num11 + 1;
|
|
int length5 = t.Length;
|
|
ulong num52 = t[num51];
|
|
num38 += num52;
|
|
num11 += 2;
|
|
num9 += 8;
|
|
ulong num53 = kw[num9];
|
|
num53 += (ulong)num10;
|
|
num10 += (uint)2;
|
|
num46 += (ulong)1L;
|
|
num53 += num46;
|
|
if (num10 < (uint)18)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B92C RID: 47404 RVA: 0x002962E0 File Offset: 0x002944E0
|
|
[Token(Token = "0x600B92C")]
|
|
[Address(RVA = "0x1A369B0", Offset = "0x1A357B0", VA = "0x181A369B0", Slot = "5")]
|
|
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
|
{
|
|
ulong[] t;
|
|
ulong[] kw;
|
|
int[] array;
|
|
int[] mod;
|
|
do
|
|
{
|
|
t = this.t;
|
|
kw = this.kw;
|
|
array = ThreefishEngine.MOD9;
|
|
mod = ThreefishEngine.MOD3;
|
|
}
|
|
while (kw.Length != 17 || t.Length != 5);
|
|
int length = block.Length;
|
|
ulong num = block[0];
|
|
ulong num2 = block[1];
|
|
ulong num3 = block[2];
|
|
ulong num4 = block[3];
|
|
ulong num5 = block[4];
|
|
ulong num6 = block[5];
|
|
ulong num7 = block[6];
|
|
ulong num8 = block[7];
|
|
uint num10;
|
|
int num9 = array[(int)num10];
|
|
int num11 = mod[(int)num10];
|
|
int num12 = num9 + 1;
|
|
int length2 = kw.Length;
|
|
int length3 = t.Length;
|
|
int num13 = num11 + 1;
|
|
ulong num14 = t[num13];
|
|
num6 -= num14;
|
|
ulong num15;
|
|
num15 -= (ulong)num10;
|
|
ulong num16 = t[mod];
|
|
num7 -= num16;
|
|
ulong num17 = ThreefishEngine.XorRotr(num2, 8, num7);
|
|
num7 -= num17;
|
|
num7 = num;
|
|
num2 = num17;
|
|
ulong num18 = ThreefishEngine.XorRotr(num8, 35, num7);
|
|
num -= num18;
|
|
num7 = num3;
|
|
num6 = num18;
|
|
ulong num19 = ThreefishEngine.XorRotr(num6, 56, num7);
|
|
num3 -= num19;
|
|
num7 = num19;
|
|
ulong num20 = ThreefishEngine.XorRotr(num4, 22, num7);
|
|
num5 -= num20;
|
|
num7 = num5;
|
|
num4 = num2;
|
|
num3 = num20;
|
|
ulong num21 = ThreefishEngine.XorRotr(num4, 25, num7);
|
|
num5 -= num21;
|
|
num4 = num3;
|
|
num2 = num21;
|
|
ulong num22 = ThreefishEngine.XorRotr(num4, 29, num7);
|
|
num7 = num;
|
|
num4 = num7;
|
|
num = num22;
|
|
ulong num23 = ThreefishEngine.XorRotr(num4, 39, num7);
|
|
num -= num23;
|
|
num4 = num6;
|
|
num7 = num23;
|
|
num = ThreefishEngine.XorRotr(num4, 43, num3);
|
|
num4 = num2;
|
|
num3 -= num;
|
|
ulong num24 = ThreefishEngine.XorRotr(num4, 13, num3);
|
|
num3 = num5;
|
|
num4 = num;
|
|
num6 = num24;
|
|
num5 = ThreefishEngine.XorRotr(num4, 50, num3);
|
|
num4 = num7;
|
|
ulong num25 = ThreefishEngine.XorRotr(num4, 10, num7);
|
|
num4 = num;
|
|
num2 = num25;
|
|
num7 -= num25;
|
|
ulong num26 = ThreefishEngine.XorRotr(num4, 17, num);
|
|
num -= num26;
|
|
num4 = num6;
|
|
num = num26;
|
|
ulong num27 = ThreefishEngine.XorRotr(num4, 39, num);
|
|
num = num3;
|
|
num4 = num;
|
|
ulong num28 = ThreefishEngine.XorRotr(num4, 30, num);
|
|
num = num5;
|
|
num4 = num2;
|
|
ulong num29 = ThreefishEngine.XorRotr(num4, 34, num);
|
|
num = num7;
|
|
num4 = num5;
|
|
num2 = num29;
|
|
ulong num30 = ThreefishEngine.XorRotr(num4, 24, num);
|
|
int length4 = kw.Length;
|
|
num5 = num30;
|
|
ulong num31 = kw[num9];
|
|
int num32 = num9 + 1;
|
|
num31 += num27;
|
|
num -= num31;
|
|
ulong num33 = kw[(int)num30];
|
|
num3 -= num33;
|
|
ulong num34 = kw[(int)num33];
|
|
ulong num35 = kw[(int)num34];
|
|
num35 += num2;
|
|
num5 -= num35;
|
|
ulong num36 = kw[(int)num35];
|
|
int length5 = t.Length;
|
|
ulong num37 = t[num11];
|
|
num11++;
|
|
ulong num38 = t[num11];
|
|
num38 += num5;
|
|
ulong num39 = kw[(int)num5];
|
|
num7 -= num38;
|
|
ulong num40 = ThreefishEngine.XorRotr(num27, 44, num7);
|
|
num7 -= num40;
|
|
num5 -= num39;
|
|
num7 = num;
|
|
num27 = num5;
|
|
num2 = num40;
|
|
ulong num41 = ThreefishEngine.XorRotr(num27, 9, num7);
|
|
num7 = num3;
|
|
num5 = num41;
|
|
num -= num41;
|
|
ulong num42 = ThreefishEngine.XorRotr(num29, 54, num7);
|
|
num3 -= num42;
|
|
num7 = num42;
|
|
ulong num43 = ThreefishEngine.XorRotr(num28, 56, num7);
|
|
num5 -= num43;
|
|
num7 = num5;
|
|
num28 = num2;
|
|
num39 = num43;
|
|
ulong num44 = ThreefishEngine.XorRotr(num28, 17, num7);
|
|
num28 = num39;
|
|
num2 = num44;
|
|
num5 -= num44;
|
|
ulong num45 = ThreefishEngine.XorRotr(num28, 49, num7);
|
|
num7 = num;
|
|
num28 = num7;
|
|
num3 = num45;
|
|
ulong num46 = ThreefishEngine.XorRotr(num28, 36, num7);
|
|
num28 = num5;
|
|
num7 = num46;
|
|
num -= num46;
|
|
ulong num47 = ThreefishEngine.XorRotr(num28, 39, num3);
|
|
num3 -= num47;
|
|
num28 = num2;
|
|
num39 = num47;
|
|
ulong num48 = ThreefishEngine.XorRotr(num28, 33, num3);
|
|
num3 -= num48;
|
|
num2 = num48;
|
|
num3 = num5;
|
|
num28 = num39;
|
|
ulong num49 = ThreefishEngine.XorRotr(num28, 27, num3);
|
|
num28 = num7;
|
|
num3 = num49;
|
|
num5 -= num49;
|
|
ulong num50 = ThreefishEngine.XorRotr(num28, 14, num3);
|
|
num7 -= num50;
|
|
num3 = num;
|
|
num28 = num3;
|
|
ulong num51 = ThreefishEngine.XorRotr(num28, 42, num3);
|
|
num -= num51;
|
|
num3 = num;
|
|
num28 = num2;
|
|
num7 = num51;
|
|
ulong num52 = ThreefishEngine.XorRotr(num28, 46, num3);
|
|
num28 = num7;
|
|
num -= num52;
|
|
ulong num53 = ThreefishEngine.XorRotr(num28, 36, num3);
|
|
num3 = num5;
|
|
num28 = num7;
|
|
num3 -= num53;
|
|
ulong num54 = ThreefishEngine.XorRotr(num28, 19, num3);
|
|
num3 = num7;
|
|
num28 = num3;
|
|
num3 = num54;
|
|
num5 -= num54;
|
|
ulong num55 = ThreefishEngine.XorRotr(num28, 37, num3);
|
|
num7 -= num55;
|
|
num3 = num5;
|
|
int length6 = kw.Length;
|
|
ulong num56 = kw[1];
|
|
ulong num57 = kw[2];
|
|
ulong num58 = kw[3];
|
|
ulong num59 = kw[4];
|
|
ulong num60 = kw[5];
|
|
int length7 = t.Length;
|
|
ulong num61 = t[0];
|
|
ulong num62 = kw[6];
|
|
ulong num63 = t[1];
|
|
ulong num64 = kw[7];
|
|
num5 -= num59;
|
|
num3 -= num61;
|
|
num7 -= num63;
|
|
num7 -= num62;
|
|
array -= num64;
|
|
}
|
|
|
|
// Token: 0x04007568 RID: 30056
|
|
[Token(Token = "0x4007568")]
|
|
private const int ROTATION_0_0 = 46;
|
|
|
|
// Token: 0x04007569 RID: 30057
|
|
[Token(Token = "0x4007569")]
|
|
private const int ROTATION_0_1 = 36;
|
|
|
|
// Token: 0x0400756A RID: 30058
|
|
[Token(Token = "0x400756A")]
|
|
private const int ROTATION_0_2 = 19;
|
|
|
|
// Token: 0x0400756B RID: 30059
|
|
[Token(Token = "0x400756B")]
|
|
private const int ROTATION_0_3 = 37;
|
|
|
|
// Token: 0x0400756C RID: 30060
|
|
[Token(Token = "0x400756C")]
|
|
private const int ROTATION_1_0 = 33;
|
|
|
|
// Token: 0x0400756D RID: 30061
|
|
[Token(Token = "0x400756D")]
|
|
private const int ROTATION_1_1 = 27;
|
|
|
|
// Token: 0x0400756E RID: 30062
|
|
[Token(Token = "0x400756E")]
|
|
private const int ROTATION_1_2 = 14;
|
|
|
|
// Token: 0x0400756F RID: 30063
|
|
[Token(Token = "0x400756F")]
|
|
private const int ROTATION_1_3 = 42;
|
|
|
|
// Token: 0x04007570 RID: 30064
|
|
[Token(Token = "0x4007570")]
|
|
private const int ROTATION_2_0 = 17;
|
|
|
|
// Token: 0x04007571 RID: 30065
|
|
[Token(Token = "0x4007571")]
|
|
private const int ROTATION_2_1 = 49;
|
|
|
|
// Token: 0x04007572 RID: 30066
|
|
[Token(Token = "0x4007572")]
|
|
private const int ROTATION_2_2 = 36;
|
|
|
|
// Token: 0x04007573 RID: 30067
|
|
[Token(Token = "0x4007573")]
|
|
private const int ROTATION_2_3 = 39;
|
|
|
|
// Token: 0x04007574 RID: 30068
|
|
[Token(Token = "0x4007574")]
|
|
private const int ROTATION_3_0 = 44;
|
|
|
|
// Token: 0x04007575 RID: 30069
|
|
[Token(Token = "0x4007575")]
|
|
private const int ROTATION_3_1 = 9;
|
|
|
|
// Token: 0x04007576 RID: 30070
|
|
[Token(Token = "0x4007576")]
|
|
private const int ROTATION_3_2 = 54;
|
|
|
|
// Token: 0x04007577 RID: 30071
|
|
[Token(Token = "0x4007577")]
|
|
private const int ROTATION_3_3 = 56;
|
|
|
|
// Token: 0x04007578 RID: 30072
|
|
[Token(Token = "0x4007578")]
|
|
private const int ROTATION_4_0 = 39;
|
|
|
|
// Token: 0x04007579 RID: 30073
|
|
[Token(Token = "0x4007579")]
|
|
private const int ROTATION_4_1 = 30;
|
|
|
|
// Token: 0x0400757A RID: 30074
|
|
[Token(Token = "0x400757A")]
|
|
private const int ROTATION_4_2 = 34;
|
|
|
|
// Token: 0x0400757B RID: 30075
|
|
[Token(Token = "0x400757B")]
|
|
private const int ROTATION_4_3 = 24;
|
|
|
|
// Token: 0x0400757C RID: 30076
|
|
[Token(Token = "0x400757C")]
|
|
private const int ROTATION_5_0 = 13;
|
|
|
|
// Token: 0x0400757D RID: 30077
|
|
[Token(Token = "0x400757D")]
|
|
private const int ROTATION_5_1 = 50;
|
|
|
|
// Token: 0x0400757E RID: 30078
|
|
[Token(Token = "0x400757E")]
|
|
private const int ROTATION_5_2 = 10;
|
|
|
|
// Token: 0x0400757F RID: 30079
|
|
[Token(Token = "0x400757F")]
|
|
private const int ROTATION_5_3 = 17;
|
|
|
|
// Token: 0x04007580 RID: 30080
|
|
[Token(Token = "0x4007580")]
|
|
private const int ROTATION_6_0 = 25;
|
|
|
|
// Token: 0x04007581 RID: 30081
|
|
[Token(Token = "0x4007581")]
|
|
private const int ROTATION_6_1 = 29;
|
|
|
|
// Token: 0x04007582 RID: 30082
|
|
[Token(Token = "0x4007582")]
|
|
private const int ROTATION_6_2 = 39;
|
|
|
|
// Token: 0x04007583 RID: 30083
|
|
[Token(Token = "0x4007583")]
|
|
private const int ROTATION_6_3 = 43;
|
|
|
|
// Token: 0x04007584 RID: 30084
|
|
[Token(Token = "0x4007584")]
|
|
private const int ROTATION_7_0 = 8;
|
|
|
|
// Token: 0x04007585 RID: 30085
|
|
[Token(Token = "0x4007585")]
|
|
private const int ROTATION_7_1 = 35;
|
|
|
|
// Token: 0x04007586 RID: 30086
|
|
[Token(Token = "0x4007586")]
|
|
private const int ROTATION_7_2 = 56;
|
|
|
|
// Token: 0x04007587 RID: 30087
|
|
[Token(Token = "0x4007587")]
|
|
private const int ROTATION_7_3 = 22;
|
|
}
|
|
|
|
// Token: 0x02001CB5 RID: 7349
|
|
[Token(Token = "0x2001CB5")]
|
|
private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher
|
|
{
|
|
// Token: 0x0600B92D RID: 47405 RVA: 0x0029685C File Offset: 0x00294A5C
|
|
[Token(Token = "0x600B92D")]
|
|
[Address(RVA = "0x1E0B8B0", Offset = "0x1E0A6B0", VA = "0x181E0B8B0")]
|
|
public Threefish1024Cipher(ulong[] kw, ulong[] t)
|
|
: base(kw, t)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600B92E RID: 47406 RVA: 0x00296874 File Offset: 0x00294A74
|
|
[Token(Token = "0x600B92E")]
|
|
[Address(RVA = "0x1E0A400", Offset = "0x1E09200", VA = "0x181E0A400", Slot = "4")]
|
|
internal override void EncryptBlock(ulong[] block, ulong[] outWords)
|
|
{
|
|
ulong[] array;
|
|
ulong[] array2;
|
|
int[] array3;
|
|
int[] array4;
|
|
do
|
|
{
|
|
array = this.kw;
|
|
array2 = this.t;
|
|
array3 = ThreefishEngine.MOD17;
|
|
array4 = ThreefishEngine.MOD3;
|
|
}
|
|
while (array.Length != 33 || array2.Length != 5);
|
|
ulong num = array2[0];
|
|
ulong num2 = array2[1];
|
|
array4 += num2;
|
|
uint num4;
|
|
int num3 = array3[(int)num4];
|
|
int num5 = array4[(int)num4];
|
|
array += typeof(ThreefishEngine).TypeHandle;
|
|
array4 += this;
|
|
array += this;
|
|
array4 += array4;
|
|
array3 += array4;
|
|
int length = array.Length;
|
|
int num6 = num3 + 1;
|
|
int length2 = array2.Length;
|
|
int num7 = num5 + 1;
|
|
num3 += 15;
|
|
array3 += num4;
|
|
ulong num8 = array[num3];
|
|
num8 += this;
|
|
ulong num9 = array[num6];
|
|
array3 += num9;
|
|
array3 += this;
|
|
ulong num10 = array[array4];
|
|
array4 += num10;
|
|
array4 += this;
|
|
ulong num11 = array[this];
|
|
array4 += num11;
|
|
array4 += array4;
|
|
ulong num12 = array[this];
|
|
ulong num13 = array[this];
|
|
array += num12;
|
|
num13 += array4;
|
|
ulong num14 = array[this];
|
|
array2 += array3;
|
|
array += this;
|
|
num13 += this;
|
|
array4 += array4;
|
|
ulong num15 = array[num6];
|
|
ulong num16 = array[array4];
|
|
num16 += array3;
|
|
ulong num17 = array[array4];
|
|
num17 += array4;
|
|
ulong num18 = array[this];
|
|
ulong num19 = array[this];
|
|
num19 += num8;
|
|
ulong num20 = array[this];
|
|
ulong num21 = array[this];
|
|
num21 += this;
|
|
num5++;
|
|
int length3 = array2.Length;
|
|
num5 += 2;
|
|
ulong num22 = array2[num5];
|
|
num4 += (uint)1;
|
|
num4 += array3;
|
|
num4 += (uint)2;
|
|
}
|
|
|
|
// Token: 0x0600B92F RID: 47407 RVA: 0x00296A30 File Offset: 0x00294C30
|
|
[Token(Token = "0x600B92F")]
|
|
[Address(RVA = "0x1E08CB0", Offset = "0x1E07AB0", VA = "0x181E08CB0", Slot = "5")]
|
|
internal override void DecryptBlock(ulong[] block, ulong[] state)
|
|
{
|
|
ulong[] t;
|
|
ulong[] kw;
|
|
int[] mod;
|
|
int[] mod2;
|
|
do
|
|
{
|
|
t = this.t;
|
|
kw = this.kw;
|
|
mod = ThreefishEngine.MOD17;
|
|
mod2 = ThreefishEngine.MOD3;
|
|
}
|
|
while (kw.Length != 33 || t.Length != 5);
|
|
int length = block.Length;
|
|
ulong num = block[1];
|
|
ulong num2 = block[2];
|
|
ulong num3 = block[3];
|
|
ulong num4 = block[5];
|
|
ulong num5 = block[6];
|
|
ulong num6 = block[7];
|
|
ulong num7 = block[8];
|
|
ulong num8 = block[9];
|
|
ulong num9 = block[10];
|
|
ulong num10 = block[11];
|
|
ulong num11 = block[12];
|
|
ulong num12 = block[13];
|
|
ulong num13 = block[14];
|
|
ulong num14 = block[15];
|
|
uint num16;
|
|
int num15 = mod[(int)num16];
|
|
int num17 = mod2[(int)num16];
|
|
int num18 = num15 + 1;
|
|
num17++;
|
|
ulong num19 = t[num17];
|
|
num17 += 2;
|
|
ulong num20 = t[num17];
|
|
num13 -= num20;
|
|
num14 -= (ulong)num16;
|
|
num2 -= num10;
|
|
num13 = num12;
|
|
num5 -= num13;
|
|
num14 = num8;
|
|
num8 = num7;
|
|
num13 -= num8;
|
|
num5 = num8;
|
|
num8 = num9;
|
|
num7 -= num5;
|
|
num7 = num8;
|
|
num8 = num11;
|
|
num9 -= num7;
|
|
num13 = num8;
|
|
num11 -= num13;
|
|
num11 = num13;
|
|
num2 -= num5;
|
|
num5 -= num5;
|
|
num8 = num14;
|
|
num11 -= num8;
|
|
num5 = num10;
|
|
num11 = num13;
|
|
num7 = num11;
|
|
num7 -= num5;
|
|
num13 -= num7;
|
|
num13 = num9;
|
|
num9 -= num13;
|
|
num7 = num13;
|
|
num10 = num7;
|
|
num2 -= num10;
|
|
num5 -= num5;
|
|
num14 = num8;
|
|
num9 = num11;
|
|
num5 = num9;
|
|
num11 -= num5;
|
|
num9 = num13;
|
|
num7 = num9;
|
|
num13 -= num7;
|
|
num9 = num7;
|
|
num13 = num9;
|
|
num7 -= num13;
|
|
num5 = num13;
|
|
num9 = num14;
|
|
int length2 = kw.Length;
|
|
ulong num21 = kw[num15];
|
|
num21 += num5;
|
|
int num22 = num15 + 1;
|
|
ulong num23 = kw[num22];
|
|
num23 += num5;
|
|
num2 -= num23;
|
|
ulong num24 = kw[(int)num23];
|
|
ulong num25 = kw[(int)num24];
|
|
num5 -= num25;
|
|
ulong num26 = kw[(int)num25];
|
|
num7 -= num26;
|
|
ulong num27 = kw[(int)num26];
|
|
num9 -= num27;
|
|
ulong num28 = kw[(int)num27];
|
|
num28 += num10;
|
|
num11 -= num28;
|
|
int length3 = t.Length;
|
|
num17++;
|
|
ulong num29 = t[num17];
|
|
num15 += 15;
|
|
num29 += num9;
|
|
num13 -= num29;
|
|
num9 -= (ulong)num16;
|
|
num2 -= num9;
|
|
num5 -= num10;
|
|
num13 -= num5;
|
|
num5 = num9;
|
|
num7 -= num5;
|
|
num9 = num5;
|
|
num9 -= num9;
|
|
num25 = num9;
|
|
num11 -= num25;
|
|
num9 = num5;
|
|
num11 = num9;
|
|
num2 -= num9;
|
|
num2 = num5;
|
|
num5 -= num2;
|
|
num5 = num13;
|
|
num13 -= num5;
|
|
num5 = num9;
|
|
num7 -= num5;
|
|
num13 = num9;
|
|
num9 -= num13;
|
|
num9 = num5;
|
|
num2 -= num9;
|
|
num5 -= num5;
|
|
num9 = num11;
|
|
num11 = num9;
|
|
num9 = num11;
|
|
num9 -= num11;
|
|
num5 = num9;
|
|
num9 = num13;
|
|
num11 -= num5;
|
|
num5 = num9;
|
|
num9 = num7;
|
|
num13 -= num5;
|
|
num11 = num9;
|
|
num7 -= num11;
|
|
num9 = num5;
|
|
num2 -= num9;
|
|
num5 -= num11;
|
|
num11 = num9;
|
|
num2 = num9;
|
|
num7 -= num11;
|
|
num11 = num5;
|
|
num13 -= num2;
|
|
num5 = num9;
|
|
num5 -= num11;
|
|
num11 -= num9;
|
|
while (num16 >= (uint)1)
|
|
{
|
|
}
|
|
ulong num30 = kw[1];
|
|
ulong num31 = kw[2];
|
|
ulong num32 = kw[3];
|
|
ulong num33 = kw[4];
|
|
ulong num34 = kw[5];
|
|
ulong num35 = kw[6];
|
|
ulong num36 = kw[7];
|
|
ulong num37 = kw[8];
|
|
ulong num38 = kw[9];
|
|
ulong num39 = kw[10];
|
|
ulong num40 = kw[11];
|
|
ulong num41 = kw[12];
|
|
ulong num42 = kw[13];
|
|
int length4 = t.Length;
|
|
ulong num43 = t[0];
|
|
ulong num44 = kw[14];
|
|
ulong num45 = t[1];
|
|
ulong num46 = kw[15];
|
|
num13 -= num45;
|
|
num13 -= num44;
|
|
num2 -= num46;
|
|
}
|
|
|
|
// Token: 0x04007588 RID: 30088
|
|
[Token(Token = "0x4007588")]
|
|
private const int ROTATION_0_0 = 24;
|
|
|
|
// Token: 0x04007589 RID: 30089
|
|
[Token(Token = "0x4007589")]
|
|
private const int ROTATION_0_1 = 13;
|
|
|
|
// Token: 0x0400758A RID: 30090
|
|
[Token(Token = "0x400758A")]
|
|
private const int ROTATION_0_2 = 8;
|
|
|
|
// Token: 0x0400758B RID: 30091
|
|
[Token(Token = "0x400758B")]
|
|
private const int ROTATION_0_3 = 47;
|
|
|
|
// Token: 0x0400758C RID: 30092
|
|
[Token(Token = "0x400758C")]
|
|
private const int ROTATION_0_4 = 8;
|
|
|
|
// Token: 0x0400758D RID: 30093
|
|
[Token(Token = "0x400758D")]
|
|
private const int ROTATION_0_5 = 17;
|
|
|
|
// Token: 0x0400758E RID: 30094
|
|
[Token(Token = "0x400758E")]
|
|
private const int ROTATION_0_6 = 22;
|
|
|
|
// Token: 0x0400758F RID: 30095
|
|
[Token(Token = "0x400758F")]
|
|
private const int ROTATION_0_7 = 37;
|
|
|
|
// Token: 0x04007590 RID: 30096
|
|
[Token(Token = "0x4007590")]
|
|
private const int ROTATION_1_0 = 38;
|
|
|
|
// Token: 0x04007591 RID: 30097
|
|
[Token(Token = "0x4007591")]
|
|
private const int ROTATION_1_1 = 19;
|
|
|
|
// Token: 0x04007592 RID: 30098
|
|
[Token(Token = "0x4007592")]
|
|
private const int ROTATION_1_2 = 10;
|
|
|
|
// Token: 0x04007593 RID: 30099
|
|
[Token(Token = "0x4007593")]
|
|
private const int ROTATION_1_3 = 55;
|
|
|
|
// Token: 0x04007594 RID: 30100
|
|
[Token(Token = "0x4007594")]
|
|
private const int ROTATION_1_4 = 49;
|
|
|
|
// Token: 0x04007595 RID: 30101
|
|
[Token(Token = "0x4007595")]
|
|
private const int ROTATION_1_5 = 18;
|
|
|
|
// Token: 0x04007596 RID: 30102
|
|
[Token(Token = "0x4007596")]
|
|
private const int ROTATION_1_6 = 23;
|
|
|
|
// Token: 0x04007597 RID: 30103
|
|
[Token(Token = "0x4007597")]
|
|
private const int ROTATION_1_7 = 52;
|
|
|
|
// Token: 0x04007598 RID: 30104
|
|
[Token(Token = "0x4007598")]
|
|
private const int ROTATION_2_0 = 33;
|
|
|
|
// Token: 0x04007599 RID: 30105
|
|
[Token(Token = "0x4007599")]
|
|
private const int ROTATION_2_1 = 4;
|
|
|
|
// Token: 0x0400759A RID: 30106
|
|
[Token(Token = "0x400759A")]
|
|
private const int ROTATION_2_2 = 51;
|
|
|
|
// Token: 0x0400759B RID: 30107
|
|
[Token(Token = "0x400759B")]
|
|
private const int ROTATION_2_3 = 13;
|
|
|
|
// Token: 0x0400759C RID: 30108
|
|
[Token(Token = "0x400759C")]
|
|
private const int ROTATION_2_4 = 34;
|
|
|
|
// Token: 0x0400759D RID: 30109
|
|
[Token(Token = "0x400759D")]
|
|
private const int ROTATION_2_5 = 41;
|
|
|
|
// Token: 0x0400759E RID: 30110
|
|
[Token(Token = "0x400759E")]
|
|
private const int ROTATION_2_6 = 59;
|
|
|
|
// Token: 0x0400759F RID: 30111
|
|
[Token(Token = "0x400759F")]
|
|
private const int ROTATION_2_7 = 17;
|
|
|
|
// Token: 0x040075A0 RID: 30112
|
|
[Token(Token = "0x40075A0")]
|
|
private const int ROTATION_3_0 = 5;
|
|
|
|
// Token: 0x040075A1 RID: 30113
|
|
[Token(Token = "0x40075A1")]
|
|
private const int ROTATION_3_1 = 20;
|
|
|
|
// Token: 0x040075A2 RID: 30114
|
|
[Token(Token = "0x40075A2")]
|
|
private const int ROTATION_3_2 = 48;
|
|
|
|
// Token: 0x040075A3 RID: 30115
|
|
[Token(Token = "0x40075A3")]
|
|
private const int ROTATION_3_3 = 41;
|
|
|
|
// Token: 0x040075A4 RID: 30116
|
|
[Token(Token = "0x40075A4")]
|
|
private const int ROTATION_3_4 = 47;
|
|
|
|
// Token: 0x040075A5 RID: 30117
|
|
[Token(Token = "0x40075A5")]
|
|
private const int ROTATION_3_5 = 28;
|
|
|
|
// Token: 0x040075A6 RID: 30118
|
|
[Token(Token = "0x40075A6")]
|
|
private const int ROTATION_3_6 = 16;
|
|
|
|
// Token: 0x040075A7 RID: 30119
|
|
[Token(Token = "0x40075A7")]
|
|
private const int ROTATION_3_7 = 25;
|
|
|
|
// Token: 0x040075A8 RID: 30120
|
|
[Token(Token = "0x40075A8")]
|
|
private const int ROTATION_4_0 = 41;
|
|
|
|
// Token: 0x040075A9 RID: 30121
|
|
[Token(Token = "0x40075A9")]
|
|
private const int ROTATION_4_1 = 9;
|
|
|
|
// Token: 0x040075AA RID: 30122
|
|
[Token(Token = "0x40075AA")]
|
|
private const int ROTATION_4_2 = 37;
|
|
|
|
// Token: 0x040075AB RID: 30123
|
|
[Token(Token = "0x40075AB")]
|
|
private const int ROTATION_4_3 = 31;
|
|
|
|
// Token: 0x040075AC RID: 30124
|
|
[Token(Token = "0x40075AC")]
|
|
private const int ROTATION_4_4 = 12;
|
|
|
|
// Token: 0x040075AD RID: 30125
|
|
[Token(Token = "0x40075AD")]
|
|
private const int ROTATION_4_5 = 47;
|
|
|
|
// Token: 0x040075AE RID: 30126
|
|
[Token(Token = "0x40075AE")]
|
|
private const int ROTATION_4_6 = 44;
|
|
|
|
// Token: 0x040075AF RID: 30127
|
|
[Token(Token = "0x40075AF")]
|
|
private const int ROTATION_4_7 = 30;
|
|
|
|
// Token: 0x040075B0 RID: 30128
|
|
[Token(Token = "0x40075B0")]
|
|
private const int ROTATION_5_0 = 16;
|
|
|
|
// Token: 0x040075B1 RID: 30129
|
|
[Token(Token = "0x40075B1")]
|
|
private const int ROTATION_5_1 = 34;
|
|
|
|
// Token: 0x040075B2 RID: 30130
|
|
[Token(Token = "0x40075B2")]
|
|
private const int ROTATION_5_2 = 56;
|
|
|
|
// Token: 0x040075B3 RID: 30131
|
|
[Token(Token = "0x40075B3")]
|
|
private const int ROTATION_5_3 = 51;
|
|
|
|
// Token: 0x040075B4 RID: 30132
|
|
[Token(Token = "0x40075B4")]
|
|
private const int ROTATION_5_4 = 4;
|
|
|
|
// Token: 0x040075B5 RID: 30133
|
|
[Token(Token = "0x40075B5")]
|
|
private const int ROTATION_5_5 = 53;
|
|
|
|
// Token: 0x040075B6 RID: 30134
|
|
[Token(Token = "0x40075B6")]
|
|
private const int ROTATION_5_6 = 42;
|
|
|
|
// Token: 0x040075B7 RID: 30135
|
|
[Token(Token = "0x40075B7")]
|
|
private const int ROTATION_5_7 = 41;
|
|
|
|
// Token: 0x040075B8 RID: 30136
|
|
[Token(Token = "0x40075B8")]
|
|
private const int ROTATION_6_0 = 31;
|
|
|
|
// Token: 0x040075B9 RID: 30137
|
|
[Token(Token = "0x40075B9")]
|
|
private const int ROTATION_6_1 = 44;
|
|
|
|
// Token: 0x040075BA RID: 30138
|
|
[Token(Token = "0x40075BA")]
|
|
private const int ROTATION_6_2 = 47;
|
|
|
|
// Token: 0x040075BB RID: 30139
|
|
[Token(Token = "0x40075BB")]
|
|
private const int ROTATION_6_3 = 46;
|
|
|
|
// Token: 0x040075BC RID: 30140
|
|
[Token(Token = "0x40075BC")]
|
|
private const int ROTATION_6_4 = 19;
|
|
|
|
// Token: 0x040075BD RID: 30141
|
|
[Token(Token = "0x40075BD")]
|
|
private const int ROTATION_6_5 = 42;
|
|
|
|
// Token: 0x040075BE RID: 30142
|
|
[Token(Token = "0x40075BE")]
|
|
private const int ROTATION_6_6 = 44;
|
|
|
|
// Token: 0x040075BF RID: 30143
|
|
[Token(Token = "0x40075BF")]
|
|
private const int ROTATION_6_7 = 25;
|
|
|
|
// Token: 0x040075C0 RID: 30144
|
|
[Token(Token = "0x40075C0")]
|
|
private const int ROTATION_7_0 = 9;
|
|
|
|
// Token: 0x040075C1 RID: 30145
|
|
[Token(Token = "0x40075C1")]
|
|
private const int ROTATION_7_1 = 48;
|
|
|
|
// Token: 0x040075C2 RID: 30146
|
|
[Token(Token = "0x40075C2")]
|
|
private const int ROTATION_7_2 = 35;
|
|
|
|
// Token: 0x040075C3 RID: 30147
|
|
[Token(Token = "0x40075C3")]
|
|
private const int ROTATION_7_3 = 52;
|
|
|
|
// Token: 0x040075C4 RID: 30148
|
|
[Token(Token = "0x40075C4")]
|
|
private const int ROTATION_7_4 = 23;
|
|
|
|
// Token: 0x040075C5 RID: 30149
|
|
[Token(Token = "0x40075C5")]
|
|
private const int ROTATION_7_5 = 31;
|
|
|
|
// Token: 0x040075C6 RID: 30150
|
|
[Token(Token = "0x40075C6")]
|
|
private const int ROTATION_7_6 = 37;
|
|
|
|
// Token: 0x040075C7 RID: 30151
|
|
[Token(Token = "0x40075C7")]
|
|
private const int ROTATION_7_7 = 20;
|
|
}
|
|
}
|
|
}
|