using System; using System.Threading; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng { // Token: 0x02001CA7 RID: 7335 [Token(Token = "0x2001CA7")] public class ReversedWindowGenerator : IRandomGenerator { // Token: 0x0600B5A5 RID: 46501 RVA: 0x0027492C File Offset: 0x00272B2C [Token(Token = "0x600B5A5")] [Address(RVA = "0x2364890", Offset = "0x2363890", VA = "0x182364890")] public ReversedWindowGenerator(IRandomGenerator generator, int windowSize) { /* An exception occurred when decompiling this method (0600B5A5) 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: 0x0600B5A6 RID: 46502 RVA: 0x00274964 File Offset: 0x00272B64 [Token(Token = "0x600B5A6")] [Address(RVA = "0x2364780", Offset = "0x2363780", VA = "0x182364780", 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: 0x0600B5A7 RID: 46503 RVA: 0x00274994 File Offset: 0x00272B94 [Token(Token = "0x600B5A7")] [Address(RVA = "0x2364640", Offset = "0x2363640", VA = "0x182364640", Slot = "9")] public virtual void AddSeedMaterial(long seed) { int num; do { num = 0; int num2 = 0; this.windowCount = num; IRandomGenerator randomGenerator = this.generator; if (num < num2) { num += num; num++; } Monitor.Exit(this); } while (num != 0); } // Token: 0x0600B5A8 RID: 46504 RVA: 0x002749D0 File Offset: 0x00272BD0 [Token(Token = "0x600B5A8")] [Address(RVA = "0x2364860", Offset = "0x2363860", VA = "0x182364860", Slot = "10")] public virtual void NextBytes(byte[] bytes) { int length = bytes.Length; int num = 0; this.doNextBytes(bytes, num, length); } // Token: 0x0600B5A9 RID: 46505 RVA: 0x002749F8 File Offset: 0x00272BF8 [Token(Token = "0x600B5A9")] [Address(RVA = "0x2364850", Offset = "0x2363850", VA = "0x182364850", Slot = "11")] public virtual void NextBytes(byte[] bytes, int start, int len) { this.doNextBytes(bytes, start, len); } // Token: 0x0600B5AA RID: 46506 RVA: 0x00274A10 File Offset: 0x00272C10 [Token(Token = "0x600B5AA")] [Address(RVA = "0x2364970", Offset = "0x2363970", VA = "0x182364970")] 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: 0x040072FC RID: 29436 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40072FC")] private readonly IRandomGenerator generator; // Token: 0x040072FD RID: 29437 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40072FD")] private byte[] window; // Token: 0x040072FE RID: 29438 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40072FE")] private int windowCount; } }