Function at 0x18001aa40
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x198]
sub rsp, 0x258
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
movaps xmmword [rax - 0xe8], xmm15
mov rax, qword [0x18005a080]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov r12, r9
mov qword [rsp + 0x58], r9
mov r13, r8
mov qword [rsp + 0x70], r8
movaps xmm12, xmm1
movss dword [rsp + 0x60], xmm12
mov rbx, rcx
mov qword [rsp + 0x50], rcx
mov qword [rbp - 0x70], rcx
mov rdi, qword [rbp + 0x1c0]
mov qword [rbp - 0x50], rdi
mov r14, qword [rbp + 0x1c8]
mov qword [rbp - 0x78], r14
xor esi, esi
mov eax, dword [0x18005fb20]
cmp eax, 0xffffffff
je 0x18001ab05
cmp eax, dword [rcx]
jne 0x18001b340
mov eax, dword [r14]
test eax, eax
jne 0x18001ab25
mov eax, dword [r8 + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm12, xmm0
jae 0x18001ab22
cvttss2si eax, xmm12
mov dword [r14], eax
movaps xmm2, xmm12
movss xmm13, dword [0x1800517bc]
mulss xmm2, xmm13
movss dword [rsp + 0x30], xmm2
cvttss2si r15d, xmm12
mov dword [rsp + 0x44], r15d
movss xmm10, dword [rcx + 0x34]
addss xmm10, dword [rcx + 0x2c]
movss xmm15, dword [0x180051730]
addss xmm10, xmm15
movss dword [rsp + 0x3c], xmm10
movss xmm1, dword [rcx + 0x28]
movd xmm11, eax
cvtdq2ps xmm11, xmm11
mulss xmm11, xmm13
movss dword [rsp + 0x64], xmm11
movaps xmm7, xmm11
addss xmm7, xmm15
movss xmm6, dword [rcx + 0x30]
movss xmm3, dword [0x180051768]
subss xmm6, xmm3
movaps xmm9, xmm1
addss xmm9, xmm15
movss dword [rsp + 0x38], xmm9
movaps xmm14, xmm6
subss xmm14, xmm3
movups xmm0, xmmword [0x18005f758]
movdqa xmmword [rbp - 0x60], xmm0
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
movaps xmm0, xmm6
unpcklps xmm0, xmm2
movq r8, xmm0
movaps xmm8, xmm1
unpcklps xmm8, xmm10
movq rdx, xmm8
call fcn.18003bbb0
movaps xmm0, xmmword [0x180051980]
movaps xmmword [rbp - 0x60], xmm0
movss xmm1, dword [rsp + 0x30]
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm14
movaps xmm3, xmm10
movaps xmm2, xmm9
lea rdx, [rbp - 0x60]
mov rcx, qword [0x18005f558]
call fcn.180039c70
unpcklps xmm6, xmm7
movq rdx, xmm6
movq rcx, xmm8
call fcn.180017000
test al, al
je 0x18001ac7f
mov rdx, rbx
lea rcx, [0x18005fd00]
call fcn.1800177b0
movq rdx, xmm6
movq rcx, xmm8
call fcn.180017000
test al, al
je 0x18001ac67
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
jmp 0x18001ac6c
movzx eax, byte [rsp + 0x34]
test al, al
je 0x18001ac7f
mov rdx, rbx
lea rcx, [0x18005fa10]
call fcn.1800177b0
mov eax, dword [r13 + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm12, xmm0
jb 0x18001ac95
mov dword [r14], eax
jmp 0x18001ac9e
cmp dword [r14], 0
jne 0x18001ac9e
mov dword [r14], r15d
cmp dword [r13 + 8], 0
jne 0x18001aca7
mov dword [rdi], esi
movq rdx, xmm6
movq rcx, xmm8
call fcn.180017000
test al, al
je 0x18001adaa
mov eax, dword [0x1800602b8]
test eax, eax
jg 0x18001ad2a
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001ad24
mov dword [0x1800602b8], 0x14
mov eax, dword [r12]
test eax, eax
jle 0x18001acf2
dec eax
mov dword [r12], eax
jmp 0x18001acff
mov eax, dword [rdi]
test eax, eax
jle 0x18001acff
dec eax
mov dword [rdi], eax
dec dword [r14]
mov ecx, dword [rdi]
mov eax, dword [r12]
inc eax
cmp eax, ecx
jne 0x18001adaa
test ecx, ecx
je 0x18001adaa
lea eax, [rcx - 1]
mov dword [rdi], eax
dec dword [r14]
jmp 0x18001adaa
mov eax, dword [0x1800602b8]
dec eax
mov dword [0x1800602b8], eax
test eax, eax
jg 0x18001ada2
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001ad9c
mov dword [0x1800602b8], 0x14
mov edx, dword [r12]
mov ecx, dword [r13 + 8]
lea eax, [r15 - 1]
cmp edx, eax
jge 0x18001ad70
lea eax, [rcx - 1]
cmp edx, eax
jge 0x18001ad70
lea eax, [rdx + 1]
mov dword [r12], eax
jmp 0x18001adaa
mov r8d, dword [r14]
cmp r8d, ecx
jge 0x18001ad8b
lea eax, [rdx + 1]
cmp eax, r8d
jne 0x18001ad8b
inc dword [rdi]
inc dword [r14]
inc dword [r12]
jmp 0x18001adaa
inc edx
cmp edx, r8d
je 0x18001adaa
cmp edx, ecx
jge 0x18001adaa
mov dword [r12], edx
jmp 0x18001adaa
mov eax, dword [0x1800602b8]
dec eax
mov dword [0x1800602b8], eax
mov qword [rbp - 0x58], rsi
mov r8, rsi
mov qword [rbp - 0x60], rsi
mov ebx, esi
mov dword [rbp - 0x58], ebx
mov r15d, dword [rdi]
mov edx, dword [r13 + 8]
mov ecx, edx
cmp dword [r14], edx
cmovle ecx, dword [r14]
cmp r15d, ecx
jge 0x18001ae4c
mov rdi, qword [rbp - 0x70]
mov r12d, dword [rbp - 0x54]
nop word [rax + rax]
movsxd rcx, r15d
movsxd rax, edx
cmp rcx, rax
jae 0x18001adf6
mov rdi, rcx
shl rdi, 5
add rdi, qword [r13]
cmp ebx, r12d
jl 0x18001ae15
lea eax, [rbx + 1]
movsxd rdx, eax
lea rcx, [rbp - 0x60]
call fcn.1800200c0
mov ebx, dword [rbp - 0x58]
mov r12d, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x60]
movsxd rcx, ebx
shl rcx, 5
add rcx, rsi
mov rdx, rdi
call fcn.18000e790
inc ebx
mov dword [rbp - 0x58], ebx
inc r15d
mov edx, dword [r13 + 8]
mov eax, edx
cmp dword [r14], edx
cmovle eax, dword [r14]
cmp r15d, eax
jl 0x18001ade0
xor esi, esi
mov r12, qword [rsp + 0x58]
mov r8, qword [rbp - 0x60]
cvttss2si edi, xmm12
mov eax, edi
cmp ebx, edi
cmovle eax, ebx
xorps xmm7, xmm7
mov r15, qword [rbp - 0x50]
test eax, eax
jle 0x18001b02c
movaps xmm0, xmm14
subss xmm0, xmm13
movss dword [rsp + 0x48], xmm0
mov dword [rsp + 0x4c], 0x41700000
movss dword [rsp + 0x58], xmm9
addss xmm9, dword [0x180051780]
movsxd rax, ebx
mov qword [rbp - 0x80], rax
mov eax, edi
cmp ebx, edi
cmovle eax, ebx
mov r14, rsi
mov r13, r8
movsd xmm10, qword [rsp + 0x48]
movss xmm11, dword [0x1800517a8]
mov rdi, qword [rbp - 0x70]
movss xmm12, dword [rsp + 0x38]
mov ebx, eax
nop
movd xmm6, esi
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm13
addss xmm6, dword [rsp + 0x3c]
movq rdx, xmm10
movsd xmm0, qword [rsp + 0x58]
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm6
shufps xmm0, xmm0, 0xe1
movsd qword [rsp + 0x58], xmm0
movaps xmm8, xmm0
movq rcx, xmm0
call fcn.180017260
test al, al
je 0x18001af0a
mov ecx, dword [r15]
add ecx, esi
mov dword [r12], ecx
mov eax, dword [r15]
add eax, esi
mov dword [rsp + 0x40], eax
mov ecx, dword [r12]
mov dword [rsp + 0x48], ecx
cmp eax, ecx
jne 0x18001af87
movups xmm0, xmmword [0x18005f5f8]
movdqa xmmword [rbp - 0x50], xmm0
movss dword [rsp + 0x28], xmm13
movss dword [rsp + 0x20], xmm14
movaps xmm3, xmm6
movaps xmm2, xmm12
lea rdx, [rbp - 0x50]
mov rcx, qword [0x18005f558]
call fcn.180039c70
movaps xmm0, xmmword [0x180051920]
movaps xmmword [rbp - 0x50], xmm0
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm15
movaps xmm0, xmm14
unpcklps xmm0, xmm13
movq r8, xmm0
movq rdx, xmm8
call fcn.18003bbb0
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
movss xmm1, dword [0x18005f794]
divss xmm1, xmm11
lea rdx, [0x18005f578]
cmp eax, ecx
lea rax, [0x18005f798]
cmovne rdx, rax
addss xmm6, xmm15
cmp r14, qword [rbp - 0x80]
cmovb rdi, r13
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x18001afc2
mov rcx, qword [rdi]
movups xmm0, xmmword [rdx]
movaps xmmword [rbp - 0x50], xmm0
movss dword [rsp + 0x20], xmm7
movaps xmm0, xmm1
unpcklps xmm0, xmm1
movq r9, xmm0
lea r8, [rbp - 0x50]
movaps xmm1, xmm9
unpcklps xmm1, xmm6
movq rdx, xmm1
call fcn.180017ae0
inc esi
inc r14
add r13, 0x20
cmp esi, ebx
jl 0x18001aec0
movss xmm12, dword [rsp + 0x60]
movss xmm9, dword [rsp + 0x38]
movss xmm10, dword [rsp + 0x3c]
movss xmm11, dword [rsp + 0x64]
mov ebx, dword [rbp - 0x58]
mov r14, qword [rbp - 0x78]
mov r13, qword [rsp + 0x70]
mov edi, dword [rsp + 0x44]
mov eax, dword [r13 + 8]
cmp dword [r12], eax
jl 0x18001b040
dec eax
mov dword [r12], eax
mov eax, dword [r13 + 8]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
comiss xmm11, xmm0
jbe 0x18001b06d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm11
jb 0x18001b06d
subss xmm0, xmm11
cvttss2si eax, xmm0
mov dword [r15], eax
mov eax, dword [r13 + 8]
mov dword [r14], eax
movd xmm0, dword [r13 + 8]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm12
jbe 0x18001b301
movd xmm6, dword [r15]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm13
movaps xmm8, xmm10
addss xmm8, xmm7
movups xmm0, xmmword [0x18005f638]
movdqa xmmword [rsp + 0x70], xmm0
addss xmm9, xmm15
addss xmm9, xmm14
movss xmm12, dword [0x1800517cc]
subss xmm9, xmm12
movss xmm0, dword [rsp + 0x30]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm8
movaps xmm2, xmm9
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18005f558]
call fcn.180039c70
mov ecx, dword [r13 + 8]
mov eax, ecx
sub eax, edi
movd xmm11, eax
cvtdq2ps xmm11, xmm11
mulss xmm11, xmm13
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm13
movss xmm2, dword [rsp + 0x30]
movaps xmm1, xmm2
divss xmm1, xmm0
mulss xmm1, xmm2
movaps xmm10, xmm13
maxss xmm10, xmm1
divss xmm6, xmm11
movaps xmm0, xmm2
subss xmm0, xmm10
mulss xmm6, xmm0
addss xmm6, xmm8
addss xmm8, xmm2
movaps xmm0, xmm6
addss xmm0, xmm10
comiss xmm0, xmm8
jbe 0x18001b155
movaps xmm6, xmm8
subss xmm6, xmm10
movups xmm0, xmmword [0x18005f568]
movdqa xmmword [rsp + 0x70], xmm0
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm6
movaps xmm2, xmm9
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18005f558]
call fcn.180039c70
addss xmm10, xmm7
movaps xmm2, xmm6
addss xmm2, xmm7
addss xmm9, xmm15
movaps xmm0, xmmword [0x180051920]
movaps xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm15
movss xmm0, dword [0x1800517c8]
unpcklps xmm0, xmm10
movq r8, xmm0
unpcklps xmm9, xmm2
movq rdx, xmm9
call fcn.18003bbb0
addss xmm14, dword [rsp + 0x38]
subss xmm14, dword [0x1800517b0]
mov rbx, qword [rsp + 0x50]
mov rdx, qword [rbx + 0x40]
unpcklps xmm14, xmm6
movq rcx, xmm14
call fcn.180017260
test al, al
je 0x18001b28e
cmp dword [0x18005fb20], 0xffffffff
jne 0x18001b28e
movsxd rax, dword [rbx]
movsxd rcx, dword [0x18005fb10]
cmp eax, ecx
jg 0x18001b250
test eax, eax
jle 0x18001b250
mov rdx, rax
cmp rax, rcx
jae 0x18001b241
imul rdx, rdx, 0xd8
add rdx, qword [0x18005fb08]
lea rcx, [rbp - 0x40]
call fcn.180016930
jmp 0x18001b25a
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp - 0x40]
call fcn.180016930
jmp 0x18001b25a
lea rcx, [rbp - 0x40]
call fcn.180016540
nop
mov rdx, qword [rbp]
mov rcx, qword [rbp - 0x18]
call fcn.180017000
test al, al
je 0x18001b285
cmp dword [0x18005fb20], 0xffffffff
jne 0x18001b285
lea rdx, [rbp - 0x40]
lea rcx, [0x18005fb20]
call fcn.1800177b0
nop
lea rcx, [rbp - 0x40]
call fcn.180016870
mov eax, dword [rbx]
cmp dword [0x18005fb20], eax
jne 0x18001b306
mov rbx, qword [0x18005f9b8]
lea rcx, [rbp - 0x50]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rbp - 0x50]
mov rcx, rbx
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rax, qword [rbp - 0x50]
shr rax, 0x20
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, dword [rsp + 0x3c]
divss xmm0, dword [rsp + 0x30]
mulss xmm0, xmm11
comiss xmm7, xmm0
ja 0x18001b2e3
movaps xmm7, xmm0
minss xmm7, xmm11
divss xmm7, xmm13
cvttss2si eax, xmm7
mov dword [r15], eax
lea ecx, [rax + rdi]
mov dword [r14], ecx
mov eax, dword [r13 + 8]
cmp ecx, eax
cmovle eax, ecx
mov dword [r14], eax
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x18001b340
lea rbx, [rcx - 8]
lea r9, [fcn.180003f50]
mov r8, qword [rbx]
mov edx, 0x20
call fcn.18004c498
mov rdx, qword [rbx]
shl rdx, 5
add rdx, 8
mov rcx, rbx
call fcn.18004c490
nop
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.180016870
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.18004c400
lea r11, [rsp + 0x258]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret