Function at 0x487e00
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 8]
mov dword [ebp - 4], eax
call fcn.0044bff0
xor eax, eax
push fcn.00487df0
push ebp
push 0x458210
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 8], 0
cmp dword [ebp - 4], 0
jne 0x487e3c
lea eax, [ebp - 4]
mov edx, str.ws2_32.dll
call fcn.0044c020
lea esi, [esi]
mov eax, dword [0x4e76c0]
call fcn.00487b10
xor eax, eax
push fcn.00487de0
push ebp
push 0x458210
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4aa6f0], 0
jne 0x4882b2
mov byte [0x4e76d0], 0
mov byte [0x4e76e0], 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x487e80
mov eax, 0x4e5e10
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4aa700], eax
test eax, eax
je 0x4882b6
mov eax, str.WSAIoctl
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6e0], eax
mov eax, str.__WSAFDIsSet
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6d0], eax
mov eax, str.closesocket
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa640], eax
mov eax, str.ioctlsocket
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5c0], eax
mov eax, str.WSAGetLastError
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4a0], eax
mov eax, str.WSAStartup
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa480], eax
mov eax, str.WSACleanup
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa490], eax
mov eax, str.accept
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa660], eax
mov eax, str.bind
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa650], eax
mov eax, str.connect
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa630], eax
mov eax, str.getpeername
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa620], eax
mov eax, str.getsockname
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa610], eax
mov eax, str.getsockopt
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa540], eax
mov eax, str.htonl
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa600], eax
mov eax, str.htons
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5f0], eax
mov eax, str.inet_addr
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5e0], eax
mov eax, str.inet_ntoa
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5d0], eax
mov eax, str.listen
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5b0], eax
mov eax, str.ntohl
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa5a0], eax
mov eax, str.ntohs
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa590], eax
mov eax, str.recv
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa570], eax
mov eax, str.recvfrom
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa580], eax
mov eax, str.select
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa680], eax
mov eax, str.WSAPoll
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa690], eax
mov eax, str.send
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa560], eax
mov eax, str.sendto
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa550], eax
mov eax, str.setsockopt
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa530], eax
mov eax, str.shutdown
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa520], eax
mov eax, str.socket
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa670], eax
mov eax, str.gethostbyaddr
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa500], eax
mov eax, str.gethostbyname
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4f0], eax
mov eax, str.getprotobyname
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4d0], eax
mov eax, str.getprotobynumber
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4e0], eax
mov eax, str.getservbyname
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4b0], eax
mov eax, str.getservbyport
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa4c0], eax
mov eax, str.gethostname
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa510], eax
mov eax, str.getaddrinfo
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6a0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6b0], eax
mov eax, str.getnameinfo
push eax
push dword [0x4aa700]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6c0], eax
cmp dword [0x4aa6a0], 0
je 0x488211
cmp dword [0x4aa6b0], 0
je 0x488211
cmp dword [0x4aa6c0], 0
je 0x488211
mov byte [0x4e76d0], 1
jmp 0x488218
mov byte [0x4e76d0], 0
cmp byte [0x4e76d0], 0
jne 0x4882ac
mov eax, str.wship6.dll
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4aa710], eax
test eax, eax
je 0x4882ac
mov eax, str.getaddrinfo
push eax
push dword [0x4aa710]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6a0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x4aa710]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6b0], eax
mov eax, str.getnameinfo
push eax
push dword [0x4aa710]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4aa6c0], eax
cmp dword [0x4aa6a0], 0
je 0x4882a3
cmp dword [0x4aa6b0], 0
je 0x4882a3
cmp dword [0x4aa6c0], 0
je 0x4882a3
mov byte [0x4e76e0], 1
jmp 0x4882aa
mov byte [0x4e76e0], 0
mov esi, esi
mov byte [ebp - 8], 1
jmp 0x4882b6
mov byte [ebp - 8], 1
cmp byte [ebp - 8], 0
je 0x4882c4
add dword [0x4aa6f0], 1
nop
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00487de0
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00487df0
mov al, byte [ebp - 8]
mov esp, ebp
pop ebp
ret