Function at 0x14013ccf0
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 0x14013cd43
mov eax, dword [r12]
sub eax, 9
cmp eax, 9
ja 0x14013cd43
mov rcx, qword [rbx + 0x60]
mov rdx, r12
test rcx, rcx
je 0x14013cd34
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.140106d40
mov eax, dword [r12]
cmp eax, 0x15
jne 0x14013cd5b
mov byte [rbx + 0x1d5], 1
add rsp, 0x48
pop r12
pop rbx
ret
cmp eax, 0x14
jne 0x14013cd6f
mov byte [rbx + 0x1d5], 0
add rsp, 0x48
pop r12
pop rbx
ret
cmp eax, 0xd
jne 0x14013cd93
lea rcx, [rbx + 0x630]
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rcx, rbx
add rsp, 0x48
pop r12
pop rbx
jmp fcn.140101700
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 0x14013ce6e
cmp eax, 0x12
jne case.0x14013ce9b.14
movzx ecx, word [r12 + 0x20]
test ecx, ecx
je 0x14013ce0d
cmp ecx, 1
jne case.0x14013ce9b.14
cmp byte [rbx + 0x638], 0
je 0x14013cdfc
mov rax, qword [rbx + 0x630]
lea rcx, [rbx + 0x630]
call qword [rax + reloc.WS2_32.dll_WSASetLastError]
test al, al
jne 0x14013cdfc
mov edx, dword [rbx + 0x63c]
mov r8b, 1
inc edx
jmp 0x14013ce36
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3a8]
jmp 0x14013d2da
cmp byte [rbx + 0x638], 0
je 0x14013ce5d
mov rax, qword [rbx + 0x630]
lea rcx, [rbx + 0x630]
call qword [rax + reloc.WS2_32.dll_WSASetLastError]
test al, al
jne 0x14013ce5d
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 + InitCommonControls]
jmp 0x14013d2da
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3a0]
jmp 0x14013d2da
movzx eax, word [r12 + 0x1c]
add eax, 0xfffffff3
cmp eax, 0x36
ja case.0x14013ce9b.14
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x13d324]
mov ecx, dword [rdx + rax*4 + 0x13d2fc]
add rcx, rdx
jmp rcx
lea r15, [rbx + 0xb38]
mov rcx, r15
call fcn.1400ed5f0
test eax, eax
jle 0x14013d2da
mov rcx, r15
call fcn.1400ed5f0
xor ebp, ebp
test eax, eax
jg 0x14013cec7
lea esi, [rbp - 1]
jmp 0x14013cf08
xor edx, edx
mov rcx, r15
call fcn.1400ed540
mov rcx, r15
mov rsi, rax
mov r14d, ebp
call fcn.1400ed5f0
test eax, eax
jle 0x14013cf08
mov edx, r14d
mov rcx, r15
call fcn.1400ed540
cmp esi, eax
mov rdi, rax
mov rcx, r15
cmovle edi, esi
inc r14d
mov esi, edi
call fcn.1400ed5f0
cmp r14d, eax
jl 0x14013cee3
lea r14, [rbx + 0x630]
mov rax, qword [r14]
lea edi, [rsi - 1]
mov rcx, r14
call qword [rax + 0x80]
mov rcx, rbx
call fcn.140111640
test al, al
je 0x14013cfd2
test edi, edi
jns 0x14013cfd2
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 + SafeArrayCopy]
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 + InitCommonControls]
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
jmp case.0x14013ce9b.14
mov rax, qword [r14]
mov r8b, 1
mov rcx, r14
mov r9, qword [rax + 0x10]
test edi, edi
jle 0x14013cfed
mov edx, edi
call r9
jmp 0x14013d2da
xor edx, edx
call r9
jmp 0x14013d2da
lea r14, [rbx + 0xb38]
mov rcx, r14
call fcn.1400ed5f0
test eax, eax
jle 0x14013d2da
mov rcx, r14
call fcn.1400ed5f0
test eax, eax
jg 0x14013d021
mov esi, 0xffffffff
jmp 0x14013d062
xor edx, edx
mov rcx, r14
call fcn.1400ed540
mov rcx, r14
mov rsi, rax
xor ebp, ebp
call fcn.1400ed5f0
test eax, eax
jle 0x14013d062
nop dword [rax]
mov edx, ebp
mov rcx, r14
call fcn.1400ed540
cmp esi, eax
mov rdi, rax
mov rcx, r14
cmovge edi, esi
inc ebp
mov esi, edi
call fcn.1400ed5f0
cmp ebp, eax
jl 0x14013d040
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.140111640
test al, al
je 0x14013d15f
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
cmp r15d, eax
jle 0x14013d15f
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 + SafeArrayCopy]
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 + SafeArrayCopy]
mov rdi, qword [r14]
cmp r15d, eax
jle 0x14013d14f
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
mov r8b, 1
mov rcx, r14
lea edx, [rax - 1]
call qword [rdi + InitCommonControls]
jmp case.0x14013ce9b.14
mov r8b, 1
mov edx, ebp
mov rcx, r14
call qword [rdi + InitCommonControls]
jmp case.0x14013ce9b.14
mov rcx, qword [rbx + 0x650]
add rcx, 0x5c0
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
mov rdi, qword [r14]
cmp r15d, eax
jle 0x14013d199
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
mov r8b, 1
mov rcx, r14
lea edx, [rax - 1]
call qword [rdi + InitCommonControls]
jmp 0x14013d2da
mov r8b, 1
mov edx, ebp
mov rcx, r14
call qword [rdi + InitCommonControls]
jmp 0x14013d2da
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3b0]
jmp 0x14013d2da
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x3b8]
jmp 0x14013d2da
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 + InitCommonControls]
jmp 0x14013d2da
mov rbp, qword [rbx + 0x630]
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
mov rdi, qword [rbx]
call qword [rax + SafeArrayCopy]
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 + InitCommonControls]
jmp 0x14013d2da
mov edx, dword [rbx + 0x63c]
cmp edx, 0xffffffff
je 0x14013d2da
lea rcx, [rbx + 0x5c0]
mov rax, qword [rcx]
call qword [rax]
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x38]
jmp 0x14013d2da
lea rdi, [rbx + 0x630]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_WSASetLastError]
test al, al
je 0x14013d2da
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14013d2da
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.14013c770
jmp 0x14013d2da
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.1400f3f60
mov rdx, r12
mov rcx, rbx
call fcn.140106d40
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