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, 0x2948
call fcn.1400029a0
sub rsp, rax
lea rbp, [rsp + 0x80]
call dbg.__main
lea rdx, [rbp + 0x2700]
mov eax, 0
mov ecx, 0x33
mov rdi, rdx
rep stosq qword [rdi], rax
mov dword [rbp + 0x28b8], 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 + 0x28b8], eax
cmp dword [rbp + 0x28b8], 0
je 0x1400015ab
mov eax, dword [rbp + 0x28b8]
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 + 0x28b0], rax
cmp qword [rbp + 0x28b0], 0
je 0x14000161e
mov rax, qword [rbp + 0x28b0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
test rax, rax
je 0x14000161e
mov rax, qword [rbp + 0x28b0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov eax, dword [rax]
mov dword [rbp + 0x26f4], eax
jmp 0x140001637
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 + 0x28a8], rax
cmp qword [rbp + 0x28a8], 0xffffffffffffffff
jne 0x140001692
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rax, qword [rbp + 0x28a8]
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 0x140001844
lea rdx, [rbp + 0x26f0]
mov rax, qword [rbp + 0x28a8]
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 0x1400016d5
lea rax, str.connect_error
mov rcx, rax
call dbg.printf(char const*, ::)
mov eax, 0
jmp 0x140001844
movabs rax, 0x4543363030325834
movabs rdx, 0x3238454336353238
mov qword [rbp + 0x26b0], rax
mov qword [rbp + 0x26b8], rdx
movabs rax, 0x3041433838545f5f
movabs rdx, 0x3030304241374436
mov qword [rbp + 0x26c0], rax
mov qword [rbp + 0x26c8], rdx
movabs rax, 0x31302d50535f5f30
movabs rdx, 0x3030303032433038
mov qword [rbp + 0x26d0], rax
mov qword [rbp + 0x26d8], rdx
mov dword [rbp + 0x26e0], 0x305f4530
mov word [rbp + 0x26e4], 0x3030
mov byte [rbp + 0x26e6], 0x30
lea rdx, [rbp + 0x26b0]
mov rax, qword [rbp + 0x28a8]
mov r9d, 0
mov r8d, 0x37
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov dword [rbp + 0x28a4], 0
lea rdx, [rbp - 0x60]
mov rax, qword [rbp + 0x28a8]
mov r9d, 0
mov r8d, 0x270f
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x28a4], eax
cmp dword [rbp + 0x28a4], 0
jle 0x1400017fb
mov dword [rbp + 0x28bc], 0
jmp 0x1400017eb
mov eax, dword [rbp + 0x28bc]
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 + 0x28bc], 1
mov eax, dword [rbp + 0x28bc]
cmp eax, dword [rbp + 0x28a4]
jl 0x1400017c3
jmp 0x14000181a
mov eax, dword [rbp + 0x28a4]
mov edx, eax
lea rax, str.socket_receive_error:_d
mov rcx, rax
call dbg.printf(char const*, ::)
nop
mov eax, 0
jmp 0x140001844
lea rax, [0x14000a060]
mov rcx, rax
call dbg.printf(char const*, ::)
mov ecx, 1
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
call sym.fflush
jmp 0x140001785
add rsp, 0x2948
pop rdi
pop rbp
ret