using System; using System.Runtime.InteropServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x020016D4 RID: 5844 [Token(Token = "0x20016D4")] [StructLayout(3)] public class ThreefishEngine : IBlockCipher { // Token: 0x06009D3A RID: 40250 RVA: 0x0023D938 File Offset: 0x0023BB38 [Token(Token = "0x6009D3A")] [Address(RVA = "0x2111FC0", Offset = "0x21109C0", VA = "0x182111FC0")] static ThreefishEngine() { int[] array = new int[ThreefishEngine.MOD9.Length]; int num = 0; ThreefishEngine.MOD3 = array; int[] mod = ThreefishEngine.MOD9; if (num < mod.Length) { int[] mod2 = ThreefishEngine.MOD17; ulong num2; num2 += num2; long num3 = (long)(num2 * (ulong)((uint)17)); num = (int)((long)num - num3); int[] mod3 = ThreefishEngine.MOD9; ulong num4; num4 += num4; num = (int)((ulong)num - num4); int[] mod4 = ThreefishEngine.MOD5; ulong num5; num5 += num5; num = (int)((ulong)num - num5); int[] mod5 = ThreefishEngine.MOD3; num++; int[] mod6 = ThreefishEngine.MOD9; } } // Token: 0x06009D3B RID: 40251 RVA: 0x0023D9FC File Offset: 0x0023BBFC [Token(Token = "0x6009D3B")] [Address(RVA = "0x2112240", Offset = "0x2110C40", VA = "0x182112240")] public ThreefishEngine(int blocksizeBits) { /* An exception occurred when decompiling this method (06009D3B) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::.ctor(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_86: stloc:ArgumentException(var_8_90, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid blocksize - Threefish is defined with block size of 256, 512, or 1024 bits"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009D3C RID: 40252 RVA: 0x0023DA9C File Offset: 0x0023BC9C [Token(Token = "0x6009D3C")] [Address(RVA = "0x2111100", Offset = "0x210FB00", VA = "0x182111100", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (06009D3C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_E2: stloc:ArgumentException(var_18_F8, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish key must be same size as block ("), ldloc:ArgumentException[exp:object](var_17), ldstr:string[exp:object](" bytes)")))) stloc:ArgumentException(var_21_110, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Threefish tweak must be "), ldloc:int32[exp:object](var_20), ldstr:string[exp:object](" bytes")))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009D3D RID: 40253 RVA: 0x0023DBBC File Offset: 0x0023BDBC [Token(Token = "0x6009D3D")] [Address(RVA = "0x21110B0", Offset = "0x210FAB0", VA = "0x1821110B0")] internal void Init(bool forEncryption, ulong[] key, ulong[] tweak) { this.forEncryption = forEncryption; if (key != 0) { this.SetKey(key); } if (tweak != 0) { this.SetTweak(tweak); } } // Token: 0x06009D3E RID: 40254 RVA: 0x0023DBE8 File Offset: 0x0023BDE8 [Token(Token = "0x6009D3E")] [Address(RVA = "0x2111A20", Offset = "0x2110420", VA = "0x182111A20")] private void SetKey(ulong[] key) { int num; do { num = this.blocksizeWords; } while (key.Length != num); ulong[] array = this.kw; int num2 = 0; if (num > 0) { ulong num3 = key[num2]; array[0] = num3; ulong[] array2 = this.kw; num2++; int num4 = this.blocksizeWords; } int num5 = 0; array[0] = (ulong)2004413935125273122L; int num6 = this.blocksizeWords; ulong[] array3 = this.kw; int num7 = num6 + 1; Array.Copy(array3, num5, array3, num7, num6); } // Token: 0x06009D3F RID: 40255 RVA: 0x0023DC78 File Offset: 0x0023BE78 [Token(Token = "0x6009D3F")] [Address(RVA = "0x2111BA0", Offset = "0x21105A0", VA = "0x182111BA0")] private void SetTweak(ulong[] tweak) { while (tweak.Length != 2) { } ulong[] array = this.t; ulong num = tweak[0]; array[0] = num; ulong[] array2 = this.t; ulong num2 = tweak[1]; array2[1] = num2; ulong[] array3 = this.t; int length = array3.Length; ulong num3 = array3[1]; array3[2] = num3; ulong[] array4 = this.t; int length2 = array4.Length; ulong num4 = array4[0]; array4[3] = num4; ulong[] array5 = this.t; int length3 = array5.Length; ulong num5 = array5[1]; array5[4] = num5; } // Token: 0x170018F7 RID: 6391 // (get) Token: 0x06009D40 RID: 40256 RVA: 0x0023DD34 File Offset: 0x0023BF34 [Token(Token = "0x170018F7")] public virtual string AlgorithmName { [Token(Token = "0x6009D40")] [Address(RVA = "0x2112380", Offset = "0x2110D80", VA = "0x182112380", Slot = "11")] get { int num = this.blocksizeBytes; return "Threefish-" + num; } } // Token: 0x170018F8 RID: 6392 // (get) Token: 0x06009D41 RID: 40257 RVA: 0x0023DD54 File Offset: 0x0023BF54 [Token(Token = "0x170018F8")] public virtual bool IsPartialBlockOkay { [Token(Token = "0x6009D41")] [Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "12")] get { } } // Token: 0x06009D42 RID: 40258 RVA: 0x0023DD64 File Offset: 0x0023BF64 [Token(Token = "0x6009D42")] [Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "13")] public virtual int GetBlockSize() { return this.blocksizeBytes; } // Token: 0x06009D43 RID: 40259 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009D43")] [Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")] public virtual void Reset() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009D44 RID: 40260 RVA: 0x0023DD78 File Offset: 0x0023BF78 [Token(Token = "0x6009D44")] [Address(RVA = "0x21116F0", Offset = "0x21100F0", VA = "0x1821116F0", Slot = "15")] public virtual int ProcessBlock(byte[] inBytes, int inOff, byte[] outBytes, int outOff) { /* An exception occurred when decompiling this method (06009D44) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_A9: stloc:DataLengthException(var_10_B3, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Input buffer too short"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009D45 RID: 40261 RVA: 0x0023DE3C File Offset: 0x0023C03C [Token(Token = "0x6009D45")] [Address(RVA = "0x2111560", Offset = "0x210FF60", VA = "0x182111560")] internal int ProcessBlock(ulong[] inWords, ulong[] outWords) { /* An exception occurred when decompiling this method (06009D45) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ThreefishEngine::ProcessBlock(System.UInt64[],System.UInt64[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_5D: stloc:DataLengthException(var_4_67, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("Output buffer too short"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x06009D46 RID: 40262 RVA: 0x0023DEB4 File Offset: 0x0023C0B4 [Token(Token = "0x6009D46")] [Address(RVA = "0x2110EB0", Offset = "0x210F8B0", VA = "0x182110EB0")] internal static ulong BytesToWord(byte[] bytes, int off) { int length = bytes.Length; int num = off + 1; throw new NullReferenceException(); } // Token: 0x06009D47 RID: 40263 RVA: 0x0023DED4 File Offset: 0x0023C0D4 [Token(Token = "0x6009D47")] [Address(RVA = "0x2111DE0", Offset = "0x21107E0", VA = "0x182111DE0")] internal static void WordToBytes(ulong word, byte[] bytes, int off) { int num = bytes.Length; int num2 = off + 1; num = off + 6; } // Token: 0x06009D48 RID: 40264 RVA: 0x0023DEF8 File Offset: 0x0023C0F8 [Token(Token = "0x6009D48")] [Address(RVA = "0x2111A00", Offset = "0x2110400", VA = "0x182111A00")] private static ulong RotlXor(ulong x, int n, ulong xor) { return x; } // Token: 0x06009D49 RID: 40265 RVA: 0x0023DF08 File Offset: 0x0023C108 [Token(Token = "0x6009D49")] [Address(RVA = "0x2111FA0", Offset = "0x21109A0", VA = "0x182111FA0")] private static ulong XorRotr(ulong x, int n, ulong xor) { return x; } // Token: 0x040066FE RID: 26366 [Token(Token = "0x40066FE")] public const int BLOCKSIZE_256 = 256; // Token: 0x040066FF RID: 26367 [Token(Token = "0x40066FF")] public const int BLOCKSIZE_512 = 512; // Token: 0x04006700 RID: 26368 [Token(Token = "0x4006700")] public const int BLOCKSIZE_1024 = 1024; // Token: 0x04006701 RID: 26369 [Token(Token = "0x4006701")] private const int TWEAK_SIZE_BYTES = 16; // Token: 0x04006702 RID: 26370 [Token(Token = "0x4006702")] private const int TWEAK_SIZE_WORDS = 2; // Token: 0x04006703 RID: 26371 [Token(Token = "0x4006703")] private const int ROUNDS_256 = 72; // Token: 0x04006704 RID: 26372 [Token(Token = "0x4006704")] private const int ROUNDS_512 = 72; // Token: 0x04006705 RID: 26373 [Token(Token = "0x4006705")] private const int ROUNDS_1024 = 80; // Token: 0x04006706 RID: 26374 [Token(Token = "0x4006706")] private const int MAX_ROUNDS = 80; // Token: 0x04006707 RID: 26375 [Token(Token = "0x4006707")] private const ulong C_240 = 2004413935125273122UL; // Token: 0x04006708 RID: 26376 [Token(Token = "0x4006708")] private static readonly int[] MOD9 = new int[80]; // Token: 0x04006709 RID: 26377 [Token(Token = "0x4006709")] private static readonly int[] MOD17 = new int[ThreefishEngine.MOD9.Length]; // Token: 0x0400670A RID: 26378 [Token(Token = "0x400670A")] private static readonly int[] MOD5 = new int[ThreefishEngine.MOD9.Length]; // Token: 0x0400670B RID: 26379 [Token(Token = "0x400670B")] private static readonly int[] MOD3; // Token: 0x0400670C RID: 26380 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x400670C")] private readonly int blocksizeBytes; // Token: 0x0400670D RID: 26381 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x400670D")] private readonly int blocksizeWords; // Token: 0x0400670E RID: 26382 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400670E")] private readonly ulong[] currentBlock; // Token: 0x0400670F RID: 26383 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400670F")] private readonly ulong[] t; // Token: 0x04006710 RID: 26384 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4006710")] private readonly ulong[] kw; // Token: 0x04006711 RID: 26385 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006711")] private readonly ThreefishEngine.ThreefishCipher cipher; // Token: 0x04006712 RID: 26386 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006712")] private bool forEncryption; // Token: 0x020016D5 RID: 5845 [Token(Token = "0x20016D5")] private abstract class ThreefishCipher { // Token: 0x06009D4A RID: 40266 RVA: 0x0023DF18 File Offset: 0x0023C118 [Token(Token = "0x6009D4A")] [Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")] protected ThreefishCipher(ulong[] kw, ulong[] t) { this.kw = kw; this.t = t; } // Token: 0x06009D4B RID: 40267 [Token(Token = "0x6009D4B")] [Address(Slot = "4")] internal abstract void EncryptBlock(ulong[] block, ulong[] outWords); // Token: 0x06009D4C RID: 40268 [Token(Token = "0x6009D4C")] [Address(Slot = "5")] internal abstract void DecryptBlock(ulong[] block, ulong[] outWords); // Token: 0x04006713 RID: 26387 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006713")] protected readonly ulong[] t; // Token: 0x04006714 RID: 26388 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006714")] protected readonly ulong[] kw; } // Token: 0x020016D6 RID: 5846 [Token(Token = "0x20016D6")] private sealed class Threefish256Cipher : ThreefishEngine.ThreefishCipher { // Token: 0x06009D4D RID: 40269 RVA: 0x0023DF3C File Offset: 0x0023C13C [Token(Token = "0x6009D4D")] [Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")] public Threefish256Cipher(ulong[] kw, ulong[] t) { this.kw = kw; this.t = t; } // Token: 0x06009D4E RID: 40270 RVA: 0x0023DF60 File Offset: 0x0023C160 [Token(Token = "0x6009D4E")] [Address(RVA = "0x210F2E0", Offset = "0x210DCE0", VA = "0x18210F2E0", Slot = "4")] internal override void EncryptBlock(ulong[] block, ulong[] outWords) { ulong[] kw; ulong[] t; int[] mod; int[] mod2; do { kw = this.kw; t = this.t; mod = ThreefishEngine.MOD5; mod2 = ThreefishEngine.MOD3; } while (kw.Length != 9 || t.Length != 5); int length = block.Length; ulong num = block[1]; ulong num2 = block[2]; ulong num3 = t[0]; ulong num4 = block[3]; num += num3; ulong num5 = t[1]; num2 += num5; uint num7; int num6 = mod[(int)num7]; int num8 = mod2[(int)num7]; int length2 = kw.Length; num8 = (int)((ulong)num8 + num4); num4 = num; num = num4; int num9 = num6 + 1; int length3 = t.Length; ulong num10 = kw[num9]; num4 += num10; int num11 = num8 + 1; num10 = num; num10 += (ulong)num7; ulong num12; num10 += num12; ulong num13 = kw[num6]; num13 += num4; ulong num14 = t[num11]; num11 = (int)((ulong)num11 + num14); num14 = num10; num11 = (int)((ulong)num11 + num10); num11 = (int)((ulong)num11 + num4); num13 += num14; num = num14; num13 = num; int num15 = num6 + 1; num10 += num; int num16 = num8 + 1; num8 += 2; ulong num17 = t[num8]; num6 += 4; num17 += (ulong)num11; num13 += (ulong)1L; num7 = (uint)((ulong)num7 + num13); num7 += (uint)2; } // Token: 0x06009D4F RID: 40271 RVA: 0x0023E0D8 File Offset: 0x0023C2D8 [Token(Token = "0x6009D4F")] [Address(RVA = "0x210EC20", Offset = "0x210D620", VA = "0x18210EC20", Slot = "5")] internal override void DecryptBlock(ulong[] block, ulong[] state) { ulong[] kw; ulong[] t; int[] mod; int[] mod2; int length; do { kw = this.kw; t = this.t; mod = ThreefishEngine.MOD5; mod2 = ThreefishEngine.MOD3; length = kw.Length; } while (length != 9 || t.Length != 5); int length2 = block.Length; ulong num = block[0]; ulong num2 = block[1]; ulong num3 = block[2]; ulong num4 = block[3]; int num5 = mod[length2]; int num6 = mod2[length2]; num5++; int num7 = num6 + 1; ulong num8 = t[num7]; num2 -= num8; ulong num9 = t[(int)num8]; num3 -= num9; num4 -= (ulong)length; num3 -= num3; num -= num4; num3 = num4; num3 -= num3; num -= num3; num4 = num3; num -= num4; num3 -= num3; int length3 = kw.Length; int num10 = num5 + 1; int length4 = t.Length; int num11 = num6 + 1; ulong num12 = t[num11]; num12 += num4; num3 -= num12; ulong num13 = kw[num5]; num13 += num3; num -= num13; num4 -= num13; num13 = num3; num -= num4; num3 -= num13; num3 = num13; num13 = num4; num -= num3; num3 -= num13; num4 = num13; num13 = num3; num -= num4; num3 = num13; num3 -= num3; num3 -= num4; num -= num3; ulong num14 = kw[1]; ulong num15 = t[0]; ulong num16 = kw[2]; ulong num17 = t[1]; ulong num18 = kw[3]; num3 -= num15; num3 -= num14; num3 -= num17; num3 -= num16; num4 -= num18; } // Token: 0x04006715 RID: 26389 [Token(Token = "0x4006715")] private const int ROTATION_0_0 = 14; // Token: 0x04006716 RID: 26390 [Token(Token = "0x4006716")] private const int ROTATION_0_1 = 16; // Token: 0x04006717 RID: 26391 [Token(Token = "0x4006717")] private const int ROTATION_1_0 = 52; // Token: 0x04006718 RID: 26392 [Token(Token = "0x4006718")] private const int ROTATION_1_1 = 57; // Token: 0x04006719 RID: 26393 [Token(Token = "0x4006719")] private const int ROTATION_2_0 = 23; // Token: 0x0400671A RID: 26394 [Token(Token = "0x400671A")] private const int ROTATION_2_1 = 40; // Token: 0x0400671B RID: 26395 [Token(Token = "0x400671B")] private const int ROTATION_3_0 = 5; // Token: 0x0400671C RID: 26396 [Token(Token = "0x400671C")] private const int ROTATION_3_1 = 37; // Token: 0x0400671D RID: 26397 [Token(Token = "0x400671D")] private const int ROTATION_4_0 = 25; // Token: 0x0400671E RID: 26398 [Token(Token = "0x400671E")] private const int ROTATION_4_1 = 33; // Token: 0x0400671F RID: 26399 [Token(Token = "0x400671F")] private const int ROTATION_5_0 = 46; // Token: 0x04006720 RID: 26400 [Token(Token = "0x4006720")] private const int ROTATION_5_1 = 12; // Token: 0x04006721 RID: 26401 [Token(Token = "0x4006721")] private const int ROTATION_6_0 = 58; // Token: 0x04006722 RID: 26402 [Token(Token = "0x4006722")] private const int ROTATION_6_1 = 22; // Token: 0x04006723 RID: 26403 [Token(Token = "0x4006723")] private const int ROTATION_7_0 = 32; // Token: 0x04006724 RID: 26404 [Token(Token = "0x4006724")] private const int ROTATION_7_1 = 32; } // Token: 0x020016D7 RID: 5847 [Token(Token = "0x20016D7")] private sealed class Threefish512Cipher : ThreefishEngine.ThreefishCipher { // Token: 0x06009D50 RID: 40272 RVA: 0x0023E2B8 File Offset: 0x0023C4B8 [Token(Token = "0x6009D50")] [Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")] internal Threefish512Cipher(ulong[] kw, ulong[] t) { this.kw = kw; this.t = t; } // Token: 0x06009D51 RID: 40273 RVA: 0x0023E2DC File Offset: 0x0023C4DC [Token(Token = "0x6009D51")] [Address(RVA = "0x2110480", Offset = "0x210EE80", VA = "0x182110480", Slot = "4")] internal override void EncryptBlock(ulong[] block, ulong[] outWords) { ulong[] t; ulong[] kw; int[] mod; int[] mod2; do { t = this.t; kw = this.kw; mod = ThreefishEngine.MOD9; mod2 = ThreefishEngine.MOD3; } while (kw.Length != 17 || t.Length != 5); int length = block.Length; ulong num = block[1]; ulong num2 = block[2]; ulong num3 = block[3]; ulong num4 = block[4]; ulong num5 = block[5]; ulong num6 = block[6]; ulong num7 = t[0]; ulong num8 = block[7]; num5 += num7; ulong num9 = t[1]; num6 += num9; uint num11; int num10 = mod[(int)num11]; int num12 = mod2[(int)num11]; num2 += num3; num = num3; num4 = num; num3 = num8; num8 = num; num6 = num8; num = num4; num5 = num3; int length2 = kw.Length; int num13 = num10 + 1; ulong num14 = kw[num13]; num += num14; ulong num15 = kw[(int)num14]; num4 = num6; num4 += num15; int length3 = t.Length; ulong num16 = kw[mod]; num5 += num16; int num17 = num12 + 1; ulong num18 = kw[length3]; num16 = num5; num6 = num4; num3 += num4; ulong num19 = kw[num10]; num16 += (ulong)num11; num16 += num18; ulong num20 = t[num17]; num19 += num; num5 = num; num4 = num5; num += num5; num5 += num20; num20 = num16; num5 += num16; num16 = num5; num += num20; num5 += num4; num20 = num6; num6 = num20; num5 = num20; num3 = num5; num += num5; num4 += num6; int num21 = num10 + 1; num14 += num; num15 += num5; num16 += num4; int length4 = t.Length; num5 = num3; num12 += 2; num10 += 8; uint num22 = num11 + 1U; num11 += (uint)2; num22 = (uint)((ulong)num22 + num5); } // Token: 0x06009D52 RID: 40274 RVA: 0x0023E4F4 File Offset: 0x0023C6F4 [Token(Token = "0x6009D52")] [Address(RVA = "0x210F910", Offset = "0x210E310", VA = "0x18210F910", Slot = "5")] internal override void DecryptBlock(ulong[] block, ulong[] state) { ulong[] t; ulong[] kw; int[] mod; int[] mod2; int length; do { t = this.t; kw = this.kw; mod = ThreefishEngine.MOD9; mod2 = ThreefishEngine.MOD3; length = kw.Length; } while (length != 17 || t.Length != 5); int i = block.Length; ulong num = block[0]; ulong num2 = block[1]; ulong num3 = block[2]; ulong num4 = block[3]; ulong num5 = block[4]; ulong num6 = block[5]; ulong num7 = block[6]; ulong num8 = block[7]; i = length; int num9 = mod[i]; int num10 = mod2[i]; int num11 = num9 + 1; int num12 = num10 + 1; ulong num13 = t[num12]; num6 -= num13; ulong num14; num14 -= (ulong)i; num8 += num14; ulong num15 = t[(int)num13]; num7 -= num15; num15 = num5; num7 -= num2; num2 = num8; num5 -= num15; num3 -= num6; num -= num2; num15 = num5; num2 = num15; num5 -= num2; num15 = num7; num -= num6; num8 = num15; num15 = num2; num7 -= num8; num3 -= num15; num15 = num3; num6 = num15; num2 = num15; num3 -= num2; num5 -= num6; num15 = num8; num7 -= num15; num -= num15; num6 = num2; int length2 = kw.Length; num2 = num15; num15 = num6; ulong num16 = kw[num9]; int num17 = num9 + 1; num16 += num6; num -= num16; ulong num18 = kw[(int)num16]; num18 += num2; num3 -= num18; ulong num19 = kw[(int)num18]; num19 += num2; num5 -= num19; int length3 = t.Length; num10++; ulong num20 = t[num10]; num7 -= num20; num2 = num6; num7 -= num2; num -= num15; num6 = num2; num3 -= num6; num2 = num6; num5 -= num2; num18 = num5; num2 = num18; num -= num2; num5 -= num2; num2 = num15; num3 -= num2; num18 = num3; num6 = num2; num2 = num18; num7 -= num2; num3 -= num2; num5 -= num6; num18 = num7; num2 = num18; num18 = num2; num7 -= num2; num -= num18; num15 = num6; num2 = num18; num7 -= num15; num -= num2; num3 -= num2; num5 -= num2; while (i >= 1) { } ulong num21 = kw[1]; ulong num22 = kw[2]; ulong num23 = kw[3]; ulong num24 = kw[4]; ulong num25 = kw[5]; int length4 = t.Length; ulong num26 = t[0]; ulong num27 = kw[6]; ulong num28 = t[1]; ulong num29 = kw[7]; num5 -= num24; num2 -= num26; num7 -= num28; num7 -= num27; num15 -= num29; } // Token: 0x04006725 RID: 26405 [Token(Token = "0x4006725")] private const int ROTATION_0_0 = 46; // Token: 0x04006726 RID: 26406 [Token(Token = "0x4006726")] private const int ROTATION_0_1 = 36; // Token: 0x04006727 RID: 26407 [Token(Token = "0x4006727")] private const int ROTATION_0_2 = 19; // Token: 0x04006728 RID: 26408 [Token(Token = "0x4006728")] private const int ROTATION_0_3 = 37; // Token: 0x04006729 RID: 26409 [Token(Token = "0x4006729")] private const int ROTATION_1_0 = 33; // Token: 0x0400672A RID: 26410 [Token(Token = "0x400672A")] private const int ROTATION_1_1 = 27; // Token: 0x0400672B RID: 26411 [Token(Token = "0x400672B")] private const int ROTATION_1_2 = 14; // Token: 0x0400672C RID: 26412 [Token(Token = "0x400672C")] private const int ROTATION_1_3 = 42; // Token: 0x0400672D RID: 26413 [Token(Token = "0x400672D")] private const int ROTATION_2_0 = 17; // Token: 0x0400672E RID: 26414 [Token(Token = "0x400672E")] private const int ROTATION_2_1 = 49; // Token: 0x0400672F RID: 26415 [Token(Token = "0x400672F")] private const int ROTATION_2_2 = 36; // Token: 0x04006730 RID: 26416 [Token(Token = "0x4006730")] private const int ROTATION_2_3 = 39; // Token: 0x04006731 RID: 26417 [Token(Token = "0x4006731")] private const int ROTATION_3_0 = 44; // Token: 0x04006732 RID: 26418 [Token(Token = "0x4006732")] private const int ROTATION_3_1 = 9; // Token: 0x04006733 RID: 26419 [Token(Token = "0x4006733")] private const int ROTATION_3_2 = 54; // Token: 0x04006734 RID: 26420 [Token(Token = "0x4006734")] private const int ROTATION_3_3 = 56; // Token: 0x04006735 RID: 26421 [Token(Token = "0x4006735")] private const int ROTATION_4_0 = 39; // Token: 0x04006736 RID: 26422 [Token(Token = "0x4006736")] private const int ROTATION_4_1 = 30; // Token: 0x04006737 RID: 26423 [Token(Token = "0x4006737")] private const int ROTATION_4_2 = 34; // Token: 0x04006738 RID: 26424 [Token(Token = "0x4006738")] private const int ROTATION_4_3 = 24; // Token: 0x04006739 RID: 26425 [Token(Token = "0x4006739")] private const int ROTATION_5_0 = 13; // Token: 0x0400673A RID: 26426 [Token(Token = "0x400673A")] private const int ROTATION_5_1 = 50; // Token: 0x0400673B RID: 26427 [Token(Token = "0x400673B")] private const int ROTATION_5_2 = 10; // Token: 0x0400673C RID: 26428 [Token(Token = "0x400673C")] private const int ROTATION_5_3 = 17; // Token: 0x0400673D RID: 26429 [Token(Token = "0x400673D")] private const int ROTATION_6_0 = 25; // Token: 0x0400673E RID: 26430 [Token(Token = "0x400673E")] private const int ROTATION_6_1 = 29; // Token: 0x0400673F RID: 26431 [Token(Token = "0x400673F")] private const int ROTATION_6_2 = 39; // Token: 0x04006740 RID: 26432 [Token(Token = "0x4006740")] private const int ROTATION_6_3 = 43; // Token: 0x04006741 RID: 26433 [Token(Token = "0x4006741")] private const int ROTATION_7_0 = 8; // Token: 0x04006742 RID: 26434 [Token(Token = "0x4006742")] private const int ROTATION_7_1 = 35; // Token: 0x04006743 RID: 26435 [Token(Token = "0x4006743")] private const int ROTATION_7_2 = 56; // Token: 0x04006744 RID: 26436 [Token(Token = "0x4006744")] private const int ROTATION_7_3 = 22; } // Token: 0x020016D8 RID: 5848 [Token(Token = "0x20016D8")] private sealed class Threefish1024Cipher : ThreefishEngine.ThreefishCipher { // Token: 0x06009D53 RID: 40275 RVA: 0x0023E818 File Offset: 0x0023CA18 [Token(Token = "0x6009D53")] [Address(RVA = "0x641430", Offset = "0x63FE30", VA = "0x180641430")] public Threefish1024Cipher(ulong[] kw, ulong[] t) { this.kw = kw; this.t = t; } // Token: 0x06009D54 RID: 40276 RVA: 0x0023E83C File Offset: 0x0023CA3C [Token(Token = "0x6009D54")] [Address(RVA = "0x210D770", Offset = "0x210C170", VA = "0x18210D770", Slot = "4")] internal override void EncryptBlock(ulong[] block, ulong[] outWords) { ulong[] array; ulong[] array2; int[] array3; int[] array4; do { array = this.kw; array2 = this.t; array3 = ThreefishEngine.MOD17; array4 = ThreefishEngine.MOD3; } while (array.Length != 33 || array2.Length != 5); ulong num = array2[0]; ulong num2 = array2[1]; array4 += num2; uint num4; int num3 = array3[(int)num4]; int num5 = array4[(int)num4]; array += typeof(ThreefishEngine).TypeHandle; array4 += this; array += this; array4 += array4; array3 += array4; int length = array.Length; int num6 = num3 + 1; int length2 = array2.Length; int num7 = num5 + 1; num3 += 15; array3 += num4; ulong num8 = array[num3]; num8 += this; ulong num9 = array[num6]; array3 += num9; array3 += this; ulong num10 = array[array4]; array4 += num10; array4 += this; ulong num11 = array[this]; array4 += num11; array4 += array4; ulong num12 = array[this]; ulong num13 = array[this]; array += num12; num13 += array4; ulong num14 = array[this]; array2 += array3; array += this; num13 += this; array4 += array4; ulong num15 = array[num6]; ulong num16 = array[array4]; num16 += array3; ulong num17 = array[array4]; num17 += array4; ulong num18 = array[this]; ulong num19 = array[this]; num19 += num8; ulong num20 = array[this]; ulong num21 = array[this]; num21 += this; num5++; int length3 = array2.Length; num5 += 2; ulong num22 = array2[num5]; num4 += (uint)1; num4 += array3; num4 += (uint)2; } // Token: 0x06009D55 RID: 40277 RVA: 0x0023E9F8 File Offset: 0x0023CBF8 [Token(Token = "0x6009D55")] [Address(RVA = "0x210C020", Offset = "0x210AA20", VA = "0x18210C020", Slot = "5")] internal override void DecryptBlock(ulong[] block, ulong[] state) { ulong[] t; ulong[] kw; int[] mod; int[] mod2; do { t = this.t; kw = this.kw; mod = ThreefishEngine.MOD17; mod2 = ThreefishEngine.MOD3; } while (kw.Length != 33 || t.Length != 5); int length = block.Length; ulong num = block[1]; ulong num2 = block[2]; ulong num3 = block[3]; ulong num4 = block[5]; ulong num5 = block[6]; ulong num6 = block[7]; ulong num7 = block[8]; ulong num8 = block[9]; ulong num9 = block[10]; ulong num10 = block[11]; ulong num11 = block[12]; ulong num12 = block[13]; ulong num13 = block[14]; ulong num14 = block[15]; uint num16; int num15 = mod[(int)num16]; int num17 = mod2[(int)num16]; int num18 = num15 + 1; num17++; ulong num19 = t[num17]; num17 += 2; ulong num20 = t[num17]; num13 -= num20; num14 -= (ulong)num16; num2 -= num10; num13 = num12; num5 -= num13; num14 = num8; num8 = num7; num13 -= num8; num5 = num8; num8 = num9; num7 -= num5; num7 = num8; num8 = num11; num9 -= num7; num13 = num8; num11 -= num13; num11 = num13; num2 -= num5; num5 -= num5; num8 = num14; num11 -= num8; num5 = num10; num11 = num13; num7 = num11; num7 -= num5; num13 -= num7; num13 = num9; num9 -= num13; num7 = num13; num10 = num7; num2 -= num10; num5 -= num5; num14 = num8; num9 = num11; num5 = num9; num11 -= num5; num9 = num13; num7 = num9; num13 -= num7; num9 = num7; num13 = num9; num7 -= num13; num5 = num13; num9 = num14; int length2 = kw.Length; ulong num21 = kw[num15]; num21 += num5; int num22 = num15 + 1; ulong num23 = kw[num22]; num23 += num5; num2 -= num23; ulong num24 = kw[(int)num23]; ulong num25 = kw[(int)num24]; num5 -= num25; ulong num26 = kw[(int)num25]; num7 -= num26; ulong num27 = kw[(int)num26]; num9 -= num27; ulong num28 = kw[(int)num27]; num28 += num10; num11 -= num28; int length3 = t.Length; num17++; ulong num29 = t[num17]; num15 += 15; num29 += num9; num13 -= num29; num9 -= (ulong)num16; num2 -= num9; num5 -= num10; num13 -= num5; num5 = num9; num7 -= num5; num9 = num5; num9 -= num9; num25 = num9; num11 -= num25; num9 = num5; num11 = num9; num2 -= num9; num2 = num5; num5 -= num2; num5 = num13; num13 -= num5; num5 = num9; num7 -= num5; num13 = num9; num9 -= num13; num9 = num5; num2 -= num9; num5 -= num5; num9 = num11; num11 = num9; num9 = num11; num9 -= num11; num5 = num9; num9 = num13; num11 -= num5; num5 = num9; num9 = num7; num13 -= num5; num11 = num9; num7 -= num11; num9 = num5; num2 -= num9; num5 -= num11; num11 = num9; num2 = num9; num7 -= num11; num11 = num5; num13 -= num2; num5 = num9; num5 -= num11; num11 -= num9; while (num16 >= (uint)1) { } ulong num30 = kw[1]; ulong num31 = kw[2]; ulong num32 = kw[3]; ulong num33 = kw[4]; ulong num34 = kw[5]; ulong num35 = kw[6]; ulong num36 = kw[7]; ulong num37 = kw[8]; ulong num38 = kw[9]; ulong num39 = kw[10]; ulong num40 = kw[11]; ulong num41 = kw[12]; ulong num42 = kw[13]; int length4 = t.Length; ulong num43 = t[0]; ulong num44 = kw[14]; ulong num45 = t[1]; ulong num46 = kw[15]; num13 -= num45; num13 -= num44; num2 -= num46; } // Token: 0x04006745 RID: 26437 [Token(Token = "0x4006745")] private const int ROTATION_0_0 = 24; // Token: 0x04006746 RID: 26438 [Token(Token = "0x4006746")] private const int ROTATION_0_1 = 13; // Token: 0x04006747 RID: 26439 [Token(Token = "0x4006747")] private const int ROTATION_0_2 = 8; // Token: 0x04006748 RID: 26440 [Token(Token = "0x4006748")] private const int ROTATION_0_3 = 47; // Token: 0x04006749 RID: 26441 [Token(Token = "0x4006749")] private const int ROTATION_0_4 = 8; // Token: 0x0400674A RID: 26442 [Token(Token = "0x400674A")] private const int ROTATION_0_5 = 17; // Token: 0x0400674B RID: 26443 [Token(Token = "0x400674B")] private const int ROTATION_0_6 = 22; // Token: 0x0400674C RID: 26444 [Token(Token = "0x400674C")] private const int ROTATION_0_7 = 37; // Token: 0x0400674D RID: 26445 [Token(Token = "0x400674D")] private const int ROTATION_1_0 = 38; // Token: 0x0400674E RID: 26446 [Token(Token = "0x400674E")] private const int ROTATION_1_1 = 19; // Token: 0x0400674F RID: 26447 [Token(Token = "0x400674F")] private const int ROTATION_1_2 = 10; // Token: 0x04006750 RID: 26448 [Token(Token = "0x4006750")] private const int ROTATION_1_3 = 55; // Token: 0x04006751 RID: 26449 [Token(Token = "0x4006751")] private const int ROTATION_1_4 = 49; // Token: 0x04006752 RID: 26450 [Token(Token = "0x4006752")] private const int ROTATION_1_5 = 18; // Token: 0x04006753 RID: 26451 [Token(Token = "0x4006753")] private const int ROTATION_1_6 = 23; // Token: 0x04006754 RID: 26452 [Token(Token = "0x4006754")] private const int ROTATION_1_7 = 52; // Token: 0x04006755 RID: 26453 [Token(Token = "0x4006755")] private const int ROTATION_2_0 = 33; // Token: 0x04006756 RID: 26454 [Token(Token = "0x4006756")] private const int ROTATION_2_1 = 4; // Token: 0x04006757 RID: 26455 [Token(Token = "0x4006757")] private const int ROTATION_2_2 = 51; // Token: 0x04006758 RID: 26456 [Token(Token = "0x4006758")] private const int ROTATION_2_3 = 13; // Token: 0x04006759 RID: 26457 [Token(Token = "0x4006759")] private const int ROTATION_2_4 = 34; // Token: 0x0400675A RID: 26458 [Token(Token = "0x400675A")] private const int ROTATION_2_5 = 41; // Token: 0x0400675B RID: 26459 [Token(Token = "0x400675B")] private const int ROTATION_2_6 = 59; // Token: 0x0400675C RID: 26460 [Token(Token = "0x400675C")] private const int ROTATION_2_7 = 17; // Token: 0x0400675D RID: 26461 [Token(Token = "0x400675D")] private const int ROTATION_3_0 = 5; // Token: 0x0400675E RID: 26462 [Token(Token = "0x400675E")] private const int ROTATION_3_1 = 20; // Token: 0x0400675F RID: 26463 [Token(Token = "0x400675F")] private const int ROTATION_3_2 = 48; // Token: 0x04006760 RID: 26464 [Token(Token = "0x4006760")] private const int ROTATION_3_3 = 41; // Token: 0x04006761 RID: 26465 [Token(Token = "0x4006761")] private const int ROTATION_3_4 = 47; // Token: 0x04006762 RID: 26466 [Token(Token = "0x4006762")] private const int ROTATION_3_5 = 28; // Token: 0x04006763 RID: 26467 [Token(Token = "0x4006763")] private const int ROTATION_3_6 = 16; // Token: 0x04006764 RID: 26468 [Token(Token = "0x4006764")] private const int ROTATION_3_7 = 25; // Token: 0x04006765 RID: 26469 [Token(Token = "0x4006765")] private const int ROTATION_4_0 = 41; // Token: 0x04006766 RID: 26470 [Token(Token = "0x4006766")] private const int ROTATION_4_1 = 9; // Token: 0x04006767 RID: 26471 [Token(Token = "0x4006767")] private const int ROTATION_4_2 = 37; // Token: 0x04006768 RID: 26472 [Token(Token = "0x4006768")] private const int ROTATION_4_3 = 31; // Token: 0x04006769 RID: 26473 [Token(Token = "0x4006769")] private const int ROTATION_4_4 = 12; // Token: 0x0400676A RID: 26474 [Token(Token = "0x400676A")] private const int ROTATION_4_5 = 47; // Token: 0x0400676B RID: 26475 [Token(Token = "0x400676B")] private const int ROTATION_4_6 = 44; // Token: 0x0400676C RID: 26476 [Token(Token = "0x400676C")] private const int ROTATION_4_7 = 30; // Token: 0x0400676D RID: 26477 [Token(Token = "0x400676D")] private const int ROTATION_5_0 = 16; // Token: 0x0400676E RID: 26478 [Token(Token = "0x400676E")] private const int ROTATION_5_1 = 34; // Token: 0x0400676F RID: 26479 [Token(Token = "0x400676F")] private const int ROTATION_5_2 = 56; // Token: 0x04006770 RID: 26480 [Token(Token = "0x4006770")] private const int ROTATION_5_3 = 51; // Token: 0x04006771 RID: 26481 [Token(Token = "0x4006771")] private const int ROTATION_5_4 = 4; // Token: 0x04006772 RID: 26482 [Token(Token = "0x4006772")] private const int ROTATION_5_5 = 53; // Token: 0x04006773 RID: 26483 [Token(Token = "0x4006773")] private const int ROTATION_5_6 = 42; // Token: 0x04006774 RID: 26484 [Token(Token = "0x4006774")] private const int ROTATION_5_7 = 41; // Token: 0x04006775 RID: 26485 [Token(Token = "0x4006775")] private const int ROTATION_6_0 = 31; // Token: 0x04006776 RID: 26486 [Token(Token = "0x4006776")] private const int ROTATION_6_1 = 44; // Token: 0x04006777 RID: 26487 [Token(Token = "0x4006777")] private const int ROTATION_6_2 = 47; // Token: 0x04006778 RID: 26488 [Token(Token = "0x4006778")] private const int ROTATION_6_3 = 46; // Token: 0x04006779 RID: 26489 [Token(Token = "0x4006779")] private const int ROTATION_6_4 = 19; // Token: 0x0400677A RID: 26490 [Token(Token = "0x400677A")] private const int ROTATION_6_5 = 42; // Token: 0x0400677B RID: 26491 [Token(Token = "0x400677B")] private const int ROTATION_6_6 = 44; // Token: 0x0400677C RID: 26492 [Token(Token = "0x400677C")] private const int ROTATION_6_7 = 25; // Token: 0x0400677D RID: 26493 [Token(Token = "0x400677D")] private const int ROTATION_7_0 = 9; // Token: 0x0400677E RID: 26494 [Token(Token = "0x400677E")] private const int ROTATION_7_1 = 48; // Token: 0x0400677F RID: 26495 [Token(Token = "0x400677F")] private const int ROTATION_7_2 = 35; // Token: 0x04006780 RID: 26496 [Token(Token = "0x4006780")] private const int ROTATION_7_3 = 52; // Token: 0x04006781 RID: 26497 [Token(Token = "0x4006781")] private const int ROTATION_7_4 = 23; // Token: 0x04006782 RID: 26498 [Token(Token = "0x4006782")] private const int ROTATION_7_5 = 31; // Token: 0x04006783 RID: 26499 [Token(Token = "0x4006783")] private const int ROTATION_7_6 = 37; // Token: 0x04006784 RID: 26500 [Token(Token = "0x4006784")] private const int ROTATION_7_7 = 20; } } }