Function at 0x4be160
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x50be00
push eax
mov dword fs:[0], esp
sub esp, 0x238
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 0x4be19f
lea eax, [ebx + 0x10]
mov edi, dword [ebp + 8]
test eax, eax
je 0x4bf899
test ecx, ecx
jne 0x4be1b1
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
push edi
push ecx
call dword [eax + 0x3c]
test eax, eax
jne 0x4bf899
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x4be1ca
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x44]
test eax, eax
jne 0x4bf899
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 0x4be200
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 0x4be21d
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.004ba230
push eax
push str.Device_Type_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4be250
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, str.Enabled
mov eax, str.Disabled
cmove eax, ecx
mov ecx, esi
push eax
push str.Device_State_t
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp + 8], 0
test ecx, ecx
je 0x4be288
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000323
push ecx
call dword [eax + 0xc]
cmp dword [ebp + 8], 0xffffffff
mov ecx, 0x532768
mov eax, 0x532760
cmovne eax, ecx
mov ecx, esi
push eax
push str.Master_Device_t
call fcn.004b9a20
push 0x10000602
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00422080
mov ecx, dword [eax]
test ecx, ecx
je 0x4be2c0
mov ecx, dword [ecx]
jmp 0x4be2c2
xor ecx, ecx
lea edx, [ebp - 0x244]
sub edx, ecx
lea ebx, [ebx]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4be2d0
lea ecx, [ebp - 0x10]
call fcn.00433490
lea ecx, [ebp - 0x244]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4be2f1
sub ecx, edx
lea eax, [ebp - 0x244]
sar ecx, 1
mov ecx, 0x510414
cmove eax, ecx
mov ecx, esi
push eax
push str.Plug_and_Play_ID_t
call fcn.004b9a20
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.004ba9d0
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 0
jb 0x4be335
mov eax, dword [eax]
push eax
push str.Board_Number_t
mov ecx, esi
call fcn.004b9a20
cmp dword [ebp - 0x28], 8
mov dword [ebp - 4], 0xffffffff
jb 0x4be35a
push dword [ebp - 0x3c]
call fcn.004cf489
add esp, 4
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x14], ebx
test ecx, ecx
je 0x4be377
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
push 0x10000cd
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x14]
cmp dword [ebp + 8], 0xffffffff
je 0x4be3c6
lea ecx, [ebp - 0x44]
call fcn.00439a80
push 0
push dword [ebp + 8]
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 1
call fcn.0043b290
mov ecx, dword [ebp - 0x40]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4be3b7
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000cd
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0xffffffff
call fcn.00417720
mov eax, ebx
and eax, 0xffff0000
mov dword [ebp - 0x24], eax
cmp eax, 0x200000
jne 0x4be41b
lea eax, [ebp + 8]
mov ecx, esi
push eax
call fcn.004bb090
push dword [eax]
mov ecx, esi
mov dword [ebp - 4], 2
push str.ProductID_Version_t
call fcn.004b9a20
mov edx, dword [ebp + 8]
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 0x4be41b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004bb2b0
push dword [ebp + 8]
mov ecx, esi
push dword [ebp - 0x10]
call fcn.004bde60
push eax
push str.Serial_Number_t
mov ecx, esi
call fcn.004b9a20
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.004baea0
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 3
jb 0x4be45e
mov eax, dword [eax]
push eax
push str.OEM________t
mov ecx, esi
call fcn.004b9a20
cmp dword [ebp - 0x28], 8
mov dword [ebp - 4], 0xffffffff
jb 0x4be483
push dword [ebp - 0x3c]
call fcn.004cf489
add esp, 4
push 0x10000603
lea eax, [ebp + 8]
mov ecx, edi
push eax
call fcn.00422080
mov ecx, dword [eax]
test ecx, ecx
je 0x4be49d
mov ecx, dword [ecx]
jmp 0x4be49f
xor ecx, ecx
lea edx, [ebp - 0x244]
sub edx, ecx
jmp 0x4be4b0
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4be4b0
lea ecx, [ebp + 8]
call fcn.00433490
lea ecx, [ebp - 0x244]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4be4d1
sub ecx, edx
lea eax, [ebp - 0x244]
sar ecx, 1
mov ecx, 0x510414
cmove eax, ecx
mov ecx, esi
push eax
push str.Config_Key_t
call fcn.004b9a20
push ebx
mov ecx, esi
call fcn.004bd730
push eax
push str.Port_t
mov ecx, esi
call fcn.004b9a20
cmp dword [ebp - 0x24], 0x20000
jne 0x4be54b
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be536
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.004bc3e0
push eax
push str.Keyboard_controller_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be568
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.004b9bb0
push eax
push str.Left_Button_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be59a
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.004b9bb0
push eax
push str.Right_Button_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be5cc
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.004b9bb0
push eax
push str.Middle_Button_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be5fe
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.004b9bb0
push eax
push str.Fourth_Button_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be630
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.004b9bb0
push eax
push str.Fifth_Button_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be662
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.0x4be675.3
movzx eax, byte [eax + 0x4bf8e4]
jmp dword [eax*4 + 0x4bf8dc]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4be699
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000104
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push ebx
push eax
mov ecx, esi
call fcn.004ba500
push eax
push str.Firmware_Revision_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4be6d2
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 eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x4be6f5
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
push 0x1000014e
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x4be712
mov eax, dword [ecx]
lea edx, [ebp - 0x1c]
push edx
push 0x1000014d
push ecx
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x4be72f
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 dword [ebp - 0x10]
push ebx
push eax
call fcn.004ba7b0
push eax
push str.Gestures_Enabled_t
mov ecx, esi
call fcn.004b9a20
cmp dword [esi + 0x438], 0xffffffff
lea ebx, [esi + 0x420]
je 0x4becae
mov edx, dword [ebx + 4]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4be77c
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 0x4becae
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4be7a9
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_Gestures_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4be7e2
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_Report_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be81b
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Max_Number_Finger_Report_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4be857
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.MultiFinger_PacketGroups_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4be890
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Cover_Gesture_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be8c9
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Supports_W_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be905
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Imaging_Sensor_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be941
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Report_V_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be97d
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, 0x532760
mov eax, 0x532768
cmove eax, ecx
mov ecx, esi
push eax
push str.1:1_FW_Filter_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4be9b9
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.RMI_Backdoor_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4be9f5
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, 0x532b10
mov eax, 0x532b08
cmove eax, ecx
mov ecx, esi
push eax
push str.Taps_Zones_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4bea2e
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.004b9bb0
push eax
push str.Top_Left_Corner_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4bea60
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.004b9bb0
push eax
push str.Top_Right_Corner_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4bea92
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.004b9bb0
push eax
push str.Bottom_Left_Corner_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4beac4
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.004b9bb0
push eax
push str.Bottom_Right_Corner_Action_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x4beb02
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000153
push ecx
call dword [eax + 0xc]
cmp dword [ebp - 0x10], 0
je 0x4beb02
mov ecx, str.Always
jmp 0x4beb1d
push 0x10000152
mov ecx, esi
call fcn.004bb1b0
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.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x4beb47
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Edge_Motion_Speed_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x4beb83
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Pressure_Edge_Motion_t
call fcn.004b9a20
mov ecx, dword [ebx + 4]
mov dword [ebp + 8], 0
test ecx, ecx
jne 0x4bebb0
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x100015e
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x4bebcf
push dword [ebp + 8]
mov ecx, esi
call fcn.004bc840
jmp 0x4bebd4
mov eax, 0x510414
push eax
push str.Slow_Motion_Key_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x4bebeb
lea ecx, [ebx + 0x10]
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x100015f
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x4bec0a
push dword [ebp + 8]
mov ecx, esi
call fcn.004bc840
jmp 0x4bec0f
mov eax, 0x510414
push eax
push str.Constrained_Motion_Key_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x4bec53
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 0x4bec53
push 0xa
lea ecx, [ebp - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
jmp 0x4bec58
mov eax, 0x510414
push eax
push str.Slow_Cursor_Speed_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp - 0x10], 0
test ecx, ecx
je 0x4bec9c
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 0x4bec9c
push 0xa
lea ecx, [ebp - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
jmp 0x4beca1
mov eax, 0x510414
push eax
push str.Tapping_Speed_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4beccb
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Touch_Threshold_t
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp + 8], 0
test ecx, ecx
je 0x4bed21
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 0x4bed21
push 0xa
lea ecx, [ebp - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
jmp 0x4bed26
mov eax, 0x532b10
push eax
push str.PalmCheck_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bed50
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Maximum_Z_t
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bed8c
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 0x4beda9
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.004bd700
push eax
push str.Resolution__DPI__t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4bede2
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 0x4bee05
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 0x4bee22
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 0x4bee3f
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.004bda50
push eax
push str.Sensor_Rectangle_t
mov ecx, esi
call fcn.004b9a20
cmp dword [esi + 0x438], 0xffffffff
je 0x4bf3ae
mov edx, dword [esi + 0x424]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4bee89
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 0x4bf3ae
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4beeb6
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x100001e8
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 0x4beed9
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x100001e7
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 0x4beefc
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x100001e6
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 0x4bef19
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x100001e5
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.004bda50
push eax
push str.Sensor_FW_Coords_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4bef58
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 0x4bef7b
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 0x4bef98
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 0x4befb5
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.004bda50
push eax
push str.Bezel_Rectangle_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4beff4
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 0x4bf017
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 0x4bf034
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 0x4bf051
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.004bda50
push eax
push str.Edge_Motion_Rectangle_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4bf090
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 0x4bf0b3
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 0x4bf0d0
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 0x4bf0ed
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.004bda50
push eax
push str.Wide_Border_Rectangle_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf126
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 0x4bf143
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.004bd700
push eax
push str.Top_Left_Corner_Zone_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf176
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 0x4bf193
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.004bd700
push eax
push str.Top_Right_Corner_Zone_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf1c6
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 0x4bf1e3
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.004bd700
push eax
push str.Bottom_Left_Corner_Zone_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf216
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 0x4bf233
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.004bd700
push eax
push str.Bottom_Right_Corner_Zone_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf266
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.004ba590
push eax
push str.Bezel_Geometry_t
mov ecx, esi
call fcn.004b9a20
lea ecx, [esi + 0x420]
call fcn.004bc2d0
test eax, eax
jne 0x4bf33a
push 0xa
lea eax, [ebp - 0x244]
mov ecx, esi
push eax
push 0x100001e1
call fcn.004bb1b0
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Transmitter_Pitch_t
call fcn.004b9a20
push 0xa
lea eax, [ebp - 0x244]
mov ecx, esi
push eax
push 0x100001e2
call fcn.004bb1b0
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Receiver_Pitch_t
call fcn.004b9a20
push 0xa
lea eax, [ebp - 0x244]
mov ecx, esi
push eax
push 0x100001e3
call fcn.004bb1b0
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Number_of_Transmitters_t
call fcn.004b9a20
push 0xa
lea eax, [ebp - 0x244]
mov ecx, esi
push eax
push 0x100001e4
call fcn.004bb1b0
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Number_of_Receivers_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4bf357
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, 0x532760
test edx, edx
mov ecx, 0x532768
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.ClearPad_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf392
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, 0x532768
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.New_Absolute_Packet_t
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf3cb
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 0x4bf3e8
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.004b9d50
push eax
push str.Buttons_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
mov dword [ebp + 8], 0
test ecx, ecx
je 0x4bf440
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 0x4bf440
push 0xa
lea ecx, [ebp - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Extended_Buttons_t
call fcn.004b9a20
mov ecx, dword [edi]
xor edx, edx
mov dword [ebp + 8], edx
test ecx, ecx
je 0x4bf45d
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, 0x532768
mov eax, 0x532760
cmove eax, ecx
mov ecx, esi
push eax
push str.Stylus_Input_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf496
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.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf4d2
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.004bc580
push eax
push str.Lock_Type_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf504
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.004b9610
push eax
push str.ASIC_Type_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf536
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 0x4bf553
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.004bda80
push eax
push str.Sensor_Type_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor ebx, ebx
mov dword [ebp + 8], ebx
test ecx, ecx
je 0x4bf586
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 0x4bf5a3
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.004bd870
push eax
push str.Product_Type_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf5d6
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, 0x532760
mov ecx, 0x532768
mov eax, ebx
cmove eax, ecx
mov ecx, esi
push eax
push str.PS2_Passthrough_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf611
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, 0x532768
cmove ebx, eax
push ebx
push str.PS2_Glasspass_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf645
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Capabilities_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf681
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.RMI4_Capabilities_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf6bd
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 - 0x244]
shr eax, 0x15
push ecx
and eax, 1
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Peak_Detect_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf6ff
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Rotation_Angle_t
call fcn.004b9a20
cmp dword [esi + 0x438], 0xffffffff
lea ebx, [esi + 0x420]
je 0x4bf7d3
mov edx, dword [ebx + 4]
xor ecx, ecx
mov dword [ebp + 8], ecx
test edx, edx
je 0x4bf74f
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 0x4bf7d3
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf778
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 - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Ballistics_Algorithm_t
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp + 8], eax
test ecx, ecx
je 0x4bf7b4
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x1000297
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
push 0x10
lea ecx, [ebp - 0x244]
push ecx
push eax
call fcn.004d0d7f
add esp, 0xc
mov ecx, esi
push eax
push str.Manufacturer_Info_t
call fcn.004b9a20
mov ecx, ebx
call fcn.004bb1f0
test eax, eax
je 0x4bf7f9
push 0xa
lea eax, [ebp - 0x244]
mov ecx, ebx
push eax
call fcn.004bb1f0
push eax
call fcn.004d0d7f
add esp, 0xc
jmp 0x4bf7fe
mov eax, str.Not_Supported
push eax
push str.Report_Rate_t
mov ecx, esi
call fcn.004b9a20
mov ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x24], eax
test ecx, ecx
je 0x4bf828
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 0x4bf839
mov ecx, ebx
call fcn.004ba870
push eax
jmp 0x4bf83b
push 0x10
mov ecx, esi
call fcn.004b9580
push eax
push str.ACM_t
mov ecx, esi
call fcn.004b9a20
mov ecx, esi
call fcn.004bafc0
push eax
mov ecx, esi
call fcn.004b99b0
mov ecx, ebx
call fcn.004bc260
test eax, eax
je 0x4bf870
mov ecx, esi
call fcn.004b9700
push dword [esi + 0x444]
lea eax, [ebp - 0x244]
push str.StoreDeviceDetails_buffer_size_is__d_n
push eax
call fcn.004d1675
add esp, 0xc
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp case.0x4be675.3
push edi
lea eax, [ebp - 0x244]
push str.Unable_to_open_device__d_n
push eax
call fcn.004d1675
add esp, 0xc
lea eax, [ebp - 0x244]
mov ecx, esi
push 0x50daec
push eax
call fcn.004b9a20
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