Function at 0x42f080
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404d70
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x2c]
mov eax, 1
call fcn.00407750
call fcn.00408d00
push eax
test eax, eax
jne 0x42f599
mov byte [ebp - 8], 0
mov byte [0x43ba70], 0
mov eax, dword [ebp - 4]
test eax, eax
je 0x42f0c6
jmp 0x42f0d6
mov ebx, str.ws2_32.dll
lea eax, [ebp - 4]
call fcn.00402820
mov dword [ebp - 4], ebx
mov eax, dword [0x43ba60]
call fcn.0042f710
lea ecx, [ebp - 0x3c]
lea edx, [ebp - 0x54]
mov eax, 1
call fcn.00407750
call fcn.00408d00
push eax
test eax, eax
jne 0x42f579
mov eax, dword [0x438940]
test eax, eax
je 0x42f10c
jmp 0x42f559
mov byte [0x43ba70], 0
mov byte [0x43ba80], 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x42f126
mov eax, 0x439f50
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x438950], eax
mov eax, dword [0x438950]
test eax, eax
jne 0x42f13f
jmp 0x42f557
mov eax, str.WSAIoctl
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438930], eax
mov eax, str.__WSAFDIsSet
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438920], eax
mov eax, str.closesocket
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388a0], eax
mov eax, str.ioctlsocket
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438820], eax
mov eax, str.WSAGetLastError
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438700], eax
mov eax, str.WSAStartup
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4386e0], eax
mov eax, str.WSACleanup
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4386f0], eax
mov eax, str.accept
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388c0], eax
mov eax, str.bind
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388b0], eax
mov eax, str.connect
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438890], eax
mov eax, str.getpeername
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438880], eax
mov eax, str.getsockname
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438870], eax
mov eax, str.getsockopt
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387a0], eax
mov eax, str.htonl
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438860], eax
mov eax, str.htons
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438850], eax
mov eax, str.inet_addr
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438840], eax
mov eax, str.inet_ntoa
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438830], eax
mov eax, str.listen
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438810], eax
mov eax, str.ntohl
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438800], eax
mov eax, str.ntohs
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387f0], eax
mov eax, str.recv
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387d0], eax
mov eax, str.recvfrom
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387e0], eax
mov eax, str.select
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388e0], eax
mov eax, str.send
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387c0], eax
mov eax, str.sendto
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4387b0], eax
mov eax, str.setsockopt
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438790], eax
mov eax, str.shutdown
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438780], eax
mov eax, str.socket
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388d0], eax
mov eax, str.gethostbyaddr
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438760], eax
mov eax, str.gethostbyname
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438750], eax
mov eax, str.getprotobyname
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438730], eax
mov eax, str.getprotobynumber
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438740], eax
mov eax, str.getservbyname
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438710], eax
mov eax, str.getservbyport
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438720], eax
mov eax, str.gethostname
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438770], eax
mov eax, str.getaddrinfo
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388f0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438900], eax
mov eax, str.getnameinfo
push eax
push dword [0x438950]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438910], eax
cmp dword [0x4388f0], 0
jne 0x42f48e
jmp 0x42f4ad
cmp dword [0x438900], 0
jne 0x42f499
jmp 0x42f4ad
cmp dword [0x438910], 0
jne 0x42f4a4
jmp 0x42f4ad
mov byte [0x43ba70], 1
jmp 0x42f4b4
mov byte [0x43ba70], 0
mov al, byte [0x43ba70]
test al, al
je 0x42f4c2
jmp 0x42f553
mov eax, str.wship6.dll
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x438960], eax
mov eax, dword [0x438960]
test eax, eax
jne 0x42f4e0
jmp 0x42f553
mov eax, str.getaddrinfo
push eax
push dword [0x438960]
call sub.kernel32.dll_GetProcAddress
mov dword [0x4388f0], eax
mov eax, str.freeaddrinfo
push eax
push dword [0x438960]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438900], eax
mov eax, str.getnameinfo
push eax
push dword [0x438960]
call sub.kernel32.dll_GetProcAddress
mov dword [0x438910], eax
cmp dword [0x4388f0], 0
jne 0x42f52d
jmp 0x42f54c
cmp dword [0x438900], 0
jne 0x42f538
jmp 0x42f54c
cmp dword [0x438910], 0
jne 0x42f543
jmp 0x42f54c
mov byte [0x43ba80], 1
jmp 0x42f553
mov byte [0x43ba80], 0
mov byte [ebp - 8], 1
jmp 0x42f55d
mov byte [ebp - 8], 1
cmp byte [ebp - 8], 0
jne 0x42f565
jmp 0x42f579
mov eax, dword [0x438940]
add eax, 1
jno 0x42f574
call fcn.00408500
mov dword [0x438940], eax
call fcn.00407a10
mov eax, dword [0x43ba60]
call fcn.0042f720
pop eax
test eax, eax
je 0x42f599
sub eax, 1
test eax, eax
je 0x42f594
call fcn.00407b70
call fcn.00407a10
lea eax, [ebp - 4]
call fcn.00402820
pop eax
test eax, eax
je 0x42f5b0
call fcn.00407b70
mov al, byte [ebp - 8]
mov ebx, dword [ebp - 0x5c]
leave
ret