Function at 0x1400c1770
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push r12
push r14
sub rsp, 0x50
mov r14, rcx
movsxd r12, edx
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x1400c1b2e
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x3c8]
test al, al
je 0x1400c1b2e
cmp r12d, 0x28
ja 0x1400c1aab
movabs rcx, 0x14600000000
bt rcx, r12
jae 0x1400c1aab
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400c1b2e
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400c1b2e
mov rax, qword [r14 + 8]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rdi
xor edi, edi
mov qword [rsp + 0x88], r15
mov rcx, qword [rax + 0x2d0]
mov rcx, qword [rcx + 0x200]
test rcx, rcx
je 0x1400c1826
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rdi, rax
test rdi, rdi
je 0x1400c1877
nop dword [rax + rax]
mov ecx, dword [rdi + 0x68]
mov rbx, rdi
mov eax, ecx
shr eax, 1
test al, 1
jne 0x1400c1877
test cl, 1
jne 0x1400c1847
xor edi, edi
jmp 0x1400c1860
mov rax, qword [rdi]
xor edx, edx
mov rcx, rdi
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
jne 0x1400c1872
nop word [rax + rax]
test rbx, rbx
je 0x1400c1872
mov rdi, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rdi, rdi
je 0x1400c1860
test rdi, rdi
jne 0x1400c1830
mov rax, qword [r14 + 8]
mov r9b, 1
xor r8d, r8d
mov dword [rsp + 0x20], 0
xor edx, edx
mov rbx, qword [rax + 0x2d0]
add rbx, 0x1e8
mov rcx, rbx
call fcn.1400af240
mov r15, rax
test rax, rax
je 0x1400c18e8
nop dword [rax]
mov r9, qword [rbx]
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call qword [r9 + 0x198]
test al, al
jne 0x1400c18e8
mov r9b, 1
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call fcn.1400af240
mov r15, rax
test rax, rax
jne 0x1400c18b0
mov rax, qword [r14 + 8]
mov rbx, qword [rax + 0x2d0]
mov rcx, qword [rbx + 0x200]
test rcx, rcx
je 0x1400c1909
mov rax, qword [rcx]
call qword [rax + 0x38]
mov edx, eax
jmp 0x1400c190b
xor edx, edx
mov rcx, qword [rbx + 0x200]
xor esi, esi
test rcx, rcx
je 0x1400c1924
mov rax, qword [rcx]
dec edx
call qword [rax + 0x30]
mov rsi, rax
test rsi, rsi
je 0x1400c196f
mov rbx, rsi
nop dword [rax]
test byte [rsi + 0x68], 1
jne 0x1400c193a
xor eax, eax
jmp 0x1400c1950
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
jne 0x1400c1967
nop word [rax + rax]
test rbx, rbx
je 0x1400c1962
mov rax, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rax, rax
je 0x1400c1950
test rax, rax
je 0x1400c196f
mov rsi, rax
mov rbx, rax
jmp 0x1400c1930
cmp r12d, 0x26
jne 0x1400c19b0
test rdi, rdi
je 0x1400c1a52
cmp rdi, r15
jne 0x1400c1a52
mov rcx, r14
call fcn.1400c1490
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x88]
mov al, 1
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
cmp r12d, 0x28
jne 0x1400c1a52
test rdi, rdi
je 0x1400c1a52
cmp rdi, rsi
jne 0x1400c1a52
test byte [rdi + 0x68], 1
jne 0x1400c1a03
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
test eax, eax
jle 0x1400c1a03
mov rax, qword [r14 + 8]
lea r8d, [r12 - 0x29]
xor r9d, r9d
mov rdx, rdi
mov rcx, qword [rax + 0x2d0]
add rcx, 0x1e8
call fcn.1400b06d0
jmp 0x1400c198f
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
cmp byte [rcx + 0x3ea], 0
je 0x1400c1a1f
mov eax, dword [rcx + 0x370]
jmp 0x1400c1a45
movss xmm1, dword [rcx + 0x384]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1400c1a39
addss xmm1, dword [0x1401dbb08]
jmp 0x1400c1a41
subss xmm1, dword [0x1401dbb08]
cvttss2si eax, xmm1
test eax, eax
jg 0x1400c198f
jmp 0x1400c1987
mov rax, qword [r14 + 8]
xor edx, edx
mov rcx, qword [rax + 0x2d0]
add rcx, 0x1e8
mov rax, qword [rcx]
call qword [rax + 0x98]
mov rax, qword [r14 + 8]
xor r8d, r8d
mov edx, r12d
mov rcx, qword [rax + 0x2d0]
mov rax, qword [rcx]
call qword [rax + 0x780]
mov rax, qword [r14 + 8]
mov dl, 1
mov rcx, qword [rax + 0x2d0]
add rcx, 0x1e8
mov rax, qword [rcx]
call qword [rax + 0x98]
jmp 0x1400c198f
cmp r12d, 9
jne 0x1400c1b54
mov rax, qword [r14 + 8]
test rax, rax
je 0x1400c1b2e
mov rax, qword [rax + 0x2d0]
xor ecx, ecx
mov r8, qword [rax + 0x200]
test r8, r8
je 0x1400c1ae1
mov rax, qword [r8]
xor edx, edx
mov rcx, r8
call qword [rax + 0x30]
mov rcx, rax
test rcx, rcx
je 0x1400c1b2e
nop word [rax + rax]
mov edx, dword [rcx + 0x68]
mov rbx, rcx
mov eax, edx
shr eax, 1
test al, 1
jne 0x1400c1b3a
test dl, 1
jne 0x1400c1b07
xor ecx, ecx
jmp 0x1400c1b17
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rcx, rax
test rax, rax
jne 0x1400c1b29
test rbx, rbx
je 0x1400c1b29
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rcx, rcx
je 0x1400c1b17
test rcx, rcx
jne 0x1400c1af0
xor al, al
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
mov rcx, r14
call fcn.1400c1680
test al, al
jne 0x1400c19a4
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
cmp r12d, 0xd
jne 0x1400c1c0b
lea ecx, [r12 + 3]
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x1400c1b87
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
add rcx, 0x1e8
call fcn.1400b20c0
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
mov r8, qword [rcx + 0x200]
xor ecx, ecx
test r8, r8
je 0x1400c1bae
mov rax, qword [r8]
xor edx, edx
mov rcx, r8
call qword [rax + 0x30]
mov rcx, rax
test rcx, rcx
je 0x1400c1bf7
mov edx, dword [rcx + 0x68]
mov rbx, rcx
mov eax, edx
shr eax, 1
test al, 1
jne 0x1400c1b3a
test dl, 1
jne 0x1400c1bce
xor ecx, ecx
jmp 0x1400c1be0
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rcx, rax
test rax, rax
jne 0x1400c1bf2
nop
test rbx, rbx
je 0x1400c1bf2
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rcx, rcx
je 0x1400c1be0
test rcx, rcx
jne 0x1400c1bb3
mov rcx, r14
call fcn.1400c1490
xor al, al
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
cmp r12d, 0x1b
jne 0x1400c1b2e
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1400c1c66
mov rax, qword [rcx]
call qword [rax + 0x308]
test al, al
je 0x1400c1c66
mov rcx, r14
call fcn.1400c21e0
test eax, eax
js 0x1400c1c66
mov r9b, 1
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400c1c90
lea rdx, [r14 + 0x38]
lea rcx, [rsp + 0x30]
call fcn.14000a770
lea rdx, [r14 + 0x50]
mov r8, rax
mov rcx, r14
call fcn.1400c10c0
jmp 0x1400c1c6e
mov rcx, r14
call fcn.1400c1490
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400c1b2e
mov al, 1
add rsp, 0x50
pop r14
pop r12
pop rbx
ret