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

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x438
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov rax, qword [0x1403542a0]
xor rax, rsp
mov qword [rsp + 0x420], rax
call fcn.1400e1f80
cmp qword [rsp + 0x440], 0
je 0x14006b25d
mov rax, qword [rsp + 0x440]
add rax, 0x10
mov qword [rsp + 0x58], rax
jmp 0x14006b266
mov qword [rsp + 0x58], 0
call fcn.1400e1f80
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
call qword [rax + 0x48]
call fcn.1400e2010
mov rcx, rax
call qword [sym.imp.InstallManager.dll_IMCore_SetErrorHandler]
mov rax, qword [rsp + 0x440]
cmp qword [rax + 0x1a0], 0
jne 0x14006b2c1
mov rcx, qword [rsp + 0x440]
call fcn.14006b850
mov rcx, qword [rsp + 0x440]
mov qword [rcx + 0x1a0], rax
mov rcx, qword [rsp + 0x440]
call fcn.14006ef90
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x88]
call fcn.140003440
nop
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_296]
call fcn.140003440
nop
lea rcx, [rsp + 0xe8]
call fcn.140003440
nop
mov r8d, reloc.mfc110u.dll_Ordinal_520
xor edx, edx
lea rcx, [rsp + 0x210]
call sub.MSVCR110.dll_memset
lea rax, [rsp + 0x210]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x26
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0xe8]
call fcn.140004960
lea rdx, str.ATI_Technologies
lea rcx, [rsp + 0x148]
call fcn.140003390
nop
lea r8, [rsp + 0x148]
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x88]
call fcn.1400c5050
nop
lea rcx, [rsp + 0x148]
call fcn.140003870
lea r8, [0x1401f0594]
lea rdx, [0x1401f05dc]
lea rcx, [rsp + 0x88]
call fcn.1400cad60
cmp qword [rsp + 0x38], 0
je 0x14006b51b
mov rdx, qword [0x1403244f8]
lea rcx, [rsp + 0x1c8]
call fcn.140003390
nop
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
lea r9, [rsp + 0x88]
lea r8, [rsp + reloc.mfc110u.dll_Ordinal_296]
lea rdx, [rsp + 0x1c8]
mov rcx, qword [rsp + 0x38]
call qword [rax + 0x40]
nop
lea rcx, [rsp + 0x1c8]
call fcn.140003870
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_296]
call fcn.140004a60
mov rcx, qword [rsp + 0x440]
add rcx, 0x188
mov rdx, rax
call qword [sym.imp.mfc110u.dll_Ordinal_1494]
lea rdx, str.load_DLM
lea rcx, [rsp + 0x1a8]
call fcn.140003390
nop
mov rax, qword [rsp + 0x440]
add rax, 0x1fa
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx]
mov qword [rsp + 0x68], rcx
mov r9b, 1
mov r8, rax
lea rdx, [rsp + 0x1a8]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x68]
call qword [rax + reloc.msi.dll_MsiEnumClientsA]
nop
lea rcx, [rsp + 0x1a8]
call fcn.140003870
mov rdx, qword [0x1403244d8]
lea rcx, [rsp + 0x168]
call fcn.140003390
nop
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
xor r8d, r8d
lea rdx, [rsp + 0x168]
mov rcx, qword [rsp + 0x38]
call qword [rax + 0xb8]
mov byte [rsp + 0x31], al
lea rcx, [rsp + 0x168]
call fcn.140003870
movzx eax, byte [rsp + 0x31]
test eax, eax
je 0x14006b519
mov rdx, qword [0x1403244d8]
lea rcx, [rsp + 0x188]
call fcn.140003390
nop
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
mov r9b, 1
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x188]
mov rcx, qword [rsp + 0x38]
call qword [rax + reloc.msi.dll_MsiEnumClientsA]
nop
lea rcx, [rsp + 0x188]
call fcn.140003870
movzx edx, byte [rsp + 0x30]
mov rcx, qword [rsp + 0x440]
call fcn.140079cd0
jmp 0x14006b54f
mov rax, qword [rsp + 0x440]
mov byte [rax + 0x1fa], 0
lea rcx, [rsp + 0x88]
call fcn.140004a60
mov rcx, qword [rsp + 0x440]
add rcx, 0x188
mov rdx, rax
call qword [sym.imp.mfc110u.dll_Ordinal_1494]
lea rcx, [rsp + 0xc8]
call fcn.140003440
nop
lea rdx, str._UI
lea rcx, [rsp + 0xc8]
call fcn.140004960
mov rax, qword [rsp + 0x440]
add rax, 0x158
mov r8, rax
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0xa8]
call fcn.14000b5b0
nop
mov rax, qword [rsp + 0x440]
movzx eax, byte [rax + 0x1fa]
test eax, eax
je 0x14006b61c
lea rcx, [rsp + 0x108]
call fcn.140003440
nop
lea rdx, str._LoadDL
lea rcx, [rsp + 0x108]
call fcn.140004960
lea r8, [rsp + 0xa8]
lea rdx, [rsp + 0x108]
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_488]
call fcn.14000b5b0
mov qword [rsp + 0x78], rax
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0xa8]
call fcn.14000fec0
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_488]
call fcn.140003870
nop
lea rcx, [rsp + 0x108]
call fcn.140003870
mov rax, qword [rsp + 0x440]
mov rax, qword [rax + 0x1a0]
mov rcx, qword [rsp + 0x440]
mov rcx, qword [rcx + 0x1a0]
mov rax, qword [rax]
xor r8d, r8d
lea rdx, [rsp + 0xa8]
call qword [rax + reloc.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov ecx, pe_nt_image_headers64
call sub.mfc110u.dll_Ordinal_1480
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x14006b6b6
cmp qword [rsp + 0x440], 0
je 0x14006b680
mov rax, qword [rsp + 0x440]
add rax, 8
mov qword [rsp + 0x40], rax
jmp 0x14006b689
mov qword [rsp + 0x40], 0
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x440]
mov rax, qword [rsp + 0x440]
mov rdx, qword [rax + 0x1a0]
mov rcx, qword [rsp + 0x50]
call fcn.140083ea0
mov qword [rsp + 0x48], rax
jmp 0x14006b6bf
mov qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x440]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x198], rcx
lea rcx, [rsp + 0xa8]
call fcn.140003870
nop
lea rcx, [rsp + 0xc8]
call fcn.140003870
nop
lea rcx, [rsp + 0xe8]
call fcn.140003870
nop
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_296]
call fcn.140003870
nop
lea rcx, [rsp + 0x88]
call fcn.140003870
mov rcx, qword [rsp + 0x420]
xor rcx, rsp
call fcn.1400f3d50
add rsp, 0x438
ret