Function at 0x14005b570
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r15d, dword [rsp + 0xa0]
mov rbx, r8
mov r8d, dword [rsp + 0xb0]
mov r12, rcx
mov dword [rdx + 0x42], r9d
mov ecx, 1
mov dword [rdx + 0x46], r15d
mov ebp, r9d
cmp dword [0x1400b83a0], 0xbb9
mov rdi, rdx
mov edx, ebp
cmovne r8d, ecx
xor r14d, r14d
cmp r8d, 5
mov eax, r14d
mov r8d, r15d
sete al
xor r9d, r9d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.140025254
mov ecx, dword [rdi + 0x26]
lea r9, [rsp + 0x88]
mov r8d, ebp
mov dword [0x140097010], r14d
lea edx, [r14 + 0x65]
mov dword [0x140096fe0], r14d
mov dword [0x14009700c], r14d
call fcn.14004564c
test eax, eax
jne 0x14005b8a5
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rsi, rax
cmp ebp, dword [rdi + 0xf6]
jne 0x14005b6ed
test r15d, r15d
jne 0x14005b6ed
movups xmm0, xmmword [rax + 0x1c]
lea rcx, [0x1400b8b00]
movdqu xmmword [0x1400b8b00], xmm0
mov r8d, dword [rax + 0x54]
add r8d, dword [rdi + 0x72]
mov edx, dword [rdi + 0x6e]
add r8d, dword [rax + 0x18]
sub edx, dword [rax + 0x14]
call qword [sym.imp.USER32.dll_OffsetRect]
mov qword [0x1400a7798], rbx
mov eax, dword [rdi + 0x7a]
sub eax, dword [0x1400b8b00]
add eax, ebx
mov qword [0x1400b8b20], rbx
mov dword [0x1400b8b10], eax
mov eax, dword [rdi + 0x7e]
sub eax, dword [0x1400b8b04]
add eax, dword [rsp + 0x94]
mov dword [0x1400b8b14], eax
mov eax, dword [rdi + 0x56]
sub eax, dword [rdi + 0x82]
sub eax, dword [0x1400b8b08]
add eax, ebx
mov dword [0x1400b8b18], eax
mov eax, dword [rdi + 0x5a]
sub eax, dword [rdi + 0x86]
sub eax, dword [0x1400b8b0c]
add eax, dword [rsp + 0x94]
mov dword [0x1400b8b1c], eax
mov dword [0x1400b8b10], ebx
mov dword [0x1400b8b18], ebx
mov dword [0x140096f9c], 0xf
jmp 0x14005b88e
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
shr rax, 8
mov ecx, reloc.COMCTL32.dll_InitCommonControls
mov qword [rsp + 0x30], rax
call qword [sym.imp.USER32.dll_GetKeyState]
mov edx, r15d
mov rcx, rsi
movzx r13d, ax
shr r13, 8
call fcn.140021bb8
movzx ecx, r15w
mov r14, rax
movzx edx, bp
shl edx, 0x10
movups xmm0, xmmword [rax + 0x30]
or edx, ecx
mov ecx, dword [rsp + 0xa8]
movsx r8d, cx
shr ecx, 0x10
mov dword [0x1400b8b34], edx
movsx edx, cx
lea rcx, [0x1400b8b00]
movdqu xmmword [0x1400b8b00], xmm0
call qword [sym.imp.USER32.dll_OffsetRect]
mov qword [0x1400a7798], rbx
mov eax, dword [rdi + 0x7a]
sub eax, dword [0x1400b8b00]
add eax, ebx
mov qword [0x1400b8b20], rbx
mov dword [0x1400b8b10], eax
mov eax, dword [rdi + 0x7e]
sub eax, dword [0x1400b8b04]
add eax, dword [rsp + 0x94]
mov dword [0x1400b8b14], eax
mov eax, dword [rdi + 0x56]
sub eax, dword [rdi + 0x82]
sub eax, dword [0x1400b8b08]
add eax, ebx
xor ebx, ebx
mov dword [0x1400b8b18], eax
mov eax, dword [rdi + 0x5a]
sub eax, dword [rdi + 0x86]
sub eax, dword [0x1400b8b0c]
add eax, dword [rsp + 0x94]
mov dword [0x1400b8b1c], eax
mov word [0x1400b8b32], bx
test r13b, r13b
je 0x14005b7e3
mov dword [0x140096f9c], 9
jmp 0x14005b88e
cmp byte [rsp + 0x30], bl
je 0x14005b809
test r13b, r13b
je 0x14005b809
mov eax, 1
mov dword [0x140096f9c], 0xb
mov word [0x1400b8b32], ax
jmp 0x14005b88e
mov dword [0x140096f9c], 0xa
cmp dword [rsi + 0x34], 0x22
jne 0x14005b831
mov edx, dword [rsi + 0x8c]
cmp edx, 2
jg 0x14005b831
dec edx
mov rcx, rsi
call fcn.140021bb8
mov r14, rax
test byte [rsi + 0x10], 4
mov r8d, dword [r14]
jne 0x14005b844
test byte [r14 + 0xf4], 0x10
je 0x14005b848
or r8d, 0xffffffff
mov dword [0x140096284], r8d
cmp r8d, 0xffffffff
je 0x14005b88e
mov ecx, dword [rdi + 0x26]
lea r9, [rsp + 0x30]
mov edx, 0x65
call fcn.14004564c
test eax, eax
jne 0x14005b88e
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rbx
or dword [rax + 0x10], 0x10
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rbx
call fcn.14004708c
mov rcx, r12
call qword [sym.imp.USER32.dll_SetCapture]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret