Function at 0x100fcef0
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x101f62b4]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
cmp eax, 0x2d
ja case.0x100fcf13.16
jmp dword [eax*4 + 0x100fd54c]
push ecx
mov edx, esi
mov ecx, 0x26
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2a
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2b
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2c
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x24
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x25
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x29
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x14
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x17
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x28
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 5
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
push eax
push 0
push 0
push 0x101acdb0
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
js case.0x100fcf13.16
push dword [ebp - 0x218]
mov ecx, esi
call fcn.10001c70
push dword [ebp - 0x218]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x1a
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x1c
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x23
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2e
call fcn.100fc360
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc930
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push 0x104
lea eax, [ebp - 0x214]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je case.0x100fcf13.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fd180
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001d60
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push 0x104
lea eax, [ebp - 0x214]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je case.0x100fcf13.16
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je case.0x100fcf13.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fd1f0
jmp 0x100fd18b
mov ecx, esi
call fcn.100fcb80
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc9b0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push 0
push 0x2c
lea eax, [ebp - 0x214]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je case.0x100fcf13.16
push str.Adobe
lea eax, [ebp - 0x214]
push 0x104
push eax
call fcn.10174e77
lea ecx, [ebp - 0x214]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fd266
jmp 0x100fd18b
mov ecx, esi
call fcn.100fcc40
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fccd0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcb80
test al, al
je case.0x100fcf13.16
mov eax, 0x101b1190
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcc40
test al, al
je case.0x100fcf13.16
mov eax, 0x101b1190
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fccd0
test al, al
je case.0x100fcf13.16
mov eax, 0x101b1190
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcb80
test al, al
je case.0x100fcf13.16
mov eax, str.OOBEPDApp
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcc40
test al, al
je case.0x100fcf13.16
mov eax, str.OOBEPDApp
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcb80
test al, al
je case.0x100fcf13.16
mov eax, str.AdobeApplicationManagerAAMRefs
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcb80
jmp 0x100fd3c0
mov ecx, esi
call fcn.100fc9b0
test al, al
je case.0x100fcf13.16
mov eax, str.ADCRefs
mov ecx, esi
push eax
call fcn.10001c20
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x21c]
call fcn.101081c0
cmp dword [ebp - 0x218], 2
jne 0x100fd42e
mov ecx, esi
call fcn.100fc9b0
test al, al
je case.0x100fcf13.16
push 0x15
push 0x101c3abc
mov ecx, esi
call fcn.10001e70
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
push 0
push 0x2b
lea eax, [ebp - 0x214]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je case.0x100fcf13.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fd452
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001d60
push 0x1b
push str.AdobeAdobe_Desktop_Common
mov ecx, esi
call fcn.10001e70
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x21c]
call fcn.101081c0
cmp dword [ebp - 0x218], 2
je case.0x100fcf13.38
push 0
push 0x26
lea eax, [ebp - 0x214]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je case.0x100fcf13.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fd4d0
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001d60
push 0x1b
push str.AdobeAdobe_Creative_Cloud
mov ecx, esi
call fcn.10001e70
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fced0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fcd00
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c875
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
xor al, al
xor ecx, ebp
pop esi
call fcn.1015c875
mov esp, ebp
pop ebp
ret