using System; using System.Collections; using System.IO; using System.Runtime.Remoting; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001B84 RID: 7044 [Token(Token = "0x2001B84")] public abstract class TlsProtocol { // Token: 0x0600AF46 RID: 44870 RVA: 0x00261848 File Offset: 0x0025FA48 [Token(Token = "0x600AF46")] [Address(RVA = "0x1981550", Offset = "0x1980350", VA = "0x181981550")] public TlsProtocol(Stream stream, SecureRandom secureRandom) { } // Token: 0x0600AF47 RID: 44871 RVA: 0x00261858 File Offset: 0x0025FA58 [Token(Token = "0x600AF47")] [Address(RVA = "0x198FE80", Offset = "0x198EC80", VA = "0x18198FE80")] public TlsProtocol(Stream input, Stream output, SecureRandom secureRandom) { int num; ByteQueue byteQueue = new ByteQueue(num); num = 0; this.mApplicationDataQueue = byteQueue; ByteQueue byteQueue2 = new ByteQueue(2); this.mAlertQueue = byteQueue2; int num2; ByteQueue byteQueue3 = new ByteQueue(num2); num2 = 0; this.mHandshakeQueue = byteQueue3; this.mAppDataSplitEnabled = true; this.mBlocking = true; this.HandleChangeCipherSpecMessage(); RecordStream recordStream = new RecordStream(this, input, output); this.mRecordStream = recordStream; this.mSecureRandom = secureRandom; } // Token: 0x0600AF48 RID: 44872 RVA: 0x002618C4 File Offset: 0x0025FAC4 [Token(Token = "0x600AF48")] [Address(RVA = "0x19813E0", Offset = "0x19801E0", VA = "0x1819813E0")] public TlsProtocol(SecureRandom secureRandom) { int num; ByteQueue byteQueue = new ByteQueue(num); num = 0; this.mApplicationDataQueue = byteQueue; ByteQueue byteQueue2 = new ByteQueue(2); this.mAlertQueue = byteQueue2; int num2; ByteQueue byteQueue3 = new ByteQueue(num2); num2 = 0; this.mHandshakeQueue = byteQueue3; this.HandleChangeCipherSpecMessage(); ByteQueueStream byteQueueStream = new ByteQueueStream(); this.mInputBuffers = byteQueueStream; ByteQueueStream byteQueueStream2 = new ByteQueueStream(); ByteQueueStream byteQueueStream3 = this.mInputBuffers; this.mOutputBuffer = byteQueueStream2; RecordStream recordStream = new RecordStream(this, byteQueueStream3, byteQueueStream2); this.mRecordStream = recordStream; this.mSecureRandom = secureRandom; } // Token: 0x17001BB9 RID: 7097 // (get) Token: 0x0600AF49 RID: 44873 [Token(Token = "0x17001BB9")] protected abstract TlsContext Context { [Token(Token = "0x600AF49")] [Address(Slot = "4")] get; } // Token: 0x17001BBA RID: 7098 // (get) Token: 0x0600AF4A RID: 44874 [Token(Token = "0x17001BBA")] internal abstract AbstractTlsContext ContextAdmin { [Token(Token = "0x600AF4A")] [Address(Slot = "5")] get; } // Token: 0x17001BBB RID: 7099 // (get) Token: 0x0600AF4B RID: 44875 [Token(Token = "0x17001BBB")] protected abstract TlsPeer Peer { [Token(Token = "0x600AF4B")] [Address(Slot = "6")] get; } // Token: 0x0600AF4C RID: 44876 RVA: 0x00261948 File Offset: 0x0025FB48 [Token(Token = "0x600AF4C")] [Address(RVA = "0x198D0D0", Offset = "0x198BED0", VA = "0x18198D0D0", Slot = "7")] protected virtual void HandleAlertMessage(byte alertLevel, byte alertDescription) { AbstractTlsContext contextAdmin = this.ContextAdmin; int num = 0; if (num < (int)alertDescription) { num += num; num++; } TlsContext context = this.Context; } // Token: 0x0600AF4D RID: 44877 RVA: 0x00261978 File Offset: 0x0025FB78 [Token(Token = "0x600AF4D")] [Address(RVA = "0x198D220", Offset = "0x198C020", VA = "0x18198D220", Slot = "8")] protected virtual void HandleAlertWarningMessage(byte alertDescription) { while (!this.mAppDataReady) { } this.HandleChangeCipherSpecMessage(); } // Token: 0x0600AF4E RID: 44878 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600AF4E")] [Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "9")] protected virtual void HandleChangeCipherSpecMessage() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600AF4F RID: 44879 RVA: 0x00261994 File Offset: 0x0025FB94 [Token(Token = "0x600AF4F")] [Address(RVA = "0x198D2B0", Offset = "0x198C0B0", VA = "0x18198D2B0", Slot = "10")] protected virtual void HandleClose(bool user_canceled) { if (!this.mClosed) { this.mClosed = true; if (!user_canceled || !this.mAppDataReady) { } this.mRecordStream.SafeClose(); if (!this.mAppDataReady) { } } } // Token: 0x0600AF50 RID: 44880 RVA: 0x002619D8 File Offset: 0x0025FBD8 [Token(Token = "0x600AF50")] [Address(RVA = "0x198D390", Offset = "0x198C190", VA = "0x18198D390", Slot = "11")] protected virtual void HandleException(byte alertDescription, string message, Exception cause) { if (!this.mClosed) { } } // Token: 0x0600AF51 RID: 44881 RVA: 0x002619F0 File Offset: 0x0025FBF0 [Token(Token = "0x600AF51")] [Address(RVA = "0x198D420", Offset = "0x198C220", VA = "0x18198D420", Slot = "12")] protected virtual void HandleFailure() { this.mClosed = true; this.mFailedWithError = true; this.mRecordStream.SafeClose(); if (!this.mAppDataReady) { TlsContext context = this.Context; return; } } // Token: 0x0600AF52 RID: 44882 [Token(Token = "0x600AF52")] [Address(Slot = "13")] protected abstract void HandleHandshakeMessage(byte type, MemoryStream buf); // Token: 0x0600AF53 RID: 44883 RVA: 0x00261A30 File Offset: 0x0025FC30 [Token(Token = "0x600AF53")] [Address(RVA = "0x198BF40", Offset = "0x198AD40", VA = "0x18198BF40", Slot = "14")] protected virtual void ApplyMaxFragmentLengthExtension() { /* An exception occurred when decompiling this method (0600AF53) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ApplyMaxFragmentLengthExtension() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_2E: stloc:TlsFatalAlert(var_2_34, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_3))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF54 RID: 44884 RVA: 0x00261A74 File Offset: 0x0025FC74 [Token(Token = "0x600AF54")] [Address(RVA = "0x198C150", Offset = "0x198AF50", VA = "0x18198C150", Slot = "15")] protected virtual void CheckReceivedChangeCipherSpec(bool expected) { while (expected != this.mReceivedChangeCipherSpec) { } } // Token: 0x0600AF55 RID: 44885 RVA: 0x00261A8C File Offset: 0x0025FC8C [Token(Token = "0x600AF55")] [Address(RVA = "0x198C1C0", Offset = "0x198AFC0", VA = "0x18198C1C0", Slot = "16")] protected virtual void CleanupHandshake() { byte[] array = this.mExpectedVerifyData; int num = 0; if (array != 0) { int num2 = 0; Arrays.Fill(array, (byte)num2); this.mExpectedVerifyData = num; } string text = this.mSecurityParameters.ToString(); this.mPeerCertificate = num; this.mOfferedCipherSuites = num; this.mOfferedCompressionMethods = num; this.mClientExtensions = num; this.mServerExtensions = num; this.mResumedSession = num != 0; this.mExpectSessionTicket = num != 0; } // Token: 0x0600AF56 RID: 44886 RVA: 0x00261AFC File Offset: 0x0025FCFC [Token(Token = "0x600AF56")] [Address(RVA = "0x198C0A0", Offset = "0x198AEA0", VA = "0x18198C0A0", Slot = "17")] protected virtual void BlockForHandshake() { while (this.mBlocking && this.mClosed) { } } // Token: 0x0600AF57 RID: 44887 RVA: 0x00261B1C File Offset: 0x0025FD1C [Token(Token = "0x600AF57")] [Address(RVA = "0x198C3E0", Offset = "0x198B1E0", VA = "0x18198C3E0", Slot = "18")] protected virtual void CompleteHandshake() { int num; do { num = 0; this.mConnectionState = (short)((uint)16); this.mAlertQueue.Shrink(); this.mHandshakeQueue.Shrink(); this.mRecordStream.FinaliseHandshake(); string text = this.ToString(); bool flag2; bool flag = !flag2; this.mAppDataSplitEnabled = flag; bool flag3 = this.mAppDataReady; if (!flag3) { this.mAppDataReady = true; if (this.mBlocking != flag3) { TlsStream tlsStream = new TlsStream(this); this.mTlsStream = tlsStream; } } if (this.mTlsSession != (ulong)0L) { if (this.mSessionParameters == (ulong)0L) { SessionParameters.Builder builder = new SessionParameters.Builder(); builder.mCipherSuite = (int)((uint)(-1)); builder.mCompressionAlgorithm = (short)((uint)(-1)); int entity = this.mSecurityParameters.Entity; builder.mCipherSuite = entity; int cipherSuite = this.mSecurityParameters.CipherSuite; builder.mCompressionAlgorithm = (short)cipherSuite; byte[] srpIdentity = this.mSecurityParameters.SrpIdentity; builder.mExtendedMasterSecret = srpIdentity != null; int verifyDataLength = this.mSecurityParameters.VerifyDataLength; builder.mMasterSecret = verifyDataLength; Certificate certificate = this.mPeerCertificate; builder.mPeerCertificate = certificate; byte[] sessionHash = this.mSecurityParameters.SessionHash; builder.mPskIdentity = sessionHash; byte[] pskIdentity = this.mSecurityParameters.PskIdentity; builder.mSrpIdentity = pskIdentity; IDictionary dictionary = this.mServerExtensions; if (dictionary != 0) { TlsProtocol.WriteExtensions(new MemoryStream(), dictionary); } builder.mEncodedServerExtensions = num; int mCipherSuite = builder.mCipherSuite; builder.Validate(mCipherSuite != 0, "cipherSuite"); short mCompressionAlgorithm = builder.mCompressionAlgorithm; builder.Validate(mCompressionAlgorithm != 0, "compressionAlgorithm"); builder.Validate(mCompressionAlgorithm != 0, "masterSecret"); Certificate certificate2 = builder.mPeerCertificate; SessionParameters sessionParameters; this.mSessionParameters = sessionParameters; TlsSession tlsSession = this.mTlsSession; TlsSessionImpl tlsSessionImpl; this.mTlsSession = tlsSessionImpl; } TlsContext context = this.Context; } AbstractTlsContext contextAdmin = this.ContextAdmin; } while (num != 0); } // Token: 0x0600AF58 RID: 44888 RVA: 0x00261D44 File Offset: 0x0025FF44 [Token(Token = "0x600AF58")] [Address(RVA = "0x198DE90", Offset = "0x198CC90", VA = "0x18198DE90")] protected internal void ProcessRecord(byte protocol, byte[] buf, int off, int len) { /* An exception occurred when decompiling this method (0600AF58) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessRecord(System.Byte,System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_C8: stloc:TlsFatalAlert(var_23_CF, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_24))) stloc:TlsFatalAlert(var_25_D8, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_26))) } 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: 0x0600AF59 RID: 44889 RVA: 0x00261E2C File Offset: 0x0026002C [Token(Token = "0x600AF59")] [Address(RVA = "0x198DBB0", Offset = "0x198C9B0", VA = "0x18198DBB0")] private void ProcessHandshakeQueue(ByteQueue queue) { int num = 0; byte[] array = new byte[4]; int num2 = 0; queue.Read(array, num2, 4, num); int num3 = 0; byte b = TlsUtilities.ReadUint8(array, num3); int num4 = TlsUtilities.ReadUint24(array, 1); this.ApplyMaxFragmentLengthExtension(); this.ApplyMaxFragmentLengthExtension(); string text = this.ToString(); if (this.mExpectedVerifyData == num) { sbyte b2; this.mExpectedVerifyData = b2; } RecordStream recordStream = this.mRecordStream; queue.RemoveData(4); MemoryStream memoryStream = queue.ReadFrom(num4); this.HandleFailure(); } // Token: 0x0600AF5A RID: 44890 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600AF5A")] [Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080")] private void ProcessApplicationDataQueue() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600AF5B RID: 44891 RVA: 0x00261EAC File Offset: 0x002600AC [Token(Token = "0x600AF5B")] [Address(RVA = "0x198D880", Offset = "0x198C680", VA = "0x18198D880")] private void ProcessAlertQueue() { ByteQueue byteQueue = this.mAlertQueue; int num = 0; int length = byteQueue.RemoveData(2, num).Length; TlsPeer peer = this.Peer; ByteQueue byteQueue2 = this.mAlertQueue; } // Token: 0x0600AF5C RID: 44892 RVA: 0x00261EE8 File Offset: 0x002600E8 [Token(Token = "0x600AF5C")] [Address(RVA = "0x198D920", Offset = "0x198C720", VA = "0x18198D920")] private void ProcessChangeCipherSpec(byte[] buf, int off, int len) { int num; do { num = 0; if (len <= 0) { return; } byte b = TlsUtilities.ReadUint8(buf, 0); } while (this.mReceivedChangeCipherSpec); ByteQueue byteQueue = this.mAlertQueue; ByteQueue byteQueue2 = this.mHandshakeQueue; this.mRecordStream.ReceivedReadCipherSpec(); this.mReceivedChangeCipherSpec = true; num++; } // Token: 0x0600AF5D RID: 44893 RVA: 0x00261F30 File Offset: 0x00260130 [Token(Token = "0x600AF5D")] [Address(RVA = "0x198BF20", Offset = "0x198AD20", VA = "0x18198BF20", Slot = "19")] protected internal virtual int ApplicationDataAvailable() { return this.mApplicationDataQueue.available; } // Token: 0x0600AF5E RID: 44894 RVA: 0x00261F50 File Offset: 0x00260150 [Token(Token = "0x600AF5E")] [Address(RVA = "0x198E490", Offset = "0x198D290", VA = "0x18198E490", Slot = "20")] protected internal virtual int ReadApplicationData(byte[] buf, int offset, int len) { /* An exception occurred when decompiling this method (0600AF5E) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadApplicationData(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3A: stloc:IOException(var_3_44, newobj:IOException(IOException::.ctor, ldstr:string("Cannot read application data on failed TLS connection"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF5F RID: 44895 RVA: 0x00261FA4 File Offset: 0x002601A4 [Token(Token = "0x600AF5F")] [Address(RVA = "0x198EC80", Offset = "0x198DA80", VA = "0x18198EC80", Slot = "21")] protected virtual void SafeCheckRecordHeader(byte[] recordHeader) { this.mRecordStream.CheckRecordHeader(recordHeader); } // Token: 0x0600AF60 RID: 44896 RVA: 0x00261FCC File Offset: 0x002601CC [Token(Token = "0x600AF60")] [Address(RVA = "0x198EDC0", Offset = "0x198DBC0", VA = "0x18198EDC0", Slot = "22")] protected virtual void SafeReadRecord() { if (this.mRecordStream.ReadRecord() || this.mAppDataReady) { return; } throw new NullReferenceException(); } // Token: 0x0600AF61 RID: 44897 RVA: 0x00261FFC File Offset: 0x002601FC [Token(Token = "0x600AF61")] [Address(RVA = "0x198EF80", Offset = "0x198DD80", VA = "0x18198EF80", Slot = "23")] protected virtual void SafeWriteRecord(byte type, byte[] buf, int offset, int len) { RecordStream recordStream = this.mRecordStream; } // Token: 0x0600AF62 RID: 44898 RVA: 0x0026201C File Offset: 0x0026021C [Token(Token = "0x600AF62")] [Address(RVA = "0x198F560", Offset = "0x198E360", VA = "0x18198F560", Slot = "24")] protected internal virtual void WriteData(byte[] buf, int offset, int len) { /* An exception occurred when decompiling this method (0600AF62) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::WriteData(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_57: stloc:IOException(var_4_61, newobj:IOException(IOException::.ctor, ldstr:string("Cannot write application data on closed/failed TLS connection"))) } 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: 0x0600AF63 RID: 44899 RVA: 0x0026208C File Offset: 0x0026028C [Token(Token = "0x600AF63")] [Address(RVA = "0x198F4C0", Offset = "0x198E2C0", VA = "0x18198F4C0", Slot = "25")] protected virtual void SetAppDataSplitMode(int appDataSplitMode) { /* An exception occurred when decompiling this method (0600AF63) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::SetAppDataSplitMode(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_0C: stloc:ArgumentException(var_0_21, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Illegal appDataSplitMode mode: "), ldloc:int32[exp:object](appDataSplitMode)), ldstr:string("appDataSplitMode"))) } 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: 0x0600AF64 RID: 44900 RVA: 0x002620BC File Offset: 0x002602BC [Token(Token = "0x600AF64")] [Address(RVA = "0x198F800", Offset = "0x198E600", VA = "0x18198F800", Slot = "26")] protected virtual void WriteHandshakeMessage(byte[] buf, int off, int len) { byte b = TlsUtilities.ReadUint8(buf, off); int num = this.mRecordStream.mHandshakeHashUpdater.ReadByte(); int num2 = 0; int num3 = this.mRecordStream.mPlaintextLimit; num3 = Math.Min(len, off); this.SafeReadRecord(); num2 += num3; } // Token: 0x17001BBC RID: 7100 // (get) Token: 0x0600AF65 RID: 44901 RVA: 0x0026210C File Offset: 0x0026030C [Token(Token = "0x17001BBC")] public virtual Stream Stream { [Token(Token = "0x600AF65")] [Address(RVA = "0x198FFB0", Offset = "0x198EDB0", VA = "0x18198FFB0", Slot = "27")] get { /* An exception occurred when decompiling this method (0600AF65) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.IO.Stream BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::get_Stream() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_10: stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use Stream in non-blocking mode! Use OfferInput()/OfferOutput() instead."))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } } // Token: 0x0600AF66 RID: 44902 RVA: 0x00262134 File Offset: 0x00260334 [Token(Token = "0x600AF66")] [Address(RVA = "0x198C280", Offset = "0x198B080", VA = "0x18198C280", Slot = "28")] public virtual void CloseInput() { for (;;) { if (!this.mBlocking) { if (this.mClosed) { break; } ByteQueueStream byteQueueStream = this.mInputBuffers; if (this.mAppDataReady) { break; } } } } // Token: 0x0600AF67 RID: 44903 RVA: 0x0026216C File Offset: 0x0026036C [Token(Token = "0x600AF67")] [Address(RVA = "0x198D560", Offset = "0x198C360", VA = "0x18198D560", Slot = "29")] public virtual void OfferInput(byte[] input) { /* An exception occurred when decompiling this method (0600AF67) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferInput(System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_46: stloc:InvalidOperationException(var_7_50, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use OfferInput() in blocking mode! Use Stream instead."))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF68 RID: 44904 RVA: 0x002621CC File Offset: 0x002603CC [Token(Token = "0x600AF68")] [Address(RVA = "0x198CC60", Offset = "0x198BA60", VA = "0x18198CC60", Slot = "30")] public virtual int GetAvailableInputBytes() { /* An exception occurred when decompiling this method (0600AF68) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableInputBytes() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_10: stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableInputBytes() in blocking mode! Use ApplicationDataAvailable() instead."))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF69 RID: 44905 RVA: 0x002621F4 File Offset: 0x002603F4 [Token(Token = "0x600AF69")] [Address(RVA = "0x198E870", Offset = "0x198D670", VA = "0x18198E870", Slot = "31")] public virtual int ReadInput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600AF69) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadInput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_16: stloc:InvalidOperationException(var_2_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadInput() in blocking mode! Use Stream instead."))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF6A RID: 44906 RVA: 0x00262224 File Offset: 0x00260424 [Token(Token = "0x600AF6A")] [Address(RVA = "0x198D780", Offset = "0x198C580", VA = "0x18198D780", Slot = "32")] public virtual void OfferOutput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600AF6A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferOutput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_25: stloc:IOException(var_2_2F, newobj:IOException(IOException::.ctor, ldstr:string("Application data cannot be sent until the handshake is complete!"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF6B RID: 44907 RVA: 0x00262260 File Offset: 0x00260460 [Token(Token = "0x600AF6B")] [Address(RVA = "0x198CCE0", Offset = "0x198BAE0", VA = "0x18198CCE0", Slot = "33")] public virtual int GetAvailableOutputBytes() { /* An exception occurred when decompiling this method (0600AF6B) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableOutputBytes() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_14: stloc:InvalidOperationException(var_0_1E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableOutputBytes() in blocking mode! Use Stream instead."))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF6C RID: 44908 RVA: 0x0026228C File Offset: 0x0026048C [Token(Token = "0x600AF6C")] [Address(RVA = "0x198E970", Offset = "0x198D770", VA = "0x18198E970", Slot = "34")] public virtual int ReadOutput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600AF6C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadOutput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_18: stloc:InvalidOperationException(var_0_22, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadOutput() in blocking mode! Use Stream instead."))) } 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: 0x0600AF6D RID: 44909 RVA: 0x002622BC File Offset: 0x002604BC [Token(Token = "0x600AF6D")] [Address(RVA = "0x198D4A0", Offset = "0x198C2A0", VA = "0x18198D4A0", Slot = "35")] protected virtual void InvalidateSession() { SessionParameters sessionParameters = this.mSessionParameters; if (sessionParameters != 0) { byte[] mMasterSecret = sessionParameters.mMasterSecret; if (mMasterSecret != 0) { int num = 0; Arrays.Fill(mMasterSecret, (byte)num); } this.mSessionParameters = (ulong)0L; } if (this.mTlsSession != 0) { this.mTlsSession = (ulong)0L; } } // Token: 0x0600AF6E RID: 44910 RVA: 0x00262304 File Offset: 0x00260504 [Token(Token = "0x600AF6E")] [Address(RVA = "0x198DA90", Offset = "0x198C890", VA = "0x18198DA90", Slot = "36")] protected virtual void ProcessFinishedMessage(MemoryStream buf) { for (;;) { byte[] array = this.mExpectedVerifyData; if (array != 0) { byte[] array2 = TlsUtilities.ReadFully(array.Length, buf); TlsProtocol.AssertEmpty(buf); if (Arrays.ConstantTimeAreEqual(this.mExpectedVerifyData, array2)) { break; } } } } // Token: 0x0600AF6F RID: 44911 RVA: 0x00262340 File Offset: 0x00260540 [Token(Token = "0x600AF6F")] [Address(RVA = "0x198E240", Offset = "0x198D040", VA = "0x18198E240", Slot = "37")] protected virtual void RaiseAlertFatal(byte alertDescription, string message, Exception cause) { AbstractTlsContext contextAdmin = this.ContextAdmin; byte[] array = new byte[2]; array[0] = (byte)((ulong)2L); array[0] = alertDescription; RecordStream recordStream = this.mRecordStream; } // Token: 0x0600AF70 RID: 44912 RVA: 0x00262380 File Offset: 0x00260580 [Token(Token = "0x600AF70")] [Address(RVA = "0x198E380", Offset = "0x198D180", VA = "0x18198E380", Slot = "38")] protected virtual void RaiseAlertWarning(byte alertDescription, string message) { AbstractTlsContext contextAdmin = this.ContextAdmin; byte[] array = new byte[2]; array[0] = (byte)((ulong)1L); array[0] = alertDescription; this.SafeReadRecord(); } // Token: 0x0600AF71 RID: 44913 RVA: 0x002623BC File Offset: 0x002605BC [Token(Token = "0x600AF71")] [Address(RVA = "0x198F0E0", Offset = "0x198DEE0", VA = "0x18198F0E0", Slot = "39")] protected virtual void SendCertificateMessage(Certificate certificate) { if (certificate == 0) { Certificate emptyChain = Certificate.EmptyChain; } if (certificate.Length != 0 && this.ToString() == 0) { string text = this.ToString(); bool flag; if (flag) { int hashCode = text.GetHashCode(); TlsContext context = this.Context; return; } } TlsProtocol.HandshakeMessage handshakeMessage; handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600AF72 RID: 44914 RVA: 0x00262414 File Offset: 0x00260614 [Token(Token = "0x600AF72")] [Address(RVA = "0x198F2A0", Offset = "0x198E0A0", VA = "0x18198F2A0", Slot = "40")] protected virtual void SendChangeCipherSpecMessage() { int length = new byte[] { (byte)((ulong)1L) }.Length; this.SafeReadRecord(); this.mRecordStream.SentWriteCipherSpec(); } // Token: 0x0600AF73 RID: 44915 RVA: 0x00262450 File Offset: 0x00260650 [Token(Token = "0x600AF73")] [Address(RVA = "0x198F340", Offset = "0x198E140", VA = "0x18198F340", Slot = "41")] protected virtual void SendFinishedMessage() { string text = this.ToString(); TlsProtocol.HandshakeMessage handshakeMessage; int num = handshakeMessage.ReadByte(); handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600AF74 RID: 44916 RVA: 0x00262478 File Offset: 0x00260678 [Token(Token = "0x600AF74")] [Address(RVA = "0x198F430", Offset = "0x198E230", VA = "0x18198F430", Slot = "42")] protected virtual void SendSupplementalDataMessage(IList supplementalData) { TlsProtocol.HandshakeMessage handshakeMessage; TlsProtocol.WriteSupplementalData(handshakeMessage, supplementalData); handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600AF75 RID: 44917 RVA: 0x0026249C File Offset: 0x0026069C [Token(Token = "0x600AF75")] [Address(RVA = "0x198C9E0", Offset = "0x198B7E0", VA = "0x18198C9E0", Slot = "43")] protected virtual byte[] CreateVerifyData(bool isServer) { string text = this.ToString(); if (isServer) { } RecordStream recordStream = this.mRecordStream; byte[] array; return array; } // Token: 0x0600AF76 RID: 44918 RVA: 0x002624C4 File Offset: 0x002606C4 [Token(Token = "0x600AF76")] [Address(RVA = "0x198C3C0", Offset = "0x198B1C0", VA = "0x18198C3C0", Slot = "44")] public virtual void Close() { TlsContext context = this.Context; } // Token: 0x0600AF77 RID: 44919 RVA: 0x002624D8 File Offset: 0x002606D8 [Token(Token = "0x600AF77")] [Address(RVA = "0x198CC40", Offset = "0x198BA40", VA = "0x18198CC40", Slot = "45")] protected internal virtual void Flush() { this.mRecordStream.Flush(); } // Token: 0x17001BBD RID: 7101 // (get) Token: 0x0600AF78 RID: 44920 RVA: 0x002624F8 File Offset: 0x002606F8 [Token(Token = "0x17001BBD")] public virtual bool IsClosed { [Token(Token = "0x600AF78")] [Address(RVA = "0x198FF90", Offset = "0x198ED90", VA = "0x18198FF90", Slot = "46")] get { return this.mClosed; } } // Token: 0x0600AF79 RID: 44921 RVA: 0x0026250C File Offset: 0x0026070C [Token(Token = "0x600AF79")] [Address(RVA = "0x198DDD0", Offset = "0x198CBD0", VA = "0x18198DDD0", Slot = "47")] protected virtual short ProcessMaxFragmentLengthExtension(IDictionary clientExtensions, IDictionary serverExtensions, byte alertDescription) { /* An exception occurred when decompiling this method (0600AF79) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int16 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessMaxFragmentLengthExtension(System.Collections.IDictionary,System.Collections.IDictionary,System.Byte) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_26: stloc:TlsFatalAlert(var_2_2C, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint8(alertDescription))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600AF7A RID: 44922 RVA: 0x00262548 File Offset: 0x00260748 [Token(Token = "0x600AF7A")] [Address(RVA = "0x198EBC0", Offset = "0x198D9C0", VA = "0x18198EBC0", Slot = "48")] protected virtual void RefuseRenegotiation() { bool flag; do { string text = this.ToString(); } while (flag); TlsContext context = this.Context; } // Token: 0x0600AF7B RID: 44923 RVA: 0x00262568 File Offset: 0x00260768 [Token(Token = "0x600AF7B")] [Address(RVA = "0x198C000", Offset = "0x198AE00", VA = "0x18198C000")] protected internal static void AssertEmpty(MemoryStream buf) { long length = buf.Length; bool canWrite = buf.CanWrite; } // Token: 0x0600AF7C RID: 44924 RVA: 0x00262584 File Offset: 0x00260784 [Token(Token = "0x600AF7C")] [Address(RVA = "0x198C8D0", Offset = "0x198B6D0", VA = "0x18198C8D0")] protected internal static byte[] CreateRandomBlock(bool useGmtUnixTime, IRandomGenerator randomGenerator) { byte[] array = new byte[32]; if (useGmtUnixTime) { int num = 0; TlsUtilities.WriteGmtUnixTime(array, num); } return array; } // Token: 0x0600AF7D RID: 44925 RVA: 0x002625B0 File Offset: 0x002607B0 [Token(Token = "0x600AF7D")] [Address(RVA = "0x198C980", Offset = "0x198B780", VA = "0x18198C980")] protected internal static byte[] CreateRenegotiationInfo(byte[] renegotiated_connection) { return TlsUtilities.EncodeOpaque8(renegotiated_connection); } // Token: 0x0600AF7E RID: 44926 RVA: 0x002625C4 File Offset: 0x002607C4 [Token(Token = "0x600AF7E")] [Address(RVA = "0x198CB00", Offset = "0x198B900", VA = "0x18198CB00")] protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange) { while (0 != 0) { } } // Token: 0x0600AF7F RID: 44927 RVA: 0x002625E4 File Offset: 0x002607E4 [Token(Token = "0x600AF7F")] [Address(RVA = "0x198CD70", Offset = "0x198BB70", VA = "0x18198CD70")] protected internal static byte[] GetCurrentPrfHash(TlsContext context, TlsHandshakeHash handshakeHash, byte[] sslSender) { if (sslSender != 0 && TlsUtilities.IsSsl(context)) { int length = sslSender.Length; } return DigestUtilities.DoFinal(handshakeHash); } // Token: 0x0600AF80 RID: 44928 RVA: 0x00262614 File Offset: 0x00260814 [Token(Token = "0x600AF80")] [Address(RVA = "0x198E630", Offset = "0x198D430", VA = "0x18198E630")] protected internal static IDictionary ReadExtensions(MemoryStream input) { MemoryStream memoryStream; IDictionary dictionary; do { long length = input.Length; bool canWrite = input.CanWrite; if (length >= (canWrite ? 1L : 0L)) { goto IL_5F; } byte[] array = TlsUtilities.ReadOpaque16(input); TlsProtocol.AssertEmpty(input); int num; memoryStream = new MemoryStream(array, num != 0); num = 0; dictionary = Platform.CreateHashtable(); long length2 = memoryStream.Length; bool canWrite2 = memoryStream.CanWrite; if (length2 >= (canWrite2 ? 1L : 0L)) { break; } int num2 = TlsUtilities.ReadUint16(memoryStream); } while (TlsUtilities.ReadOpaque16(memoryStream) != 0); return dictionary; IL_5F: throw new NullReferenceException(); } // Token: 0x0600AF81 RID: 44929 RVA: 0x00262688 File Offset: 0x00260888 [Token(Token = "0x600AF81")] [Address(RVA = "0x198EA30", Offset = "0x198D830", VA = "0x18198EA30")] protected internal static IList ReadSupplementalDataMessage(MemoryStream input) { byte[] array = TlsUtilities.ReadOpaque24(input); TlsProtocol.AssertEmpty(input); int num; MemoryStream memoryStream = new MemoryStream(array, num != 0); num = 0; IList list = Platform.CreateArrayList(); long length = memoryStream.Length; bool canWrite = memoryStream.CanWrite; if (length < (canWrite ? 1L : 0L)) { int num2 = TlsUtilities.ReadUint16(memoryStream); byte[] array2 = TlsUtilities.ReadOpaque16(memoryStream); SupplementalDataEntry supplementalDataEntry; supplementalDataEntry.mDataType = num2; supplementalDataEntry.mData = array2; } return list; } // Token: 0x0600AF82 RID: 44930 RVA: 0x002626F8 File Offset: 0x002608F8 [Token(Token = "0x600AF82")] [Address(RVA = "0x198F730", Offset = "0x198E530", VA = "0x18198F730")] protected internal static void WriteExtensions(Stream output, IDictionary extensions) { MemoryStream memoryStream = new MemoryStream(); TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, true); int num = 0; TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, num != 0); } // Token: 0x0600AF83 RID: 44931 RVA: 0x00262724 File Offset: 0x00260924 [Token(Token = "0x600AF83")] [Address(RVA = "0x198F970", Offset = "0x198E770", VA = "0x18198F970")] protected internal static void WriteSelectedExtensions(Stream output, IDictionary extensions, bool selectEmpty) { int num; do { num = 0; if (num < typeof(int).TypeHandle) { num += num; num++; } bool flag = "{il2cpp field on {'constant5' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StackPointer)}, offset 0x18}" == num; } while (num != 0); } // Token: 0x0600AF84 RID: 44932 RVA: 0x00262764 File Offset: 0x00260964 [Token(Token = "0x600AF84")] [Address(RVA = "0x198FC20", Offset = "0x198EA20", VA = "0x18198FC20")] protected internal static void WriteSupplementalData(Stream output, IList supplementalData) { int num; do { num = 0; MemoryStream memoryStream = new MemoryStream(); if (memoryStream != 0) { if (memoryStream == 0) { goto IL_29; } string text = memoryStream.ToString(); } ObjRef objRef; if (objRef != 0) { } } while (num != 0); return; IL_29: throw new NullReferenceException(); } // Token: 0x0600AF85 RID: 44933 RVA: 0x002627A8 File Offset: 0x002609A8 [Token(Token = "0x600AF85")] [Address(RVA = "0x198CE60", Offset = "0x198BC60", VA = "0x18198CE60")] protected internal static int GetPrfAlgorithm(TlsContext context, int ciphersuite) { /* An exception occurred when decompiling this method (0600AF85) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetPrfAlgorithm(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_52: stloc:TlsFatalAlert(var_5_59, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_6))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x04007026 RID: 28710 [Token(Token = "0x4007026")] protected const short CS_START = 0; // Token: 0x04007027 RID: 28711 [Token(Token = "0x4007027")] protected const short CS_CLIENT_HELLO = 1; // Token: 0x04007028 RID: 28712 [Token(Token = "0x4007028")] protected const short CS_SERVER_HELLO = 2; // Token: 0x04007029 RID: 28713 [Token(Token = "0x4007029")] protected const short CS_SERVER_SUPPLEMENTAL_DATA = 3; // Token: 0x0400702A RID: 28714 [Token(Token = "0x400702A")] protected const short CS_SERVER_CERTIFICATE = 4; // Token: 0x0400702B RID: 28715 [Token(Token = "0x400702B")] protected const short CS_CERTIFICATE_STATUS = 5; // Token: 0x0400702C RID: 28716 [Token(Token = "0x400702C")] protected const short CS_SERVER_KEY_EXCHANGE = 6; // Token: 0x0400702D RID: 28717 [Token(Token = "0x400702D")] protected const short CS_CERTIFICATE_REQUEST = 7; // Token: 0x0400702E RID: 28718 [Token(Token = "0x400702E")] protected const short CS_SERVER_HELLO_DONE = 8; // Token: 0x0400702F RID: 28719 [Token(Token = "0x400702F")] protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 9; // Token: 0x04007030 RID: 28720 [Token(Token = "0x4007030")] protected const short CS_CLIENT_CERTIFICATE = 10; // Token: 0x04007031 RID: 28721 [Token(Token = "0x4007031")] protected const short CS_CLIENT_KEY_EXCHANGE = 11; // Token: 0x04007032 RID: 28722 [Token(Token = "0x4007032")] protected const short CS_CERTIFICATE_VERIFY = 12; // Token: 0x04007033 RID: 28723 [Token(Token = "0x4007033")] protected const short CS_CLIENT_FINISHED = 13; // Token: 0x04007034 RID: 28724 [Token(Token = "0x4007034")] protected const short CS_SERVER_SESSION_TICKET = 14; // Token: 0x04007035 RID: 28725 [Token(Token = "0x4007035")] protected const short CS_SERVER_FINISHED = 15; // Token: 0x04007036 RID: 28726 [Token(Token = "0x4007036")] protected const short CS_END = 16; // Token: 0x04007037 RID: 28727 [Token(Token = "0x4007037")] protected const short ADS_MODE_1_Nsub1 = 0; // Token: 0x04007038 RID: 28728 [Token(Token = "0x4007038")] protected const short ADS_MODE_0_N = 1; // Token: 0x04007039 RID: 28729 [Token(Token = "0x4007039")] protected const short ADS_MODE_0_N_FIRSTONLY = 2; // Token: 0x0400703A RID: 28730 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400703A")] private ByteQueue mApplicationDataQueue; // Token: 0x0400703B RID: 28731 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400703B")] private ByteQueue mAlertQueue; // Token: 0x0400703C RID: 28732 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400703C")] private ByteQueue mHandshakeQueue; // Token: 0x0400703D RID: 28733 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400703D")] internal RecordStream mRecordStream; // Token: 0x0400703E RID: 28734 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400703E")] protected SecureRandom mSecureRandom; // Token: 0x0400703F RID: 28735 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400703F")] private TlsStream mTlsStream; // Token: 0x04007040 RID: 28736 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007040")] private bool mClosed; // Token: 0x04007041 RID: 28737 [FieldOffset(Offset = "0x41")] [Token(Token = "0x4007041")] private bool mFailedWithError; // Token: 0x04007042 RID: 28738 [FieldOffset(Offset = "0x42")] [Token(Token = "0x4007042")] private bool mAppDataReady; // Token: 0x04007043 RID: 28739 [FieldOffset(Offset = "0x43")] [Token(Token = "0x4007043")] private bool mAppDataSplitEnabled; // Token: 0x04007044 RID: 28740 [FieldOffset(Offset = "0x44")] [Token(Token = "0x4007044")] private int mAppDataSplitMode; // Token: 0x04007045 RID: 28741 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007045")] private byte[] mExpectedVerifyData; // Token: 0x04007046 RID: 28742 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4007046")] protected TlsSession mTlsSession; // Token: 0x04007047 RID: 28743 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4007047")] protected SessionParameters mSessionParameters; // Token: 0x04007048 RID: 28744 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4007048")] protected SecurityParameters mSecurityParameters; // Token: 0x04007049 RID: 28745 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4007049")] protected Certificate mPeerCertificate; // Token: 0x0400704A RID: 28746 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400704A")] protected int[] mOfferedCipherSuites; // Token: 0x0400704B RID: 28747 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400704B")] protected byte[] mOfferedCompressionMethods; // Token: 0x0400704C RID: 28748 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400704C")] protected IDictionary mClientExtensions; // Token: 0x0400704D RID: 28749 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400704D")] protected IDictionary mServerExtensions; // Token: 0x0400704E RID: 28750 [FieldOffset(Offset = "0x90")] [Token(Token = "0x400704E")] protected short mConnectionState; // Token: 0x0400704F RID: 28751 [FieldOffset(Offset = "0x92")] [Token(Token = "0x400704F")] protected bool mResumedSession; // Token: 0x04007050 RID: 28752 [FieldOffset(Offset = "0x93")] [Token(Token = "0x4007050")] protected bool mReceivedChangeCipherSpec; // Token: 0x04007051 RID: 28753 [FieldOffset(Offset = "0x94")] [Token(Token = "0x4007051")] protected bool mSecureRenegotiation; // Token: 0x04007052 RID: 28754 [FieldOffset(Offset = "0x95")] [Token(Token = "0x4007052")] protected bool mAllowCertificateStatus; // Token: 0x04007053 RID: 28755 [FieldOffset(Offset = "0x96")] [Token(Token = "0x4007053")] protected bool mExpectSessionTicket; // Token: 0x04007054 RID: 28756 [FieldOffset(Offset = "0x97")] [Token(Token = "0x4007054")] protected bool mBlocking; // Token: 0x04007055 RID: 28757 [FieldOffset(Offset = "0x98")] [Token(Token = "0x4007055")] protected ByteQueueStream mInputBuffers; // Token: 0x04007056 RID: 28758 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4007056")] protected ByteQueueStream mOutputBuffer; // Token: 0x02001B85 RID: 7045 [Token(Token = "0x2001B85")] internal class HandshakeMessage : MemoryStream { // Token: 0x0600AF86 RID: 44934 RVA: 0x00262810 File Offset: 0x00260A10 [Token(Token = "0x600AF86")] [Address(RVA = "0x1979390", Offset = "0x1978190", VA = "0x181979390")] internal HandshakeMessage(byte handshakeType) { } // Token: 0x0600AF87 RID: 44935 RVA: 0x00262820 File Offset: 0x00260A20 [Token(Token = "0x600AF87")] [Address(RVA = "0x19793A0", Offset = "0x19781A0", VA = "0x1819793A0")] internal HandshakeMessage(byte handshakeType, int length) : base((int)handshakeType) { TlsUtilities.WriteUint8(handshakeType, this); TlsUtilities.WriteUint24(0, this); } // Token: 0x0600AF88 RID: 44936 RVA: 0x00262844 File Offset: 0x00260A44 [Token(Token = "0x600AF88")] [Address(RVA = "0x18D60D0", Offset = "0x18D4ED0", VA = "0x1818D60D0")] internal void Write(byte[] data) { int num = this.ReadByte(); } // Token: 0x0600AF89 RID: 44937 RVA: 0x00262860 File Offset: 0x00260A60 [Token(Token = "0x600AF89")] [Address(RVA = "0x1979260", Offset = "0x1978060", VA = "0x181979260")] internal void WriteToRecordStream(TlsProtocol protocol) { bool canWrite = this.CanWrite; long position = this.Position; bool canWrite2 = this.CanWrite; } } } }