using System; using System.Collections.Generic; using System.Net.WebSockets; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; using BestHTTP.Extensions; using BestHTTP.Logger; using Cpp2IlInjected; namespace BestHTTP.WebSocket { // Token: 0x020012CE RID: 4814 [Token(Token = "0x20012CE")] [StructLayout(3)] public class NativeWebSocket { // Token: 0x170013A4 RID: 5028 // (get) Token: 0x060078B0 RID: 30896 RVA: 0x00191954 File Offset: 0x0018FB54 // (set) Token: 0x060078B1 RID: 30897 RVA: 0x00191968 File Offset: 0x0018FB68 [Token(Token = "0x170013A4")] public WebSocketStates State { [Token(Token = "0x60078B0")] [Address(RVA = "0x421DE0", Offset = "0x4207E0", VA = "0x180421DE0")] get; [Token(Token = "0x60078B1")] [Address(RVA = "0x421DF0", Offset = "0x4207F0", VA = "0x180421DF0")] private set; } = (WebSocketStates)((ulong)4L); // Token: 0x060078B2 RID: 30898 RVA: 0x0019197C File Offset: 0x0018FB7C [Token(Token = "0x60078B2")] [Address(RVA = "0x6F0D40", Offset = "0x6EF740", VA = "0x1806F0D40")] public NativeWebSocket(Uri uri) { ClientWebSocket clientWebSocket = new ClientWebSocket(); this._webSocket = clientWebSocket; Queue queue = new Queue(); this._outboundMessageQueue = queue; List> list = new List(); this._inboundFrames = list; List list2 = new List(); this._rentedBuffers = list2; base..ctor(); bool flag = HTTPProtocolFactory.IsSecureProtocol(uri); string text = "ws"; if (flag) { text = "wss"; } if (uri.Port != -1) { int port = uri.Port; } bool flag2 = text.Equals("wss", StringComparison.OrdinalIgnoreCase); object[] array = new object[6]; if (text != 0) { } array[0] = text; if ("://" != 0) { } array[1] = "://"; string host = uri.Host; if (host != 0) { } array[2] = host; if (":" != 0) { } array[3] = ":"; int num; if (num != 0) { } array[4] = num; string requestPathAndQueryURL = uri.GetRequestPathAndQueryURL(); if (requestPathAndQueryURL != 0) { } array[5] = requestPathAndQueryURL; Uri uri2 = new Uri(string.Concat(array)); this._uri = uri2; if (BPHGKAEDBPE.KNJJNNNAEKB(uri2)) { bool flag3 = DBPPLLLMEGJ.CMJMEEHMHJO(delegate(byte[] token, int length) { string @string = Encoding.UTF8.GetString(token); string text2 = "Bearer " + @string; this._webSocket._options.SetRequestHeader("Authorization", text2); }); } } // Token: 0x060078B3 RID: 30899 RVA: 0x00191AC0 File Offset: 0x0018FCC0 [Token(Token = "0x60078B3")] [Address(RVA = "0x6F0C60", Offset = "0x6EF660", VA = "0x1806F0C60")] public void SetHeader(string name, string value) { this._webSocket._options.SetRequestHeader(name, value); } // Token: 0x060078B4 RID: 30900 RVA: 0x00191AE8 File Offset: 0x0018FCE8 [Token(Token = "0x60078B4")] [Address(RVA = "0x6F02A0", Offset = "0x6EECA0", VA = "0x1806F02A0")] public void Open() { Action defaultContextAction = AsyncVoidMethodBuilder.Create().m_coreState.m_defaultContextAction; } // Token: 0x060078B5 RID: 30901 RVA: 0x00191B08 File Offset: 0x0018FD08 [Token(Token = "0x60078B5")] [Address(RVA = "0x6F01E0", Offset = "0x6EEBE0", VA = "0x1806F01E0")] public void Close() { Action defaultContextAction = AsyncVoidMethodBuilder.Create().m_coreState.m_defaultContextAction; } // Token: 0x060078B6 RID: 30902 RVA: 0x00191B28 File Offset: 0x0018FD28 [Token(Token = "0x60078B6")] [Address(RVA = "0x6F0110", Offset = "0x6EEB10", VA = "0x1806F0110")] private Task CloseInternal() { } // Token: 0x060078B7 RID: 30903 RVA: 0x00191B38 File Offset: 0x0018FD38 [Token(Token = "0x60078B7")] [Address(RVA = "0x6F0AE0", Offset = "0x6EF4E0", VA = "0x1806F0AE0")] public void Send(string message) { this._webSocket.Dispose(); Queue outboundMessageQueue = this._outboundMessageQueue; int num = 0; outboundMessageQueue.Enqueue(num); bool flag = this._outboundMessagePendingEvent.Set(); } // Token: 0x060078B8 RID: 30904 RVA: 0x00191B74 File Offset: 0x0018FD74 [Token(Token = "0x60078B8")] [Address(RVA = "0x6F0BA0", Offset = "0x6EF5A0", VA = "0x1806F0BA0")] public void Send(byte[] message) { this._webSocket.Dispose(); Queue outboundMessageQueue = this._outboundMessageQueue; bool flag = this._outboundMessagePendingEvent.Set(); } // Token: 0x060078B9 RID: 30905 RVA: 0x00191BA8 File Offset: 0x0018FDA8 [Token(Token = "0x60078B9")] [Address(RVA = "0x6F0A00", Offset = "0x6EF400", VA = "0x1806F0A00")] private Task SendLoop(CancellationToken cancellationToken) { } // Token: 0x060078BA RID: 30906 RVA: 0x00191BB8 File Offset: 0x0018FDB8 [Token(Token = "0x60078BA")] [Address(RVA = "0x6F0350", Offset = "0x6EED50", VA = "0x1806F0350")] private Task ReceiveLoop() { } // Token: 0x060078BB RID: 30907 RVA: 0x00191BC8 File Offset: 0x0018FDC8 [Token(Token = "0x60078BB")] [Address(RVA = "0x6F0420", Offset = "0x6EEE20", VA = "0x1806F0420")] private Task Receive() { /* An exception occurred when decompiling this method (060078BB) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Threading.Tasks.Task`1 BestHTTP.WebSocket.NativeWebSocket::Receive() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:AsyncTaskMethodBuilder`1(var_3_0B, call:AsyncTaskMethodBuilder`1(AsyncTaskMethodBuilder`1::Create)) } 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: 0x060078BC RID: 30908 RVA: 0x00191BE0 File Offset: 0x0018FDE0 [Token(Token = "0x60078BC")] [Address(RVA = "0x6F0940", Offset = "0x6EF340", VA = "0x1806F0940")] private void SafeRaiseOnOpen() { NativeWebSocket.OnWebSocketOpenDelegate onOpen = this.OnOpen; if (onOpen != 0) { onOpen(this); } ILogger logger = HTTPManager.Logger; } // Token: 0x060078BD RID: 30909 RVA: 0x00191C10 File Offset: 0x0018FE10 [Token(Token = "0x60078BD")] [Address(RVA = "0x6F0870", Offset = "0x6EF270", VA = "0x1806F0870")] private void SafeRaiseOnMessage(string message) { NativeWebSocket.OnWebSocketMessageDelegate onMessage = this.OnMessage; if (onMessage != 0) { onMessage(this, message); } ILogger logger = HTTPManager.Logger; } // Token: 0x060078BE RID: 30910 RVA: 0x00191C40 File Offset: 0x0018FE40 [Token(Token = "0x60078BE")] [Address(RVA = "0x6F0510", Offset = "0x6EEF10", VA = "0x1806F0510")] private void SafeRaiseOnBinary(byte[] message) { NativeWebSocket.OnWebSocketBinaryDelegate onBinary = this.OnBinary; if (onBinary != 0) { onBinary(this, message); } ILogger logger = HTTPManager.Logger; } // Token: 0x060078BF RID: 30911 RVA: 0x00191C70 File Offset: 0x0018FE70 [Token(Token = "0x60078BF")] [Address(RVA = "0x6F05E0", Offset = "0x6EEFE0", VA = "0x1806F05E0")] private void SafeRaiseOnClosed(ushort statusCode, string statusMessage) { NativeWebSocket.OnWebSocketClosedDelegate onClosed = this.OnClosed; if (onClosed != 0) { onClosed(this, statusCode, statusMessage); } ILogger logger = HTTPManager.Logger; } // Token: 0x060078C0 RID: 30912 RVA: 0x00191CA0 File Offset: 0x0018FEA0 [Token(Token = "0x60078C0")] [Address(RVA = "0x6F07A0", Offset = "0x6EF1A0", VA = "0x1806F07A0")] private void SafeRaiseOnError(Exception exception) { NativeWebSocket.OnWebSocketErrorDelegate onError = this.OnError; if (onError != 0) { onError(this, exception); } ILogger logger = HTTPManager.Logger; } // Token: 0x060078C1 RID: 30913 RVA: 0x00191CD0 File Offset: 0x0018FED0 [Token(Token = "0x60078C1")] [Address(RVA = "0x6F06D0", Offset = "0x6EF0D0", VA = "0x1806F06D0")] private void SafeRaiseOnErrorDesc(string errorDescription) { NativeWebSocket.OnWebSocketErrorDescriptionDelegate onErrorDesc = this.OnErrorDesc; if (onErrorDesc != 0) { onErrorDesc(this, errorDescription); } ILogger logger = HTTPManager.Logger; } // Token: 0x04005707 RID: 22279 [Token(Token = "0x4005707")] private const int MaxFragmentSize = 32767; // Token: 0x04005708 RID: 22280 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005708")] public NativeWebSocket.OnWebSocketOpenDelegate OnOpen; // Token: 0x04005709 RID: 22281 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005709")] public NativeWebSocket.OnWebSocketMessageDelegate OnMessage; // Token: 0x0400570A RID: 22282 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400570A")] public NativeWebSocket.OnWebSocketBinaryDelegate OnBinary; // Token: 0x0400570B RID: 22283 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400570B")] public NativeWebSocket.OnWebSocketClosedDelegate OnClosed; // Token: 0x0400570C RID: 22284 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400570C")] public NativeWebSocket.OnWebSocketErrorDelegate OnError; // Token: 0x0400570D RID: 22285 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400570D")] public NativeWebSocket.OnWebSocketErrorDescriptionDelegate OnErrorDesc; // Token: 0x0400570F RID: 22287 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400570F")] private readonly Uri _uri; // Token: 0x04005710 RID: 22288 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4005710")] private readonly ClientWebSocket _webSocket; // Token: 0x04005711 RID: 22289 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x4005711")] private readonly Queue _outboundMessageQueue; // Token: 0x04005712 RID: 22290 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x4005712")] private readonly List> _inboundFrames; // Token: 0x04005713 RID: 22291 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x4005713")] private readonly List _rentedBuffers; // Token: 0x04005714 RID: 22292 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x4005714")] private CancellationTokenSource _sendLoopCancellationTokenSource; // Token: 0x04005715 RID: 22293 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x4005715")] private AutoResetEvent _outboundMessagePendingEvent; // Token: 0x020012CF RID: 4815 [Token(Token = "0x20012CF")] private struct OutboundMessage { // Token: 0x060078C3 RID: 30915 RVA: 0x00191D44 File Offset: 0x0018FF44 [Token(Token = "0x60078C3")] [Address(RVA = "0x141E0", Offset = "0x135E0", VA = "0x1800141E0")] public OutboundMessage(byte[] binaryMessage) { this.TextMessage = (ulong)1L; } // Token: 0x060078C4 RID: 30916 RVA: 0x00191D5C File Offset: 0x0018FF5C [Token(Token = "0x60078C4")] [Address(RVA = "0x14200", Offset = "0x13600", VA = "0x180014200")] public OutboundMessage(string textMessage) { int num = 0; this.TextMessage = num; } // Token: 0x04005716 RID: 22294 [global::Cpp2IlInjected.FieldOffset(Offset = "0x0")] [Token(Token = "0x4005716")] public readonly WebSocketMessageType MessageType; // Token: 0x04005717 RID: 22295 [global::Cpp2IlInjected.FieldOffset(Offset = "0x8")] [Token(Token = "0x4005717")] public readonly byte[] BinaryMessage; // Token: 0x04005718 RID: 22296 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005718")] public readonly string TextMessage; } // Token: 0x020012D0 RID: 4816 [Token(Token = "0x20012D0")] private struct InboundMessage { // Token: 0x060078C5 RID: 30917 RVA: 0x00191D74 File Offset: 0x0018FF74 [Token(Token = "0x60078C5")] [Address(RVA = "0x14130", Offset = "0x13530", VA = "0x180014130")] public InboundMessage(byte[] binaryMessage) { this.CloseStatus = binaryMessage; int num = 0; this.TextMessage = (ulong)1L; this.CloseStatusDescription = num; } // Token: 0x060078C6 RID: 30918 RVA: 0x00191D9C File Offset: 0x0018FF9C [Token(Token = "0x60078C6")] [Address(RVA = "0x14110", Offset = "0x13510", VA = "0x180014110")] public InboundMessage(string textMessage) { int num = 0; this.CloseStatusDescription = textMessage; this.TextMessage = num; this.CloseStatus = num; } // Token: 0x060078C7 RID: 30919 RVA: 0x00191DC4 File Offset: 0x0018FFC4 [Token(Token = "0x60078C7")] [Address(RVA = "0x14150", Offset = "0x13550", VA = "0x180014150")] public InboundMessage(WebSocketCloseStatus? closeStatus, string closeStatusDescription) { int num = 0; this.TextMessage = (ulong)2L; this.CloseStatus = num; this.CloseStatusDescription = num; } // Token: 0x04005719 RID: 22297 [global::Cpp2IlInjected.FieldOffset(Offset = "0x0")] [Token(Token = "0x4005719")] public readonly WebSocketMessageType MessageType; // Token: 0x0400571A RID: 22298 [global::Cpp2IlInjected.FieldOffset(Offset = "0x8")] [Token(Token = "0x400571A")] public readonly byte[] BinaryMessage; // Token: 0x0400571B RID: 22299 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x400571B")] public readonly string TextMessage; // Token: 0x0400571C RID: 22300 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400571C")] public readonly WebSocketCloseStatus? CloseStatus; // Token: 0x0400571D RID: 22301 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400571D")] public readonly string CloseStatusDescription; } // Token: 0x020012D1 RID: 4817 [Token(Token = "0x20012D1")] public sealed class OnWebSocketOpenDelegate : MulticastDelegate { // Token: 0x060078C8 RID: 30920 RVA: 0x00191DEC File Offset: 0x0018FFEC [Token(Token = "0x60078C8")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketOpenDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078C9 RID: 30921 RVA: 0x00191E08 File Offset: 0x00190008 [Token(Token = "0x60078C9")] [Address(RVA = "0x6F1D00", Offset = "0x6F0700", VA = "0x1806F1D00", Slot = "13")] public void Invoke(NativeWebSocket webSocket) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078CA RID: 30922 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078CA")] [Address(RVA = "0x42BD30", Offset = "0x42A730", VA = "0x18042BD30", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078CB RID: 30923 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078CB")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D2 RID: 4818 [Token(Token = "0x20012D2")] public sealed class OnWebSocketMessageDelegate : MulticastDelegate { // Token: 0x060078CC RID: 30924 RVA: 0x00191EC4 File Offset: 0x001900C4 [Token(Token = "0x60078CC")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketMessageDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078CD RID: 30925 RVA: 0x00191EE0 File Offset: 0x001900E0 [Token(Token = "0x60078CD")] [Address(RVA = "0x6F2630", Offset = "0x6F1030", VA = "0x1806F2630", Slot = "13")] public void Invoke(NativeWebSocket webSocket, string message) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078CE RID: 30926 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078CE")] [Address(RVA = "0x4330B0", Offset = "0x431AB0", VA = "0x1804330B0", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, string message, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078CF RID: 30927 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078CF")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D3 RID: 4819 [Token(Token = "0x20012D3")] public sealed class OnWebSocketBinaryDelegate : MulticastDelegate { // Token: 0x060078D0 RID: 30928 RVA: 0x00191F40 File Offset: 0x00190140 [Token(Token = "0x60078D0")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketBinaryDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078D1 RID: 30929 RVA: 0x00191F5C File Offset: 0x0019015C [Token(Token = "0x60078D1")] [Address(RVA = "0x6F1930", Offset = "0x6F0330", VA = "0x1806F1930", Slot = "13")] public void Invoke(NativeWebSocket webSocket, byte[] data) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078D2 RID: 30930 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078D2")] [Address(RVA = "0x4330B0", Offset = "0x431AB0", VA = "0x1804330B0", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, byte[] data, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078D3 RID: 30931 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078D3")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D4 RID: 4820 [Token(Token = "0x20012D4")] public sealed class OnWebSocketClosedDelegate : MulticastDelegate { // Token: 0x060078D4 RID: 30932 RVA: 0x0019202C File Offset: 0x0019022C [Token(Token = "0x60078D4")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketClosedDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078D5 RID: 30933 RVA: 0x00192048 File Offset: 0x00190248 [Token(Token = "0x60078D5")] [Address(RVA = "0x6F21C0", Offset = "0x6F0BC0", VA = "0x1806F21C0", Slot = "13")] public void Invoke(NativeWebSocket webSocket, ushort code, string message) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078D6 RID: 30934 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078D6")] [Address(RVA = "0x6F2080", Offset = "0x6F0A80", VA = "0x1806F2080", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, ushort code, string message, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078D7 RID: 30935 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078D7")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D5 RID: 4821 [Token(Token = "0x20012D5")] public sealed class OnWebSocketErrorDelegate : MulticastDelegate { // Token: 0x060078D8 RID: 30936 RVA: 0x001920F4 File Offset: 0x001902F4 [Token(Token = "0x60078D8")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketErrorDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078D9 RID: 30937 RVA: 0x00192110 File Offset: 0x00190310 [Token(Token = "0x60078D9")] [Address(RVA = "0x6F1930", Offset = "0x6F0330", VA = "0x1806F1930", Slot = "13")] public void Invoke(NativeWebSocket webSocket, Exception ex) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078DA RID: 30938 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078DA")] [Address(RVA = "0x4330B0", Offset = "0x431AB0", VA = "0x1804330B0", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, Exception ex, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078DB RID: 30939 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078DB")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D6 RID: 4822 [Token(Token = "0x20012D6")] public sealed class OnWebSocketErrorDescriptionDelegate : MulticastDelegate { // Token: 0x060078DC RID: 30940 RVA: 0x001921D4 File Offset: 0x001903D4 [Token(Token = "0x60078DC")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public OnWebSocketErrorDescriptionDelegate(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x060078DD RID: 30941 RVA: 0x001921F0 File Offset: 0x001903F0 [Token(Token = "0x60078DD")] [Address(RVA = "0x6F2630", Offset = "0x6F1030", VA = "0x1806F2630", Slot = "13")] public void Invoke(NativeWebSocket webSocket, string reason) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x060078DE RID: 30942 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078DE")] [Address(RVA = "0x4330B0", Offset = "0x431AB0", VA = "0x1804330B0", Slot = "14")] public IAsyncResult BeginInvoke(NativeWebSocket webSocket, string reason, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078DF RID: 30943 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078DF")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x020012D7 RID: 4823 [Token(Token = "0x20012D7")] public static class WaitHandleAsyncFactory { // Token: 0x060078E0 RID: 30944 RVA: 0x00192250 File Offset: 0x00190450 [Token(Token = "0x60078E0")] [Address(RVA = "0x6F7FF0", Offset = "0x6F69F0", VA = "0x1806F7FF0")] public static Task FromWaitHandle(WaitHandle handle) { } // Token: 0x060078E1 RID: 30945 RVA: 0x00192260 File Offset: 0x00190460 [Token(Token = "0x60078E1")] [Address(RVA = "0x6F7C80", Offset = "0x6F6680", VA = "0x1806F7C80")] public static Task FromWaitHandle(WaitHandle handle, TimeSpan timeout) { Task task; return task; } // Token: 0x060078E2 RID: 30946 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60078E2")] [Address(RVA = "0x6F7BE0", Offset = "0x6F65E0", VA = "0x1806F7BE0")] public static Task FromWaitHandle(WaitHandle handle, CancellationToken token) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060078E3 RID: 30947 RVA: 0x00192270 File Offset: 0x00190470 [Token(Token = "0x60078E3")] [Address(RVA = "0x6F7D20", Offset = "0x6F6720", VA = "0x1806F7D20")] public static Task FromWaitHandle(WaitHandle handle, TimeSpan timeout, CancellationToken token) { /* An exception occurred when decompiling this method (060078E3) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Threading.Tasks.Task`1 BestHTTP.WebSocket.NativeWebSocket/WaitHandleAsyncFactory::FromWaitHandle(System.Threading.WaitHandle,System.TimeSpan,System.Threading.CancellationToken) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3C: stloc:ArgumentNullException(var_7_46, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("handle"))) } 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: 0x060078E4 RID: 30948 RVA: 0x001922C4 File Offset: 0x001904C4 [Token(Token = "0x60078E4")] [Address(RVA = "0x6F7AE0", Offset = "0x6F64E0", VA = "0x1806F7AE0")] private static Task DoFromWaitHandle(WaitHandle handle, TimeSpan timeout, CancellationToken token) { /* An exception occurred when decompiling this method (060078E4) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Threading.Tasks.Task`1 BestHTTP.WebSocket.NativeWebSocket/WaitHandleAsyncFactory::DoFromWaitHandle(System.Threading.WaitHandle,System.TimeSpan,System.Threading.CancellationToken) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:AsyncTaskMethodBuilder`1(var_1_07, call:AsyncTaskMethodBuilder`1(AsyncTaskMethodBuilder`1::Create)) } 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: 0x060078E5 RID: 30949 RVA: 0x001922D8 File Offset: 0x001904D8 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x60078E5")] [Address(RVA = "0x6F80C0", Offset = "0x6F6AC0", VA = "0x1806F80C0")] static WaitHandleAsyncFactory() { Task task = Task.FromResult(true); int num = 0; NativeWebSocket.WaitHandleAsyncFactory.CompletedTaskTrue = task; NativeWebSocket.WaitHandleAsyncFactory.CompletedTaskFalse = Task.FromResult(num != 0); Task task2; NativeWebSocket.WaitHandleAsyncFactory.CancelledTask = task2; } // Token: 0x0400571E RID: 22302 [Token(Token = "0x400571E")] private static Task CompletedTaskTrue; // Token: 0x0400571F RID: 22303 [Token(Token = "0x400571F")] private static Task CompletedTaskFalse; // Token: 0x04005720 RID: 22304 [Token(Token = "0x4005720")] private static Task CancelledTask; // Token: 0x020012D8 RID: 4824 [Token(Token = "0x20012D8")] private sealed class ThreadPoolRegistration : IDisposable { // Token: 0x060078E6 RID: 30950 RVA: 0x0003C3EA File Offset: 0x0003A5EA [Token(Token = "0x60078E6")] [Address(RVA = "0x6F4A70", Offset = "0x6F3470", VA = "0x1806F4A70")] public ThreadPoolRegistration(WaitHandle handle, TimeSpan timeout, TaskCompletionSource tcs) { } // Token: 0x060078E7 RID: 30951 RVA: 0x0003C3EA File Offset: 0x0003A5EA [Token(Token = "0x60078E7")] [Address(RVA = "0x6F4A40", Offset = "0x6F3440", VA = "0x1806F4A40", Slot = "4")] void IDisposable.Dispose() { } // Token: 0x04005721 RID: 22305 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005721")] private readonly RegisteredWaitHandle _registeredWaitHandle; } } } }