Function at 0x1400d97d0
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 [0x140111764]
mov r12, rcx
movaps xmmword [rax - 0x68], xmm8
xor r13b, r13b
movss xmm8, dword [0x140111678]
mov rsi, rdi
mov byte [rbp + 0x6f], r14b
xor r15d, r15d
movabs rbx, 0x7fffffffffffffff
lea rcx, [rbp - 0x29]
call fcn.140011600
mov rax, qword [rbp - 0x29]
movabs rcx, 0x7ffffffffff0bdbe
cmp rax, rcx
jg 0x1400d985a
add rax, 0xf4240
mov qword [rbp + 0x77], rax
jmp 0x1400d985e
mov qword [rbp + 0x77], rbx
lea rcx, [rbp + 0x77]
call fcn.140018db0
mov rax, qword [0x140130b48]
lea r8, [rbp - 0x79]
mov rcx, qword [0x140130b50]
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 0x1400d9832
mov rax, qword [0x140130b48]
lea r8, [rbp - 0x51]
mov rcx, qword [0x140130b50]
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 [0x140130b50]
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 0x1400d9832
call fcn.1400f4aa0
test rax, rax
je 0x1400d9832
call fcn.1400f5380
cmp eax, 1
jl 0x1400d9832
call fcn.1400f5380
cmp eax, 0x64
jg 0x1400d9832
cmp byte [r12], 0
je 0x1400d9832
mov ebx, dword [0x140130b40]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x1400d9828
lea rdx, [rbp + 0x7f]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
je 0x1400d9828
cmp dword [rbp + 0x7f], ebx
movabs rbx, 0x7fffffffffffffff
jne 0x1400d9832
call fcn.1400f4610
test al, al
jne 0x1400d9832
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9832
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9832
lea rcx, [rbp - 0x21]
call fcn.140011600
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rbx, qword [rbp - 0x21]
test ax, ax
jns 0x1400d9a62
test r14b, r14b
jne 0x1400d9a67
mov rdi, rbx
mov byte [rbp + 0x6f], 1
jmp 0x1400d9a67
xor al, al
mov byte [rbp + 0x6f], al
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400d9a84
test r13b, r13b
jne 0x1400d9a87
mov rsi, rbx
mov r13b, 1
jmp 0x1400d9a87
xor r13b, r13b
mov r15d, 1
nop dword [rax]
mov edx, r15d
call fcn.1400ed2a0
mov r14, rax
call fcn.1400f4aa0
cmp r14, rax
jne 0x1400d9d74
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9d74
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400d9d74
xor eax, eax
mov edx, r15d
mov qword [rsp + 0x48], rax
call fcn.1400ed2a0
mov rcx, qword [0x140130b50]
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.1400ed2a0
mov rcx, qword [0x140130b50]
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 [0x140130b50]
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 [0x140130b48]
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.1400facf0
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 0x1400d9cd2
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 0x1400d9cd2
movd xmm1, dword [r12 + 4]
movaps xmm0, xmm7
cvtdq2ps xmm1, xmm1
addss xmm1, xmm1
subss xmm0, xmm1
comiss xmm2, xmm0
jbe 0x1400d9cd2
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.140011600
mov rax, qword [rbp - 0x19]
movabs rcx, 0x7ffffffffffe795e
cmp rax, rcx
jg 0x1400d9ca5
add rax, 0x186a0
jmp 0x1400d9caf
movabs rax, 0x7fffffffffffffff
lea rcx, [rbp + 0x77]
mov qword [rbp + 0x77], rax
call fcn.140018db0
xor r9d, r9d
xor edx, edx
mov cl, 0x44
lea r8d, [r9 + 2]
call qword [sym.imp.USER32.dll_keybd_event]
jmp 0x1400d9d79
test r13b, r13b
jne 0x1400d9d79
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 0x1400d9d79
movd xmm0, dword [r12 + 4]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm0
subss xmm0, xmm7
comiss xmm2, xmm0
jae 0x1400d9d79
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.140011600
mov rax, qword [rbp - 0x11]
movabs rcx, 0x7ffffffffffe795e
cmp rax, rcx
jg 0x1400d9d4a
add rax, 0x186a0
jmp 0x1400d9d54
movabs rax, 0x7fffffffffffffff
lea rcx, [rbp + 0x77]
mov qword [rbp + 0x77], rax
call fcn.140018db0
xor r9d, r9d
xor edx, edx
mov cl, 0x41
lea r8d, [r9 + 2]
call qword [sym.imp.USER32.dll_keybd_event]
jmp 0x1400d9d79
movzx r14d, byte [rbp + 0x6f]
inc r15d
cmp r15d, 0x40
jle 0x1400d9a90
jmp 0x1400d9825