Function at 0x1400ac490
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov r15, r9
mov rsi, r8
mov r14, rdx
mov r13, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
and qword [rbp - 0x10], 0
mov rcx, qword [rcx + 0x28]
call fcn.140070030
or edi, 0xffffffff
test al, al
jne 0x1400ac70f
test rsi, rsi
je 0x1400ac617
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov rbx, rax
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.14007a68c
xor r9d, r9d
mov r8d, ebx
mov rdx, rax
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
mov r12d, eax
cmp eax, edi
jne 0x1400ac60a
mov rcx, qword [0x1400ef018]
mov qword [rbp - 0x40], rcx
mov r8d, edi
lea rdx, str.Send_error:__d
lea rcx, [rbp - 0x40]
call fcn.14006d4dc
mov rbx, qword [rbp - 0x40]
lea rsi, [rbx - 0xc]
cmp dword [rsi], 0
jl 0x1400ac54b
mov qword [rbp + 0x40], rbx
lock inc dword [rsi]
jmp 0x1400ac56d
mov rax, qword [0x1400ef018]
mov qword [rbp + 0x40], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rbp + 0x40]
call fcn.14006b5e4
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp + 0x40]
mov rcx, qword [r13 + 0x28]
call fcn.140070150
mov rbx, qword [0x1400ef018]
mov qword [rbp - 0x30], rbx
lea r14, [rbx - 0xc]
cmp dword [r14], 0
mov qword [rbp - 0x50], rbx
jl 0x1400ac59f
lock inc dword [r14]
jmp 0x1400ac5b6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rbp - 0x50]
call fcn.14006b5e4
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x50]
mov rcx, qword [r13 + 0x28]
call fcn.140070150
nop
cmp r14, qword [0x1400ef010]
je 0x1400ac5e9
mov eax, edi
lock xadd dword [r14], eax
add eax, edi
test eax, eax
jg 0x1400ac5e9
mov rcx, r14
call fcn.1400b0a54
nop
cmp rsi, qword [0x1400ef010]
je 0x1400ac606
mov eax, edi
lock xadd dword [rsi], eax
add eax, edi
test eax, eax
jg 0x1400ac606
mov rcx, rsi
call fcn.1400b0a54
mov r14, qword [rbp + 0x48]
test r15, r15
jne 0x1400ac617
mov edi, r12d
jmp 0x1400ac70f
mov r12d, dword [rbp + 0x60]
mov r8d, r12d
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
mov rcx, r14
jmp 0x1400ac6d2
mov rdx, r15
lea rcx, [rbp - 0x38]
call fcn.14006c66c
nop
mov rbx, qword [rbp - 0x38]
lea r14, [rbx - 0xc]
cmp dword [r14], 0
jl 0x1400ac659
mov qword [rbp - 0x48], rbx
lock inc dword [r14]
mov rbx, qword [rbp - 0x38]
jmp 0x1400ac67b
mov rax, qword [0x1400ef018]
mov qword [rbp - 0x48], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rbp - 0x48]
call fcn.14006b5e4
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x48]
mov rcx, qword [r13 + 0x28]
call fcn.140070150
mov rdx, r15
mov rcx, r13
call fcn.1400a9a50
mov esi, eax
cmp eax, edi
jne 0x1400ac734
cmp r14, qword [0x1400ef010]
je 0x1400ac6c1
mov eax, edi
lock xadd dword [r14], eax
add eax, edi
test eax, eax
jg 0x1400ac6c1
mov rcx, r14
call fcn.1400b0a54
mov r8, r12
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rbp + 0x48]
xor r9d, r9d
mov r8d, r12d
mov rdx, r15
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, edi
mov ebx, eax
jne 0x1400ac630
lea rdx, str.Receive_error
lea rcx, [rbp - 0x40]
call fcn.14006c728
mov r9b, 1
xor r8d, r8d
mov rdx, rax
mov rcx, qword [r13 + 0x28]
call fcn.140070150
mov edi, ebx
mov esi, edi
lea rcx, [rbp - 0x20]
call fcn.14006c87c
mov eax, esi
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp esi, 0xfffffffe
cmove esi, edi
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x1400ef010]
je 0x1400ac711
mov eax, edi
lock xadd dword [rcx], eax
add eax, edi
test eax, eax
jg 0x1400ac711
call fcn.1400b0a54
jmp 0x1400ac711