Function at 0x1400a22f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x150
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm11
mov rax, qword [0x140282140]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor r14d, r14d
mov rcx, qword [0x14028fce8]
cmp byte [0x14028fa05], r14b
je 0x1400a234d
lea edx, [r14 + 0x11]
jmp 0x1400a234f
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
cmp byte [0x14028fa04], r14b
je 0x1400a238a
cvttss2si r8d, dword [0x14028668c]
movaps xmm0, xmmword [0x14028db40]
movdqa xmmword [rsp + 0x40], xmm0
lea r9, [rsp + 0x40]
mov edx, dword [0x14028fa1c]
mov ecx, dword [0x14028fa3c]
call fcn.14009fdb8
call fcn.14009cdf8
mov rbx, rax
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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___unsigned_long_long_unsigned___int64_____ptr64]
lea rdx, [0x1400a7298]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea r8, [rbx + 0x11770d88]
call fcn.1400a75a0
mov qword [0x14028fb18], rax
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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___unsigned_long_long_unsigned___int64_____ptr64]
lea rdx, [0x1400a7298]
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___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov r8, qword [0x14028fb18]
add r8, 0x1d0
call fcn.1400a75a0
mov qword [0x14028fa28], rax
lea r8, [rax + 0x38]
call fcn.1400a75a0
mov qword [0x14028faa8], rax
mov r8, rax
call fcn.1400a75a0
mov qword [0x14028fae8], rax
lea r8, [rax + 0x30]
call fcn.1400a75a0
mov qword [0x14028fa10], rax
lea r8, [rax + 0x338]
call fcn.1400a75a0
mov qword [0x14028faa0], rax
lea r8, [rax + 0x2b0]
call fcn.1400a75a0
mov qword [0x14028fa90], rax
mov r8, qword [0x14028fab8]
add r8, qword [0x14028fa10]
call fcn.1400a75a0
mov qword [0x14028fab8], rax
mov r8, qword [0x14028faa0]
add r8, 0x198
call fcn.1400a75a0
mov qword [0x14028fb00], rax
mov r8, qword [0x14028fb18]
add r8, 0x30
call fcn.1400a75a0
mov qword [0x14028fad0], rax
lea r8, [rax + 0xa8]
call fcn.1400a77b0
mov r8, qword [0x14028fb18]
add r8, 0x158
call fcn.1400a75a0
mov qword [0x14028fa88], rax
lea r8, [rax + 0x2a8]
call fcn.1400a75a0
mov qword [0x14028fa80], rax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
mov qword [rbp - 0x58], r14
mov rcx, qword [0x14028fbd0]
sub rcx, qword [0x14028fbc8]
movabs r15, 0x2aaaaaaaaaaaaaab
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea r9, [0x14028fbd0]
lea rcx, [rbp - 0x68]
call fcn.1400a9938
nop
mov dword [0x14028fb20], 0x7f7fffff
mov qword [0x14028fb10], r14
mov r8, qword [0x14028fa88]
add r8, 0x2b0
call fcn.1400a7550
mov dword [0x14028faf8], eax
mov ebx, r14d
test eax, eax
je 0x1400a2f52
xorps xmm11, xmm11
lea r8d, [rbx*8]
add r8, qword [0x14028fa80]
call fcn.1400a75a0
mov qword [0x14028fab0], rax
lea r8, [rax + 0x308]
call fcn.1400a75a0
mov qword [0x14028fb08], rax
cmp rax, qword [0x14028faa0]
je 0x1400a2f44
test rax, rax
je 0x1400a2f44
lea r8, [rax + 0x318]
call fcn.1400a75a0
mov qword [0x14028fa30], rax
mov r8, qword [0x14028fa90]
add r8, 0x10f1
call fcn.1400a7550
mov r8, qword [0x14028fb08]
add r8, 0x290
call fcn.1400a75a0
lea r8, [rax + 0x10f1]
call fcn.1400a7550
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x80], xmm1
mov qword [rbp - 0x70], r14
mov rcx, qword [0x14028fbd0]
sub rcx, qword [0x14028fbc8]
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea r9, [0x14028fbd0]
lea rcx, [rbp - 0x80]
call fcn.1400a9938
nop
mov r8d, 0x43
mov rdx, qword [0x14028fa30]
lea rcx, [rsp + 0x40]
call fcn.1400a0f00
movups xmm0, xmmword [rax]
movups xmmword [0x14028fdf0], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [0x14028fe00], xmm1
mov r9, qword [0x14028fb00]
add r9, 0x120
lea rcx, [rsp + 0x40]
call fcn.1400a76ec
movups xmm6, xmmword [rax]
movups xmmword [0x14028fcb8], xmm6
movsd xmm0, qword [rax + 0x10]
movsd qword [0x14028fcc8], xmm0
movsd xmm1, qword [0x14028fdf8]
movaps xmm0, xmm6
unpckhpd xmm0, xmm6
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [0x14026589c]
call fcn.14022de39
movaps xmm7, xmm0
movsd xmm0, qword [0x14028fdf0]
subsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss xmm1, dword [0x14026589c]
call fcn.14022de39
addss xmm7, xmm0
movsd xmm1, qword [0x14028fe00]
subsd xmm1, qword [0x14028fcc8]
cvtpd2ps xmm0, xmm1
movss xmm1, dword [0x14026589c]
call fcn.14022de39
addss xmm7, xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm9, xmm0
xor r8d, r8d
mov rdx, qword [0x14028fa30]
lea rcx, [rsp + 0x68]
call fcn.1400a0f00
movups xmm1, xmmword [rax]
movups xmmword [0x14028fff8], xmm1
movsd xmm2, qword [rax + 0x10]
movsd qword [0x140290008], xmm2
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rsp + 0x50], xmm1
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.1400a13e4
movups xmm0, xmmword [rax]
movups xmmword [0x14028fdd8], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [0x14028fde8], xmm1
movsd xmm0, qword [0x14028fe00]
addsd xmm0, qword [0x1402658d0]
cvtpd2ps xmm3, xmm0
movsd xmm2, qword [0x14028fdf8]
cvtpd2ps xmm2, xmm2
movsd xmm0, qword [0x14028fdf0]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm0
movsd qword [rsp + 0x40], xmm1
cvtps2pd xmm2, xmm2
movsd qword [rsp + 0x48], xmm2
cvtps2pd xmm0, xmm3
movsd qword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.1400a13e4
movups xmm6, xmmword [rax]
movups xmmword [0x14028fcd0], xmm6
movsd xmm0, qword [rax + 0x10]
movsd qword [0x14028fce0], xmm0
mov edi, dword [0x14028fac4]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm6
subsd xmm2, xmm0
mov esi, dword [0x14028fac0]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movaps xmm8, xmm6
unpckhpd xmm8, xmm6
movaps xmm1, xmm8
subsd xmm1, xmm0
comisd xmm11, xmmword [0x14028fce0]
ja 0x1400a2f3b
mulsd xmm1, xmm1
mulsd xmm2, xmm2
addsd xmm1, xmm2
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm7, xmm0
movss xmm1, dword [0x140286674]
comiss xmm1, xmm7
jbe 0x1400a2f3b
cmp byte [0x14028fa01], r14b
je 0x1400a2d5f
call fcn.1400a1b7c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x140290078]
cvttsd2si r8d, qword [0x140290070]
cvttsd2si edx, qword [0x1402901c0]
cvttsd2si ecx, qword [0x1402901b8]
movaps xmm1, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm1
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x140290178]
cvttsd2si r8d, qword [0x140290170]
cvttsd2si edx, qword [0x14028ffa0]
cvttsd2si ecx, qword [0x14028ff98]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x140290178]
cvttsd2si r8d, qword [0x140290170]
cvttsd2si edx, qword [0x14028ffb8]
cvttsd2si ecx, qword [0x14028ffb0]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028ffa0]
cvttsd2si r8d, qword [0x14028ff98]
cvttsd2si edx, qword [0x140290190]
cvttsd2si ecx, qword [0x140290188]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028ffb8]
cvttsd2si r8d, qword [0x14028ffb0]
cvttsd2si edx, qword [0x14028fe10]
cvttsd2si ecx, qword [0x14028fe08]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x140290190]
cvttsd2si r8d, qword [0x140290188]
cvttsd2si edx, qword [0x140290250]
cvttsd2si ecx, qword [0x140290248]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028fe10]
cvttsd2si r8d, qword [0x14028fe08]
cvttsd2si edx, qword [0x14028ff58]
cvttsd2si ecx, qword [0x14028ff50]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x1402901d8]
cvttsd2si r8d, qword [0x1402901d0]
cvttsd2si edx, qword [0x140290250]
cvttsd2si ecx, qword [0x140290248]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x140290018]
cvttsd2si r8d, qword [0x140290010]
cvttsd2si edx, qword [0x14028ff58]
cvttsd2si ecx, qword [0x14028ff50]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x1402901c0]
cvttsd2si r8d, qword [0x1402901b8]
cvttsd2si edx, qword [0x14028fdc8]
cvttsd2si ecx, qword [0x14028fdc0]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x1402901c0]
cvttsd2si r8d, qword [0x1402901b8]
cvttsd2si edx, qword [0x14028fca8]
cvttsd2si ecx, qword [0x14028fca0]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028fdc8]
cvttsd2si r8d, qword [0x14028fdc0]
cvttsd2si edx, qword [0x1402900c0]
cvttsd2si ecx, qword [0x1402900b8]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028fca8]
cvttsd2si r8d, qword [0x14028fca0]
cvttsd2si edx, qword [0x1402900a8]
cvttsd2si ecx, qword [0x1402900a0]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x1402900c0]
cvttsd2si r8d, qword [0x1402900b8]
cvttsd2si edx, qword [0x140290148]
cvttsd2si ecx, qword [0x140290140]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x1402900a8]
cvttsd2si r8d, qword [0x1402900a0]
cvttsd2si edx, qword [0x14028fe58]
cvttsd2si ecx, qword [0x14028fe50]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028fe28]
cvttsd2si r8d, qword [0x14028fe20]
cvttsd2si edx, qword [0x140290148]
cvttsd2si ecx, qword [0x140290140]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
cvttsd2si eax, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028ff40]
cvttsd2si r8d, qword [0x14028ff38]
cvttsd2si edx, qword [0x14028fe58]
cvttsd2si ecx, qword [0x14028fe50]
movaps xmm0, xmmword [0x14028d750]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009fe1c
movsd xmm8, qword [0x14028fcd8]
movsd xmm6, qword [0x14028fcd0]
mov edi, dword [0x14028fac4]
mov esi, dword [0x14028fac0]
cmp byte [0x14028fa39], r14b
je 0x1400a2dbe
cvttsd2si ecx, qword [0x140286f68]
cvttsd2si r9d, qword [0x14028fde0]
cvttsd2si r8d, qword [0x14028fdd8]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
movaps xmm0, xmmword [0x14028d710]
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x28], ecx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
mov edx, esi
mov ecx, eax
call fcn.14009fe1c
movsd xmm8, qword [0x14028fcd8]
movsd xmm6, qword [0x14028fcd0]
cmp byte [reloc.WS2_32.dll_accept], r14b
je 0x1400a2e39
movaps xmm0, xmm8
subsd xmm0, qword [0x14028fde0]
andps xmm0, xmmword [0x140265e10]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movaps xmm3, xmm2
mulss xmm3, dword [0x14026580c]
cvttsd2si eax, qword [0x140286f68]
cvttsd2si edx, xmm8
movaps xmm0, xmm3
mulss xmm0, dword [0x140265808]
cvtps2pd xmm1, xmm0
subsd xmm6, xmm1
cvttsd2si ecx, xmm6
movaps xmm0, xmmword [0x14028d710]
movdqa xmmword [rsp + 0x40], xmm0
cvttss2si r9d, xmm2
cvttss2si r8d, xmm3
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14009f590
cmp byte [0x14028fa06], r14b
je 0x1400a2eb8
mov dword [rsp + 0x60], 0x6d662e25
mov word [rsp + 0x64], 0xa
divss xmm9, dword [0x1402659a0]
xorps xmm2, xmm2
cvtss2sd xmm2, xmm9
movq r8, xmm2
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x50]
call fcn.1400a7820
movsd xmm0, qword [0x14028fde0]
addsd xmm0, qword [0x1402658c8]
cvttsd2si edx, xmm0
movsd xmm1, qword [0x14028fdd8]
subsd xmm1, qword [0x1402658c0]
cvttsd2si ecx, xmm1
movaps xmm0, xmmword [0x14028d740]
movdqa xmmword [rsp + 0x40], xmm0
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x50]
call fcn.14009fbd0
mov cl, byte [0x14028fa07]
test cl, cl
je 0x1400a2f3b
movss xmm0, dword [0x14028668c]
comiss xmm0, xmm7
jbe 0x1400a2ef4
movss xmm0, dword [0x14028fb20]
comiss xmm0, xmm7
jbe 0x1400a2ef4
movss dword [0x14028fb20], xmm7
mov rax, qword [0x14028fb08]
mov qword [0x14028fb10], rax
jmp 0x1400a2efb
mov rax, qword [0x14028fb10]
test rax, rax
je 0x1400a2f1b
cmp byte [0x14028fa38], r14b
je 0x1400a2f1b
call fcn.1400a1b00
mov rax, qword [0x14028fb10]
mov cl, byte [0x14028fa07]
test cl, cl
je 0x1400a2f3b
test rax, rax
je 0x1400a2f3b
mov ecx, dword [0x14028fafc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400a2f3b
call fcn.1400a1b00
nop
lea rcx, [rbp - 0x80]
call fcn.1400a608c
inc ebx
cmp ebx, dword [0x14028faf8]
jb 0x1400a255a
lea rcx, [rbp - 0x68]
call fcn.1400a608c
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140225770
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm11, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret