Function at 0x40ced7
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.00401286
mov esi, eax
test esi, esi
je 0x40d3cb
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.0040cc5f
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x40cf56
push 0x2d
call fcn.00404ac5
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40d3b7
push dword [esp + 0x28]
push edi
call fcn.0040cd76
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x40cf6d
push 0x2e
jmp 0x40cf44
push 1
push eax
call fcn.0040cd2e
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.0040ca95
push 0x2710
push 0x3fff
push esi
push edi
mov dword [esp + 0x2c], ebx
call fcn.0040c9f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
jle 0x40d3ac
add eax, esi
push 0x104
push ebp
push esi
mov dword [esp + 0x2c], eax
mov byte [eax], bl
call fcn.00402167
push ebx
mov ebp, eax
lea eax, [esi + 0x4000]
push 1
push eax
call fcn.0040660b
push eax
call fcn.00401734
mov dword [esp + 0x30], eax
lea eax, [esi + 0x4000]
push 2
push eax
call fcn.0040660b
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 0x40d01c
push 0x2f
jmp 0x40d3ae
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
cmp byte [ebp], bl
je 0x40d0b5
lea edi, [esi + 0x4000]
push 0x104
push edi
push ebp
call fcn.00402167
mov ebp, eax
cmp byte [edi], bl
je 0x40d0af
push dword [esp + 0x18]
push 0x4284f8
push edi
call fcn.00405866
add esp, 0xc
push 1
push edi
call fcn.0040660b
push str.Content_Length:
push dword [esp + 0x1c]
mov dword [esp + 0x64], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d089
push ebx
push dword [esp + 0x60]
call fcn.00401734
mov dword [esp + 0x1c], eax
jmp 0x40d0aa
push str.Last_Modified:
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d0aa
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x60]
call fcn.0040ba70
cmp byte [ebp], bl
jne 0x40d036
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [esp + 0x30], 0xc8
je 0x40d12a
cmp byte [ebp], bl
je 0x40d0ca
push ebp
push esi
call edi
jmp 0x40d0e9
push 0x2710
push 0x208
push esi
push dword [esp + 0x20]
call fcn.0040c9f0
test eax, eax
jle 0x40d3ac
mov byte [eax + esi], bl
push esi
call fcn.00405777
test eax, eax
jne 0x40d112
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.00403e45
push esi
call fcn.00407164
cmp byte [eax], 0x3c
jne 0x40d3b7
push dword [esp + 0x24]
jmp 0x40d3b4
push dword [esp + 0x60]
call fcn.00403e93
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x40d157
push dword [esp + 0x60]
push 3
call fcn.00404ac5
push eax
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40d3b7
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 0x40d1ab
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 0x40d1df
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
push dword [esp + 0x58]
call fcn.0040c806
test eax, eax
je 0x40d3a8
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 0x40d31d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebp
push esi
push dword [esp + 0x18]
mov dword [esp + 0x3c], eax
call fcn.00403f17
test eax, eax
js 0x40d358
cmp eax, ebp
jl 0x40d354
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 0x40d2f1
test ebp, ebp
je 0x40d2da
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 0x40d271
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 0x40d275
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
imul eax, eax, 0x64
push ebx
push eax
push ebp
call fcn.00405eb4
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.00404ac5
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.00405837
add esp, 0x14
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406f13
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 0x40d369
jae 0x40d1b3
push 0x34
jmp 0x40d3ae
push dword [esp + 0x5c]
push 0x31
call fcn.00404ac5
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.00405837
add esp, 0xc
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406f13
jmp 0x40d1b3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x40d363
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x30]
cmp eax, 0x7530
ja 0x40d3ac
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 0x40d1b3
push 0x37
jmp 0x40d3ae
push dword [esp + 0x60]
push 5
jmp 0x40d142
cmp dword [esp + 0x1c], ebx
jne 0x40d3a4
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.00403e76
push 0x33
or ebp, 0xffffffff
call fcn.00404ac5
push eax
push esi
call edi
xor ebx, ebx
inc ebx
jmp 0x40d3bb
push 0x29
jmp 0x40d3ae
push 0x38
jmp 0x40d3ae
push 0x2a
call fcn.00404ac5
push eax
push esi
call edi
mov ebp, dword [esp + 0x10]
push esi
push 0x64
push dword [esp + 0x60]
call fcn.00406f13
mov edi, dword [esp + 0x2c]
push dword [esp + 0x14]
call fcn.0040ce1e
push ebp
call fcn.00403e76
test edi, edi
je 0x40d3e5
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00404070
test ebx, ebx
jne 0x40d3f8
push dword [esp + 0x60]
call fcn.004030df
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x44
ret 0xc