Function at 0x14000b120
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov r14, rcx
mov rax, qword [rcx + 0xe8]
cmp dword [rax + 0x1e4], 0
jg 0x14000b4ea
call fcn.1400da76c
mov rcx, rax
xor edi, edi
mov edx, edi
test rax, rax
setne dl
test edx, edx
jne 0x14000b170
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xb8], rbx
lea rcx, [rsp + 0x28]
call fcn.1400dd794
nop
lea rdx, [rsp + 0x28]
mov rcx, r14
call fcn.140009770
movsxd r12, eax
test eax, eax
jg 0x14000b1d0
lea rcx, [rsp + 0x28]
call fcn.1400dda58
nop
lea rdx, [rbx - 0x18]
or ebp, 0xffffffff
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x14000b4ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000b4ea
inc dword [0x140199b70]
mov esi, 0x10
mov ecx, esi
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
mov ebx, edi
cmovne ebx, esi
mov rax, qword [r14 + 0xc8]
movzx ecx, word [rax]
mov eax, 0xffdf
and cx, ax
sub cx, 0x41
cmp cx, 0x19
ja 0x14000b2e6
call fcn.1400da76c
mov r11, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000b22f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x38]
movsxd rsi, eax
test eax, eax
jle 0x14000b29d
test rdi, rdi
js 0x14000b297
cmp rdi, rax
jge 0x14000b297
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + rdi*8]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xa0]
call fcn.140002660
lea rdx, [0x14013fe74]
lea rcx, [rsp + 0xa0]
call fcn.140004a90
inc rdi
cmp rdi, rsi
jge 0x14000b29d
mov rax, qword [rsp + 0x38]
jmp 0x14000b250
call fcn.1400d020c
int3
bts ebx, 9
mov r9d, ebx
xor edx, edx
lea r8d, [rdx + 3]
lea rcx, [rsp + 0xa0]
call fcn.14000c180
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
or ebp, 0xffffffff
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14000b4ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000b4ab
or ebp, 0xffffffff
test ebx, ebx
jne 0x14000b3d3
call fcn.1400da76c
mov r11, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000b310
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa8], rax
mov r8d, r12d
mov rdx, qword [0x14019a558]
lea rcx, [rsp + 0xa8]
call fcn.140002990
mov r9d, 4
mov r8, qword [0x14019a568]
mov rbx, qword [rsp + 0xa8]
mov rdx, rbx
mov rcx, r14
call fcn.1400d24b0
cmp eax, 6
je 0x14000b3b9
lea rdx, [rbx - 0x18]
or ebp, 0xffffffff
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14000b37f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
dec dword [0x140199b70]
lea rcx, [rsp + 0x28]
call fcn.1400dda58
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x14000b4ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000b4ea
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14000b3d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.1400da76c
mov r11, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000b3f2
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xb0], rbx
call fcn.1400dba80
mov r13, qword [rax + 0x10]
mov rsi, rdi
test r12, r12
jle 0x14000b491
test rsi, rsi
js 0x14000b48b
cmp rsi, qword [rsp + 0x38]
jge 0x14000b48b
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx + rsi*8]
mov rcx, r13
call fcn.14000d560
test eax, eax
jne 0x14000b479
movsxd rax, edi
test edi, edi
js 0x14000b485
cmp rax, qword [rsp + 0x38]
jge 0x14000b485
mov r8, qword [rsp + 0x30]
mov r8, qword [r8 + rax*8]
mov rdx, qword [0x14019a528]
lea rcx, [rsp + 0xb0]
call fcn.140002990
xor r8d, r8d
xor edx, edx
mov rbx, qword [rsp + 0xb0]
mov rcx, rbx
call fcn.1400da654
inc edi
inc rsi
cmp rsi, r12
jge 0x14000b491
jmp 0x14000b418
call fcn.1400d020c
int3
call fcn.1400d020c
nop
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14000b4ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 3
mov rcx, r14
call fcn.14000a440
nop
dec dword [0x140199b70]
lea rcx, [rsp + 0x28]
call fcn.1400dda58
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x14000b4ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rsp, 0x60
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret