Function at 0x46d434
Capabilities:
Link many functions at runtime

Disassembly:
push esi
push str.ws2_32.dll
call fcn.0046cde0
add esp, 4
mov dword [0x4c3d08], eax
mov dword [0x4c3d0c], eax
test eax, eax
jne 0x46d46a
push str.wsock32.dll
call fcn.0046cde0
add esp, 4
mov dword [0x4c3d08], eax
test eax, eax
je 0x46daf7
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x46d4f1
mov eax, dword [0x4c3d08]
test eax, eax
je 0x46d54e
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d10], eax
test ecx, ecx
je 0x46d558
push str.freeaddrinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d14], eax
xor esi, esi
test ecx, ecx
je 0x46d58e
push str.getnameinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d18], eax
test ecx, ecx
je 0x46d58e
push str.gai_strerror
push ecx
jmp 0x46d586
push str.wship6.dll
call fcn.0046cde0
add esp, 4
mov dword [0x4c3d20], eax
test eax, eax
je 0x46d594
push str.getaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4c3d10], eax
mov eax, dword [0x4c3d20]
test eax, eax
je 0x46d566
push str.freeaddrinfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d20]
mov dword [0x4c3d14], eax
test ecx, ecx
je 0x46d570
push str.getnameinfo
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46d572
mov dword [0x4c3d10], 0
mov dword [0x4c3d14], 0
xor esi, esi
jmp 0x46d58e
mov dword [0x4c3d14], 0
xor eax, eax
mov dword [0x4c3d18], eax
mov eax, dword [0x4c3d08]
test eax, eax
je 0x46d562
push str.gai_strerror
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
mov dword [0x4c3d1c], esi
mov eax, dword [0x4c3d0c]
test eax, eax
je 0x46d5ab
push str.WSAAddressToStringA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46d5ad
xor eax, eax
mov dword [0x4c3d24], eax
mov eax, dword [0x4c3d08]
test eax, eax
je 0x46d953
push str.WSAAsyncSelect
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d28], eax
test ecx, ecx
je 0x46d95d
push str.WSAEventSelect
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d2c], eax
test ecx, ecx
je 0x46d967
push 0x4a8876
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d30], eax
test ecx, ecx
je 0x46d971
push str.WSAGetLastError
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d34], eax
test ecx, ecx
je 0x46d97b
push str.WSAEnumNetworkEvents
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d38], eax
test ecx, ecx
je 0x46d985
push str.WSAStartup
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d3c], eax
test ecx, ecx
je 0x46d98f
push str.WSACleanup
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d40], eax
test ecx, ecx
je 0x46d999
push str.closesocket
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d44], eax
test ecx, ecx
je 0x46d9a3
push str.ntohl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d48], eax
test ecx, ecx
je 0x46d9ad
push str.htonl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d4c], eax
test ecx, ecx
je 0x46d9b7
push str.htons
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d50], eax
test ecx, ecx
je 0x46d9c1
push str.ntohs
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d54], eax
test ecx, ecx
je 0x46d9cb
push str.gethostname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d58], eax
test ecx, ecx
je 0x46d9d5
push str.gethostbyname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d5c], eax
test ecx, ecx
je 0x46d9df
push str.getservbyname
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d60], eax
test ecx, ecx
je 0x46d9e9
push str.inet_addr
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d64], eax
test ecx, ecx
je 0x46d9f3
push str.inet_ntoa
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d68], eax
test ecx, ecx
je 0x46d9fd
push str.inet_ntop
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d6c], eax
test ecx, ecx
je 0x46da07
push 0x4a8863
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d70], eax
test ecx, ecx
je 0x46da11
push str.bind
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d74], eax
test ecx, ecx
je 0x46da1b
push str.setsockopt
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d78], eax
test ecx, ecx
je 0x46da25
push 0x4a860d
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d7c], eax
test ecx, ecx
je 0x46da2f
push str.listen
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d80], eax
test ecx, ecx
je 0x46da39
push str.send
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d84], eax
test ecx, ecx
je 0x46da43
push 0x4ab1d7
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d88], eax
test ecx, ecx
je 0x46da4d
push str.ioctlsocket
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d8c], eax
test ecx, ecx
je 0x46da57
push str.accept
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d90], eax
test ecx, ecx
je 0x46da61
push str.getpeername
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d94], eax
test ecx, ecx
je 0x46dae6
push str.recv
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x4c3d08]
mov dword [0x4c3d98], eax
test ecx, ecx
je 0x46daf0
push str.WSAIoctl
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x46da6d
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
mov dword [0x4c3d8c], 0
mov dword [0x4c3d90], 0
xor eax, eax
mov dword [0x4c3d94], eax
mov dword [0x4c3d98], eax
mov dword [0x4c3d9c], eax
push 0x4c3da4
push 0x202
call dword [0x4c3d3c]
test eax, eax
jne 0x46da93
movzx eax, byte [0x4c3da4]
cmp ax, 2
je 0x46dad2
push 0x4c3da4
push 2
call dword [0x4c3d3c]
test eax, eax
jne 0x46dab1
movzx eax, byte [0x4c3da4]
cmp ax, 2
je 0x46dad2
push 0x4c3da4
push 0x101
call dword [0x4c3d3c]
test eax, eax
jne 0x46db01
movzx eax, byte [0x4c3da4]
cmp ax, 1
jne 0x46db01
push 0x46db0b
call fcn.00459964
add esp, 4
mov dword [0x4c3da0], eax
pop esi
ret
mov dword [0x4c3d98], 0
xor eax, eax
jmp 0x46da6d
push str.Unable_to_load_any_WinSock_library
call fcn.00462c91
push str.Unable_to_initialise_WinSock
call fcn.00462c91
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 0x46db35
cmp esi, edi
jbe 0x46db2b
xor eax, eax
inc eax
jmp 0x46db35
cmp edx, ecx
jb 0x46db35
seta al
movzx eax, al
pop esi
pop edi
ret