Function at 0x981980
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
mov ebx, ecx
mov dword [0xc2bbec], 0
mov dword [0xc2bbf0], 0
push str.WS2_32.DLL
call fcn.009834a0
add esp, 4
mov esi, 0xffffffff
test eax, eax
mov dword [0xc2bc54], eax
je 0x981dcf
push str.WSAStartup
push eax
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bbf4], eax
je 0x981db6
push str.WSACleanup
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bbf8], eax
je 0x981db6
push str.socket
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc0c], eax
je 0x981db6
push str.sendto
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc38], eax
je 0x981db6
push str.select
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc44], eax
je 0x981db6
push str.recvfrom
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc34], eax
je 0x981db6
push str.send
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc30], eax
je 0x981db6
push str.recv
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc2c], eax
je 0x981db6
push str.bind
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc04], eax
je 0x981db6
push str.getsockname
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc1c], eax
je 0x981db6
push str.shutdown
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc40], eax
je 0x981db6
push str.closesocket
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc3c], eax
je 0x981db6
push str.setsockopt
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc10], eax
je 0x981db6
push str.getsockopt
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc24], eax
je 0x981db6
push str.ioctlsocket
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc58], eax
je 0x981db6
push str.WSAGetLastError
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc5c], eax
je 0x981db6
push str.WSASetLastError
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc60], eax
je 0x981db6
push str.connect
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc18], eax
je 0x981db6
push str.accept
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc28], eax
je 0x981db6
push str.listen
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc08], eax
je 0x981db6
push str.getpeername
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc20], eax
je 0x981db6
push str.getprotobyname
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc64], eax
je 0x981db6
push str.gethostname
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc68], eax
je 0x981db6
push str.gethostbyname
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc6c], eax
je 0x981db6
push str.gethostbyaddr
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc70], eax
je 0x981db6
push str.getservbyname
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc74], eax
je 0x981db6
push str.htonl
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc78], eax
je 0x981db6
push str.htons
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bbfc], eax
je 0x981db6
push str.ntohl
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc7c], eax
je 0x981db6
push str.ntohs
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc00], eax
je 0x981db6
push str.__WSAFDIsSet
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc48], eax
je 0x981db6
push str.WSAStringToAddressA
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc14], eax
je 0x981db6
push str.WSAAddressToStringA
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc4c], eax
je 0x981db6
push str.getaddrinfo
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc80], eax
je 0x981db6
push str.freeaddrinfo
push dword [0xc2bc54]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
mov dword [0xc2bc50], eax
je 0x981db6
xor esi, esi
test bl, 2
mov dword [0xc2bbec], 1
je 0x981dcf
mov dword [0xc2bbf0], 1
jmp 0x981dcf
mov eax, dword [0xc2bc54]
test eax, eax
je 0x981dcf
push eax
call sub.KERNEL32.dll_FreeLibrary
mov dword [0xc2bc54], 0
mov eax, esi
pop esi
pop ebx
ret