Function at 0x40337a
Capabilities:
Copy file
Delete file
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
push esi
push edi
mov dword [ebp - 8], 2
cmp dword [0x404304], 0
je 0x4033c1
push 0
push dword [ebp + 0xc]
push 6
call dword [0x404304]
add esp, 0xc
cmp eax, 0
jne 0x4033c1
push str.Skipped_by_hook.
call fcn.00401494
add esp, 4
mov eax, 0
jmp 0x403617
push 0
push pe_nt_image_headers32
push 3
push 0
push 3
push 0x80000000
push dword [ebp + 0xc]
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x4034e3
lea edi, [ebp - 0x10]
push edi
lea edi, [ebp - 0x20]
push edi
lea edi, [ebp - 0x18]
push edi
push dword [ebp - 4]
call sub.KERNEL32.DLL_GetFileTime
lea edi, [ebp - 0x30]
push edi
mov edi, dword [ebp + 8]
add edi, 0x358
push edi
call sub.KERNEL32.DLL_FileTimeToSystemTime
lea edi, [ebp - 0x40]
push edi
lea edi, [ebp - 0x10]
push edi
call sub.KERNEL32.DLL_FileTimeToSystemTime
lea edi, [ebp - 0x10]
push edi
mov edi, dword [ebp + 8]
add edi, 0x358
push edi
call sub.KERNEL32.DLL_CompareFileTime
mov dword [ebp - 8], eax
push dword [ebp - 4]
call sub.KERNEL32.DLL_CloseHandle
mov edi, dword [ebp - 8]
cmp edi, 0xffffffff
je 0x40346f
cmp edi, 0
je 0x403455
cmp edi, 1
je 0x4034d1
jmp 0x4034f3
push dword [ebp + 0xc]
push str.Skipping___s___same_date..
call fcn.00401494
add esp, 8
mov eax, 0
jmp 0x403617
push str.Do_you_wish_to_copy_over_a_newer_version_of
lea edi, [ebp - 0x140]
push edi
call sub.CRTDLL.DLL_strcpy
add esp, 8
push dword [ebp + 0xc]
lea edi, [ebp - 0x140]
push edi
call sub.CRTDLL.DLL_strcat
add esp, 8
push 0x405443
lea edi, [ebp - 0x140]
push edi
call sub.CRTDLL.DLL_strcat
add esp, 8
push 4
push str.Clear_Installer
lea edi, [ebp - 0x140]
push edi
push 0
call sub.USER32.DLL_MessageBoxA
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 6
je 0x4034f3
mov eax, 0
jmp 0x403617
push dword [ebp + 0xc]
push str.Upgrading___s_..
call fcn.00401494
add esp, 8
jmp 0x4034f3
push dword [ebp + 0xc]
push str.Installing___s_..
call fcn.00401494
add esp, 8
push dword [ebp + 0xc]
push 0
push 0x5f7
push dword [ebp + 0x14]
call sub.USER32.DLL_PostMessageA
push dword [ebp + 0x14]
call fcn.00401cea
add esp, 4
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.0040361b
add esp, 8
push 0
push dword [ebp + 0xc]
push str.c:_nifty.tmp
call sub.KERNEL32.DLL_CopyFileA
cmp eax, 0
jne 0x40354a
call sub.KERNEL32.DLL_GetLastError
mov edi, eax
push dword [ebp + 0xc]
push edi
push str.ERROR:___d__CopyFile___s___failed.
call fcn.00401494
add esp, 0xc
push str.c:_nifty.tmp
call sub.KERNEL32.DLL_DeleteFileA
cmp eax, 0
jne 0x40356e
call sub.KERNEL32.DLL_GetLastError
mov edi, eax
push edi
push str.ERROR:___d__DeleteFile__nifty.tmp___failed.
call fcn.00401494
add esp, 8
push 0
push 0
push 3
push 0
push 0
push 0x40000000
push dword [ebp + 0xc]
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x4035ad
call sub.KERNEL32.DLL_GetLastError
mov edi, eax
push dword [ebp + 0xc]
push edi
push str.ERROR:___d__CreateFile___s___failed.
call fcn.00401494
add esp, 0xc
mov eax, 1
jmp 0x403617
mov edi, dword [ebp + 8]
mov esi, edi
add esi, 0x358
push esi
mov esi, edi
add esi, 0x350
push esi
add edi, 0x348
push edi
push dword [ebp - 4]
call sub.KERNEL32.DLL_SetFileTime
cmp eax, 0
jne 0x4035eb
call sub.KERNEL32.DLL_GetLastError
mov edi, eax
push edi
push str.ERROR:___d__SetFileTime___Failed.
call fcn.00401494
add esp, 8
push dword [ebp - 4]
call sub.KERNEL32.DLL_CloseHandle
mov edi, dword [ebp + 8]
test dword [edi + 0x344], 0x80
jne 0x403612
push dword [ebp + 0xc]
push str.added_file__s
call fcn.00401e08
add esp, 8
mov eax, 1
pop edi
pop esi
leave
ret