Function at 0x1400116e0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
mov dword [rax + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x878]
sub rsp, 0x960
mov qword [rbp + 0x240], 0xfffffffffffffffe
mov qword [rax + 8], rbx
movaps xmmword [rax - 0x48], xmm6
mov ebx, edx
mov rdi, rcx
lea rax, vtable.CSynList_class_CRegistryKey_.0
mov qword [rbp - 0x80], rax
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [rbp - 0x64], 1
xor esi, esi
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
mov dword [rbp - 0x68], esi
lea rax, vtable.CMultiLevelRegistryKey.0
mov qword [rbp - 0x80], rax
xor edx, edx
lea rcx, [rbp + 0x50]
call fcn.1400c9420
nop
cmp ebx, 0xffffffff
je 0x14001178f
mov rax, qword [rdi + 0x58]
test rax, rax
jne 0x140011772
lea rax, [rdi + 0x70]
test rax, rax
je 0x140013e14
mov rcx, qword [rdi + 0x58]
test rcx, rcx
jne 0x14001177f
lea rcx, [rdi + 0x70]
mov rax, qword [rcx]
mov edx, ebx
call qword [rax + 0x78]
test eax, eax
jne 0x140013e14
mov ecx, 0x298
call fcn.1400e4060
mov r14, rax
mov qword [rbp + 0x890], rax
test rax, rax
je 0x140011807
mov ecx, 0x1c0
call fcn.1400e4060
mov rbx, rax
mov qword [rbp + 0x898], rax
test rax, rax
je 0x1400117f4
mov ecx, 0x1f0
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x1400117e4
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
call fcn.14005f300
jmp 0x1400117e7
mov rax, rsi
mov rdx, rax
mov rcx, rbx
call fcn.140061480
jmp 0x1400117f7
mov rax, rsi
mov r8, rax
mov rdx, rdi
mov rcx, r14
call fcn.14000d620
jmp 0x14001180a
mov rax, rsi
mov qword [rdi + 0x1038], rax
lea r13, [rdi + 0x50]
mov rcx, qword [r13 + 8]
test rcx, rcx
jne 0x140011822
lea rcx, [r13 + 0x20]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x1000377
call qword [rax + 0x30]
mov r8d, 0x10000603
lea rdx, [rbp - 0x30]
lea rcx, [rdi + 0x58]
call fcn.140031280
mov rbx, rax
lea r12, [rdi + 0x788]
cmp r12, rax
je 0x140011874
mov rcx, qword [r12]
test rcx, rcx
je 0x140011864
call fcn.140033460
mov qword [r12], rsi
mov rax, qword [rbx]
mov qword [r12], rax
test rax, rax
je 0x140011874
lock inc dword [rax + 0x10]
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140011882
call fcn.140033460
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
lea r9, str.SoftwareSynapticsSynTPEnhZoneConfig
mov r8d, 1
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.140024640
test eax, eax
je 0x140013e14
mov eax, dword [0x14026ed50]
add eax, 0xffffdc84
cmp eax, 1
ja 0x140011a65
mov eax, esi
mov dword [rbp + 0x10], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x1400118e4
mov rax, qword [rcx]
lea r8, [rbp + 0x10]
mov edx, 0x10000103
call qword [rax + 0x18]
mov eax, dword [rbp + 0x10]
lea rcx, str.SoftwareSynapticsSynTPEnhUltraNavUSB
lea r8, str.SoftwareSynapticsSynTPEnhUltraNavPS2
cmp eax, 3
cmove r8, rcx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
mov rdx, 0xffffffff80000001
mov r9d, 1
lea rcx, [rbp + 0x50]
call fcn.1400c9590
mov dword [rbp + 0x158], 0x1214
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x158]
lea r8, [rbp + 0x1bc]
lea rdx, str.TrackPointMode
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x1bc]
mov dword [rdi + 0x7e0], eax
mov dword [rbp + 0x1c8], 0x11
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x1c8]
lea r8, [rbp + 0x150]
lea rdx, str.TrackPointModeFunction
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x150]
mov dword [rdi + 0x7e4], eax
xor ecx, ecx
call fcn.1400dc0c0
mov ecx, esi
cmp eax, 0xd
setge cl
mov dword [rbp + 0x90], ecx
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x90]
lea r8, [rbp + 0x170]
lea rdx, str.TrackPointScrollMethod
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x170]
mov dword [rdi + 0x7e8], eax
cmp dword [rdi + 0x7e0], 0x1214
jne 0x1400119f2
xor r9d, r9d
mov r8d, 0x1214
lea rdx, str.TrackPointMode
lea rcx, [rbp + 0x58]
call fcn.1400e00f0
cmp dword [rdi + 0x7e4], 0x11
jne 0x140011a12
xor r9d, r9d
lea r8d, [r9 + 0x11]
lea rdx, str.TrackPointModeFunction
lea rcx, [rbp + 0x58]
call fcn.1400e00f0
mov ebx, dword [rdi + 0x7e8]
xor ecx, ecx
call fcn.1400dc0c0
mov ecx, esi
cmp eax, 0xd
setge cl
cmp ebx, ecx
jne 0x140011a41
xor r9d, r9d
mov r8d, ebx
lea rdx, str.TrackPointScrollMethod
lea rcx, [rbp + 0x58]
call fcn.1400e00f0
mov eax, dword [rdi + 0x7e4]
test al, 0x40
je 0x140011a57
mov dword [rdi + 0x7f4], 1
jmp 0x140011a65
test al, 0x20
je 0x140011a65
mov dword [rdi + 0x7f8], 1
mov edx, esi
mov dword [rbp + 0x3c], edx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011a85
mov rax, qword [rcx]
lea r8, [rbp + 0x3c]
mov edx, 0x10000177
call qword [rax + 0x18]
mov edx, dword [rbp + 0x3c]
mov eax, esi
test edx, edx
setne al
mov dword [rdi + 0xc08], eax
mov edx, esi
mov dword [rbp + 0x44], edx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011ab2
mov rax, qword [rcx]
lea r8, [rbp + 0x44]
mov edx, 0x10000189
call qword [rax + 0x18]
mov edx, dword [rbp + 0x44]
mov eax, esi
test edx, edx
setne al
mov dword [rdi + 0xc0c], eax
mov edx, esi
mov dword [rbp + 8], edx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011adf
mov rax, qword [rcx]
lea r8, [rbp + 8]
mov edx, 0x10000146
call qword [rax + 0x18]
mov edx, dword [rbp + 8]
mov eax, esi
test edx, edx
setne al
mov dword [rdi + 0xc10], eax
mov edx, esi
mov dword [rbp + 0x48], edx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011b0c
mov rax, qword [rcx]
lea r8, [rbp + 0x48]
mov edx, 0x1000017a
call qword [rax + 0x18]
mov edx, dword [rbp + 0x48]
mov eax, esi
test edx, edx
setne al
mov dword [rdi + 0xc14], eax
mov edx, esi
mov dword [rbp], edx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011b39
mov rax, qword [rcx]
lea r8, [rbp]
mov edx, 0x100001ba
call qword [rax + 0x18]
mov edx, dword [rbp]
mov eax, esi
test edx, edx
setne al
mov dword [rdi + 0xc18], eax
mov eax, esi
mov dword [rbp + 0x30], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011b66
mov rax, qword [rcx]
lea r8, [rbp + 0x30]
mov edx, 0x100001a8
call qword [rax + 0x18]
mov eax, dword [rbp + 0x30]
mov dword [rdi + 0xc1c], eax
mov eax, esi
mov dword [rbp + 0x18], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011b8c
mov rax, qword [rcx]
lea r8, [rbp + 0x18]
mov edx, 0x1000382
call qword [rax + 0x18]
mov eax, dword [rbp + 0x18]
mov dword [rdi + 0xc20], eax
mov dword [rbp + 0x40], esi
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011bd5
mov rax, qword [rcx]
lea r8, [rbp + 0x40]
mov edx, 0x10000d2
call qword [rax + 0x18]
cmp dword [rbp + 0x40], 0
je 0x140011bd5
mov eax, esi
mov dword [rbp + 0x20], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011bf5
mov rax, qword [rcx]
lea r8, [rbp + 0x20]
mov edx, 0x10000db
call qword [rax + 0x18]
mov eax, dword [rbp + 0x20]
jmp 0x140011bf5
mov eax, esi
mov dword [rbp + 0x38], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011bf5
mov rax, qword [rcx]
lea r8, [rbp + 0x38]
mov edx, 0x10000da
call qword [rax + 0x18]
mov eax, dword [rbp + 0x38]
mov ecx, 0x50
test eax, eax
cmove eax, ecx
mov dword [rdi + 0xc24], eax
mov eax, esi
mov dword [rbp + 0x28], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011c25
mov rax, qword [rcx]
lea r8, [rbp + 0x28]
mov edx, 0x1000241
call qword [rax + 0x18]
mov eax, dword [rbp + 0x28]
mov dword [rdi + 0xc28], eax
mov dword [rbp - 4], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 4]
lea r8, [rbp - 4]
lea rdx, str.PalmCheckGroupPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov dword [rbp + 4], esi
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011d4e
mov rax, qword [rcx]
lea r8, [rbp + 4]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rbp + 4], 2
jne 0x140011d4e
cmp dword [rbp - 4], 0
je 0x140011d4e
lea r8, [rdi + 0x1040]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.UsePalmCheckGroupConfigForACM2
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
xor r9d, r9d
lea r8d, [r9 + 0x1b]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor r9d, r9d
lea r8d, [r9 + 0x1d]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor r9d, r9d
lea r8d, [r9 + 0x1e]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor r9d, r9d
lea r8d, [r9 + 0x1f]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor r9d, r9d
lea r8d, [r9 + 0x20]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
lea r8, [rdi + 0xbb8]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.PalmViolationToReleaseCursor
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rdi + 0xc08], 0
je 0x140011e31
mov eax, esi
mov dword [rbp + 0xc], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011d7b
mov rax, qword [rcx]
lea r8, [rbp + 0xc]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0xc]
bt eax, 0xb
jae 0x140011da2
lea r8, [rdi + 0xc40]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.NeedFingerStatePacket
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
jmp 0x140011e12
mov rcx, r13
call fcn.14000bf70
test al, al
je 0x140011e12
mov ebx, esi
mov dword [rbp + 0x14], ebx
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011dce
mov rax, qword [rcx]
lea r8, [rbp + 0x14]
mov edx, 0x10000104
call qword [rax + 0x18]
mov ebx, dword [rbp + 0x14]
sar ebx, 0x18
mov eax, esi
mov dword [rbp + 0x1c], eax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011df1
mov rax, qword [rcx]
lea r8, [rbp + 0x1c]
mov edx, 0x10000104
call qword [rax + 0x18]
mov eax, dword [rbp + 0x1c]
sar eax, 0x10
movzx ecx, al
cmp ebx, 7
jg 0x140011e0a
jne 0x140011e03
cmp ecx, 4
jge 0x140011e0a
mov eax, 1
jmp 0x140011e0c
mov eax, esi
mov dword [rdi + 0xc30], eax
lea r8, [rdi + 0xc30]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.NeedToFilterSecondaryFingerPos
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnh
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x50]
call fcn.1400c9590
mov dword [rbp + 0x24], esi
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x140011e74
mov rax, qword [rcx]
lea r8, [rbp + 0x24]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rbp + 0x24], 2
je 0x140011eba
mov rcx, r13
call fcn.140032940
test al, al
je 0x140011fd1
mov dword [rbp + 0xa0], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xa0]
lea r8, [rbp + 0x1a0]
lea rdx, str.ChiralMouse
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
cmp dword [rbp + 0x1a0], 0
je 0x140011fd1
mov r9d, 3
lea r8d, [r9 - 2]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov r14, rax
test rax, rax
je 0x140013e14
mov r9d, 3
lea r8d, [r9 - 1]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov rbx, rax
test rax, rax
je 0x140013e14
mov rcx, r13
call fcn.140032940
test al, al
je 0x140011f80
mov dword [rbp + 0xb0], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xb0]
lea r8, [rbp + 0x180]
lea rdx, str.ChiralMouse
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
lea rcx, [r14 + 0x238]
mov edx, dword [rbp + 0x180]
call fcn.1400c64f0
mov dword [rbp + 0xc0], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xc0]
lea r8, [rbp + 0x1b8]
lea rdx, str.ChiralMouse
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
lea rcx, [rbx + 0x238]
mov edx, dword [rbp + 0x1b8]
call fcn.1400c64f0
mov rcx, rdi
call fcn.140032730
test eax, eax
je 0x140011fd1
mov dword [rbp - 0x18], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x18]
lea r8, [rbp - 0x18]
lea rdx, str.VolumeControlPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x18], 0
je 0x140011fd1
mov r9d, 7
lea r8d, [r9 + 2]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov dword [rbp + 0x2c], esi
mov rcx, qword [rdi + 0x58]
movsd xmm6, qword [0x1401289a8]
test rcx, rcx
je 0x140012c62
mov rax, qword [rcx]
lea r8, [rbp + 0x2c]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rbp + 0x2c], 2
jne 0x140012c62
mov ecx, 0x1a0
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x14001203f
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 1
mov r9d, 1
lea r8, str.EdgeFinder
mov rdx, rdi
mov rcx, rax
call fcn.1400a87e0
mov rbx, rax
jmp 0x140012042
mov rbx, rsi
test rbx, rbx
je 0x140013e14
mov r8, rbx
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e14
mov rax, qword [rbx]
mov edx, 0x10
mov rcx, rbx
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e14
mov edx, 0x10
lea rcx, [rbp + 0x300]
call fcn.1400a8e20
mov dword [rsp + 0x38], esi
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], esi
mov r9d, 0x40
mov r8d, 0x1803
mov rdx, rax
mov rcx, rbx
call fcn.1400aa0b0
test eax, eax
je 0x140013e14
mov dword [rbx + 0x40], 0x10
mov ecx, 0x1a0
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140012108
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 1
mov r9d, 0xb
lea r8, str.BounceBack
mov rdx, rdi
mov rcx, rax
call fcn.1400a87e0
mov rbx, rax
jmp 0x14001210b
mov rbx, rsi
test rbx, rbx
je 0x140013e14
mov r8, rbx
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e14
mov rax, qword [rbx]
mov edx, 0x11
mov rcx, rbx
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e14
mov edx, 0x11
lea rcx, [rbp + 0x3c8]
call fcn.1400a8e20
mov dword [rsp + 0x38], esi
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 0xb
mov dword [rsp + 0x20], esi
mov r9d, 1
mov r8d, 0x1811
mov rdx, rax
mov rcx, rbx
call fcn.1400aa0b0
test eax, eax
je 0x140013e14
mov dword [rbx + 0x40], 0x11
mov dword [rbp + 0xd0], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xd0]
lea r8, [rbp + 0x190]
lea rdx, str.BackForwardFeature
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
cmp dword [rbp + 0x190], 0
je 0x1400121e5
mov r9d, 2
lea r8d, [r9 + 8]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor ecx, ecx
call fcn.1400dc0c0
cmp eax, 0xb
jl 0x140012210
mov r9d, 0xc
lea r8d, [r9 + 0x19]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
cmp dword [rdi + 0xc08], 0
je 0x1400122f8
mov r9d, 3
lea r8d, [r9 + 0xf]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov r9d, 2
lea r8d, [r9 + 0x11]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
cmp dword [rdi + 0xc08], 0
je 0x1400122f8
mov dword [rbp - 0xc], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0xc]
lea r8, [rbp - 0xc]
lea rdx, str.MultiFingerTapPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0xc], 0
je 0x1400122ad
mov r9d, 2
lea r8d, [r9 + 0x21]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
cmp dword [rdi + 0xc08], 0
je 0x1400122f8
mov dword [rbp - 0x20], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x20]
lea r8, [rbp - 0x20]
lea rdx, str.MagnifierPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x20], 0
je 0x1400122f8
xor r9d, r9d
lea r8d, [r9 + 0x1a]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
xor ecx, ecx
call fcn.1400dc0c0
cmp eax, 0xb
je 0x140012314
xor ecx, ecx
call fcn.1400dc0c0
cmp eax, 0xc
jne 0x1400124e2
mov r9d, 2
lea r8d, [r9 + 0x26]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov r9d, 2
lea r8d, [r9 + 0x27]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov r9d, 2
lea r8d, [r9 + 0x28]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov r9d, 2
lea r8d, [r9 + 0x24]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov r14, rax
test rax, rax
je 0x140013e14
mov dword [rbp + 0xdc], 0x100
lea rax, str.Right_Edge_Pull
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xdc]
lea r8, [rbp + 0x630]
lea rdx, str.ExtendedZoneKeyName
lea rcx, [rbp - 0x80]
call fcn.1400c9eb0
lea r8, [rbp + 0x630]
lea rdx, str.Right_Edge_Pull_Extended_Zone
mov rcx, rsi
nop dword [rax]
movzx eax, word [r8 + rcx*2]
cmp ax, word [rdx + rcx*2]
jne 0x140012493
movzx eax, word [r8 + rcx*2 + 2]
cmp ax, word [rdx + rcx*2 + 2]
jne 0x140012493
add rcx, 2
cmp rcx, 0x1e
jne 0x1400123e0
mov dword [rbp + 0x1a8], 2
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x1a8]
lea r8, [rbp + 0xe8]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0xe8]
mov r8d, 0x27
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov rbx, rax
test rax, rax
je 0x140013e14
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400a99e0
test al, 0x40
je 0x140012493
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a99e0
test al, 0x40
je 0x140012493
mov qword [rdi + 0xd18], r14
mov qword [rdi + 0xd20], rbx
mov qword [rdi + 0xd28], r14
mov r9d, 2
lea r8d, [r9 + 0x2a]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov rbx, rax
test rax, rax
je 0x140013e14
mov r9d, 2
lea r8d, [r9 + 0x29]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call fcn.140020850
xor ecx, ecx
call fcn.1400dc0c0
cmp eax, 0xb
jl 0x140012514
mov r9d, 0xc
lea r8d, [r9 + 0x21]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov qword [rdi + 0x348], rax
test rax, rax
je 0x140013e14
mov rbx, rsi
mov r14, rsi
mov r12, rsi
mov r13, rsi
cmp dword [rdi + 0xc10], ebx
jne 0x140012534
cmp dword [rdi + 0xc08], ebx
je 0x1400127ba
mov r9d, 3
mov r8d, r9d
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
lea r8, [rdi + 0xfac]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.FastFingerGestureSwitch
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x1028]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.IgnoreMFTapWhenCoasting
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0xfb0]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.DisplayTPEnableDisableMessageWhenWindowStart
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0xfc4]
mov dword [r8], 0x19
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.FingersMovedTogetherAngle
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, 3
lea r8d, [r9 + 1]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov dword [rbp - 0x10], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x10]
lea rdx, str.3FingerSliderPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x10], ebx
je 0x1400126cf
mov dword [rbp + 0x148], 3
lea rax, str.3FVertical_Scrolling
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x148]
lea r8, [rbp + 0xf0]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0xf0]
mov r8d, 5
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov r12, rax
test rax, rax
je 0x140013e14
mov dword [rbp + 0x80], 3
lea rax, str.3FHorizontal_Scrolling
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x80]
lea r8, [rbp + 0x100]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0x100]
mov r8d, 6
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov r13, rax
test rax, rax
je 0x140013e14
mov rcx, rdi
call fcn.14000bec0
test eax, eax
je 0x1400127ba
mov dword [rbp - 0x28], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x28]
lea r8, [rbp - 0x28]
lea rdx, str.4FingerSliderPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x28], ebx
je 0x1400127ba
mov dword [rbp + 0x168], 3
lea rax, str.4FVertical_Scrolling
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x168]
lea r8, [rbp + 0x108]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0x108]
mov r8d, 7
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov rbx, rax
test rax, rax
je 0x140013e14
mov dword [rbp + 0x178], 3
lea rax, str.4FHorizontal_Scrolling
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x178]
lea r8, [rbp + 0x118]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0x118]
mov r8d, 8
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov r14, rax
test rax, rax
je 0x140013e14
mov dword [rbp - 8], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 8]
lea r8, [rbp - 8]
lea rdx, str.ExtendedZonePresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 8], 0
je 0x140012839
mov dword [rbp + 0x188], esi
lea rax, str.Extended_Zone
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x188]
lea r8, [rbp + 0x120]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0x120]
mov r8d, 0x19
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov qword [rdi + 0x358], rax
test rax, rax
je 0x140013e14
mov rcx, qword [rdi + 0x358]
test rcx, rcx
je 0x140012923
xor r8d, r8d
xor edx, edx
call fcn.1400a99e0
test al, 0x40
je 0x140012923
test rbx, rbx
je 0x14001288d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1400a99e0
test al, 0x40
je 0x14001288d
mov qword [rdi + 0xc78], rbx
mov rax, qword [rdi + 0x358]
mov qword [rdi + 0xc80], rax
mov qword [rdi + 0xc88], rbx
test r14, r14
je 0x1400128bf
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a99e0
test al, 0x40
je 0x1400128bf
mov qword [rdi + 0xc98], r14
mov rax, qword [rdi + 0x358]
mov qword [rdi + 0xca0], rax
mov qword [rdi + 0xca8], r14
test r12, r12
je 0x1400128f1
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.1400a99e0
test al, 0x40
je 0x1400128f1
mov qword [rdi + 0xcb8], r12
mov rax, qword [rdi + 0x358]
mov qword [rdi + 0xcc0], rax
mov qword [rdi + 0xcc8], r12
test r13, r13
je 0x140012923
xor r8d, r8d
xor edx, edx
mov rcx, r13
call fcn.1400a99e0
test al, 0x40
je 0x140012923
mov qword [rdi + 0xcd8], r13
mov rax, qword [rdi + 0x358]
mov qword [rdi + 0xce0], rax
mov qword [rdi + 0xce8], r13
lea r9, [rbp + 0x194]
lea r8, str.Character_Recognition
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x140012966
mov r9d, dword [rbp + 0x194]
mov r8d, 0x14
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov dword [rbp - 0x24], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x24]
lea r8, [rbp - 0x24]
lea rdx, str.LeftSliderPresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x24], 0
je 0x1400129e2
mov dword [rbp + 0x130], 2
lea rax, str.Left_Slider_Zone
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x130]
lea r8, [rbp + 0x19c]
lea rdx, str.ActionType
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r9d, dword [rbp + 0x19c]
mov r8d, 0xb
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013e14
mov dword [rbp + 0x140], 0xa
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x140]
lea r8, [rbp + 0x1a4]
lea rdx, str.FingerMotionEpsilon
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x1a4]
mov dword [rdi + 0xba0], eax
mov edx, 0x10000113
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rdi + 0xba0]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xb98], edx
mov edx, 0x10000114
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rdi + 0xba0]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xb9c], edx
mov dword [rbp + 0x1b0], 0x1388
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x1b0]
lea r8, [rbp + 0x198]
lea rdx, str.SlowMotionTimeThresholdForMoving1000Mils
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x198]
mov dword [rdi + 0xbb0], eax
mov dword [rbp + 0x160], 0x12c
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x160]
lea r8, [rbp + 0x1c0]
lea rdx, str.MinStrokeQDistance
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x1c0]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
movsd qword [rdi + 0xb90], xmm0
mov dword [rbp + 0x88], 0xc8
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x88]
lea r8, [rbp + 0x98]
lea rdx, str.3FingerPressMaxMotion
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov edx, 0x10000113
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rbp + 0x98]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xba4], edx
mov edx, 0x10000114
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rbp + 0x98]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xba8], edx
mov dword [rbp + 0xa8], 0x1f4
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xa8]
lea r8, [rbp + 0xb8]
lea rdx, str.3FingerPressMinTime
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0xb8]
mov dword [rdi + 0xbac], eax
lea rax, [rbp + 0x1d0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov r9, rdi
lea r8, [0x140021df0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x98], rax
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
mov r8d, eax
lea r13, [rdi + 0x50]
mov rcx, qword [r13 + 8]
test rcx, rcx
jne 0x140012be2
lea rcx, [r13 + 0x20]
mov rax, qword [rcx]
mov edx, 0x1000343
call qword [rax + 0x30]
mov rcx, rdi
call fcn.14000f200
mov dword [rdi + 0xf9c], eax
lea r8, [rdi + 0xfa0]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.RestrictTo2FVerticalScroll
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0xfa4]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.CancelScrollAfter1FLeaves
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x368]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.SkipClickWhenGestureProcessing
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r12, [rdi + 0x788]
mov ecx, 0x300
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140012c97
mov dword [rsp + 0x20], 3
mov r9d, 2
lea r8, str.Plugin_Zone
mov rdx, rdi
mov rcx, rax
call fcn.1400552a0
jmp 0x140012c9a
mov rax, rsi
mov qword [rdi + 0x338], rax
test rax, rax
je 0x140013e14
mov r8, rax
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e14
mov rcx, qword [rdi + 0x338]
mov rax, qword [rcx]
mov edx, 0x15
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e14
mov edx, 0x15
lea rcx, [rbp + 0x378]
call fcn.1400a8e20
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], esi
mov r9d, 0x40003
mov r8d, 0x40
mov rdx, rax
mov rcx, qword [rdi + 0x338]
call fcn.140056c70
test eax, eax
je 0x140013e14
mov rax, qword [rdi + 0x338]
mov dword [rax + 0x40], 0x15
mov dword [rbp - 0x1c], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x1c]
lea r8, [rbp - 0x1c]
lea rdx, str.ExtendedPluginZonePresent
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
cmp dword [rbp - 0x1c], 0
je 0x140012e8e
mov ecx, 0x300
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140012d94
mov dword [rsp + 0x20], 3
mov r9d, 2
lea r8, str.Extended_Plugin_Zone
mov rdx, rdi
mov rcx, rax
call fcn.1400552a0
jmp 0x140012d97
mov rax, rsi
mov qword [rdi + 0x340], rax
test rax, rax
je 0x140013e14
mov r8, rax
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e14
mov rcx, qword [rdi + 0x340]
mov rax, qword [rcx]
mov edx, 0x15
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e14
mov edx, 0x15
lea rcx, [rbp + 0x3f0]
call fcn.1400a8e20
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], esi
mov r9d, 0x40003
mov r8d, 0x40
mov rdx, rax
mov rcx, qword [rdi + 0x340]
call fcn.140056c70
test eax, eax
je 0x140013e14
mov rax, qword [rdi + 0x340]
mov dword [rax + 0x40], 0x15
cmp qword [rdi + 0x338], 0
je 0x140012e8e
mov rcx, qword [rdi + 0x340]
test rcx, rcx
je 0x140012e8e
xor r8d, r8d
xor edx, edx
call fcn.1400a99e0
test al, 0x40
je 0x140012e8e
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0x338]
call fcn.1400a99e0
test al, 0x40
je 0x140012e8e
mov rcx, qword [rdi + 0x338]
mov qword [rdi + 0xcf8], rcx
mov rax, qword [rdi + 0x340]
mov qword [rdi + 0xd00], rax
mov qword [rdi + 0xd08], rcx
mov edx, 0x1000294
lea rcx, [rdi + 0x58]
call fcn.14000be70
shr eax, 8
and eax, 1
mov dword [rdi + 0x1024], eax
mov dword [rbp + 0xc8], 0xfa
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xc8]
lea r8, [rbp + 0xd8]
lea rdx, str.PalmOnPadMinTime
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0xd8]
mov dword [rdi + 0xbb4], eax
mov ecx, 0x1a0
call fcn.1400e4060
mov rbx, rax
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140012f46
mov ecx, 0x1c0
call fcn.1400e4060
mov qword [rbp + 0x1d0], rax
test rax, rax
je 0x140012f19
xor edx, edx
mov rcx, rax
call fcn.14009e7c0
jmp 0x140012f1c
mov rax, rsi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 4
lea r8, str.Tray_Icon_Zone
mov rdx, rdi
mov rcx, rbx
call fcn.1400a87e0
mov rbx, rax
jmp 0x140012f49
mov rbx, rsi
test rbx, rbx
je 0x140013e14
mov r8, rbx
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e14
mov rax, qword [rbx]
mov edx, 0x16
mov rcx, rbx
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e14
mov edx, 0x16
lea rcx, [rbp + 0x328]
call fcn.1400a8e20
mov dword [rsp + 0x38], esi
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8d, [r9 + 0x10]
mov rdx, rax
mov rcx, rbx
call fcn.1400aa0b0
test eax, eax
je 0x140013e14
mov dword [rbx + 0x40], 0x16
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnh
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x248]
call fcn.1400c9490
nop
lea r8, [rdi + 0x7c0]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea rdx, str.CancelCoastingMotionThreshold
lea rcx, [rbp + 0x250]
call fcn.1400dfc90
mov rcx, r13
call fcn.140032b70
test al, al
je 0x1400130e3
mov ecx, 0x1d0
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x140013059
mov dword [rsp + 0x20], 1
mov r9d, 2
lea r8, str.Stick_Scrolling_Zone
mov rdx, rdi
mov rcx, rax
call fcn.14006bf80
mov rbx, rax
jmp 0x14001305c
mov rbx, rsi
test rbx, rbx
je 0x140013e07
mov r8, rbx
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x140013e07
mov rax, qword [rbx]
mov edx, 0x17
mov rcx, rbx
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x140013e07
mov edx, 0x17
lea rcx, [rbp + 0x350]
call fcn.1400a8e20
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
mov r9d, 0x10
lea r8d, [r9 + 0x18]
mov rdx, rax
mov rcx, rbx
call fcn.14006c280
test eax, eax
je 0x140013e07
mov dword [rbx + 0x40], 0x17
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, str.SoftwareSynapticscPad
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x50]
call fcn.1400c9590
lea r8, [rdi + 0x7fc]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.Enabled
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov rcx, rdi
call fcn.140031a10
test eax, eax
je 0x1400131ad
mov rcx, qword [rdi + 0x7a0]
test rcx, rcx
jne 0x140013143
lea rcx, [rdi + 0x7a8]
mov rax, qword [rcx]
mov edx, dword [rbp + 0x888]
call qword [rax + 0x58]
test eax, eax
jne 0x140013e07
lea rdx, [rdi + 0x80]
mov rcx, qword [rdi + 0x7a0]
test rcx, rcx
jne 0x140013171
lea rcx, [rdi + 0x7a8]
mov rax, qword [rcx]
call qword [rax + 0x70]
test eax, eax
jne 0x140013e07
mov rcx, qword [rdi + 0x7a0]
test rcx, rcx
jne 0x140013192
lea rcx, [rdi + 0x7a8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x48]
test eax, eax
jne 0x140013e07
lea edx, [rax + 1]
mov rcx, rdi
call fcn.1400229b0
mov rcx, r13
call fcn.140032850
test al, al
je 0x140013255
mov dword [rbp + 0x34], esi
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8, [rbp + 0x34]
lea rdx, str.EnableDriftCorrectionControl
lea rcx, [rbp + 0x250]
call fcn.1400dfc90
cmp dword [rbp + 0x34], 0
je 0x140013255
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0xa8], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0xb0], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0xb8], rax
lea rax, [rbp + 0x1d8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov r9, rdi
lea r8, [0x1400204c0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0xa0], rax
mov rax, qword [r12]
test rax, rax
je 0x140013263
mov rdx, qword [rax]
jmp 0x140013266
mov rdx, rsi
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x210], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x220], xmm1
movdqu xmmword [rbp + 0x230], xmm0
lea rcx, [rbp + 0x210]
call fcn.140031c90
nop
mov ecx, 0x710
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x1400132ae
mov rcx, rax
call fcn.14006d850
jmp 0x1400132b1
mov rax, rsi
mov qword [rdi + 0x790], rax
test rax, rax
je 0x1400132ce
mov r8d, 1
mov rdx, rdi
mov rcx, rax
call fcn.14006dda0
mov rcx, rdi
call fcn.140032730
test eax, eax
je 0x140013366
lea r9, [rbp - 0x14]
lea r8, str.Slider0_Zone
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x140013322
mov r9d, dword [rbp - 0x14]
mov r8d, 0xc
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov qword [rdi + 0xd38], rax
test rax, rax
je 0x140013dfa
lea r9, [rbp - 0x14]
lea r8, str.Slider1_Zone
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x140013366
mov r9d, dword [rbp - 0x14]
mov r8d, 0xd
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov qword [rdi + 0xd40], rax
test rax, rax
je 0x140013dfa
mov rcx, r13
call fcn.140032530
test al, al
jne 0x14001338a
mov rcx, rdi
call fcn.140010f90
test eax, eax
jne 0x14001338a
cmp dword [rdi + 0xd7c], eax
je 0x140013a28
mov qword [rsp + 0x20], rsi
lea r9, [rdi + 0x7d0]
lea r8, [rdi + 0x7d0]
lea rdx, str.LEDPatternSupport
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x7d4]
mov dword [r8], 0x4b
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LedPatternUpRelease
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x7d8]
mov dword [r8], 0x4d
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LedPatternDownRelease
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x784]
mov dword [r8], 0x19
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LEDTurnOnTimeThreshold
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x374]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LEDPreLowPowerPattern
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x378]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LEDAfterLowPowerPattern
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x36c]
mov dword [r8], 0x2710
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LEDNoOperationTimeout
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x370]
mov dword [r8], 0x1388
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.LEDResumeHeartbeatingTimeInterval
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov dword [rbp + 0x890], 0x200
lea r8, [rdi + 0x37c]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x890]
lea rdx, str.LEDHeartbeatingSetting
lea rcx, [rbp - 0x80]
call fcn.1400c9eb0
lea r8, [rdi + 0x7dc]
mov dword [r8], esi
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.ButtonLEDBrightnessZoneSetting
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov dword [rbp + 0x890], 0x200
lea r8, [rdi + 0xd88]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x890]
lea rdx, str.CustomizedScancodeMapping
lea rcx, [rbp - 0x80]
call fcn.1400c9eb0
mov dword [rbp + 0x890], 0x200
lea r8, [rdi + 0x57c]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x890]
lea rdx, str.LEDFadingOutSetting
lea rcx, [rbp - 0x80]
call fcn.1400c9eb0
cmp dword [rdi + 0x7d0], 2
jne 0x140013582
mov rcx, rdi
call fcn.140026920
xor edx, edx
mov rcx, rdi
call fcn.1400245e0
mov rcx, rdi
call fcn.140010f90
test eax, eax
je 0x1400135a0
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x3f]
mov rcx, rdi
call fcn.14001fd10
cmp dword [rdi + 0xd7c], 0
je 0x1400135bb
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x3f]
mov rcx, rdi
call fcn.14001fd10
lea r9, [rbp + 0x898]
lea r8, str.Slider0_Zone
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x140013605
mov r9d, dword [rbp + 0x898]
mov r8d, 0xc
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov qword [rdi + 0xd38], rax
lea r9, [rbp + 0x898]
lea r8, str.Extended_Slider0_Zone
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x1400136a1
mov r9d, dword [rbp + 0x898]
mov r8d, 0x24
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov rbx, rax
test rax, rax
je 0x140013dfa
cmp qword [rdi + 0xd38], 0
je 0x1400136a1
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400a99e0
test al, 0x40
je 0x1400136a1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0xd38]
call fcn.1400a99e0
test al, 0x40
je 0x1400136a1
mov rax, qword [rdi + 0xd38]
mov qword [rdi + 0xc58], rax
mov qword [rdi + 0xc60], rbx
mov dword [rdi + 0xc70], 1
mov qword [rdi + 0xc68], rax
lea r9, [rbp + 0x898]
lea r8, str.Slider1_Zone
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
mov rcx, rdi
call fcn.140025090
test eax, eax
je 0x1400136eb
mov r9d, dword [rbp + 0x898]
mov r8d, 0xd
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
mov qword [rdi + 0xd40], rax
test rax, rax
je 0x140013dfa
lea rbx, [rdi + 0x820]
mov qword [rsp + 0x20], rsi
mov r9, rbx
mov r8, rbx
lea rdx, str.IlluminationEnabled
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x838]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.IlluminationScaleParam
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov rcx, rdi
call fcn.14001f850
mov qword [rsp + 0x20], rsi
lea r9, [rdi + 0x828]
lea r8, [rdi + 0x828]
lea rdx, str.IlluminationInactiveState
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov qword [rsp + 0x20], rsi
lea r9, [rdi + 0x82c]
lea r8, [rdi + 0x82c]
lea rdx, str.IlluminationActiveState
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov r8d, dword [rdi + 0x82c]
mov edx, 1
mov rcx, rdi
call fcn.14001f930
mov r8d, dword [rdi + 0x828]
xor edx, edx
mov rcx, rdi
call fcn.14001f930
mov word [rbp + 0x420], si
xor edx, edx
lea rcx, [rbp + 0x1e0]
call fcn.1400c9420
nop
xor r9d, r9d
mov r8, qword [rbp + 0x218]
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
lea rcx, [rbp + 0x420]
call fcn.140006b20
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, [rbp + 0x420]
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x1e0]
call fcn.1400c9590
test eax, eax
jne 0x14001383d
xor r9d, r9d
mov r8, qword [rbp + 0x230]
lea rdx, str.SoftwareSynapticsSynTPEnhZoneConfig
lea rcx, [rbp + 0x420]
call fcn.140006b20
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, [rbp + 0x420]
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x1e0]
call fcn.1400c9590
mov word [rbp + 0x280], si
mov r14d, esi
lea rcx, [rbp + 0x1e8]
call fcn.1400e0320
mov r8d, 0x40
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x1e8]
call fcn.1400dfaf0
test eax, eax
je 0x140013a00
nop dword [rax]
nop dword [rax + rax]
cmp word [rbp + 0x280], 0
je 0x1400139c6
lea rdx, str.LED_Zone
lea rcx, [rbp + 0x280]
call fcn.1400e62b4
test rax, rax
je 0x1400139c6
mov ecx, 0x268
call fcn.1400e4060
mov qword [rbp - 0x30], rax
test rax, rax
je 0x1400138e2
mov dword [rsp + 0x20], 2
mov r9d, 9
lea r8, [rbp + 0x280]
mov rdx, rdi
mov rcx, rax
call fcn.14000e260
mov rbx, rax
jmp 0x1400138e5
mov rbx, rsi
test rbx, rbx
je 0x1400139e8
mov r8, rbx
xor edx, edx
lea rcx, [rdi + 8]
call fcn.140033290
test rax, rax
je 0x1400139e8
mov rax, qword [rbx]
mov edx, 0x18
mov rcx, rbx
call qword [rax + LoadRegTypeLib]
test eax, eax
je 0x1400139e8
mov edx, 0x18
lea rcx, [rbp + 0x3a0]
call fcn.1400a8e20
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x90], rcx
mov dword [rsp + 0x88], 9
mov dword [rsp + 0x80], esi
mov dword [rsp + 0x78], esi
mov dword [rsp + 0x70], esi
mov ecx, dword [rdi + 0x82c]
mov dword [rsp + 0x68], ecx
mov ecx, dword [rdi + 0x828]
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], 0xfff
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0xfff
mov r9d, 1
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.14000ebb0
test eax, eax
je 0x1400139e8
mov dword [rbx + 0x254], r14d
mov dword [rbx + 0x40], 0x18
inc r14d
mov r8d, 0x40
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x1e8]
call fcn.1400dfaf0
test eax, eax
je 0x1400139f9
jmp 0x140013880
lea rcx, [rbp + 0x1e0]
call fcn.1400c9530
jmp 0x140013dfa
lea rbx, [rdi + 0x820]
cmp qword [rdi + 0x790], 0
jne 0x140013a18
cmp dword [rbx], 0
je 0x140013a18
mov rcx, rdi
call fcn.14001f720
nop
lea rcx, [rbp + 0x1e0]
call fcn.1400c9530
lea r13, [rdi + 0x50]
mov rcx, rdi
call fcn.140010f90
test eax, eax
je 0x140013a6c
xor r9d, r9d
lea r8d, [r9 + 0x21]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
xor r9d, r9d
lea r8d, [r9 + 0x22]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov rcx, r13
call fcn.140032c20
test al, al
je 0x140013b24
cmp dword [rdi + 0xc08], 0
je 0x140013b24
mov r9d, 3
lea r8d, [r9 + 0x2b]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov r9d, 3
lea r8d, [r9 + 0x2c]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov r9d, 3
lea r8d, [r9 + 0x2d]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov r9d, 0xd
lea r8d, [r9 + 0x24]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov r9d, 0xd
lea r8d, [r9 + 0x25]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.14001c9c0
test rax, rax
je 0x140013dfa
mov rcx, r13
call fcn.14000bf70
test al, al
jne 0x140013b40
mov rcx, r13
call fcn.140032c20
test al, al
je 0x140013d7d
cmp dword [rdi + 0xc10], 0
jne 0x140013b56
cmp dword [rdi + 0xc08], 0
je 0x140013d7d
lea r8, [rdi + 0xfac]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.FastFingerGestureSwitch
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0x1028]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.IgnoreMFTapWhenCoasting
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0xfc4]
mov dword [r8], 0x19
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.FingersMovedTogetherAngle
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov dword [rbp + 0xe0], 0xa
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xe0]
lea r8, [rbp + 0xec]
lea rdx, str.FingerMotionEpsilon
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0xec]
mov dword [rdi + 0xba0], eax
mov edx, 0x10000113
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rdi + 0xba0]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xb98], edx
mov edx, 0x10000114
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rdi + 0xba0]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xb9c], edx
mov dword [rbp + 0xf8], 0x12c
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0xf8]
lea r8, [rbp + 0x104]
lea rdx, str.MinStrokeQDistance
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x104]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
movsd qword [rdi + 0xb90], xmm0
mov dword [rbp + 0x110], 0xc8
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x110]
lea r8, [rbp + 0x11c]
lea rdx, str.3FingerPressMaxMotion
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov edx, 0x10000113
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov r8d, eax
imul r8d, dword [rbp + 0x11c]
mov eax, 0x10624dd3
mul r8d
shr edx, 6
mov dword [rdi + 0xba4], edx
mov edx, 0x10000114
lea rcx, [rdi + 0x58]
call fcn.14000be70
mov ecx, eax
imul ecx, dword [rbp + 0x11c]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [rdi + 0xba8], edx
mov dword [rbp + 0x128], 0x1f4
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x128]
lea r8, [rbp + 0x138]
lea rdx, str.3FingerPressMinTime
lea rcx, [rbp + 0x58]
call fcn.1400dfc90
mov eax, dword [rbp + 0x138]
mov dword [rdi + 0xbac], eax
lea r8, [rdi + 0xfa0]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.RestrictTo2FVerticalScroll
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
lea r8, [rdi + 0xfa4]
mov qword [rsp + 0x20], rsi
mov r9, r8
lea rdx, str.CancelScrollAfter1FLeaves
lea rcx, [rbp - 0x80]
call fcn.1400c9db0
mov rcx, rdi
call fcn.140029680
test eax, eax
je 0x140013dfa
mov ecx, 0x28
call fcn.1400e4060
mov qword [rbp + 0x890], rax
test rax, rax
je 0x140013dad
mov rdx, rdi
mov rcx, rax
call fcn.1400d74b0
mov rsi, rax
mov qword [rdi + 0x1058], rsi
mov rdi, qword [r13 + 8]
test rdi, rdi
jne 0x140013dc1
lea rdi, [r13 + 0x20]
mov rbx, qword [rdi]
call fcn.1400ddbc0
mov r8d, eax
mov edx, 0x10002ef
mov rcx, rdi
call qword [rbx + 0x30]
mov rcx, qword [r13 + 8]
test rcx, rcx
jne 0x140013de4
lea rcx, [r13 + 0x20]
mov rax, qword [rcx]
mov edx, 0x10002e6
mov r8d, 1
call qword [rax + 0x30]
mov esi, 1
lea rcx, [rbp + 0x210]
call fcn.140030e50
nop
lea rcx, [rbp + 0x248]
call fcn.1400c9530
nop
lea rcx, [rbp + 0x50]
call fcn.1400c9530
nop
lea rax, vtable.CSynList_class_CRegistryKey_.0
mov qword [rbp - 0x80], rax
lea rcx, [rbp - 0x80]
call fcn.140004c50
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, esi
mov rbx, qword [rsp + 0x9a0]
movaps xmm6, xmmword [rsp + 0x950]
add rsp, 0x960
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret