Function at 0x44a390
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
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov eax, r8d
mov word [rbp + 0x20], ax
mov dword [rbp - 4], 0
mov qword [rbp - 0x10], 0
lea rdx, [0x00526460]
mov ecx, 0x202
mov rax, qword [sym.imp.WSOCK32.dll_WSAStartup]
call rax
mov dword [rbp - 0x24], eax
cmp dword [rbp - 0x24], 0
je 0x44a3ef
mov eax, dword [rbp - 0x24]
mov edx, eax
lea rcx, str.Socket_startup_failed:__d_n
call sym.printf
mov eax, 1
jmp 0x44a69b
mov rax, qword [rbp + 0x18]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_gethostbyname]
call rax
mov qword [rbp - 0x30], rax
cmp qword [rbp - 0x30], 0
jne 0x44a427
mov rax, qword [rbp + 0x18]
mov rdx, rax
lea rcx, str.Couldnt_get_hostname:__s_n
call sym.printf
mov eax, 1
jmp 0x44a69b
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WSOCK32.dll_socket]
call rax
mov qword [rbp - 0x38], rax
cmp qword [rbp - 0x38], 0xffffffffffffffff
jne 0x44a469
call dbg.WSAErrorMsg
mov rdx, rax
lea rcx, str.Socket_initialisation_failed:__s_n
call sym.printf
mov eax, 1
jmp 0x44a69b
lea rax, [serv.sin_family]
mov r8d, 0x10
mov edx, 0
mov rcx, rax
call sym.memset
mov word [serv.sin_family], 2
mov rax, qword [rbp - 0x30]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov eax, dword [rax]
mov dword [serv.sin_addr], eax
movzx eax, word [rbp + 0x20]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_htons]
call rax
mov word [serv.sin_port], ax
lea rdx, [serv.sin_family]
mov rax, qword [rbp - 0x38]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_connect]
call rax
cmp eax, 0xffffffff
jne 0x44a4e9
call dbg.WSAErrorMsg
mov rdx, rax
lea rcx, str.Socket_connect_failed:__s_n
call sym.printf
mov eax, 1
jmp 0x44a69b
mov rcx, qword [rbp + 0x10]
call sym.strlen
mov edx, eax
mov rax, qword [rbp - 0x38]
mov r9d, 0
mov r8d, edx
mov rdx, qword [rbp + 0x10]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_send]
call rax
mov dword [rbp - 0x3c], eax
cmp dword [rbp - 0x3c], 0xffffffff
jne 0x44a53a
call dbg.WSAErrorMsg
mov rdx, rax
lea rcx, str.Send_failed:__s_n
call sym.printf
mov dword [rbp - 4], 1
jmp 0x44a688
mov qword [rbp - 0x18], 0xffff
mov rax, qword [rbp - 0x18]
add rax, 1
mov rcx, rax
call sym.malloc
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x44a57c
mov rax, qword [rbp - 0x18]
add eax, 1
mov edx, eax
lea rcx, str.Err:_OOM___d__n
call sym.printf
mov eax, 1
jmp 0x44a69b
mov qword [rbp - 0x20], 0
mov rax, qword [rbp - 0x18]
cmp rax, qword [rbp - 0x20]
jne 0x44a5d4
add qword [rbp - 0x18], 0xffff
mov rax, qword [rbp - 0x18]
lea rdx, [rax + 1]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.realloc
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x44a5d4
mov rax, qword [rbp - 0x18]
add eax, 1
mov edx, eax
lea rcx, str.Err:_OOM___d__n
call sym.printf
mov eax, 1
jmp 0x44a69b
mov rax, qword [rbp - 0x18]
mov edx, eax
mov rax, qword [rbp - 0x20]
sub edx, eax
mov eax, edx
mov ecx, eax
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x20]
add rdx, rax
mov rax, qword [rbp - 0x38]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_recv]
call rax
mov dword [rbp - 0x3c], eax
cmp dword [rbp - 0x3c], 0xffffffff
jne 0x44a62e
call dbg.WSAErrorMsg
mov rdx, rax
lea rcx, str.Recv_failed:__s_n
call sym.printf
mov dword [rbp - 4], 1
jmp 0x44a643
cmp dword [rbp - 0x3c], 0
je 0x44a642
mov eax, dword [rbp - 0x3c]
cdqe
add qword [rbp - 0x20], rax
jmp 0x44a584
nop
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0
mov eax, dword [0x005265f8]
test eax, eax
je 0x44a669
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.puts
jmp 0x44a688
mov rax, qword [rbp - 0x10]
mov rdx, rax
lea rcx, str.Reply_was__s_n
call sym.printf
mov rax, qword [rbp - 0x10]
mov rcx, rax
call dbg.display
mov rax, qword [rbp - 0x38]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_closesocket]
call rax
mov eax, dword [rbp - 4]
add rsp, 0x70
pop rbp
ret