Function at 0x40425f
Capabilities:
Connect socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket

Disassembly:
push rbp
mov rbp, rsp
push rbx
sub rsp, 0x68
mov qword [rbp + 0x10], rcx
mov eax, edx
mov qword [rbp + 0x20], r8
mov edx, r9d
mov word [rbp + 0x18], ax
mov word [rbp + 0x28], dx
mov qword [rbp - 0x18], 0
mov rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov dword [rax], 0
movzx ecx, word [rbp + 0x28]
movzx eax, word [rbp + 0x18]
mov rdx, qword [rbp + 0x20]
mov r9d, ecx
mov r8, rdx
mov edx, eax
mov rcx, qword [rbp + 0x10]
call fcn.00403ec7
mov dword [rbp - 0x34], eax
cmp dword [rbp - 0x34], 0
jg 0x4042c4
mov eax, 0xffffffff
jmp 0x40476c
movzx eax, word [0x0040b0d8]
test ax, ax
je 0x4042e5
cmp word [rbp + 0x28], 0
jne 0x40430c
lea rcx, [0x00409866]
call fcn.004035db
jmp 0x40430c
movsxd rax, dword [rbp - 0x34]
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_listen]
call rax
mov ebx, eax
test ebx, ebx
jns 0x40430c
lea rcx, [0x0040987e]
call fcn.004035db
movzx eax, word [0x0040b0da]
test ax, ax
je 0x404429
mov dword [rbp - 0x2c], 0x10
mov rax, qword [0x0040b098]
mov rdx, rax
movsxd rax, dword [rbp - 0x34]
lea rcx, [rbp - 0x2c]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_getsockname]
call rax
mov ebx, eax
test ebx, ebx
jns 0x404356
lea rcx, [0x00409893]
call fcn.004034eb
lea rdx, [0x004098ac]
mov rax, qword [0x0040ba90]
mov r8d, 0xf
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [0x0040b098]
mov eax, dword [rax + 4]
test eax, eax
je 0x4043a9
mov rax, qword [0x0040b098]
mov eax, dword [rax + 4]
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_inet_ntoa]
call rax
mov rdx, rax
mov rax, qword [0x0040ba90]
mov rcx, rax
call sub.msvcrt.dll_strcat
jmp 0x4043d1
mov rbx, qword [0x0040ba90]
mov rcx, rbx
call sub.msvcrt.dll_strlen
lea rax, [rbx + rax]
mov r8d, 4
lea rdx, [0x004098bb]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rbx, qword [0x0040ba90]
mov rcx, rbx
call sub.msvcrt.dll_strlen
lea rax, [rbx + rax]
mov r8d, 9
lea rdx, [0x004098bf]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [0x0040b098]
movzx eax, word [rax + 2]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_ntohs]
call rax
mov word [rbp - 0x1a], ax
movzx edx, word [rbp - 0x1a]
mov rax, qword [0x0040ba90]
mov rcx, rax
call fcn.004034eb
movzx eax, word [0x0040b0d8]
test ax, ax
je 0x4044e1
mov dword [rbp - 0x2c], 0x10
mov eax, dword [0x0040b0dc]
mov edx, eax
mov ecx, 2
call fcn.004036fc
call fcn.00407380
mov rdx, rax
lea rcx, [0x0040baa0]
call sub.msvcrt.dll__setjmp
test eax, eax
jne 0x40472c
mov rax, qword [0x0040b0a0]
mov rcx, rax
mov rdx, qword [0x0040ba90]
movsxd rax, dword [rbp - 0x34]
lea rbx, [rbp - 0x2c]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rcx
mov r9d, 2
mov r8d, 0x2000
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_recvfrom]
call rax
mov ebx, eax
mov edx, 0
mov ecx, 0
call fcn.004036fc
mov rax, qword [0x0040b0a0]
mov rdx, rax
movsxd rax, dword [rbp - 0x34]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_connect]
call rax
mov ebx, eax
jmp 0x404570
mov dword [rbp - 0x2c], 0x10
mov eax, dword [0x0040b0dc]
mov edx, eax
mov ecx, 2
call fcn.004036fc
call fcn.00407380
mov rdx, rax
lea rcx, [0x0040baa0]
call sub.msvcrt.dll__setjmp
test eax, eax
jne 0x40472f
mov rax, qword [0x0040b0a0]
mov rdx, rax
movsxd rax, dword [rbp - 0x34]
lea rcx, [rbp - 0x2c]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_accept]
call rax
mov ebx, eax
mov edx, 0
mov ecx, 0
call fcn.004036fc
movsxd rax, dword [rbp - 0x34]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_shutdown]
call rax
movsxd rax, dword [rbp - 0x34]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_closesocket]
call rax
mov dword [rbp - 0x34], ebx
test ebx, ebx
js 0x404741
mov rax, qword [0x0040ba90]
mov r8d, 0x40
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_memset
mov rax, qword [0x0040ba90]
add rax, 0x20
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x2c], 0x10
mov rax, qword [0x0040b098]
mov rdx, rax
movsxd rax, dword [rbp - 0x34]
lea rcx, [rbp - 0x2c]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_getsockname]
call rax
mov ebx, eax
test ebx, ebx
jns 0x4045db
lea rcx, [0x004098c8]
call fcn.004034eb
mov rax, qword [0x0040b098]
mov eax, dword [rax + 4]
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_inet_ntoa]
call rax
mov rdx, rax
mov rax, qword [rbp - 0x28]
mov rcx, rax
call sub.msvcrt.dll_strcpy
mov rax, qword [0x0040b0a0]
movzx eax, word [rax + 2]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_ntohs]
call rax
mov word [rbp - 0x1a], ax
mov rax, qword [0x0040b0a0]
mov eax, dword [rax + 4]
mov ecx, eax
mov rax, qword [sym.imp.WSOCK32.dll_inet_ntoa]
call rax
mov rdx, rax
mov rax, qword [0x0040ba90]
mov rcx, rax
call sub.msvcrt.dll_strcpy
movzx eax, word [0x0040b0d2]
movzx edx, ax
mov rax, qword [0x0040ba90]
mov rcx, rax
call fcn.00403841
mov qword [rbp - 0x18], rax
mov rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov dword [rax], 0
mov dword [rbp - 0x2c], 0
cmp qword [rbp + 0x10], 0
je 0x4046a4
mov rax, qword [rbp - 0x18]
add rax, 0x1c0
mov r8d, 0x10
mov rdx, rax
mov rcx, qword [rbp + 0x10]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4046a4
mov dword [rbp - 0x2c], 1
cmp word [rbp + 0x18], 0
je 0x4046bc
movzx eax, word [rbp - 0x1a]
cmp ax, word [rbp + 0x18]
je 0x4046bc
mov dword [rbp - 0x2c], 1
mov eax, dword [rbp - 0x2c]
test eax, eax
je 0x4046f5
movzx edx, word [rbp - 0x1a]
mov rax, qword [rbp - 0x18]
add rax, 0x100
mov rbx, rax
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x28]
mov dword [rsp + 0x20], edx
mov r9, rbx
mov r8, rcx
mov rdx, rax
lea rcx, [0x004098e8]
call fcn.004035db
movzx edx, word [rbp - 0x1a]
mov rax, qword [rbp - 0x18]
add rax, 0x100
mov rbx, rax
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x28]
mov dword [rsp + 0x20], edx
mov r9, rbx
mov r8, rcx
mov rdx, rax
lea rcx, [0x00409918]
call fcn.004034eb
mov eax, dword [rbp - 0x34]
jmp 0x40476c
nop
jmp 0x404730
nop
mov rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov dword [rax], 0x274c
jmp 0x404742
nop
movsxd rax, dword [rbp - 0x34]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_shutdown]
call rax
movsxd rax, dword [rbp - 0x34]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_closesocket]
call rax
mov eax, 0xffffffff
add rsp, 0x68
pop rbx
leave
ret