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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 8], 0xfffffffffffffffe
mov edi, r9d
mov rbx, rdx
mov rsi, rcx
add rcx, 0x30
mov qword [rbp - 0x38], rcx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x10], xmm0
movsxd rax, edi
imul rax, rax, 0x38
mov qword [rbp - 0x40], rsi
lea rdi, [rsi + rax]
add rdi, 0x68
mov qword [rbp - 0x20], 0
mov rax, qword [0x14015f250]
shr rax, 1
movabs rcx, 0x595588bd12bf6fe8
cmp rax, rcx
je 0x14001c3f8
mov rax, qword [0x14015f248]
lea rcx, [0x14015f248]
mov edx, 0x3e3
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x14001c3fd
mov ecx, 3
mov r9, qword [rbp + 0x90]
mov qword [rbp - 0x30], 0x3e3
lea rax, [0x14015f248]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rcx
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14001c43d
mov rax, rbx
or rax, rcx
shr rax, 0x20
je 0x14001c443
mov rax, rbx
xor edx, edx
div rcx
mov rax, rdx
jmp 0x14001c44b
mov rdx, qword [rdi + 8]
jmp 0x14001c481
mov eax, ebx
xor edx, edx
div ecx
mov eax, edx
mov rcx, qword [rdi + 8]
mov r8, qword [rdi + 0x28]
shl rax, 4
mov rdx, qword [r8 + rax]
cmp rcx, rdx
je 0x14001c481
mov rax, qword [r8 + rax + 8]
mov rax, qword [rax]
cmp rax, rdx
je 0x14001c47e
nop dword [rax]
cmp qword [rdx + 0x10], rbx
je 0x14001c481
mov rdx, qword [rdx]
cmp rdx, rax
jne 0x14001c470
mov rdx, rcx
lea rax, [rbp - 0x30]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x10]
mov rcx, rdi
call fcn.14001c760
mov byte [rbp + 7], al
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x14001c586
mov rax, qword [rbp - 0x40]
mov r12, qword [rax + 0x28]
lea rdi, [r12 + 0x60]
lea r13, [r12 + 0x90]
mov r15, qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
mov rsi, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xorps xmm6, xmm6
jmp 0x14001c4fc
mov eax, 1
xchg dword [r12 + 0x58], eax
mov rcx, rdi
call rbx
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x14001c586
mov rax, qword [r14 + 0x20]
mov qword [rbp - 0x10], rax
test rax, rax
jne 0x14001c511
mov qword [rbp - 8], 0
mov qword [r14 + 0x20], 0
mov dword [r14 + 0x30], 1
mov rcx, qword [r12 + 0x28]
xor edx, edx
xor r8d, r8d
mov r9, r14
call r15
test eax, eax
jne 0x14001c4ef
mov rcx, rdi
call rsi
mov qword [r14 + 0x20], 0
mov rax, qword [r12 + 0x98]
lea rcx, [rax + 0x20]
test rax, rax
cmove rcx, r13
mov qword [rcx], r14
mov qword [r12 + 0x98], r14
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x14001c4e0
mov qword [r14 + 0x20], rax
mov rax, qword [rbp - 8]
mov qword [r12 + 0x98], rax
movaps xmmword [rbp - 0x10], xmm6
jmp 0x14001c4e0
cmp byte [rbp + 7], 0
je 0x14001c6b0
mov byte [rbp + 6], 0
lea rax, [rbp + 6]
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x30], 1
mov rax, qword [rbp - 0x40]
mov rcx, qword [rax + 0x60]
mov dword [rbp - 0x14], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 0
lea rdx, [rbp - 0x30]
lea r9, [rbp - 0x14]
mov r8d, 1
call qword [sym.imp.WS2_32.dll_WSASend]
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov rax, qword [0x14015f250]
shr rax, 1
movabs rdi, 0x595588bd12bf6fe8
cmp rax, rdi
je 0x14001c60a
mov rax, qword [0x14015f248]
lea rcx, [0x14015f248]
mov edx, esi
call qword [rax + 0x30]
cmp esi, 0x4d2
je 0x14001c62d
cmp esi, 0x40
jne 0x14001c652
mov rax, qword [0x14015f250]
shr rax, 1
mov edx, 0x2746
cmp rax, rdi
jne 0x14001c641
jmp 0x14001c652
mov rax, qword [0x14015f250]
shr rax, 1
mov edx, 0x274d
cmp rax, rdi
je 0x14001c652
mov rax, qword [0x14015f248]
lea rcx, [0x14015f248]
call qword [rax + 0x30]
mov rdx, qword [rbp - 0x10]
test rdx, rdx
je 0x14001c6b0
xorps xmm6, xmm6
lea rsi, [rbp - 0x30]
nop word cs:[rax + rax]
mov rax, qword [rdx + 0x20]
mov qword [rbp - 0x10], rax
test rax, rax
jne 0x14001c685
mov qword [rbp - 8], 0
mov qword [rdx + 0x20], 0
mov rax, qword [rdx + 0x28]
movaps xmmword [rbp - 0x30], xmm6
mov qword [rbp - 0x20], 0
xor ecx, ecx
mov r8, rsi
xor r9d, r9d
call rax
mov rdx, qword [rbp - 0x10]
test rdx, rdx
jne 0x14001c670
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movaps xmm6, xmmword [rbp + 0x10]
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret