Function at 0x100028f2
Capabilities:
Check if file exists
Copy file
Delete file

Disassembly:
push 0xa0
mov eax, 0x10047ca4
call fcn.1002f38a
mov eax, dword [ebp + 8]
mov esi, ecx
push esi
mov dword [ebp - 0x5c], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1000291a
inc eax
jmp 0x10002c27
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push str.AppData
push esi
call edi
test eax, eax
jne 0x10002c24
push str.Application_Data
push esi
call edi
test eax, eax
jne 0x10002c24
push str.Temp
push esi
call edi
test eax, eax
jne 0x10002c24
push 0x1004bbe4
push esi
call edi
test eax, eax
jne 0x10002c24
push esi
call fcn.10014d14
lea edi, [ebp - 0x68]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
call fcn.10001b5f
mov eax, dword [ebp - 0x64]
cdq
cmp dword [ebp - 0x50], edx
jb 0x1000298b
ja 0x10002984
cmp dword [ebp - 0x54], eax
jbe 0x1000298b
push 2
jmp 0x10002c26
mov eax, dword [ebp - 0x68]
xor ebx, ebx
cmp eax, ebx
je 0x100029a1
cdq
cmp dword [ebp - 0x50], edx
ja 0x100029a1
jb 0x10002984
cmp dword [ebp - 0x54], eax
jb 0x10002984
push ebx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x34], 0xf
call fcn.10006a21
lea eax, [ebp - 0x4c]
push eax
mov edx, esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], ebx
call fcn.1000218e
pop ecx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], ebx
jne 0x100029ec
push 5
pop edi
push ebx
push 1
lea esi, [ebp - 0x30]
call fcn.10005e33
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.10005c5b
mov eax, edi
jmp 0x10002c27
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x100029f8
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10002a07
push 7
jmp 0x100029ce
cmp dword [ebp - 0x18], 8
mov edi, dword [ebp - 0x2c]
jae 0x10002a13
lea edi, [ebp - 0x2c]
call fcn.10014bf2
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x10002a24
lea eax, [ebp - 0x2c]
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x10002a48
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x10002a3d
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 4
jmp 0x100029ce
push esi
call fcn.10002826
mov eax, dword [ebp - 0x60]
cdq
pop ecx
cmp dword [ebp - 0x50], edx
ja 0x10002a72
jb 0x10002a5f
cmp dword [ebp - 0x54], eax
jae 0x10002a72
cmp dword [ebp - 0x18], 8
mov edx, dword [ebp - 0x2c]
jae 0x10002a6b
lea edx, [ebp - 0x2c]
mov ecx, esi
call fcn.10002c2d
push 0x1004bbe8
call fcn.10001b20
pop ecx
test eax, eax
je 0x10002c0a
push ebx
push ebx
lea eax, [ebp - 0x74]
call fcn.1001e589
push esi
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005296
mov eax, esi
push eax
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 5
call fcn.1000131e
sub esp, 0x10
mov byte [ebp - 4], 6
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d719
lea eax, [ebp - 0x74]
push eax
mov edx, str.file_path
mov byte [ebp - 4], 7
call fcn.1001e827
mov edi, eax
mov byte [ebp - 4], 6
call fcn.1001d96c
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.10005c5b
push ebx
push 1
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005e33
push dword [ebp - 0x50]
lea ebx, [ebp - 0xac]
push dword [ebp - 0x54]
call fcn.100153b3
sub esp, 0x10
mov byte [ebp - 4], 8
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d719
lea eax, [ebp - 0x74]
push eax
mov edx, str.file_size
mov byte [ebp - 4], 9
call fcn.1001e827
mov edi, eax
mov byte [ebp - 4], 8
call fcn.1001d96c
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 4
call fcn.10005c5b
sub esp, 0x18
lea edx, [ebp - 0x4c]
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d719
lea eax, [ebp - 0x74]
push eax
mov edx, str.data_time
mov byte [ebp - 4], 0xa
call fcn.1001e827
mov edi, eax
mov byte [ebp - 4], 4
call fcn.1001d96c
push dword [ebp - 0x5c]
lea esi, [ebp - 0x90]
call fcn.10005296
mov eax, esi
push eax
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 0xb
call fcn.1000131e
sub esp, 0x10
mov byte [ebp - 4], 0xc
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d719
lea eax, [ebp - 0x74]
push eax
mov edx, str.reason
mov byte [ebp - 4], 0xd
call fcn.1001e827
mov edi, eax
mov byte [ebp - 4], 0xc
call fcn.1001d96c
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.10005c5b
push ebx
push 1
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005e33
lea eax, [ebp - 0x74]
push eax
call fcn.100265ff
lea esi, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.1001d8e9
push ebx
push 1
lea esi, [ebp - 0x30]
call fcn.10005e33
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.10005c5b
xor eax, eax
jmp 0x10002c27
push 6
pop eax
call fcn.1002f40d
ret