Function at 0x1400077f0
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1070]
mov eax, 0x1170
call fcn.14006f320
sub rsp, rax
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x11a8], rbx
mov qword [rsp + 0x11b0], rsi
mov qword [rsp + 0x11b8], rdi
mov rax, qword [0x140099110]
xor rax, rsp
mov qword [rbp + 0x1060], rax
mov rbx, rcx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x54], 0
movzx eax, byte [0x1400a00cd]
test al, al
je 0x140008888
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x460]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x860]
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call fcn.140006bf0
test al, al
je 0x1400088b7
lea rcx, str.Waiting_for_mouse_ID..._n
call fcn.140021800
lea rcx, [0x14008287c]
call fcn.140021800
cmp byte [0x1400a04d5], 0
je 0x1400078ce
lea rcx, [rbp + 0x460]
call fcn.1400076c0
test al, al
je 0x1400088b7
jmp 0x140007906
mov dword [rsp + 0x78], 0
lea r9, [rbp + 0x460]
lea r8, [rsp + 0x78]
xor edx, edx
mov ecx, 0xfa
call fcn.140021bb0
test al, al
je 0x1400088ab
mov edx, dword [rsp + 0x78]
cmp edx, 0x94
jne 0x14000889d
movzx esi, byte [rbp + 0x475]
shl esi, 8
movzx eax, byte [rbp + 0x474]
or esi, eax
mov dword [rbp - 0x30], esi
movzx r15d, byte [rbp + 0x477]
shl r15d, 8
movzx eax, byte [rbp + 0x476]
or r15d, eax
movzx r14d, byte [rbp + 0x479]
shl r14d, 8
movzx eax, byte [rbp + 0x478]
or r14d, eax
movzx r12d, byte [rbp + 0x47b]
shl r12d, 8
movzx eax, byte [rbp + 0x47a]
or r12d, eax
movzx r13d, byte [rbp + 0x47d]
shl r13d, 8
movzx eax, byte [rbp + 0x47c]
or r13d, eax
movzx ebx, byte [rbp + 0x47e]
cmp byte [rbp + 0x47f], 0
sete dil
cmp byte [0x1400a04d5], 0
je 0x14000799c
mov esi, 0x10de
mov dword [rbp - 0x30], esi
xor r15d, r15d
xor ebx, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140005630
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x1400079b4
mov rcx, qword [rax]
xor eax, eax
test dil, dil
setne al
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r12d
mov r9d, r14d
mov r8d, r15d
mov edx, esi
lea rcx, str.MOUSE_ID:_vid_04x_pid_04x_bcddev_04x_ext_pid_04x_ext_rev_04x_ext_id_02x_valid_d_type_s_n
call fcn.140021800
mov rax, qword [rbp - 0x38]
cmp rax, 0x10
jb 0x140007a31
inc rax
mov rcx, qword [rbp - 0x50]
cmp rax, 0x1000
jb 0x140007a2c
test cl, 0x1f
jne 0x140007abb
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140007ab4
sub rcx, rax
cmp rcx, 8
jb 0x140007aad
cmp rcx, 0x27
ja 0x140007aa6
mov rcx, rax
call fcn.14006ec98
mov qword [rbp - 0x38], reloc.WS2_32.dll_ntohs
xor ecx, ecx
mov qword [rbp - 0x40], rcx
mov byte [rbp - 0x50], cl
movzx eax, byte [rbp + 0x462]
test dil, dil
je 0x14000888c
cmp al, 1
ja 0x14000888c
cmp ebx, 0xff
je 0x140007a66
test al, al
je 0x140007ac2
movzx eax, byte [0x1400a00cd]
test al, al
je 0x140008883
mov edx, 0x3e8
mov rcx, qword [0x1400a0528]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140007a92
mov byte [0x1400a00cc], 1
movzx eax, byte [0x1400a00cc]
test al, al
jne 0x140008883
jmp 0x1400078a3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [rsp + 0x64], 0xffffffff
mov dword [rbp - 0x80], 0xffffffff
mov byte [rsp + 0x50], cl
mov dword [rsp + 0x6c], ecx
or edi, 0xffffffff
mov dword [rsp + 0x5c], edi
or r10d, edi
mov dword [rsp + 0x58], edi
mov r9d, ecx
mov rax, qword [rsp + 0x70]
mov r11, qword [rax]
mov rax, qword [rax + 8]
mov qword [rbp + 0x178], rax
mov rcx, rax
sub rcx, r11
movabs rax, 0x4ec4ec4ec4ec4ec5
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140007be5
lea r8, [r11 + 0x4c]
cmp dword [r8 - 0xc], esi
je 0x140007b33
or edx, 0xffffffff
jmp 0x140007b75
movzx eax, byte [r8]
test al, al
je 0x140007b41
test ebx, ebx
je 0x140007b45
jmp 0x140007b4a
test ebx, ebx
je 0x140007b4a
or edx, 0xffffffff
jmp 0x140007b75
test al, al
je 0x140007b61
cmp ebx, dword [r8 + 4]
je 0x140007b59
or edx, 0xffffffff
jmp 0x140007b75
cmp r12d, dword [r8 - 8]
jne 0x140007b45
jmp 0x140007b6c
cmp r15d, dword [r8 - 8]
je 0x140007b6c
or edx, 0xffffffff
jmp 0x140007b75
mov edx, r14d
test al, al
cmovne edx, r13d
mov eax, dword [r8 - 4]
cmp edx, eax
je 0x140007bd1
test edx, edx
js 0x140007b92
cmp edi, eax
jge 0x140007b92
mov edi, eax
mov dword [rsp + 0x5c], eax
mov r10d, r9d
mov dword [rsp + 0x58], edx
inc r9d
add r8, 0x68
mov rcx, qword [rbp + 0x178]
sub rcx, r11
movabs rax, 0x4ec4ec4ec4ec4ec5
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r9d
cmp rax, rdx
jb 0x140007b28
mov r12d, dword [rsp + 0x5c]
jmp 0x140007be8
movsxd rax, r9d
imul rcx, rax, 0x68
mov r12d, dword [rcx + r11 + 0x48]
mov r10d, r9d
mov r13d, edx
jmp 0x140007bed
mov r12d, edi
mov r13d, dword [rsp + 0x58]
xor ebx, ebx
mov qword [rbp + 0x148], rbx
mov qword [rbp + 0x178], rbx
test r10d, r10d
js 0x140007fe8
movsxd rax, r10d
imul rdi, rax, 0x68
add rdi, r11
movzx eax, byte [rdi + 0x61]
mov byte [rsp + 0x50], al
xor ecx, ecx
mov qword [rbp + 0x180], rcx
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rcx
mov qword [rbp + 0x1a8], rcx
mov qword [rbp + 0x1b0], rcx
mov qword [rbp + 0x1b8], rcx
movzx eax, byte [rsp + 0x50]
mov byte [rbp + 0x150], al
mov dword [rbp - 0x58], ecx
mov dword [rbp - 0x70], ecx
mov eax, ecx
mov dword [rbp + 0x180], ecx
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x190], rbx
xor r8d, r8d
xor edx, edx
call fcn.140018f10
mov qword [rbp + 0x188], rax
mov qword [rbp + 0x198], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x1a0], xmm0
movss xmm0, dword [0x140086280]
movss dword [rbp + 0x180], xmm0
lea edx, [rbx + 8]
lea rcx, [rbp + 0x180]
call fcn.14000d4b0
nop
mov dword [rbp - 0x6c], 0x1532
movzx r9d, byte [rbp + 0x150]
lea r8, [rbp - 0x6c]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x180]
call fcn.140016290
mov dword [rbp - 0x68], 0x1e7d
movzx r9d, byte [rbp + 0x150]
lea r8, [rbp - 0x68]
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x180]
call fcn.140016290
cmp byte [rdi + 0x60], bl
mov r14d, ebx
jne 0x140007d06
mov r14d, dword [rdi + 0x58]
mov dword [rsp + 0x64], r14d
mov dword [rbp - 0x54], esi
movzx ecx, byte [rbp - 0x30]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbp - 0x2f]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x2e]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x2d]
xor rcx, rax
imul rcx, rdx
and rcx, qword [rbp + 0x1b0]
mov rax, rcx
add rax, rax
mov r9, qword [rbp + 0x198]
mov rax, qword [r9 + rax*8]
lea r10, [rcx + rcx]
mov r8, qword [r9 + r10*8]
mov rdx, qword [rbp + 0x188]
mov qword [rbp + 0x140], rax
cmp r8, rdx
jne 0x140007d8a
mov qword [rbp - 0x60], rdx
mov rcx, rdx
jmp 0x140007d9d
mov rcx, qword [r9 + r10*8 + 8]
mov rcx, qword [rcx]
mov qword [rbp + 0x1c0], rcx
mov qword [rbp - 0x60], rcx
cmp rax, rcx
je 0x140007db2
cmp esi, dword [rax + 0x10]
je 0x140007dac
mov rax, qword [rax]
jmp 0x140007d75
mov qword [rbp + 0x30], rax
jmp 0x140007db9
mov qword [rbp + 0x38], rdx
mov rax, rdx
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x50], rdx
cmp rdx, rax
je 0x140007e64
test r14d, r14d
jne 0x140007e64
lea ecx, [r14 + 0x50]
call fcn.14006e6f4
mov rbx, rax
mov qword [rsp + 0x70], rax
xor edx, edx
lea r8d, [r14 + 0x50]
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rax, [rbp - 0x10]
mov qword [rbp - 0x78], rax
mov ecx, dword [rbp + 0x180]
mov dword [rbp - 0x10], ecx
xor eax, eax
mov qword [rbp - 8], rax
mov qword [rbp], rax
xor r8d, r8d
xor edx, edx
call fcn.140018f10
mov qword [rbp - 8], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], 0
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x10]
call fcn.140015340
nop
lea r9, [rbp - 0x10]
mov r8d, r15d
mov edx, esi
mov rcx, rbx
call fcn.140004650
nop
mov qword [rbp + 0x178], rax
cmp byte [rax + 8], r14b
jne 0x140007e64
mov r14d, dword [rdi + 0x58]
mov dword [rsp + 0x64], r14d
mov eax, dword [rdi + 0x58]
mov dword [rbp - 0x80], eax
mov eax, dword [rdi + 0x5c]
mov dword [rsp + 0x6c], eax
test byte [0x1400a0680], 1
je 0x140007f19
mov edx, r12d
lea rcx, [rbp + 0xc0]
call fcn.140005880
mov rsi, rax
mov dword [rsp + 0x54], 1
mov edx, r13d
lea rcx, [rbp + 0xa0]
call fcn.140005880
mov r8, rax
mov ebx, 3
mov dword [rsp + 0x54], ebx
cmp qword [rsi + 0x18], 0x10
jb 0x140007ebd
mov rsi, qword [rsi]
cmp qword [rax + 0x18], 0x10
jb 0x140007ec7
mov r8, qword [rax]
lea r9, [rdi + 0x20]
cmp qword [r9 + 0x18], 0x10
jb 0x140007ed5
mov r9, qword [r9]
cmp qword [rdi + 0x18], 0x10
jb 0x140007ee1
mov r10, qword [rdi]
jmp 0x140007ee4
mov r10, rdi
movzx ecx, byte [rsp + 0x50]
xor edx, edx
test r14d, r14d
setne dl
xor eax, eax
cmp r13d, r12d
setne al
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r8
mov r8, r10
call fcn.140004db0
jmp 0x140007f1d
mov ebx, dword [rsp + 0x54]
test bl, 2
je 0x140007f36
and ebx, 0xfffffffd
mov dword [rsp + 0x54], ebx
lea rcx, [rbp + 0xa0]
call fcn.140009c40
nop
test bl, 1
je 0x140007f4e
and ebx, 0xfffffffe
mov dword [rsp + 0x54], ebx
lea rcx, [rbp + 0xc0]
call fcn.140009c40
lea r8, [rdi + 0x20]
cmp qword [r8 + 0x18], 0x10
jb 0x140007f5c
mov r8, qword [r8]
cmp qword [rdi + 0x18], 0x10
jb 0x140007f68
mov rdx, qword [rdi]
jmp 0x140007f6b
mov rdx, rdi
mov dword [rsp + 0x20], r13d
mov r9d, r12d
lea rcx, str.Mouse_match:__s__s__matched_revision___04x__actual_revision___04x_n
call fcn.140021800
cmp byte [0x1400a04d1], 0
je 0x140007fd7
cmp byte [0x1400a00cf], 0
je 0x140007fd7
cmp qword [0x1400a04d8], 0
jne 0x140007fd7
mov dword [rsp + 0x20], r13d
mov r9d, dword [rdi + 0x44]
mov r8d, dword [rdi + 0x40]
lea rdx, str._04x__04x__04x.txt
lea rcx, [rbp + 0x438]
call fcn.140011ba0
lea r8, [0x14008315c]
lea rdx, [rbp + 0x438]
lea rcx, [0x1400a04d8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
nop
lea rcx, [rbp + 0x180]
call fcn.140009630
jmp 0x1400080ee
test byte [0x1400a0680], 1
je 0x140008094
mov edx, r14d
lea rcx, [rbp + 0x120]
call fcn.140005880
mov r14, rax
mov dword [rsp + 0x54], 4
mov edx, r15d
lea rcx, [rbp + 0x100]
call fcn.140005880
mov rdi, rax
mov dword [rsp + 0x54], ntohs
mov edx, esi
lea rcx, [rbp + 0xe0]
call fcn.140005880
mov ebx, Ordinal_30
mov dword [rsp + 0x54], ebx
cmp qword [r14 + 0x18], 0x10
jb 0x14000804a
mov r14, qword [r14]
cmp qword [rdi + 0x18], 0x10
jb 0x140008054
mov rdi, qword [rdi]
cmp qword [rax + 0x18], 0x10
jb 0x14000805e
mov rax, qword [rax]
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 1
lea rcx, [0x14008287e]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r9, rdi
mov r8, rax
call fcn.140004db0
jmp 0x140008098
mov ebx, dword [rsp + 0x54]
test bl, 0x10
je 0x1400080b1
and ebx, 0xffffffef
mov dword [rsp + 0x54], ebx
lea rcx, [rbp + 0xe0]
call fcn.140009c40
nop
test bl, 8
je 0x1400080ca
and ebx, 0xfffffff7
mov dword [rsp + 0x54], ebx
lea rcx, [rbp + 0x100]
call fcn.140009c40
nop
test bl, 4
je 0x1400080e2
and ebx, 0xfffffffb
mov dword [rsp + 0x54], ebx
lea rcx, [rbp + 0x120]
call fcn.140009c40
lea rcx, str.WARNING:_Mouse_not_supported__n
call fcn.140021800
mov byte [rbp + 0x1d0], 0
xor edx, edx
mov r8d, 0x11c
lea rcx, [rbp + 0x1d4]
call sub.VCRUNTIME140.dll_memset
mov byte [rbp + 0x2f0], 0
xor edx, edx
mov r8d, 0x11c
lea rcx, [rbp + 0x2f4]
call sub.VCRUNTIME140.dll_memset
xor ebx, ebx
mov dword [rsp + 0x58], ebx
cmp byte [rbp + 0x468], 0xff
setne cl
mov byte [rbp + 0x160], cl
movzx edi, byte [rbp + 0x46a]
shl edi, 8
movzx eax, byte [rbp + 0x469]
or edi, eax
mov dword [rbp + 0x164], edi
movzx esi, byte [rbp + 0x46c]
shl esi, 8
movzx eax, byte [rbp + 0x46b]
or esi, eax
mov dword [rbp + 0x168], esi
movzx r14d, byte [rbp + 0x46e]
shl r14d, 8
movzx eax, byte [rbp + 0x46d]
or r14d, eax
mov dword [rbp + 0x16c], r14d
movzx r15d, byte [rbp + 0x470]
shl r15d, 8
movzx eax, byte [rbp + 0x46f]
or r15d, eax
mov dword [rbp + 0x170], r15d
test cl, cl
jne 0x1400081b8
lea rcx, str.ERROR:_Invalid_latency_rect._n
call fcn.140021800
jmp 0x1400081ef
test byte [0x1400a0680], 1
je 0x1400081d6
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r14d
mov r9d, esi
mov r8d, edi
call fcn.140004c30
mov dword [rsp + 0x20], r15d
mov r9d, r14d
mov r8d, esi
mov edx, edi
lea rcx, str.LAT_RECT:_width_d_height_d_tlx_d_tly_d_n
call fcn.140021800
lea rdi, [rbp + 0x1e4]
lea rsi, [rbp + 0x1d0]
lea r14, [rbp + 0x494]
mov r15d, 8
mov r8d, dword [rsp + 0x64]
mov r9d, dword [rbp - 0x80]
mov r12d, dword [rsp + 0x6c]
nop dword [rax + rax]
mov dword [rsp + 0x28], r12d
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x20], al
mov rdx, r14
mov rcx, rsi
call fcn.140005070
cmp byte [rdi - 0x14], 0
je 0x140008248
cmp ebx, dword [rdi]
cmovb ebx, dword [rdi]
mov dword [rsp + 0x58], ebx
add r14, 0xc
add rsi, 0x24
add rdi, 0x24
sub r15, 1
jne 0x140008220
mov qword [0x1400a0590], r15
mov qword [0x1400a0530], r15
mov qword [0x1400a0070], r15
mov edx, 0x1f4
lea rcx, str.Polling_at__dms..._n
call fcn.140021800
movzx eax, byte [0x1400a00cd]
test al, al
je 0x1400087f4
mov edx, 0x1f4
mov rcx, qword [0x1400a0528]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400082ac
mov byte [0x1400a00cc], 1
movzx eax, byte [0x1400a00cc]
test al, al
jne 0x1400087f4
lea rcx, [0x140083194]
call fcn.140021800
cmp byte [0x1400a04d5], 0
je 0x1400082e2
lea rcx, [rbp + 0x860]
call fcn.1400076c0
test al, al
jne 0x14000833e
jmp 0x14000832c
mov dword [rsp + 0x7c], 0
lea r9, [rbp + 0x860]
lea r8, [rsp + 0x7c]
xor edx, edx
mov ecx, 0xfa
call fcn.140021bb0
test al, al
jne 0x140008314
lea rcx, str.ERROR:_Cannot_read_latency_data__n
call fcn.140021800
jmp 0x14000832c
mov edx, dword [rsp + 0x7c]
cmp edx, 0x94
je 0x14000833e
lea rcx, str.ERROR:_Wrong_latency_data_response_length__d._n
call fcn.140021800
cmp r15d, 0xa
jae 0x1400087f4
inc r15d
jmp 0x140008280
xor r15d, r15d
mov dword [rsp + 0x60], r15d
mov eax, dword [rbp + 0x460]
cmp eax, dword [rbp + 0x860]
jne 0x1400087e8
movzx eax, byte [rbp + 0x864]
dec al
cmp al, 1
jbe 0x140008372
cmp byte [0x1400a04d5], r15b
je 0x140008789
mov rax, qword [rbp + 0x474]
cmp rax, qword [rbp + 0x874]
jne 0x1400087df
mov eax, dword [rbp + 0x47c]
cmp eax, dword [rbp + 0x87c]
jne 0x1400087df
mov rcx, qword [rbp + 0x868]
cmp qword [rbp + 0x468], rcx
jne 0x1400083e2
mov eax, dword [rbp + 0x470]
cmp eax, dword [rbp + 0x870]
jne 0x1400083e2
mov eax, dword [rbp + 0x170]
mov dword [rsp + 0x68], eax
mov eax, dword [rbp + 0x16c]
mov dword [rsp + 0x5c], eax
mov eax, dword [rbp + 0x168]
mov dword [rbp - 0x78], eax
mov eax, dword [rbp + 0x164]
mov dword [rsp + 0x70], eax
jmp 0x1400084ae
cmp cl, 0xff
setne cl
mov byte [rbp + 0x160], cl
movzx ebx, byte [rbp + 0x86a]
shl ebx, 8
movzx eax, byte [rbp + 0x869]
or ebx, eax
mov dword [rsp + 0x70], ebx
mov dword [rbp + 0x164], ebx
movzx edi, byte [rbp + 0x86c]
shl edi, 8
movzx eax, byte [rbp + 0x86b]
or edi, eax
mov dword [rbp - 0x78], edi
mov dword [rbp + 0x168], edi
movzx esi, byte [rbp + 0x86e]
shl esi, 8
movzx eax, byte [rbp + 0x86d]
or esi, eax
mov dword [rsp + 0x5c], esi
mov dword [rbp + 0x16c], esi
movzx r14d, byte [rbp + 0x870]
shl r14d, 8
movzx eax, byte [rbp + 0x86f]
or r14d, eax
mov dword [rsp + 0x68], r14d
mov dword [rbp + 0x170], r14d
test cl, cl
jne 0x140008478
lea rcx, str.ERROR:_Invalid_latency_rect._n
call fcn.140021800
jmp 0x1400084ae
test byte [0x1400a0680], 1
je 0x140008495
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], esi
mov r9d, edi
mov r8d, ebx
call fcn.140004c30
mov dword [rsp + 0x20], r14d
mov r9d, esi
mov r8d, edi
mov edx, ebx
lea rcx, str.LAT_RECT:_width_d_height_d_tlx_d_tly_d_n
call fcn.140021800
mov r8d, 0x60
lea rdx, [rbp + 0x894]
lea rcx, [rbp + 0x494]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400085bf
or r12d, 0xffffffff
or r15d, 0xffffffff
xor ebx, ebx
lea rdi, [rbp + 0x304]
lea rsi, [rbp + 0x2f0]
lea r14, [rbp + 0x894]
mov r13d, dword [rsp + 0x58]
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x20], al
mov r9d, dword [rbp - 0x80]
mov r8d, dword [rsp + 0x64]
mov rdx, r14
mov rcx, rsi
call fcn.140005070
cmp byte [rdi - 0x14], 0
je 0x14000852e
mov eax, dword [rdi]
sub eax, r13d
cmp r12d, eax
jbe 0x14000852e
mov r12d, eax
mov r15d, ebx
inc ebx
add r14, 0xc
add rsi, 0x24
add rdi, 0x24
cmp ebx, 8
jl 0x1400084f3
cmp r15d, 0xffffffff
je 0x1400085ba
cmp r15d, 8
jge 0x140008588
movsxd rax, r15d
lea rbx, [rax + rax*8]
shl rbx, 2
mov edi, 8
sub edi, r15d
lea rdx, [rbp + 0x1d0]
add rdx, rbx
lea rcx, [rbp + 0x2f0]
add rcx, rbx
lea r8, [rsp + 0x58]
call fcn.140005340
add rbx, 0x24
sub rdi, 1
jne 0x140008560
test r15d, r15d
jle 0x1400085ba
xor ebx, ebx
mov edi, r15d
lea rdx, [rbp + 0x1d0]
add rdx, rbx
lea rcx, [rbp + 0x2f0]
add rcx, rbx
lea r8, [rsp + 0x58]
call fcn.140005340
add rbx, 0x24
sub rdi, 1
jne 0x140008592
mov r15d, dword [rsp + 0x60]
lea rax, [rbp + 0x460]
lea rcx, [rbp + 0x860]
mov edx, 8
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rdx, 1
jne 0x1400085d2
mov rcx, qword [0x1400a0518]
test rcx, rcx
je 0x140008280
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140008280
mov rcx, qword [0x1400a0518]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rbx, qword [0x1400a0628]
mov esi, dword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
mov r15d, dword [rsp + 0x68]
cmp dword [rbx], esi
jne 0x14000867c
mov eax, dword [rbp - 0x78]
cmp dword [rbx + 4], eax
jne 0x14000867c
cmp dword [rbx + 8], r14d
jne 0x14000867c
cmp dword [rbx + 0xc], r15d
je 0x14000868b
call fcn.140006430
mov rbx, qword [0x1400a0628]
mov eax, dword [rbp - 0x78]
mov edi, dword [rbx]
cmp edi, esi
jne 0x1400086a6
cmp dword [rbx + 4], eax
jne 0x1400086a6
cmp dword [rbx + 8], r14d
jne 0x1400086a6
cmp dword [rbx + 0xc], r15d
je 0x14000877f
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x14000877f
xor edx, edx
mov r8d, 0x3ff
lea rcx, [rbp + 0xc61]
call sub.VCRUNTIME140.dll_memset
mov byte [rbp + 0xc60], 0
mov byte [rbp + 0xc61], dil
sar edi, 8
mov byte [rbp + 0xc62], dil
mov eax, dword [rbx + 4]
mov byte [rbp + 0xc63], al
sar eax, 8
mov byte [rbp + 0xc64], al
mov eax, dword [rbx + 8]
mov byte [rbp + 0xc65], al
sar eax, 8
mov byte [rbp + 0xc66], al
mov ebx, dword [rbx + 0xc]
mov byte [rbp + 0xc67], bl
sar ebx, 8
mov byte [rbp + 0xc68], bl
xor dil, dil
cmp byte [0x1400a04d3], dil
je 0x140008747
mov edx, 0xe3
call fcn.140021ed0
mov edi, eax
mov word [rbp + 0x158], 0
mov byte [rsp + 0x20], 1
lea r9, [rbp + 0x158]
call fcn.140021d50
mov dword [rbp + 0x410], 0xe507e1e7
mov rax, qword [rbp + 0xc60]
mov qword [rbp + 0x414], rax
mov byte [rbp + 0x41c], bl
lea r8, [rbp + 0x410]
mov dl, reloc.WS2_32.dll_listen
call fcn.1400018c0
test eax, eax
jne 0x1400087be
cmp byte [0x1400a04d3], al
jne 0x140008792
mov r15d, dword [rsp + 0x60]
jmp 0x140008280
lea rcx, str.WARNING:_Latency_mode_is_disabled._Stop_polling._n
jmp 0x1400087ef
mov byte [rbp + 0x15c], 0
mov byte [rbp + 0x15d], dil
mov byte [rsp + 0x20], 1
lea r9, [rbp + 0x15c]
call fcn.140021d50
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400087f4
lea rdx, str.I2C_Write_C
lea rcx, [rbp + 0x68]
call fcn.1400026a0
lea rdx, [0x140094ec0]
lea rcx, [rbp + 0x68]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, str.WARNING:_Mouse_ID_changed._Stop_polling._n
jmp 0x1400087ef
lea rcx, str.WARNING:_Latency_cap_changed._Stop_polling._n
call fcn.140021800
cmp byte [0x1400a04d5], 0
je 0x140008824
cmp byte [0x1400a04d6], 0
je 0x14000885e
test byte [0x1400a0680], 1
je 0x14000881b
lea rdx, [0x140084778]
call fcn.140004bf0
mov byte [0x1400a04d6], 0
jmp 0x14000885e
cmp byte [0x1400a04d6], 0
je 0x140008849
test byte [0x1400a0680], 1
je 0x140008842
lea rdx, [0x140084778]
call fcn.140004bf0
mov byte [0x1400a04d6], 0
cmp byte [0x1400a04d2], 0
je 0x14000885e
call fcn.140028d30
mov byte [0x1400a04d2], 0
mov rbx, qword [rbp + 0x178]
test rbx, rbx
je 0x140008888
mov rcx, rbx
call fcn.140004820
mov edx, 0x50
mov rcx, rbx
call fcn.14006eca0
xor eax, eax
jmp 0x1400088c1
call fcn.1400063b0
xor eax, eax
jmp 0x1400088c1
movzx edx, al
lea rcx, str.ERROR:_No_mouse_detected_LALL_ERR_X___d___n
call fcn.140021800
jmp 0x1400088b7
lea rcx, str.ERROR:_Wrong_latency_data_response_length__d._n
call fcn.140021800
jmp 0x1400088b7
lea rcx, str.ERROR:_Cannot_read_latency_data__n
call fcn.140021800
call fcn.1400063b0
mov eax, 1
mov rcx, qword [rbp + 0x1060]
xor rcx, rsp
call fcn.14006e6d0
lea r11, [rsp + 0x1170]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret