Function at 0x140001f80
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
push rbx
mov eax, 0x1228
call fcn.140005cd0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x11c0], rcx
mov qword [rbp + 0x11c8], rdx
mov qword [rbp + 0x11d0], r8
lea rax, [rbp + 0xfb0]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x1190], rax
mov rax, qword [rbp + 0x11c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [rbp + 0xfa4], eax
mov word [rbp + 0xfa0], 2
mov rax, qword [rbp + 0x11c0]
mov eax, dword [rax + 0x20]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0xfa2], ax
lea rdx, [rbp + 0xfa0]
mov rax, qword [rbp + 0x1190]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
mov rax, qword [rbp + 0x11c8]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::size___const
mov ebx, eax
mov rax, qword [rbp + 0x11c8]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rdx, rax
mov rax, qword [rbp + 0x1190]
mov r9d, 0
mov r8d, ebx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov dword [rbp + 0x118c], 0
mov dword [rbp + 0x119c], 0
jmp 0x1400020ae
mov eax, dword [rbp + 0x118c]
add dword [rbp + 0x119c], eax
mov eax, dword [rbp + 0x119c]
mov edx, 0x1000
sub edx, eax
mov ecx, edx
lea rdx, [rbp - 0x60]
mov eax, dword [rbp + 0x119c]
cdqe
add rdx, rax
mov rax, qword [rbp + 0x1190]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x118c], eax
cmp dword [rbp + 0x118c], 0
setg al
test al, al
jne 0x1400020a2
cmp dword [rbp + 0x118c], 0xffffffff
jne 0x140002119
lea rax, str.recv
mov rcx, rax
call sym.perror
jmp 0x1400021d0
cmp dword [rbp + 0x118c], 0
jne 0x1400021d0
lea rax, [rbp + 0x117f]
mov qword [rbp + 0x1180], rax
nop
nop
mov eax, dword [rbp + 0x119c]
movsxd rcx, eax
lea r8, [rbp + 0x117f]
lea rdx, [rbp - 0x60]
lea rax, [rbp + 0x1150]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__unsigned_long_long__std::allocator_char__const_
lea rdx, [rbp + 0x1150]
mov rax, qword [rbp + 0x11d0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x1150]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x117f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
mov rax, qword [rbp + 0x1190]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
jmp 0x1400021d0
nop
add rsp, 0x1228
pop rbx
pop rbp
ret