Function at 0x1400c3de0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, dword [rsp + 0xa0]
mov rdi, rcx
mov ebp, 1
test eax, eax
mov r10d, ebp
mov ebx, r9d
cmovne r10d, eax
mov esi, r8d
mov r14, rdx
mov dword [rcx + 0x90], r10d
mov rcx, qword [rcx]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1400c3e44
call fcn.1400daec0
mov r8, r14
mov rcx, rdi
mov rdx, rax
call fcn.1400c3c30
xor r13d, r13d
mov r12d, r13d
mov r15d, r13d
mov dword [rsp + 0xa0], r13d
test r14, r14
je 0x1400c3eb8
mov rdx, qword [rdi]
test rdx, rdx
je 0x1400c3eb8
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x80]
xor r8d, r8d
xor edx, edx
mov rcx, r14
mov r12d, eax
call fcn.1400a97e0
bt eax, 0x19
jae 0x1400c3e8d
mov dword [rsp + 0xa0], ebp
jmp 0x1400c3eb8
test r12d, r12d
je 0x1400c3ebb
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a97e0
bt eax, 0xc
jae 0x1400c3eb8
call fcn.1400dd8c0
test eax, eax
cmove r15d, ebp
mov dword [rsp + 0xa0], r15d
test r12d, r12d
sete r13b
test r13d, r13d
jne 0x1400c3ee6
test r14, r14
je 0x1400c3eda
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a97e0
test al, 4
jne 0x1400c3ee3
cmp byte [rdi + 0xa0], 0
je 0x1400c3ee6
mov r13d, ebp
or r15d, 0xffffffff
xor r8d, r8d
mov dword [rdi + 0x88], esi
test ebx, ebx
je 0x1400c3f25
mov eax, dword [rdi + 0x58]
test eax, eax
jns 0x1400c3f03
mov edx, r15d
jmp 0x1400c3f0b
test eax, eax
mov edx, r8d
setg dl
test ebx, ebx
jns 0x1400c3f14
mov ecx, r15d
jmp 0x1400c3f1c
test ebx, ebx
mov ecx, r8d
setg cl
cmp edx, ecx
cmovne eax, r8d
mov dword [rdi + 0x58], eax
mov esi, dword [rdi + 8]
cmp esi, ebp
jne 0x1400c3f38
cmp qword [rdi + 0x40], 0
jne 0x1400c3f49
mov esi, r8d
jmp 0x1400c3f49
cmp esi, 3
jne 0x1400c3f49
cmp qword [rdi + 0x40], 0
mov esi, r8d
setne sil
test byte [rdi + 0x34], 8
jne 0x1400c3f7f
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400c3f7f
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400c3f7f
lea rcx, [0x14026d7b0]
call fcn.140083e80
test eax, eax
je 0x1400c3f83
xor eax, eax
mov esi, eax
mov ecx, dword [rdi + 0x34]
mov eax, 4
test cl, 0x40
cmovne esi, eax
mov eax, dword [rdi + 0x74]
test bpl, al
je 0x1400c3fa6
test r12d, r12d
jne 0x1400c3fa6
mov esi, eax
shr esi, 0xa
and esi, 4
bt ecx, 0x1a
cmovb esi, ebp
cmp byte [rdi + 0xa1], 0
je 0x1400c3fc0
cmp dword [rsp + 0xa8], 6
je 0x1400c3fd3
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a9a20
bt eax, 0xf
jae 0x1400c3fd8
mov esi, 4
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a97e0
bt eax, 0xf
mov eax, 4
cmovb esi, eax
test ebx, ebx
je 0x1400c4082
mov r8d, dword [rdi + 0x90]
cmp r8d, ebp
je 0x1400c4082
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jge 0x1400c4060
test r12d, r12d
cmovne eax, ebx
add dword [rdi + 0x94], eax
mov ecx, dword [rdi + 0x94]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jl 0x1400c40fd
test r12d, r12d
je 0x1400c403c
mov ebx, ecx
jmp 0x1400c4082
test ebx, ebx
jns 0x1400c404e
mov eax, r15d
imul eax, ecx
cdq
idiv r8d
mov ebx, eax
jmp 0x1400c4082
xor eax, eax
test ebx, ebx
setg al
imul eax, ecx
cdq
idiv r8d
mov ebx, eax
jmp 0x1400c4082
test esi, esi
jne 0x1400c406a
test byte [rdi + 0x34], 2
jne 0x1400c4082
xor ecx, ecx
lea eax, [r8 - 1]
cmp dword [rdi + 0x94], eax
mov eax, ebx
setge cl
cdq
idiv r8d
lea ebx, [rax + rcx]
test r13d, r13d
mov r13d, dword [rsp + 0xa8]
mov dword [rsp + 0x80], ebx
je 0x1400c40a5
mov r8d, r13d
mov edx, ebx
mov rcx, rdi
call fcn.1400c53e0
mov ebx, eax
add dword [rdi + 0x58], ebx
cmp dword [rsp + 0x98], 0
mov r9d, dword [rdi + 0x58]
je 0x1400c4107
mov eax, dword [rdi + 0x5c]
test eax, eax
je 0x1400c4107
cmp dword [rsp + 0xb0], 0
je 0x1400c40fd
cdq
mov r8d, eax
mov eax, r9d
xor r8d, edx
sub r8d, edx
cdq
xor eax, edx
lea ecx, [r8 + r8]
sub eax, edx
cmp eax, ecx
jle 0x1400c40fd
test r9d, r9d
js 0x1400c40f2
xor eax, eax
test r9d, r9d
mov r15d, eax
setg r15b
imul r8d, r15d
add r8d, r8d
mov dword [rdi + 0x58], r8d
mov eax, 2
jmp 0x1400c4290
mov eax, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0xc0]
mov r9d, 2
mov rdx, r14
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1400c48a0
cmp eax, ebp
jne 0x1400c4153
mov rbx, qword [r14 + 0x48]
mov rcx, r14
call fcn.1400a9af0
mov rcx, rbx
mov edx, eax
call fcn.140026d40
test eax, eax
je 0x1400c415e
xor eax, eax
mov dword [rdi + 0x58], eax
jmp 0x1400c428e
test eax, 0xfffffffd
je 0x1400c4290
cmp dword [rdi + 0x34], 0
jne 0x1400c418d
cmp dword [rdi + 0x84], 0
je 0x1400c418d
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400a97e0
xor ecx, ecx
bt eax, 0xe
jae 0x1400c418f
cmp esi, 4
mov r12d, ecx
cmovne esi, ecx
jmp 0x1400c418f
xor ecx, ecx
test esi, esi
je 0x1400c4227
dec esi
je 0x1400c41ed
dec esi
je 0x1400c41dc
sub esi, 2
je 0x1400c41c0
dec esi
jne 0x1400c427c
mov r8, qword [rdi]
movzx edx, bpl
mov rcx, rdi
call fcn.1400c5c70
jmp 0x1400c425f
mov r9d, r12d
movzx r8d, bpl
mov rdx, r14
mov rcx, rdi
mov dword [rsp + 0x20], r13d
call fcn.1400c5e80
jmp 0x1400c425f
mov r8, qword [rdi]
movzx edx, bpl
mov rcx, rdi
call fcn.1400c5a20
jmp 0x1400c425f
test dword [rdi + 0x34], 0x400000
mov rax, qword [rsp + 0xb8]
mov r8, qword [rdi + 0x38]
mov dword [rsp + 0x28], ebp
movzx edx, bpl
mov rcx, rdi
mov qword [rsp + 0x20], rax
je 0x1400c421c
mov r9, qword [rdi]
call fcn.1400c58a0
jmp 0x1400c425f
mov r9, qword [rdi + 0x40]
call fcn.1400c58a0
jmp 0x1400c425f
mov eax, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0xb8]
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rdi]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov r9d, ebp
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.1400c5540
mov ecx, eax
test eax, eax
jle 0x1400c427c
mov eax, dword [rsp + 0x80]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
jg 0x1400c427c
xor eax, eax
mov dword [rdi + 0x58], eax
jmp 0x1400c427e
xor eax, eax
mov dword [rdi + 0x5c], ecx
test ecx, ecx
jg 0x1400c428e
mov ebp, eax
sets bpl
add ebp, 2
mov eax, ebp
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret