Function at 0x14003bbe0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push r12
lea rbp, [rax - 0x5f]
sub rsp, 0xd8
cmp byte [0x14009c6da], 0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rsp + 0x40], xmm13
je 0x14003bc28
mov ecx, dword [0x14009c6a8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003bc28
call fcn.140037810
cmp byte [0x14009c58a], 0
je 0x14003bc47
mov ecx, dword [0x14009c6a8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003bc47
call fcn.140037ba0
cmp byte [0x14009c6e3], 0
movss xmm8, dword [0x1400499d0]
movss xmm13, dword [0x1400499a8]
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0xd0], rdi
je 0x14003bf78
mov rax, qword [0x14009c590]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
call fcn.1400067f0
movdqa xmm0, xmmword [0x140049d90]
mov ecx, 1
movups xmmword [rbp - 0x59], xmm0
mov rbx, rax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
movss dword [rbp + 0x6b], xmm6
cdq
sub eax, edx
sar eax, 1
add eax, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x67], xmm0
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea rcx, [rbp - 0x59]
movss dword [rbp + 0x73], xmm6
cdq
sub eax, edx
sar eax, 1
sub eax, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x6f], xmm0
call fcn.140003100
mov r9d, eax
movss dword [rsp + 0x20], xmm8
lea rdx, [rbp + 0x6f]
mov rcx, rbx
lea r8, [rbp + 0x67]
call fcn.140024f80
mov rax, qword [0x14009c590]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
call fcn.1400067f0
movdqa xmm0, xmmword [0x140049d90]
mov ecx, 1
movups xmmword [rbp - 0x59], xmm0
mov rbx, rax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
add eax, 8
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
movss dword [rbp + 0x6b], xmm6
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x67], xmm0
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
sar eax, 1
xor ecx, ecx
sub eax, 8
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea rcx, [rbp - 0x59]
movss dword [rbp + 0x73], xmm6
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x6f], xmm0
call fcn.140003100
mov r9d, eax
movss dword [rsp + 0x20], xmm8
lea rdx, [rbp + 0x6f]
mov rcx, rbx
lea r8, [rbp + 0x67]
call fcn.140024f80
mov rax, qword [0x14009c590]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
call fcn.1400067f0
lea rcx, [0x14009bb20]
mov rdi, rax
call fcn.140003100
mov ecx, 1
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
movss dword [rbp + 0x6b], xmm6
cdq
sub eax, edx
sar eax, 1
add eax, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x67], xmm0
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r9d, ebx
movss dword [rbp + 0x73], xmm6
cdq
movss dword [rsp + 0x20], xmm13
sub eax, edx
lea r8, [rbp + 0x67]
sar eax, 1
lea rdx, [rbp + 0x6f]
sub eax, 8
mov rcx, rdi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x6f], xmm0
call fcn.140024f80
mov rax, qword [0x14009c590]
lea r8, str.Foreground
mov rdx, qword [rax + 0x48b0]
mov rcx, qword [rdx]
mov edx, 1
call fcn.1400067f0
lea rcx, [0x14009bb20]
mov rdi, rax
call fcn.140003100
mov ebx, eax
mov ecx, 1
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
add eax, 8
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
movss dword [rbp + 0x6b], xmm6
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x67], xmm0
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
sub eax, 8
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r9d, ebx
movss dword [rbp + 0x73], xmm6
cdq
movss dword [rsp + 0x20], xmm13
sub eax, edx
lea r8, [rbp + 0x67]
sar eax, 1
lea rdx, [rbp + 0x6f]
mov rcx, rdi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x6f], xmm0
call fcn.140024f80
movss xmm10, dword [0x14004996c]
xor r12d, r12d
cmp byte [0x14009c6d9], r12b
xorps xmm6, xmm6
movss xmm7, dword [0x140049a50]
je 0x14003c118
mov rax, qword [0x14009c590]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
call fcn.1400067f0
movdqa xmm0, xmmword [0x140049d90]
lea rcx, [rbp - 0x59]
movups xmmword [rbp - 0x59], xmm0
mov rbx, rax
call fcn.140003100
mov edi, eax
mov rax, qword [0x14009c590]
movss xmm0, dword [rax + 0x10]
movss xmm1, dword [rax + 0x14]
mulss xmm0, xmm10
mulss xmm1, xmm10
movss dword [rbp + 0x67], xmm0
movss dword [rbp + 0x6b], xmm1
test edi, 0xff000000
je 0x14003c065
movss xmm2, dword [0x14009b888]
comiss xmm10, xmm2
ja 0x14003c065
subss xmm2, xmm10
mov dword [rsp + 0x28], 0x63
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm7
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.140024720
mov r8d, dword [rbx + 0x78]
mov r9d, edi
mov rdx, qword [rbx + 0x80]
mov rcx, rbx
movss dword [rsp + 0x28], xmm8
mov dword [rsp + 0x20], 1
call fcn.140022cc0
mov rax, qword [0x14009c590]
mov dword [rbx + 0x78], r12d
mov rax, qword [rax + 0x48b0]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400067f0
lea rcx, [0x14009baf0]
mov rbx, rax
call fcn.140003100
mov r8, qword [0x14009c590]
mov edi, eax
movss xmm0, dword [r8 + 0x10]
movss xmm1, dword [r8 + 0x14]
mulss xmm0, xmm10
mulss xmm1, xmm10
movss dword [rbp + 0x67], xmm0
movss dword [rbp + 0x6b], xmm1
test eax, 0xff000000
je 0x14003c11f
movss xmm2, dword [0x14009b888]
comiss xmm10, xmm2
ja 0x14003c11f
subss xmm2, xmm10
mov dword [rsp + 0x28], 0x63
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm7
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.140024720
mov r8d, dword [rbx + 0x78]
mov r9d, edi
mov rdx, qword [rbx + 0x80]
mov rcx, rbx
movss dword [rsp + 0x28], xmm13
mov dword [rsp + 0x20], 1
call fcn.140022cc0
mov dword [rbx + 0x78], r12d
mov r8, qword [0x14009c590]
cmp byte [0x14009c6d5], r12b
je 0x14003c1d5
movss xmm0, dword [r8 + 0x10]
lea rcx, [0x14009bb98]
movss xmm1, dword [r8 + 0x14]
movss xmm8, dword [0x14009b888]
mulss xmm0, xmm10
mulss xmm1, xmm10
movss dword [rbp + 0x67], xmm0
movss dword [rbp + 0x6b], xmm1
call fcn.140003100
mov edi, eax
mov edx, 1
mov rax, qword [r8 + 0x48b0]
and edi, 0xffffff
lea r8, str.Foreground
or edi, 0x33000000
mov rcx, qword [rax]
call fcn.1400067f0
comiss xmm10, xmm8
mov rbx, rax
ja 0x14003c1ce
mov dword [rsp + 0x28], 0x63
lea rdx, [rbp + 0x67]
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm7
movaps xmm2, xmm8
mov rcx, rax
call fcn.140024720
mov r8d, dword [rbx + 0x78]
mov r9d, edi
mov rdx, qword [rbx + 0x80]
mov rcx, rbx
call fcn.140023c20
mov dword [rbx + 0x78], r12d
mov r8, qword [0x14009c590]
cmp byte [0x14009b88c], r12b
je 0x14003c262
movss xmm1, dword [0x140049a40]
mov edx, 1
movss xmm2, dword [r8 + 0xe00]
movss xmm3, dword [r8 + 0xe04]
movaps xmm0, xmm2
mov rax, qword [r8 + 0x48b0]
subss xmm0, xmm1
addss xmm2, xmm1
lea r8, str.Foreground
mov rcx, qword [rax]
movss dword [rbp + 0x6f], xmm0
movaps xmm0, xmm3
subss xmm0, xmm1
movss dword [rbp + 0x67], xmm2
addss xmm3, xmm1
movss dword [rbp + 0x73], xmm0
movss dword [rbp + 0x6b], xmm3
call fcn.1400067f0
mov r9d, 0xffffffff
mov dword [rsp + 0x28], r12d
lea r8, [rbp + 0x67]
movss dword [rsp + 0x20], xmm6
lea rdx, [rbp + 0x6f]
mov rcx, rax
call fcn.1400251f0
call fcn.140039450
cmp byte [0x14009c6dc], r12b
je 0x14003c68a
cmp byte [0x14009b88c], r12b
lea rcx, str.radar
mov qword [rsp + 0x108], rsi
mov eax, 0x2b
movaps xmmword [rsp + 0x80], xmm9
mov r8d, 0x2f
cmovne r8d, eax
movaps xmmword [rsp + 0x60], xmm11
mov rax, qword [0x14009c590]
xor edx, edx
movaps xmmword [rsp + 0x50], xmm12
or dword [rax + 0x47b0], 2
mov dword [rax + 0x47d0], 0x43480000
mov dword [rax + 0x47d4], 0x43480000
mov dword [rax + 0x47b8], 1
call fcn.14000c670
movdqa xmm0, xmmword [0x140049e00]
lea rcx, [rbp - 0x59]
mov r8, qword [0x14009c590]
movups xmmword [rbp - 0x59], xmm0
mov rax, qword [r8 + 0x3ed8]
movss xmm11, dword [rax + 0x24]
movss xmm6, dword [rax + 0x28]
movss xmm9, dword [rax + 0x2c]
movaps xmm8, xmm6
movss xmm12, dword [rax + 0x20]
movaps xmm0, xmm9
addss xmm0, xmm11
mulss xmm8, xmm10
mov byte [rax + 0xb8], 1
movss dword [rbp + 0x73], xmm11
addss xmm8, xmm12
movss dword [rbp + 0x6b], xmm0
movss dword [rbp + 0x67], xmm8
movss dword [rbp + 0x6f], xmm8
call fcn.140003100
mov rcx, qword [r8 + 0x3ed8]
lea rdx, [rbp + 0x6f]
mov r9d, eax
movss dword [rsp + 0x20], xmm13
lea r8, [rbp + 0x67]
mov rcx, qword [rcx + 0x298]
call fcn.140024f80
movdqa xmm0, xmmword [0x140049e00]
lea rcx, [rbp - 0x59]
mov r8, qword [0x14009c590]
movaps xmm7, xmm12
mulss xmm9, xmm10
addss xmm7, xmm6
movss dword [rbp + 0x6f], xmm12
mov rax, qword [r8 + 0x3ed8]
addss xmm9, xmm11
movss dword [rbp + 0x67], xmm7
movups xmmword [rbp - 0x59], xmm0
mov byte [rax + 0xb8], 1
movss dword [rbp + 0x6b], xmm9
movss dword [rbp + 0x73], xmm9
call fcn.140003100
mov rcx, qword [r8 + 0x3ed8]
lea rdx, [rbp + 0x6f]
mov r9d, eax
movss dword [rsp + 0x20], xmm13
lea r8, [rbp + 0x67]
mov rcx, qword [rcx + 0x298]
call fcn.140024f80
movdqa xmm0, xmmword [0x140049e00]
lea rcx, [rbp - 0x59]
mov r8, qword [0x14009c590]
movss dword [rbp + 0x67], xmm12
movss dword [rbp + 0x6b], xmm11
movss dword [rbp + 0x6f], xmm8
mov rax, qword [r8 + 0x3ed8]
movss dword [rbp + 0x73], xmm9
movups xmmword [rbp - 0x59], xmm0
mov byte [rax + 0xb8], 1
call fcn.140003100
mov rcx, qword [r8 + 0x3ed8]
lea rdx, [rbp + 0x6f]
mov r9d, eax
movss dword [rsp + 0x20], xmm13
lea r8, [rbp + 0x67]
mov rcx, qword [rcx + 0x298]
call fcn.140024f80
movdqa xmm0, xmmword [0x140049e00]
lea rcx, [rbp - 0x59]
mov r8, qword [0x14009c590]
movss dword [rbp + 0x67], xmm7
movss dword [rbp + 0x6b], xmm11
movss dword [rbp + 0x6f], xmm8
mov rax, qword [r8 + 0x3ed8]
movss dword [rbp + 0x73], xmm9
movups xmmword [rbp - 0x59], xmm0
mov byte [rax + 0xb8], 1
call fcn.140003100
mov rcx, qword [r8 + 0x3ed8]
lea rdx, [rbp + 0x6f]
mov r9d, eax
movss dword [rsp + 0x20], xmm13
lea r8, [rbp + 0x67]
mov rcx, qword [rcx + 0x298]
call fcn.140024f80
mov rcx, qword [0x14009c590]
movdqa xmm0, xmmword [0x140049e90]
movups xmmword [rbp - 0x59], xmm0
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
lea rcx, [rbp - 0x59]
mov rbx, qword [rax + 0x298]
call fcn.140003100
movss xmm6, dword [0x140049a44]
mov edi, eax
movss dword [rbp + 0x6b], xmm9
movaps xmm9, xmmword [rsp + 0x80]
movss dword [rbp + 0x67], xmm8
test eax, 0xff000000
je 0x14003c553
xor r9d, r9d
mov dword [rsp + 0x20], 0x30
movaps xmm2, xmm6
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.1400241e0
mov r8d, dword [rbx + 0x78]
mov r9d, edi
mov rdx, qword [rbx + 0x80]
dec r8d
mov rcx, rbx
mov dword [rbx + 0x78], r8d
call fcn.140023c20
mov dword [rbx + 0x78], r12d
mov rax, qword [0x14009c6b8]
mov esi, r12d
mov r8, qword [0x14009c6b0]
sub rax, r8
sar rax, 3
test rax, rax
je 0x14003c671
movdqa xmm0, xmmword [0x140049da0]
lea rcx, [rbp - 0x59]
mov qword [rsp + 0xc8], r14
movups xmmword [rbp - 0x59], xmm0
mov qword [rsp + 0xc0], r15
call fcn.140003100
mov r14d, eax
mov r15d, eax
and r14d, 0xff000000
mov rdi, r12
nop dword [rax]
movss xmm1, dword [rdi + r8]
movaps xmm0, xmm12
mov rax, qword [0x14009c590]
addss xmm0, xmm1
movss xmm2, dword [rdi + r8 + 4]
movaps xmm1, xmm11
addss xmm1, xmm2
mov rcx, qword [rax + 0x3ed8]
movss dword [rbp + 0x67], xmm0
movss dword [rbp + 0x6b], xmm1
mov byte [rcx + 0xb8], 1
mov rax, qword [rax + 0x3ed8]
mov rbx, qword [rax + 0x298]
test r14d, r14d
je 0x14003c63a
xor r9d, r9d
mov dword [rsp + 0x20], 0x30
movaps xmm2, xmm6
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.1400241e0
mov r8d, dword [rbx + 0x78]
mov r9d, r15d
mov rdx, qword [rbx + 0x80]
dec r8d
mov rcx, rbx
mov dword [rbx + 0x78], r8d
call fcn.140023c20
mov dword [rbx + 0x78], r12d
mov rcx, qword [0x14009c6b8]
inc esi
mov r8, qword [0x14009c6b0]
add rdi, 8
sub rcx, r8
movsxd rax, esi
sar rcx, 3
cmp rax, rcx
jb 0x14003c5b0
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
call fcn.14000e880
movaps xmm12, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
mov rsi, qword [rsp + 0x108]
mov rdi, qword [rsp + 0xd0]
lea r11, [rsp + 0xd8]
movaps xmm6, xmmword [r11 - 0x28]
movaps xmm7, xmmword [r11 - 0x38]
movaps xmm8, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x68]
mov rbx, qword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x40]
mov rsp, r11
pop r12
pop rbp
ret