Function at 0x446ce6
Capabilities:
Get common file path

Disassembly:
push 0x248
mov eax, 0x4b5a26
call fcn.0046c44c
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.00414d4f
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 0x446da3
push 0x4d189c
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.00414600
pop ecx
pop ecx
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x220]
jmp 0x4472e8
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.0044b24f
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.00452601
push eax
lea ecx, [ebp - 0x244]
call fcn.00402899
mov byte [ebp - 4], 5
call fcn.00452601
push eax
lea ecx, [ebp - 0x240]
call fcn.00402899
xor edi, edi
mov byte [ebp - 4], 6
inc edi
test esi, esi
je 0x446ecf
lea eax, [ebp - 0x238]
mov ecx, 0x51afb0
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.0042a277
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x446f6e
mov esi, 0x40000000
jb 0x446e90
mov eax, dword [ebp - 0x238]
cmp eax, esi
jae 0x446f74
push edi
push str.ArmFolderSizeSmall
call fcn.004032da
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x446f6e
mov eax, dword [ebp - 0x238]
jb 0x446ebd
cmp eax, esi
jae 0x446f74
cmp ecx, ebx
ja 0x446ec4
cmp eax, 0xc0000000
jbe 0x446ecf
push edi
push str.ArmFolderSizeLarge
call fcn.004032da
cmp dword [0x51af74], 0
jne 0x446f94
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, 0x4ce610
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.004418af
add esp, 0xc
cmp dword [ebp - 0x21c], edi
je 0x446f94
push 0x4d189c
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.00414600
pop ecx
pop ecx
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x228]
jmp 0x4472be
mov eax, dword [ebp - 0x238]
cmp ecx, ebx
ja 0x446ec4
jb 0x446f89
cmp eax, 0xc0000000
ja 0x446ec4
push edi
push str.ArmFolderSizeMedium
jmp 0x446eca
push 0x4fb5a0
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, 0x51afb0
push eax
call fcn.0042a277
cmp dword [ebp - 0x234], ebx
ja 0x446ff8
cmp dword [ebp - 0x238], 0x200000
jbe 0x447054
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.00414d4f
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.004467b2
pop ecx
push str..
lea ecx, [ebp - 0x224]
call fcn.0040259d
call fcn.00452601
push eax
lea ecx, [ebp - 0x230]
call fcn.00402899
mov byte [ebp - 4], 0xb
call fcn.00452601
push eax
lea ecx, [ebp - 0x228]
call fcn.00402899
mov byte [ebp - 4], 0xc
mov eax, dword [0x51aed4]
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], 0x4cd960
call fcn.0040ac4f
lea ecx, [ebp - 0x22c]
test eax, eax
jne 0x4470e6
push 0x4fb628
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 0x4fb62c
jmp 0x447119
push str.Acrobat
call fcn.0040ac4f
test eax, eax
jne 0x447124
push 0x4fb628
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.004472f6
mov edi, dword [ebp - 0x230]
cmp dword [edi - 0xc], 0
je 0x447294
mov byte [ebp - 0x23c], bl
call fcn.00452601
push eax
lea ecx, [ebp - 0x21c]
call fcn.00402899
mov byte [ebp - 4], 0xe
call fcn.00452601
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 0x447263
push 0x4cd070
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.004415ae
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 0x44724e
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.0040ae39
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 0x447204
jmp 0x447254
mov eax, dword [ebp - 0x23c]
test al, al
jne 0x447265
mov ecx, dword [ebp - 0x248]
jmp 0x447189
test al, al
mov edi, dword [ebp - 0x230]
jne 0x44727e
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x224]
call fcn.004472f6
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.0046c3f6
ret