Function at 0x1400ab970
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 0x1400abba1
je 0x1400abbc5
cmp eax, 0xa1
jb 0x1400abc13
cmp eax, 0xa2
jbe 0x1400abbc5
cmp eax, 0xa3
jbe 0x1400abc13
cmp eax, 0xa5
jbe 0x1400abbc5
cmp eax, 0xa6
jbe 0x1400abc13
cmp eax, 0xa8
jbe 0x1400abbc5
cmp eax, 0x100
jne 0x1400abc13
cmp dword [rdi + 0x154], 0xffffffff
je 0x1400abbc5
lea ecx, [rsi + 0x11]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1400abbc5
mov rax, qword [rbx + 0x10]
sub rax, 0x21
je 0x1400abb00
cmp rax, 1
jne 0x1400abbc5
mov ecx, dword [rdi + 0x154]
lea r14d, [rcx + 1]
add ecx, dword [rdi + 0x150]
cmp r14d, ecx
jge 0x1400abaf6
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.1401c8134
mov edx, r15d
mov rcx, rdi
call rbx
test eax, eax
jne 0x1400aba90
mov eax, dword [rdi + 0x150]
inc r14d
add eax, dword [rdi + 0x154]
cmp r14d, eax
jl 0x1400aba4f
jmp 0x1400abaf6
mov rax, qword [rdi]
mov dword [rdi + 0x3b8], 1
mov rbx, qword [rax + 0x428]
mov rcx, rbx
call fcn.1401c8134
mov edx, r15d
mov rcx, rdi
call rbx
mov rax, qword [rdi]
mov rbx, qword [rax + 0x420]
mov rcx, rbx
call fcn.1401c8134
mov rcx, rdi
call rbx
mov rcx, rax
call fcn.140038108
mov rcx, qword [rdi]
mov rbx, qword [rcx + 0x4e0]
mov rcx, rbx
call fcn.1401c8134
mov edx, dword [rdi + 0x154]
mov rcx, rdi
call rbx
mov dword [rdi + 0x3b8], esi
mov eax, 1
jmp 0x1400abc3d
mov ecx, dword [rdi + 0x154]
lea r14d, [rcx - 1]
add r14d, dword [rdi + 0x150]
cmp r14d, ecx
jle 0x1400abaf6
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.1401c8134
mov edx, r15d
mov rcx, rdi
call rbx
test eax, eax
jne 0x1400abb4f
dec r14d
cmp r14d, dword [rdi + 0x154]
jg 0x1400abb16
jmp 0x1400abaf6
mov rax, qword [rdi]
mov dword [rdi + 0x3b8], 1
mov rbx, qword [rax + 0x428]
mov rcx, rbx
call fcn.1401c8134
mov edx, r15d
mov rcx, rdi
call rbx
mov rax, qword [rdi]
mov rbx, qword [rax + 0x420]
mov rcx, rbx
call fcn.1401c8134
mov rcx, rdi
call rbx
mov rcx, rax
call fcn.140038108
mov rax, qword [rdi]
mov rbx, qword [rax + 0x4e0]
jmp 0x1400abadd
cmp eax, 0x200
jb 0x1400abc13
cmp eax, 0x202
jbe 0x1400abbc5
cmp eax, r15d
jbe 0x1400abc13
cmp eax, 0x205
jbe 0x1400abbc5
add eax, 0xfffffdf9
cmp eax, 1
ja 0x1400abc13
mov rax, qword [rdi + 0x1c0]
mov r14d, 0x407
test rax, rax
je 0x1400abbef
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1400abbef
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 0x1400abc13
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1400abc13
mov r9, rbx
xor r8d, r8d
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [rbx + 8], r15d
jne 0x1400abc32
lea rax, [rdi + 0x3208]
test rax, rax
je 0x1400abc29
mov rsi, qword [rax + 0x40]
cmp qword [rbx], rsi
je 0x1400abaf6
mov rdx, rbx
mov rcx, rdi
call fcn.1400a0c40
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