Function at 0x14010a020
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov r12, rdx
mov rbx, rcx
xor r13d, r13d
mov dword [rbp + 0x40], r13d
movzx ecx, byte [rcx + 0x138]
call fcn.1400ca4ec
mov r15, rax
movzx r8d, byte [rbx + 0x138]
xor edx, edx
mov rcx, rax
call fcn.140279e10
mov dword [rbp + 0x50], r13d
lea rax, [0x14010a370]
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x38], r13d
lea ecx, [r13 + 0x30]
call fcn.1400c9d40
lea rcx, [rbp + 0x40]
mov qword [rax], rcx
lea rcx, [rbp + 0x50]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], rbx
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rax + 0x20], xmm0
mov qword [rbp + 0x58], rax
lea rcx, [rbp - 0x28]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x14000cfa0]
xor edx, edx
xor ecx, ecx
call fcn.1400da88c
mov qword [rbp - 0x30], rax
test rax, rax
je 0x14010a33b
lea ecx, [r13 + 0x10]
call fcn.1400c9d40
mov rdi, rax
mov qword [rbp + 0x58], rax
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rbp - 0x40], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rdi + 8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
nop
mov esi, 0x11170
lea rcx, str.HID_WAIT_TIME_MS
call fcn.1400de564
test rax, rax
je 0x14010a130
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400dbbdc
test eax, eax
cmove eax, esi
mov esi, eax
nop dword [rax]
lea rcx, [rbp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbp + 0x58]
sub rcx, qword [rdi]
mov rax, r13
cmovns rax, rcx
imul rax, rax, 0x3e8
cqo
idiv qword [rdi + 8]
mov edx, dword [rbp + 0x50]
cmp eax, esi
jae 0x14010a18a
movzx eax, byte [rbx + 0x138]
cmp edx, eax
je 0x14010a18a
cmp dword [rbp + 0x40], 0
jne 0x14010a2b9
mov rcx, rbx
call fcn.14010e4d0
test al, al
je 0x14010a194
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14010a130
cmp dword [rbp + 0x40], 0
jne 0x14010a2b9
cmp qword [rbx + 0x18], 0
je 0x14010a1a9
mov rax, qword [rbx + 8]
cmp byte [rax + 0x32], 0
je 0x14010a2b9
movzx eax, byte [rbx + 0x138]
cmp edx, eax
jne 0x14010a1fd
cmp dword [rbp - 0x28], 0
je 0x14010a330
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp - 0x28], eax
je 0x14010a34a
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x20], xmm0
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.1400c860c
test eax, eax
jne 0x14010a355
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
movzx r8d, byte [rbx + 0x138]
jmp 0x14010a2ec
test edx, edx
je 0x14010a27a
cmp edx, eax
je 0x14010a27a
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], r13
mov ecx, 0x30
call fcn.1400c9d40
mov rdx, rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x10], 0x2a
mov qword [rbp - 8], 0x2f
movups xmm0, xmmword [str.Not_enough_bytes_received_from_the_device.]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x14029ced0]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x14029cee0]
movsd qword [rax + 0x20], xmm0
movzx eax, word [0x14029cee8]
mov word [rdx + 0x28], ax
mov byte [rdx + 0x2a], 0
lea r8, [rbp - 0x20]
mov edx, 0xffffffec
lea rcx, [rbx + 0x50]
call fcn.140103fd0
jmp 0x14010a288
lea rcx, [rbx + 0x50]
mov edx, 0xffffffe9
call fcn.140104070
mov dword [rbp + 0x40], eax
cmp dword [rbp - 0x28], 0
je 0x14010a330
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x20], xmm0
lea rcx, [rbp - 0x20]
call fcn.1400c85e8
test eax, eax
jne 0x14010a330
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
jmp 0x14010a2f7
cmp dword [rbp - 0x28], 0
je 0x14010a330
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x20], xmm0
lea rcx, [rbp - 0x20]
call fcn.1400c85e8
test eax, eax
jne 0x14010a330
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
movzx eax, byte [rbx + 0x138]
cmp dword [rbp + 0x50], eax
jne 0x14010a2f7
mov r8d, eax
mov rdx, r15
mov rcx, r12
call fcn.140279770
mov rcx, r15
call fcn.1400c9d7c
mov ebx, dword [rbp + 0x40]
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, rdi
call fcn.1400c9d7c
nop
cmp dword [rbp - 0x28], 0
jne 0x14010a360
mov eax, ebx
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 1
call fcn.1400c79a8
nop
mov dword [rbp - 0x28], r13d
mov ecx, 6
call fcn.1400c79a8
nop
mov ecx, 5
call fcn.1400c79a8
int3
mov ecx, 2
call fcn.1400c79a8
nop
call fcn.1400dc428
int3