Function at 0x100fc690
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.0x100fc6b3.16
jmp dword [eax*4 + 0x100fccec]
push ecx
mov edx, esi
mov ecx, 0x26
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2a
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2b
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2c
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x24
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x25
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x29
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x14
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x17
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x28
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 5
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
push eax
push 0
push 0
push 0x101ace30
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
js case.0x100fc6b3.16
push dword [ebp - 0x218]
mov ecx, esi
call fcn.10001d90
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.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x1a
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x1c
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x23
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
push ecx
mov edx, esi
mov ecx, 0x2e
call fcn.100fbb00
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc0d0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
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.0x100fc6b3.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fc920
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001e80
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
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.0x100fc6b3.16
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je case.0x100fc6b3.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fc990
jmp 0x100fc92b
mov ecx, esi
call fcn.100fc320
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc150
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
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.0x100fc6b3.16
push str.Adobe
lea eax, [ebp - 0x214]
push 0x104
push eax
call fcn.10174db7
lea ecx, [ebp - 0x214]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fca06
jmp 0x100fc92b
mov ecx, esi
call fcn.100fc3e0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc470
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc320
test al, al
je case.0x100fc6b3.16
mov eax, 0x101b1210
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc3e0
test al, al
je case.0x100fc6b3.16
mov eax, 0x101b1210
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc470
test al, al
je case.0x100fc6b3.16
mov eax, 0x101b1210
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc320
test al, al
je case.0x100fc6b3.16
mov eax, str.OOBEPDApp
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc3e0
test al, al
je case.0x100fc6b3.16
mov eax, str.OOBEPDApp
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc320
test al, al
je case.0x100fc6b3.16
mov eax, str.AdobeApplicationManagerAAMRefs
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc320
jmp 0x100fcb60
mov ecx, esi
call fcn.100fc150
test al, al
je case.0x100fc6b3.16
mov eax, str.ADCRefs
mov ecx, esi
push eax
call fcn.10001d40
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x21c]
call fcn.10107c30
cmp dword [ebp - 0x218], 2
jne 0x100fcbce
mov ecx, esi
call fcn.100fc150
test al, al
je case.0x100fc6b3.16
push 0x15
push 0x101c3b4c
mov ecx, esi
call fcn.10001f90
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
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.0x100fc6b3.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fcbf2
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001e80
push 0x1b
push str.AdobeAdobe_Desktop_Common
mov ecx, esi
call fcn.10001f90
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x21c]
call fcn.10107c30
cmp dword [ebp - 0x218], 2
je case.0x100fc6b3.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.0x100fc6b3.16
lea ecx, [ebp - 0x214]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100fcc70
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10001e80
push 0x1b
push str.AdobeAdobe_Creative_Cloud
mov ecx, esi
call fcn.10001f90
mov al, 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc670
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.100fc4a0
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
xor al, al
xor ecx, ebp
pop esi
call fcn.1015c7a5
mov esp, ebp
pop ebp
ret