Function at 0x14018afa4
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x20
mov eax, dword [rdx + 8]
mov rdi, rcx
mov ecx, 0x104
xor esi, esi
mov rbx, rdx
mov r15d, 0x203
cmp eax, ecx
ja 0x14018b1da
je 0x14018b1fe
cmp eax, 0xa1
jb 0x14018b24c
cmp eax, 0xa2
jbe 0x14018b1fe
cmp eax, 0xa3
jbe 0x14018b24c
cmp eax, 0xa5
jbe 0x14018b1fe
cmp eax, 0xa6
jbe 0x14018b24c
cmp eax, 0xa8
jbe 0x14018b1fe
cmp eax, 0x100
jne 0x14018b24c
cmp dword [rdi + 0x154], 0xffffffff
je 0x14018b1fe
lea ecx, [rsi + 0x11]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14018b1fe
mov rax, qword [rbx + 0x10]
sub rax, 0x21
je 0x14018b139
cmp rax, 1
jne 0x14018b1fe
mov eax, dword [rdi + 0x154]
mov r8d, dword [rdi + 0x150]
lea r14d, [rax + 1]
add eax, r8d
cmp r14d, eax
jge 0x14018b12f
mov eax, r14d
cdq
idiv r8d
mov rax, qword [rdi]
mov r15d, edx
mov rbx, qword [rax + 0x4f8]
mov rcx, rbx
call fcn.14029e28c
mov edx, r15d
mov rcx, rdi
call rbx
test eax, eax
jne 0x14018b0c9
mov ecx, dword [rdi + 0x154]
inc r14d
mov r8d, dword [rdi + 0x150]
add ecx, r8d
cmp r14d, ecx
jl 0x14018b087
jmp 0x14018b12f
mov rax, qword [rdi]
mov dword [rdi + 0x3b8], 1
mov rbx, qword [rax + 0x428]
mov rcx, rbx
call fcn.14029e28c
mov edx, r15d
mov rcx, rdi
call rbx
mov rax, qword [rdi]
mov rbx, qword [rax + 0x420]
mov rcx, rbx
call fcn.14029e28c
mov rcx, rdi
call rbx
mov rcx, rax
call fcn.140105d14
mov rcx, qword [rdi]
mov rbx, qword [rcx + 0x4e0]
mov rcx, rbx
call fcn.14029e28c
mov edx, dword [rdi + 0x154]
mov rcx, rdi
call rbx
mov dword [rdi + 0x3b8], esi
mov eax, 1
jmp 0x14018b276
mov ecx, dword [rdi + 0x154]
lea r14d, [rcx - 1]
add r14d, dword [rdi + 0x150]
cmp r14d, ecx
jle 0x14018b12f
mov eax, r14d
cdq
idiv dword [rdi + 0x150]
mov rax, qword [rdi]
mov r15d, edx
mov rbx, qword [rax + 0x4f8]
mov rcx, rbx
call fcn.14029e28c
mov edx, r15d
mov rcx, rdi
call rbx
test eax, eax
jne 0x14018b188
dec r14d
cmp r14d, dword [rdi + 0x154]
jg 0x14018b14f
jmp 0x14018b12f
mov rax, qword [rdi]
mov dword [rdi + 0x3b8], 1
mov rbx, qword [rax + 0x428]
mov rcx, rbx
call fcn.14029e28c
mov edx, r15d
mov rcx, rdi
call rbx
mov rax, qword [rdi]
mov rbx, qword [rax + 0x420]
mov rcx, rbx
call fcn.14029e28c
mov rcx, rdi
call rbx
mov rcx, rax
call fcn.140105d14
mov rax, qword [rdi]
mov rbx, qword [rax + 0x4e0]
jmp 0x14018b116
cmp eax, 0x200
jb 0x14018b24c
cmp eax, 0x202
jbe 0x14018b1fe
cmp eax, r15d
jbe 0x14018b24c
cmp eax, 0x205
jbe 0x14018b1fe
add eax, 0xfffffdf9
cmp eax, 1
ja 0x14018b24c
mov rax, qword [rdi + 0x1c0]
mov r14d, 0x407
test rax, rax
je 0x14018b228
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x14018b228
mov r9, rbx
xor r8d, r8d
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rdi + 0x1b8]
test rax, rax
je 0x14018b24c
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x14018b24c
mov r9, rbx
xor r8d, r8d
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [rbx + 8], r15d
jne 0x14018b26b
lea rax, [rdi + 0x3208]
test rax, rax
je 0x14018b262
mov rsi, qword [rax + 0x40]
cmp qword [rbx], rsi
je 0x14018b12f
mov rdx, rbx
mov rcx, rdi
call fcn.1401801c0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret