Function at 0x14009f5b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
xor edi, edi
lea rsi, [0x140000000]
cmp qword [0x140391a28], rdi
je 0x14009f603
cmp qword [0x140391a48], rdi
je 0x14009f603
cmp byte [0x140391420], dil
je 0x14009f603
cmp byte [0x140391495], dil
jne 0x14009f610
mov qword [0x14036eb2c], rdi
mov dword [0x14036eb34], edi
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14009f5d2
mov ecx, dword [0x140391490]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14009f649
mov qword [0x14036eb2c], rdi
mov dword [0x14036eb34], edi
call fcn.14009fb90
xor edx, edx
mov qword [0x14036eb18], rdi
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_SleepEx]
jmp 0x14009f5d2
call fcn.14009fd70
test al, al
je 0x14009f6f4
mov rbx, qword [0x14036eb18]
test rbx, rbx
je 0x14009f6f4
cmp byte [0x140391431], dil
je 0x14009f76f
test rbx, rbx
je 0x14009f6f4
mov edx, dword [0x140390b94]
add rdx, rbx
call fcn.140029ee0
cmp al, 0x24
je 0x14009f6f4
test al, al
je 0x14009f6f4
cmp al, 4
jne 0x14009f718
add rbx, 0x2c
je 0x14009f6eb
mov eax, dword [0x140390278]
mov dword [rbp - 1], eax
mov eax, dword [0x140390270]
mov dword [rbp - 0x35], eax
mov eax, dword [0x140390274]
mov dword [rbp - 0x31], eax
lea rax, [rbp + 0x67]
mov qword [rbp - 0x21], rax
mov rax, qword [0x140390b00]
mov dword [rbp - 0x39], edi
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], 1
test rax, rax
je 0x14009f6eb
lea rcx, [rbp - 0x39]
call rax
test rax, rax
je 0x14009f6eb
movzx eax, byte [rbp + 0x67]
jmp 0x14009f6f0
xor al, al
mov byte [rbp + 0x67], al
test al, 1
je 0x14009f76f
mov qword [0x14036eb2c], rdi
mov dword [0x14036eb34], edi
call fcn.14009fb90
xor edx, edx
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_SleepEx]
jmp 0x14009f5d2
cmp al, 8
jne 0x14009f76f
add rbx, 0x2c
je 0x14009f76b
mov eax, dword [0x140390278]
mov dword [rbp + 0x3f], eax
mov eax, dword [0x140390270]
mov dword [rbp + 0xb], eax
mov eax, dword [0x140390274]
mov dword [rbp + 0xf], eax
lea rax, [rbp + 0x6f]
mov qword [rbp + 0x1f], rax
mov rax, qword [0x140390b00]
mov dword [rbp + 7], edi
mov qword [rbp + 0x17], rbx
mov qword [rbp + 0x27], 1
test rax, rax
je 0x14009f76b
lea rcx, [rbp + 7]
call rax
test rax, rax
jne 0x14009f76f
mov byte [rbp + 0x6f], dil
movsxd rax, dword [0x140391440]
mov r8d, edi
cmp eax, 6
ja case.0x14009f788.0
mov ecx, dword [rsi + rax*4 + 0x9f854]
add rcx, rsi
jmp rcx
mov r8d, 7
jmp case.0x14009f788.0
mov r8d, 8
jmp case.0x14009f788.0
mov r8d, 6
jmp case.0x14009f788.0
mov r8d, 5
jmp case.0x14009f788.0
mov r8d, 4
jmp case.0x14009f788.0
mov r8d, 3
mov rcx, qword [0x14036eb18]
lea rdx, [rbp - 0x59]
call fcn.140114630
cmp qword [0x14036eb18], rdi
movss xmm0, dword [rbp - 0x59]
movss xmm1, dword [rbp - 0x55]
movss xmm2, dword [rbp - 0x51]
movss dword [0x14036eb20], xmm0
movss dword [0x14036eb24], xmm1
movss dword [0x14036eb28], xmm2
movss dword [0x14036eb2c], xmm0
movss dword [0x14036eb30], xmm1
movss dword [0x14036eb34], xmm2
je 0x14009f83a
lea rcx, [rbp - 0x49]
movss dword [rbp - 0x49], xmm0
movss dword [rbp - 0x45], xmm1
movss dword [rbp - 0x41], xmm2
call fcn.14009f8a0
xor edx, edx
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_SleepEx]
jmp 0x14009f5d2
call fcn.14009fb90
xor edx, edx
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_SleepEx]
jmp 0x14009f5d2