Function at 0x140001530
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
Resolve dns
Send data
Send data on socket

Disassembly:
push rbp
push rdi
mov eax, 0x2968
call fcn.140002a20
sub rsp, rax
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x2900], ecx
mov qword [rbp + 0x2908], rdx
call dbg.__main
lea rax, str.Defined___cplusplus_or___cplusplus__
mov rcx, rax
call dbg.printf(char const*, ::)
lea rdx, [rbp + 0x2700]
mov eax, 0
mov ecx, 0x33
mov rdi, rdx
rep stosq qword [rdi], rax
mov dword [rbp + 0x28d8], 0
lea rax, [rbp + 0x2700]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov dword [rbp + 0x28d8], eax
cmp dword [rbp + 0x28d8], 0
je 0x1400015c7
mov eax, dword [rbp + 0x28d8]
mov edx, eax
lea rax, str.WSAStartup_Error.__d
mov rcx, rax
call dbg.printf(char const*, ::)
mov word [rbp + 0x26f0], 2
mov eax, dword [0x140009018]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x26f2], ax
mov rax, qword [str.127.0.0.1]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_gethostbyname]
call rax
mov qword [rbp + 0x28d0], rax
cmp qword [rbp + 0x28d0], 0
je 0x14000163a
mov rax, qword [rbp + 0x28d0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
test rax, rax
je 0x14000163a
mov rax, qword [rbp + 0x28d0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov eax, dword [rax]
mov dword [rbp + 0x26f4], eax
jmp 0x140001653
mov rax, qword [str.127.0.0.1]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [rbp + 0x26f4], eax
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x28c8], rax
cmp qword [rbp + 0x28c8], 0xffffffffffffffff
jne 0x1400016ae
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rax, qword [rbp + 0x28c8]
mov r8d, edx
mov rdx, rax
lea rax, str.socket_error._llu__d
mov rcx, rax
call dbg.printf(char const*, ::)
mov eax, 0
jmp 0x1400018bd
lea rdx, [rbp + 0x26f0]
mov rax, qword [rbp + 0x28c8]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x1400016f1
lea rax, str.connect_error
mov rcx, rax
call dbg.printf(char const*, ::)
mov eax, 0
jmp 0x1400018bd
movabs rax, 0x43525200300068
movabs rdx, 0x3731313133323032
mov qword [rbp + 0x26b0], rax
mov qword [rbp + 0x26b8], rdx
movabs rax, 0x302e303031303331
movabs rdx, 0x3032003030303030
mov qword [rbp + 0x26c0], rax
mov qword [rbp + 0x26c8], rdx
movabs rax, 0x3331373131313332
movabs rdx, 0x3030302e39353130
mov qword [rbp + 0x26d0], rax
mov qword [rbp + 0x26d8], rdx
mov dword [rbp + 0x26e0], 0x303030
lea rdx, [rbp + 0x26b0]
mov rax, qword [rbp + 0x28c8]
mov r9d, 0
mov r8d, 0x34
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov dword [rbp + 0x28c4], 0
mov qword [rbp + 0x28b8], 0
mov byte [rbp + 0x28b7], 1
mov dword [rbp + 0x28b0], 0
mov dword [rbp + 0x28ac], 0
mov dword [rbp + 0x28a8], 0
mov dword [rbp + 0x28a4], 0
mov dword [rbp + 0x28a0], 0x270f
mov byte [rbp + 0x289f], 0
mov word [rbp + 0x289c], 0
cmp dword [rbp + 0x28a4], 0
je 0x1400017ff
mov eax, 0x270f
sub eax, dword [rbp + 0x28a4]
mov dword [rbp + 0x28a0], eax
mov eax, dword [rbp + 0x28a4]
cdqe
lea rdx, [rbp - 0x60]
add rdx, rax
mov rax, qword [rbp + 0x28c8]
mov r9d, 0
mov r8d, 0x270f
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x28c4], eax
lea rax, [0x14000a06e]
mov rcx, rax
call dbg.printf(char const*, ::)
cmp dword [rbp + 0x28c4], 0
jle 0x1400018a0
mov eax, dword [rbp + 0x28a4]
add dword [rbp + 0x28c4], eax
mov eax, dword [rbp + 0x28ac]
mov dword [rbp + 0x28dc], eax
jmp 0x14000188d
mov eax, dword [rbp + 0x28dc]
cdqe
movzx eax, byte [rbp + rax - 0x60]
movzx eax, al
mov edx, eax
lea rax, str._02x
mov rcx, rax
call dbg.printf(char const*, ::)
add dword [rbp + 0x28dc], 1
mov eax, dword [rbp + 0x28dc]
cmp eax, dword [rbp + 0x28c4]
jl 0x140001865
jmp 0x1400017e5
mov eax, dword [rbp + 0x28c4]
mov edx, eax
lea rax, str.socket_receive_error:_d
mov rcx, rax
call dbg.printf(char const*, ::)
nop
mov eax, 0
add rsp, 0x2968
pop rdi
pop rbp
ret