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
xor esi, esi
mov dword [ebp - 4], eax
push ebp
push 0x4080ee
push dword fs:[esi]
mov dword fs:[esi], 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
mov eax, dword [ebp - 4]
lea edx, [ebp - 8]
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
or 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]
sub eax, 0xfffffff8
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 edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408120
mov ebx, dword [ebp - 4]
push dword [ebx + 8]
push 0x40812c
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408114
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x40813c
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x40814c
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408164
mov eax, dword [ebp - 4]
add eax, 8
mov edx, 0xf
call fcn.00403fc4
jmp case.default.0x407d8e
push 0x408104
mov esi, dword [ebp - 4]
push dword [esi + 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 edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408114
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x40813c
mov esi, dword [ebp - 4]
push dword [esi + 8]
push 0x408170
mov edx, dword [ebp - 4]
push dword [edx + 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 ebx, dword [ebp - 4]
push dword [ebx + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov edx, dword [ebp - 4]
push dword [edx + 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 ebx, dword [ebp - 4]
push dword [ebx + 8]
push 0x408114
mov edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408120
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40812c
mov edx, dword [ebp - 4]
push dword [edx + 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 esi, dword [ebp - 4]
push dword [esi + 8]
push 0x408164
mov eax, dword [ebp - 4]
sub eax, 0xfffffff8
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 edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408114
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x40813c
mov edi, dword [ebp - 4]
push dword [edi + 8]
push 0x4081b8
mov edx, dword [ebp - 4]
push dword [edx + 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 edx, dword [ebp - 4]
push dword [edx + 8]
push 0x408120
mov edi, dword [ebp - 4]
push dword [edi + 8]
push 0x40812c
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x408114
mov ebx, dword [ebp - 4]
push dword [ebx + 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]
sub eax, 0xfffffff8
mov edx, 0xf
call fcn.00403fc4
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [esi + 0x8e60]
call fcn.00406b00
jmp 0x40809a
mov eax, dword [ebp - 4]
add eax, 0xc
call fcn.00403d80
push ebp
xor ecx, ecx
push 0x408090
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov ecx, 0x8ca1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
add eax, 0xc
add edx, 0x18
call fcn.00403eec
mov eax, dword [ebp - 4]
sub eax, 0xffffffe8
mov edx, 0x8ca1
call fcn.00404a14
mov eax, dword [ebp - 4]
sub eax, 0xfffffff0
call fcn.00403d80
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebx + 0x8e60]
mov ebx, dword [ebp - 4]
mov edx, dword [ebx + 0xc]
call fcn.0040747c
xor ebx, ebx
pop edx
pop ecx
pop ecx
mov dword fs:[ebx], edx
jmp 0x40809a
push 0
push 0x8ca1
mov eax, dword [ebp - 4]
sub eax, 0xffffffe8
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