Function at 0x40ea04
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Send http request with host header
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404830
mov eax, dword [ebp - 8]
call fcn.00404830
xor eax, eax
push ebp
push 0x40ec3b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x40ec18
xor edx, edx
push ebp
push 0x40ec06
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [ebp - 0x20], 0x2710
push 4
lea eax, [ebp - 0x20]
push eax
push 0x1006
push 0xffff
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_setsockopt
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0x2710
push 4
lea eax, [ebp - 0x20]
push eax
push 0x1005
push 0xffff
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_setsockopt
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x34]
mov edx, 0x10
call fcn.0040b5cc
mov word [ebp - 0x34], 2
push ebx
call sub.wsock32.dll_htons
mov word [ebp - 0x32], ax
mov eax, dword [ebp - 4]
call fcn.00404840
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], 1
lea eax, [ebp - 0x1c]
push eax
push 0x8004667e
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_ioctlsocket
push 0x10
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_connect
lea eax, [ebp - 0x138]
mov edx, 0x104
call fcn.0040b5cc
lea eax, [ebp - 0x138]
call fcn.0040bdf8
lea edx, [ebp - 0x138]
mov eax, dword [ebp - 0x10]
call fcn.0040bde8
mov dword [ebp - 0x18], 0xa
mov dword [ebp - 0x14], 0xf4240
lea eax, [ebp - 0x18]
push eax
push 0
lea eax, [ebp - 0x138]
push eax
push 0
push 0
call sub.wsock32.dll_select
test eax, eax
jle 0x40ebfc
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
push 0x8004667e
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_ioctlsocket
push 0x40ec54
push dword [ebp - 8]
push 0x40ec64
push 0x40ec78
push 0x40ec84
push dword [ebp - 4]
push 0x40ec78
push 0x40ec78
lea eax, [ebp - 0x24]
mov edx, 8
call fcn.00404700
push 0
mov eax, dword [ebp - 0x24]
call fcn.00404640
push eax
lea eax, [ebp - 0x24]
call fcn.00404898
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_send
lea eax, [ebp - 0x24]
mov edx, 0x400
call fcn.00404970
push 0
push 0x400
lea eax, [ebp - 0x24]
call fcn.00404898
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
lea edx, [ebp - 0x24]
xchg edx, eax
call fcn.00404970
mov edx, dword [ebp - 0x24]
mov eax, 0x40ec94
call fcn.00407714
dec eax
sete byte [ebp - 9]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ec10
lea eax, [ebp - 0x10]
call fcn.0040e85c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40ec42
lea eax, [ebp - 0x24]
call fcn.00404394
lea eax, [ebp - 8]
mov edx, 2
call fcn.004043b8
ret