Function at 0x140028f15
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push r15
push r14
xor rax, rax
push rax
push rax
push rax
push rax
sub rsp, 0x28
call fcn.1400e6810
mov qword [rsp + 0x28], 0xc8
mov qword [rsp + 0x30], 0x96
push 0
pop rcx
call fcn.1400cddac
mov r15, rax
push 0
pop rcx
call fcn.1400ce198
mov r14, rax
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
add r15, r14
mov r14, qword [rsp + 0x28]
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
sub r15, r14
mov qword [rsp + 0x38], r15
push 0
pop rcx
call fcn.1400cde4c
mov r15, rax
push 0
pop rcx
call fcn.1400ce1f0
mov r14, rax
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
add r15, r14
mov r14, qword [rsp + 0x30]
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
sub r15, r14
mov qword [rsp + 0x40], r15
sub rsp, 8
movabs rax, 0x80000004
push rax
push qword [0x140db2838]
push qword [rsp + 0x48]
push qword [rsp + 0x48]
push qword [rsp + 0x68]
push qword [rsp + 0x68]
push 0x60
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400cd784
add rsp, 0x40
sub rsp, 8
push 0xb
push 0x67
pop rcx
sub rsp, 0x20
call fcn.1400dd354
add rsp, 0x20
mov rax, rax
push rax
push 0x1a
push 0xaa
push 0xf
push 0xf
push 0x63
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400c5d70
add rsp, 0x40
sub rsp, 8
push 0xb
push 0x65
pop rcx
sub rsp, 0x20
call fcn.1400dd354
add rsp, 0x20
mov rax, rax
push rax
push 0x1a
push 0xaa
push 0x2d
push 0xf
push 0x61
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400c5d70
add rsp, 0x40
sub rsp, 8
push 0xb
push 0x66
pop rcx
sub rsp, 0x20
call fcn.1400dd354
add rsp, 0x20
mov rax, rax
push rax
push 0x1a
push 0xaa
push 0x4b
push 0xf
push 0x62
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400c5d70
add rsp, 0x40
push qword [0x140db2ab0]
push 0x14
push 0xaa
push 0x78
push 0xf
push 0x64
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400c2794
add rsp, 0x30
call fcn.14005e47b
call fcn.1400cd74c
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
je 0x14002920b
call fcn.1400d20bc
mov rax, rax
push rax
mov r15, 0x60
cmp r15, qword [rsp]
jne 0x140029208
push qword [rsp + 0x68]
mov r15, 0x332c
cmp r15, qword [rsp]
jne 0x140029204
sub rsp, 0x20
call fcn.1400d20a0
add rsp, 0x20
mov rax, rax
push rax
mov r15, 0x63
cmp r15, qword [rsp]
jne 0x1400291c3
sub rsp, 8
movabs rax, 0x1401a1b9e
push rax
pop rcx
sub rsp, 0x20
call fcn.14009a974
add rsp, 0x28
add rsp, 0x18
jmp 0x14002926d
mov r15, 0x61
cmp r15, qword [rsp]
jne 0x1400291db
add rsp, 0x18
jmp 0x14002926d
mov r15, 0x62
cmp r15, qword [rsp]
jne 0x1400291f0
add rsp, 0x18
jmp 0x14002926d
mov r15, 0x64
cmp r15, qword [rsp]
jne 0x140029203
add rsp, 0x18
jmp 0x14002926d
pop rax
add rsp, 8
pop rax
jmp 0x140029216
push 0x60
pop rcx
call fcn.1400cd724
push 0x1b
pop rcx
call sub.USER32.dll_GetKeyState
mov r15, rax
cmp r15, 1
jle 0x14002923f
call fcn.1400ce280
mov r15, rax
cmp r15, 0x60
jne 0x14002923f
call fcn.14005e47b
jmp 0x14002926d
push 0xd
pop rcx
call sub.USER32.dll_GetKeyState
mov r15, rax
cmp r15, 1
jle 0x140029268
call fcn.1400ce280
mov r15, rax
cmp r15, 0x60
jne 0x140029268
call fcn.14005e47b
jmp 0x14002926d
jmp 0x140029138
push 0x60
pop rcx
call fcn.1400cd424
xor rax, rax
add rsp, 0x48
pop r14
pop r15
ret