Function at 0x402a61
Capabilities:
Delete file
Get common file path
Move file

Disassembly:
push 0x268
mov eax, 0x4343ba
call fcn.0041ab8e
cmp byte [0x4497c9], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x258], esi
jne 0x402a90
call fcn.004028c2
mov eax, dword [ebp + 8]
cmp eax, dword [0x4497cc]
jle 0x402aa3
xor eax, eax
inc eax
jmp 0x403191
mov eax, dword [0x4497d4]
cmp eax, dword [0x43bafc]
jne 0x402e5b
call fcn.0040be29
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401320
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.00406d80
test eax, eax
je 0x402b48
push 0x105
lea eax, [ebp - 0x248]
push ebx
push eax
call fcn.0041c040
add esp, 0xc
lea eax, [ebp - 0x248]
push eax
push ebx
push ebx
push 0x24
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x402b48
lea eax, [ebp - 0x248]
push eax
call fcn.0041fcde
pop ecx
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0040353e
mov esi, str.Temp
push esi
call fcn.0041fcde
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402296
lea eax, [ebp - 0x24c]
push eax
call fcn.0040435f
pop ecx
test eax, eax
je 0x402b81
lea ecx, [ebp - 0x24c]
call fcn.004024d7
mov esi, 0x104
lea ecx, [ebp - 0x24c]
push esi
call fcn.00403263
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x402ce6
push 0xffffffffffffffff
lea ecx, [ebp - 0x24c]
call fcn.004032e5
push 0x5c
push dword [ebp - 0x24c]
call fcn.0041d484
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x402bc6
mov ecx, dword [ebp - 0x24c]
sub edx, ecx
sar edx, 1
cmp edx, 0xffffffff
je 0x402bc6
mov eax, dword [ecx - 0xc]
dec eax
cmp edx, eax
je 0x402bc6
mov esi, 0x437078
push esi
call fcn.0041fcde
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402296
push ebx
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x274]
call fcn.0040208b
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
push eax
call fcn.00402378
add eax, 0x10
mov dword [ebp - 0x254], eax
cmp byte [0x4497c8], 0
mov eax, str.AdobeARM.log
mov esi, str.AdobeARM_Helper.log
mov byte [ebp - 4], 2
cmove esi, eax
push esi
call fcn.0041fcde
pop ecx
pop ecx
push eax
push esi
lea ecx, [ebp - 0x254]
call fcn.00402296
mov esi, dword [ebp - 0x254]
lea eax, [ebp - 0x274]
push eax
push 0x3021
mov edi, 0x4497d0
push esi
mov ecx, edi
call fcn.0040c820
test eax, eax
jne 0x402d09
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
push eax
call fcn.00402378
add eax, 0x10
mov dword [ebp - 0x250], eax
cmp byte [0x4497c8], 0
mov eax, str.AdobeARM_NotLocked.log
mov edi, str.AdobeARM_Helper_NotLocked.log
mov byte [ebp - 4], 3
cmove edi, eax
push edi
call fcn.0041fcde
pop ecx
pop ecx
push eax
push edi
lea ecx, [ebp - 0x250]
call fcn.00402296
mov edi, dword [ebp - 0x250]
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x274]
mov ecx, 0x4497d0
push eax
push 0x3021
push edi
call fcn.0040c820
lea ecx, [edi - 0x10]
test eax, eax
jne 0x402cfb
call fcn.00401a18
lea ecx, [esi - 0x10]
call fcn.00401a18
mov ecx, dword [ebp - 0x264]
mov dword [ebp - method.CFileException.virtual_0], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a18
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.00401a18
xor eax, eax
jmp 0x403191
mov byte [ebp - 4], 2
call fcn.00401a18
mov edi, 0x4497d0
mov ecx, edi
call fcn.0040c710
cmp edx, ebx
ja 0x402d2b
cmp eax, ebx
jbe 0x402e21
cmp edx, ebx
ja 0x402d2b
cmp eax, 0x100000
jb 0x402ddd
mov ecx, edi
call fcn.0040c5b0
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
push eax
call fcn.00402378
add eax, 0x10
mov dword [ebp - 0x250], eax
cmp byte [0x4497c8], 0
mov eax, str.AdobeARM_Backup.log
mov edi, str.AdobeARM_Helper_Backup.log
mov byte [ebp - 4], 4
cmove edi, eax
push edi
call fcn.0041fcde
pop ecx
pop ecx
push eax
push edi
lea ecx, [ebp - 0x250]
call fcn.00402296
mov edi, dword [ebp - 0x250]
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push 1
xor ecx, ecx
test eax, eax
pop eax
cmovne eax, ecx
mov ecx, 0x4497d0
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x274]
push eax
push 0x3021
push esi
call fcn.0040c820
lea ecx, [edi - 0x10]
test eax, eax
je 0x402cc1
call fcn.00401a18
cmp dword [ebp - 0x25c], 0
mov edi, 0x4497d0
je 0x402e21
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.004034e7
push 0x4371f0
mov ecx, edi
call fcn.0040cc40
push 0x4371f0
mov ecx, edi
call fcn.0040cc40
push 0x4371f0
mov ecx, edi
call fcn.0040cc40
jmp 0x402e21
lea ecx, [esi - 0x10]
call fcn.00401a18
mov ecx, dword [ebp - 0x264]
mov dword [ebp - method.CFileException.virtual_0], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a18
mov ecx, dword [ebp - 0x24c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.00401a18
mov esi, dword [ebp - 0x258]
jmp 0x402e62
xor ebx, ebx
mov edi, 0x4497d0
call fcn.0040be29
push eax
lea ecx, [ebp - 0x254]
call fcn.00401320
lea eax, [ebp - 0x254]
mov dword [ebp - 4], 7
push eax
call fcn.004026ef
pop ecx
call fcn.0040be29
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401320
mov ecx, dword [ebp - 0x260]
mov byte [ebp - 4], 8
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jne 0x402eb6
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x402ff7
push ecx
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x250]
push eax
call fcn.00402179
push esi
push eax
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 9
push eax
call fcn.00402179
add esp, 0x18
push eax
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0xa
call fcn.00402129
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.00401a18
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 8
lea ecx, [ecx - 0x10]
call fcn.00401a18
push ebx
push 0x4371f4
lea ecx, [ebp - 0x24c]
call fcn.00402518
mov esi, eax
cmp esi, 0xffffffff
je 0x402fc9
lea ecx, [esi + 0x10]
push ecx
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x24c]
call fcn.004029b0
push str.hidden
mov byte [ebp - 4], 0xb
call fcn.0041fcde
pop ecx
push eax
push str.hidden
lea ecx, [ebp - 0x250]
call fcn.00402296
mov eax, dword [ebp - 0x24c]
lea ecx, [ebp - 0x24c]
mov eax, dword [eax - 0xc]
sub eax, esi
sub eax, 0x2e
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.00403498
mov eax, dword [eax]
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 0xc
push dword [eax - 0xc]
push eax
call fcn.00402296
mov ecx, dword [ebp - 0x25c]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.00401a18
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402129
mov ecx, dword [ebp - 0x250]
lea ecx, [ecx - 0x10]
call fcn.00401a18
push dword [ebp - 0x24c]
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.0040cc40
push 0x4371f0
mov ecx, edi
call fcn.0040cc40
jmp 0x402ff0
mov dword [ebp - 4], 8
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x40315d
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402129
mov ecx, dword [ebp - 0x260]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jne 0x403030
mov eax, dword [ebp - 0x258]
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
je 0x403049
mov edi, 0x437230
push edi
call fcn.0041fcde
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402296
cmp esi, 0x186a0
jne 0x4030db
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push ebx
mov esi, eax
mov dword [ebp - 0x258], ebx
lea eax, [ebp - 0x258]
push eax
push 0x400
push esi
push ebx
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0x437234
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.004021ce
push dword [ebp - 0x258]
mov byte [ebp - 4], 0xf
push esi
push dword [eax]
lea eax, [ebp - 0x24c]
push eax
call fcn.004026c3
mov ecx, dword [ebp - 0x25c]
add esp, 0x1c
mov byte [ebp - 4], 8
lea ecx, [ecx - 0x10]
call fcn.00401a18
push 0x436f68
push 0x4371f0
lea ecx, [ebp - 0x24c]
call fcn.00403311
jmp 0x403142
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x3c]
rep stosd dword es:[edi], eax
push 0xa
lea eax, [ebp - 0x3c]
push eax
push esi
call fcn.004200db
mov esi, str.Error_Code:
push esi
call fcn.0041fcde
add esp, 0x10
lea ecx, [ebp - 0x24c]
push eax
push esi
call fcn.00402296
lea eax, [ebp - 0x3c]
push eax
call fcn.0041fcde
pop ecx
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402296
push 0x4371f0
call fcn.0041fcde
pop ecx
push eax
push 0x4371f0
lea ecx, [ebp - 0x24c]
call fcn.00402296
push dword [ebp - 0x24c]
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x10
call fcn.0040cc40
mov dword [ebp - 4], 8
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x12
call fcn.0040c610
mov ecx, dword [ebp - 0x24c]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
sete bl
add ecx, 0xfffffff0
call fcn.00401a18
mov ecx, dword [ebp - 0x254]
add ecx, 0xfffffff0
call fcn.00401a18
mov eax, ebx
call fcn.0041aadb
ret