Function at 0x402b31
Capabilities:
Get common file path

Disassembly:
push 0x268
mov eax, 0x43434a
call fcn.0041ab1e
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 0x402b60
call fcn.00402992
mov eax, dword [ebp + 8]
cmp eax, dword [0x4497cc]
jle 0x402b73
xor eax, eax
inc eax
jmp 0x403261
mov eax, dword [0x4497d4]
cmp eax, dword [0x43ba34]
jne 0x402f2b
call fcn.0040bda9
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401320
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.00406e52
test eax, eax
je 0x402c18
push 0x105
lea eax, [ebp - 0x248]
push ebx
push eax
call fcn.0041bfd0
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 0x402c18
lea eax, [ebp - 0x248]
push eax
call fcn.0041fc6e
pop ecx
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0040360e
mov esi, str.Temp
push esi
call fcn.0041fc6e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402366
lea eax, [ebp - 0x24c]
push eax
call fcn.0040442f
pop ecx
test eax, eax
je 0x402c51
lea ecx, [ebp - 0x24c]
call fcn.004025a7
mov esi, 0x104
lea ecx, [ebp - 0x24c]
push esi
call fcn.00403333
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x402db6
push 0xffffffffffffffff
lea ecx, [ebp - 0x24c]
call fcn.004033b5
push 0x5c
push dword [ebp - 0x24c]
call fcn.0041d414
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x402c96
mov ecx, dword [ebp - 0x24c]
sub edx, ecx
sar edx, 1
cmp edx, 0xffffffff
je 0x402c96
mov eax, dword [ecx - 0xc]
dec eax
cmp edx, eax
je 0x402c96
mov esi, 0x437078
push esi
call fcn.0041fc6e
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.0041fc6e
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.0040c7a0
test eax, eax
jne 0x402dd9
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.0041fc6e
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.0040c7a0
lea ecx, [edi - 0x10]
test eax, eax
jne 0x402dcb
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 0x403261
mov byte [ebp - 4], 2
call fcn.00401a54
mov edi, 0x4497d0
mov ecx, edi
call fcn.0040c690
cmp edx, ebx
ja 0x402dfb
cmp eax, ebx
jbe 0x402ef1
cmp edx, ebx
ja 0x402dfb
cmp eax, 0x100000
jb 0x402ead
mov ecx, edi
call fcn.0040c530
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.0041fc6e
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.0040c7a0
lea ecx, [edi - 0x10]
test eax, eax
je 0x402d91
call fcn.00401a54
cmp dword [ebp - 0x25c], 0
mov edi, 0x4497d0
je 0x402ef1
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.004035b7
push 0x4371f0
mov ecx, edi
call fcn.0040cbc0
push 0x4371f0
mov ecx, edi
call fcn.0040cbc0
push 0x4371f0
mov ecx, edi
call fcn.0040cbc0
jmp 0x402ef1
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 0x402f32
xor ebx, ebx
mov edi, 0x4497d0
call fcn.0040bda9
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.0040bda9
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 0x402f86
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4030c7
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 0x4371f4
lea ecx, [ebp - 0x24c]
call fcn.004025e8
mov esi, eax
cmp esi, 0xffffffff
je 0x403099
lea ecx, [esi + 0x10]
push ecx
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402a80
push str.hidden
mov byte [ebp - 4], 0xb
call fcn.0041fc6e
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.00403568
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.0040cbc0
push 0x4371f0
mov ecx, edi
call fcn.0040cbc0
jmp 0x4030c0
mov dword [ebp - 4], 8
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x40322d
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 0x403100
mov eax, dword [ebp - 0x258]
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
je 0x403119
mov edi, 0x437230
push edi
call fcn.0041fc6e
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402366
cmp esi, 0x186a0
jne 0x4031ab
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.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 0x4371f0
lea ecx, [ebp - 0x24c]
call fcn.004033e1
jmp 0x403212
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.0042006b
mov esi, str.Error_Code:
push esi
call fcn.0041fc6e
add esp, 0x10
lea ecx, [ebp - 0x24c]
push eax
push esi
call fcn.00402366
lea eax, [ebp - 0x3c]
push eax
call fcn.0041fc6e
pop ecx
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402366
push 0x4371f0
call fcn.0041fc6e
pop ecx
push eax
push 0x4371f0
lea ecx, [ebp - 0x24c]
call fcn.00402366
push dword [ebp - 0x24c]
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x10
call fcn.0040cbc0
mov dword [ebp - 4], 8
mov ecx, 0x4497d0
mov byte [ebp - 4], 0x12
call fcn.0040c590
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.0041aa6b
ret