Function at 0x4853f0
Capabilities:
Print debug messages

Disassembly:
mov r11, rsp
sub rsp, 0x418
mov rax, qword [0x00507af8]
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 + 0x420], rbx
mov rcx, qword [rcx + 0x410]
test rcx, rcx
mov qword [r11 - 0x18], rdi
mov dword [rsp + 0x1b4], r8d
mov edi, edx
je 0x487389
mov rax, qword [rcx]
call qword [rax + 0x78]
test eax, eax
jne 0x487389
mov rcx, qword [rsi + 0x410]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
test eax, eax
jne 0x487389
mov dword [rsi + 0x418], edi
mov rcx, qword [rsi + 0x410]
mov qword [rsp + 0x410], rbp
test rcx, rcx
mov edi, ebx
mov dword [rsp + 0x160], ebx
je 0x4854a3
mov rax, qword [rcx]
lea r8, [rsp + 0x160]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov edi, dword [rsp + 0x160]
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x40], ebx
test rcx, rcx
je 0x4854c9
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.00484620
lea rdx, str.Device_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x1a4], ebx
je 0x485515
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.00481b00
lea rdx, [rsp + 0x1c0]
lea rcx, [rsi + 0x410]
mov r8d, 0x10000602
call fcn.00418aa0
mov rcx, qword [rax]
test rcx, rcx
je 0x48555f
mov rcx, qword [rcx]
jmp 0x485562
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 0x485570
mov rdi, qword [rsp + 0x1c0]
test rdi, rdi
je 0x4855c9
mov eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x4855c9
test rdi, rdi
je 0x4855c9
mov rcx, qword [rdi]
test rcx, rcx
je 0x4855b3
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x4855c1
call fcn.00491a30
mov rcx, rdi
call fcn.00490170
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.00481b00
lea rdx, [rsp + 0x1c8]
lea rcx, [rsi + 0x410]
mov r8d, 0x10000603
call fcn.00418aa0
mov rcx, qword [rax]
test rcx, rcx
je 0x485635
mov rcx, qword [rcx]
jmp 0x485638
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 0x485640
mov rdi, qword [rsp + 0x1c8]
test rdi, rdi
je 0x485699
mov eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x485699
test rdi, rdi
je 0x485699
mov rcx, qword [rdi]
test rcx, rcx
je 0x485683
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x485691
call fcn.00491a30
mov rcx, rdi
call fcn.00490170
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x48], ebx
je 0x485751
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
mov edx, 0x10000cd
call qword [rax + 0x18]
mov edi, dword [rsp + 0x48]
cmp edi, 0x20001
jg 0x485711
cmp edi, 0x20001
jne 0x485751
lea r8, str.PS2_port_0
jmp 0x4857a2
mov ecx, edi
sub ecx, 0x20002
je 0x485748
sub ecx, 1
je 0x48573f
sub ecx, 1
je 0x485736
cmp ecx, 0x1fffc
jne 0x48577b
lea r8, [0x004dc740]
jmp 0x4857a2
lea r8, str.PS2_port_3
jmp 0x4857a2
lea r8, str.PS2_port_2
jmp 0x4857a2
lea r8, str.PS2_port_1
jmp 0x4857a2
mov ecx, edi
sub ecx, 0x10001
je 0x48579b
sub ecx, 1
je 0x485792
sub ecx, 1
je 0x485789
sub ecx, 1
je 0x485780
cmp ecx, 0xfffc
jne 0x48577b
lea r8, [0x004dc7a0]
jmp 0x4857a2
mov r8, r15
jmp 0x4857a2
lea r8, str.COM4
jmp 0x4857a2
lea r8, str.COM3
jmp 0x4857a2
lea r8, str.COM2
jmp 0x4857a2
lea r8, str.COM1
lea rdx, str.Port_t
mov rcx, rsi
call fcn.00481b00
and edi, 0xffff0000
cmp edi, 0x20000
jne 0x485808
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x108], ebx
test rcx, rcx
je 0x4857ee
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.00482030
lea rdx, str.Keyboard_controller_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x50], ebx
test rcx, rcx
je 0x48582e
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.00482b80
lea rdx, str.Left_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x168], ebx
je 0x485877
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.00482b80
lea rdx, str.Right_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x58], ebx
je 0x4858b7
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.00482b80
lea rdx, str.Middle_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x110], ebx
je 0x485900
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.00482b80
lea rdx, str.Fourth_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x60], ebx
je 0x485940
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.00482b80
lea rdx, str.Fifth_Button_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x198], ebx
test rcx, rcx
je 0x487342
mov rax, qword [rcx]
lea r8, [rsp + 0x198]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edx, dword [rsp + 0x198]
cmp edx, 2
je 0x4859a7
cmp edx, 5
je 0x4859a7
cmp edx, 7
jle 0x487342
cmp edx, 9
jg 0x487342
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x68], ebx
test rcx, rcx
je 0x4859cf
mov rax, qword [rcx]
lea r8, [rsp + 0x68]
mov edx, 0x10000104
call qword [rax + 0x18]
mov r8d, dword [rsp + 0x68]
cmp dword [rsi + 0x430], ebx
mov qword [rsp + 0x3f8], r12
je 0x485a10
mov eax, r8d
lea r12, [rsi + 8]
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 0x485a32
mov eax, r8d
lea r12, [rsi + 8]
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.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x30], 6
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x10000e3
call qword [rax + 0x18]
mov rcx, qword [rsi + 0x410]
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 0x485ac2
test r9d, r9d
jne 0x485ac2
lea r8, str.Unserialized
jmp 0x485ad8
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x118], ebx
je 0x485b20
mov rax, qword [rcx]
lea r8, [rsp + 0x118]
mov edx, 0x1000014f
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x118]
mov rcx, qword [rsi + 0x410]
mov qword [rsp + 0x3f0], r13
mov dword [rsp + 0x70], ebx
test rcx, rcx
mov r13d, ebx
je 0x485b50
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
mov edx, 0x1000014e
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x70]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0x170], ebx
test rcx, rcx
je 0x485b7f
mov rax, qword [rcx]
lea r8, [rsp + 0x170]
mov edx, 0x1000014d
call qword [rax + 0x18]
mov edi, dword [rsp + 0x170]
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x78], ebx
lea rax, str.None
test rcx, rcx
je 0x485c3e
mov rax, qword [rcx]
lea r8, [rsp + 0x78]
mov edx, 0x1000010e
call qword [rax + 0x18]
cmp dword [rsp + 0x78], ebx
je 0x485c37
test edi, edi
mov word [r12], bx
je 0x485bd7
xor eax, eax
mov rdi, r12
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [0x004dca40]
mov qword [rdi - 2], rax
test r13d, r13d
je 0x485bff
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 [0x004dca38]
mov dword [rdi + 6], eax
test r14d, r14d
je 0x485c32
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 [0x004dca20]
mov qword [rdi + 6], rax
mov eax, dword [0x004dca28]
mov dword [rdi + 0xe], eax
mov r8, r12
jmp 0x485c41
lea rax, str.None
mov r8, rax
lea rdx, str.Gestures_Enabled_t
mov rcx, rsi
call fcn.00481b00
cmp dword [rsi + 0x418], 0xffffffff
lea r13, [0x004de920]
lea rdi, [0x004de914]
je 0x4862bd
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x120], ebx
test rcx, rcx
je 0x485c9a
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 0x4862bd
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0x80], ebx
test rcx, rcx
je 0x485cd9
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x1a8], ebx
je 0x485d20
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x88], ebx
je 0x485d67
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x128], ebx
je 0x485dae
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x90], ebx
je 0x485df5
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x178], ebx
je 0x485e3e
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x98], ebx
je 0x485e87
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x130], ebx
je 0x485ed0
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xa0], ebx
je 0x485f19
mov rax, qword [rcx]
lea r8, [rsp + 0xa0]
mov edx, 0x10000150
call qword [rax + 0x18]
mov eax, dword [rsp + 0xa0]
lea rcx, [0x004de7f8]
test eax, eax
lea r8, [0x004de7f0]
cmovne r8, rcx
lea rdx, str.Taps_Zones_t
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x1a0], ebx
je 0x485f6b
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.00482b80
lea rdx, str.Top_Left_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xa8], ebx
je 0x485fb4
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.00482b80
lea rdx, str.Top_Right_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x138], ebx
je 0x485ffd
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.00482b80
lea rdx, str.Bottom_Left_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xb0], ebx
je 0x486046
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.00482b80
lea rdx, str.Bottom_Right_Corner_Action_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x180], ebx
test rcx, rcx
je 0x486098
mov rax, qword [rcx]
lea r8, [rsp + 0x180]
mov edx, 0x10000153
call qword [rax + 0x18]
cmp dword [rsp + 0x180], ebx
je 0x486098
lea r8, str.Always
jmp 0x4860db
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0xb8], ebx
test rcx, rcx
je 0x4860c7
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x140], ebx
je 0x486119
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.00490d30
lea rdx, str.Edge_Motion_Speed_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xc0], ebx
je 0x48616f
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.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x34], ebx
mov rax, qword [rcx]
lea r8, [rsp + 0x34]
mov edx, 0x100015e
call qword [rax + 0x18]
test eax, eax
jne 0x4861b4
mov edx, dword [rsp + 0x34]
mov rcx, rsi
call fcn.00482750
jmp 0x4861b7
mov rax, r15
lea rdx, str.Slow_Motion_Key_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
lea r8, [rsp + 0x34]
mov rax, qword [rcx]
mov edx, 0x100015f
call qword [rax + 0x18]
test eax, eax
jne 0x4861f2
mov edx, dword [rsp + 0x34]
mov rcx, rsi
call fcn.00482750
jmp 0x4861f5
mov rax, r15
lea rdx, str.Constrained_Motion_Key_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x1b0], ebx
test rcx, rcx
je 0x48624d
mov rax, qword [rcx]
lea r8, [rsp + 0x1b0]
mov edx, 0x1000131
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x1b0]
test ecx, ecx
je 0x48624d
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.00490d30
jmp 0x486250
mov rax, r15
lea rdx, str.Slow_Cursor_Speed_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0xc8], ebx
test rcx, rcx
je 0x4862a8
mov rax, qword [rcx]
lea r8, [rsp + 0xc8]
mov edx, 0x100013b
call qword [rax + 0x18]
mov ecx, dword [rsp + 0xc8]
test ecx, ecx
je 0x4862a8
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.00490d30
jmp 0x4862ab
mov rax, r15
lea rdx, str.Tapping_Speed_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0x148], ebx
test rcx, rcx
je 0x4862ec
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.00490d30
lea rdx, str.Touch_Threshold_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0xd0], ebx
test rcx, rcx
je 0x486359
mov rax, qword [rcx]
lea r8, [rsp + 0xd0]
mov edx, 0x1000132
call qword [rax + 0x18]
mov ecx, dword [rsp + 0xd0]
test ecx, ecx
je 0x486359
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.00490d30
jmp 0x48635c
mov rax, r15
lea rdx, str.PalmCheck_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x188], ebx
je 0x48639d
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.00490d30
lea rdx, str.Maximum_Z_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xd8], ebx
je 0x4863f3
mov rax, qword [rcx]
lea r8, [rsp + 0xd8]
mov edx, 0x10000114
call qword [rax + 0x18]
mov edi, dword [rsp + 0xd8]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x150], ebx
test rcx, rcx
je 0x486424
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0xe0], ebx
je 0x48647a
mov rax, qword [rcx]
lea r8, [rsp + 0xe0]
mov edx, 0x10000118
call qword [rax + 0x18]
mov r14d, dword [rsp + 0xe0]
mov rcx, qword [rsi + 0x410]
mov r13d, ebx
mov dword [rsp + 0x1ac], ebx
test rcx, rcx
je 0x4864ab
mov rax, qword [rcx]
lea r8, [rsp + 0x1ac]
mov edx, 0x10000117
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x1ac]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0xe8], ebx
test rcx, rcx
je 0x4864da
mov rax, qword [rcx]
lea r8, [rsp + 0xe8]
mov edx, 0x10000116
call qword [rax + 0x18]
mov edi, dword [rsp + 0xe8]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x158], ebx
test rcx, rcx
je 0x48650b
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.00481b00
cmp dword [rsi + 0x418], 0xffffffff
je 0x486c85
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0xf0], ebx
test rcx, rcx
je 0x486576
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 0x486c95
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
mov dword [rsp + 0x190], ebx
test rcx, rcx
je 0x4865b7
mov rax, qword [rcx]
lea r8, [rsp + 0x190]
mov edx, 0x1000206
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x190]
mov rcx, qword [rsi + 0x410]
mov r13d, ebx
mov dword [rsp + 0xf8], ebx
test rcx, rcx
je 0x4865e8
mov rax, qword [rcx]
lea r8, [rsp + 0xf8]
mov edx, 0x1000205
call qword [rax + 0x18]
mov r13d, dword [rsp + 0xf8]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0x38], ebx
test rcx, rcx
je 0x48660e
mov rax, qword [rcx]
lea r8, [rsp + 0x38]
mov edx, 0x1000204
call qword [rax + 0x18]
mov edi, dword [rsp + 0x38]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x100], ebx
test rcx, rcx
je 0x48663f
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x3c], ebx
je 0x486696
mov rax, qword [rcx]
lea r8, [rsp + 0x3c]
mov edx, 0x1000011c
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x3c]
mov rcx, qword [rsi + 0x410]
mov r13d, ebx
mov dword [rsp + 0x44], ebx
test rcx, rcx
je 0x4866be
mov rax, qword [rcx]
lea r8, [rsp + 0x44]
mov edx, 0x1000011b
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x44]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0x4c], ebx
test rcx, rcx
je 0x4866e4
mov rax, qword [rcx]
lea r8, [rsp + 0x4c]
mov edx, 0x1000011a
call qword [rax + 0x18]
mov edi, dword [rsp + 0x4c]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x54], ebx
test rcx, rcx
je 0x48670c
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x5c], ebx
je 0x486763
mov rax, qword [rcx]
lea r8, [rsp + 0x5c]
mov edx, 0x10000120
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x5c]
mov rcx, qword [rsi + 0x410]
mov r13d, ebx
mov dword [rsp + 0x64], ebx
test rcx, rcx
je 0x48678b
mov rax, qword [rcx]
lea r8, [rsp + 0x64]
mov edx, 0x1000011f
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x64]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0x6c], ebx
test rcx, rcx
je 0x4867b1
mov rax, qword [rcx]
lea r8, [rsp + 0x6c]
mov edx, 0x1000011e
call qword [rax + 0x18]
mov edi, dword [rsp + 0x6c]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x74], ebx
test rcx, rcx
je 0x4867d9
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r14d, ebx
test rcx, rcx
mov dword [rsp + 0x7c], ebx
je 0x486830
mov rax, qword [rcx]
lea r8, [rsp + 0x7c]
mov edx, 0x10000126
call qword [rax + 0x18]
mov r14d, dword [rsp + 0x7c]
mov rcx, qword [rsi + 0x410]
mov r13d, ebx
mov dword [rsp + 0x84], ebx
test rcx, rcx
je 0x486861
mov rax, qword [rcx]
lea r8, [rsp + 0x84]
mov edx, 0x10000125
call qword [rax + 0x18]
mov r13d, dword [rsp + 0x84]
mov rcx, qword [rsi + 0x410]
mov edi, ebx
mov dword [rsp + 0x8c], ebx
test rcx, rcx
je 0x486890
mov rax, qword [rcx]
lea r8, [rsp + 0x8c]
mov edx, 0x10000124
call qword [rax + 0x18]
mov edi, dword [rsp + 0x8c]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0x94], ebx
test rcx, rcx
je 0x4868c1
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x9c], ebx
je 0x48691f
mov rax, qword [rcx]
lea r8, [rsp + 0x9c]
mov edx, 0x1000012a
call qword [rax + 0x18]
mov edi, dword [rsp + 0x9c]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0xa4], ebx
test rcx, rcx
je 0x486950
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xac], ebx
je 0x4869a4
mov rax, qword [rcx]
lea r8, [rsp + 0xac]
mov edx, 0x1000012c
call qword [rax + 0x18]
mov edi, dword [rsp + 0xac]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0xb4], ebx
test rcx, rcx
je 0x4869d5
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xbc], ebx
je 0x486a29
mov rax, qword [rcx]
lea r8, [rsp + 0xbc]
mov edx, 0x10000130
call qword [rax + 0x18]
mov edi, dword [rsp + 0xbc]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0xc4], ebx
test rcx, rcx
je 0x486a5a
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0xcc], ebx
je 0x486aae
mov rax, qword [rcx]
lea r8, [rsp + 0xcc]
mov edx, 0x1000012e
call qword [rax + 0x18]
mov edi, dword [rsp + 0xcc]
mov rcx, qword [rsi + 0x410]
mov r8d, ebx
mov dword [rsp + 0xd4], ebx
test rcx, rcx
je 0x486adf
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0xdc], ebx
je 0x486b33
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.004828d0
lea rdx, str.Bezel_Geometry_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xe4], ebx
je 0x486b7c
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, [0x004de914]
lea r13, [0x004de920]
mov r8, r12
lea rdx, str.ClearPad_t
mov rcx, rsi
cmovne r8, r13
call fcn.00481b00
cmp dword [rsi + 0x418], 0xffffffff
je 0x486c20
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0xec], ebx
test rcx, rcx
je 0x486bda
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 0x486c20
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0xf4], ebx
test rcx, rcx
je 0x486c15
mov rax, qword [rcx]
lea r8, [rsp + 0xf4]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0xf4]
test al, 8
je 0x486c20
mov eax, 1
jmp 0x486c22
mov eax, ebx
test eax, eax
mov r8, r12
lea rdx, str.ClickPad_t
cmovne r8, r13
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0xfc], ebx
je 0x486c69
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.00481b00
jmp 0x486ca3
lea r12, [0x004de914]
lea r13, [0x004de920]
jmp 0x486ca3
lea r12, [0x004de914]
lea r13, [0x004de920]
mov rcx, qword [rsi + 0x410]
mov r14, qword [rsp + 0x3e8]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x104], ebx
je 0x486cda
mov rax, qword [rcx]
lea r8, [rsp + 0x104]
mov edx, 0x10000145
call qword [rax + 0x18]
mov edi, dword [rsp + 0x104]
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x10c], ebx
test rcx, rcx
je 0x486d09
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.00482a70
lea rdx, str.Buttons_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x114], ebx
test rcx, rcx
je 0x486d7c
mov rax, qword [rcx]
lea r8, [rsp + 0x114]
mov edx, 0x10000143
call qword [rax + 0x18]
mov ecx, dword [rsp + 0x114]
test ecx, ecx
jle 0x486d7c
lea rdx, [rsp + 0x1d0]
mov r8d, 0xa
call fcn.00490d30
lea rdx, str.Extended_Buttons_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0x11c], ebx
test rcx, rcx
je 0x486dab
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x124], ebx
je 0x486df2
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.00481b00
mov rcx, qword [rsi + 0x410]
mov edx, ebx
test rcx, rcx
mov dword [rsp + 0x12c], ebx
je 0x486e46
mov rax, qword [rcx]
lea r8, [rsp + 0x12c]
mov edx, 0x10000d4
call qword [rax + 0x18]
mov edx, dword [rsp + 0x12c]
sub edx, 1
je 0x486e70
sub edx, 1
je 0x486e67
cmp edx, 1
je 0x486e5e
lea rax, str.None
jmp 0x486e77
lea rax, [0x004dd5a0]
jmp 0x486e77
lea rax, [0x004dd59c]
jmp 0x486e77
lea rax, [0x004dd598]
lea rdx, str.Lock_Type_t
mov r8, rax
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x134], ebx
je 0x486eb8
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.0x486ed3
lea rdx, [0x00400000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x873c0]
add rcx, rdx
jmp rcx
lea r15, str.T1001
jmp case.default.0x486ed3
lea r15, str.T1002
jmp case.default.0x486ed3
lea r15, str.T1002D
jmp case.default.0x486ed3
lea r15, str.T1004A
jmp case.default.0x486ed3
lea r15, str.T1004B
jmp case.default.0x486ed3
lea r15, str.T1005A
jmp case.default.0x486ed3
lea r15, str.T1006A
jmp case.default.0x486ed3
lea r15, str.T1006B
jmp case.default.0x486ed3
lea r15, str.T1007
lea rdx, str.ASIC_Type_t
mov r8, r15
mov rcx, rsi
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x13c], ebx
je 0x486f65
mov rax, qword [rcx]
lea r8, [rsp + 0x13c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edi, dword [rsp + 0x13c]
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x144], ebx
test rcx, rcx
je 0x486f94
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.00482150
lea rdx, str.Sensor_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov edi, ebx
test rcx, rcx
mov dword [rsp + 0x14c], ebx
je 0x486fe0
mov rax, qword [rcx]
lea r8, [rsp + 0x14c]
mov edx, 0x10000102
call qword [rax + 0x18]
mov edi, dword [rsp + 0x14c]
mov rcx, qword [rsi + 0x410]
mov edx, ebx
mov dword [rsp + 0x154], ebx
test rcx, rcx
je 0x48700f
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.004825f0
lea rdx, str.Product_Type_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x15c], ebx
je 0x48705b
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.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x164], ebx
je 0x4870a2
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.00481b00
mov rcx, qword [rsi + 0x410]
mov r13, qword [rsp + 0x3f0]
test rcx, rcx
mov r12, qword [rsp + 0x3f8]
mov eax, ebx
mov dword [rsp + 0x16c], ebx
je 0x4870f9
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.00490d30
lea rdx, str.Capabilities_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rdi, qword [rsi + 0x410]
mov ecx, ebx
test rdi, rdi
mov dword [rsp + 0x174], ebx
je 0x487152
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.00490d30
lea rdx, str.Peak_Detect_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
test rcx, rcx
mov dword [rsp + 0x17c], ebx
je 0x4871ac
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.00490d30
lea rdx, str.Rotation_Angle_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
cmp dword [rsi + 0x418], 0xffffffff
je 0x487274
mov rdi, qword [rsi + 0x410]
mov ecx, ebx
mov dword [rsp + 0x184], ebx
test rdi, rdi
je 0x487212
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 0x487274
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0x18c], ebx
test rcx, rcx
je 0x48724d
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.00490d30
lea rdx, str.Ballistics_Algorithm_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
mov rcx, qword [rsi + 0x410]
mov eax, ebx
mov dword [rsp + 0x194], ebx
test rcx, rcx
je 0x4872a3
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.00490d30
lea rdx, str.Report_Rate_t
mov rcx, rsi
mov r8, rax
call fcn.00481b00
cmp dword [rsp + 0x1b4], ebx
jne 0x487319
mov rcx, qword [rsi + 0x410]
mov dword [rsp + 0x19c], ebx
test rcx, rcx
je 0x487300
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.00484770
sar ebx, 8
mov rcx, rsi
mov r8d, eax
movzx edx, bl
call fcn.00482d40
mov r8d, dword [rsi + 0x428]
lea rdx, str.StoreDeviceDetails_buffer_size_is__d_n
lea rcx, [rsp + 0x1d0]
call fcn.00493300
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsi + 0x420]
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.004902e0
add rsp, 0x418
ret
lea rdx, str.Unable_to_open_device__d_n
lea rcx, [rsp + 0x1d0]
mov r8d, edi
call fcn.00493300
lea r8, [0x004d0d8c]
lea rdx, [rsp + 0x1d0]
mov rcx, rsi
call fcn.00481b00
mov rax, qword [rsi + 0x420]
jmp 0x487359