Function at 0x40d53d
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 0x40da31
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.0040cdcb
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x40d5bc
push 0x2d
call fcn.00404b1d
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40da1d
push dword [esp + 0x28]
push edi
call fcn.0040cee2
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x40d5d3
push 0x2e
jmp 0x40d5aa
push 1
push eax
call fcn.0040ce9a
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.0040cc01
push 0x2710
push 0x3fff
push esi
push edi
mov dword [esp + 0x2c], ebx
call fcn.0040cb5c
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
jle 0x40da12
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.00406666
push eax
call fcn.00401734
mov dword [esp + 0x30], eax
lea eax, [esi + 0x4000]
push 2
push eax
call fcn.00406666
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 0x40d682
push 0x2f
jmp 0x40da14
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
cmp byte [ebp], bl
je 0x40d71b
lea edi, [esi + 0x4000]
push 0x104
push edi
push ebp
call fcn.00402167
mov ebp, eax
cmp byte [edi], bl
je 0x40d715
push dword [esp + 0x18]
push 0x4294f8
push edi
call fcn.004058bf
add esp, 0xc
push 1
push edi
call fcn.00406666
push str.Content_Length:
push dword [esp + 0x1c]
mov dword [esp + 0x64], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d6ef
push ebx
push dword [esp + 0x60]
call fcn.00401734
mov dword [esp + 0x1c], eax
jmp 0x40d710
push str.Last_Modified:
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40d710
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x60]
call fcn.0040bbdc
cmp byte [ebp], bl
jne 0x40d69c
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [esp + 0x30], 0xc8
je 0x40d790
cmp byte [ebp], bl
je 0x40d730
push ebp
push esi
call edi
jmp 0x40d74f
push 0x2710
push 0x208
push esi
push dword [esp + 0x20]
call fcn.0040cb5c
test eax, eax
jle 0x40da12
mov byte [eax + esi], bl
push esi
call fcn.004057d0
test eax, eax
jne 0x40d778
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.00407289
cmp byte [eax], 0x3c
jne 0x40da1d
push dword [esp + 0x24]
jmp 0x40da1a
push dword [esp + 0x60]
call fcn.00403e93
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x40d7bd
push dword [esp + 0x60]
push 3
call fcn.00404b1d
push eax
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40da1d
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 0x40d811
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 0x40d845
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
push dword [esp + 0x58]
call fcn.0040c972
test eax, eax
je 0x40da0e
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 0x40d983
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 0x40d9be
cmp eax, ebp
jl 0x40d9ba
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 0x40d957
test ebp, ebp
je 0x40d940
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 0x40d8d7
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 0x40d8db
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
imul eax, eax, 0x64
push ebx
push eax
push ebp
call fcn.00405f0d
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.00404b1d
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.00405890
add esp, 0x14
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406f6e
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 0x40d9cf
jae 0x40d819
push 0x34
jmp 0x40da14
push dword [esp + 0x5c]
push 0x31
call fcn.00404b1d
push eax
lea ebp, [esi + 0x4000]
push ebp
call fcn.00405890
add esp, 0xc
push ebp
push 0x64
push dword [esp + 0x60]
call fcn.00406f6e
jmp 0x40d819
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x40d9c9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x30]
cmp eax, 0x7530
ja 0x40da12
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 0x40d819
push 0x37
jmp 0x40da14
push dword [esp + 0x60]
push 5
jmp 0x40d7a8
cmp dword [esp + 0x1c], ebx
jne 0x40da0a
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.00404b1d
push eax
push esi
call edi
xor ebx, ebx
inc ebx
jmp 0x40da21
push 0x29
jmp 0x40da14
push 0x38
jmp 0x40da14
push 0x2a
call fcn.00404b1d
push eax
push esi
call edi
mov ebp, dword [esp + 0x10]
push esi
push 0x64
push dword [esp + 0x60]
call fcn.00406f6e
mov edi, dword [esp + 0x2c]
push dword [esp + 0x14]
call fcn.0040cff8
push ebp
call fcn.00403e76
test edi, edi
je 0x40da4b
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00404070
test ebx, ebx
jne 0x40da5e
push dword [esp + 0x60]
call fcn.004030df
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x44
ret 0xc