Function at 0x402aef
Capabilities:
Delete file
Get common file path
Move file
Set file attributes

Disassembly:
push 0x268
mov eax, 0x43430a
call fcn.0041aade
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 0x402b1e
call fcn.00402992
mov eax, dword [ebp + 8]
cmp eax, dword [0x4497cc]
jle 0x402b31
xor eax, eax
inc eax
jmp 0x40321f
mov eax, dword [0x4497d4]
cmp eax, dword [0x43ba34]
jne 0x402ee9
call fcn.0040bd69
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401320
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.00406e30
test eax, eax
je 0x402bd6
push 0x105
lea eax, [ebp - 0x248]
push ebx
push eax
call fcn.0041bf90
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 0x402bd6
lea eax, [ebp - 0x248]
push eax
call fcn.0041fc2e
pop ecx
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x24c]
call fcn.004035ee
mov esi, str.Temp
push esi
call fcn.0041fc2e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402366
lea eax, [ebp - 0x24c]
push eax
call fcn.0040440f
pop ecx
test eax, eax
je 0x402c0f
lea ecx, [ebp - 0x24c]
call fcn.004025a7
mov esi, 0x104
lea ecx, [ebp - 0x24c]
push esi
call fcn.0040331e
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x402d74
push 0xffffffffffffffff
lea ecx, [ebp - 0x24c]
call fcn.004033a0
push 0x5c
push dword [ebp - 0x24c]
call fcn.0041d3d4
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x402c54
mov ecx, dword [ebp - 0x24c]
sub edx, ecx
sar edx, 1
cmp edx, 0xffffffff
je 0x402c54
mov eax, dword [ecx - 0xc]
dec eax
cmp edx, eax
je 0x402c54
mov esi, 0x437078
push esi
call fcn.0041fc2e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402366
push ebx
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x274]
call fcn.0040215b
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
push eax
call fcn.00402448
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.0041fc2e
pop ecx
pop ecx
push eax
push esi
lea ecx, [ebp - 0x254]
call fcn.00402366
mov esi, dword [ebp - 0x254]
lea eax, [ebp - 0x274]
push eax
push 0x3021
mov edi, 0x4497d0
push esi
mov ecx, edi
call fcn.0040c760
test eax, eax
jne 0x402d97
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
push eax
call fcn.00402448
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.0041fc2e
pop ecx
pop ecx
push eax
push edi
lea ecx, [ebp - 0x250]
call fcn.00402366
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.0040c760
lea ecx, [edi - 0x10]
test eax, eax
jne 0x402d89
call fcn.00401a54
lea ecx, [esi - 0x10]
call fcn.00401a54
mov ecx, dword [ebp - 0x264]
mov dword [ebp - method.CFileException.virtual_0], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a54
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.00401a54
xor eax, eax
jmp 0x40321f
mov byte [ebp - 4], 2
call fcn.00401a54
mov edi, 0x4497d0
mov ecx, edi
call fcn.0040c650
cmp edx, ebx
ja 0x402db9
cmp eax, ebx
jbe 0x402eaf
cmp edx, ebx
ja 0x402db9
cmp eax, 0x100000
jb 0x402e6b
mov ecx, edi
call fcn.0040c4f0
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
push eax
call fcn.00402448
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.0041fc2e
pop ecx
pop ecx
push eax
push edi
lea ecx, [ebp - 0x250]
call fcn.00402366
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.0040c760
lea ecx, [edi - 0x10]
test eax, eax
je 0x402d4f
call fcn.00401a54
cmp dword [ebp - 0x25c], 0
mov edi, 0x4497d0
je 0x402eaf
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.004035a2
push 0x4371d0
mov ecx, edi
call fcn.0040cb80
push 0x4371d0
mov ecx, edi
call fcn.0040cb80
push 0x4371d0
mov ecx, edi
call fcn.0040cb80
jmp 0x402eaf
lea ecx, [esi - 0x10]
call fcn.00401a54
mov ecx, dword [ebp - 0x264]
mov dword [ebp - method.CFileException.virtual_0], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a54
mov ecx, dword [ebp - 0x24c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.00401a54
mov esi, dword [ebp - 0x258]
jmp 0x402ef0
xor ebx, ebx
mov edi, 0x4497d0
call fcn.0040bd69
push eax
lea ecx, [ebp - 0x254]
call fcn.00401320
lea eax, [ebp - 0x254]
mov dword [ebp - 4], 7
push eax
call fcn.004027bf
pop ecx
call fcn.0040bd69
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 0x402f44
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x403085
push ecx
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x250]
push eax
call fcn.00402249
push esi
push eax
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 9
push eax
call fcn.00402249
add esp, 0x18
push eax
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0xa
call fcn.004021f9
mov ecx, dword [ebp - 0x25c]
lea ecx, [ecx - 0x10]
call fcn.00401a54
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 8
lea ecx, [ecx - 0x10]
call fcn.00401a54
push ebx
push 0x4371d4
lea ecx, [ebp - 0x24c]
call fcn.004025e8
mov esi, eax
cmp esi, 0xffffffff
je 0x403057
lea ecx, [esi + 0x10]
push ecx
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402a3e
push str.hidden
mov byte [ebp - 4], 0xb
call fcn.0041fc2e
pop ecx
push eax
push str.hidden
lea ecx, [ebp - 0x250]
call fcn.00402366
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.00403553
mov eax, dword [eax]
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 0xc
push dword [eax - 0xc]
push eax
call fcn.00402366
mov ecx, dword [ebp - 0x25c]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.00401a54
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x24c]
call fcn.004021f9
mov ecx, dword [ebp - 0x250]
lea ecx, [ecx - 0x10]
call fcn.00401a54
push dword [ebp - 0x24c]
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.0040cb80
push 0x4371d0
mov ecx, edi
call fcn.0040cb80
jmp 0x40307e
mov dword [ebp - 4], 8
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x4031eb
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x24c]
call fcn.004021f9
mov ecx, dword [ebp - 0x260]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jne 0x4030be
mov eax, dword [ebp - 0x258]
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
je 0x4030d7
mov edi, 0x437210
push edi
call fcn.0041fc2e
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402366
cmp esi, 0x186a0
jne 0x403169
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 0x437214
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.0040229e
push dword [ebp - 0x258]
mov byte [ebp - 4], 0xf
push esi
push dword [eax]
lea eax, [ebp - 0x24c]
push eax
call fcn.00402793
mov ecx, dword [ebp - 0x25c]
add esp, 0x1c
mov byte [ebp - 4], 8
lea ecx, [ecx - 0x10]
call fcn.00401a54
push 0x436f68
push 0x4371d0
lea ecx, [ebp - 0x24c]
call fcn.004033cc
jmp 0x4031d0
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.0042002b
mov esi, str.Error_Code:
push esi
call fcn.0041fc2e
add esp, 0x10
lea ecx, [ebp - 0x24c]
push eax
push esi
call fcn.00402366
lea eax, [ebp - 0x3c]
push eax
call fcn.0041fc2e
pop ecx
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402366
push 0x4371d0
call fcn.0041fc2e
pop ecx
push eax
push 0x4371d0
lea ecx, [ebp - 0x24c]
call fcn.00402366
push dword [ebp - 0x24c]
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x10
call fcn.0040cb80
mov dword [ebp - 4], 8
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x12
call fcn.0040c550
mov ecx, dword [ebp - 0x24c]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
sete bl
add ecx, 0xfffffff0
call fcn.00401a54
mov ecx, dword [ebp - 0x254]
add ecx, 0xfffffff0
call fcn.00401a54
mov eax, ebx
call fcn.0041aa2b
ret