Function at 0x40cee4
Capabilities:
Check for time delay via gettickcount
Receive data
Receive data on socket
Timestomp file

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
xor ebx, ebx
or ebp, 0xffffffff
or dword [esp + 0x14], ebp
mov edi, ebx
push 0x1ca
push 0x4514
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], edi
call fcn.00401224
mov esi, eax
test esi, esi
je 0x40d3d8
lea ebp, [esi + 0x4000]
lea edi, [ebp + 0x208]
lea eax, [edi + 0x104]
mov dword [esp + 0x18], eax
add eax, 0x104
push 0x50
mov dword [esp + 0x28], eax
lea eax, [esp + 0x2c]
push eax
push edi
push dword [esp + 0x68]
call fcn.0040c76e
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x40cf63
push 0x2d
call fcn.004047a7
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40d3c4
push dword [esp + 0x28]
push edi
call fcn.0040c885
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x40cf7a
push 0x2e
jmp 0x40cf51
push 1
push eax
call fcn.0040c83d
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [esp + 0x80]
push dword [esp + 0x50]
push edi
mov edi, dword [esp + 0x44]
push edi
call fcn.0040c5a4
push 0x2710
push 0x3fff
push esi
push edi
mov dword [esp + 0x2c], ebx
call fcn.0040c4ff
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
jle 0x40d3b9
add eax, esi
push 0x104
push ebp
push esi
mov dword [esp + 0x2c], eax
mov byte [eax], bl
call fcn.00401fc6
push ebx
mov ebp, eax
lea eax, [esi + 0x4000]
push 1
push eax
call fcn.00406126
push eax
call fcn.00401643
mov dword [esp + 0x30], eax
lea eax, [esi + 0x4000]
push 2
push eax
call fcn.00406126
push eax
push dword [esp + 0x28]
call edi
push 5
lea eax, [esi + 0x4000]
push str.HTTP_
push eax
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
je 0x40d029
push 0x2f
jmp 0x40d3bb
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
cmp byte [ebp], bl
je 0x40d0c2
lea edi, [esi + 0x4000]
push 0x104
push edi
push ebp
call fcn.00401fc6
mov ebp, eax
cmp byte [edi], bl
je 0x40d0bc
push dword [esp + 0x18]
push 0x4284f0
push edi
call fcn.004054cb
add esp, 0xc
push 1
push edi
call fcn.00406126
push str.Content_Length:
push dword [esp + 0x1c]
mov dword [esp + 0x64], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d096
push ebx
push dword [esp + 0x60]
call fcn.00401643
mov dword [esp + 0x1c], eax
jmp 0x40d0b7
push str.Last_Modified:
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d0b7
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x60]
call fcn.0040b581
cmp byte [ebp], bl
jne 0x40d043
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [esp + 0x30], 0xc8
je 0x40d137
cmp byte [ebp], bl
je 0x40d0d7
push ebp
push esi
call edi
jmp 0x40d0f6
push 0x2710
push 0x208
push esi
push dword [esp + 0x20]
call fcn.0040c4ff
test eax, eax
jle 0x40d3b9
mov byte [eax + esi], bl
push esi
call fcn.004053dc
test eax, eax
jne 0x40d11f
mov ebp, dword [esp + 0x18]
push 0x104
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [esi + 0x4000]
push eax
push esi
push ebp
call fcn.00403b83
push esi
call fcn.00406c0a
cmp byte [eax], 0x3c
jne 0x40d3c4
push dword [esp + 0x24]
jmp 0x40d3c1
push dword [esp + 0x60]
call fcn.00403bd1
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x40d164
push dword [esp + 0x60]
push 3
call fcn.004047a7
push eax
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40d3c4
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
push 1
push eax
push dword [esp + 0x1c]
mov dword [esp + 0x38], eax
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x5c], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
sub eax, ebp
mov dword [esp + 0x20], eax
test eax, eax
jle 0x40d1b8
push eax
push ebp
push esi
call sub.ntdll.dll_memcpy
mov eax, dword [esp + 0x64]
add esp, 0xc
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x40d1ec
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
push dword [esp + 0x58]
call fcn.0040c315
test eax, eax
je 0x40d3b5
push ebx
push 0x4000
push esi
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.dll_recv]
mov ebp, eax
test ebp, ebp
jle 0x40d32a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebp
push esi
push dword [esp + 0x18]
mov dword [esp + 0x3c], eax
call fcn.00403c55
test eax, eax
js 0x40d365
cmp eax, ebp
jl 0x40d361
add dword [esp + 0x5c], ebp
add dword [esp + 0x24], ebp
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x1c]
mov ebp, eax
sub ebp, dword [esp + 0x34]
test ecx, ecx
je 0x40d2fe
test ebp, ebp
je 0x40d2e7
push ecx
push 0x3e8
push dword [esp + 0x64]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
push 0x64
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x40d27e
mov eax, dword [esp + 0x1c]
xor edx, edx
sub eax, dword [esp + 0x5c]
push 0xa
pop ebp
div ebp
xor edx, edx
div ecx
mov dword [esp + 0x28], eax
jmp 0x40d282
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
imul eax, eax, 0x64
push ebx
push eax
push ebp
call fcn.00405a10
mov eax, dword [esp + 0x38]
xor edx, edx
push 0xa
pop ecx
div ecx
push eax
push ebp
push dword [esp + 0x28]
push 0x30
call fcn.004047a7
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.0040549c
add esp, 0x14
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406905
mov eax, dword [esp + 0x20]
xor edx, edx
push ebx
push 0xa
pop ecx
div ecx
push eax
push 0x402
push 0x65
push dword [esp + 0x68]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x5c]
je 0x40d376
jae 0x40d1c0
push 0x34
jmp 0x40d3bb
push dword [esp + 0x5c]
push 0x31
call fcn.004047a7
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.0040549c
add esp, 0xc
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406905
jmp 0x40d1c0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x40d370
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x30]
cmp eax, 0x7530
ja 0x40d3b9
mov ebp, dword [esp + 0x2c]
push 0x64
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebp
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x40d1c0
push 0x37
jmp 0x40d3bb
push dword [esp + 0x60]
push 5
jmp 0x40d14f
cmp dword [esp + 0x1c], ebx
jne 0x40d3b1
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x3c]
push eax
push eax
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebx
call fcn.00403bb4
push 0x33
or ebp, 0xffffffff
call fcn.004047a7
push eax
push esi
call edi
xor ebx, ebx
inc ebx
jmp 0x40d3c8
push 0x29
jmp 0x40d3bb
push 0x38
jmp 0x40d3bb
push 0x2a
call fcn.004047a7
push eax
push esi
call edi
mov ebp, dword [esp + 0x10]
push esi
push 0x64
push dword [esp + 0x60]
call fcn.00406905
mov edi, dword [esp + 0x2c]
push dword [esp + 0x14]
call fcn.0040c99b
push ebp
call fcn.00403bb4
test edi, edi
je 0x40d3f2
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00403dae
test ebx, ebx
jne 0x40d405
push dword [esp + 0x60]
call fcn.00402e50
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x44
ret 0xc