Function at 0x14001fdd0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp - 0x39], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov rdi, rcx
mov qword [rbp - 0x19], 0
movzx r15d, r8w
mov dword [rbp - 0x19], r15d
shr r8, 0x10
movzx r14d, r8w
mov dword [rbp - 0x15], r14d
mov rbx, qword [rbp - 0x19]
mov qword [rcx + 0x260], rbx
cmp dword [rcx + 0x268], 0
jne 0x14001fe77
mov dword [rcx + 0x268], 1
mov dword [rbp - 0x31], 0x18
mov dword [rbp - 0x2d], 2
mov dword [rbp - 0x21], 0xffffffff
mov rax, qword [rcx + 0x1a0]
mov qword [rbp - 0x29], rax
lea rcx, [rbp - 0x31]
call fcn.14001b930
cmp dword [rdi + 0x248], 0
je 0x1400200d8
mov dword [rbp - 0x31], 0xf
mov dword [rbp - 0x2d], 0xf
mov ecx, dword [rdi + 0x21c]
add ecx, 0xfffffff2
mov dword [rbp - 0x29], ecx
mov eax, dword [rdi + 0x240]
sub eax, 0x12
mov dword [rbp - 0x25], eax
cmp r15d, 0xf
jb 0x1400200d8
cmp ecx, r15d
jl 0x1400200d8
mov rax, qword [rbp - 0x31]
shr rax, 0x20
cmp eax, r14d
jg 0x1400200d8
mov rax, qword [rbp - 0x29]
shr rax, 0x20
cmp eax, r14d
jl 0x1400200d8
mov rax, qword [rdi + 8]
test rax, rax
jne 0x14001ff13
lea ecx, [rax + 0x18]
call fcn.14005d524
mov qword [rbp - 0x31], rax
test rax, rax
je 0x14001ff0f
xor ecx, ecx
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov rcx, rax
call fcn.140022510
nop
mov qword [rdi + 8], rax
mov rcx, rax
call fcn.140022790
mov esi, eax
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14001ff55
cmp r15d, dword [rdi + 0x20]
jne 0x14001ff3e
cmp r14d, dword [rdi + 0x24]
je 0x14001ff55
cmp esi, 1
jle 0x1400200a0
mov rcx, qword [rdi + 8]
call fcn.1400228d0
jmp 0x1400200a0
cmp esi, 2
jle 0x140020048
lea r8d, [rsi - 1]
lea rdx, [rbp - 0x19]
mov rcx, qword [rdi + 8]
call fcn.1400227a0
lea r8d, [rsi - 2]
lea rdx, [rbp - 0x31]
mov rcx, qword [rdi + 8]
call fcn.1400227a0
movd xmm7, dword [rbp - 0x19]
cvtdq2pd xmm7, xmm7
movd xmm6, r15d
cvtdq2pd xmm6, xmm6
subsd xmm6, xmm7
movd xmm8, dword [rbp - 0x15]
cvtdq2pd xmm8, xmm8
movd xmm9, r14d
cvtdq2pd xmm9, xmm9
subsd xmm9, xmm8
movaps xmm0, xmm9
mulsd xmm0, xmm9
movaps xmm2, xmm6
mulsd xmm2, xmm6
addsd xmm0, xmm2
call fcn.140066688
comisd xmm0, xmmword [0x1400ae9e0]
jbe 0x1400200ac
movaps xmm1, xmm9
movaps xmm0, xmm6
call fcn.14006675c
movaps xmm6, xmm0
xorps xmm2, xmm2
cvtsi2sd xmm2, dword [rbp - 0x31]
subsd xmm7, xmm2
xorps xmm3, xmm3
cvtsi2sd xmm3, dword [rbp - 0x2d]
subsd xmm8, xmm3
movaps xmm1, xmm8
movaps xmm0, xmm7
call fcn.14006675c
subsd xmm6, xmm0
andps xmm6, xmmword [0x1400aea00]
comisd xmm6, xmmword [0x1400ae9e8]
jbe 0x14002002f
movsd xmm0, qword [0x1400ae9f0]
subsd xmm0, xmm6
movaps xmm6, xmm0
movsd xmm0, qword [0x1400ae9d8]
comisd xmm0, xmm6
jbe 0x1400200a0
mov rcx, qword [rdi + 8]
call fcn.1400228d0
jmp 0x1400200a0
test esi, esi
jle 0x1400200a0
lea r8d, [rsi - 1]
lea rdx, [rbp - 0x31]
mov rcx, qword [rdi + 8]
call fcn.1400227a0
xorps xmm2, xmm2
cvtsi2sd xmm2, r15d
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rbp - 0x31]
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, r14d
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [rbp - 0x2d]
subsd xmm0, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm0, xmm2
call fcn.140066688
comisd xmm0, xmmword [0x1400ae9e0]
jbe 0x1400200ac
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.140022600
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rdi + 0x1a0]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov dword [0x1401a1120], eax
mov rcx, qword [rdi + 0x1a0]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov dword [0x1401a1120], eax
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.14005d680
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret