Function at 0x4322af
Capabilities:
Check os version
Link function at runtime on windows
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
push ebx
push esi
mov esi, ecx
lea eax, [ebp - 0x94]
push edi
xor ebx, ebx
push eax
mov dword [esi + 4], ebx
mov dword [ebp - 0x94], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x90], 5
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
jbe 0x4322f4
push str.WS2_32.DLL
call edi
mov dword [esi + 0xc], eax
jmp 0x4322f7
mov dword [esi + 0xc], ebx
cmp dword [esi + 0xc], ebx
mov dword [esi + 8], 1
jne 0x432318
push str.WSOCK32.DLL
call edi
cmp eax, ebx
mov dword [esi + 0xc], eax
mov dword [esi + 8], ebx
je 0x432651
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.WSAStartup
push dword [esi + 0xc]
call edi
push str.WSACleanup
mov dword [esi + 0x4c], eax
push dword [esi + 0xc]
call edi
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x30], eax
cmp ecx, ebx
je 0x432645
cmp eax, ebx
je 0x432645
mov eax, dword [esi + 8]
lea edx, [ebp - 0x224]
neg eax
sbb eax, eax
push edx
and al, 1
add eax, 0x101
push eax
call ecx
test eax, eax
jne 0x432645
mov eax, dword [esi + 8]
xor ecx, ecx
movzx edx, byte [ebp - 0x224]
cmp eax, ebx
setne cl
inc ecx
cmp edx, ecx
jne 0x432656
xor ecx, ecx
xor edx, edx
mov cl, byte [ebp - 0x223]
cmp eax, ebx
movzx ecx, cl
sete dl
cmp ecx, edx
jne 0x432656
push str.bind
cmp eax, ebx
push dword [esi + 0xc]
je 0x432501
call edi
push str.closesocket
mov dword [esi + 0x10], eax
push dword [esi + 0xc]
call edi
push str.gethostbyname
mov dword [esi + 0x14], eax
push dword [esi + 0xc]
call edi
push str.inet_addr
mov dword [esi + 0x18], eax
push dword [esi + 0xc]
call edi
push str.listen
mov dword [esi + 0x1c], eax
push dword [esi + 0xc]
call edi
push str.shutdown
mov dword [esi + 0x20], eax
push dword [esi + 0xc]
call edi
push str.WSAAccept
mov dword [esi + 0x24], eax
push dword [esi + 0xc]
call edi
push str.WSAAsyncSelect
mov dword [esi + 0x28], eax
push dword [esi + 0xc]
call edi
push str.WSAConnect
mov dword [esi + 0x2c], eax
push dword [esi + 0xc]
call edi
push str.WSAEnumProtocolsA
mov dword [esi + 0x34], eax
push dword [esi + 0xc]
call edi
push str.WSAGetLastError
mov dword [esi + 0x38], eax
push dword [esi + 0xc]
call edi
push str.WSARecv
mov dword [esi + 0x3c], eax
push dword [esi + 0xc]
call edi
push str.WSASend
mov dword [esi + 0x40], eax
push dword [esi + 0xc]
call edi
push str.WSASocketA
mov dword [esi + 0x44], eax
push dword [esi + 0xc]
call edi
push str.GetAddressByNameA
mov dword [esi + 0x48], eax
push dword [esi + 0xc]
call edi
push str.setsockopt
mov dword [esi + 0x6c], eax
push dword [esi + 0xc]
call edi
push str.htons
mov dword [esi + 0x70], eax
push dword [esi + 0xc]
call edi
cmp dword [esi + 0x10], ebx
mov dword [esi + 0x74], eax
je 0x43263c
cmp dword [esi + 0x14], ebx
je 0x43263c
cmp dword [esi + 0x18], ebx
je 0x43263c
cmp dword [esi + 0x1c], ebx
je 0x43263c
cmp dword [esi + 0x20], ebx
je 0x43263c
cmp dword [esi + 0x24], ebx
je 0x43263c
cmp dword [esi + 0x28], ebx
je 0x43263c
cmp dword [esi + 0x2c], ebx
je 0x43263c
cmp dword [esi + 0x34], ebx
je 0x43263c
cmp dword [esi + 0x38], ebx
je 0x43263c
cmp dword [esi + 0x3c], ebx
je 0x43263c
cmp dword [esi + 0x40], ebx
je 0x43263c
cmp dword [esi + 0x44], ebx
je 0x43263c
cmp dword [esi + 0x48], ebx
jmp 0x43262c
call edi
push str.closesocket
mov dword [esi + 0x10], eax
push dword [esi + 0xc]
call edi
push str.gethostbyname
mov dword [esi + 0x14], eax
push dword [esi + 0xc]
call edi
push str.inet_addr
mov dword [esi + 0x18], eax
push dword [esi + 0xc]
call edi
push str.listen
mov dword [esi + 0x1c], eax
push dword [esi + 0xc]
call edi
push str.shutdown
mov dword [esi + 0x20], eax
push dword [esi + 0xc]
call edi
push str.accept
mov dword [esi + 0x24], eax
push dword [esi + 0xc]
call edi
push str.WSAAsyncSelect
mov dword [esi + 0x50], eax
push dword [esi + 0xc]
call edi
push str.connect
mov dword [esi + 0x2c], eax
push dword [esi + 0xc]
call edi
push str.EnumProtocolsA
mov dword [esi + 0x54], eax
push dword [esi + 0xc]
call edi
push str.WSAGetLastError
mov dword [esi + 0x58], eax
push dword [esi + 0xc]
call edi
push str.recv
mov dword [esi + 0x3c], eax
push dword [esi + 0xc]
call edi
push str.send
mov dword [esi + 0x5c], eax
push dword [esi + 0xc]
call edi
push str.sendto
mov dword [esi + 0x60], eax
push dword [esi + 0xc]
call edi
push str.socket
mov dword [esi + 0x64], eax
push dword [esi + 0xc]
call edi
push str.GetAddressByNameA
mov dword [esi + 0x68], eax
push dword [esi + 0xc]
call edi
push str.setsockopt
mov dword [esi + 0x6c], eax
push dword [esi + 0xc]
call edi
push str.htons
mov dword [esi + 0x70], eax
push dword [esi + 0xc]
call edi
cmp dword [esi + 0x10], ebx
mov dword [esi + 0x74], eax
je 0x43263c
cmp dword [esi + 0x14], ebx
je 0x43263c
cmp dword [esi + 0x18], ebx
je 0x43263c
cmp dword [esi + 0x1c], ebx
je 0x43263c
cmp dword [esi + 0x20], ebx
je 0x43263c
cmp dword [esi + 0x24], ebx
je 0x43263c
cmp dword [esi + 0x50], ebx
je 0x43263c
cmp dword [esi + 0x2c], ebx
je 0x43263c
cmp dword [esi + 0x54], ebx
je 0x43263c
cmp dword [esi + 0x58], ebx
je 0x43263c
cmp dword [esi + 0x3c], ebx
je 0x43263c
cmp dword [esi + 0x5c], ebx
je 0x43263c
cmp dword [esi + 0x60], ebx
je 0x43263c
cmp dword [esi + 0x64], ebx
je 0x43263c
cmp dword [esi + 0x68], ebx
je 0x43263c
cmp dword [esi + 0x70], ebx
je 0x43263c
cmp eax, ebx
je 0x43263c
push 1
pop eax
jmp 0x43263e
xor eax, eax
cmp eax, ebx
mov dword [esi + 4], eax
jne 0x432651
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0xc], ebx
pop edi
pop esi
pop ebx
leave
ret
call dword [esi + 0x30]
jmp 0x432651