Function at 0x43a140
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 [0x45e380]
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 0x43a415
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 0x43a401
push ebp
lea eax, [esp + 0x4c]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x43a401
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 0x43a401
cmp dword [esp + 0x20], ebp
jl 0x43a401
push 1
push edi
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x43a401
push 0
push 1
push 2
call ebx
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x43a401
push ebp
lea ecx, [esp + 0x4c]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x43a401
push 1
push edi
call fcn.00442450
add esp, 8
test eax, eax
js 0x43a401
push 0
push 0x3e8
lea ecx, [esp + 0x1c]
push 1
push ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 1
call fcn.0043aef0
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 0x43a401
lea edx, [esp + 0x38]
push edx
call fcn.00418480
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.00436660
add esp, 0x10
test eax, eax
jne 0x43a401
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.0043aef0
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 0x43a3ab
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edx, [esp + 0x38]
push edx
mov edi, eax
call fcn.00418480
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.00418520
add esp, 0x20
test edx, edx
jg 0x43a3fd
jl 0x43a39a
cmp eax, 0xea60
ja 0x43a3fd
cmp edi, 0x2733
jne 0x43a3fd
mov edi, dword [esp + 0x24]
jmp 0x43a300
sub dword [esp + 0x1c], eax
je 0x43a3ba
add dword [esp + 0x10], eax
jmp 0x43a300
mov eax, 9
lea ecx, [esp + 0x64]
lea edx, [esp + 0x58]
mov ebx, dword [edx]
cmp ebx, dword [ecx]
jne 0x43a401
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x43a3c7
mov cl, byte [ecx]
cmp cl, byte [edx]
jne 0x43a401
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.0044c8e4
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.0044c8e4
add esp, 0x64
ret