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

Disassembly:
push 0xa0
mov eax, 0x10046b90
call fcn.1002e47a
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 0x10002869
inc eax
jmp 0x10002b76
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push str.AppData
push esi
call edi
test eax, eax
jne 0x10002b73
push str.Application_Data
push esi
call edi
test eax, eax
jne 0x10002b73
push str.Temp
push esi
call edi
test eax, eax
jne 0x10002b73
push 0x1004abe4
push esi
call edi
test eax, eax
jne 0x10002b73
push esi
call fcn.1001498d
lea edi, [ebp - 0x68]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
call fcn.10001aae
mov eax, dword [ebp - 0x64]
cdq
cmp dword [ebp - 0x50], edx
jb 0x100028da
ja 0x100028d3
cmp dword [ebp - 0x54], eax
jbe 0x100028da
push 2
jmp 0x10002b75
mov eax, dword [ebp - 0x68]
xor ebx, ebx
cmp eax, ebx
je 0x100028f0
cdq
cmp dword [ebp - 0x50], edx
ja 0x100028f0
jb 0x100028d3
cmp dword [ebp - 0x54], eax
jb 0x100028d3
push ebx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x34], 0xf
call fcn.10006848
lea eax, [ebp - 0x4c]
push eax
mov edx, esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], ebx
call fcn.100020dd
pop ecx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], ebx
jne 0x1000293b
push 5
pop edi
push ebx
push 1
lea esi, [ebp - 0x30]
call fcn.10005bea
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.10005a12
mov eax, edi
jmp 0x10002b76
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x10002947
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10002956
push 7
jmp 0x1000291d
cmp dword [ebp - 0x18], 8
mov edi, dword [ebp - 0x2c]
jae 0x10002962
lea edi, [ebp - 0x2c]
call fcn.1001486b
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x10002973
lea eax, [ebp - 0x2c]
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x10002997
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x1000298c
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 4
jmp 0x1000291d
push esi
call fcn.10002775
mov eax, dword [ebp - 0x60]
cdq
pop ecx
cmp dword [ebp - 0x50], edx
ja 0x100029c1
jb 0x100029ae
cmp dword [ebp - 0x54], eax
jae 0x100029c1
cmp dword [ebp - 0x18], 8
mov edx, dword [ebp - 0x2c]
jae 0x100029ba
lea edx, [ebp - 0x2c]
mov ecx, esi
call fcn.10002b7c
push 0x1004abe8
call fcn.10001a6f
pop ecx
test eax, eax
je 0x10002b59
push ebx
push ebx
lea eax, [ebp - 0x74]
call fcn.1001e240
push esi
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005094
mov eax, esi
push eax
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 5
call fcn.100012a0
sub esp, 0x10
mov byte [ebp - 4], 6
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d3d3
lea eax, [ebp - 0x74]
push eax
mov edx, str.file_path
mov byte [ebp - 4], 7
call fcn.1001e4de
mov edi, eax
mov byte [ebp - 4], 6
call fcn.1001d626
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.10005a12
push ebx
push 1
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005bea
push dword [ebp - 0x50]
lea ebx, [ebp - 0xac]
push dword [ebp - 0x54]
call fcn.1001501c
sub esp, 0x10
mov byte [ebp - 4], 8
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d3d3
lea eax, [ebp - 0x74]
push eax
mov edx, str.file_size
mov byte [ebp - 4], 9
call fcn.1001e4de
mov edi, eax
mov byte [ebp - 4], 8
call fcn.1001d626
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 4
call fcn.10005a12
sub esp, 0x18
lea edx, [ebp - 0x4c]
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d3d3
lea eax, [ebp - 0x74]
push eax
mov edx, str.data_time
mov byte [ebp - 4], 0xa
call fcn.1001e4de
mov edi, eax
mov byte [ebp - 4], 4
call fcn.1001d626
push dword [ebp - 0x5c]
lea esi, [ebp - 0x90]
call fcn.10005094
mov eax, esi
push eax
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 0xb
call fcn.100012a0
sub esp, 0x10
mov byte [ebp - 4], 0xc
mov edx, eax
mov esi, esp
mov dword [ebp - 0x58], esp
call fcn.1001d3d3
lea eax, [ebp - 0x74]
push eax
mov edx, str.reason
mov byte [ebp - 4], 0xd
call fcn.1001e4de
mov edi, eax
mov byte [ebp - 4], 0xc
call fcn.1001d626
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.10005a12
push ebx
push 1
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.10005bea
lea eax, [ebp - 0x74]
push eax
call fcn.100262ae
lea esi, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.1001d5a3
push ebx
push 1
lea esi, [ebp - 0x30]
call fcn.10005bea
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.10005a12
xor eax, eax
jmp 0x10002b76
push 6
pop eax
call fcn.1002e4fd
ret