Function at 0x1400500e6
Capabilities:
Send data
Send data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r12, r9
mov qword [rsp + 0x60], r8
mov r15, rdx
mov rbx, rcx
mov rax, qword [r9]
xor r14d, r14d
test rax, rax
mov qword [rsp + 0x58], rax
je 0x140050121
mov rax, qword [r12 + 8]
mov rdx, qword [rax]
and edx, 0xd
jmp 0x140050123
xor edx, edx
mov rcx, r12
call fcn.14004fd08
mov rsi, qword [rbx]
lea rdi, [rsi + 0x30]
mov rbx, qword [r15 + 8]
mov qword [rsp + 0x48], r15
mov rbp, qword [r15 + 0x10]
mov qword [rsp + 0x40], r12
mov r13b, byte [r12 + 0x78]
mov r15, qword [rsp + 0x60]
mov r12, rbp
sub r12, r15
jb 0x140050390
lea rax, [rbx + r15]
mov ecx, 0xffffffff
cmp r12, rcx
cmovb rcx, r12
mov dword [rsp + 0x68], ecx
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x54], r14d
mov rcx, qword [rsi]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x30], 0
lea rdx, [rsp + 0x68]
mov r8d, 1
lea r9, [rsp + 0x54]
call sub.ws2_32.dll_WSASend
cmp eax, 0xffffffff
je 0x1400501bf
test r13b, r13b
je 0x14005020e
mov eax, dword [rsp + 0x54]
cmp r12, rax
je 0x14005024e
add r15, rax
jmp 0x14005014e
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x3e5
je 0x140050213
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov rsi, qword [rsp + 0x40]
lea rcx, [rsi + 0x30]
call fcn.14004fe30
mov qword [rsi + 0x30], 3
mov qword [rsi + 0x38], rbx
cmp qword [rsp + 0x58], 0
je 0x1400502b3
mov rax, qword [rsi + 8]
mov rdx, qword [rax]
and edx, 0xd
or rdx, 2
jmp 0x1400502b8
mov r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi + 0x30]
call fcn.14004fe30
mov qword [rdi + 0x30], 1
mov rax, qword [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmmword [rdi + 0x38], xmm0
mov rax, qword [rax + 0x10]
mov qword [rdi + 0x48], rax
mov qword [rdi + 0x50], r15
lock inc qword [rsi + 0xe8]
jmp 0x140050350
cmp qword [rsp + 0x58], 0
je 0x140050270
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi + 8]
mov rdx, qword [rax]
and edx, 0xd
or rdx, 2
mov rsi, qword [rsp + 0x48]
jmp 0x14005027f
mov edx, 2
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.14004fd08
lea rcx, [rdi + 0x30]
call fcn.14004fe30
mov qword [rdi + 0x30], 0
cmp qword [rsi], 0
je 0x140050350
mov rcx, qword [0x14019e0f8]
xor edx, edx
mov r8, rbx
jmp 0x14005034b
mov edx, 2
mov r14, qword [rsp + 0x48]
mov rcx, rsi
call fcn.14004fd08
mov rax, qword [rsi + 0x18]
cmp rax, 2
jne 0x140050338
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x140050338
lea rdi, [rsi + 0x20]
mov rcx, rdi
call sub.kernel32.dll_AcquireSRWLockExclusive
mov rax, qword [0x14019e158]
shl rax, 1
test rax, rax
jne 0x140050381
xor ebx, ebx
mov al, byte [rsi + 0x28]
test al, al
jne 0x1400503a2
mov rcx, qword [r14]
mov r8, qword [r14 + 8]
mov rax, qword [rsi + 0x40]
cmp rax, qword [rsi + 0x30]
jae 0x140050362
mov rdx, qword [rsi + 0x38]
lea r9, [rax + rax*2]
mov qword [rdx + r9*8], rcx
mov qword [rdx + r9*8 + 8], r8
mov qword [rdx + r9*8 + 0x10], 0
inc rax
mov qword [rsi + 0x40], rax
jmp 0x140050375
cmp qword [r14], 0
je 0x140050350
mov r8, qword [r14 + 8]
mov rcx, qword [0x14019e0f8]
xor edx, edx
call fcn.1400fdef8
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test rcx, rcx
je 0x140050375
mov rcx, qword [0x14019e0f8]
xor edx, edx
call fcn.1400fdef8
mov rcx, rdi
mov edx, ebx
call fcn.1400e8393
jmp 0x140050350
call fcn.1400b5520
mov ebx, eax
xor bl, 1
jmp 0x1400502f9
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_mio_0.6.23_src_sys_windows_tcp.rs
mov rcx, r15
mov rdx, rbp
call fcn.14001a450
lea r8, [rsp + 0x68]
mov qword [r8], rdi
mov byte [r8 + 8], bl
lea rax, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_mio_0.6.23_src_sys_windows_selector.rs
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, [0x140157de8]
mov edx, 0x2b
call fcn.14001cff0
int3