using System; using System.Threading; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng { // Token: 0x02001BC7 RID: 7111 [Token(Token = "0x2001BC7")] public class ReversedWindowGenerator : IRandomGenerator { // Token: 0x0600B1D7 RID: 45527 RVA: 0x0026B768 File Offset: 0x00269968 [Token(Token = "0x600B1D7")] [Address(RVA = "0x18A0A30", Offset = "0x189F830", VA = "0x1818A0A30")] public ReversedWindowGenerator(IRandomGenerator generator, int windowSize) { /* An exception occurred when decompiling this method (0600B1D7) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng.ReversedWindowGenerator::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng.IRandomGenerator,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_20: stloc:ArgumentNullException(var_1_2A, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("generator"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(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: 0x0600B1D8 RID: 45528 RVA: 0x0026B7A0 File Offset: 0x002699A0 [Token(Token = "0x600B1D8")] [Address(RVA = "0x18A0920", Offset = "0x189F720", VA = "0x1818A0920", Slot = "8")] public virtual void AddSeedMaterial(byte[] seed) { int num; do { num = 0; this.windowCount = num; IRandomGenerator randomGenerator = this.generator; Monitor.Exit(this); } while (num != 0); } // Token: 0x0600B1D9 RID: 45529 RVA: 0x0026B7D0 File Offset: 0x002699D0 [Token(Token = "0x600B1D9")] [Address(RVA = "0x18A0850", Offset = "0x189F650", VA = "0x1818A0850", Slot = "9")] public virtual void AddSeedMaterial(long seed) { int num; do { num = 0; this.windowCount = num; IRandomGenerator randomGenerator = this.generator; Monitor.Exit(this); } while (num != 0); } // Token: 0x0600B1DA RID: 45530 RVA: 0x0026B800 File Offset: 0x00269A00 [Token(Token = "0x600B1DA")] [Address(RVA = "0x18A0A00", Offset = "0x189F800", VA = "0x1818A0A00", Slot = "10")] public virtual void NextBytes(byte[] bytes) { int length = bytes.Length; int num = 0; this.doNextBytes(bytes, num, length); } // Token: 0x0600B1DB RID: 45531 RVA: 0x0026B828 File Offset: 0x00269A28 [Token(Token = "0x600B1DB")] [Address(RVA = "0x18A09F0", Offset = "0x189F7F0", VA = "0x1818A09F0", Slot = "11")] public virtual void NextBytes(byte[] bytes, int start, int len) { this.doNextBytes(bytes, start, len); } // Token: 0x0600B1DC RID: 45532 RVA: 0x0026B840 File Offset: 0x00269A40 [Token(Token = "0x600B1DC")] [Address(RVA = "0x18A0B10", Offset = "0x189F910", VA = "0x1818A0B10")] private void doNextBytes(byte[] bytes, int start, int len) { int num; do { num = 0; if (num < len) { int num2 = this.windowCount; if (num2 < 1) { IRandomGenerator randomGenerator = this.generator; int length = this.window.Length; byte[] array = this.window; } byte[] array2 = this.window; num++; int num3 = num2 - 1; this.windowCount = num3; } Monitor.Exit(this); } while (num != 0); } // Token: 0x04007143 RID: 28995 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4007143")] private readonly IRandomGenerator generator; // Token: 0x04007144 RID: 28996 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007144")] private byte[] window; // Token: 0x04007145 RID: 28997 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007145")] private int windowCount; } }