Function at 0x489a10
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 8]
mov dword [ebp - 4], eax
call fcn.0044ce50
xor eax, eax
push fcn.00489a00
push ebp
push 0x459540
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 8], 0
cmp dword [ebp - 4], 0
jne 0x489a4c
lea eax, [ebp - 4]
mov edx, str.ws2_32.dll
call fcn.0044ce80
lea esi, [esi]
mov eax, dword [0x4f36d0]
call fcn.00489710
xor eax, eax
push fcn.004899f0
push ebp
push 0x459540
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4b3720], 0
jne 0x489ec2
mov byte [0x4f36e0], 0
mov byte [0x4f36f0], 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x489a90
mov eax, 0x4f1e20
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4b3730], eax
test eax, eax
je 0x489ec6
mov eax, str.WSAIoctl
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3710], eax
mov eax, str.__WSAFDIsSet
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3700], eax
mov eax, str.closesocket
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3670], eax
mov eax, str.ioctlsocket
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35f0], eax
mov eax, str.WSAGetLastError
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b34d0], eax
mov eax, str.WSAStartup
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b34b0], eax
mov eax, str.WSACleanup
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b34c0], eax
mov eax, str.accept
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3690], eax
mov eax, str.bind
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3680], eax
mov eax, str.connect
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3660], eax
mov eax, str.getpeername
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3650], eax
mov eax, str.getsockname
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3640], eax
mov eax, str.getsockopt
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3570], eax
mov eax, str.htonl
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3630], eax
mov eax, str.htons
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3620], eax
mov eax, str.inet_addr
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3610], eax
mov eax, str.inet_ntoa
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3600], eax
mov eax, str.listen
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35e0], eax
mov eax, str.ntohl
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35d0], eax
mov eax, str.ntohs
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35c0], eax
mov eax, str.recv
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35a0], eax
mov eax, str.recvfrom
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b35b0], eax
mov eax, str.select
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36b0], eax
mov eax, str.WSAPoll
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36c0], eax
mov eax, str.send
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3590], eax
mov eax, str.sendto
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3580], eax
mov eax, str.setsockopt
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3560], eax
mov eax, str.shutdown
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3550], eax
mov eax, str.socket
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36a0], eax
mov eax, str.gethostbyaddr
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3530], eax
mov eax, str.gethostbyname
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3520], eax
mov eax, str.getprotobyname
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3500], eax
mov eax, str.getprotobynumber
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3510], eax
mov eax, str.getservbyname
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b34e0], eax
mov eax, str.getservbyport
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b34f0], eax
mov eax, str.gethostname
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b3540], eax
mov eax, str.getaddrinfo
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36d0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36e0], eax
mov eax, str.getnameinfo
push eax
push dword [0x4b3730]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36f0], eax
cmp dword [0x4b36d0], 0
je 0x489e21
cmp dword [0x4b36e0], 0
je 0x489e21
cmp dword [0x4b36f0], 0
je 0x489e21
mov byte [0x4f36e0], 1
jmp 0x489e28
mov byte [0x4f36e0], 0
cmp byte [0x4f36e0], 0
jne 0x489ebc
mov eax, str.wship6.dll
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4b3740], eax
test eax, eax
je 0x489ebc
mov eax, str.getaddrinfo
push eax
push dword [0x4b3740]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36d0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x4b3740]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36e0], eax
mov eax, str.getnameinfo
push eax
push dword [0x4b3740]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4b36f0], eax
cmp dword [0x4b36d0], 0
je 0x489eb3
cmp dword [0x4b36e0], 0
je 0x489eb3
cmp dword [0x4b36f0], 0
je 0x489eb3
mov byte [0x4f36f0], 1
jmp 0x489eba
mov byte [0x4f36f0], 0
mov esi, esi
mov byte [ebp - 8], 1
jmp 0x489ec6
mov byte [ebp - 8], 1
cmp byte [ebp - 8], 0
je 0x489ed4
add dword [0x4b3720], 1
nop
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.004899f0
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00489a00
mov al, byte [ebp - 8]
mov esp, ebp
pop ebp
ret