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

Disassembly:
mov rax, rsp
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
push rbp
push rdi
lea rbp, [rax - 0x118]
sub rsp, 0x208
cmp dword [rcx + 0xac], 5
mov r9, rdx
mov rdi, rcx
jne 0x140020873
mov qword [rax - 0x18], rbx
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], r12
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
xor r14d, r14d
test byte [rcx + 0x7c], 2
mov esi, r14d
mov qword [rax - 0x40], r15
mov r13d, r14d
mov dword [rsp + 0x40], r14d
mov dword [rbp + 0x120], r14d
jne 0x14002062f
cmp qword [rcx + 0x18], rsi
jne 0x14002062f
test r8d, r8d
jle 0x140020634
mov r11d, reloc.WS2_32.dll_recv
lea rdx, [rbp - 0x78]
mov r15d, r8d
mov qword [rsp + 0x70], rdx
sub r15d, esi
movabs r10, 0x8000000000000010
cmp r15d, r11d
mov qword [rbp - 0x80], r10
mov rcx, r14
mov eax, r14d
cmovg r15d, r11d
mov qword [rsp + 0x78], rcx
movsxd rbx, r15d
mov r12d, r14d
mov qword [rsp + 0x60], rbx
mov dword [rbp + 0x138], eax
test r15d, r15d
jle 0x1400204ef
movsxd rsi, esi
mov r13, r14
shl rsi, 5
add rsi, r9
mov ebx, dword [rsi + 0x10]
test ebx, ebx
je 0x14002064c
test r12d, r12d
mov ecx, r14d
not eax
cmove ecx, dword [rbp + 0x120]
sub ebx, ecx
cmp ebx, eax
ja 0x1400204d5
mov eax, ecx
lea rdx, [rsp + 0x48]
add rax, qword [rsi]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], ebx
call fcn.14001cfb0
mov eax, dword [rbp + 0x138]
inc r12d
add eax, ebx
inc r13
mov rbx, qword [rsp + 0x60]
add rsi, 0x20
mov dword [rbp + 0x138], eax
cmp r13, rbx
jl 0x140020474
jmp 0x1400204da
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x120]
mov esi, dword [rsp + 0x40]
mov qword [rsp + 0x30], r14
lea r9, [rbp + 0x120]
mov r8d, ecx
mov qword [rsp + 0x28], r14
mov rcx, qword [rdi + 0x98]
mov dword [rsp + 0x20], r14d
mov dword [rbp + 0x120], r14d
call qword [sym.imp.WS2_32.dll_WSASend]
movsxd rcx, eax
test eax, eax
js 0x140020529
mov ecx, dword [rbp + 0x120]
mov rax, rcx
shr rax, 0x3f
test al, al
je 0x140020548
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14002064c
mov rcx, r14
mov eax, dword [rbp + 0x138]
cmp rcx, rax
ja 0x14002064c
test rcx, rcx
je 0x1400205f4
add qword [rdi + 0x208], rcx
mov r10, qword [rsp + 0x70]
cmp rcx, rax
jb 0x140020576
mov r13d, r14d
jmp 0x1400205a8
mov r15d, r14d
mov r8, r14
test rbx, rbx
jle 0x1400205a5
mov rax, r10
mov edx, dword [rax]
cmp rcx, rdx
jb 0x14002059d
sub rcx, rdx
inc r15d
inc r8
add rax, 0x10
cmp r8, rbx
jl 0x140020584
cmp r15d, 1
cmovge r13d, r14d
add r13d, ecx
add esi, r15d
mov dword [rbp + 0x120], r13d
movabs rax, 0x8000000000000000
mov dword [rsp + 0x40], esi
test qword [rbp - 0x80], rax
jne 0x1400205dc
xor r9d, r9d
lea rdx, str.._AU_WSABUF__
mov rcx, r10
lea r8d, [r9 - 6]
call fcn.140025f00
mov r8d, dword [rbp + 0x130]
cmp esi, r8d
jge 0x140020634
mov r9, qword [rbp + 0x128]
jmp 0x140020418
movabs rax, 0x8000000000000000
test qword [rbp - 0x80], rax
jne 0x140020621
mov rcx, qword [rsp + 0x70]
lea rdx, str.._AU_WSABUF__
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
mov qword [rsp + 0x70], r14
mov r9, qword [rbp + 0x128]
mov r8d, dword [rbp + 0x130]
cmp esi, r8d
jl 0x140020693
mov eax, dword [rdi + 0x94]
test eax, eax
cmovns r14d, eax
mov dword [rdi + 0x94], r14d
jmp 0x140020843
mov eax, dword [rdi + 0x94]
mov ebx, 2
cmp eax, ebx
cmovge ebx, eax
movabs rax, 0x8000000000000000
mov dword [rdi + 0x94], ebx
test qword [rbp - 0x80], rax
jne 0x140020843
mov rcx, qword [rsp + 0x70]
lea rdx, str.._AU_WSABUF__
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
jmp 0x140020843
movsxd rax, esi
movsxd r15, r8d
cmp rax, r15
jge 0x1400206e1
mov rsi, rax
shl rsi, 5
add rsi, r9
sub r15, rax
nop dword [rax + rax]
mov ebx, dword [rsi + 0x10]
lea rcx, [rdi + 8]
sub ebx, r13d
mov edx, r13d
add rdx, qword [rsi]
mov r8d, ebx
mov r13d, r14d
call fcn.14001d960
add dword [rdi + 0x28], ebx
lea rsi, [rsi + 0x20]
mov eax, ebx
add qword [rdi + 0x218], rax
sub r15, 1
jne 0x1400206b0
mov ecx, dword [rdi + 0x28]
mov eax, dword [rdi + 0x2c]
cmp ecx, eax
cmovae eax, ecx
mov dword [rdi + 0x2c], eax
cmp ecx, dword [rdi + 0x70]
jb 0x140020817
mov rax, qword [rdi + 0x30]
lea rdx, [rdi + 0x40]
mov rcx, rdi
call rax
test al, al
jne 0x140020817
movzx eax, word [rdi + 0x128]
cmp ax, 2
je 0x140020720
cmp ax, 0x17
jne 0x140020731
movzx ecx, word [rdi + 0x12a]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r14d, ax
xor eax, eax
mov ebx, 2
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movzx eax, word [rdi + 0x128]
movups xmmword [rsp + 0x48], xmm0
cmp ax, bx
je 0x140020769
cmp ax, 0x17
jne 0x14002077c
movups xmm0, xmmword [rdi + 0x130]
mov dword [rsp + 0x58], ebx
movups xmmword [rsp + 0x48], xmm0
jmp 0x14002077c
mov eax, dword [rdi + 0x12c]
mov ecx, 1
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x48], eax
movzx r8d, r14w
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x90]
call fcn.140017c30
mov edx, dword [rdi + 0x28]
lea rcx, str.WowConnection:_MaxSendQueueSize_Reached__m_bytesQueued_d__Dropping_connection_to__s
mov r8, rax
call fcn.14001e540
cmp dword [rsp + 0x58], 3
jne 0x1400207c7
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400207c7
xor r9d, r9d
lea rdx, str.D:BuildServerDwork_gitwowEngineSourceOsSockAddr.h
lea r8d, [r9 + 0x27]
call fcn.140025f00
lea rcx, [rdi + 0x1c0]
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, qword [0x140128ae0]
mov r8d, dword [rdi + 0xac]
mov dword [rdi + 0xac], 7
test rcx, rcx
je 0x1400207f8
mov rdx, rdi
call fcn.140022c00
lea rcx, [rdi + 0x1c0]
call fcn.1400b8230
mov eax, dword [rdi + 0x94]
cmp eax, ebx
cmovge ebx, eax
mov dword [rdi + 0x94], ebx
jmp 0x140020843
mov eax, dword [rdi + 0x94]
mov ecx, 1
mov r8d, dword [rdi + 0xac]
cmp eax, ecx
mov rdx, rdi
cmovge ecx, eax
mov dword [rdi + 0x94], ecx
mov rcx, qword [0x140128ae0]
call fcn.140022c00
mov r14, qword [rsp + 0x1e0]
mov r13, qword [rsp + 0x1e8]
mov r12, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x1f8]
mov rbx, qword [rsp + 0x200]
mov r15, qword [rsp + 0x1d8]
add rsp, 0x208
pop rdi
pop rbp
ret