Function at 0x495c50
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4da1b8
push eax
mov dword fs:[0], esp
sub esp, 0x230
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x420]
mov dword [esi + 0x440], 0
mov ecx, dword [ebx + 4]
mov eax, ecx
test ecx, ecx
jne 0x495c8f
lea eax, [ebx + 0x10]
mov edi, dword [ebp + 8]
test eax, eax
je 0x4971e7
test ecx, ecx
jne 0x495ca1
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
push edi
push ecx
call dword [eax + 0x3c]
test eax, eax
jne 0x4971e7
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x495cba
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x44]
test eax, eax
jne 0x4971e7
mov dword [ebx + 0x18], edi
lea edi, [esi + 0x424]
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x495cf0
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x495d0d
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
push 0x10000102
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
push ebx
push eax
mov ecx, esi
call fcn.004927a0
push eax
push str.Device_Type_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x495d40
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000171
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp + 8]
test edx, edx
mov ecx, 0x4dd078
mov eax, str.Disabled
cmove eax, ecx
mov ecx, esi
push eax
push str.Device_State_t
call fcn.00491f90
push 0x10000602
lea eax, [ebp + 8]
mov ecx, edi
push eax
call fcn.0041a900
mov ecx, dword [eax]
test ecx, ecx
je 0x495d76
mov ecx, dword [ecx]
jmp 0x495d78
xor ecx, ecx
lea edx, [ebp - 0x23c]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x495d80
lea ecx, [ebp + 8]
call fcn.0042a710
lea ecx, [ebp - 0x23c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495da1
sub ecx, edx
lea eax, [ebp - 0x23c]
sar ecx, 1
mov ecx, 0x4dc62c
cmove eax, ecx
mov ecx, esi
push eax
push str.Plug_and_Play_ID_t
call fcn.00491f90
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.00492e30
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 0
jb 0x495de5
mov eax, dword [eax]
push eax
push str.Board_Number_t
mov ecx, esi
call fcn.00491f90
cmp dword [ebp - 0x28], 8
mov dword [ebp - 4], 0xffffffff
jb 0x495e0a
push dword [ebp - 0x3c]
call fcn.004a46e7
add esp, 4
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x495e27
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000cd
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov ebx, eax
and ebx, 0xffff0000
cmp ebx, 0x200000
jne 0x495e7b
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.00493340
push dword [eax]
mov ecx, esi
mov dword [ebp - 4], 1
push str.ProductID_Version_t
call fcn.00491f90
mov edx, dword [ebp - 0x10]
or ecx, 0xffffffff
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x495e7b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00493560
push dword [ebp - 0x10]
mov ecx, esi
push dword [ebp - 0x18]
call fcn.004959f0
push eax
push str.Serial_Number_t
mov ecx, esi
call fcn.00491f90
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.00493150
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 2
jb 0x495ebe
mov eax, dword [eax]
push eax
push str.OEM________t
mov ecx, esi
call fcn.00491f90
cmp dword [ebp - 0x28], 8
mov dword [ebp - 4], 0xffffffff
jb 0x495ee3
push dword [ebp - 0x3c]
call fcn.004a46e7
add esp, 4
push 0x10000603
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.0041a900
mov ecx, dword [eax]
test ecx, ecx
je 0x495efd
mov ecx, dword [ecx]
jmp 0x495eff
xor ecx, ecx
lea edx, [ebp - 0x23c]
sub edx, ecx
jmp 0x495f10
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x495f10
lea ecx, [ebp - 0x10]
call fcn.0042a710
lea ecx, [ebp - 0x23c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495f31
sub ecx, edx
lea eax, [ebp - 0x23c]
sar ecx, 1
mov ecx, 0x4dc62c
cmove eax, ecx
mov ecx, esi
push eax
push str.Config_Key_t
call fcn.00491f90
push dword [ebp + 8]
mov ecx, esi
call fcn.004952f0
push eax
push str.Port_t
mov ecx, esi
call fcn.00491f90
cmp ebx, 0x20000
jne 0x495fac
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x495f97
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d6
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00494100
push eax
push str.Keyboard_controller_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x495fc9
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000135
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Left_Button_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x495ffb
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000136
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Right_Button_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x49602d
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000138
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Middle_Button_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x49605f
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000015b
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Fourth_Button_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496091
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000015c
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Fifth_Button_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4960c3
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000102
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x4960d6.3
movzx eax, byte [eax + 0x497230]
jmp dword [eax*4 + 0x497228]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4960fa
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000104
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.004929c0
push eax
push str.Firmware_Revision_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496132
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000014f
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x14], ebx
test ecx, ecx
je 0x49614f
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
push 0x1000014e
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x496172
mov eax, dword [ecx]
lea edx, [ebp - 0x1c]
push edx
push 0x1000014d
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x49618f
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x1000010e
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x18]
mov ecx, esi
push ebx
push dword [ebp - 0x10]
push eax
call fcn.00492c50
push eax
push str.Gestures_Enabled_t
mov ecx, esi
call fcn.00491f90
cmp dword [esi + 0x438], 0xffffffff
mov ebx, 0x4e9b9c
je 0x4966fc
mov edx, dword [esi + 0x424]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4961de
mov eax, dword [edx]
lea ecx, [ebp + 8]
push ecx
push 0x10000102
push edx
call dword [eax + 0xc]
mov ecx, dword [ebp + 8]
xor eax, eax
cmp ecx, 2
sete al
test eax, eax
je 0x4966fc
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x49620b
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000146
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_Gestures_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x496241
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000177
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_Report_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496277
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000379
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Max_Number_Finger_Report_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4962b3
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000017a
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_PacketGroups_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4962e9
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000189
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.Cover_Gesture_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x49631f
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, 0x20000
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.Supports_W_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496358
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, 0x800
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.Imaging_Sensor_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496391
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, 0x200
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.Report_V_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4963ca
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, 0x2000
mov ecx, esi
mov eax, 0x4e9ba4
cmove eax, ebx
push eax
push str.1:1_FW_Filter_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496401
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, 0x1000
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.RMI_Backdoor_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x49643a
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000150
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9d18
mov eax, 0x4e9d10
cmove eax, ecx
mov ecx, esi
push eax
push str.Taps_Zones_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496473
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000131
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Top_Left_Corner_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4964a5
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000132
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Top_Right_Corner_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4964d7
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000134
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Bottom_Left_Corner_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496509
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000133
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, esi
call fcn.00492120
push eax
push str.Bottom_Right_Corner_Action_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x496547
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000153
push ecx
call dword [eax + 0xc]
cmp dword [ebp - 0x10], 0
je 0x496547
mov ecx, str.Always
jmp 0x496562
push 0x10000152
mov ecx, esi
call fcn.00493460
test eax, eax
mov ecx, str.When_Dragging
mov eax, str.None
cmove ecx, eax
push ecx
push str.Edge_Motion_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x49658c
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000111
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Edge_Motion_Speed_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4965c8
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000159
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.Pressure_Edge_Motion_t
call fcn.00491f90
mov ecx, dword [esi + 0x424]
mov dword [ebp + 8], 0
test ecx, ecx
jne 0x4965f8
lea ecx, [esi + 0x430]
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x100015e
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x496617
push dword [ebp + 8]
mov ecx, esi
call fcn.004944f0
jmp 0x49661c
mov eax, 0x4dc62c
push eax
push str.Slow_Motion_Key_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [esi + 0x424]
test ecx, ecx
jne 0x496639
lea ecx, [esi + 0x430]
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x100015f
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x496658
push dword [ebp + 8]
mov ecx, esi
call fcn.004944f0
jmp 0x49665d
mov eax, 0x4dc62c
push eax
push str.Constrained_Motion_Key_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x4966a1
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000131
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4966a1
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
jmp 0x4966a6
mov eax, 0x4dc62c
push eax
push str.Slow_Cursor_Speed_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x4966ea
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x100013b
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4966ea
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
jmp 0x4966ef
mov eax, 0x4dc62c
push eax
push str.Tapping_Speed_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496719
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000128
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Touch_Threshold_t
call fcn.00491f90
mov ecx, dword [edi]
mov dword [ebp + 8], 0
test ecx, ecx
je 0x49676f
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000132
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test eax, eax
je 0x49676f
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
jmp 0x496774
mov eax, 0x4e9d18
push eax
push str.PalmCheck_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x49679e
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000127
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Maximum_Z_t
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4967da
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000114
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4967f7
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000113
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004952c0
push eax
push str.Resolution__DPI__t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x496830
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000118
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496853
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000117
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
test ecx, ecx
je 0x496870
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x10000116
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x49688d
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000115
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
mov ecx, esi
push dword [ebp - 0x14]
push ebx
push eax
call fcn.004955e0
push eax
push str.Sensor_Rectangle_t
mov ecx, esi
call fcn.00491f90
cmp dword [esi + 0x438], 0xffffffff
je 0x496d3d
mov edx, dword [esi + 0x424]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4968d7
mov eax, dword [edx]
lea ecx, [ebp + 8]
push ecx
push 0x10000102
push edx
call dword [eax + 0xc]
mov ecx, dword [ebp + 8]
xor eax, eax
cmp ecx, 2
sete al
test eax, eax
je 0x496d3d
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496904
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000206
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496927
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000205
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x49694a
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x1000204
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x496967
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x1000203
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push ebx
push dword [ebp - 0x1c]
mov ecx, esi
push dword [ebp - 0x14]
push eax
call fcn.004955e0
push eax
push str.Sensor_FW_Coords_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4969a6
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000011c
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4969c9
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000011b
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
test ecx, ecx
je 0x4969e6
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x1000011a
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x496a03
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000119
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
mov ecx, esi
push dword [ebp - 0x14]
push ebx
push eax
call fcn.004955e0
push eax
push str.Bezel_Rectangle_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x496a42
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000120
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496a65
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000011f
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
test ecx, ecx
je 0x496a82
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x1000011e
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x496a9f
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x1000011d
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
mov ecx, esi
push dword [ebp - 0x14]
push ebx
push eax
call fcn.004955e0
push eax
push str.Edge_Motion_Rectangle_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x496ade
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000126
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496b01
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000125
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
test ecx, ecx
je 0x496b1e
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x10000124
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x496b3b
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000123
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
mov ecx, esi
push dword [ebp - 0x14]
push ebx
push eax
call fcn.004955e0
push eax
push str.Wide_Border_Rectangle_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496b74
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000012a
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496b91
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000129
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004952c0
push eax
push str.Top_Left_Corner_Zone_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496bc4
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000012c
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496be1
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000012b
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004952c0
push eax
push str.Top_Right_Corner_Zone_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496c14
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000130
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496c31
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000012f
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004952c0
push eax
push str.Bottom_Left_Corner_Zone_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496c64
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000012e
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496c81
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x1000012d
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004952c0
push eax
push str.Bottom_Right_Corner_Zone_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496cb4
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000105
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00492a30
push eax
push str.Bezel_Geometry_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x496ce6
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000179
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov ebx, 0x4e9b9c
test edx, edx
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.ClearPad_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496d21
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000170
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test eax, 0x800000
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.New_Absolute_Packet_t
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496d5a
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000145
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496d77
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.004922c0
push eax
push str.Buttons_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
mov dword [ebp + 8], 0
test ecx, ecx
je 0x496dcf
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000143
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test eax, eax
jle 0x496dcf
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Extended_Buttons_t
call fcn.00491f90
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x496dec
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000147
push ecx
call dword [eax + 0xc]
mov edx, dword [ebp + 8]
test edx, edx
mov ecx, 0x4e9ba4
mov eax, 0x4e9b9c
cmove eax, ecx
mov ecx, esi
push eax
push str.Stylus_Input_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496e25
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test eax, 0x100000
mov ecx, str.None
mov eax, str.Type_1
cmove eax, ecx
mov ecx, esi
push eax
push str.Secure_Key_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496e61
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d4
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00494230
push eax
push str.Lock_Type_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496e93
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000109
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00491bc0
push eax
push str.ASIC_Type_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496ec5
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000102
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496ee2
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000106
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.00495610
push eax
push str.Sensor_Type_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x496f15
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000102
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x496f32
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000107
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.00495430
push eax
push str.Product_Type_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496f65
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test al, 0x80
mov ebx, 0x4e9b9c
mov ecx, 0x4e9ba4
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.PS2_Passthrough_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496fa0
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
test al, 0x40
mov ecx, esi
mov eax, 0x4e9ba4
cmove ebx, eax
push ebx
push str.PS2_Glasspass_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x496fd4
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0x10
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Capabilities_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x497010
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000fd
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0x10
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.RMI4_Capabilities_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x49704c
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0xa
lea ecx, [ebp - 0x23c]
shr eax, 0x15
push ecx
and eax, 1
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Peak_Detect_t
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x49708e
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000134
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Rotation_Angle_t
call fcn.00491f90
cmp dword [esi + 0x438], 0xffffffff
je 0x49711f
mov edx, dword [esi + 0x424]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4970d7
mov eax, dword [edx]
lea ecx, [ebp + 8]
push ecx
push 0x10000102
push edx
call dword [eax + 0xc]
mov ecx, dword [ebp + 8]
xor eax, eax
cmp ecx, 5
sete al
test eax, eax
je 0x49711f
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x497100
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000325
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0xa
lea ecx, [ebp - 0x23c]
push ecx
push eax
call fcn.004a5ffd
add esp, 0xc
mov ecx, esi
push eax
push str.Ballistics_Algorithm_t
call fcn.00491f90
lea ecx, [esi + 0x420]
call fcn.004934a0
test eax, eax
je 0x49714d
push 0xa
lea eax, [ebp - 0x23c]
push eax
lea ecx, [esi + 0x420]
call fcn.004934a0
push eax
call fcn.004a5ffd
add esp, 0xc
jmp 0x497152
mov eax, str.Not_Supported
push eax
push str.Report_Rate_t
mov ecx, esi
call fcn.00491f90
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x24], eax
test ecx, ecx
je 0x49717c
mov eax, dword [ecx]
lea edx, [ebp - 0x24]
push edx
push 0x10000d5
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x24]
test eax, 0x40000
je 0x497199
push 1
mov ecx, esi
call fcn.00491b80
push eax
push str.ACM_t
mov ecx, esi
call fcn.00491f90
mov ecx, esi
call fcn.00493270
push eax
mov ecx, esi
call fcn.00491f20
lea ecx, [esi + 0x420]
call fcn.00494030
test eax, eax
je 0x4971be
mov ecx, esi
call fcn.00491c70
push dword [esi + 0x444]
lea eax, [ebp - 0x23c]
push str.StoreDeviceDetails_buffer_size_is__d_n
push eax
call fcn.004a6894
add esp, 0xc
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp case.0x4960d6.3
push edi
lea eax, [ebp - 0x23c]
push str.Unable_to_open_device__d_n
push eax
call fcn.004a6894
add esp, 0xc
lea eax, [ebp - 0x23c]
mov ecx, esi
push 0x4db8b8
push eax
call fcn.00491f90
mov eax, dword [esi + 0x440]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8