Function at 0x140005ec0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r14
sub rsp, 0x120
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x14015f0c8]
xor rax, rsp
mov qword [rbp + 0x88], rax
mov rsi, rcx
mov rax, qword [0x140170a78]
lea rbx, [rax + rax*8]
mov rax, qword [0x14015f250]
lea rbx, [rbx + 1]
lea rbx, [rax + rbx*8]
test rbx, rbx
je 0x140005f3e
mov rcx, qword [rbx + 0x38]
and rcx, 0xfffffffffffffffc
je 0x140005f3e
add rcx, 8
lea rdx, [0x14015f778]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_compare]
test eax, eax
je 0x140005f40
xor ebx, ebx
movzx eax, byte [rbx]
mov byte [0x140160fc4], al
test al, al
je 0x140006338
cmp byte [rsi + 0x1434], 0
je 0x140006338
mov rax, qword [0x140170a20]
lea rbx, [rax + rax*8]
mov rax, qword [0x14015f250]
lea rbx, [rbx + 1]
lea rbx, [rax + rbx*8]
test rbx, rbx
je 0x140005f9c
mov rcx, qword [rbx + 0x38]
and rcx, 0xfffffffffffffffc
je 0x140005f9c
add rcx, 8
lea rdx, [0x14015f778]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_compare]
test eax, eax
je 0x140005f9e
xor ebx, ebx
cmp byte [rbx], 0
je 0x140005faf
mov byte [0x140160ff0], 0
jmp 0x1400062d5
mov rcx, rsi
call fcn.140006a00
mov rcx, rsi
call fcn.140007190
cmp byte [0x140160fc4], 0
jne 0x140005fe2
cmp byte [0x140160ff0], 0
je 0x140005fdd
mov byte [0x140160ff0], 0
call fcn.140005e20
jmp 0x1400062d5
mov rax, qword [0x140170a80]
lea rbx, [rax + rax*8]
mov rax, qword [0x14015f250]
lea rbx, [rbx + 1]
lea rbx, [rax + rbx*8]
test rbx, rbx
je 0x140006020
mov rcx, qword [rbx + 0x38]
and rcx, 0xfffffffffffffffc
je 0x140006020
add rcx, 8
lea rdx, [0x14015f778]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_compare]
test eax, eax
je 0x140006022
xor ebx, ebx
cmp byte [rbx], 0
je 0x140006108
mov rbx, qword [0x140161300]
mov rcx, rsi
call fcn.140088250
mov edi, eax
movss xmm0, dword [0x14015f120]
mulss xmm0, dword [0x1401496c8]
movss xmm8, dword [0x140149714]
mulss xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_tanf
movaps xmm7, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mulss xmm0, dword [0x1401496c8]
mulss xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_tanf
divss xmm7, xmm0
mulss xmm7, dword [rbx + 0x10]
comiss xmm7, dword [0x1401496e8]
jbe 0x140006108
mov rax, qword [0x140161300]
mov rax, qword [rax + 0x4878]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax]
call fcn.14002cd30
mov rbx, rax
movaps xmm0, xmmword [0x140149c50]
movups xmmword [rbp + 0x40], xmm0
lea rcx, [rbp + 0x40]
call fcn.140027f30
mov rcx, qword [0x140161300]
movss xmm1, dword [rcx + 0x14]
mulss xmm1, xmm8
movss xmm0, dword [rcx + 0x10]
mulss xmm0, xmm8
movss dword [rbp], xmm0
movss dword [rbp + 4], xmm1
movss xmm1, dword [0x140149750]
movss dword [rsp + 0x28], xmm1
mov r9d, eax
movaps xmm2, xmm7
lea rdx, [rbp]
mov rcx, rbx
call fcn.14004bb70
mov eax, dword [rsi + 0x40]
cmp dword [0x140160fa8], eax
je 0x1400062d5
mov dword [0x140160fa8], eax
cmp byte [0x140160fc5], 0
je 0x1400061e9
mov eax, dword [rsi + 4]
sub eax, dword [0x140170660]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jl 0x140006184
mov byte [0x140160fc5], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
sub ebx, dword [0x140160fd8]
lea rdx, [0x1400dc9e4]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140009820
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
lea rdx, [0x1400dc9e0]
mov rcx, rax
call fcn.140009820
call fcn.140005e20
mov rax, qword [0x140170ab8]
lea rbx, [rax + rax*8]
mov rax, qword [0x14015f250]
lea rbx, [rbx + 1]
lea rbx, [rax + rbx*8]
test rbx, rbx
je 0x1400061c2
mov rcx, qword [rbx + 0x38]
and rcx, 0xfffffffffffffffc
je 0x1400061c2
add rcx, 8
lea rdx, [0x14015f600]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_compare]
test eax, eax
je 0x1400061c4
xor ebx, ebx
movsxd rcx, dword [0x140160fc0]
mov r8, rcx
shr r8, 5
mov rdx, qword [rbx]
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [rdx + r8*4], eax
je 0x1400062d5
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140006213
cmp byte [0x140160ff0], 0
je 0x14000620e
mov byte [0x140160ff0], 0
call fcn.140005e20
jmp 0x1400062d5
mov rcx, rsi
call fcn.140006360
mov qword [0x140170a00], 0
mov dil, 1
mov rbx, qword [0x14015f2a0]
mov r14, qword [0x14015f2a8]
movss xmm6, dword [0x140149c60]
nop
cmp rbx, r14
je 0x1400062cc
mov r8, rbx
lea rcx, [rbp + 0x10]
call fcn.140008350
cmp byte [rbp + 0x1c], 0
je 0x14000630e
mov rax, qword [rbx + 0x390]
cmp rax, qword [0x140160ff8]
je 0x14000631a
movss xmm0, dword [0x140160fec]
subss xmm0, dword [0x140161000]
andps xmm0, xmm6
comiss xmm0, dword [0x14015f11c]
jb 0x14000630b
mov qword [0x140160ff8], rax
mov rdx, rbx
lea rcx, [0x140170670]
call fcn.140007930
movss xmm0, dword [rbp + 0x10]
movss dword [0x1401709f0], xmm0
movss xmm1, dword [rbp + 0x14]
movss dword [0x1401709f4], xmm1
movss xmm0, dword [rbp + 0x18]
movss dword [0x1401709f8], xmm0
mov rcx, rsi
call fcn.140007d00
nop
mov rcx, qword [rbp + 0x88]
xor rcx, rsp
call fcn.1400ceac0
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
xor dil, dil
add rbx, 0x3b0
jmp 0x140006240
test dil, dil
je 0x140006296
movss xmm0, dword [0x140160fec]
movss dword [0x140161000], xmm0
jmp 0x140006296
mov byte [0x140160ff0], 0
cmp byte [rsi + 0x1434], 0
je 0x14000634d
call fcn.140005e20
jmp 0x1400062d5