Function at 0x45b5b8
Capabilities:
Check for time delay via gettickcount
Check if file exists
Delete file
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10dc
call fcn.004703d0
mov eax, dword [0x4a02f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x10d8], eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x45b5ea
xor al, al
jmp 0x45bb02
push ebx
push esi
push edi
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x824], ax
xor ebx, ebx
lea eax, [ebp - 0x822]
push ebx
push eax
call fcn.0046e0e0
xor eax, eax
push esi
mov word [ebp - 0xc34], ax
lea eax, [ebp - 0xc32]
push ebx
push eax
call fcn.0046e0e0
xor eax, eax
push esi
mov word [ebp - 0x61c], ax
lea eax, [ebp - 0x61a]
push ebx
push eax
call fcn.0046e0e0
xor eax, eax
push esi
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push ebx
push eax
call fcn.0046e0e0
add esp, 0x30
push 7
pop edi
cmp byte [ebp + 0xc], bl
je 0x45ba5a
push ebx
push 0x26
lea eax, [ebp - 0x824]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push ebx
push 0x24
lea eax, [ebp - 0xc34]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push ebx
push 8
lea eax, [ebp - 0x61c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push ebx
push 0x1a
lea eax, [ebp - 0x20c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov word [ebp - 0x1098], ax
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x1098]
mov dword [ebp - 0x1084], edi
mov dword [ebp - 0x1088], ebx
call fcn.00401fb0
push 1
push 0xffffffffffffffff
push 0x49b76c
lea ecx, [ebp - 0x1098]
call fcn.00402130
push eax
xor ecx, ecx
push ebx
lea eax, [ebp - 0x1098]
mov word [ebp - 0x1060], cx
push eax
lea ecx, [ebp - 0x1060]
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
call fcn.00402710
lea eax, [ebp - 0x1060]
push eax
lea ecx, [ebp - 0x1098]
call fcn.00403920
push ebx
push 1
lea ecx, [ebp - 0x1060]
call fcn.00402b70
cmp dword [ebp - 0x1084], 8
mov eax, dword [ebp - 0x1098]
jae 0x45b73c
lea eax, [ebp - 0x1098]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
xor eax, eax
mov word [ebp - 0x107c], ax
lea eax, [ebp - 0x61c]
push eax
lea ecx, [ebp - 0x107c]
mov dword [ebp - 0x1068], edi
mov dword [ebp - 0x106c], ebx
call fcn.00401fb0
push 1
push 1
push 1
push ebx
xor eax, eax
push 0x49b76c
lea ecx, [ebp - 0x107c]
mov dword [ebp - 0x10a0], edi
mov dword [ebp - 0x10a4], ebx
mov word [ebp - 0x10b4], ax
call fcn.00410ed0
inc eax
push eax
push 0x49b76c
lea ecx, [ebp - 0x107c]
call fcn.00410ed0
inc eax
push eax
push 0x49b76c
lea ecx, [ebp - 0x107c]
call fcn.00410ed0
push eax
xor ecx, ecx
push ebx
lea eax, [ebp - 0x107c]
mov word [ebp - 0x1060], cx
push eax
lea ecx, [ebp - 0x1060]
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
call fcn.00402710
lea eax, [ebp - 0x1060]
push eax
lea ecx, [ebp - 0x107c]
call fcn.00403920
push ebx
push 1
lea ecx, [ebp - 0x1060]
call fcn.00402b70
xor eax, eax
push esi
mov word [ebp - 0xe3c], ax
lea eax, [ebp - 0xe3a]
push ebx
push eax
call fcn.0046e0e0
mov eax, dword [ebp - 0x107c]
add esp, 0xc
cmp dword [ebp - 0x1068], 8
jae 0x45b839
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0xe3c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [ebp - 0xe3c]
push eax
push dword [ebp - 0x10d8]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x45b872
push dword [ebp - 0x10d8]
call fcn.0045b4fb
pop ecx
test eax, eax
jne 0x45ba01
xor eax, eax
push esi
mov word [ebp - 0x1044], ax
lea eax, [ebp - 0x1042]
push ebx
push eax
call fcn.0046e0e0
add esp, 0xc
push 1
push 0xffffffffffffffff
push 0x49b76c
lea ecx, [ebp - 0x107c]
call fcn.00402130
xor ecx, ecx
mov word [ebp - 0x1060], cx
mov ecx, dword [ebp - 0x106c]
dec ecx
mov dword [ebp - 0x10dc], eax
push ecx
inc eax
push eax
lea eax, [ebp - 0x107c]
push eax
lea ecx, [ebp - 0x1060]
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
call fcn.00402710
lea eax, [ebp - 0x1060]
push eax
lea ecx, [ebp - 0x10b4]
call fcn.00403920
push ebx
push 1
lea ecx, [ebp - 0x1060]
call fcn.00402b70
push dword [ebp - 0x10dc]
xor eax, eax
mov word [ebp - 0x1060], ax
push ebx
lea eax, [ebp - 0x107c]
push eax
lea ecx, [ebp - 0x1060]
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
call fcn.00402710
lea eax, [ebp - 0x1060]
push eax
lea ecx, [ebp - 0x107c]
call fcn.00403920
push ebx
push 1
lea ecx, [ebp - 0x1060]
call fcn.00402b70
cmp dword [ebp - 0x1068], 8
mov eax, dword [ebp - 0x107c]
jae 0x45b95a
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x1044]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
xor eax, eax
push esi
mov word [ebp - 0xa2c], ax
lea eax, [ebp - 0xa2a]
push ebx
push eax
call fcn.0046e0e0
mov eax, dword [ebp - 0x10b4]
add esp, 0xc
cmp dword [ebp - 0x10a0], 8
jae 0x45b997
lea eax, [ebp - 0x10b4]
push eax
lea eax, [ebp - 0xa2c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [ebp - 0x824]
push eax
push dword [ebp - 0x10d8]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x45ba01
lea eax, [ebp - 0xc34]
push eax
push dword [ebp - 0x10d8]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x45ba01
lea eax, [ebp - 0x1044]
push eax
push dword [ebp - 0x10d8]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x45ba30
lea eax, [ebp - 0xa2c]
push eax
push dword [ebp - 0x10d8]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x45ba30
push ebx
push 1
lea ecx, [ebp - 0x10b4]
call fcn.00402b70
push ebx
push 1
lea ecx, [ebp - 0x107c]
call fcn.00402b70
push ebx
push 1
lea ecx, [ebp - 0x1098]
call fcn.00402b70
jmp 0x45bafd
push ebx
push 1
lea ecx, [ebp - 0x10b4]
call fcn.00402b70
push ebx
push 1
lea ecx, [ebp - 0x107c]
call fcn.00402b70
push ebx
push 1
lea ecx, [ebp - 0x1098]
call fcn.00402b70
xor eax, eax
push esi
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push ebx
push eax
call fcn.0046e0e0
mov eax, dword [ebp - 0x10d8]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x45ba7d
sub eax, edx
sar eax, 1
cmp eax, 3
jbe 0x45baa5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push dword [ebp - 0x10d8]
push str._s_d.tmp
jmp 0x45bab7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push dword [ebp - 0x10d8]
push 0x4969ec
push 0xffffffffffffffff
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0046f91d
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esp, 0x18
lea eax, [ebp - 0x414]
push eax
call esi
push ebx
push 0x80
push 2
push ebx
push ebx
push 0x40000000
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x45bb0e
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046e0cd
leave
ret
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x414]
push eax
call esi
xor eax, eax
mov word [ebp - 0x10d0], ax
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x10d0]
mov dword [ebp - 0x10bc], edi
mov dword [ebp - 0x10c0], ebx
call fcn.00401fb0
push 1
push ebx
push 0x49b76c
lea ecx, [ebp - 0x10d0]
call fcn.00410ed0
push dword [ebp - 0x10c0]
xor ecx, ecx
push eax
lea eax, [ebp - 0x10d0]
mov word [ebp - 0x1060], cx
push eax
lea ecx, [ebp - 0x1060]
mov dword [ebp - 0x104c], edi
mov dword [ebp - 0x1050], ebx
call fcn.00402710
lea eax, [ebp - 0x1060]
push eax
lea ecx, [ebp - 0x10d0]
call fcn.00403920
push ebx
push 1
lea ecx, [ebp - 0x1060]
call fcn.00402b70
cmp dword [ebp - 0x10bc], 8
mov eax, dword [ebp - 0x10d0]
jae 0x45bbbb
lea eax, [ebp - 0x10d0]
push eax
push 0x4969c4
lea eax, [ebp - 0x20c]
push eax
push 0x496228
push 0xffffffffffffffff
push 0x104
push eax
call fcn.0046f91d
add esp, 0x1c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45bc0d
mov byte [ebp - 0x10d1], bl
push ebx
push 1
lea ecx, [ebp - 0x10d0]
call fcn.00402b70
mov al, byte [ebp - 0x10d1]
jmp 0x45baff
mov byte [ebp - 0x10d1], 1
jmp 0x45bbf4