Function at 0x1401ae090
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration
Start tcp server

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movups xmmword [rsp + 0xa0], xmm6
mov rbp, qword [sym.imp.WS2_32.dll_socket]
mov edx, 1
mov ecx, 2
mov r8d, 6
mov dword [rsp + 0x68], 0x10
mov rsi, r9
call rbp
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1401ae367
xor eax, eax
mov ecx, 0x7f000001
mov word [rsp + 0x80], 2
lea r12, [rsp + 0x90]
mov qword [rsp + 0x82], rax
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x88], rax
call qword [sym.imp.WS2_32.dll_htonl]
mov r9, r12
mov edx, 0xffff
mov rcx, rbx
mov qword [rsi + 8], 0xffffffffffffffff
mov r8d, 0xfffffffb
mov qword [rsi], 0xffffffffffffffff
mov dword [rsp + 0x84], eax
mov word [rsp + 0x82], 0
mov dword [rsp + 0x90], 1
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
inc eax
je 0x1401ae350
mov r8d, 0x10
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_bind]
inc eax
je 0x1401ae350
lea r8, [rsp + 0x68]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_getsockname]
inc eax
je 0x1401ae350
cmp dword [rsp + 0x68], 0xf
jle 0x1401ae350
mov edx, 1
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_listen]
inc eax
je 0x1401ae350
mov ecx, 2
xor r8d, r8d
mov edx, 1
call rbp
mov qword [rsi], rax
mov rcx, rax
cmp rax, 0xffffffffffffffff
je 0x1401ae350
mov r8d, 0x10
mov rdx, rdi
call qword [sym.imp.WS2_32.dll_connect]
inc eax
je 0x1401ae350
mov edx, 1
mov rcx, rbx
call sym.curlx_nonblock
test eax, eax
js 0x1401ae350
mov r8d, 0x3e8
mov edx, 1
mov rcx, r12
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x98], 0x300
call sym.Curl_poll
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_accept]
mov qword [rsi + 8], rax
inc rax
je 0x1401ae350
lea r13, [rsp + 0x50]
mov rcx, r13
call sym.Curl_now
lea rax, [rsp + 0x6e]
xor ecx, ecx
mov r8d, 9
mov rdx, rax
mov qword [rsp + 0x30], rax
movups xmm6, xmmword [rsp + 0x50]
call sym.Curl_rand
test eax, eax
jne 0x1401ae350
lea rdi, [rsp + 0x77]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsi]
xor r9d, r9d
mov r8d, 9
mov ebp, 9
call qword [sym.imp.WS2_32.dll_send]
mov qword [rsp + 0x38], rdi
mov r15, qword [sym.imp.WS2_32.dll_recv]
mov rax, qword [rsi + 8]
mov r8d, 0x3e8
mov edx, 1
mov rcx, r12
mov dword [rsp + 0x98], 0x300
mov qword [rsp + 0x90], rax
call sym.Curl_poll
xor r9d, r9d
mov rcx, qword [rsi + 8]
mov r8d, ebp
mov rdx, rdi
call r15
cmp eax, 0xffffffff
jne 0x1401ae31b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, r13
mov r14d, eax
call sym.Curl_now
lea rdx, [rsp + 0x40]
mov rcx, r13
movups xmmword [rsp + 0x40], xmm6
call sym.Curl_timediff
cmp r14d, 0x2733
jne 0x1401ae350
cmp rax, 0xea60
jle 0x1401ae2a6
jmp 0x1401ae350
cdqe
sub rbp, rax
je 0x1401ae32a
add rdi, rax
jmp 0x1401ae2a6
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov r8d, 9
call sub.msvcrt.dll_memcmp
mov edi, eax
test eax, eax
jne 0x1401ae350
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x1401ae36a
mov rcx, rbx
mov rbx, qword [sym.imp.WS2_32.dll_closesocket]
call rbx
mov rcx, qword [rsi]
call rbx
mov rcx, qword [rsi + 8]
call rbx
or edi, 0xffffffff
movups xmm6, xmmword [rsp + 0xa0]
mov eax, edi
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret