Function at 0x407c9c
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4080ee
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x8ccc
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov edx, dword [ebp - 4]
mov dword [edx + 0x8e60], eax
mov eax, dword [ebp - 4]
mov word [eax + 0x8cbc], 2
push 0x1a0b
call sub.wsock32.dll_htons
mov edx, dword [ebp - 4]
mov word [edx + 0x8cbe], ax
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.0040670c
mov eax, dword [ebp - 8]
call fcn.004040fc
push eax
call sub.wsock32.dll_inet_addr
mov edx, dword [ebp - 4]
mov dword [edx + 0x8cc0], eax
push 0x10
mov eax, dword [ebp - 4]
add eax, 0x8cbc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8e60]
push eax
call sub.wsock32.dll_connect
test eax, eax
jne 0x4080bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8e5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x8e60]
mov dword [eax*4 + 0x40fb3c], edx
lea eax, [ebp - 0xc]
call fcn.0040690c
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
add eax, 8
call fcn.00403dd4
call fcn.00402798
mov eax, 6
call fcn.00402d14
cmp eax, 5
ja case.default.0x407d8e
jmp dword [eax*4 + 0x407d95]
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40814c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408170
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408188
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x4081a0
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x4081b8
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x8e60]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
call fcn.00406b00
jmp 0x40809a
mov eax, dword [ebp - 4]
add eax, 0xc
call fcn.00403d80
xor eax, eax
push ebp
push 0x408090
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0xc
mov edx, dword [ebp - 4]
add edx, 0x18
mov ecx, 0x8ca1
call fcn.00403eec
mov eax, dword [ebp - 4]
add eax, 0x18
mov edx, 0x8ca1
call fcn.00404a14
mov eax, dword [ebp - 4]
add eax, 0x10
call fcn.00403d80
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x8e60]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
call fcn.0040747c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40809a
push 0
push 0x8ca1
mov eax, dword [ebp - 4]
add eax, 0x18
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8e60]
push eax
call sub.wsock32.dll_recv
test eax, eax
jg 0x408025
call sub.wsock32.dll_WSACleanup
push 0x7530
call sub.kernel32.dll_Sleep
jmp 0x407cb9