Function at 0x14004eec0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x60
mov ecx, dword [0x14006c458]
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14004eef6
cmp byte [0x14006c450], 0
sete al
mov byte [0x14006c450], al
jmp 0x14004eefd
movzx eax, byte [0x14006c450]
test al, al
je 0x14004ef32
cmp byte [0x14006cd39], 0
je 0x14004ef67
mov rcx, qword [0x14006ce38]
mov edx, 0xffffffec
mov r8d, 0xa0
call qword [sym.imp.USER32.dll_SetWindowLongW]
mov rcx, qword [0x14006ce38]
mov byte [0x14006cd39], 0
jmp 0x14004ef61
cmp byte [0x14006cd39], 0
jne 0x14004ef67
mov rcx, qword [0x14006ce38]
mov edx, 0xffffffec
mov r8d, 0x800a0
call qword [sym.imp.USER32.dll_SetWindowLongW]
mov rcx, qword [0x14006ce00]
mov byte [0x14006cd39], 1
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov rax, qword [0x14006cd40]
xor esi, esi
test rax, rax
je 0x14004ef7e
mov rcx, qword [rax + 0x98]
jmp 0x14004ef81
mov rcx, rsi
cmp qword [rcx + 0x18], rsi
jne 0x14004efa2
test rax, rax
je 0x14004efa2
mov rcx, qword [rax + 0x98]
test rcx, rcx
je 0x14004efa2
cmp qword [rcx], rsi
je 0x14004efa2
call fcn.14002a740
call fcn.14002b1b0
call fcn.140006ef0
mov rax, qword gs:[0x58]
movd xmm0, dword [0x14006c454]
movss xmm7, dword [0x14005ad8c]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax]
mov edx, 4
movaps xmm6, xmm7
mov eax, dword [rdx + rcx]
cmp dword [0x14006cf00], eax
divss xmm6, xmm0
jle 0x14004f046
lea rcx, [0x14006cf00]
call fcn.140051d10
cmp dword [0x14006cf00], 0xffffffff
jne 0x14004f046
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14004f015
imul rax, rax, 0x64
jmp 0x14004f033
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x14006cf00]
mov qword [0x14006cf08], rax
call fcn.140051cb0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14004f064
imul rbx, rax, 0x64
jmp 0x14004f085
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
xorps xmm0, xmm0
mov rax, rbx
sub rax, qword [0x14006cf08]
cvtsi2ss xmm0, rax
divss xmm0, dword [0x14005af94]
comiss xmm6, xmm0
jbe 0x14004f181
subss xmm6, xmm0
mov qword [rsp + 0x78], rdi
mulss xmm6, dword [0x14005af84]
cvttss2si eax, xmm6
movsxd rbx, eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x14004f0de
imul rax, rax, 0x64
jmp 0x14004f0fc
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x70], rax
cmp rbx, 1
jl 0x14004f138
imul rdx, rbx, 0xf4240
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rdx
cmp rax, rcx
jge 0x14004f133
lea rcx, [rdx + rax]
mov qword [rsp + 0x70], rcx
jmp 0x14004f138
mov qword [rsp + 0x70], r8
lea rcx, [rsp + 0x70]
call fcn.140051560
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14004f160
imul rbx, rax, 0x64
jmp 0x14004f181
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
mov rax, qword [0x14006cd40]
movss xmm2, dword [rax + 0x10]
movss dword [0x14006ce20], xmm2
movss xmm1, dword [rax + 0x14]
mulss xmm2, dword [0x14005ad50]
movss dword [0x14006ce24], xmm1
mulss xmm1, dword [0x14005ad50]
movss dword [0x14006ce28], xmm2
movss dword [0x14006ce2c], xmm1
call fcn.140049ab0
cmp byte [0x14006c450], sil
movaps xmm6, xmmword [rsp + 0x50]
je 0x14004f1da
call fcn.1400418a0
call fcn.1400095b0
mov rcx, qword [0x14006cde8]
xor r8d, r8d
mov qword [0x14006cf08], rbx
mov rax, qword [rcx]
lea edx, [r8 + 7]
call qword [rax + 0x1c8]
mov rcx, qword [0x14006cde8]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 0x1b]
call qword [rax + 0x1c8]
mov rcx, qword [0x14006cde8]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x14006cde8]
mov r9d, 1
mov dword [rsp + 0x30], esi
xor r8d, r8d
movss dword [rsp + 0x28], xmm7
xor edx, edx
mov dword [rsp + 0x20], esi
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x14006cde8]
mov rax, qword [rcx]
call qword [rax + 0x148]
movaps xmm7, xmmword [rsp + 0x40]
test eax, eax
js 0x14004f2a4
call fcn.140009930
mov rax, qword [0x14006cd40]
mov rcx, qword [rax + 0x40b0]
mov rcx, qword [rcx]
add rcx, 0x48
cmp byte [rcx], sil
cmove rcx, rsi
call fcn.14002a190
mov rcx, qword [0x14006cde8]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x14006cde8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x14004f382
mov rcx, qword [0x14006cde8]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x14004f382
mov rbx, qword [0x14006cd40]
test rbx, rbx
je 0x14004f349
mov rbx, qword [rbx + 0x98]
test rbx, rbx
je 0x14004f349
cmp qword [rbx], rsi
je 0x14004f349
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004f314
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 8], rsi
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14004f327
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x10], rsi
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14004f349
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [0x14006cd40]
mov qword [rbx + 0x18], rsi
mov rcx, qword [rax + 0x50]
mov qword [rcx + 8], rsi
mov rcx, qword [0x14006cde8]
lea rdx, [0x14006cd70]
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rax, qword [0x14006cd40]
test rax, rax
je 0x14004f382
mov rax, qword [rax + 0x98]
test rax, rax
je 0x14004f382
cmp qword [rax], rsi
je 0x14004f382
call fcn.14002a740
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rsi
ret