Function at 0x1400d9820
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
movaps xmmword [rax - 0x48], xmm6
xor r14b, r14b
movaps xmmword [rax - 0x58], xmm7
movabs rdi, 0x8000000000000000
movss xmm7, dword [0x1401127a4]
mov r12, rcx
movaps xmmword [rax - 0x68], xmm8
xor r13b, r13b
movss xmm8, dword [0x1401126b4]
mov rsi, rdi
mov byte [rbp + 0x6f], r14b
xor r15d, r15d
movabs rbx, 0x7fffffffffffffff
lea rcx, [rbp - 0x29]
call fcn.140011640
mov rax, qword [rbp - 0x29]
movabs rcx, 0x7ffffffffff0bdbe
cmp rax, rcx
jg 0x1400d98aa
add rax, 0xf4240
mov qword [rbp + 0x77], rax
jmp 0x1400d98ae
mov qword [rbp + 0x77], rbx
lea rcx, [rbp + 0x77]
call fcn.140018df0
mov rax, qword [0x140132b48]
lea r8, [rbp - 0x79]
mov rcx, qword [0x140132b50]
add rax, 0x19a41c8
mov qword [rbp - 0x71], rax
mov r9d, 0x28
mov qword [rsp + 0x38], r15
lea rax, [rbp + 0x77]
mov qword [rbp - 0x69], rax
mov edx, 0x221a5c
lea rax, [rbp - 0x79]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov qword [rbp + 0x77], r15
mov qword [rbp - 0x61], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp qword [rbp + 0x77], 0
je 0x1400d9882
mov rax, qword [0x140132b48]
lea r8, [rbp - 0x51]
mov rcx, qword [0x140132b50]
add rax, 0x19a41c8
mov qword [rbp - 0x49], rax
mov r9d, 0x28
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x40]
mov qword [rbp - 0x41], rax
mov edx, 0x221a5c
lea rax, [rbp - 0x51]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], r15
mov qword [rbp - 0x39], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [rsp + 0x40]
lea r8, [rbp - 0x79]
mov rcx, qword [0x140132b50]
add rax, 0x7ec
mov qword [rbp - 0x71], rax
mov r9d, 0x28
mov qword [rsp + 0x38], r15
lea rax, [rbp + 0x77]
mov qword [rbp - 0x69], rax
mov edx, 0x221a5c
lea rax, [rbp - 0x79]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x77], r15d
mov qword [rbp - 0x61], 4
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [rbp + 0x77], 0
je 0x1400d9882
call fcn.1400f4f50
test rax, rax
je 0x1400d9882
call fcn.1400f5830
cmp eax, 1
jl 0x1400d9882
call fcn.1400f5830
cmp eax, 0x64
jg 0x1400d9882
cmp byte [r12], 0
je 0x1400d9882
mov ebx, dword [0x140132b40]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x1400d9878
lea rdx, [rbp + 0x7f]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
je 0x1400d9878
cmp dword [rbp + 0x7f], ebx
movabs rbx, 0x7fffffffffffffff
jne 0x1400d9882
call fcn.1400f4ac0
test al, al
jne 0x1400d9882
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9882
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9882
lea rcx, [rbp - 0x21]
call fcn.140011640
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rbx, qword [rbp - 0x21]
test ax, ax
jns 0x1400d9ab2
test r14b, r14b
jne 0x1400d9ab7
mov rdi, rbx
mov byte [rbp + 0x6f], 1
jmp 0x1400d9ab7
xor al, al
mov byte [rbp + 0x6f], al
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400d9ad4
test r13b, r13b
jne 0x1400d9ad7
mov rsi, rbx
mov r13b, 1
jmp 0x1400d9ad7
xor r13b, r13b
mov r15d, 1
nop dword [rax]
mov edx, r15d
call fcn.1400ed750
mov r14, rax
call fcn.1400f4f50
cmp r14, rax
jne 0x1400d9dc4
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9dc4
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9dc4
xor eax, eax
mov edx, r15d
mov qword [rsp + 0x48], rax
call fcn.1400ed750
mov rcx, qword [0x140132b50]
lea r8, [rbp - 0x51]
add rax, 0x3e0
mov qword [rbp - 0x39], 8
mov qword [rbp - 0x49], rax
xor r14d, r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x48]
mov qword [rbp - 0x41], rax
mov edx, 0x221a5c
lea rax, [rbp - 0x51]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x28
lea r9d, [r14 + 0x28]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor eax, eax
mov edx, r15d
mov qword [rbp + 0x77], rax
call fcn.1400ed750
mov rcx, qword [0x140132b50]
lea r9d, [r14 + 0x28]
add rax, 0x3e0
mov qword [rsp + 0x38], r14
mov qword [rbp - 0x49], rax
lea r8, [rbp - 0x51]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x30], r14
mov qword [rbp - 0x41], rax
mov edx, 0x221a5c
lea rax, [rbp - 0x51]
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x39], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [0x140132b50]
lea r9d, [r14 + 0x28]
movss xmm6, dword [rbp + 0x7b]
lea r8, [rbp - 0x79]
xor eax, eax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rax
mov edx, 0x221a5c
mov rax, qword [0x140132b48]
add rax, 0x19c5958
mov qword [rsp + 0x30], r14
mov qword [rbp - 0x71], rax
lea rax, [rsp + 0x40]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x61], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movss xmm1, dword [rsp + 0x44]
mulss xmm1, xmm8
movaps xmm0, xmm1
call fcn.1400fb3f0
movzx r14d, byte [rbp + 0x6f]
movaps xmm2, xmm0
shufps xmm2, xmm0, 1
movabs r8, 0x431bde82d7b634db
mulss xmm0, dword [rsp + 0x48]
mulss xmm2, xmm6
subss xmm2, xmm0
test r14b, r14b
jne 0x1400d9d22
mov rcx, rbx
mov rax, r8
sub rcx, rdi
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, dword [r12 + 8]
cmp rdx, rax
jl 0x1400d9d22
movd xmm1, dword [r12 + 4]
movaps xmm0, xmm7
cvtdq2ps xmm1, xmm1
addss xmm1, xmm1
subss xmm0, xmm1
comiss xmm2, xmm0
jbe 0x1400d9d22
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x44
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp - 0x19]
call fcn.140011640
mov rax, qword [rbp - 0x19]
movabs rcx, 0x7ffffffffffe795e
cmp rax, rcx
jg 0x1400d9cf5
add rax, 0x186a0
jmp 0x1400d9cff
movabs rax, 0x7fffffffffffffff
lea rcx, [rbp + 0x77]
mov qword [rbp + 0x77], rax
call fcn.140018df0
xor r9d, r9d
xor edx, edx
mov cl, 0x44
lea r8d, [r9 + 2]
call qword [sym.imp.USER32.dll_keybd_event]
jmp 0x1400d9dc9
test r13b, r13b
jne 0x1400d9dc9
mov rcx, rbx
mov rax, r8
sub rcx, rsi
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, dword [r12 + 8]
cmp rdx, rax
jl 0x1400d9dc9
movd xmm0, dword [r12 + 4]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm0
subss xmm0, xmm7
comiss xmm2, xmm0
jae 0x1400d9dc9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp - 0x11]
call fcn.140011640
mov rax, qword [rbp - 0x11]
movabs rcx, 0x7ffffffffffe795e
cmp rax, rcx
jg 0x1400d9d9a
add rax, 0x186a0
jmp 0x1400d9da4
movabs rax, 0x7fffffffffffffff
lea rcx, [rbp + 0x77]
mov qword [rbp + 0x77], rax
call fcn.140018df0
xor r9d, r9d
xor edx, edx
mov cl, 0x41
lea r8d, [r9 + 2]
call qword [sym.imp.USER32.dll_keybd_event]
jmp 0x1400d9dc9
movzx r14d, byte [rbp + 0x6f]
inc r15d
cmp r15d, 0x40
jle 0x1400d9ae0
jmp 0x1400d9875