Function at 0x140066e90
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0xd8]
sub rsp, 0x1a0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
xor r12d, r12d
mov dword [rbp + 0xe0], r12d
mov rax, qword [0x140128850]
test rax, rax
je 0x140066ed7
mov rcx, qword [rax + 0xa8]
jmp 0x140066eda
mov rcx, r12
cmp qword [rcx + 0x18], r12
jne 0x140066efb
test rax, rax
je 0x140066efb
mov rcx, qword [rax + 0xa8]
test rcx, rcx
je 0x140066efb
cmp qword [rcx], r12
je 0x140066efb
call fcn.140033570
call fcn.1400344f0
call fcn.140009610
xorps xmm7, xmm7
movss xmm8, dword [0x1400bc3cc]
movsd xmm6, qword [0x1400bc418]
cmp byte [0x14012884b], 1
jne 0x140067075
cvttss2si esi, dword [0x1400d21e8]
mov eax, dword [0x140128eb8]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, dword [0x140128ebc]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov rcx, qword [0x140128850]
mov rcx, qword [rcx + 0x4be0]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rcx]
call fcn.140008840
mov r14, rax
mov ecx, dword [0x1401248fc]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
divsd xmm0, xmm6
cvtpd2ps xmm4, xmm0
mov ecx, dword [0x1401248f8]
xorps xmm1, xmm1
cvtsi2sd xmm1, rcx
divsd xmm1, xmm6
cvtpd2ps xmm3, xmm1
mov ecx, dword [0x1401248f4]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
divsd xmm0, xmm6
cvtpd2ps xmm2, xmm0
mov ecx, dword [0x1401248f0]
xorps xmm1, xmm1
cvtsi2sd xmm1, rcx
divsd xmm1, xmm6
cvtpd2ps xmm0, xmm1
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm2
movss dword [rsp + 0x48], xmm3
movss dword [rsp + 0x4c], xmm4
lea rcx, [rsp + 0x40]
call fcn.140003190
mov r15d, eax
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0xe0], xmm0
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0xe4], xmm1
movd xmm2, esi
cvtdq2ps xmm2, xmm2
test eax, 0xff000000
je 0x140067075
movss xmm0, dword [0x1400bc384]
comiss xmm0, xmm2
ja 0x140067075
subss xmm2, xmm0
mov dword [rsp + 0x28], 0x63
movss xmm0, dword [0x1400bc430]
movss dword [rsp + 0x20], xmm0
xorps xmm3, xmm3
lea rdx, [rbp + 0xe0]
mov rcx, r14
call fcn.14002b930
movss dword [rsp + 0x28], xmm8
mov dword [rsp + 0x20], 1
mov r9d, r15d
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.140029f40
mov dword [r14 + 0x50], r12d
call fcn.14005f070
lea rcx, [rbp + 0xe8]
call qword [sym.imp.USER32.dll_GetCursorPos]
movss xmm0, dword [0x1400d21c8]
movss xmm2, dword [0x1400bc4ac]
mulss xmm0, xmm2
cvttss2si rbx, xmm0
movss xmm0, dword [0x1400d21cc]
mulss xmm0, xmm2
cvttss2si rdi, xmm0
movss xmm1, dword [0x1400d21d0]
mulss xmm1, xmm2
cvttss2si rsi, xmm1
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400670fc
movzx eax, byte [0x14012884d]
test al, al
jne 0x1400670e6
mov byte [0x14012884d], 1
jmp 0x1400670f1
cmp al, 1
jne 0x1400670f1
mov byte [0x14012884d], r12b
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
movabs r15, 0x7b4d78be7119bd17
movabs r14, 0x35d0aabf20a742ac
mov rax, qword [0x140128850]
cmp byte [0x14012884d], r12b
je 0x1400672fd
mov rax, qword [rax + 0x4be0]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.140008840
mov r10, rax
mov ecx, esi
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
divsd xmm0, xmm6
cvtpd2ps xmm3, xmm0
mov ecx, edi
xorps xmm1, xmm1
cvtsi2sd xmm1, rcx
divsd xmm1, xmm6
cvtpd2ps xmm2, xmm1
mov ecx, ebx
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
divsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm2
movss dword [rsp + 0x48], xmm3
mov dword [rsp + 0x4c], 0x3f800000
lea rcx, [rsp + 0x40]
call fcn.140003190
mov r8d, dword [rbp + 0xec]
lea ecx, [r8 + 5]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mov rcx, qword [rbp + 0xe8]
lea edx, [rcx + 5]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0xe0], xmm0
movss dword [rbp + 0xe4], xmm1
lea edx, [r8 - 5]
movd xmm1, edx
cvtdq2ps xmm1, xmm1
add ecx, 0xfffffffb
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0xf0], xmm0
movss dword [rbp + 0xf4], xmm1
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp + 0xe0]
lea rdx, [rbp + 0xf0]
mov rcx, r10
call fcn.14002c370
mov rbx, qword [0x140128850]
mov qword [rbx + 0x4ae0], r12
mov qword [rbx + 0x4ae8], r12
mov dword [rbx + 0x4ad4], 2
or dword [rbx + 0x4ad0], 3
movsd xmm0, qword [rbx + 0x10]
movsd qword [rbx + 0x4af0], xmm0
mov dword [rbx + 0x4ad8], 2
movdqa xmm6, xmmword [0x1400bc8d0]
mov dword [rsp + 0x60], 2
movups xmm0, xmmword [rbx + 0x3a48]
movups xmmword [rsp + 0x64], xmm0
lea rcx, [rbx + 0x4b48]
lea rdx, [rsp + 0x60]
call fcn.14001fe90
cmp dword [rbx + 0x4b44], 2
je 0x140067292
movups xmmword [rbx + 0x3a48], xmm6
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x68], r14
movabs rax, 0x92a13dd107b9e34
mov qword [rsp + 0x40], rax
movabs rax, 0x35d0aabf44c937c3
mov qword [rsp + 0x48], rax
movaps xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
xor edx, edx
mov r8d, 0x201f
lea rcx, [rsp + 0x60]
call fcn.14000f1d0
call fcn.1400118f0
mov ecx, 1
call fcn.140003730
call fcn.140065bf0
mov rax, qword [0x140128850]
mov byte [rax + 0x5f], 1
jmp 0x140067301
mov byte [rax + 0x5f], r12b
cmp byte [0x1400d21b7], 1
jne 0x14006750b
lea rcx, [rbp - 0x80]
call fcn.140069b70
nop
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r14
movabs rax, 0x7b4d789e4b4aed51
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], r14
movaps xmm0, xmmword [rsp + 0x60]
xorps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x80]
call fcn.1400598b0
mov rbx, rax
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
btr ecx, 0xc
bts ecx, 0xd
mov dword [rdx + rax + 0x18], ecx
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.14007041c
mov r8, qword [rax]
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call r8
mov rax, qword [0x140128850]
movss xmm1, dword [rax + 0xc0]
mov rcx, rbx
call fcn.140069c90
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x1400bc590]
movdqu xmmword [rsp + 0x50], xmm1
mov byte [rsp + 0x40], 0
mov dword [rbp + 0xe0], 2
movups xmmword [rsp + 0x60], xmm0
mov rcx, qword [rbp - 8]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400673fd
mov rax, qword [rbp - 0x38]
mov r8, qword [rax]
test r8, r8
je 0x1400673fd
mov rax, qword [rbp - 0x58]
mov rdx, qword [rax]
cmp r8, qword [rbp - 0x10]
cmovb r8, qword [rbp - 0x10]
sub r8, rdx
jmp 0x14006742e
test cl, 4
jne 0x140067424
mov rax, qword [rbp - 0x40]
mov rcx, qword [rax]
test rcx, rcx
je 0x140067424
mov rax, qword [rbp - 0x60]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x28]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x14006742e
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x14006743e
lea rcx, [rsp + 0x40]
call fcn.140058300
nop
lea r9, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova r9, qword [rsp + 0x40]
lea r8, [0x140124730]
mov edx, 0x2c
mov ecx, 0x1e
call fcn.14005acc0
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x1400674a4
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006749e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067713
call fcn.14006cd54
nop
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rsp + rcx + 0x7c], edx
lea rcx, [rbp - 0x78]
call fcn.140069990
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x7c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 8], rax
lea rcx, [rbp + 8]
call fcn.14006fa3c
nop
mov rcx, qword [0x140128908]
cmp byte [0x1400d21c7], 1
jne 0x140067522
mov edx, 0x11
jmp 0x140067524
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
cmp byte [0x14012884c], 1
jne 0x140067540
xor edx, edx
jmp 0x140067545
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
call fcn.14000b2a0
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 7
call qword [rax + 0x1c8]
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x1b
call qword [rax + 0x1c8]
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0xae
call qword [rax + 0x1c8]
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
mov dword [rsp + 0x30], r12d
movss dword [rsp + 0x28], xmm8
mov dword [rsp + 0x20], r12d
mov r9d, 1
xor r8d, r8d
xor edx, edx
call qword [rax + 0x158]
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x14006760e
call fcn.14000b6c0
mov rax, qword [0x140128850]
mov rcx, qword [rax + 0x4be0]
mov rcx, qword [rcx]
add rcx, 0x50
cmp byte [rcx], 0
cmove rcx, r12
call fcn.140032e70
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x1400676ee
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x1400676ee
mov rbx, qword [0x140128850]
test rbx, rbx
je 0x1400676b4
mov rbx, qword [rbx + 0xa8]
test rbx, rbx
je 0x1400676b4
cmp qword [rbx], 0
je 0x1400676b4
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14006767f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 8], r12
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140067692
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x10], r12
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1400676b4
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x18], r12
mov rax, qword [0x140128850]
mov rcx, qword [rax + 0x38]
mov qword [rcx + 8], r12
mov rcx, qword [0x1401289c8]
mov rax, qword [rcx]
lea rdx, [0x140128980]
call qword [rax + 0x80]
mov rax, qword [0x140128850]
test rax, rax
je 0x1400676ee
mov rax, qword [rax + 0xa8]
test rax, rax
je 0x1400676ee
cmp qword [rax], 0
je 0x1400676ee
call fcn.140033570
lea r11, [rsp + 0x1a0]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400824dc
nop
int3