Function at 0x445950
Capabilities:
Get common file path

Disassembly:
push 0x248
mov eax, 0x4b4266
call fcn.0046afbc
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.00414071
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 0x445a0d
push 0x4cfdbc
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.00413940
pop ecx
pop ecx
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x220]
jmp 0x445f52
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.00449e7d
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.00451171
push eax
lea ecx, [ebp - 0x244]
call fcn.00402899
mov byte [ebp - 4], 5
call fcn.00451171
push eax
lea ecx, [ebp - 0x240]
call fcn.00402899
xor edi, edi
mov byte [ebp - 4], 6
inc edi
test esi, esi
je 0x445b39
lea eax, [ebp - 0x238]
mov ecx, 0x518fa8
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.004294ac
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x445bd8
mov esi, 0x40000000
jb 0x445afa
mov eax, dword [ebp - 0x238]
cmp eax, esi
jae 0x445bde
push edi
push str.ArmFolderSizeSmall
call fcn.004032da
mov ecx, dword [ebp - 0x234]
cmp ecx, ebx
ja 0x445bd8
mov eax, dword [ebp - 0x238]
jb 0x445b27
cmp eax, esi
jae 0x445bde
cmp ecx, ebx
ja 0x445b2e
cmp eax, 0xc0000000
jbe 0x445b39
push edi
push str.ArmFolderSizeLarge
call fcn.004032da
cmp dword [0x518f6c], 0
jne 0x445bfe
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, 0x4cd258
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044058f
add esp, 0xc
cmp dword [ebp - 0x21c], edi
je 0x445bfe
push 0x4cfdbc
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.00413940
pop ecx
pop ecx
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.00402e64
mov ecx, dword [ebp - 0x228]
jmp 0x445f28
mov eax, dword [ebp - 0x238]
cmp ecx, ebx
ja 0x445b2e
jb 0x445bf3
cmp eax, 0xc0000000
ja 0x445b2e
push edi
push str.ArmFolderSizeMedium
jmp 0x445b34
push 0x4f8700
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, 0x518fa8
push eax
call fcn.004294ac
cmp dword [ebp - 0x234], ebx
ja 0x445c62
cmp dword [ebp - 0x238], 0x200000
jbe 0x445cbe
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.00414071
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.00445478
pop ecx
push str..
lea ecx, [ebp - 0x224]
call fcn.0040259d
call fcn.00451171
push eax
lea ecx, [ebp - 0x230]
call fcn.00402899
mov byte [ebp - 4], 0xb
call fcn.00451171
push eax
lea ecx, [ebp - 0x228]
call fcn.00402899
mov byte [ebp - 4], 0xc
mov eax, dword [0x518ecc]
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], 0x4cc930
call fcn.00409edf
lea ecx, [ebp - 0x22c]
test eax, eax
jne 0x445d50
push 0x4f8788
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 0x4f878c
jmp 0x445d83
push str.Acrobat
call fcn.00409edf
test eax, eax
jne 0x445d8e
push 0x4f8788
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.00445f60
mov edi, dword [ebp - 0x230]
cmp dword [edi - 0xc], 0
je 0x445efe
mov byte [ebp - 0x23c], bl
call fcn.00451171
push eax
lea ecx, [ebp - 0x21c]
call fcn.00402899
mov byte [ebp - 4], 0xe
call fcn.00451171
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 0x445ecd
push 0x4cc040
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.0044028e
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 0x445eb8
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.0040a0c9
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 0x445e6e
jmp 0x445ebe
mov eax, dword [ebp - 0x23c]
test al, al
jne 0x445ecf
mov ecx, dword [ebp - 0x248]
jmp 0x445df3
test al, al
mov edi, dword [ebp - 0x230]
jne 0x445ee8
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x224]
call fcn.00445f60
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.0046af66
ret