Function at 0x1400ef870
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x420]
sub rsp, 0x520
mov qword [rbp + 0x1b0], 0xfffffffffffffffe
mov qword [rsp + 0x568], rbx
mov edi, edx
mov rbx, rcx
xor r15d, r15d
mov dword [rbp + 0x460], r15d
mov qword [rcx + 0x468], r15
xor r8d, r8d
add rcx, 0x430
call fcn.1400087a0
cmp eax, 0x80004005
jne 0x1400ef8fb
mov r8d, edi
lea rdx, str.Unable_to_open_device__d_n
lea rcx, [rbp + 0x220]
call fcn.14010d300
lea r8, [0x140150af4]
lea rdx, [rbp + 0x220]
mov rcx, rbx
call fcn.1400f1eb0
jmp 0x1400f1925
lea rdi, [rbx + 0x438]
mov esi, r15d
mov dword [rbp + 0x94], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400ef92c
mov rax, qword [rcx]
lea r8, [rbp + 0x94]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov esi, dword [rbp + 0x94]
mov edx, r15d
mov dword [rsp + 0x3c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400ef94f
mov rax, qword [rcx]
lea r8, [rsp + 0x3c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0x3c]
mov r8d, esi
mov rcx, rbx
call fcn.1400f3ba0
mov r8, rax
lea rdx, str.Device_Type_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x24], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400ef98c
mov rax, qword [rcx]
lea r8, [rbp + 0x24]
mov edx, 0x10000171
call qword [rax + 0x18]
mov eax, dword [rbp + 0x24]
lea rcx, str.Disabled
lea r8, str.Enabled
test eax, eax
cmovne r8, rcx
lea rdx, str.Device_State_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rsp + 0x44], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400ef9d3
mov rax, qword [rcx]
lea r8, [rsp + 0x44]
mov edx, 0x1000323
call qword [rax + 0x18]
mov esi, dword [rsp + 0x44]
lea rax, [0x140171df0]
lea r8, [0x140171df8]
cmp esi, 0xffffffff
cmove r8, rax
lea rdx, str.Master_Device_t
mov rcx, rbx
call fcn.1400f1eb0
mov r8d, 0x10000602
lea rdx, [rbp + 0x128]
mov rcx, rdi
call fcn.140042410
mov rcx, qword [rax]
test rcx, rcx
je 0x1400efa19
mov rcx, qword [rcx]
jmp 0x1400efa1c
mov rcx, r15
lea rdx, [rbp + 0x220]
sub rdx, rcx
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400efa30
mov rcx, qword [rbp + 0x128]
test rcx, rcx
je 0x1400efa51
call fcn.1400440d0
lea rcx, [rbp + 0x220]
or r12, 0xffffffffffffffff
mov rax, r12
nop
inc rax
cmp word [rcx + rax*2], r15w
jne 0x1400efa60
lea r13, [0x140153348]
lea r8, [rbp + 0x220]
test rax, rax
cmove r8, r13
lea rdx, str.Plug_and_Play_ID_t
mov rcx, rbx
call fcn.1400f1eb0
lea rdx, [rbp + 0x1b8]
mov rcx, rbx
call fcn.1400f25a0
nop
cmp qword [rax + 0x18], 8
jb 0x1400efaa8
mov rax, qword [rax]
mov r8, rax
lea rdx, str.Board_Number_t
mov rcx, rbx
call fcn.1400f1eb0
nop
cmp qword [rbp + 0x1d0], 8
jb 0x1400efad1
mov rcx, qword [rbp + 0x1b8]
call fcn.14010a7dc
mov dword [rbp + 0xcc], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400efaf9
mov rax, qword [rcx]
lea r8, [rbp + 0xcc]
mov edx, 0x10000cd
call qword [rax + 0x18]
mov r15d, dword [rbp + 0xcc]
cmp esi, 0xffffffff
je 0x1400efc47
lea rdx, str.SynCom.PointingDevice
lea rcx, [rbp + 0xd8]
call fcn.140007930
lea rax, vtable.CDummySynDevice.0
mov qword [rbp + 0xf0], rax
xor r15d, r15d
mov dword [rbp + 0xf8], r15d
mov qword [rbp + 0xe8], r15
lea rax, vtable.SynDeviceEx.0
mov qword [rbp + 0xd0], rax
lea rax, vtable.SynDeviceEx.1.0
mov qword [rbp + 0xe0], rax
mov dword [rbp + 0x100], r12d
mov dword [rbp + 0x104], r15d
lea rcx, [rbp + 0xf0]
mov rax, qword [rbp + 0xd8]
test rax, rax
cmovne rcx, rax
mov rax, qword [rcx]
mov edx, esi
call qword [rax + 0x78]
test eax, eax
jne 0x1400efbb0
lea rcx, [rbp + 0xf0]
mov rax, qword [rbp + 0xd8]
test rax, rax
cmovne rcx, rax
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x88]
mov ecx, dword [rbp + 0x100]
test eax, eax
cmove ecx, esi
mov dword [rbp + 0x100], ecx
mov dword [rsp + 0x4c], r15d
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x1400efbdd
mov rax, qword [rcx]
lea r8, [rsp + 0x4c]
mov edx, 0x10000cd
call qword [rax + 0x18]
mov rcx, qword [rbp + 0xd8]
mov r15d, dword [rsp + 0x4c]
lea rax, vtable.SynDevice.0
mov qword [rbp + 0xd0], rax
lea rax, vtable.SynDevice.1.0
mov qword [rbp + 0xe0], rax
mov rdx, qword [rbp + 0xe8]
test rdx, rdx
je 0x1400efc20
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x10]
mov qword [rbp + 0xe8], 0
mov rcx, qword [rbp + 0xd8]
lea rax, vtable.CDummySynDevice.0
mov qword [rbp + 0xf0], rax
lea rax, vtable.SynWrapEvents_class_SynDevice__struct_ISynDevice__struct__ISynDeviceEvents_.0
mov qword [rbp + 0xd0], rax
test rcx, rcx
je 0x1400efc47
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r12d, r15d
and r12d, 0xffff0000
cmp r12d, 0x200000
jne 0x1400efc98
lea rdx, [rbp + 0x118]
mov rcx, rbx
call fcn.1400f26a0
nop
mov r8, qword [rax]
lea rdx, str.ProductID_Version_t
mov rcx, rbx
call fcn.1400f1eb0
nop
mov rdx, qword [rbp + 0x118]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400efc98
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dword [rbp + 0x478], 6
mov rcx, qword [rbx + 0x438]
test rcx, rcx
jne 0x1400efcb5
lea rcx, [rbx + 0x450]
mov rax, qword [rcx]
lea r8, [rbp + 0x478]
mov edx, 0x10000e3
call qword [rax + 0x18]
mov r14d, dword [rbp + 0x478]
and r14d, 0xfff
mov dword [rbp + 0x478], 7
mov rcx, qword [rbx + 0x438]
test rcx, rcx
jne 0x1400efcf2
lea rcx, [rbx + 0x450]
mov rax, qword [rcx]
lea r8, [rbp + 0x478]
mov edx, 0x10000e3
call qword [rax + 0x18]
mov ecx, dword [rbp + 0x478]
movzx r9d, cl
shl r9d, 0xc
mov eax, ecx
and eax, 0xf00
or r9d, eax
shl r9d, 4
sar ecx, 0x10
and ecx, 0xfff
or r9d, ecx
test r14d, r14d
jne 0x1400efd3f
test r9d, r9d
jne 0x1400efd3f
lea rsi, str.Unserialized
jmp 0x1400efd56
lea rsi, [rbx + 0x30]
mov r8d, r14d
lea rdx, str.0x_03X_06X
mov rcx, rsi
call qword [sym.imp.USER32.dll_wsprintfW]
mov r8, rsi
lea rdx, str.Serial_Number_t
mov rcx, rbx
call fcn.1400f1eb0
lea rdx, [rbp + 0x1d8]
mov rcx, rbx
call fcn.1400f23f0
nop
cmp qword [rax + 0x18], 8
jb 0x1400efd82
mov rax, qword [rax]
mov r8, rax
lea rdx, str.OEM________t
mov rcx, rbx
call fcn.1400f1eb0
nop
cmp qword [rbp + 0x1f0], 8
jb 0x1400efdab
mov rcx, qword [rbp + 0x1d8]
call fcn.14010a7dc
mov r8d, 0x10000603
lea rdx, [rbp + 0x120]
mov rcx, rdi
call fcn.140042410
mov rcx, qword [rax]
test rcx, rcx
je 0x1400efdcb
mov rcx, qword [rcx]
lea rdx, [rbp + 0x220]
sub rdx, rcx
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400efde0
mov rcx, qword [rbp + 0x120]
test rcx, rcx
je 0x1400efe01
call fcn.1400440d0
lea rcx, [rbp + 0x220]
or rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400efe10
lea r8, [rbp + 0x220]
test rax, rax
cmove r8, r13
lea rdx, str.Config_Key_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r15d
mov rcx, rbx
call fcn.1400f3e60
mov r8, rax
lea rdx, str.Port_t
mov rcx, rbx
call fcn.1400f1eb0
cmp r12d, 0x20000
jne 0x1400efe9c
xor r12d, r12d
mov edx, r12d
mov dword [rbp + 0x2c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400efe80
mov rax, qword [rcx]
lea r8, [rbp + 0x2c]
mov edx, 0x10000d6
call qword [rax + 0x18]
mov edx, dword [rbp + 0x2c]
mov rcx, rbx
call fcn.1400f3f40
mov r8, rax
lea rdx, str.Keyboard_controller_t
mov rcx, rbx
call fcn.1400f1eb0
jmp 0x1400efe9f
xor r12d, r12d
mov edx, r12d
mov dword [rsp + 0x54], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400efec2
mov rax, qword [rcx]
lea r8, [rsp + 0x54]
mov edx, 0x10000135
call qword [rax + 0x18]
mov edx, dword [rsp + 0x54]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Left_Button_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp + 0xa0], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400eff05
mov rax, qword [rcx]
lea r8, [rbp + 0xa0]
mov edx, 0x10000136
call qword [rax + 0x18]
mov edx, dword [rbp + 0xa0]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Right_Button_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rsp + 0x5c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400eff42
mov rax, qword [rcx]
lea r8, [rsp + 0x5c]
mov edx, 0x10000138
call qword [rax + 0x18]
mov edx, dword [rsp + 0x5c]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Middle_Button_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp + 0x34], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400eff7c
mov rax, qword [rcx]
lea r8, [rbp + 0x34]
mov edx, 0x1000015b
call qword [rax + 0x18]
mov edx, dword [rbp + 0x34]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Fourth_Button_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rsp + 0x64], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400effb9
mov rax, qword [rcx]
lea r8, [rsp + 0x64]
mov edx, 0x1000015c
call qword [rax + 0x18]
mov edx, dword [rsp + 0x64]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Fifth_Button_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp + 0x9c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1925
mov rax, qword [rcx]
lea r8, [rbp + 0x9c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov eax, dword [rbp + 0x9c]
cmp eax, 9
ja 0x1400f1925
mov ecx, 0x324
bt ecx, eax
jae 0x1400f1925
mov edx, r12d
mov dword [rsp + 0x6c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0038
mov rax, qword [rcx]
lea r8, [rsp + 0x6c]
mov edx, 0x10000104
call qword [rax + 0x18]
mov edx, dword [rsp + 0x6c]
mov r8d, r15d
mov rcx, rbx
call fcn.1400f4070
mov r8, rax
lea rdx, str.Firmware_Revision_t
mov rcx, rbx
call fcn.1400f1eb0
mov r15d, r12d
mov dword [rbp + 0x3c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0077
mov rax, qword [rcx]
lea r8, [rbp + 0x3c]
mov edx, 0x1000014f
call qword [rax + 0x18]
mov r15d, dword [rbp + 0x3c]
mov r14d, r12d
mov dword [rsp + 0x74], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f009c
mov rax, qword [rcx]
lea r8, [rsp + 0x74]
mov edx, 0x1000014e
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x74]
mov esi, r12d
mov dword [rbp + 0xb8], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f00c6
mov rax, qword [rcx]
lea r8, [rbp + 0xb8]
mov edx, 0x1000014d
call qword [rax + 0x18]
mov esi, dword [rbp + 0xb8]
mov edx, r12d
mov dword [rsp + 0x7c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f00e9
mov rax, qword [rcx]
lea r8, [rsp + 0x7c]
mov edx, 0x1000010e
call qword [rax + 0x18]
mov edx, dword [rsp + 0x7c]
mov dword [rsp + 0x20], r15d
mov r9d, r14d
mov r8d, esi
mov rcx, rbx
call fcn.1400f4160
mov r8, rax
lea rdx, str.Gestures_Enabled_t
mov rcx, rbx
call fcn.1400f1eb0
lea rsi, [0x1401721d8]
lea r14, [rbx + 0x430]
cmp dword [r14 + 0x30], 0xffffffff
je 0x1400f074b
mov edx, r12d
mov dword [rbp + 0x44], edx
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1400f0148
mov rax, qword [rcx]
lea r8, [rbp + 0x44]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rbp + 0x44]
mov eax, r12d
cmp edx, 2
sete al
test eax, eax
je 0x1400f074b
mov eax, r12d
mov dword [rbp - 0x7c], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0179
mov rax, qword [rcx]
lea r8, [rbp - 0x7c]
mov edx, 0x10000146
call qword [rax + 0x18]
mov eax, dword [rbp - 0x7c]
lea r15, [0x140171df8]
mov r8, r15
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.MultiFinger_Gestures_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0xa8], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f01c8
mov rax, qword [rcx]
lea r8, [rbp + 0xa8]
mov edx, 0x10000177
call qword [rax + 0x18]
mov eax, dword [rbp + 0xa8]
mov r8, r15
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.MultiFinger_Report_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x74], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0207
mov rax, qword [rcx]
lea r8, [rbp - 0x74]
mov edx, 0x1000379
call qword [rax + 0x18]
mov eax, dword [rbp - 0x74]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Max_Number_Finger_Report_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0x4c], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f024d
mov rax, qword [rcx]
lea r8, [rbp + 0x4c]
mov edx, 0x1000017a
call qword [rax + 0x18]
mov eax, dword [rbp + 0x4c]
mov r8, r15
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.MultiFinger_PacketGroups_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x6c], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f028c
mov rax, qword [rcx]
lea r8, [rbp - 0x6c]
mov edx, 0x10000189
call qword [rax + 0x18]
mov eax, dword [rbp - 0x6c]
mov r8, r15
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.Cover_Gesture_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0xc8], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f02d4
mov rax, qword [rcx]
lea r8, [rbp + 0xc8]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0xc8]
bt eax, 0x11
mov r8, r15
lea rax, [0x140171df0]
cmovb r8, rax
lea rdx, str.Supports_W_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x64], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0315
mov rax, qword [rcx]
lea r8, [rbp - 0x64]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp - 0x64]
bt eax, 0xb
mov r8, r15
lea rax, [0x140171df0]
cmovb r8, rax
lea rdx, str.Imaging_Sensor_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0x54], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0356
mov rax, qword [rcx]
lea r8, [rbp + 0x54]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x54]
bt eax, 9
mov r8, r15
lea rax, [0x140171df0]
cmovb r8, rax
lea rdx, str.Report_V_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x5c], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0397
mov rax, qword [rcx]
lea r8, [rbp - 0x5c]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp - 0x5c]
bt eax, 0xd
lea r8, [0x140171df0]
cmovb r8, r15
lea rdx, str.1:1_FW_Filter_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0xb0], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f03de
mov rax, qword [rcx]
lea r8, [rbp + 0xb0]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0xb0]
bt eax, 0xc
mov r8, r15
lea rax, [0x140171df0]
cmovb r8, rax
lea rdx, str.RMI_Backdoor_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x54], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f041f
mov rax, qword [rcx]
lea r8, [rbp - 0x54]
mov edx, 0x10000150
call qword [rax + 0x18]
mov eax, dword [rbp - 0x54]
lea rcx, [0x1401721cc]
mov r8, rsi
test eax, eax
cmovne r8, rcx
lea rdx, str.Taps_Zones_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp + 0x5c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f045e
mov rax, qword [rcx]
lea r8, [rbp + 0x5c]
mov edx, 0x10000131
call qword [rax + 0x18]
mov edx, dword [rbp + 0x5c]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Top_Left_Corner_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp - 0x4c], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0498
mov rax, qword [rcx]
lea r8, [rbp - 0x4c]
mov edx, 0x10000132
call qword [rax + 0x18]
mov edx, dword [rbp - 0x4c]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Top_Right_Corner_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp + 0xc0], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f04db
mov rax, qword [rcx]
lea r8, [rbp + 0xc0]
mov edx, 0x10000134
call qword [rax + 0x18]
mov edx, dword [rbp + 0xc0]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Bottom_Left_Corner_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r12d
mov dword [rbp - 0x44], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0515
mov rax, qword [rcx]
lea r8, [rbp - 0x44]
mov edx, 0x10000133
call qword [rax + 0x18]
mov edx, dword [rbp - 0x44]
mov rcx, rbx
call fcn.1400f4da0
mov r8, rax
lea rdx, str.Bottom_Right_Corner_Action_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp + 0x64], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0559
mov rax, qword [rcx]
lea r8, [rbp + 0x64]
mov edx, 0x10000153
call qword [rax + 0x18]
cmp dword [rbp + 0x64], 0
je 0x1400f0559
lea r8, str.Always
jmp 0x1400f058d
mov eax, r12d
mov dword [rbp - 0x3c], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0579
mov rax, qword [rcx]
lea r8, [rbp - 0x3c]
mov edx, 0x10000152
call qword [rax + 0x18]
mov eax, dword [rbp - 0x3c]
lea rcx, str.When_Dragging
lea r8, str.None
test eax, eax
cmovne r8, rcx
lea rdx, str.Edge_Motion_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0x98], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f05c5
mov rax, qword [rcx]
lea r8, [rbp + 0x98]
mov edx, 0x10000111
call qword [rax + 0x18]
mov eax, dword [rbp + 0x98]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Edge_Motion_Speed_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp - 0x34], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f060b
mov rax, qword [rcx]
lea r8, [rbp - 0x34]
mov edx, 0x10000159
call qword [rax + 0x18]
mov eax, dword [rbp - 0x34]
mov r8, r15
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.Pressure_Edge_Motion_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rsp + 0x30], r12d
mov rcx, qword [r14 + 8]
test rcx, rcx
jne 0x1400f063c
lea rcx, [r14 + 0x20]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x100015e
call qword [rax + 0x18]
test eax, eax
jne 0x1400f065e
mov edx, dword [rsp + 0x30]
mov rcx, rbx
call fcn.1400f4950
jmp 0x1400f0661
mov rax, r13
mov r8, rax
lea rdx, str.Slow_Motion_Key_t
mov rcx, rbx
call fcn.1400f1eb0
mov rcx, qword [r14 + 8]
test rcx, rcx
jne 0x1400f0680
lea rcx, [r14 + 0x20]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x100015f
call qword [rax + 0x18]
test eax, eax
jne 0x1400f06a2
mov edx, dword [rsp + 0x30]
mov rcx, rbx
call fcn.1400f4950
jmp 0x1400f06a5
mov rax, r13
mov r8, rax
lea rdx, str.Constrained_Motion_Key_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp + 0x6c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f06ed
mov rax, qword [rcx]
lea r8, [rbp + 0x6c]
mov edx, 0x1000131
call qword [rax + 0x18]
mov ecx, dword [rbp + 0x6c]
test ecx, ecx
je 0x1400f06ed
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
jmp 0x1400f06f0
mov rax, r13
mov r8, rax
lea rdx, str.Slow_Cursor_Speed_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp - 0x2c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0739
mov rax, qword [rcx]
lea r8, [rbp - 0x2c]
mov edx, 0x100013b
call qword [rax + 0x18]
mov ecx, dword [rbp - 0x2c]
test ecx, ecx
je 0x1400f0739
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
mov r13, rax
mov r8, r13
lea rdx, str.Tapping_Speed_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0xa4], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0774
mov rax, qword [rcx]
lea r8, [rbp + 0xa4]
mov edx, 0x10000128
call qword [rax + 0x18]
mov eax, dword [rbp + 0xa4]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Touch_Threshold_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp - 0x24], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f07d1
mov rax, qword [rcx]
lea r8, [rbp - 0x24]
mov edx, 0x1000132
call qword [rax + 0x18]
mov ecx, dword [rbp - 0x24]
test ecx, ecx
je 0x1400f07d1
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
mov rsi, rax
mov r8, rsi
lea rdx, str.PalmCheck_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r12d
mov dword [rbp + 0x74], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0803
mov rax, qword [rcx]
lea r8, [rbp + 0x74]
mov edx, 0x10000127
call qword [rax + 0x18]
mov eax, dword [rbp + 0x74]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Maximum_Z_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r12d
mov dword [rbp - 0x1c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f084a
mov rax, qword [rcx]
lea r8, [rbp - 0x1c]
mov edx, 0x10000114
call qword [rax + 0x18]
mov esi, dword [rbp - 0x1c]
mov r8d, r12d
mov dword [rbp + 0xac], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0875
mov rax, qword [rcx]
lea r8, [rbp + 0xac]
mov edx, 0x10000113
call qword [rax + 0x18]
mov r8d, dword [rbp + 0xac]
mov r9d, esi
lea rdx, str.__d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Resolution__DPI__t
mov rcx, rbx
call fcn.1400f1eb0
xor r15d, r15d
mov dword [rbp - 0x14], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f08be
mov rax, qword [rcx]
lea r8, [rbp - 0x14]
mov edx, 0x10000118
call qword [rax + 0x18]
mov r15d, dword [rbp - 0x14]
xor r14d, r14d
mov dword [rbp + 0x7c], r14d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f08e0
mov rax, qword [rcx]
lea r8, [rbp + 0x7c]
mov edx, 0x10000117
call qword [rax + 0x18]
mov r14d, dword [rbp + 0x7c]
xor esi, esi
mov dword [rbp - 0xc], esi
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f08ff
mov rax, qword [rcx]
lea r8, [rbp - 0xc]
mov edx, 0x10000116
call qword [rax + 0x18]
mov esi, dword [rbp - 0xc]
xor r8d, r8d
mov dword [rbp + 0xb4], r8d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f092a
mov rax, qword [rcx]
lea r8, [rbp + 0xb4]
mov edx, 0x10000115
call qword [rax + 0x18]
mov r8d, dword [rbp + 0xb4]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
lea rdx, str.__d___d____d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Sensor_Rectangle_t
mov rcx, rbx
call fcn.1400f1eb0
lea r13, [rbx + 0x430]
xor r15d, r15d
cmp dword [r13 + 0x30], 0xffffffff
je 0x1400f1065
mov edx, r15d
mov dword [rbp - 4], edx
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x1400f0991
mov rax, qword [rcx]
lea r8, [rbp - 4]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rbp - 4]
mov eax, r15d
cmp edx, 2
sete al
test eax, eax
je 0x1400f1065
mov dword [rbp + 0x84], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f09ca
mov rax, qword [rcx]
lea r8, [rbp + 0x84]
mov edx, 0x100001e8
call qword [rax + 0x18]
mov r15d, dword [rbp + 0x84]
xor r14d, r14d
mov dword [rbp + 4], r14d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f09ec
mov rax, qword [rcx]
lea r8, [rbp + 4]
mov edx, 0x100001e7
call qword [rax + 0x18]
mov r14d, dword [rbp + 4]
xor esi, esi
mov dword [rbp + 0xbc], esi
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0a14
mov rax, qword [rcx]
lea r8, [rbp + 0xbc]
mov edx, 0x100001e6
call qword [rax + 0x18]
mov esi, dword [rbp + 0xbc]
xor r8d, r8d
mov dword [rbp + 0xc], r8d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0a36
mov rax, qword [rcx]
lea r8, [rbp + 0xc]
mov edx, 0x100001e5
call qword [rax + 0x18]
mov r8d, dword [rbp + 0xc]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
lea rdx, str.__d___d____d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Sensor_FW_Coords_t
mov rcx, rbx
call fcn.1400f1eb0
xor r15d, r15d
mov dword [rbp + 0x8c], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0a92
mov rax, qword [rcx]
lea r8, [rbp + 0x8c]
mov edx, 0x1000011c
call qword [rax + 0x18]
mov r15d, dword [rbp + 0x8c]
xor r14d, r14d
mov dword [rbp + 0x14], r14d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0ab4
mov rax, qword [rcx]
lea r8, [rbp + 0x14]
mov edx, 0x1000011b
call qword [rax + 0x18]
mov r14d, dword [rbp + 0x14]
xor esi, esi
mov dword [rbp + 0xc4], esi
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0adc
mov rax, qword [rcx]
lea r8, [rbp + 0xc4]
mov edx, 0x1000011a
call qword [rax + 0x18]
mov esi, dword [rbp + 0xc4]
xor r8d, r8d
mov dword [rbp + 0x1c], r8d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0afe
mov rax, qword [rcx]
lea r8, [rbp + 0x1c]
mov edx, 0x10000119
call qword [rax + 0x18]
mov r8d, dword [rbp + 0x1c]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
lea rdx, str.__d___d____d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Bezel_Rectangle_t
mov rcx, rbx
call fcn.1400f1eb0
xor r15d, r15d
mov dword [rsp + 0x34], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0b54
mov rax, qword [rcx]
lea r8, [rsp + 0x34]
mov edx, 0x10000120
call qword [rax + 0x18]
mov r15d, dword [rsp + 0x34]
xor r14d, r14d
mov dword [rsp + 0x38], r14d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0b79
mov rax, qword [rcx]
lea r8, [rsp + 0x38]
mov edx, 0x1000011f
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x38]
xor esi, esi
mov dword [rsp + 0x40], esi
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0b9b
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
mov edx, 0x1000011e
call qword [rax + 0x18]
mov esi, dword [rsp + 0x40]
xor r8d, r8d
mov dword [rsp + 0x48], r8d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0bc0
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
mov edx, 0x1000011d
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
lea rdx, str.__d___d____d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Edge_Motion_Rectangle_t
mov rcx, rbx
call fcn.1400f1eb0
xor r15d, r15d
mov dword [rsp + 0x50], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0c16
mov rax, qword [rcx]
lea r8, [rsp + 0x50]
mov edx, 0x10000126
call qword [rax + 0x18]
mov r15d, dword [rsp + 0x50]
xor r14d, r14d
mov dword [rsp + 0x58], r14d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0c3b
mov rax, qword [rcx]
lea r8, [rsp + 0x58]
mov edx, 0x10000125
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x58]
xor esi, esi
mov dword [rsp + 0x60], esi
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0c5d
mov rax, qword [rcx]
lea r8, [rsp + 0x60]
mov edx, 0x10000124
call qword [rax + 0x18]
mov esi, dword [rsp + 0x60]
xor r8d, r8d
mov dword [rsp + 0x68], r8d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0c82
mov rax, qword [rcx]
lea r8, [rsp + 0x68]
mov edx, 0x10000123
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x68]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
lea rdx, str.__d___d____d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Wide_Border_Rectangle_t
mov rcx, rbx
call fcn.1400f1eb0
xor r15d, r15d
mov esi, r15d
mov dword [rsp + 0x70], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0cda
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
mov edx, 0x1000012a
call qword [rax + 0x18]
mov esi, dword [rsp + 0x70]
mov r8d, r15d
mov dword [rsp + 0x78], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0cff
mov rax, qword [rcx]
lea r8, [rsp + 0x78]
mov edx, 0x10000129
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x78]
mov r9d, esi
lea rdx, str.__d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Top_Left_Corner_Zone_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rbp - 0x80], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0d47
mov rax, qword [rcx]
lea r8, [rbp - 0x80]
mov edx, 0x1000012c
call qword [rax + 0x18]
mov esi, dword [rbp - 0x80]
mov r8d, r15d
mov dword [rbp - 0x78], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0d69
mov rax, qword [rcx]
lea r8, [rbp - 0x78]
mov edx, 0x1000012b
call qword [rax + 0x18]
mov r8d, dword [rbp - 0x78]
mov r9d, esi
lea rdx, str.__d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Top_Right_Corner_Zone_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rbp - 0x70], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0db1
mov rax, qword [rcx]
lea r8, [rbp - 0x70]
mov edx, 0x10000130
call qword [rax + 0x18]
mov esi, dword [rbp - 0x70]
mov r8d, r15d
mov dword [rbp - 0x68], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0dd3
mov rax, qword [rcx]
lea r8, [rbp - 0x68]
mov edx, 0x1000012f
call qword [rax + 0x18]
mov r8d, dword [rbp - 0x68]
mov r9d, esi
lea rdx, str.__d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Bottom_Left_Corner_Zone_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rbp - 0x60], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0e1b
mov rax, qword [rcx]
lea r8, [rbp - 0x60]
mov edx, 0x1000012e
call qword [rax + 0x18]
mov esi, dword [rbp - 0x60]
mov r8d, r15d
mov dword [rbp - 0x58], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0e3d
mov rax, qword [rcx]
lea r8, [rbp - 0x58]
mov edx, 0x1000012d
call qword [rax + 0x18]
mov r8d, dword [rbp - 0x58]
mov r9d, esi
lea rdx, str.__d___d_
lea rcx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbx + 0x30]
lea rdx, str.Bottom_Right_Corner_Zone_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r15d
mov dword [rbp - 0x50], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0e84
mov rax, qword [rcx]
lea r8, [rbp - 0x50]
mov edx, 0x10000105
call qword [rax + 0x18]
mov edx, dword [rbp - 0x50]
mov rcx, rbx
call fcn.1400f4ad0
mov r8, rax
lea rdx, str.Bezel_Geometry_t
mov rcx, rbx
call fcn.1400f1eb0
cmp dword [r13 + 0x30], 0xffffffff
je 0x1400f0ecb
mov dword [rbp - 0x48], r15d
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x1400f0ecb
mov rax, qword [rcx]
lea r8, [rbp - 0x48]
mov edx, 0x10000103
call qword [rax + 0x18]
cmp dword [rbp - 0x48], 2
je 0x1400f0fe3
mov eax, r15d
mov dword [rbp - 0x40], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0eeb
mov rax, qword [rcx]
lea r8, [rbp - 0x40]
mov edx, 0x100001e1
call qword [rax + 0x18]
mov eax, dword [rbp - 0x40]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Transmitter_Pitch_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp - 0x38], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0f31
mov rax, qword [rcx]
lea r8, [rbp - 0x38]
mov edx, 0x100001e2
call qword [rax + 0x18]
mov eax, dword [rbp - 0x38]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Receiver_Pitch_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp - 0x30], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0f77
mov rax, qword [rcx]
lea r8, [rbp - 0x30]
mov edx, 0x100001e3
call qword [rax + 0x18]
mov eax, dword [rbp - 0x30]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Number_of_Transmitters_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp - 0x28], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f0fbd
mov rax, qword [rcx]
lea r8, [rbp - 0x28]
mov edx, 0x100001e4
call qword [rax + 0x18]
mov eax, dword [rbp - 0x28]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Number_of_Receivers_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp - 0x20], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1003
mov rax, qword [rcx]
lea r8, [rbp - 0x20]
mov edx, 0x10000179
call qword [rax + 0x18]
mov eax, dword [rbp - 0x20]
lea r14, [0x140171df8]
mov r8, r14
test eax, eax
lea rsi, [0x140171df0]
cmovne r8, rsi
lea rdx, str.ClearPad_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp - 0x18], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1049
mov rax, qword [rcx]
lea r8, [rbp - 0x18]
mov edx, 0x10000170
call qword [rax + 0x18]
mov eax, dword [rbp - 0x18]
bt eax, 0x17
mov r8, r14
cmovb r8, rsi
lea rdx, str.New_Absolute_Packet_t
mov rcx, rbx
call fcn.1400f1eb0
jmp 0x1400f106c
lea r14, [0x140171df8]
mov esi, r15d
mov dword [rbp - 0x10], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f108d
mov rax, qword [rcx]
lea r8, [rbp - 0x10]
mov edx, 0x10000145
call qword [rax + 0x18]
mov esi, dword [rbp - 0x10]
mov edx, r15d
mov dword [rbp - 8], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f10ad
mov rax, qword [rcx]
lea r8, [rbp - 8]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov edx, dword [rbp - 8]
mov r8d, esi
mov rcx, rbx
call fcn.1400f4ca0
mov r8, rax
lea rdx, str.Buttons_t
mov rcx, rbx
call fcn.1400f1eb0
mov dword [rbp], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1110
mov rax, qword [rcx]
lea r8, [rbp]
mov edx, 0x10000143
call qword [rax + 0x18]
mov ecx, dword [rbp]
test ecx, ecx
jle 0x1400f1110
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
mov r8, rax
lea rdx, str.Extended_Buttons_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 8], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1130
mov rax, qword [rcx]
lea r8, [rbp + 8]
mov edx, 0x10000147
call qword [rax + 0x18]
mov eax, dword [rbp + 8]
mov r8, r14
test eax, eax
lea rax, [0x140171df0]
cmovne r8, rax
lea rdx, str.Stylus_Input_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x10], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f116f
mov rax, qword [rcx]
lea r8, [rbp + 0x10]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x10]
bt eax, 0x14
lea rax, str.Type_1
lea rsi, str.None
mov r8, rsi
cmovb r8, rax
lea rdx, str.Secure_Key_t
mov rcx, rbx
call fcn.1400f1eb0
mov edx, r15d
mov dword [rbp + 0x18], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f11b7
mov rax, qword [rcx]
lea r8, [rbp + 0x18]
mov edx, 0x10000d4
call qword [rax + 0x18]
mov edx, dword [rbp + 0x18]
dec edx
je 0x1400f11d5
dec edx
je 0x1400f11cc
dec edx
jne 0x1400f11dc
lea rsi, [0x1401718d0]
jmp 0x1400f11dc
lea rsi, [0x14015a58c]
jmp 0x1400f11dc
lea rsi, [0x140165628]
mov r8, rsi
lea rdx, str.Lock_Type_t
mov rcx, rbx
call fcn.1400f1eb0
mov r8d, 0x100001eb
lea rdx, [rbp + 0x108]
mov rcx, rdi
call fcn.140042410
mov rsi, qword [rax]
test rsi, rsi
je 0x1400f1210
mov rsi, qword [rsi]
jmp 0x1400f1213
mov rsi, r15
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x1400f122b
call fcn.1400440d0
mov qword [rbp + 0x108], r15
mov rdx, rsi
lea rcx, [rbp + 0x110]
call fcn.140007840
nop
mov r8, qword [rbp + 0x110]
cmp dword [r8 - 0x10], 0
jne 0x1400f1274
mov edx, r15d
mov dword [rbp + 0x20], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1269
mov rax, qword [rcx]
lea r8, [rbp + 0x20]
mov edx, 0x10000109
call qword [rax + 0x18]
mov edx, dword [rbp + 0x20]
mov rcx, rbx
call fcn.1400f4200
mov r8, rax
lea rdx, str.ASIC_Type_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rbp + 0x28], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f12a4
mov rax, qword [rcx]
lea r8, [rbp + 0x28]
mov edx, 0x10000102
call qword [rax + 0x18]
mov esi, dword [rbp + 0x28]
mov edx, r15d
mov dword [rbp + 0x30], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f12c4
mov rax, qword [rcx]
lea r8, [rbp + 0x30]
mov edx, 0x10000106
call qword [rax + 0x18]
mov edx, dword [rbp + 0x30]
mov r8d, esi
mov rcx, rbx
call fcn.1400f4300
mov r8, rax
lea rdx, str.Sensor_Type_t
mov rcx, rbx
call fcn.1400f1eb0
mov esi, r15d
mov dword [rbp + 0x38], r15d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1302
mov rax, qword [rcx]
lea r8, [rbp + 0x38]
mov edx, 0x10000102
call qword [rax + 0x18]
mov esi, dword [rbp + 0x38]
mov edx, r15d
mov dword [rbp + 0x40], edx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f1322
mov rax, qword [rcx]
lea r8, [rbp + 0x40]
mov edx, 0x10000107
call qword [rax + 0x18]
mov edx, dword [rbp + 0x40]
mov r8d, esi
mov rcx, rbx
call fcn.1400f47a0
mov r8, rax
lea rdx, str.Product_Type_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x48], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f135f
mov rax, qword [rcx]
lea r8, [rbp + 0x48]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x48]
test al, 0x80
mov r8, r14
lea rsi, [0x140171df0]
cmovne r8, rsi
lea rdx, str.PS2_Passthrough_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x50], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f139e
mov rax, qword [rcx]
lea r8, [rbp + 0x50]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x50]
test al, 0x40
cmovne r14, rsi
mov r8, r14
lea rdx, str.PS2_Glasspass_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x58], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f13d6
mov rax, qword [rcx]
lea r8, [rbp + 0x58]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x58]
mov r8d, 0x10
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Capabilities_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x60], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f141c
mov rax, qword [rcx]
lea r8, [rbp + 0x60]
mov edx, 0x10000fd
call qword [rax + 0x18]
mov eax, dword [rbp + 0x60]
mov r8d, 0x10
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.RMI4_Capabilities_t
mov rcx, rbx
call fcn.1400f1eb0
mov ecx, r15d
mov dword [rbp + 0x68], ecx
mov r9, qword [rdi]
test r9, r9
je 0x1400f1465
mov rax, qword [r9]
lea r8, [rbp + 0x68]
mov edx, 0x10000d5
mov rcx, r9
call qword [rax + 0x18]
mov ecx, dword [rbp + 0x68]
shr ecx, 0x15
and ecx, 1
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
mov r8, rax
lea rdx, str.Peak_Detect_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x70], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f14af
mov rax, qword [rcx]
lea r8, [rbp + 0x70]
mov edx, 0x1000134
call qword [rax + 0x18]
mov eax, dword [rbp + 0x70]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Rotation_Angle_t
mov rcx, rbx
call fcn.1400f1eb0
cmp dword [r13 + 0x30], 0xffffffff
je 0x1400f15b3
mov r8d, r15d
mov dword [rbp + 0x78], r15d
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x1400f1503
mov rax, qword [rcx]
lea r8, [rbp + 0x78]
mov edx, 0x10000102
call qword [rax + 0x18]
mov r8d, dword [rbp + 0x78]
mov eax, r15d
cmp r8d, 5
sete al
test eax, eax
je 0x1400f15b3
mov eax, r15d
mov dword [rbp + 0x80], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f153e
mov rax, qword [rcx]
lea r8, [rbp + 0x80]
mov edx, 0x1000325
call qword [rax + 0x18]
mov eax, dword [rbp + 0x80]
mov r8d, 0xa
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Ballistics_Algorithm_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x88], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f158d
mov rax, qword [rcx]
lea r8, [rbp + 0x88]
mov edx, 0x1000297
call qword [rax + 0x18]
mov eax, dword [rbp + 0x88]
mov r8d, 0x10
lea rdx, [rbp + 0x220]
mov ecx, eax
call fcn.14010ce54
mov r8, rax
lea rdx, str.Manufacturer_Info_t
mov rcx, rbx
call fcn.1400f1eb0
mov rcx, r13
call fcn.1400fd760
test eax, eax
je 0x1400f15dd
mov rcx, r13
call fcn.1400fd760
mov ecx, eax
mov r8d, 0xa
lea rdx, [rbp + 0x220]
call fcn.14010ce54
jmp 0x1400f15e4
lea rax, str.Not_Supported
mov r8, rax
lea rdx, str.Report_Rate_t
mov rcx, rbx
call fcn.1400f1eb0
mov eax, r15d
mov dword [rbp + 0x90], eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400f161f
mov rax, qword [rcx]
lea r8, [rbp + 0x90]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rbp + 0x90]
mov rcx, rbx
bt eax, 0x12
jae 0x1400f1898
lea rdx, [rbp + 0x1f8]
call fcn.1400f25a0
nop
mov edi, 1
mov dword [rbp + 0x460], edi
cmp qword [rax + 0x18], 8
jb 0x1400f164e
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.3383_001
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400f1752
lea rdx, [rbp + 0x190]
mov rcx, rbx
call fcn.1400f25a0
nop
mov edi, 3
mov dword [rbp + 0x460], edi
cmp qword [rax + 0x18], 8
jb 0x1400f168b
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.3383_011
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400f1752
lea rdx, [rbp + 0x130]
mov rcx, rbx
call fcn.1400f25a0
nop
mov edi, 7
mov dword [rbp + 0x460], edi
cmp qword [rax + 0x18], 8
jb 0x1400f16c8
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.3383_021
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400f1752
lea rdx, [rbp + 0x170]
mov rcx, rbx
call fcn.1400f25a0
nop
mov edi, 0xf
mov dword [rbp + 0x460], edi
cmp qword [rax + 0x18], 8
jb 0x1400f1701
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.3383_031
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400f1752
lea rdx, [rbp + 0x150]
mov rcx, rbx
call fcn.1400f25a0
mov edi, SafeArrayAllocDescriptor
mov dword [rbp + 0x460], edi
cmp qword [rax + 0x18], 8
jb 0x1400f1739
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.3383_041
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1400f1752
xor sil, sil
jmp 0x1400f1755
mov sil, 1
test dil, 0x10
je 0x1400f1794
and edi, 0xffffffef
mov dword [rbp + 0x460], edi
cmp qword [rbp + 0x168], 8
jb 0x1400f177a
mov rcx, qword [rbp + 0x150]
call fcn.14010a7dc
mov qword [rbp + 0x168], 7
mov qword [rbp + 0x160], r15
mov word [rbp + 0x150], r15w
test dil, 8
je 0x1400f17d3
and edi, 0xfffffff7
mov dword [rbp + 0x460], edi
cmp qword [rbp + 0x188], 8
jb 0x1400f17b9
mov rcx, qword [rbp + 0x170]
call fcn.14010a7dc
mov qword [rbp + 0x188], 7
mov qword [rbp + 0x180], r15
mov word [rbp + 0x170], r15w
test dil, 4
je 0x1400f1812
and edi, 0xfffffffb
mov dword [rbp + 0x460], edi
cmp qword [rbp + 0x148], 8
jb 0x1400f17f8
mov rcx, qword [rbp + 0x130]
call fcn.14010a7dc
mov qword [rbp + 0x148], 7
mov qword [rbp + 0x140], r15
mov word [rbp + 0x130], r15w
test dil, 2
je 0x1400f1851
and edi, 0xfffffffd
mov dword [rbp + 0x460], edi
cmp qword [rbp + 0x1a8], 8
jb 0x1400f1837
mov rcx, qword [rbp + 0x190]
call fcn.14010a7dc
mov qword [rbp + 0x1a8], 7
mov qword [rbp + 0x1a0], r15
mov word [rbp + 0x190], r15w
test dil, 1
je 0x1400f186d
cmp qword [rbp + 0x210], 8
jb 0x1400f186d
mov rcx, qword [rbp + 0x1f8]
call fcn.14010a7dc
test sil, sil
je 0x1400f187e
lea r8, [0x140171ab8]
mov rcx, rbx
jmp 0x1400f189f
mov rcx, r13
call fcn.1400fd720
mov edx, eax
mov rcx, rbx
call fcn.1400f4f90
mov r8, rax
mov rcx, rbx
jmp 0x1400f18a4
lea r8, [0x140153260]
mov word [rbx + 0x30], r15w
lea rdx, str.ACM_t
call fcn.1400f1eb0
mov rcx, rbx
call fcn.1400f2050
mov edx, eax
mov rcx, rbx
call fcn.1400f50a0
mov rcx, r13
call fcn.140008450
test eax, eax
je 0x1400f18d6
mov rcx, rbx
call fcn.1400f27a0
mov r8d, dword [rbx + 0x470]
lea rdx, str.StoreDeviceDetails_buffer_size_is__d_n
lea rcx, [rbp + 0x220]
call fcn.14010d300
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rbx, qword [rbx + 0x468]
mov rdx, qword [rbp + 0x110]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400f1920
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, rbx
jmp 0x1400f192c
mov rax, qword [rbx + 0x468]
mov rbx, qword [rsp + 0x568]
add rsp, 0x520
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret