Function at 0x493ff0
Capabilities:
Print debug messages

Disassembly:
mov r11, rsp
sub rsp, 0x418
mov rax, qword [0x00522be8]
xor rax, rsp
mov qword [rsp + 0x3d0], rax
mov qword [r11 + 0x20], rbx
xor ebx, ebx
mov qword [r11 - 0x10], rsi
mov rsi, rcx
mov qword [rcx + 0x450], rbx
mov rcx, qword [rcx + 0x440]
test rcx, rcx
mov qword [r11 - 0x18], rdi
mov dword [rsp + 0x1b4], r8d
mov edi, edx
je 0x495f89
mov rax, qword [rcx]
call qword [rax + 0x78]
test eax, eax
jne 0x495f89
mov rcx, qword [rsi + 0x440]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
test eax, eax
jne 0x495f89
mov dword [rsi + 0x448], edi
mov rcx, qword [rsi + 0x440]
mov qword [rsp + 0x410], rbp
test rcx, rcx
mov edi, ebx
mov dword [rsp + 0x160], ebx
je 0x4940a3
mov rax, qword [rcx]
lea r8, [rsp + 0x160]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov edi, dword [rsp + 0x160]
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x40], ebx
test rcx, rcx
je 0x4940c9
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0x40]
mov r8d, edi
mov rcx, rsi
call fcn.00492e50
lea rdx, str.Device_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x1a4], ebx
je 0x494115
mov rax, qword [rcx]
lea r8, [rsp + 0x1a4]
mov edx, 0x10000171
call qword [rax + 0x18]
mov eax, dword [rsp + 0x1a4]
lea rcx, str.Disabled
test eax, eax
lea r8, str.Enabled
cmovne r8, rcx
lea rdx, str.Device_State_t
mov rcx, rsi
call fcn.00490740
lea rdx, [rsp + 0x1c0]
lea rcx, [rsi + 0x440]
mov r8d, 0x10000602
call fcn.004174d0
mov rcx, qword [rax]
test rcx, rcx
je 0x49415f
mov rcx, qword [rcx]
jmp 0x494162
mov rcx, rbx
lea rdx, [rsp + 0x1d0]
nop
nop
movzx eax, word [rcx]
add rdx, 2
add rcx, 2
test ax, ax
mov word [rdx - 2], ax
jne 0x494170
mov rdi, qword [rsp + 0x1c0]
test rdi, rdi
je 0x4941c9
mov eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x4941c9
test rdi, rdi
je 0x4941c9
mov rcx, qword [rdi]
test rcx, rcx
je 0x4941b3
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x4941c1
call fcn.004a8850
mov rcx, rdi
call fcn.004a6f90
xor eax, eax
lea rdi, [rsp + 0x1d0]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov qword [rsp + 0x3e0], r15
lea r8, [rsp + 0x1d0]
not rcx
lea r15, str.Unknown
lea rdx, str.Plug_and_Play_ID_t
cmp rcx, 1
mov rcx, rsi
cmove r8, r15
call fcn.00490740
lea rdx, [rsp + 0x1c8]
lea rcx, [rsi + 0x440]
mov r8d, 0x10000603
call fcn.004174d0
mov rcx, qword [rax]
test rcx, rcx
je 0x494235
mov rcx, qword [rcx]
jmp 0x494238
mov rcx, rbx
lea rdx, [rsp + 0x1d0]
movzx eax, word [rcx]
add rdx, 2
add rcx, 2
test ax, ax
mov word [rdx - 2], ax
jne 0x494240
mov rdi, qword [rsp + 0x1c8]
test rdi, rdi
je 0x494299
mov eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x494299
test rdi, rdi
je 0x494299
mov rcx, qword [rdi]
test rcx, rcx
je 0x494283
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x494291
call fcn.004a8850
mov rcx, rdi
call fcn.004a6f90
xor eax, eax
lea rdi, [rsp + 0x1d0]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
lea r8, [rsp + 0x1d0]
lea rdx, str.Config_Key_t
not rcx
cmp rcx, 1
mov rcx, rsi
cmove r8, r15
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x48], ebx
je 0x494351
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
mov edx, 0x10000cd
call qword [rax + 0x18]
mov edi, dword [rsp + 0x48]
cmp edi, 0x20001
jg 0x494311
cmp edi, 0x20001
jne 0x494351
lea r8, str.PS2_port_0
jmp 0x4943a2
mov ecx, edi
sub ecx, 0x20002
je 0x494348
sub ecx, 1
je 0x49433f
sub ecx, 1
je 0x494336
cmp ecx, 0x1fffc
jne 0x49437b
lea r8, [0x004f4240]
jmp 0x4943a2
lea r8, str.PS2_port_3
jmp 0x4943a2
lea r8, str.PS2_port_2
jmp 0x4943a2
lea r8, str.PS2_port_1
jmp 0x4943a2
mov ecx, edi
sub ecx, 0x10001
je 0x49439b
sub ecx, 1
je 0x494392
sub ecx, 1
je 0x494389
sub ecx, 1
je 0x494380
cmp ecx, 0xfffc
jne 0x49437b
lea r8, [0x004f42a0]
jmp 0x4943a2
mov r8, r15
jmp 0x4943a2
lea r8, str.COM4
jmp 0x4943a2
lea r8, str.COM3
jmp 0x4943a2
lea r8, str.COM2
jmp 0x4943a2
lea r8, str.COM1
lea rdx, str.Port_t
mov rcx, rsi
call fcn.00490740
and edi, 0xffff0000
cmp edi, 0x20000
jne 0x494408
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x108], ebx
test rcx, rcx
je 0x4943ee
mov rax, qword [rcx]
lea r8, [rsp + 0x108]
mov edx, 0x10000d6
call qword [rax + 0x18]
mov edx, dword [rsp + 0x108]
mov rcx, rsi
call fcn.00490c70
lea rdx, str.Keyboard_controller_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x50], ebx
test rcx, rcx
je 0x49442e
mov rax, qword [rcx]
lea r8, [rsp + 0x50]
mov edx, 0x10000135
call qword [rax + 0x18]
mov edx, dword [rsp + 0x50]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Left_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x168], ebx
je 0x494477
mov rax, qword [rcx]
lea r8, [rsp + 0x168]
mov edx, 0x10000136
call qword [rax + 0x18]
mov edx, dword [rsp + 0x168]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Right_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x58], ebx
je 0x4944b7
mov rax, qword [rcx]
lea r8, [rsp + 0x58]
mov edx, 0x10000138
call qword [rax + 0x18]
mov edx, dword [rsp + 0x58]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Middle_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x110], ebx
je 0x494500
mov rax, qword [rcx]
lea r8, [rsp + 0x110]
mov edx, 0x1000015b
call qword [rax + 0x18]
mov edx, dword [rsp + 0x110]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Fourth_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x60], ebx
je 0x494540
mov rax, qword [rcx]
lea r8, [rsp + 0x60]
mov edx, 0x1000015c
call qword [rax + 0x18]
mov edx, dword [rsp + 0x60]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Fifth_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x198], ebx
test rcx, rcx
je 0x495f42
mov rax, qword [rcx]
lea r8, [rsp + 0x198]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0x198]
cmp edx, 2
je 0x4945a7
cmp edx, 5
je 0x4945a7
cmp edx, 7
jle 0x495f42
cmp edx, 9
jg 0x495f42
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x68], ebx
test rcx, rcx
je 0x4945cf
mov rax, qword [rcx]
lea r8, [rsp + 0x68]
mov edx, 0x10000104
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x68]
cmp dword [rsi + 0x460], ebx
mov qword [rsp + 0x3f8], r12
je 0x494610
mov eax, r8d
lea r12, [rsi + 0x38]
lea rdx, str._d._d._d
sar eax, 8
movzx ecx, al
mov eax, r8d
sar r8d, 0x18
sar eax, 0x10
mov dword [rsp + 0x20], ecx
mov rcx, r12
movzx r9d, al
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x494632
mov eax, r8d
lea r12, [rsi + 0x38]
lea rdx, str._d._d
sar eax, 0x10
sar r8d, 0x18
mov rcx, r12
movzx r9d, al
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Firmware_Revision_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x30], 6
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x10000e3
call qword [rax + 0x18]
mov rcx, qword [rsi + 0x440]
mov edi, dword [rsp + 0x30]
mov dword [rsp + 0x30], 7
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x10000e3
call qword [rax + 0x18]
mov edx, dword [rsp + 0x30]
movzx r9d, dl
mov eax, edx
sar edx, 0x10
shl r9d, 0xc
and eax, 0xf00
and edx, 0xfff
or r9d, eax
shl r9d, 4
or r9d, edx
and edi, 0xfff
jne 0x4946c2
test r9d, r9d
jne 0x4946c2
lea r8, str.Unserialized
jmp 0x4946d8
lea rdx, str.0x_03lX_06lX
mov r8d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
mov r8, r12
lea rdx, str.Serial_Number_t
mov rcx, rsi
mov qword [rsp + 0x3e8], r14
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x118], ebx
je 0x494720
mov rax, qword [rcx]
lea r8, [rsp + 0x118]
mov edx, 0x1000014f
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x118]
mov rcx, qword [rsi + 0x440]
mov qword [rsp + 0x3f0], r13
mov dword [rsp + 0x70], ebx
test rcx, rcx
mov r13d, ebx
je 0x494750
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
mov edx, 0x1000014e
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x70]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0x170], ebx
test rcx, rcx
je 0x49477f
mov rax, qword [rcx]
lea r8, [rsp + 0x170]
mov edx, 0x1000014d
call qword [rax + 0x18]
mov edi, dword [rsp + 0x170]
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x78], ebx
lea rax, str.None
test rcx, rcx
je 0x49483e
mov rax, qword [rcx]
lea r8, [rsp + 0x78]
mov edx, 0x1000010e
call qword [rax + 0x18]
cmp dword [rsp + 0x78], ebx
je 0x494837
test edi, edi
mov word [r12], bx
je 0x4947d7
xor eax, eax
mov rdi, r12
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [0x004f4540]
mov qword [rdi - 2], rax
test r13d, r13d
je 0x4947ff
xor eax, eax
mov rdi, r12
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str._Drag]
mov qword [rdi - 2], rax
mov eax, dword [0x004f4538]
mov dword [rdi + 6], eax
test r14d, r14d
je 0x494832
xor eax, eax
mov rdi, r12
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str._DragLock]
mov qword [rdi - 2], rax
mov rax, qword [0x004f4520]
mov qword [rdi + 6], rax
mov eax, dword [0x004f4528]
mov dword [rdi + 0xe], eax
mov r8, r12
jmp 0x494841
lea rax, str.None
mov r8, rax
lea rdx, str.Gestures_Enabled_t
mov rcx, rsi
call fcn.00490740
cmp dword [rsi + 0x448], 0xffffffff
lea r13, [0x004f6350]
lea rdi, [0x004f6344]
je 0x494ebd
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x120], ebx
test rcx, rcx
je 0x49489a
mov rax, qword [rcx]
lea r8, [rsp + 0x120]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0x120]
cmp edx, 2
mov eax, ebx
sete al
test eax, eax
je 0x494ebd
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0x80], ebx
test rcx, rcx
je 0x4948d9
mov rax, qword [rcx]
lea r8, [rsp + 0x80]
mov edx, 0x10000146
call qword [rax + 0x18]
mov eax, dword [rsp + 0x80]
test eax, eax
mov r8, rdi
lea rdx, str.MultiFinger_Gestures_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x1a8], ebx
je 0x494920
mov rax, qword [rcx]
lea r8, [rsp + 0x1a8]
mov edx, 0x10000177
call qword [rax + 0x18]
mov eax, dword [rsp + 0x1a8]
test eax, eax
mov r8, rdi
lea rdx, str.MultiFinger_Report_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x88], ebx
je 0x494967
mov rax, qword [rcx]
lea r8, [rsp + 0x88]
mov edx, 0x1000017a
call qword [rax + 0x18]
mov eax, dword [rsp + 0x88]
test eax, eax
mov r8, rdi
lea rdx, str.Advanced_Gestures_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x128], ebx
je 0x4949ae
mov rax, qword [rcx]
lea r8, [rsp + 0x128]
mov edx, 0x10000189
call qword [rax + 0x18]
mov eax, dword [rsp + 0x128]
test eax, eax
mov r8, rdi
lea rdx, str.Cover_Gesture_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x90], ebx
je 0x4949f5
mov rax, qword [rcx]
lea r8, [rsp + 0x90]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x90]
bt eax, 0x11
mov r8, rdi
lea rdx, str.Supports_W_t
cmovb r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x178], ebx
je 0x494a3e
mov rax, qword [rcx]
lea r8, [rsp + 0x178]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x178]
bt eax, 0xb
mov r8, rdi
lea rdx, str.Imaging_Sensor_t
cmovb r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x98], ebx
je 0x494a87
mov rax, qword [rcx]
lea r8, [rsp + 0x98]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x98]
bt eax, 0xd
mov r8, r13
lea rdx, str.1:1_FW_Filter_t
cmovb r8, rdi
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x130], ebx
je 0x494ad0
mov rax, qword [rcx]
lea r8, [rsp + 0x130]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x130]
bt eax, 0xc
mov r8, rdi
lea rdx, str.RMI_Backdoor_t
cmovb r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xa0], ebx
je 0x494b19
mov rax, qword [rcx]
lea r8, [rsp + 0xa0]
mov edx, 0x10000150
call qword [rax + 0x18]
mov eax, dword [rsp + 0xa0]
lea rcx, [0x004f6228]
test eax, eax
lea r8, [0x004f6220]
cmovne r8, rcx
lea rdx, str.Taps_Zones_t
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x1a0], ebx
je 0x494b6b
mov rax, qword [rcx]
lea r8, [rsp + 0x1a0]
mov edx, 0x10000131
call qword [rax + 0x18]
mov edx, dword [rsp + 0x1a0]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Top_Left_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xa8], ebx
je 0x494bb4
mov rax, qword [rcx]
lea r8, [rsp + 0xa8]
mov edx, 0x10000132
call qword [rax + 0x18]
mov edx, dword [rsp + 0xa8]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Top_Right_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x138], ebx
je 0x494bfd
mov rax, qword [rcx]
lea r8, [rsp + 0x138]
mov edx, 0x10000134
call qword [rax + 0x18]
mov edx, dword [rsp + 0x138]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Bottom_Left_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xb0], ebx
je 0x494c46
mov rax, qword [rcx]
lea r8, [rsp + 0xb0]
mov edx, 0x10000133
call qword [rax + 0x18]
mov edx, dword [rsp + 0xb0]
mov rcx, rsi
call fcn.004917c0
lea rdx, str.Bottom_Right_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x180], ebx
test rcx, rcx
je 0x494c98
mov rax, qword [rcx]
lea r8, [rsp + 0x180]
mov edx, 0x10000153
call qword [rax + 0x18]
cmp dword [rsp + 0x180], ebx
je 0x494c98
lea r8, str.Always
jmp 0x494cdb
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0xb8], ebx
test rcx, rcx
je 0x494cc7
mov rax, qword [rcx]
lea r8, [rsp + 0xb8]
mov edx, 0x10000152
call qword [rax + 0x18]
mov eax, dword [rsp + 0xb8]
lea rcx, str.When_Dragging
lea r8, str.None
test eax, eax
cmovne r8, rcx
lea rdx, str.Edge_Motion_t
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x140], ebx
je 0x494d19
mov rax, qword [rcx]
lea r8, [rsp + 0x140]
mov edx, 0x10000111
call qword [rax + 0x18]
mov eax, dword [rsp + 0x140]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Edge_Motion_Speed_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xc0], ebx
je 0x494d6f
mov rax, qword [rcx]
lea r8, [rsp + 0xc0]
mov edx, 0x10000159
call qword [rax + 0x18]
mov eax, dword [rsp + 0xc0]
test eax, eax
mov r8, rdi
lea rdx, str.Pressure_Edge_Motion_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x34], ebx
mov rax, qword [rcx]
lea r8, [rsp + 0x34]
mov edx, 0x100015e
call qword [rax + 0x18]
test eax, eax
jne 0x494db4
mov edx, dword [rsp + 0x34]
mov rcx, rsi
call fcn.00491390
jmp 0x494db7
mov rax, r15
lea rdx, str.Slow_Motion_Key_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
lea r8, [rsp + 0x34]
mov rax, qword [rcx]
mov edx, 0x100015f
call qword [rax + 0x18]
test eax, eax
jne 0x494df2
mov edx, dword [rsp + 0x34]
mov rcx, rsi
call fcn.00491390
jmp 0x494df5
mov rax, r15
lea rdx, str.Constrained_Motion_Key_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x1b0], ebx
test rcx, rcx
je 0x494e4d
mov rax, qword [rcx]
lea r8, [rsp + 0x1b0]
mov edx, 0x1000131
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x1b0]
test ecx, ecx
je 0x494e4d
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.004a7b50
jmp 0x494e50
mov rax, r15
lea rdx, str.Slow_Cursor_Speed_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0xc8], ebx
test rcx, rcx
je 0x494ea8
mov rax, qword [rcx]
lea r8, [rsp + 0xc8]
mov edx, 0x100013b
call qword [rax + 0x18]
mov ecx, dword [rsp + 0xc8]
test ecx, ecx
je 0x494ea8
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.004a7b50
jmp 0x494eab
mov rax, r15
lea rdx, str.Tapping_Speed_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0x148], ebx
test rcx, rcx
je 0x494eec
mov rax, qword [rcx]
lea r8, [rsp + 0x148]
mov edx, 0x10000128
call qword [rax + 0x18]
mov eax, dword [rsp + 0x148]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Touch_Threshold_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0xd0], ebx
test rcx, rcx
je 0x494f59
mov rax, qword [rcx]
lea r8, [rsp + 0xd0]
mov edx, 0x1000132
call qword [rax + 0x18]
mov ecx, dword [rsp + 0xd0]
test ecx, ecx
je 0x494f59
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.004a7b50
jmp 0x494f5c
mov rax, r15
lea rdx, str.PalmCheck_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x188], ebx
je 0x494f9d
mov rax, qword [rcx]
lea r8, [rsp + 0x188]
mov edx, 0x10000127
call qword [rax + 0x18]
mov eax, dword [rsp + 0x188]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Maximum_Z_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xd8], ebx
je 0x494ff3
mov rax, qword [rcx]
lea r8, [rsp + 0xd8]
mov edx, 0x10000114
call qword [rax + 0x18]
mov edi, dword [rsp + 0xd8]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x150], ebx
test rcx, rcx
je 0x495024
mov rax, qword [rcx]
lea r8, [rsp + 0x150]
mov edx, 0x10000113
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x150]
lea rdx, str.__ld___ld_
mov r9d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Resolution__DPI__t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0xe0], ebx
je 0x49507a
mov rax, qword [rcx]
lea r8, [rsp + 0xe0]
mov edx, 0x10000118
call qword [rax + 0x18]
mov r14d, dword [rsp + 0xe0]
mov rcx, qword [rsi + 0x440]
mov r13d, ebx
mov dword [rsp + 0x1ac], ebx
test rcx, rcx
je 0x4950ab
mov rax, qword [rcx]
lea r8, [rsp + 0x1ac]
mov edx, 0x10000117
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x1ac]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0xe8], ebx
test rcx, rcx
je 0x4950da
mov rax, qword [rcx]
lea r8, [rsp + 0xe8]
mov edx, 0x10000116
call qword [rax + 0x18]
mov edi, dword [rsp + 0xe8]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x158], ebx
test rcx, rcx
je 0x49510b
mov rax, qword [rcx]
lea r8, [rsp + 0x158]
mov edx, 0x10000115
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x158]
lea rdx, str.__ld___ld____ld___ld_
mov r9d, edi
mov rcx, r12
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Sensor_Rectangle_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
cmp dword [rsi + 0x448], 0xffffffff
je 0x495885
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0xf0], ebx
test rcx, rcx
je 0x495176
mov rax, qword [rcx]
lea r8, [rsp + 0xf0]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0xf0]
cmp edx, 2
mov eax, ebx
sete al
test eax, eax
je 0x495895
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
mov dword [rsp + 0x190], ebx
test rcx, rcx
je 0x4951b7
mov rax, qword [rcx]
lea r8, [rsp + 0x190]
mov edx, 0x1000206
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x190]
mov rcx, qword [rsi + 0x440]
mov r13d, ebx
mov dword [rsp + 0xf8], ebx
test rcx, rcx
je 0x4951e8
mov rax, qword [rcx]
lea r8, [rsp + 0xf8]
mov edx, 0x1000205
call qword [rax + 0x18]
mov r13d, dword [rsp + 0xf8]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0x38], ebx
test rcx, rcx
je 0x49520e
mov rax, qword [rcx]
lea r8, [rsp + 0x38]
mov edx, 0x1000204
call qword [rax + 0x18]
mov edi, dword [rsp + 0x38]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x100], ebx
test rcx, rcx
je 0x49523f
mov rax, qword [rcx]
lea r8, [rsp + 0x100]
mov edx, 0x1000203
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x100]
lea rdx, str.__ld___ld____ld___ld_
mov r9d, edi
mov rcx, r12
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Sensor_FW_Coords_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x3c], ebx
je 0x495296
mov rax, qword [rcx]
lea r8, [rsp + 0x3c]
mov edx, 0x1000011c
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x3c]
mov rcx, qword [rsi + 0x440]
mov r13d, ebx
mov dword [rsp + 0x44], ebx
test rcx, rcx
je 0x4952be
mov rax, qword [rcx]
lea r8, [rsp + 0x44]
mov edx, 0x1000011b
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x44]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0x4c], ebx
test rcx, rcx
je 0x4952e4
mov rax, qword [rcx]
lea r8, [rsp + 0x4c]
mov edx, 0x1000011a
call qword [rax + 0x18]
mov edi, dword [rsp + 0x4c]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x54], ebx
test rcx, rcx
je 0x49530c
mov rax, qword [rcx]
lea r8, [rsp + 0x54]
mov edx, 0x10000119
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x54]
lea rdx, str.__ld___ld____ld___ld_
mov r9d, edi
mov rcx, r12
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Bezel_Rectangle_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x5c], ebx
je 0x495363
mov rax, qword [rcx]
lea r8, [rsp + 0x5c]
mov edx, 0x10000120
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x5c]
mov rcx, qword [rsi + 0x440]
mov r13d, ebx
mov dword [rsp + 0x64], ebx
test rcx, rcx
je 0x49538b
mov rax, qword [rcx]
lea r8, [rsp + 0x64]
mov edx, 0x1000011f
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x64]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0x6c], ebx
test rcx, rcx
je 0x4953b1
mov rax, qword [rcx]
lea r8, [rsp + 0x6c]
mov edx, 0x1000011e
call qword [rax + 0x18]
mov edi, dword [rsp + 0x6c]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x74], ebx
test rcx, rcx
je 0x4953d9
mov rax, qword [rcx]
lea r8, [rsp + 0x74]
mov edx, 0x1000011d
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x74]
lea rdx, str.__ld___ld____ld___ld_
mov r9d, edi
mov rcx, r12
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Edge_Motion_Rectangle_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x7c], ebx
je 0x495430
mov rax, qword [rcx]
lea r8, [rsp + 0x7c]
mov edx, 0x10000126
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x7c]
mov rcx, qword [rsi + 0x440]
mov r13d, ebx
mov dword [rsp + 0x84], ebx
test rcx, rcx
je 0x495461
mov rax, qword [rcx]
lea r8, [rsp + 0x84]
mov edx, 0x10000125
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x84]
mov rcx, qword [rsi + 0x440]
mov edi, ebx
mov dword [rsp + 0x8c], ebx
test rcx, rcx
je 0x495490
mov rax, qword [rcx]
lea r8, [rsp + 0x8c]
mov edx, 0x10000124
call qword [rax + 0x18]
mov edi, dword [rsp + 0x8c]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0x94], ebx
test rcx, rcx
je 0x4954c1
mov rax, qword [rcx]
lea r8, [rsp + 0x94]
mov edx, 0x10000123
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x94]
lea rdx, str.__ld___ld____ld___ld_
mov r9d, edi
mov rcx, r12
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Wide_Border_Rectangle_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x9c], ebx
je 0x49551f
mov rax, qword [rcx]
lea r8, [rsp + 0x9c]
mov edx, 0x1000012a
call qword [rax + 0x18]
mov edi, dword [rsp + 0x9c]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0xa4], ebx
test rcx, rcx
je 0x495550
mov rax, qword [rcx]
lea r8, [rsp + 0xa4]
mov edx, 0x10000129
call qword [rax + 0x18]
mov r8d, dword [rsp + 0xa4]
lea rdx, str.__ld___ld_
mov r9d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Top_Left_Corner_Zone_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xac], ebx
je 0x4955a4
mov rax, qword [rcx]
lea r8, [rsp + 0xac]
mov edx, 0x1000012c
call qword [rax + 0x18]
mov edi, dword [rsp + 0xac]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0xb4], ebx
test rcx, rcx
je 0x4955d5
mov rax, qword [rcx]
lea r8, [rsp + 0xb4]
mov edx, 0x1000012b
call qword [rax + 0x18]
mov r8d, dword [rsp + 0xb4]
lea rdx, str.__ld___ld_
mov r9d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Top_Right_Corner_Zone_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xbc], ebx
je 0x495629
mov rax, qword [rcx]
lea r8, [rsp + 0xbc]
mov edx, 0x10000130
call qword [rax + 0x18]
mov edi, dword [rsp + 0xbc]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0xc4], ebx
test rcx, rcx
je 0x49565a
mov rax, qword [rcx]
lea r8, [rsp + 0xc4]
mov edx, 0x1000012f
call qword [rax + 0x18]
mov r8d, dword [rsp + 0xc4]
lea rdx, str.__ld___ld_
mov r9d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Bottom_Left_Corner_Zone_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xcc], ebx
je 0x4956ae
mov rax, qword [rcx]
lea r8, [rsp + 0xcc]
mov edx, 0x1000012e
call qword [rax + 0x18]
mov edi, dword [rsp + 0xcc]
mov rcx, qword [rsi + 0x440]
mov r8d, ebx
mov dword [rsp + 0xd4], ebx
test rcx, rcx
je 0x4956df
mov rax, qword [rcx]
lea r8, [rsp + 0xd4]
mov edx, 0x1000012d
call qword [rax + 0x18]
mov r8d, dword [rsp + 0xd4]
lea rdx, str.__ld___ld_
mov r9d, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, str.Bottom_Right_Corner_Zone_t
mov r8, r12
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xdc], ebx
je 0x495733
mov rax, qword [rcx]
lea r8, [rsp + 0xdc]
mov edx, 0x10000105
call qword [rax + 0x18]
mov edx, dword [rsp + 0xdc]
mov rcx, rsi
call fcn.00491510
lea rdx, str.Bezel_Geometry_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xe4], ebx
je 0x49577c
mov rax, qword [rcx]
lea r8, [rsp + 0xe4]
mov edx, 0x10000179
call qword [rax + 0x18]
mov eax, dword [rsp + 0xe4]
test eax, eax
lea r12, [0x004f6344]
lea r13, [0x004f6350]
mov r8, r12
lea rdx, str.ClearPad_t
mov rcx, rsi
cmovne r8, r13
call fcn.00490740
cmp dword [rsi + 0x448], 0xffffffff
je 0x495820
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0xec], ebx
test rcx, rcx
je 0x4957da
mov rax, qword [rcx]
lea r8, [rsp + 0xec]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0xec]
cmp edx, 2
mov eax, ebx
sete al
test eax, eax
je 0x495820
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0xf4], ebx
test rcx, rcx
je 0x495815
mov rax, qword [rcx]
lea r8, [rsp + 0xf4]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0xf4]
test al, 8
je 0x495820
mov eax, 1
jmp 0x495822
mov eax, ebx
test eax, eax
mov r8, r12
lea rdx, str.ClickPad_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xfc], ebx
je 0x495869
mov rax, qword [rcx]
lea r8, [rsp + 0xfc]
mov edx, 0x10000170
call qword [rax + 0x18]
mov eax, dword [rsp + 0xfc]
bt eax, 0x17
mov r8, r12
lea rdx, str.New_Absolute_Packet_t
cmovb r8, r13
mov rcx, rsi
call fcn.00490740
jmp 0x4958a3
lea r12, [0x004f6344]
lea r13, [0x004f6350]
jmp 0x4958a3
lea r12, [0x004f6344]
lea r13, [0x004f6350]
mov rcx, qword [rsi + 0x440]
mov r14, qword [rsp + 0x3e8]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x104], ebx
je 0x4958da
mov rax, qword [rcx]
lea r8, [rsp + 0x104]
mov edx, 0x10000145
call qword [rax + 0x18]
mov edi, dword [rsp + 0x104]
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x10c], ebx
test rcx, rcx
je 0x495909
mov rax, qword [rcx]
lea r8, [rsp + 0x10c]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov edx, dword [rsp + 0x10c]
mov r8d, edi
mov rcx, rsi
call fcn.004916b0
lea rdx, str.Buttons_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x114], ebx
test rcx, rcx
je 0x49597c
mov rax, qword [rcx]
lea r8, [rsp + 0x114]
mov edx, 0x10000143
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x114]
test ecx, ecx
jle 0x49597c
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.004a7b50
lea rdx, str.Extended_Buttons_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0x11c], ebx
test rcx, rcx
je 0x4959ab
mov rax, qword [rcx]
lea r8, [rsp + 0x11c]
mov edx, 0x10000147
call qword [rax + 0x18]
mov eax, dword [rsp + 0x11c]
test eax, eax
mov r8, r12
lea rdx, str.Stylus_Input_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x124], ebx
je 0x4959f2
mov rax, qword [rcx]
lea r8, [rsp + 0x124]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x124]
lea rcx, str.Type_1
bt eax, 0x14
lea r8, str.None
cmovb r8, rcx
lea rdx, str.Secure_Key_t
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x12c], ebx
je 0x495a46
mov rax, qword [rcx]
lea r8, [rsp + 0x12c]
mov edx, 0x10000d4
call qword [rax + 0x18]
mov edx, dword [rsp + 0x12c]
sub edx, 1
je 0x495a70
sub edx, 1
je 0x495a67
cmp edx, 1
je 0x495a5e
lea rax, str.None
jmp 0x495a77
lea rax, [0x004f50a0]
jmp 0x495a77
lea rax, [0x004f509c]
jmp 0x495a77
lea rax, [0x004f5098]
lea rdx, str.Lock_Type_t
mov r8, rax
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x134], ebx
je 0x495ab8
mov rax, qword [rcx]
lea r8, [rsp + 0x134]
mov edx, 0x10000109
call qword [rax + 0x18]
mov eax, dword [rsp + 0x134]
add eax, 0xffffffff
cmp eax, 8
ja case.default.0x495ad3
lea rdx, [0x00400000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x95fc0]
add rcx, rdx
jmp rcx
lea r15, str.T1001
jmp case.default.0x495ad3
lea r15, str.T1002
jmp case.default.0x495ad3
lea r15, str.T1002D
jmp case.default.0x495ad3
lea r15, str.T1004A
jmp case.default.0x495ad3
lea r15, str.T1004B
jmp case.default.0x495ad3
lea r15, str.T1005A
jmp case.default.0x495ad3
lea r15, str.T1006A
jmp case.default.0x495ad3
lea r15, str.T1006B
jmp case.default.0x495ad3
lea r15, str.T1007
lea rdx, str.ASIC_Type_t
mov r8, r15
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x13c], ebx
je 0x495b65
mov rax, qword [rcx]
lea r8, [rsp + 0x13c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edi, dword [rsp + 0x13c]
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x144], ebx
test rcx, rcx
je 0x495b94
mov rax, qword [rcx]
lea r8, [rsp + 0x144]
mov edx, 0x10000106
call qword [rax + 0x18]
mov edx, dword [rsp + 0x144]
mov r8d, edi
mov rcx, rsi
call fcn.00490d90
lea rdx, str.Sensor_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x14c], ebx
je 0x495be0
mov rax, qword [rcx]
lea r8, [rsp + 0x14c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edi, dword [rsp + 0x14c]
mov rcx, qword [rsi + 0x440]
mov edx, ebx
mov dword [rsp + 0x154], ebx
test rcx, rcx
je 0x495c0f
mov rax, qword [rcx]
lea r8, [rsp + 0x154]
mov edx, 0x10000107
call qword [rax + 0x18]
mov edx, dword [rsp + 0x154]
mov r8d, edi
mov rcx, rsi
call fcn.00491230
lea rdx, str.Product_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x15c], ebx
je 0x495c5b
mov rax, qword [rcx]
lea r8, [rsp + 0x15c]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x15c]
test al, 0x80
mov r8, r12
lea rdx, str.PS2_Passthrough_t
cmovne r8, r13
mov rcx, rsi
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x164], ebx
je 0x495ca2
mov rax, qword [rcx]
lea r8, [rsp + 0x164]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x164]
test al, 0x40
lea rdx, str.PS2_Glasspass_t
mov rcx, rsi
cmovne r12, r13
mov r8, r12
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov r13, qword [rsp + 0x3f0]
test rcx, rcx
mov r12, qword [rsp + 0x3f8]
mov eax, ebx
mov dword [rsp + 0x16c], ebx
je 0x495cf9
mov rax, qword [rcx]
lea r8, [rsp + 0x16c]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x16c]
lea rdx, [rsp + 0x1d0]
mov r8d, 0x10
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Capabilities_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rdi, qword [rsi + 0x440]
mov ecx, ebx
test rdi, rdi
mov dword [rsp + 0x174], ebx
je 0x495d52
mov rax, qword [rdi]
lea r8, [rsp + 0x174]
mov edx, 0x10000d5
mov rcx, rdi
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x174]
shr ecx, 0x15
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
and ecx, 1
call fcn.004a7b50
lea rdx, str.Peak_Detect_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x17c], ebx
je 0x495dac
mov rax, qword [rcx]
lea r8, [rsp + 0x17c]
mov edx, 0x1000134
call qword [rax + 0x18]
mov eax, dword [rsp + 0x17c]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Rotation_Angle_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
cmp dword [rsi + 0x448], 0xffffffff
je 0x495e74
mov rdi, qword [rsi + 0x440]
mov ecx, ebx
mov dword [rsp + 0x184], ebx
test rdi, rdi
je 0x495e12
mov rax, qword [rdi]
lea r8, [rsp + 0x184]
mov edx, 0x10000102
mov rcx, rdi
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x184]
cmp ecx, 5
mov eax, ebx
sete al
test eax, eax
je 0x495e74
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0x18c], ebx
test rcx, rcx
je 0x495e4d
mov rax, qword [rcx]
lea r8, [rsp + 0x18c]
mov edx, 0x1000325
call qword [rax + 0x18]
mov eax, dword [rsp + 0x18c]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Ballistics_Algorithm_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
mov rcx, qword [rsi + 0x440]
mov eax, ebx
mov dword [rsp + 0x194], ebx
test rcx, rcx
je 0x495ea3
mov rax, qword [rcx]
lea r8, [rsp + 0x194]
mov edx, 0x1000010d
call qword [rax + 0x18]
mov eax, dword [rsp + 0x194]
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
mov ecx, eax
call fcn.004a7b50
lea rdx, str.Report_Rate_t
mov rcx, rsi
mov r8, rax
call fcn.00490740
cmp dword [rsp + 0x1b4], ebx
jne 0x495f19
mov rcx, qword [rsi + 0x440]
mov dword [rsp + 0x19c], ebx
test rcx, rcx
je 0x495f00
mov rax, qword [rcx]
lea r8, [rsp + 0x19c]
mov edx, 0x10000104
call qword [rax + 0x18]
mov ebx, dword [rsp + 0x19c]
mov rcx, rsi
call fcn.00492fb0
sar ebx, 8
mov rcx, rsi
mov r8d, eax
movzx edx, bl
call fcn.00491980
mov r8d, dword [rsi + 0x458]
lea rdx, str.StoreDeviceDetails_buffer_size_is__d_n
lea rcx, [rsp + 0x1d0]
call fcn.004aa720
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsi + 0x450]
mov r15, qword [rsp + 0x3e0]
mov rbp, qword [rsp + 0x410]
mov rdi, qword [rsp + 0x400]
mov rsi, qword [rsp + 0x408]
mov rbx, qword [rsp + 0x438]
mov rcx, qword [rsp + 0x3d0]
xor rcx, rsp
call fcn.004a7100
add rsp, 0x418
ret
lea rdx, str.Unable_to_open_device__d_n
lea rcx, [rsp + 0x1d0]
mov r8d, edi
call fcn.004aa720
lea r8, [0x004e7dfc]
lea rdx, [rsp + 0x1d0]
mov rcx, rsi
call fcn.00490740
mov rax, qword [rsi + 0x450]
jmp 0x495f59