Function at 0x14013adb0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push r12
sub rsp, 0x48
mov rax, qword [rcx]
mov r12, rdx
mov rbx, rcx
call qword [rax + 0x250]
test al, al
jne 0x14013ae03
mov eax, dword [r12]
sub eax, 9
cmp eax, 9
ja 0x14013ae03
mov rcx, qword [rbx + 0x60]
mov rdx, r12
test rcx, rcx
je 0x14013adf4
mov rax, qword [rcx]
add rsp, 0x48
pop r12
pop rbx
jmp qword [rax + 0x2b8]
mov rcx, rbx
add rsp, 0x48
pop r12
pop rbx
jmp fcn.140134770
mov eax, dword [r12]
cmp eax, 0x15
jne 0x14013ae1b
mov byte [rbx + 0x1d5], 1
add rsp, 0x48
pop r12
pop rbx
ret
cmp eax, 0x14
jne 0x14013ae2f
mov byte [rbx + 0x1d5], 0
add rsp, 0x48
pop r12
pop rbx
ret
cmp eax, 0xd
jne 0x14013ae53
lea rcx, [rbx + 0x630]
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rcx, rbx
add rsp, 0x48
pop r12
pop rbx
jmp fcn.1400ec070
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
cmp eax, 3
je 0x14013af2e
cmp eax, 0x12
jne case.0x14013af5b.14
movzx ecx, word [r12 + 0x20]
test ecx, ecx
je 0x14013aecd
cmp ecx, 1
jne case.0x14013af5b.14
cmp byte [rbx + 0x638], 0
je 0x14013aebc
mov rax, qword [rbx + 0x630]
lea rcx, [rbx + 0x630]
call qword [rax + 0x70]
test al, al
jne 0x14013aebc
mov edx, dword [rbx + 0x63c]
mov r8b, 1
inc edx
jmp 0x14013aef6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3a8]
jmp 0x14013b39a
cmp byte [rbx + 0x638], 0
je 0x14013af1d
mov rax, qword [rbx + 0x630]
lea rcx, [rbx + 0x630]
call qword [rax + 0x70]
test al, al
jne 0x14013af1d
mov edx, dword [rbx + 0x63c]
dec edx
xor r8d, r8d
mov rax, qword [rbx]
mov rcx, rbx
mov rdi, qword [rbx + 0x630]
call qword [rax + 0x360]
mov r8b, 1
lea rcx, [rbx + 0x630]
mov edx, eax
call qword [rdi + ILClone]
jmp 0x14013b39a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3a0]
jmp 0x14013b39a
movzx eax, word [r12 + 0x1c]
add eax, 0xfffffff3
cmp eax, 0x36
ja case.0x14013af5b.14
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x13b3e4]
mov ecx, dword [rdx + rax*4 + 0x13b3bc]
add rcx, rdx
jmp rcx
lea r15, [rbx + 0xb38]
mov rcx, r15
call fcn.14009ffd0
test eax, eax
jle 0x14013b39a
mov rcx, r15
call fcn.14009ffd0
xor ebp, ebp
test eax, eax
jg 0x14013af87
lea esi, [rbp - 1]
jmp 0x14013afc8
xor edx, edx
mov rcx, r15
call fcn.1400dfec0
mov rcx, r15
mov rsi, rax
mov r14d, ebp
call fcn.14009ffd0
test eax, eax
jle 0x14013afc8
mov edx, r14d
mov rcx, r15
call fcn.1400dfec0
cmp esi, eax
mov rdi, rax
mov rcx, r15
cmovle edi, esi
inc r14d
mov esi, edi
call fcn.14009ffd0
cmp r14d, eax
jl 0x14013afa3
lea r14, [rbx + 0x630]
mov rax, qword [r14]
lea edi, [rsi - 1]
mov rcx, r14
call qword [rax + 0x80]
mov rcx, rbx
call fcn.14010db60
test al, al
je 0x14013b092
test edi, edi
jns 0x14013b092
mov rcx, qword [rbx + 0x650]
lea rdx, [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x368]
mov rcx, qword [rbx + 0x650]
xor edx, edx
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rbx + 0x650]
mov rsi, rax
add rcx, 0x5c0
mov rdx, qword [rcx]
call qword [rdx + ILCombine]
mov rdx, qword [rsi]
mov rcx, rsi
lea edi, [rax - 1]
call qword [rdx + 0x80]
mov edx, dword [rsp + 0x64]
mov rcx, qword [rbx + 0x650]
imul eax, edi
sub edx, eax
cmovs edx, ebp
mov dword [rsp + 0x64], edx
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x60]
call qword [rax + 0x378]
mov rax, qword [r14]
mov r8b, 1
xor edx, edx
mov rcx, r14
call qword [rax + ILClone]
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + ILCombine]
jmp case.0x14013af5b.14
mov rax, qword [r14]
mov r8b, 1
mov rcx, r14
mov r9, qword [rax + 0x10]
test edi, edi
jle 0x14013b0ad
mov edx, edi
call r9
jmp 0x14013b39a
xor edx, edx
call r9
jmp 0x14013b39a
lea r14, [rbx + 0xb38]
mov rcx, r14
call fcn.14009ffd0
test eax, eax
jle 0x14013b39a
mov rcx, r14
call fcn.14009ffd0
test eax, eax
jg 0x14013b0e1
mov esi, 0xffffffff
jmp 0x14013b122
xor edx, edx
mov rcx, r14
call fcn.1400dfec0
mov rcx, r14
mov rsi, rax
xor ebp, ebp
call fcn.14009ffd0
test eax, eax
jle 0x14013b122
nop dword [rax]
mov edx, ebp
mov rcx, r14
call fcn.1400dfec0
cmp esi, eax
mov rdi, rax
mov rcx, r14
cmovge edi, esi
inc ebp
mov esi, edi
call fcn.14009ffd0
cmp ebp, eax
jl 0x14013b100
lea r14, [rbx + 0x630]
mov rax, qword [r14]
lea ebp, [rsi + 1]
mov rcx, r14
call qword [rax + 0x80]
mov rcx, rbx
lea r15d, [rbp + 1]
call fcn.14010db60
test al, al
je 0x14013b21f
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + ILCombine]
cmp r15d, eax
jle 0x14013b21f
mov rcx, qword [rbx + 0x650]
lea rdx, [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x368]
mov rcx, qword [rbx + 0x650]
xor edx, edx
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rbx + 0x650]
mov rsi, rax
add rcx, 0x5c0
mov rdx, qword [rcx]
call qword [rdx + ILCombine]
mov rdx, qword [rsi]
mov rcx, rsi
lea edi, [rax - 1]
call qword [rdx + 0x80]
mov rcx, qword [rbx + 0x650]
imul eax, edi
add dword [rsp + 0x64], eax
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x60]
call qword [rax + 0x378]
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + ILCombine]
mov rdi, qword [r14]
cmp r15d, eax
jle 0x14013b20f
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax + ILCombine]
mov r8b, 1
mov rcx, r14
lea edx, [rax - 1]
call qword [rdi + ILClone]
jmp case.0x14013af5b.14
mov r8b, 1
mov edx, ebp
mov rcx, r14
call qword [rdi + ILClone]
jmp case.0x14013af5b.14
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + ILCombine]
mov rdi, qword [r14]
cmp r15d, eax
jle 0x14013b259
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax + ILCombine]
mov r8b, 1
mov rcx, r14
lea edx, [rax - 1]
call qword [rdi + ILClone]
jmp 0x14013b39a
mov r8b, 1
mov edx, ebp
mov rcx, r14
call qword [rdi + ILClone]
jmp 0x14013b39a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3b0]
jmp 0x14013b39a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3b8]
jmp 0x14013b39a
mov rax, qword [rbx]
xor r8d, r8d
mov rsi, qword [rbx + 0x630]
xor edx, edx
mov rcx, rbx
call qword [rax + 0x360]
mov r8b, 1
lea rcx, [rbx + 0x630]
mov edx, eax
call qword [rsi + ILClone]
jmp 0x14013b39a
mov rbp, qword [rbx + 0x630]
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
mov rdi, qword [rbx]
call qword [rax + ILCombine]
mov r8b, 1
mov rcx, rbx
lea edx, [rax - 1]
call qword [rdi + 0x360]
mov r8b, 1
lea rcx, [rbx + 0x630]
mov edx, eax
call qword [rbp + ILClone]
jmp 0x14013b39a
mov edx, dword [rbx + 0x63c]
cmp edx, 0xffffffff
je 0x14013b39a
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax]
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x38]
jmp 0x14013b39a
lea rdi, [rbx + 0x630]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x70]
test al, al
je 0x14013b39a
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14013b39a
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x80]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x78]
lea rdx, [rbx + 0xb90]
lea rcx, [rbx + 0xb50]
call fcn.14013a830
jmp 0x14013b39a
mov rcx, qword [rbx + 0x58]
lea r8, str.control_c
xor ebp, ebp
mov byte [rsp + 0x28], 0
xor r9d, r9d
mov qword [rsp + 0x20], rbp
mov rdx, rbx
call fcn.1400e7380
mov rdx, r12
mov rcx, rbx
call fcn.140134770
mov r14, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x30]
add rsp, 0x48
pop r12
pop rbx
ret