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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x69f000]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, edx
cmp ecx, 0x19
ja case.default.0x46a4cf
jmp dword [ecx*4 + 0x46a8f4]
push ecx
mov ecx, 0x26
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x2a
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x2b
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x2c
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x25
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x29
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x14
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x17
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x28
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 5
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x1a
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x1c
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x23
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, 0x2e
call fcn.0046a250
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
mov ebx, eax
test ebx, ebx
jne 0x46a68f
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
lea eax, [ebx*2 + 2]
push edi
push eax
call fcn.005d89b1
mov edi, eax
add esp, 4
test edi, edi
je 0x46a6bb
push edi
push ebx
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
test eax, eax
jne 0x46a6ce
push edi
call fcn.005d8486
add esp, 4
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46a6d3
sub ecx, edx
sar ecx, 1
push ecx
push edi
mov ecx, esi
call fcn.0040be20
push edi
call fcn.005d8486
add esp, 4
mov al, 1
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
test eax, eax
je case.default.0x46a4cf
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46a730
sub ecx, edx
lea eax, [ebp - 0x20c]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.0040be20
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
test eax, eax
je case.default.0x46a4cf
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je case.default.0x46a4cf
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46a7a0
jmp 0x46a73b
mov ecx, esi
call fcn.0046a390
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0046a420
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0046a390
test al, al
je case.default.0x46a4cf
mov ecx, 5
mov eax, str.OOBE
push ecx
push eax
mov ecx, esi
call fcn.0040ff20
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0046a420
jmp 0x46a7e0
mov ecx, esi
call fcn.0046a390
test al, al
je case.default.0x46a4cf
mov ecx, 0xb
mov eax, str.OOBEPDApp
push ecx
push eax
mov ecx, esi
call fcn.0040ff20
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0046a420
jmp 0x46a81c
mov ecx, esi
call fcn.0046a390
test al, al
je case.default.0x46a4cf
mov ecx, 0x20
mov eax, str.AdobeApplicationManagerAAMRefs
push ecx
push eax
mov ecx, esi
call fcn.0040ff20
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
push 0
push 0x26
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je case.default.0x46a4cf
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46a8a4
sub ecx, edx
lea eax, [ebp - 0x20c]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.0040be20
push 0x1b
push str.AdobeAdobe_Creative_Cloud
mov ecx, esi
call fcn.0040ff20
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005d077b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
xor ecx, ebp
pop esi
call fcn.005d077b
mov esp, ebp
pop ebp
ret