Function at 0x1400c5540
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x70
test dword [rcx + 0x34], 0x20000000
mov rbx, rcx
mov r14d, r9d
lea rcx, [rsp + 0x40]
mov r15d, r8d
mov r12, rdx
je 0x1400c5579
call qword [sym.imp.USER32.dll_GetCursorPos]
jmp 0x1400c557e
call fcn.14007dab0
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebp, ebp
mov ecx, 0x10
test ax, ax
sets bpl
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r13d, dword [rsp + 0xc0]
xor ecx, ecx
test ax, ax
mov eax, dword [rsp + 0xd8]
sets cl
mov r9d, r13d
mov edx, ebp
mov dword [rsp + 0xa0], ecx
mov r8d, ecx
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.1400c6090
mov esi, eax
test ebp, ebp
jne 0x1400c55e3
cdq
xor eax, edx
cmp eax, edx
jne 0x1400c55e3
xor eax, eax
jmp 0x1400c5879
mov eax, dword [rbx + 0x34]
bt eax, 0x13
jae 0x1400c55f7
test ebp, ebp
je 0x1400c55f7
mov edx, 1
jmp 0x1400c55f9
xor edx, edx
test al, 2
je 0x1400c5606
test ebp, ebp
jne 0x1400c5606
lea ecx, [rbp + 1]
jmp 0x1400c5608
xor ecx, ecx
mov r8d, 0x800
test r14d, r14d
je 0x1400c5626
mov eax, dword [rbx + 0x74]
test al, 1
je 0x1400c5626
test r8d, eax
je 0x1400c5626
mov eax, 1
jmp 0x1400c5628
xor eax, eax
mov qword [rsp + 0xa8], rdi
test r13d, r13d
jne 0x1400c5654
test ecx, ecx
jne 0x1400c56a7
test eax, eax
jne 0x1400c56a7
test edx, edx
jne 0x1400c56a7
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jge 0x1400c56a7
xor eax, eax
jmp 0x1400c5871
mov edi, dword [rsp + 0xd0]
mov rcx, rbx
mov edx, edi
call fcn.1400c8130
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jl 0x1400c56a0
test edi, edi
je 0x1400c56a7
test dword [rbx + 0x34], 0x10000000
je 0x1400c56a7
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, dword [rbx + 0x6c]
mov ecx, dword [rbx + 0x98]
mov edx, eax
call fcn.14000f660
test eax, eax
je 0x1400c56a7
inc dword [rbx + 0x9c]
xor eax, eax
jmp 0x1400c5871
test r12, r12
je 0x1400c56bf
test dword [rbx + 0x34], 0x10000
je 0x1400c56bf
xor edx, edx
mov rcx, r12
call fcn.1400db970
mov edi, r15d
mov eax, r15d
and r15d, 0xc0000
shr edi, 2
and eax, 0x30000
and edi, 0x400000
or edi, eax
shr edi, 2
or edi, r15d
shr edi, 0xe
cmp dword [rsp + 0xa0], 0
je 0x1400c56f2
or edi, 4
test ebp, ebp
je 0x1400c56f9
or edi, 8
mov ebp, 0x1000
test r14d, r14d
jne 0x1400c571a
cmp qword [rbx + 0x50], 0
jne 0x1400c571a
test r13d, r13d
jne 0x1400c571a
test dword [rbx + 0x34], ebp
jne 0x1400c571a
lea r14d, [r13 + 1]
neg esi
call fcn.1400daec0
xor r15d, r15d
cmp r12, rax
mov eax, dword [rbx + 0x9c]
mov ecx, r15d
sete cl
test eax, eax
je 0x1400c5741
inc eax
mov dword [rbx + 0x9c], r15d
imul esi, eax
test edi, edi
je 0x1400c574b
test byte [rbx + 0x34], 4
jne 0x1400c5752
mov eax, dword [rbx + 0x34]
test al, 1
je 0x1400c579b
movzx ecx, word [rsp + 0x44]
movzx eax, word [rsp + 0x40]
movzx r9d, si
shl ecx, 0x10
shl r9d, 0x10
mov r8d, 0x20e
or rcx, rax
movzx eax, di
mov rdx, r12
or r9, rax
mov eax, 0x20a
test r14d, r14d
mov qword [rsp + 0x20], rcx
lea rcx, [0x14026d7b0]
cmovne r8d, eax
call fcn.140083840
jmp 0x1400c584c
bt eax, 0x15
jae 0x1400c57a5
test ecx, ecx
jne 0x1400c57aa
test r13d, r13d
je 0x1400c57ee
mov r9d, 0x28
test r14d, r14d
mov eax, 0x800
cmovne ebp, eax
lea r8, [rsp + 0x48]
lea rcx, [0x14026d7b0]
lea edx, [r9 - 0x27]
mov dword [rsp + 0x48], r15d
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x60], r15d
call fcn.140083b70
jmp 0x1400c584c
movzx ecx, word [rsp + 0x44]
movzx eax, word [rsp + 0x40]
movzx r9d, si
shl ecx, 0x10
shl r9d, 0x10
mov r8d, 0x20e
or rcx, rax
movzx eax, di
mov rdx, r12
or r9, rax
mov eax, 0x20a
test r14d, r14d
cmovne r8d, eax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0xc8
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rcx
lea rcx, [0x14026d7b0]
call fcn.140083a30
add dword [rbx + 0x8c], esi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x94], r15d
mov dword [rbx + 0x98], eax
mov eax, dword [rbx + 0x58]
mov dword [rbx + 0x58], r15d
cdq
xor eax, edx
sub eax, edx
mov rdi, qword [rsp + 0xa8]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rsi
ret