Function at 0x140094bb0
Capabilities:
Get socket status
Send data
Send data on socket

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x280
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x140131088]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rbx, r9
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
xor r14d, r14d
mov dword [r9], r14d
cmp byte [rcx + 0x1a9], r14b
jne 0x140094e69
xor r9d, r9d
mov rcx, qword [rcx + 0x1b8]
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jne 0x140094c24
mov edx, 0x1b8
lea rcx, str.send_while_socket_closed____d_n
call fcn.1400098a0
xor al, al
jmp 0x140094e6b
cmp eax, 0xffffffff
jne 0x140094e67
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x140094c7e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x30], eax
lea rax, str._CSockStream__send_failed_with__d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1c2
lea r9, str.CSockStream::write
lea r8, str...includesonetlibsphstreamSockStream.cpp
mov edx, 8
lea rcx, [0x1401399a0]
call fcn.14007a380
xor al, al
jmp 0x140094e6b
mov ecx, dword [rsp + 0x2d0]
test ecx, ecx
jne 0x140094cb8
mov edx, 0x1cb
lea rcx, str.send_failed_timeout____d_n
call fcn.1400098a0
mov dword [rsp + 0x30], 0x1cc
lea rax, str._CSockStream__send_failed_timeout____d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1cc
jmp 0x140094c58
cmp qword [rdi + 0x1c0], r14
je 0x140094d82
mov byte [rdi + 0x1a9], 1
xor eax, eax
mov qword [rsp + 0x50], rax
lea ecx, [rax + 0x38]
call fcn.14009dbb8
mov rbx, rax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov rcx, qword [rdi + 0x1b8]
lea rax, vtable.CReference.0
mov qword [rbx], rax
mov dword [rbx + 8], r14d
mov dword [rbx + 0xc], 1
mov dword [rbx + 0x10], 1
mov qword [rbx + 0x18], rcx
mov dword [rbx + 0x20], 1
lea rax, vtable.CTCPStreamTask.0
mov qword [rbx], rax
mov qword [rbx + 0x28], rdi
lea rcx, [rdi + 0x10]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov byte [rbx + 0x30], 0
mov qword [rsp + 0x50], rbx
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rdi + 0x1c0]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140094d7d
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x140094e69
mov rax, qword [rdi + 0x1b8]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], 1
xor r9d, r9d
lea r8, [rsp + 0x60]
cmp ecx, 0xffffffff
jne 0x140094dad
lea ecx, [rax + 1]
mov qword [rsp + 0x20], r14
jmp 0x140094de6
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x58], edx
imul eax, edx, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [rsp + 0x5c], eax
mov ecx, dword [rdi + 0x1b8]
inc ecx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor edx, edx
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x140094e30
lea rdx, [rsp + 0x60]
mov rcx, qword [rdi + 0x1b8]
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x140094e30
mov r10, qword [rdi]
mov eax, dword [rsp + 0x2d8]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
mov r9, rbx
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
call qword [r10 + 0x110]
jmp 0x140094e6b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.send_failed_isel___0___FD_ISSET_m_Socket_setsock____d_n
call fcn.1400098a0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x30], eax
lea rax, str._CSockStream__send_failed_isel___0___FD_ISSET_m_Socket_setsock____d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1f8
jmp 0x140094c58
mov dword [rbx], eax
mov al, 1
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14009d860
add rsp, 0x280
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret