Function at 0x14006ce70
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x14008a040]
xor rax, rsp
mov qword [rbp + 0x58], rax
mov ecx, dword [0x14008a234]
test ecx, ecx
je 0x14006cec3
sub ecx, 1
je 0x14006ceab
cmp ecx, 1
jne 0x14006cee1
mov byte [0x14008a240], cl
jmp 0x14006cee1
mov ecx, dword [0x14008a230]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x14008a240]
jmp 0x14006cee1
mov ecx, dword [0x14008a230]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14006cee1
cmp byte [0x14008a240], 0
sete byte [0x14008a240]
cmp byte [0x14008b564], 0
je 0x14006d511
lea rdx, [rsp + 0x61]
mov qword [rsp + 0x210], rbx
xor ecx, ecx
mov dword [rsp + 0x60], 0x626f526d
mov dword [rsp + 0x64], 0x786f6c
call qword [sym.imp.USER32.dll_FindWindowA]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
jne 0x14006d4f8
cmp byte [0x14008a240], 0
je 0x14006d4f8
mov edx, dword [0x14008b228]
xor ebx, ebx
mov rax, qword [0x14008b5a8]
mov rcx, qword [0x14008b220]
add rax, 0x110
movaps xmmword [rsp + 0x1f0], xmm6
movaps xmmword [rsp + 0x1e0], xmm7
movaps xmmword [rsp + 0x1d0], xmm8
movaps xmmword [rsp + 0x1c0], xmm9
movaps xmmword [rsp + 0x1b0], xmm10
movaps xmmword [rsp + 0x1a0], xmm11
movaps xmmword [rsp + 0x190], xmm12
movaps xmmword [rsp + 0x180], xmm13
mov qword [rbp + 0x10], rax
lea rax, [rbp - 0x48]
movaps xmmword [rsp + 0x170], xmm14
movaps xmmword [rsp + 0x160], xmm15
mov dword [rbp + 0x29], ebx
mov word [rbp + 0x2d], bx
mov byte [rbp + 0x2f], bl
mov dword [rbp + 8], 0x12b2d92
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], 8
mov dword [rbp + 0xc], edx
mov byte [rbp + 0x28], bl
test edx, edx
je 0x14006d017
test rcx, rcx
je 0x14006d017
mov qword [rsp + 0x38], rbx
lea rax, [rbp + 8]
mov qword [rsp + 0x30], rbx
lea r8, [rbp + 8]
mov dword [rsp + 0x28], 0x28
mov r9d, 0x28
mov edx, 0x224a14
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edx, dword [0x14008b228]
mov rcx, qword [0x14008b220]
mov rax, qword [rbp - 0x48]
add rax, 0x298
mov dword [rbp + 1], ebx
mov qword [rbp - 0x18], rax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x10], rax
mov word [rbp + 5], bx
mov byte [rbp + 7], bl
mov dword [rbp - 0x20], 0x12b2d92
mov qword [rbp - 8], 8
mov dword [rbp - 0x1c], edx
mov byte [rbp], bl
test edx, edx
je 0x14006d085
test rcx, rcx
je 0x14006d085
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x20]
mov qword [rsp + 0x30], rbx
lea r8, [rbp - 0x20]
mov dword [rsp + 0x28], 0x28
mov r9d, 0x28
mov edx, 0x224a14
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movdqa xmm0, xmmword [0x14007cf60]
lea rax, [rsp + 0x61]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x70], 0x74
mov r8, 0xffffffffffffffff
xorps xmm0, xmm0
mov qword [rbp - 0x30], rbx
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x28], rbx
inc r8
cmp byte [rax + r8], bl
jne 0x14006d0b5
lea rdx, [rsp + 0x61]
lea rcx, [rbp - 0x40]
call fcn.140009630
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.14005cf50
mov rdx, qword [rbp - 0x58]
add rdx, 0x158
mov dword [rbp + 1], ebx
mov word [rbp + 5], bx
mov byte [rbp + 7], bl
mov dword [rbp - 0x20], 0x12b2d92
call fcn.14005e790
add rax, 0x11c
mov qword [rbp - 8], 0x24
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x30]
mov qword [rbp - 0x10], rax
mov eax, dword [0x14008b228]
mov dword [rbp - 0x1c], eax
mov byte [rbp], bl
test eax, eax
je 0x14006d164
mov rcx, qword [0x14008b220]
test rcx, rcx
je 0x14006d164
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x20]
mov qword [rsp + 0x30], rbx
lea r8, [rbp - 0x20]
mov dword [rsp + 0x28], 0x28
mov r9d, 0x28
mov edx, 0x224a14
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movss xmm0, dword [rbp + 0x38]
xorps xmm7, xmm7
movss dword [rbp - 0x74], xmm0
xorps xmm3, xmm3
movss xmm0, dword [rbp + 0x44]
xorps xmm4, xmm4
movss dword [rbp - 0x6c], xmm0
xorps xmm5, xmm5
movss xmm0, dword [rbp + 0x50]
mov ecx, 0x57
movss dword [rbp - 0x60], xmm0
xorps xmm13, xmm13
movss xmm0, dword [rbp + 0x30]
xorps xmm14, xmm14
movss dword [rbp - 0x50], xmm0
xorps xmm15, xmm15
movss xmm0, dword [rbp + 0x3c]
xorps xmm6, xmm6
movss dword [rbp - 0x48], xmm0
xorps xmm8, xmm8
movss xmm0, dword [rbp + 0x48]
xorps xmm9, xmm9
movss dword [rsp + 0x60], xmm0
xorps xmm10, xmm10
movss dword [rbp - 0x70], xmm7
xorps xmm11, xmm11
movss dword [rbp - 0x68], xmm7
xorps xmm12, xmm12
movss dword [rbp - 0x64], xmm7
movss dword [rbp - 0x80], xmm7
movss dword [rbp - 0x7c], xmm7
movss dword [rbp - 0x78], xmm7
movss dword [rsp + 0x4c], xmm3
movss dword [rsp + 0x50], xmm7
movss dword [rsp + 0x54], xmm7
movss dword [rsp + 0x40], xmm3
movss dword [rsp + 0x44], xmm4
movss dword [rsp + 0x48], xmm5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14006d2a3
xorps xmm0, xmm0
xorps xmm1, xmm1
subss xmm0, dword [rbp - 0x74]
subss xmm1, dword [rbp - 0x6c]
xorps xmm2, xmm2
subss xmm2, dword [rbp - 0x60]
movss dword [rbp - 0x70], xmm0
movaps xmm13, xmm0
movss dword [rbp - 0x68], xmm1
movaps xmm14, xmm1
movss dword [rbp - 0x80], xmm0
movaps xmm6, xmm1
movss dword [rbp - 0x64], xmm2
movaps xmm15, xmm2
movss dword [rbp - 0x7c], xmm1
movaps xmm8, xmm0
movss dword [rbp - 0x78], xmm2
movaps xmm9, xmm2
movss dword [rsp + 0x4c], xmm1
movaps xmm10, xmm0
movss dword [rsp + 0x50], xmm0
movaps xmm11, xmm1
movss dword [rsp + 0x54], xmm2
movaps xmm12, xmm2
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm1
movss dword [rsp + 0x48], xmm2
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14006d327
movss xmm0, dword [rbp - 0x74]
addss xmm0, dword [rbp - 0x70]
movss xmm1, dword [rbp - 0x6c]
addss xmm1, dword [rbp - 0x68]
movss xmm2, dword [rbp - 0x64]
addss xmm2, dword [rbp - 0x60]
movss dword [rbp - 0x80], xmm0
movaps xmm13, xmm0
movss dword [rsp + 0x50], xmm0
movaps xmm8, xmm0
movss dword [rbp - 0x7c], xmm1
movaps xmm14, xmm1
movss dword [rsp + 0x4c], xmm1
movaps xmm6, xmm1
movss dword [rbp - 0x78], xmm2
movaps xmm15, xmm2
movss dword [rsp + 0x54], xmm2
movaps xmm9, xmm2
movss dword [rsp + 0x40], xmm0
movaps xmm10, xmm0
movss dword [rsp + 0x44], xmm1
movaps xmm11, xmm1
movss dword [rsp + 0x48], xmm2
movaps xmm12, xmm2
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14006d39e
movss xmm13, dword [rbp - 0x80]
subss xmm13, dword [rbp - 0x50]
movss xmm14, dword [rbp - 0x7c]
subss xmm14, dword [rbp - 0x48]
movss xmm15, dword [rbp - 0x78]
subss xmm15, dword [rsp + 0x60]
movss dword [rsp + 0x50], xmm13
movaps xmm8, xmm13
movss dword [rsp + 0x40], xmm13
movaps xmm10, xmm13
movss dword [rsp + 0x4c], xmm14
movaps xmm6, xmm14
movss dword [rsp + 0x44], xmm14
movaps xmm11, xmm14
movss dword [rsp + 0x54], xmm15
movaps xmm9, xmm15
movss dword [rsp + 0x48], xmm15
movaps xmm12, xmm15
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14006d3f1
movaps xmm8, xmm13
movaps xmm6, xmm14
addss xmm8, dword [rbp - 0x50]
addss xmm6, dword [rbp - 0x48]
movaps xmm9, xmm15
addss xmm9, dword [rsp + 0x60]
movaps xmm1, xmm8
movaps xmm13, xmm8
movaps xmm0, xmm6
movaps xmm14, xmm6
movaps xmm10, xmm8
movaps xmm11, xmm6
movaps xmm2, xmm9
movaps xmm15, xmm9
movaps xmm12, xmm9
jmp 0x14006d418
movss xmm13, dword [rsp + 0x40]
movss xmm14, dword [rsp + 0x44]
movss xmm15, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x4c]
movss xmm1, dword [rsp + 0x50]
movss xmm2, dword [rsp + 0x54]
mulss xmm6, xmm0
xorps xmm0, xmm0
mulss xmm8, xmm1
mulss xmm9, xmm2
addss xmm6, xmm8
movaps xmm8, xmmword [rsp + 0x1d0]
addss xmm6, xmm9
movaps xmm9, xmmword [rsp + 0x1c0]
ucomiss xmm0, xmm6
ja 0x14006d453
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x14006d45b
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmmword [rsp + 0x1f0]
comiss xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x1e0]
jbe 0x14006d48b
movaps xmm10, xmm13
movaps xmm11, xmm14
movaps xmm12, xmm15
divss xmm10, xmm0
divss xmm11, xmm0
divss xmm12, xmm0
movss xmm0, dword [0x14007c908]
lea rdx, [rsp + 0x60]
mulss xmm10, xmm0
lea rcx, [rbp - 0x58]
mulss xmm11, xmm0
mulss xmm12, xmm0
unpcklps xmm10, xmm11
movsd qword [rsp + 0x60], xmm10
movss dword [rsp + 0x68], xmm12
call fcn.14005d500
movaps xmm15, xmmword [rsp + 0x160]
movaps xmm14, xmmword [rsp + 0x170]
movaps xmm13, xmmword [rsp + 0x180]
movaps xmm12, xmmword [rsp + 0x190]
movaps xmm11, xmmword [rsp + 0x1a0]
movaps xmm10, xmmword [rsp + 0x1b0]
lea rcx, [rbp - 0x58]
mov qword [rbp - 0x58], 2
call fcn.14005fc40
mov rbx, qword [rsp + 0x210]
mov rcx, qword [rbp + 0x58]
xor rcx, rsp
call fcn.140070c30
add rsp, 0x200
pop rbp
ret