Function at 0x180013410
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
lea rbp, [rax - 0x78]
sub rsp, 0x160
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
mov rax, qword [0x18003d040]
xor rax, rsp
mov qword [rbp - 0x40], rax
mov rdi, r8
mov qword [rsp + 0x70], rdx
inc dword [0x18003dc58]
movss xmm7, dword [0x18003dc5c]
movss xmm1, dword [0x1800406ac]
addss xmm7, xmm1
addss xmm7, dword [0x180037578]
movss xmm8, dword [0x1800406a8]
movss xmm0, dword [0x180037630]
addss xmm8, xmm0
addss xmm8, dword [0x18003dc54]
movss xmm9, dword [rsp + 0x74]
movss xmm11, dword [0x180037470]
cmp byte [0x18003d94e], 0
je 0x180013502
movss xmm8, dword [0x180040638]
addss xmm8, dword [0x1800406d0]
addss xmm8, xmm0
movss xmm7, dword [0x18004063c]
mulss xmm7, xmm11
addss xmm7, dword [0x1800406d4]
movaps xmm0, xmm9
mulss xmm0, xmm11
subss xmm7, xmm0
xorps xmm13, xmm13
cmp byte [0x18003d913], 0
je 0x180013537
movss xmm7, dword [0x18003dc50]
mov byte [0x18003d913], 0
mov dword [0x18003dc50], 0
movaps xmm0, xmm7
subss xmm0, xmm1
movss dword [0x18003dc5c], xmm0
lea rcx, [rbp - 0x80]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm1, dword [rbp - 0x7c]
cvtdq2ps xmm1, xmm1
movd xmm2, dword [rbp - 0x80]
cvtdq2ps xmm2, xmm2
movss xmm12, dword [rsp + 0x70]
comiss xmm2, xmm8
jbe 0x180013582
comiss xmm1, xmm7
jbe 0x180013582
movaps xmm0, xmm8
addss xmm0, xmm12
comiss xmm0, xmm2
jbe 0x180013582
movaps xmm0, xmm7
addss xmm0, xmm9
comiss xmm0, xmm1
jbe 0x180013582
mov bl, 1
jmp 0x180013584
xor bl, bl
lea rsi, [0x1800309cc]
movss xmm10, dword [0x18003748c]
movss xmm14, dword [0x180037484]
cmp byte [0x18003d14d], 0
je 0x180013679
movaps xmm6, xmm9
mulss xmm6, xmm11
addss xmm6, xmm7
movaps xmm5, xmm12
mulss xmm5, xmm11
addss xmm5, xmm8
movaps xmm4, xmm5
addss xmm4, xmm10
movaps xmm3, xmm6
addss xmm3, xmm10
movaps xmm2, xmmword [0x180037820]
mov dword [rsp + 0x78], 2
mov dword [rsp + 0x7c], 2
mov qword [rsp + 0x70], rsi
xorps xmm0, xmm0
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [0x18002f9a8]
movdqa xmmword [rbp - 0x60], xmm1
movdqa xmmword [rsp + 0x60], xmm2
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
lea rax, [rbp - 0x70]
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
mov byte [rsp + 0x40], 1
unpcklps xmm4, xmm3
movsd qword [rsp + 0x38], xmm4
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
movss dword [rsp + 0x28], xmm13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
movaps xmm0, xmm14
unpcklps xmm0, xmm14
movq r9, xmm0
movaps xmm1, xmm5
unpcklps xmm1, xmm6
movq r8, xmm1
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18003d940]
call fcn.180007f40
movups xmm0, xmmword [0x18002f988]
lea r9, [rsp + 0x60]
movaps xmm2, xmm9
movaps xmm1, xmm12
movdqa xmmword [rsp + 0x60], xmm0
movaps xmm0, xmm8
unpcklps xmm0, xmm7
movq rcx, xmm0
call fcn.18000bcd0
test bl, bl
je 0x1800136af
mov byte [0x18003d94d], 1
cmp byte [0x18003d94e], 0
jne 0x1800136d5
movaps xmm1, xmm9
addss xmm1, xmm13
movss xmm0, dword [0x18003dc5c]
addss xmm0, xmm1
movss dword [0x18003dc5c], xmm0
mov eax, dword [0x18003dc58]
movaps xmm6, xmm12
mulss xmm6, xmm11
addss xmm6, xmm8
cmp dword [0x18003d1c4], eax
jne 0x180013828
movaps xmm5, xmm9
mulss xmm5, xmm11
addss xmm5, xmm7
movaps xmm4, xmm6
addss xmm4, xmm10
movaps xmm3, xmm5
addss xmm3, xmm10
movaps xmm2, xmmword [0x180037810]
mov dword [rsp + 0x78], 2
mov dword [rsp + 0x7c], 2
mov qword [rsp + 0x70], rsi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x18002f9a8]
movdqa xmmword [rbp - 0x60], xmm1
movdqa xmmword [rbp - 0x70], xmm2
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
mov byte [rsp + 0x40], 1
unpcklps xmm4, xmm3
movsd qword [rsp + 0x38], xmm4
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
movss dword [rsp + 0x28], xmm13
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
movaps xmm0, xmm14
unpcklps xmm0, xmm14
movq r9, xmm0
movaps xmm1, xmm6
unpcklps xmm1, xmm5
movq r8, xmm1
lea rdx, [rsp + 0x70]
mov rcx, qword [0x18003d940]
call fcn.180007f40
cmp byte [0x18003d948], 0
jne 0x1800137ec
cmp byte [0x18003d949], 0
jne 0x1800137ec
cmp byte [0x18003d94a], 0
jne 0x1800137ec
cmp byte [0x18003d94b], 0
jne 0x1800137ec
cmp byte [0x18003d94c], 0
jne 0x1800137ec
mov byte [0x18003d912], 0
jmp 0x1800137f9
cmp byte [0x18003d912], 0
jne 0x180013a73
xor ebx, ebx
nop dword [rax + rax]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180013819
mov dword [rdi], ebx
mov dword [0x18003d1c4], 0xffffffff
inc ebx
cmp ebx, 0xff
jl 0x180013800
jmp 0x180013a73
movaps xmm10, xmm9
mulss xmm10, xmm11
addss xmm10, xmm7
movss dword [rsp + 0x70], xmm6
movss dword [rsp + 0x74], xmm10
movzx edx, byte [rdi]
lea rcx, [rbp - 0x60]
call fcn.180011fa0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x18001385a
mov rax, qword [rax]
mov rcx, rax
call fcn.18000a350
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movaps xmm1, xmm6
unpcklps xmm1, xmm10
movq rdx, xmm1
mov rcx, rax
call fcn.18000b5e0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0xf
jbe 0x1800138c6
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800138c1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800138c1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18002c8a4
cmp byte [0x18003d14d], 0
jne 0x1800139ba
movsd xmm6, qword [rsp + 0x70]
movzx eax, byte [0x18003dd86]
test al, al
jne 0x18001390d
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movq rdx, xmm6
lea rcx, [0x1800309d0]
call fcn.18000b5e0
movzx eax, byte [0x18003dd86]
cmp al, 1
jne 0x18001393a
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movq rdx, xmm6
lea rcx, [0x1800309e8]
call fcn.18000b5e0
movzx eax, byte [0x18003dd86]
cmp al, 2
jne 0x180013967
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movq rdx, xmm6
lea rcx, [0x180030a00]
call fcn.18000b5e0
movzx eax, byte [0x18003dd86]
cmp al, 3
jne 0x180013994
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movq rdx, xmm6
lea rcx, [0x180030a10]
call fcn.18000b5e0
movzx eax, byte [0x18003dd86]
cmp al, 4
jne 0x1800139ba
movaps xmm0, xmmword [0x180037810]
movaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
movq rdx, xmm6
lea rcx, [0x180030a28]
call fcn.18000b5e0
test bl, bl
je 0x180013a2e
movsxd rdx, dword [0x18003dc58]
cmp byte [0x18003d948], 0
je 0x180013a14
lea rax, [0x18003db50]
cmp byte [rdx + rax], 0
jne 0x180013a73
mov byte [rdx + rax], 1
mov byte [0x18003d912], 1
mov byte [0x18003d14d], 0
mov dword [0x18003d1c4], edx
xor ebx, ebx
nop dword [rax]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
inc ebx
cmp ebx, 0xff
jl 0x180013a00
jmp 0x180013a73
cmp rdx, 0x100
jae 0x180013b0d
lea rax, [0x18003db50]
mov byte [rdx + rax], 0
jmp 0x180013a73
movsxd rcx, dword [0x18003dc58]
cmp byte [0x18003d948], 0
je 0x180013a5b
lea rax, [0x18003db50]
cmp byte [rcx + rax], 0
jne 0x180013a73
mov byte [rcx + rax], 1
mov dword [0x18003d1c4], 0xffffffff
jmp 0x180013a73
cmp rcx, 0x100
jae 0x180013b0d
lea rax, [0x18003db50]
mov byte [rcx + rax], 0
mov byte [0x18003d94e], 0
movss dword [0x1800406d0], xmm8
movss dword [0x1800406d4], xmm7
movss dword [0x180040638], xmm12
movss dword [0x18004063c], xmm9
movss xmm0, dword [0x180040630]
ucomiss xmm0, xmm13
jp 0x180013abe
jne 0x180013abe
movss dword [0x180040630], xmm8
movss dword [0x180040634], xmm7
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.18002c840
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop rdi
pop rsi
pop rbp
ret
call fcn.18002cb58
int3