Function at 0x46d110
Capabilities:
Link many functions at runtime

Disassembly:
push esi
push str.ws2_32.dll
call fcn.0046caa4
add esp, 4
mov dword [0x4c3d00], eax
mov dword [0x4c3d04], eax
test eax, eax
jne 0x46d146
push str.wsock32.dll
call fcn.0046caa4
add esp, 4
mov dword [0x4c3d00], eax
test eax, eax
je 0x46d7d1
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x46d1cd
mov eax, dword [0x4c3d00]
test eax, eax
je 0x46d22a
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d08], eax
test ecx, ecx
je 0x46d234
push str.freeaddrinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d0c], eax
xor esi, esi
test ecx, ecx
je 0x46d26a
push str.getnameinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d10], eax
test ecx, ecx
je 0x46d26a
push str.gai_strerror
push ecx
jmp 0x46d262
push str.wship6.dll
call fcn.0046caa4
add esp, 4
mov dword [0x4c3d18], eax
test eax, eax
je 0x46d270
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4c3d08], eax
mov eax, dword [0x4c3d18]
test eax, eax
je 0x46d242
push str.freeaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d18]
mov dword [0x4c3d0c], eax
test ecx, ecx
je 0x46d24c
push str.getnameinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46d24e
mov dword [0x4c3d08], 0
mov dword [0x4c3d0c], 0
xor esi, esi
jmp 0x46d26a
mov dword [0x4c3d0c], 0
xor eax, eax
mov dword [0x4c3d10], eax
mov eax, dword [0x4c3d00]
test eax, eax
je 0x46d23e
push str.gai_strerror
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
mov dword [0x4c3d14], esi
mov eax, dword [0x4c3d04]
test eax, eax
je 0x46d287
push str.WSAAddressToStringA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46d289
xor eax, eax
mov dword [0x4c3d1c], eax
mov eax, dword [0x4c3d00]
test eax, eax
je 0x46d62f
push str.WSAAsyncSelect
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d20], eax
test ecx, ecx
je 0x46d639
push str.WSAEventSelect
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d24], eax
test ecx, ecx
je 0x46d643
push 0x4a8786
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d28], eax
test ecx, ecx
je 0x46d64d
push str.WSAGetLastError
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d2c], eax
test ecx, ecx
je 0x46d657
push str.WSAEnumNetworkEvents
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d30], eax
test ecx, ecx
je 0x46d661
push str.WSAStartup
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d34], eax
test ecx, ecx
je 0x46d66b
push str.WSACleanup
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d38], eax
test ecx, ecx
je 0x46d675
push str.closesocket
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d3c], eax
test ecx, ecx
je 0x46d67f
push str.ntohl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d40], eax
test ecx, ecx
je 0x46d689
push str.htonl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d44], eax
test ecx, ecx
je 0x46d693
push str.htons
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d48], eax
test ecx, ecx
je 0x46d69d
push str.ntohs
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d4c], eax
test ecx, ecx
je 0x46d6a7
push str.gethostname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d50], eax
test ecx, ecx
je 0x46d6b1
push str.gethostbyname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d54], eax
test ecx, ecx
je 0x46d6bb
push str.getservbyname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d58], eax
test ecx, ecx
je 0x46d6c5
push str.inet_addr
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d5c], eax
test ecx, ecx
je 0x46d6cf
push str.inet_ntoa
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d60], eax
test ecx, ecx
je 0x46d6d9
push str.inet_ntop
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d64], eax
test ecx, ecx
je 0x46d6e3
push 0x4a8773
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d68], eax
test ecx, ecx
je 0x46d6ed
push str.bind
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d6c], eax
test ecx, ecx
je 0x46d6f7
push str.setsockopt
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d70], eax
test ecx, ecx
je 0x46d701
push 0x4a851d
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d74], eax
test ecx, ecx
je 0x46d70b
push str.listen
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d78], eax
test ecx, ecx
je 0x46d715
push str.send
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d7c], eax
test ecx, ecx
je 0x46d71f
push 0x4ab0e7
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d80], eax
test ecx, ecx
je 0x46d729
push str.ioctlsocket
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d84], eax
test ecx, ecx
je 0x46d733
push str.accept
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d88], eax
test ecx, ecx
je 0x46d73d
push str.getpeername
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d8c], eax
test ecx, ecx
je 0x46d7c0
push str.recv
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d00]
mov dword [0x4c3d90], eax
test ecx, ecx
je 0x46d7ca
push str.WSAIoctl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46d749
mov dword [0x4c3d20], 0
mov dword [0x4c3d24], 0
mov dword [0x4c3d28], 0
mov dword [0x4c3d2c], 0
mov dword [0x4c3d30], 0
mov dword [0x4c3d34], 0
mov dword [0x4c3d38], 0
mov dword [0x4c3d3c], 0
mov dword [0x4c3d40], 0
mov dword [0x4c3d44], 0
mov dword [0x4c3d48], 0
mov dword [0x4c3d4c], 0
mov dword [0x4c3d50], 0
mov dword [0x4c3d54], 0
mov dword [0x4c3d58], 0
mov dword [0x4c3d5c], 0
mov dword [0x4c3d60], 0
mov dword [0x4c3d64], 0
mov dword [0x4c3d68], 0
mov dword [0x4c3d6c], 0
mov dword [0x4c3d70], 0
mov dword [0x4c3d74], 0
mov dword [0x4c3d78], 0
mov dword [0x4c3d7c], 0
mov dword [0x4c3d80], 0
mov dword [0x4c3d84], 0
mov dword [0x4c3d88], 0
xor eax, eax
mov dword [0x4c3d8c], eax
mov dword [0x4c3d90], eax
mov dword [0x4c3d94], eax
push 0x4c3d9c
push 0x202
call dword [0x4c3d34]
test eax, eax
jne 0x46d76b
cmp byte [0x4c3d9c], 2
je 0x46d7a2
push 0x4c3d9c
push 2
call dword [0x4c3d34]
test eax, eax
jne 0x46d785
cmp byte [0x4c3d9c], 2
je 0x46d7a2
push 0x4c3d9c
push 0x101
call dword [0x4c3d34]
test eax, eax
jne 0x46d7b6
cmp byte [0x4c3d9c], 1
jne 0x46d7b6
push 0x46d7db
call fcn.004597d4
add esp, 4
mov dword [0x4c3d98], eax
pop esi
ret
push str.Unable_to_initialise_WinSock
call fcn.00462a37
mov dword [0x4c3d90], 0
xor eax, eax
jmp 0x46d749
push str.Unable_to_load_any_WinSock_library
call fcn.00462a37
push edi
push esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov esi, dword [edx + 4]
mov edi, dword [ecx + 4]
xor eax, eax
dec eax
cmp esi, edi
jb 0x46d805
cmp esi, edi
jbe 0x46d7fb
xor eax, eax
inc eax
jmp 0x46d805
cmp edx, ecx
jb 0x46d805
seta al
movzx eax, al
pop esi
pop edi
ret