Function at 0x1400b80f0
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 0x1400b84ae
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x3c8]
test al, al
je 0x1400b84ae
cmp r12d, 0x28
ja 0x1400b842b
movabs rcx, 0x14600000000
bt rcx, r12
jae 0x1400b842b
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400b84ae
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400b84ae
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 0x1400b81a6
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rdi, rax
test rdi, rdi
je 0x1400b81f7
nop dword [rax + rax]
mov ecx, dword [rdi + 0x68]
mov rbx, rdi
mov eax, ecx
shr eax, 1
test al, 1
jne 0x1400b81f7
test cl, 1
jne 0x1400b81c7
xor edi, edi
jmp 0x1400b81e0
mov rax, qword [rdi]
xor edx, edx
mov rcx, rdi
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
jne 0x1400b81f2
nop word [rax + rax]
test rbx, rbx
je 0x1400b81f2
mov rdi, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rdi, rdi
je 0x1400b81e0
test rdi, rdi
jne 0x1400b81b0
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.1400a6c90
mov r15, rax
test rax, rax
je 0x1400b8268
nop dword [rax]
mov r9, qword [rbx]
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call qword [r9 + 0x198]
test al, al
jne 0x1400b8268
mov r9b, 1
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call fcn.1400a6c90
mov r15, rax
test rax, rax
jne 0x1400b8230
mov rax, qword [r14 + 8]
mov rbx, qword [rax + 0x2d0]
mov rcx, qword [rbx + 0x200]
test rcx, rcx
je 0x1400b8289
mov rax, qword [rcx]
call qword [rax + 0x38]
mov edx, eax
jmp 0x1400b828b
xor edx, edx
mov rcx, qword [rbx + 0x200]
xor esi, esi
test rcx, rcx
je 0x1400b82a4
mov rax, qword [rcx]
dec edx
call qword [rax + 0x30]
mov rsi, rax
test rsi, rsi
je 0x1400b82ef
mov rbx, rsi
nop dword [rax]
test byte [rsi + 0x68], 1
jne 0x1400b82ba
xor eax, eax
jmp 0x1400b82d0
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
jne 0x1400b82e7
nop word [rax + rax]
test rbx, rbx
je 0x1400b82e2
mov rax, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rax, rax
je 0x1400b82d0
test rax, rax
je 0x1400b82ef
mov rsi, rax
mov rbx, rax
jmp 0x1400b82b0
cmp r12d, 0x26
jne 0x1400b8330
test rdi, rdi
je 0x1400b83d2
cmp rdi, r15
jne 0x1400b83d2
mov rcx, r14
call fcn.1400b7e10
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 0x1400b83d2
test rdi, rdi
je 0x1400b83d2
cmp rdi, rsi
jne 0x1400b83d2
test byte [rdi + 0x68], 1
jne 0x1400b8383
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
test eax, eax
jle 0x1400b8383
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.1400a81b0
jmp 0x1400b830f
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
cmp byte [rcx + 0x3ea], 0
je 0x1400b839f
mov eax, dword [rcx + 0x370]
jmp 0x1400b83c5
movss xmm1, dword [rcx + 0x384]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1400b83b9
addss xmm1, dword [0x1401b05e8]
jmp 0x1400b83c1
subss xmm1, dword [0x1401b05e8]
cvttss2si eax, xmm1
test eax, eax
jg 0x1400b830f
jmp 0x1400b8307
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 0x1400b830f
cmp r12d, 9
jne 0x1400b84d4
mov rax, qword [r14 + 8]
test rax, rax
je 0x1400b84ae
mov rax, qword [rax + 0x2d0]
xor ecx, ecx
mov r8, qword [rax + 0x200]
test r8, r8
je 0x1400b8461
mov rax, qword [r8]
xor edx, edx
mov rcx, r8
call qword [rax + 0x30]
mov rcx, rax
test rcx, rcx
je 0x1400b84ae
nop word [rax + rax]
mov edx, dword [rcx + 0x68]
mov rbx, rcx
mov eax, edx
shr eax, 1
test al, 1
jne 0x1400b84ba
test dl, 1
jne 0x1400b8487
xor ecx, ecx
jmp 0x1400b8497
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rcx, rax
test rax, rax
jne 0x1400b84a9
test rbx, rbx
je 0x1400b84a9
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rcx, rcx
je 0x1400b8497
test rcx, rcx
jne 0x1400b8470
xor al, al
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
mov rcx, r14
call fcn.1400b8000
test al, al
jne 0x1400b8324
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
cmp r12d, 0xd
jne 0x1400b858b
lea ecx, [r12 + 3]
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x1400b8507
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
add rcx, 0x1e8
call fcn.1400a9ba0
mov rax, qword [r14 + 8]
mov rcx, qword [rax + 0x2d0]
mov r8, qword [rcx + 0x200]
xor ecx, ecx
test r8, r8
je 0x1400b852e
mov rax, qword [r8]
xor edx, edx
mov rcx, r8
call qword [rax + 0x30]
mov rcx, rax
test rcx, rcx
je 0x1400b8577
mov edx, dword [rcx + 0x68]
mov rbx, rcx
mov eax, edx
shr eax, 1
test al, 1
jne 0x1400b84ba
test dl, 1
jne 0x1400b854e
xor ecx, ecx
jmp 0x1400b8560
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x30]
mov rcx, rax
test rax, rax
jne 0x1400b8572
nop
test rbx, rbx
je 0x1400b8572
mov rcx, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
test rcx, rcx
je 0x1400b8560
test rcx, rcx
jne 0x1400b8533
mov rcx, r14
call fcn.1400b7e10
xor al, al
add rsp, 0x50
pop r14
pop r12
pop rbx
ret
cmp r12d, 0x1b
jne 0x1400b84ae
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1400b85e6
mov rax, qword [rcx]
call qword [rax + 0x308]
test al, al
je 0x1400b85e6
mov rcx, r14
call fcn.1400b8d60
test eax, eax
js 0x1400b85e6
mov r9b, 1
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400b8610
lea rdx, [r14 + 0x38]
lea rcx, [rsp + 0x30]
call fcn.14005d330
lea rdx, [r14 + 0x50]
mov r8, rax
mov rcx, r14
call fcn.1400b7a40
jmp 0x1400b85ee
mov rcx, r14
call fcn.1400b7e10
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400b84ae
mov al, 1
add rsp, 0x50
pop r14
pop r12
pop rbx
ret