Function at 0x45d430
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
sub rsp, 0x4c8
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax - 8], rdi
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x20], r14
mov qword [rax - 0x28], r15
mov rax, qword [0x00522be8]
xor rax, rsp
mov qword [rsp + 0x490], rax
mov r12, rcx
mov qword [rsp + 0x60], rcx
xor r14d, r14d
mov dword [rcx + 4], r14d
mov qword [rcx + 0x30], 7
mov qword [rcx + 0x28], r14
mov word [rcx + 0x18], r14w
mov qword [rcx + 0x58], 7
mov qword [rcx + 0x50], r14
mov word [rcx + 0x40], r14w
add rcx, 0x60
call fcn.004587d0
mov qword [r12 + 0x68], rax
mov byte [rax + 0x49], 1
mov rax, qword [r12 + 0x68]
mov qword [rax + 8], rax
mov rax, qword [r12 + 0x68]
mov qword [rax], rax
mov rax, qword [r12 + 0x68]
mov qword [rax + 0x10], rax
mov qword [r12 + 0x70], r14
mov qword [r12 + 0x78], r14
lea rcx, [rsp + 0x38]
call fcn.004926d0
nop
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnh
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x40]
call fcn.0049da30
test eax, eax
je 0x45d530
mov qword [rsp + 0x20], r14
lea r9, [r12 + 4]
lea r8, [r12 + 4]
lea rdx, str.MultipleProfiles
lea rcx, [rsp + 0x40]
call fcn.0049d2a0
lea rcx, [rsp + 0x34]
call fcn.0049f270
mov ecx, r14d
cmp dword [rsp + 0x34], r14d
setne cl
mov dword [r12 + 8], ecx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPInstall
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x40]
call fcn.0049da30
movabs r15, 0x7ffffffffffffffe
test eax, eax
je 0x45d6f0
mov word [rsp + 0x70], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x72]
call fcn.004a8900
mov dword [rsp + 0x30], 0x208
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x70]
lea rdx, str.ProgDir
lea rcx, [rsp + 0x40]
call fcn.0049d3d0
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
not rcx
lea rbp, [rcx - 1]
mov rdx, qword [r12 + 0x30]
cmp rdx, 8
jb 0x45d5f4
lea rdi, [r12 + 0x18]
mov rax, qword [rdi]
jmp 0x45d5fc
lea rdi, [r12 + 0x18]
mov rax, rdi
lea rcx, [rsp + 0x70]
cmp rcx, rax
jb 0x45d652
cmp rdx, 8
jb 0x45d611
mov rcx, qword [rdi]
jmp 0x45d614
mov rcx, rdi
mov rax, qword [r12 + 0x28]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x70]
cmp rcx, rax
jbe 0x45d652
cmp rdx, 8
jb 0x45d630
mov rdi, qword [rdi]
lea r8, [rsp + 0x70]
sub r8, rdi
sar r8, 1
mov r9, rbp
lea rdx, [r12 + 0x10]
lea rcx, [r12 + 0x10]
call fcn.00402570
jmp 0x45d6d9
cmp rbp, r15
jbe 0x45d65c
call fcn.004a5c60
mov rax, qword [r12 + 0x30]
cmp rax, rbp
jae 0x45d67a
mov r8, qword [r12 + 0x28]
mov rdx, rbp
lea rcx, [r12 + 0x10]
call fcn.00401f80
jmp 0x45d694
test rbp, rbp
jne 0x45d694
mov qword [r12 + 0x28], r14
cmp rax, 8
jb 0x45d68d
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x45d6d9
test rbp, rbp
je 0x45d6d9
mov rdx, qword [r12 + 0x30]
cmp rdx, 8
jb 0x45d6a9
mov rcx, qword [rdi]
jmp 0x45d6ac
mov rcx, rdi
lea r13, [rbp + rbp]
add rdx, rdx
mov r9, r13
lea r8, [rsp + 0x70]
call fcn.004a7900
mov qword [r12 + 0x28], rbp
cmp qword [r12 + 0x30], 8
jb 0x45d6d1
mov rdi, qword [rdi]
mov word [r13 + rdi], 0
mov r8d, 0xa
lea rdx, str._Profiles_
lea rcx, [r12 + 0x10]
call fcn.00406450
xor r9d, r9d
lea r8d, [r9 + 0x1a]
lea rdx, [rsp + 0x280]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x45d82d
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x280]
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx - 1]
mov rdx, qword [r12 + 0x58]
cmp rdx, 8
jb 0x45d73f
lea rdi, [r12 + 0x40]
mov rax, qword [rdi]
jmp 0x45d747
lea rdi, [r12 + 0x40]
mov rax, rdi
lea rcx, [rsp + 0x280]
cmp rcx, rax
jb 0x45d7a6
cmp rdx, 8
jb 0x45d75f
mov rcx, qword [rdi]
jmp 0x45d762
mov rcx, rdi
mov rax, qword [r12 + 0x50]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x280]
cmp rcx, rax
jbe 0x45d7a6
cmp rdx, 8
jb 0x45d781
mov rdi, qword [rdi]
lea r8, [rsp + 0x280]
sub r8, rdi
sar r8, 1
mov r9, rsi
lea rdx, [r12 + 0x38]
lea rcx, [r12 + 0x38]
call fcn.00402570
jmp 0x45d82d
cmp rsi, r15
jbe 0x45d7b0
call fcn.004a5c60
mov rax, qword [r12 + 0x58]
cmp rax, rsi
jae 0x45d7ce
mov r8, qword [r12 + 0x50]
mov rdx, rsi
lea rcx, [r12 + 0x38]
call fcn.00401f80
jmp 0x45d7e8
test rsi, rsi
jne 0x45d7e8
mov qword [r12 + 0x50], r14
cmp rax, 8
jb 0x45d7e1
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x45d82d
test rsi, rsi
je 0x45d82d
mov rdx, qword [r12 + 0x58]
cmp rdx, 8
jb 0x45d7fd
mov rcx, qword [rdi]
jmp 0x45d800
mov rcx, rdi
lea rbp, [rsi + rsi]
add rdx, rdx
mov r9, rbp
lea r8, [rsp + 0x280]
call fcn.004a7900
mov qword [r12 + 0x50], rsi
cmp qword [r12 + 0x58], 8
jb 0x45d827
mov rdi, qword [rdi]
mov word [rdi + rbp], 0
cmp qword [r12 + 0x50], 0
je 0x45d84c
mov r8d, 0x14
lea rdx, str._Synaptics_Profiles_
lea rcx, [r12 + 0x38]
call fcn.00406450
mov rcx, r12
call fcn.004594f0
mov dword [r12], r14d
lea rcx, [rsp + 0x38]
call fcn.00490620
nop
mov rax, r12
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.004a7100
mov rbx, qword [rsp + 0x4d8]
mov rbp, qword [rsp + 0x4e0]
mov rsi, qword [rsp + 0x4e8]
mov rdi, qword [rsp + 0x4c0]
mov r12, qword [rsp + 0x4b8]
mov r13, qword [rsp + 0x4b0]
mov r14, qword [rsp + 0x4a8]
mov r15, qword [rsp + 0x4a0]
add rsp, 0x4c8
ret