Function at 0x140098970
Capabilities:
Check if file exists
Get file attributes
Query environment variable

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1e0]
sub rsp, 0x2e0
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x338], rbx
mov rdi, rcx
mov r12, qword [0x140271400]
call fcn.14009a1a0
lea r14, [rdi + 0x5b0]
xor edx, edx
mov rcx, r14
call fcn.14005bd70
test eax, eax
jne 0x1400989c6
xor eax, eax
jmp 0x140099699
lea rbx, [rdi + 0x610]
mov edx, 0xdf29
mov rcx, rbx
call fcn.14005bd70
test eax, eax
je 0x1400989bf
mov eax, dword [0x140271e30]
add eax, 0xffffdc84
cmp eax, 1
ja 0x140098a06
mov rdx, r12
mov rcx, rdi
call fcn.1400998a0
mov rcx, rdi
call fcn.14009dc90
jmp 0x140099699
xor r8d, r8d
lea edx, [r8 + 3]
lea rcx, [0x140271ff0]
call fcn.14002c520
mov r15, rax
test rax, rax
jne 0x140098a37
lea edx, [rax + 3]
lea r8d, [rax + 1]
lea rcx, [0x140271ff0]
call fcn.14002c520
mov r15, rax
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.1400ca730
nop
xor esi, esi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnhPopupConfig
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x30]
call fcn.1400ca8a0
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowTouchPadProperties
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov r13d, dword [rbp + 0x230]
test r15, r15
je 0x140098b5a
test r13d, r13d
je 0x140098b5a
mov rcx, r15
call fcn.140032230
test eax, eax
je 0x140098ac4
mov dword [rbp + 0x228], 0x52e
jmp 0x140098ae4
mov rcx, r15
call fcn.14000bad0
test eax, eax
mov dword [rbp + 0x228], 0x532
jne 0x140098ae4
mov dword [rbp + 0x228], 0x508
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.TouchPadProperties_ResourceID
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov r8d, dword [rbp + 0x230]
mov eax, r13d
dec eax
je 0x140098b31
dec eax
je 0x140098b20
dec eax
je 0x140098b3b
jmp 0x140098b2a
mov dword [rdi + 0x568], 0xdf27
mov eax, 0xdf27
jmp 0x140098b40
mov dword [rdi + 0x568], 0xdf24
mov eax, 0xdf24
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov eax, dword [rdi + 0xb54]
mov dword [rbp + 0x228], eax
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowForcePadVolume
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov eax, esi
cmp dword [rbp + 0x230], eax
setne al
mov dword [rdi + 0xb54], eax
test eax, eax
je 0x140098bd4
test r15, r15
je 0x140098bd4
mov rcx, r15
call fcn.140032230
test eax, eax
je 0x140098bd4
mov dword [rsp + 0x20], 0xdf26
xor r9d, r9d
mov r8d, 0x52f
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov eax, dword [rdi + 0xb58]
mov dword [rbp + 0x228], eax
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowForcePadVolume
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov eax, esi
cmp dword [rbp + 0x230], eax
setne al
mov dword [rdi + 0xb58], eax
test eax, eax
je 0x140098c85
mov word [rbp - 0x30], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x2e]
call fcn.1400e5f00
mov r8d, 0x104
lea rdx, [rbp - 0x30]
lea rcx, str.ProgramFiles
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea r9, str.SynapticsSynTP_synfpapp.exe
lea r8, [rbp - 0x30]
lea rdx, str._s_s
lea rcx, [rdi + 0xb5c]
call fcn.1400e7a7c
lea rcx, [rdi + 0xb5c]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, esi
cmp eax, 0xffffffff
setne cl
mov dword [rdi + 0xb58], ecx
lea rbx, [rdi + 0x610]
cmp dword [rdi + 0xb58], esi
je 0x140098cc2
test r15, r15
je 0x140098cc2
mov rcx, r15
call fcn.140032230
test eax, eax
je 0x140098cc2
mov dword [rsp + 0x20], 0xdf28
xor r9d, r9d
mov r8d, 0x531
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov dword [rbp + 0x230], 2
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x230]
lea r8, [rbp + 0x228]
lea rdx, str.DeviceProperties_ResourceID
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
xor r8d, r8d
lea edx, [r8 + 3]
lea rcx, [0x140271ff0]
call fcn.14002c5f0
test rax, rax
jne 0x140098d76
lea edx, [rax + 3]
lea r8d, [rax + 1]
lea rcx, [0x140271ff0]
call fcn.14002c5f0
test rax, rax
jne 0x140098d76
mov eax, dword [rdi + 0x564]
test eax, eax
je 0x140098d76
test r13d, r13d
jne 0x140098d76
dec eax
je 0x140098d44
cmp eax, 2
je 0x140098d44
mov dword [rdi + 0x568], 0xdf27
jmp 0x140098d4e
mov dword [rdi + 0x568], 0xdf24
mov eax, dword [rdi + 0x568]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, dword [rbp + 0x228]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
jne 0x140098d9f
jmp 0x14009968d
mov dword [rsp + 0x20], 0xdf00
lea r9, str.control.exe_mouse
mov r8d, dword [rbp + 0x228]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov edx, dword [rdi + 0x568]
mov rcx, r14
call fcn.14005c550
mov dword [rbp + 0x228], 1
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowIlluminationOptions
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
cmp dword [rbp + 0x230], esi
je 0x140098e54
test r15, r15
je 0x140098e54
mov rcx, r15
call fcn.140032310
test eax, eax
je 0x140098e54
mov rcx, r15
call fcn.14000bad0
test eax, eax
jne 0x140098e54
mov rcx, r15
call fcn.1400321b0
test eax, eax
jne 0x140098e54
mov dword [rsp + 0x20], 0xdf1e
xor r9d, r9d
mov r8d, LoadRegTypeLib
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov dword [rsp + 0x20], 0xdf1f
xor r9d, r9d
mov r8d, LoadRegTypeLib
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowAsusSmartDetectorDialog
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
cmp dword [rbp + 0x230], esi
je 0x140098eaa
mov dword [rsp + 0x20], 0xdf25
xor r9d, r9d
mov r8d, 0x526
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
cmp dword [rdi + 0xb38], esi
je 0x140098ed6
mov dword [rsp + 0x20], 0xdf04
xor r9d, r9d
mov r8d, 0x9b
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x14009968d
mov dword [rbp + 0x228], 1
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.NameResourceId
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.1400ca730
nop
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnhPopupConfig
mov rdx, 0xffffffff80000001
lea rcx, [rsp + 0x60]
call fcn.1400ca8a0
test eax, eax
jne 0x140098f5f
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnhPopupConfig
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x60]
call fcn.1400ca8a0
test eax, eax
je 0x140098f79
mov r8d, dword [rbp + 0x230]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.14005c010
mov dword [rdi + 0xb10], eax
cmp dword [rdi + 0xb10], 0
je 0x140098f96
mov r9, rbx
mov r8d, 8
mov rdx, r12
mov rcx, r14
call fcn.14005bf40
lea rcx, [0x140271ff0]
call fcn.14009f170
test rax, rax
je 0x140099034
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticscPad
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x68]
call fcn.1400ca7a0
nop
mov dword [rbp + 0x228], 0x208
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp - 0x30]
lea rdx, str.PropertiesExe
lea rcx, [rbp - 0x60]
call fcn.1400e17c0
test eax, eax
je 0x14009902b
mov dword [rsp + 0x20], 0xdf08
xor r9d, r9d
mov r8d, 0x83
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
jne 0x14009902b
lea rcx, [rbp - 0x68]
call fcn.1400ca840
jmp 0x140099682
lea rcx, [rbp - 0x68]
call fcn.1400ca840
mov dword [rbp + 0x228], 1
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowTapToClick
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov eax, esi
cmp dword [rbp + 0x230], eax
setne al
mov dword [rdi + 0xb28], eax
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowDisableTP
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov eax, esi
cmp dword [rbp + 0x230], eax
setne al
mov dword [rdi + 0xb3c], eax
cmp dword [rdi + 0xb28], 0
je 0x1400990d9
mov dword [rsp + 0x20], 0xdf01
xor r9d, r9d
lea r8d, [r9 + 4]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowDisableGestures
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov eax, dword [rbp + 0x230]
mov dword [rdi + 0xb2c], eax
test al, 1
je 0x140099173
test r15, r15
je 0x140099173
lea rcx, [r15 + 0x50]
call fcn.14000bb40
test al, al
je 0x140099173
mov dword [rbp + 0x228], esi
mov rcx, qword [r15 + 0x58]
test rcx, rcx
je 0x140099173
mov rax, qword [rcx]
lea r8, [rbp + 0x228]
mov edx, 0x10000177
call qword [rax + 0x18]
cmp dword [rbp + 0x228], 0
je 0x140099173
mov dword [rsp + 0x20], 0xdf05
xor r9d, r9d
mov r8d, 0x52c
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
test byte [rdi + 0xb2c], 4
je 0x1400991b1
test r15, r15
je 0x1400991b1
mov rcx, r15
call fcn.140032230
test eax, eax
je 0x1400991b1
mov dword [rsp + 0x20], 0xdf06
xor r9d, r9d
mov r8d, 0x52b
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
cmp dword [rdi + 0xb3c], 0
je 0x1400991cd
test r15, r15
je 0x1400991cd
mov r8, r14
mov rdx, r15
mov rcx, rdi
call fcn.14009d7b0
lea rcx, [0x1402707e0]
call fcn.140083750
test eax, eax
je 0x140099211
mov dword [rsp + 0x20], 0xdf02
xor r9d, r9d
lea r8d, [r9 + 0x52]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1402707e0]
call fcn.140083770
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.TrayIconHelp
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov ebx, dword [rbp + 0x230]
test ebx, ebx
je 0x14009926f
mov rcx, r14
call fcn.14005bff0
mov dword [rsp + 0x20], 0xdf03
xor r9d, r9d
lea r8d, [r9 + 3]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
mov dword [rbp + 0x220], esi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticscPad
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x60]
call fcn.1400ca8a0
test eax, eax
je 0x1400992c0
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x220]
lea r8, [rbp + 0x220]
lea rdx, str.TrayIconHelp
lea rcx, [rsp + 0x68]
call fcn.1400e16b0
cmp dword [rbp + 0x220], 0
je 0x14009930a
lea rcx, [0x140271ff0]
call fcn.14009f170
test rax, rax
je 0x14009930a
test ebx, ebx
jne 0x1400992e6
mov rcx, r14
call fcn.14005bff0
mov dword [rsp + 0x20], 0xdf07
xor r9d, r9d
mov r8d, 0x9a
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowAbout
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
cmp dword [rbp + 0x230], 0
je 0x140099388
mov dword [rbp + 0x228], 0xd6
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowAbout_ResourceID
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov dword [rsp + 0x20], 0xdf21
xor r9d, r9d
mov r8d, dword [rbp + 0x230]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
mov dword [rbp + 0x228], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowRemoveIcon
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
cmp dword [rbp + 0x230], 0
je 0x140099406
mov dword [rbp + 0x228], 0xd3
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x230]
lea rdx, str.ShowRemoveIcon_ResourceID
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
mov dword [rsp + 0x20], 0xdf20
xor r9d, r9d
mov r8d, dword [rbp + 0x230]
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test r15, r15
je 0x14009943b
mov rcx, r15
call fcn.1400105f0
test eax, eax
je 0x14009943b
mov dword [rsp + 0x20], 0xdf22
xor r9d, r9d
mov r8d, 0x4ed
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
cmp dword [rdi + 0xb48], 0
je 0x140099468
mov dword [rsp + 0x20], 0xdf23
xor r9d, r9d
mov r8d, 0x4ff
mov rdx, r12
mov rcx, r14
call fcn.14005bdd0
test eax, eax
je 0x140099682
call fcn.14005d230
cmp dword [rax + 4], 0
je 0x14009967d
mov eax, dword [rdi + 0xb10]
test eax, eax
mov edx, 0xdf29
cmovne edx, eax
inc edx
mov dword [rdi + 0xaf0], edx
lea r15, [rdi + 0xa90]
mov rcx, r15
call fcn.14005bd70
test eax, eax
je 0x140099682
call fcn.14005d230
mov rcx, rax
call fcn.14007ad90
call fcn.14005d230
mov rcx, rax
lea rdx, [rbp - 0x68]
call fcn.14007b300
nop
mov rdx, rax
lea rcx, [rdi + 0xaf8]
call fcn.14005eb50
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1400994e3
call fcn.1400e5d34
mov rax, qword [rdi + 0xb00]
mov rcx, r15
cmp qword [rdi + 0xaf8], rax
je 0x140099552
lea rdx, [rdi + 0xaf8]
call fcn.14005c2e0
mov dword [rdi + 0xaf4], eax
test eax, eax
je 0x14009951c
mov rcx, r15
call fcn.14005bff0
inc dword [rdi + 0xaf4]
jmp 0x140099528
mov eax, dword [rdi + 0xaf0]
mov dword [rdi + 0xaf4], eax
mov eax, dword [rdi + 0xaf4]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, 0x4d9
mov rdx, r12
mov rcx, r15
call fcn.14005bdd0
test eax, eax
jne 0x14009957d
dec dword [rdi + 0xaf4]
jmp 0x14009957d
mov eax, dword [rdi + 0xaf0]
mov dword [rdi + 0xaf4], eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, 0x4d9
mov rdx, r12
call fcn.14005bdd0
test eax, eax
jne 0x14009957d
mov dword [rdi + 0xaf4], esi
mov ebx, dword [rdi + 0xaf0]
cmp ebx, dword [rdi + 0xaf4]
ja 0x1400995c4
nop dword [rax + rax]
mov edx, ebx
sub edx, dword [rdi + 0xaf0]
xor r8d, r8d
mov rcx, r15
call fcn.14005c4f0
mov r8d, esi
cmp dword [0x1402706c8], esi
sete r8b
mov edx, ebx
mov rcx, r15
call fcn.14005c510
inc ebx
cmp ebx, dword [rdi + 0xaf4]
jbe 0x140099590
call fcn.14005d230
cmp qword [rax + 0x60], 0
je 0x140099615
mov r13d, esi
mov rbx, qword [rdi + 0xaf8]
cmp rbx, qword [rdi + 0xb00]
je 0x140099615
call fcn.14005d230
mov rcx, qword [rax + 0x60]
cmp qword [rbx], rcx
jne 0x1400995fb
call fcn.14005d230
cmp dword [rax], 0
je 0x140099604
add rbx, 8
inc r13d
jmp 0x1400995da
mov r8d, 1
mov edx, r13d
mov rcx, r15
call fcn.14005c4f0
cmp dword [rdi + 0xaf4], 0
je 0x14009967d
cmp qword [rsp + 0x48], 0
je 0x14009967d
mov dword [rbp + 0x228], 1
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x228]
lea r8, [rbp + 0x228]
lea rdx, str.ShowProfiles
lea rcx, [rsp + 0x38]
call fcn.1400e16b0
test eax, eax
je 0x14009967d
cmp dword [rbp + 0x228], 0
je 0x14009967d
mov rcx, r14
call fcn.14005bff0
mov r9, r15
mov r8d, 0x4d8
mov rdx, r12
mov rcx, r14
call fcn.14005bf40
mov esi, 1
lea rcx, [rsp + 0x60]
call fcn.1400ca840
nop
lea rcx, [rsp + 0x30]
call fcn.1400ca840
mov eax, esi
mov rbx, qword [rsp + 0x338]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret