Function at 0x444f59
Capabilities:
Get common file path

Disassembly:
push 0x248
mov eax, 0x4b20e6
call fcn.00468fdc
push str.CleanupObsoleteFolders...
lea ecx, [ebp - 0x21c]
call fcn.00402829
xor ebx, ebx
lea edx, [ebp - 0x21c]
push ebx
push 2
pop ecx
mov dword [ebp - 4], ebx
call fcn.004137d1
or dword [ebp - 4], 0xffffffff
pop ecx
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push 0x8023
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov esi, eax
test esi, esi
jns 0x445016
push 0x4cc6b4
lea ecx, [ebp - 0x220]
call fcn.00402829
push str.SHGetFolderPath_failed:
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 1
call fcn.00402829
push esi
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 2
push eax
push 2
lea edx, [ebp - 0x21c]
pop ecx
call fcn.004130a0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x220]
jmp 0x44555b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x224]
call fcn.00402829
push str.AdobeARM
lea ecx, [ebp - 0x224]
mov dword [ebp - 4], 3
call fcn.0040259d
push str.iLastProcessedArmFolderSize
lea ecx, [ebp - 0x21c]
call fcn.00402829
push ebx
push 0x2d0
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 4
call fcn.004494f1
pop ecx
pop ecx
mov byte [ebp - 4], 3
mov esi, eax
mov ecx, dword [ebp - 0x21c]
add ecx, 0xfffffff0
call fcn.00402e64
xorps xmm0, xmm0
movlpd qword [ebp - 0x238], xmm0
call fcn.0044f181
push eax
lea ecx, [ebp - 0x244]
call fcn.00402899
mov byte [ebp - 4], 5
call fcn.0044f181
push eax
lea ecx, [ebp - 0x240]
call fcn.00402899
xor edi, edi
mov byte [ebp - 4], 6
inc edi
test esi, esi
je 0x445142
lea eax, [ebp - 0x238]
mov ecx, 0x514fa8
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.00428b3e
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x4451e1
mov esi, 0x40000000
jb 0x445103
mov eax, dword [ebp - 0x238]
cmp eax, esi
jae 0x4451e7
push edi
push str.ArmFolderSizeSmall
call fcn.004032da
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x4451e1
mov eax, dword [ebp - 0x238]
jb 0x445130
cmp eax, esi
jae 0x4451e7
cmp ecx, ebx
ja 0x445137
cmp eax, 0xc0000000
jbe 0x445142
push edi
push str.ArmFolderSizeLarge
call fcn.004032da
cmp dword [0x514f6c], 0
jne 0x445207
lea eax, [ebp - 0x248]
mov dword [ebp - 0x21c], ebx
push eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x248], ebx
push eax
push str.iAllowCleanupObsoleteFolders
mov edx, 0x4ca238
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.0043fc1c
add esp, 0xc
cmp dword [ebp - 0x21c], edi
je 0x445207
push 0x4cc6b4
lea ecx, [ebp - 0x228]
call fcn.00402829
push str.cleanup_not_allowed_by_product_Manifest
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 7
call fcn.00402829
push ebx
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 8
push eax
push 2
lea edx, [ebp - 0x220]
pop ecx
call fcn.004130a0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x228]
jmp 0x445531
mov eax, dword [ebp - 0x238]
cmp ecx, ebx
ja 0x445137
jb 0x4451fc
cmp eax, 0xc0000000
ja 0x445137
push edi
push str.ArmFolderSizeMedium
jmp 0x44513d
push 0x4f4098
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00402459
add esp, 0xc
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x244]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x240]
movlpd qword [ebp - 0x238], xmm0
push eax
lea eax, [ebp - 0x24c]
mov ecx, 0x514fa8
push eax
call fcn.00428b3e
cmp dword [ebp - 0x234], ebx
ja 0x44526b
cmp dword [ebp - 0x238], 0x200000
jbe 0x4452c7
push str.Will_attempt_to_delete_ARM_self_update_folder__unexpected_size
lea ecx, [ebp - 0x21c]
call fcn.00402829
push ebx
push 2
lea edx, [ebp - 0x21c]
mov byte [ebp - 4], 0xa
pop ecx
call fcn.004137d1
pop ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x21c]
add ecx, 0xfffffff0
call fcn.00402e64
push ecx
mov esi, esp
mov dword [ebp - 0x250], esi
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
push eax
call fcn.00402d9f
pop ecx
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.00444a81
pop ecx
push str..
lea ecx, [ebp - 0x224]
call fcn.0040259d
call fcn.0044f181
push eax
lea ecx, [ebp - 0x230]
call fcn.00402899
mov byte [ebp - 4], 0xb
call fcn.0044f181
push eax
lea ecx, [ebp - 0x228]
call fcn.00402899
mov byte [ebp - 4], 0xc
mov eax, dword [0x514ecc]
add eax, 0xfffffff0
push eax
call fcn.00402d9f
add eax, 0x10
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x22c]
mov dword [esp], 0x4c9910
call fcn.0040969f
lea ecx, [ebp - 0x22c]
test eax, eax
jne 0x445359
push 0x4f4120
call fcn.0040259d
push str.AC76BA86_0000_0000_7761_7E8A45000000_AC76BA86_0000_0000_7760_7E8A45000000_AC76BA86_0000_0000_BA7E_7E8A45000000
lea ecx, [ebp - 0x230]
call fcn.0040286d
push 0x4f4124
jmp 0x44538c
push str.Acrobat
call fcn.0040969f
test eax, eax
jne 0x445397
push 0x4f4120
lea ecx, [ebp - 0x22c]
call fcn.0040259d
push str.A6EADE66_0000_0000_484E_7E8A45000000
lea ecx, [ebp - 0x230]
call fcn.0040286d
push str.Reader_
lea ecx, [ebp - 0x228]
call fcn.0040286d
lea edx, [ebp - 0x22c]
lea ecx, [ebp - 0x224]
call fcn.00445569
mov edi, dword [ebp - 0x230]
cmp dword [edi - 0xc], 0
je 0x445507
mov byte [ebp - 0x23c], bl
call fcn.0044f181
push eax
lea ecx, [ebp - 0x21c]
call fcn.00402899
mov byte [ebp - 4], 0xe
call fcn.0044f181
push eax
lea ecx, [ebp - 0x220]
call fcn.00402899
mov eax, dword [ebp - 0x23c]
mov ecx, ebx
mov byte [ebp - 4], 0xf
mov esi, dword [ebp - 0x220]
mov dword [ebp - 0x248], ecx
cmp ecx, 0xffffffff
je 0x4454d6
push 0x4c9020
lea ecx, [ebp - 0x254]
call fcn.00402829
lea eax, [ebp - 0x254]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x248]
push eax
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x250]
call fcn.0043f91b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0x11
call fcn.00402e14
mov ecx, dword [ebp - 0x250]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x254]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov esi, dword [ebp - 0x220]
cmp dword [esi - 0xc], ebx
je 0x4454c1
mov edi, ebx
push 0x104
lea ecx, [ebp - 0x21c]
call fcn.00402bd2
push eax
push edi
push ebx
push esi
call dword [sym.imp.msi.dll_MsiSourceListClearAllW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x21c]
mov ebx, eax
call fcn.00409889
mov eax, dword [ebp - 0x23c]
test ebx, ebx
push 1
pop ecx
movzx eax, al
cmove eax, ecx
inc edi
push 0
test ebx, ebx
mov dword [ebp - 0x23c], eax
pop ebx
je 0x445477
jmp 0x4454c7
mov eax, dword [ebp - 0x23c]
test al, al
jne 0x4454d8
mov ecx, dword [ebp - 0x248]
jmp 0x4453fc
test al, al
mov edi, dword [ebp - 0x230]
jne 0x4454f1
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x224]
call fcn.00445569
lea ecx, [esi - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x22c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x228]
lea ecx, [ecx - 0x10]
call fcn.00402e64
lea ecx, [edi - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x244]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x224]
lea ecx, [ecx - 0x10]
call fcn.00402e64
call fcn.00468f86
ret