Function at 0x439390
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration
Start tcp server

Disassembly:
sub esp, 0x64
mov eax, dword [0x45d380]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_socket]
push ebp
push esi
mov esi, dword [esp + 0x80]
push edi
push 6
push 1
mov ebp, 0x10
push 2
mov dword [esp + 0x2c], ebp
call ebx
mov edi, eax
mov dword [esp + 0x24], edi
cmp edi, 0xffffffff
je 0x439665
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 2
push 0x7f000001
mov word [esp + 0x4c], ax
call dword [sym.imp.WS2_32.dll_htonl]
push 4
lea edx, [esp + 0x14]
push edx
push 0xfffffffffffffffb
push 0xffff
xor ecx, ecx
push edi
mov dword [esp + 0x60], eax
mov word [esp + 0x5e], cx
mov dword [esi + 4], 0xffffffff
mov dword [esi], 0xffffffff
mov dword [esp + 0x24], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x439651
push ebp
lea eax, [esp + 0x4c]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x439651
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x4c]
push edx
push edi
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x439651
cmp dword [esp + 0x20], ebp
jl 0x439651
push 1
push edi
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x439651
push 0
push 1
push 2
call ebx
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x439651
push ebp
lea ecx, [esp + 0x4c]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x439651
push 1
push edi
call fcn.004416e0
add esp, 8
test eax, eax
js 0x439651
push 0
push 0x3e8
lea ecx, [esp + 0x1c]
push 1
push ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 1
call fcn.0043a140
add esp, 0x10
push 0
push 0
push edi
call dword [sym.imp.WS2_32.dll_accept]
mov dword [esi + 4], eax
cmp eax, 0xffffffff
je 0x439651
lea edx, [esp + 0x38]
push edx
call fcn.004176c0
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp + 0x34], ecx
push 9
lea ecx, [esp + 0x60]
push ecx
lea eax, [esp + 0x70]
push 0
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 9
call fcn.004358b0
add esp, 0x10
test eax, eax
jne 0x439651
push eax
mov eax, dword [esi]
push 9
lea edx, [esp + 0x60]
push edx
push eax
call dword [sym.imp.WS2_32.dll_send]
lea esp, [esp]
mov ecx, dword [esi + 4]
push 0
push 0x3e8
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1c]
push 1
push ecx
mov dword [esp + 0x28], 1
call fcn.0043a140
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 4]
add esp, 0x10
push 0
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x4395fb
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edx, [esp + 0x38]
push edx
mov edi, eax
call fcn.004176c0
mov edx, dword [esp + 0x34]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00417760
add esp, 0x20
test edx, edx
jg 0x43964d
jl 0x4395ea
cmp eax, 0xea60
ja 0x43964d
cmp edi, 0x2733
jne 0x43964d
mov edi, dword [esp + 0x24]
jmp 0x439550
sub dword [esp + 0x1c], eax
je 0x43960a
add dword [esp + 0x10], eax
jmp 0x439550
mov eax, 9
lea ecx, [esp + 0x64]
lea edx, [esp + 0x58]
mov ebx, dword [edx]
cmp ebx, dword [ecx]
jne 0x439651
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x439617
mov cl, byte [ecx]
cmp cl, byte [edx]
jne 0x439651
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.0044bb74
add esp, 0x64
ret
mov edi, dword [esp + 0x24]
push edi
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
call edi
mov edx, dword [esi]
push edx
call edi
mov eax, dword [esi + 4]
push eax
call edi
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.0044bb74
add esp, 0x64
ret