Function at 0x14008dd88
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r13
push r14
push r15
sub rsp, 0x20
mov rdi, rcx
mov ecx, reloc.SHELL32.dll_ILFindLastID
mov ebx, edx
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, reloc.SHELL32.dll_ILRemoveLastID
movzx r14d, ax
shr r14d, 0xf
and r14b, 1
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [rdi + 0x38]
mov rdx, qword [rcx]
movzx r15d, ax
shr r15d, 0xf
and r15b, 1
call qword [rdx + 0x30]
mov rcx, qword [rdi + 0x38]
mov rdx, qword [rcx]
mov r13d, eax
call qword [rdx + 0x78]
xor sil, sil
mov ebp, eax
cmp ebx, 0x28
ja 0x14008dfa8
je 0x14008df89
cmp ebx, 0x23
ja 0x14008df32
je 0x14008df0d
mov r8d, 8
sub ebx, r8d
je 0x14008decd
sub ebx, 5
je 0x14008deb9
sub ebx, 0xe
je 0x14008dea6
sub ebx, 6
je 0x14008de79
dec ebx
jne 0x14008e076
cmp r14b, sil
je 0x14008de5f
mov rcx, qword [rdi + 0x38]
mov edx, dword [rdi + 0xa0]
mov r8b, 1
mov r9, qword [rcx]
dec edx
add edx, eax
call qword [r9 + 0xf0]
mov sil, 1
mov edx, dword [rdi + 0xa0]
dec edx
add edx, ebp
mov r8b, sil
mov rcx, rdi
call fcn.14008d908
jmp 0x14008e0ca
cmp r14b, sil
je 0x14008de9b
mov rcx, qword [rdi + 0x38]
mov edx, ebp
mov r8b, 1
sub edx, dword [rdi + 0xa0]
mov rax, qword [rcx]
inc edx
call qword [rax + 0xf0]
mov sil, 1
sub ebp, dword [rdi + 0xa0]
lea edx, [rbp + 1]
jmp 0x14008de69
mov rcx, qword [rdi + 0x30]
mov r8b, 1
xor edx, edx
call fcn.14003e640
jmp 0x14008e076
mov rax, qword [rdi]
or edx, 0xffffffff
mov rcx, rdi
call qword [rax + 0x388]
jmp 0x14008e0ca
mov rbx, qword [rdi + 0x30]
cmp byte [rbx + 0xc0], sil
je 0x14008defc
mov rcx, qword [rbx + 0x80]
xor r9d, r9d
mov edx, 0x102
call qword [sym.imp.USER32.dll_SendMessageW]
cmp byte [rbx + 0xc0], sil
jne 0x14008e0ca
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x390]
jmp 0x14008e0ca
cmp r14b, sil
je 0x14008df29
mov rcx, qword [rdi + 0x38]
lea edx, [r13 - 1]
mov r8b, 1
mov rax, qword [rcx]
call qword [rax + 0xf0]
mov sil, 1
lea edx, [r13 - 1]
jmp 0x14008de69
sub ebx, 0x24
je 0x14008df68
dec ebx
je 0x14008df68
dec ebx
je 0x14008df49
dec ebx
jne 0x14008e076
jmp 0x14008df0d
cmp r14b, sil
je 0x14008df60
mov rcx, qword [rdi + 0x38]
mov edx, ebp
mov rax, qword [rcx]
call qword [rax + 0x100]
mov sil, 1
lea edx, [rbp - 1]
jmp 0x14008de69
cmp r14b, sil
je 0x14008df82
mov rcx, qword [rdi + 0x38]
mov r8b, 1
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0xf0]
mov sil, 1
xor edx, edx
jmp 0x14008de69
cmp r14b, sil
je 0x14008dfa0
mov rcx, qword [rdi + 0x38]
mov edx, ebp
mov rax, qword [rcx]
call qword [rax + 0x100]
mov sil, 1
lea edx, [rbp + 1]
jmp 0x14008de69
cmp ebx, 0x58
ja 0x14008e05e
je 0x14008e07a
sub ebx, 0x2d
je 0x14008e011
dec ebx
je 0x14008dfe6
sub ebx, 0x13
je 0x14008e08e
sub ebx, 2
je 0x14008e087
cmp ebx, 0x13
jne 0x14008e076
cmp r15b, sil
je 0x14008e0ca
jmp 0x14008e016
mov rcx, qword [rdi + 0x38]
mov edx, 0x7d1
cmp r14b, sil
lea eax, [rdx + 1]
cmovne edx, eax
mov eax, 0x7d3
cmp r15b, sil
cmovne edx, eax
mov rax, qword [rcx]
call qword [rax + 0x1b0]
jmp 0x14008e0ca
cmp r14b, sil
je 0x14008e037
mov r8d, 0x59b2
mov rcx, qword [rdi + 0x30]
xor r9d, r9d
mov edx, 0x111
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14008e0ca
cmp r15b, sil
je 0x14008e044
mov r8d, 0x59b1
jmp 0x14008e01c
mov rcx, qword [rdi + 0x38]
mov edx, ebp
mov rax, qword [rcx]
call qword [rax + 0x100]
lea edx, [rbp + 1]
mov r8b, 1
jmp 0x14008de6c
cmp ebx, 0x61
je 0x14008e08e
cmp ebx, 0x63
je 0x14008e087
cmp ebx, 0x76
je 0x14008dfdb
cmp ebx, 0x78
je 0x14008e07a
xor al, al
jmp 0x14008e0cc
cmp r15b, sil
je 0x14008e0ca
mov r8d, 0x59b0
jmp 0x14008e01c
cmp r15b, sil
je 0x14008e0ca
jmp 0x14008e03c
cmp r15b, sil
je 0x14008e0ca
mov rcx, qword [rdi + 0x38]
lea r8d, [r13 - 1]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [rdi + 8]
xor edx, edx
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rdi + 0x30]
xor edx, edx
mov rcx, qword [rcx + 8]
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov al, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r13
ret