Function at 0x10166c50
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [0x101ec784], 0
jne 0x101671be
push str.WSOCK32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 4], eax
push str.Ws2_32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 8], eax
cmp dword [ebp - 4], 0
je 0x101671ba
push str.WSAStartup
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec784], eax
cmp dword [0x101ec784], 0
jne 0x10166cbe
push 0
push 0
push str.Cannot_load_WSAStartup
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.WSACleanup
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec788], eax
cmp dword [0x101ec788], 0
jne 0x10166cf3
push 0
push 0
push str.Cannot_load_WSACleanup
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.WSAGetLastError
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec78c], eax
cmp dword [0x101ec78c], 0
jne 0x10166d28
push 0
push 0
push str.Cannot_load_WSAGetLastError
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.ntohl
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7cc], eax
cmp dword [0x101ec7cc], 0
jne 0x10166d5d
push 0
push 0
push str.Cannot_load_ntohl
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.htonl
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7c0], eax
cmp dword [0x101ec7c0], 0
jne 0x10166d92
push 0
push 0
push str.Cannot_load_htonl
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.htons
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7c4], eax
cmp dword [0x101ec7c4], 0
jne 0x10166dc7
push 0
push 0
push str.Cannot_load_htons
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.ntohs
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7c8], eax
cmp dword [0x101ec7c8], 0
jne 0x10166dfc
push 0
push 0
push str.Cannot_load_ntohs
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.gethostname
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7d0], eax
cmp dword [0x101ec7d0], 0
jne 0x10166e31
push 0
push 0
push str.Cannot_load_gethostname
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.gethostbyname
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7d4], eax
cmp dword [0x101ec7d4], 0
jne 0x10166e66
push 0
push 0
push str.Cannot_load_gethostbyname
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.gethostbyaddr
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7d8], eax
cmp dword [0x101ec7d8], 0
jne 0x10166e9b
push 0
push 0
push str.Cannot_load_gethostbyaddr
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.accept
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7bc], eax
cmp dword [0x101ec7bc], 0
jne 0x10166ed0
push 0
push 0
push str.Cannot_load_accept
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.setsockopt
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7ac], eax
cmp dword [0x101ec7ac], 0
jne 0x10166f05
push 0
push 0
push str.Cannot_load_setsockopt
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.listen
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7b0], eax
cmp dword [0x101ec7b0], 0
jne 0x10166f3a
push 0
push 0
push str.Cannot_load_listen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.sendto
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7b4], eax
cmp dword [0x101ec7b4], 0
jne 0x10166f6f
push 0
push 0
push str.Cannot_load_sendto
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.socket
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7b8], eax
cmp dword [0x101ec7b8], 0
jne 0x10166fa4
push 0
push 0
push str.Cannot_load_socket
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.bind
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec794], eax
cmp dword [0x101ec794], 0
jne 0x10166fd9
push 0
push 0
push str.Cannot_load_bind
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.closesocket
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec790], eax
cmp dword [0x101ec790], 0
jne 0x1016700e
push 0
push 0
push str.Cannot_load_closesocket
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.connect
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec798], eax
cmp dword [0x101ec798], 0
jne 0x10167043
push 0
push 0
push str.Cannot_load_connect
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.shutdown
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec79c], eax
cmp dword [0x101ec79c], 0
jne 0x10167078
push 0
push 0
push str.Cannot_load_shutdown
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.send
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7a0], eax
cmp dword [0x101ec7a0], 0
jne 0x101670ad
push 0
push 0
push str.Cannot_load_send
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.recv
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7a4], eax
cmp dword [0x101ec7a4], 0
jne 0x101670e2
push 0
push 0
push str.Cannot_load_recv
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.recvfrom
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7a8], eax
cmp dword [0x101ec7a8], 0
jne 0x10167117
push 0
push 0
push str.Cannot_load_recvfrom
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.inet_addr
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7e0], eax
cmp dword [0x101ec7e0], 0
jne 0x10167149
push 0
push 0
push str.Cannot_load_inet_addr
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.select
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7e4], eax
cmp dword [0x101ec7e4], 0
jne 0x1016717b
push 0
push 0
push str.Cannot_load_select
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push str.inet_ntoa
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101ec7e8], eax
cmp dword [0x101ec7e8], 0
jne 0x101671ad
push 0
push 0
push str.Cannot_load_inet_ntoa
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x101671c0
push 0x101ec768
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x101671be
xor al, al
jmp 0x101671c0
mov al, 1
mov esp, ebp
pop ebp
ret