Function at 0x14001ece0
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
push rdi
sub rsp, 0xd8
mov rax, qword [0x1401d3d40]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rax, qword [0x1401d5858]
mov rdi, rcx
mov rsi, rdx
mov rcx, qword [rax + 0x3ef8]
cmp byte [rcx + 0xbb], 0
je 0x14001ed25
xor al, al
jmp 0x14001f01e
mov qword ss:[rsp + 0x100], rbx
xor r8d, r8d
mov rdx, rdi
mov qword [rsp + 0xd0], rbp
call fcn.1400541c0
movzx r9d, word [0x1400ed650]
xor bpl, bpl
movzx r10d, byte [0x1400ed652]
mov edx, dword [rsi]
vpxor xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x60], ymm0
mov word [rsp + 0x60], r9w
mov byte [rsp + 0x62], r10b
vmovups ymmword [rsp + 0x80], ymm0
test edx, edx
je 0x14001ee24
lea rcx, [rsp + 0x40]
vzeroupper
call fcn.1400c2c80
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x14001eda2
mov r8, qword [rax]
lea rbx, [rsp + 0x60]
lea rcx, [rbx - 1]
nop dword [rax + rax]
cmp byte [rcx + 1], bpl
lea rcx, [rcx + 1]
jne 0x14001edb0
xor edx, edx
nop dword [rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14001edc0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x14001ee12
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ee0d
mov rcx, qword ds:[rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001ee0d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400def30
movzx r10d, byte [0x1400ed652]
movzx r9d, word [0x1400ed650]
jmp 0x14001ee90
mov cl, 0x44
mov byte [rsp + 0x30], 0x2b
xor cl, 0x2b
mov byte [rsp + 0x35], bpl
mov al, 0x65
mov byte [rsp + 0x32], cl
xor al, 0x2b
lea rbx, [rsp + 0x60]
mov dl, 0x45
mov byte [rsp + 0x31], al
xor dl, 0x2b
lea rcx, [rbx - 1]
mov r8b, 0x4e
mov byte [rsp + 0x33], dl
xor r8b, 0x2b
mov byte [rsp + 0x34], r8b
nop dword [rax]
cmp byte [rcx + 1], bpl
lea rcx, [rcx + 1]
jne 0x14001ee60
lea r8, [rsp + 0x31]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14001ee80
vmovaps xmmword [rsp + 0xc0], xmm6
vmovaps xmmword [rsp + 0xb0], xmm7
lea rax, [rbx - 1]
cmp byte [rax + 1], bpl
lea rax, [rax + 1]
jne 0x14001eea6
vmovss xmm0, dword [0x1400edce4]
mov word [rax], r9w
lea rcx, [rsp + 0x38]
vmovss dword [rsp + 0x20], xmm0
mov byte [rax + 2], r10b
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
vzeroupper
call fcn.14004f760
lea rcx, [rbx - 1]
vmovss xmm0, dword [rax]
vaddss xmm7, xmm0, dword [0x1400edb70]
nop dword [rax]
cmp byte [rcx + 1], bpl
lea rcx, [rcx + 1]
jne 0x14001eef0
movzx eax, word [0x1400ed654]
dec rbx
mov word [rcx], ax
movzx eax, byte [0x1400ed656]
mov byte [rcx + 2], al
cmp byte [rbx + 1], bpl
lea rbx, [rbx + 1]
jne 0x14001ef11
xor ecx, ecx
nop dword [rax]
movzx eax, byte [rdi + rcx]
mov byte [rbx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x14001ef20
mov ecx, 0xffffffff
call fcn.140082cb0
vmovaps xmm6, xmm0
call fcn.140054ce0
mov ecx, 0xffffffff
vsubss xmm6, xmm6, dword [rax + 0x4c]
call fcn.140082c60
vaddss xmm1, xmm0, xmm6
vsubss xmm0, xmm1, xmm7
call fcn.140062e50
vxorps xmm0, xmm0, xmm0
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
vmovss dword [rsp + 0x38], xmm0
vmovss dword [rsp + 0x3c], xmm0
call fcn.14008cee0
vmovaps xmm7, xmmword [rsp + 0xb0]
vmovaps xmm6, xmmword [rsp + 0xc0]
test al, al
je 0x14001efa5
xor edx, edx
mov rcx, rdi
call fcn.14005d9e0
xor edx, edx
mov rcx, rdi
call fcn.14004ee80
test al, al
je 0x14001f00a
lea rcx, str.Press_a_key...
call fcn.1400994e0
mov ebx, 1
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14001efdd
inc ebx
cmp ebx, 0xfe
jle 0x14001efc4
jmp 0x14001efe7
mov dword [rsi], ebx
mov bpl, 1
call fcn.140050540
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14001f005
mov dword ds:[rsi], 0
call fcn.140050540
call fcn.1400528c0
mov rbx, qword [rsp + 0x100]
movzx eax, bpl
mov rbp, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1400df330
add rsp, 0xd8
pop rdi
pop rsi
ret