Function at 0x18001a0e0
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 - 0x138]
sub rsp, 0x1f8
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
mov rax, qword [0x18005a080]
xor rax, rsp
mov qword [rbp + 0x68], rax
mov r13, r9
mov qword [rsp + 0x38], r9
mov rdi, r8
mov qword [rsp + 0x78], r8
mov r12, rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rdx
mov qword [rbp + 0x58], rcx
mov rsi, qword [rbp + 0x160]
mov qword [rsp + 0x60], rsi
mov r15, qword [rbp + 0x168]
mov qword [rbp + 0x60], r15
movss xmm0, dword [rcx + 0x28]
movss xmm13, dword [0x180051730]
addss xmm0, xmm13
movss dword [rcx + 0x28], xmm0
movss xmm1, dword [rcx + 0x2c]
addss xmm1, dword [0x1800517d4]
movss dword [rcx + 0x2c], xmm1
mov rdx, rcx
lea rcx, [rbp - 0x80]
call fcn.180016930
mov rcx, rax
call fcn.1800170f0
test al, al
je 0x18001a1d2
cmp dword [0x18005fa10], 0xffffffff
jne 0x18001a1d2
mov rdx, r12
lea rcx, [0x18005fd00]
call fcn.1800177b0
movss xmm6, dword [rsp + 0x4c]
movaps xmm12, xmm6
movss xmm10, dword [0x1800517bc]
mulss xmm12, xmm10
cvttss2si r14d, xmm6
mov dword [rsp + 0x70], r14d
movups xmm0, xmmword [0x18005f728]
movdqa xmmword [rsp + 0x50], xmm0
movss dword [rsp + 0x28], xmm12
movss xmm1, dword [r12 + 0x30]
movss dword [rsp + 0x20], xmm1
movss xmm3, dword [r12 + 0x2c]
movss xmm2, dword [r12 + 0x28]
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18005f558]
call fcn.180039c70
mov eax, dword [rdi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm6, xmm0
jb 0x18001a248
mov dword [r15], eax
jmp 0x18001a251
cmp dword [r15], 0
jne 0x18001a251
mov dword [r15], r14d
xor ebx, ebx
cmp dword [rdi + 8], ebx
jne 0x18001a25a
mov dword [rsi], ebx
mov rdx, r12
lea rcx, [rbp - 0x80]
call fcn.180016930
mov rcx, rax
call fcn.1800170f0
test al, al
je 0x18001a361
mov eax, dword [0x1800602b8]
test eax, eax
jg 0x18001a2e2
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001a2dc
mov dword [0x1800602b8], 0x14
mov eax, dword [r13]
test eax, eax
jle 0x18001a2aa
dec eax
mov dword [r13], eax
jmp 0x18001a2b7
mov eax, dword [rsi]
test eax, eax
jle 0x18001a2b7
dec eax
mov dword [rsi], eax
dec dword [r15]
mov ecx, dword [rsi]
mov eax, dword [r13]
inc eax
cmp eax, ecx
jne 0x18001a361
test ecx, ecx
je 0x18001a361
lea eax, [rcx - 1]
mov dword [rsi], eax
dec dword [r15]
jmp 0x18001a361
mov eax, dword [0x1800602b8]
dec eax
mov dword [0x1800602b8], eax
test eax, eax
jg 0x18001a359
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001a353
mov dword [0x1800602b8], 0x14
mov ecx, dword [r13]
lea eax, [r14 - 1]
mov edx, dword [rdi + 8]
cmp ecx, eax
jge 0x18001a327
lea eax, [rdx - 1]
cmp ecx, eax
jge 0x18001a327
lea eax, [rcx + 1]
mov dword [r13], eax
jmp 0x18001a361
mov r8d, dword [r15]
cmp r8d, edx
jge 0x18001a342
lea eax, [rcx + 1]
cmp eax, r8d
jne 0x18001a342
inc dword [rsi]
inc dword [r15]
inc dword [r13]
jmp 0x18001a361
inc ecx
cmp ecx, r8d
je 0x18001a361
cmp ecx, edx
jge 0x18001a361
mov dword [r13], ecx
jmp 0x18001a361
mov eax, dword [0x1800602b8]
dec eax
mov dword [0x1800602b8], eax
mov rdi, rbx
mov qword [rsp + 0x48], rbx
mov esi, ebx
mov dword [rsp + 0x34], ebx
mov r14d, ebx
mov r8, qword [rsp + 0x60]
mov r8d, dword [r8]
mov dword [rsp + 0x30], r8d
mov r9, qword [rsp + 0x78]
mov edx, dword [r9 + 8]
mov ecx, edx
cmp dword [r15], edx
cmovle ecx, dword [r15]
lea r11, [0x18000b160]
cmp r8d, ecx
jge 0x18001a531
mov r10, 0xffffffffffffffff
mov r12, rbx
nop dword [rax + rax]
movsxd rcx, r8d
movsxd rax, edx
cmp rcx, rax
jae 0x18001a3ca
imul rax, rcx, 0xf8
add rax, qword [r9]
mov qword [rsp + 0x48], rax
cmp esi, r14d
jl 0x18001a4ca
lea r14d, [rsi + 1]
mov dword [rsp + 0x34], r14d
movsxd r15, r14d
mov r13, rbx
test r14d, r14d
je 0x18001a485
mov qword [rsp + 0x68], r15
mov eax, 0xf8
mul r15
cmovo rax, r10
add rax, 8
cmovb rax, r10
mov rcx, rax
call fcn.18004c8d8
mov qword [rsp + 0x50], rax
mov qword [rax], r15
lea r13, [rax + 8]
lea r9, [0x18000b160]
mov qword [rsp + 0x20], r9
lea r9, [0x18000aec0]
mov r8, r15
mov edx, 0xf8
mov rcx, r13
call fcn.18004c8e0
nop
movsxd rdi, esi
cmp r15, rdi
jae 0x18001a449
mov rdi, r15
jmp 0x18001a44d
test esi, esi
je 0x18001a47e
mov rbx, r13
mov r14, r12
sub r14, r13
nop word [rax + rax]
lea rdx, [r14 + rbx]
mov rcx, rbx
call fcn.18000b1d0
add rbx, 0xf8
sub rdi, 1
jne 0x18001a460
mov r14d, dword [rsp + 0x34]
lea r11, [0x18000b160]
test r12, r12
je 0x18001a4b7
mov r9, r11
mov r8, qword [r12 - 8]
mov edx, 0xf8
mov rcx, r12
call fcn.18004c498
imul rdx, qword [r12 - 8], 0xf8
add rdx, 8
lea rcx, [r12 - 8]
call fcn.18004c490
nop
mov r12, r13
movsxd rax, esi
cmp r15, rax
cmovb esi, r14d
xor ebx, ebx
mov r15, qword [rbp + 0x60]
movsxd rax, esi
imul rcx, rax, 0xf8
add rcx, r12
mov rdx, qword [rsp + 0x48]
call fcn.18000b1d0
inc esi
mov r8d, dword [rsp + 0x30]
inc r8d
mov dword [rsp + 0x30], r8d
mov r9, qword [rsp + 0x78]
mov edx, dword [r9 + 8]
mov eax, edx
cmp dword [r15], edx
cmovle eax, dword [r15]
cmp r8d, eax
mov r10, 0xffffffffffffffff
lea r11, [0x18000b160]
jl 0x18001a3b0
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x34], esi
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov r13, qword [rsp + 0x38]
cvttss2si ecx, xmm6
mov eax, ecx
cmp esi, ecx
cmovle eax, esi
test eax, eax
jle 0x18001a739
movsxd rax, esi
mov qword [rsp + 0x68], rax
mov eax, ecx
cmp esi, ecx
cmovle eax, esi
mov dword [rsp + 0x30], eax
mov rdx, rbx
mov qword [rsp + 0x38], rbx
mov r8, rdi
mov qword [rsp + 0x40], rdi
movss xmm8, dword [0x1800517a8]
movss xmm9, dword [0x180051780]
movss xmm11, dword [0x180051768]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
nop word [rax + rax]
movd xmm6, ebx
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm10
addss xmm6, dword [r12 + 0x2c]
movss xmm7, dword [r12 + 0x28]
cmp dword [0x18005fa10], 0xffffffff
jne 0x18001a607
movss xmm0, dword [r12 + 0x30]
subss xmm0, xmm10
unpcklps xmm0, xmm10
movq rdx, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movq rcx, xmm1
call fcn.180017260
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
test al, al
je 0x18001a607
cmp dword [0x18005fb20], 0xffffffff
jne 0x18001a607
mov ecx, dword [rdi]
add ecx, ebx
mov dword [r13], ecx
mov ecx, dword [rdi]
add ecx, ebx
cmp ecx, dword [r13]
jne 0x18001a69a
movups xmm0, xmmword [0x18005f5f8]
movdqa xmmword [rsp + 0x50], xmm0
movss dword [rsp + 0x28], xmm10
movss xmm0, dword [r12 + 0x30]
movss dword [rsp + 0x20], xmm0
movaps xmm3, xmm6
movaps xmm2, xmm7
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18005f558]
call fcn.180039c70
movaps xmm0, xmmword [0x180051920]
movaps xmmword [rsp + 0x50], xmm0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm13
movss xmm0, dword [r12 + 0x30]
unpcklps xmm0, xmm10
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movq rdx, xmm1
call fcn.18003bbb0
lea rax, [0x18005f578]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
jmp 0x18001a6a8
cmp rdx, rsi
cmovb r15, r8
lea rax, [r15 + 0xe8]
movss xmm1, dword [0x18005f794]
divss xmm1, xmm8
movaps xmm2, xmm1
addss xmm6, xmm13
addss xmm7, xmm9
cmp rdx, rsi
cmovb r14, r8
mov rcx, r14
cmp qword [r14 + 0x18], 0xf
jbe 0x18001a6d6
mov rcx, qword [r14]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x50], xmm0
movss dword [rsp + 0x20], xmm11
unpcklps xmm1, xmm2
movq r9, xmm1
lea r8, [rsp + 0x50]
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movq rdx, xmm1
call fcn.180017ae0
inc ebx
mov rdx, qword [rsp + 0x38]
inc rdx
mov qword [rsp + 0x38], rdx
mov r8, qword [rsp + 0x40]
add r8, 0xf8
mov qword [rsp + 0x40], r8
cmp ebx, dword [rsp + 0x30]
jl 0x18001a5a0
mov esi, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x48]
mov r15, qword [rbp + 0x60]
mov r14, qword [rsp + 0x78]
mov eax, dword [r14 + 8]
cmp dword [r13], eax
jl 0x18001a752
dec eax
mov dword [r13], eax
mov eax, dword [r14 + 8]
movss xmm1, dword [r12 + 0x34]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov rsi, qword [rsp + 0x60]
comiss xmm1, xmm0
jbe 0x18001a787
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x18001a787
subss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rsi], eax
mov eax, dword [r14 + 8]
mov dword [r15], eax
movd xmm0, dword [r14 + 8]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [r12 + 0x34]
jbe 0x18001a9b5
movd xmm6, dword [rsi]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm10
movups xmm0, xmmword [0x18005f638]
movdqa xmmword [rsp + 0x50], xmm0
movss xmm2, dword [r12 + 0x30]
addss xmm2, dword [r12 + 0x28]
movss xmm9, dword [0x1800517b4]
subss xmm2, xmm9
movss dword [rsp + 0x28], xmm12
movss dword [rsp + 0x20], xmm9
movss xmm3, dword [r12 + 0x2c]
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18005f558]
call fcn.180039c70
mov ecx, dword [r14 + 8]
mov eax, ecx
mov r13d, dword [rsp + 0x70]
sub eax, r13d
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm10
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
movaps xmm1, xmm12
divss xmm1, xmm0
mulss xmm1, xmm12
movaps xmm7, xmm10
maxss xmm7, xmm1
movss xmm2, dword [r12 + 0x2c]
divss xmm6, xmm8
movaps xmm0, xmm12
subss xmm0, xmm7
mulss xmm6, xmm0
addss xmm6, xmm2
addss xmm2, xmm12
movaps xmm0, xmm6
addss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x18001a868
movaps xmm6, xmm2
subss xmm6, xmm7
movups xmm0, xmmword [0x18005f568]
movdqa xmmword [rsp + 0x50], xmm0
movss xmm2, dword [r12 + 0x30]
addss xmm2, dword [r12 + 0x28]
subss xmm2, xmm9
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm9
movaps xmm3, xmm6
lea rdx, [rsp + 0x50]
mov rcx, qword [0x18005f558]
call fcn.180039c70
movss xmm1, dword [r12 + 0x30]
addss xmm1, dword [r12 + 0x28]
subss xmm1, dword [0x1800517b0]
movaps xmm0, xmmword [0x180051920]
movaps xmmword [rsp + 0x50], xmm0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm13
movaps xmm0, xmm9
unpcklps xmm0, xmm7
movq r8, xmm0
unpcklps xmm1, xmm6
movq rdx, xmm1
call fcn.18003bbb0
movss xmm1, dword [r12 + 0x30]
addss xmm1, dword [r12 + 0x28]
subss xmm1, xmm9
movaps xmm0, xmm9
unpcklps xmm0, xmm7
movq rdx, xmm0
unpcklps xmm1, xmm6
movq rcx, xmm1
call fcn.180017260
test al, al
je 0x18001a93d
cmp dword [0x18005fb20], 0xffffffff
jne 0x18001a93d
cmp dword [0x18005fa10], 0xffffffff
jne 0x18001a93d
mov ecx, dword [r12]
call fcn.180017640
mov eax, dword [r12]
cmp dword [0x18005fb20], eax
jne 0x18001a9b5
mov rbx, qword [0x18005f9b8]
lea rcx, [rbp + 0x60]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rbp + 0x60]
mov rcx, rbx
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rax, qword [rbp + 0x60]
shr rax, 0x20
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, dword [r12 + 0x2c]
divss xmm1, xmm12
mulss xmm1, xmm8
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x18001a997
movaps xmm0, xmm1
minss xmm0, xmm8
divss xmm0, xmm10
cvttss2si eax, xmm0
mov dword [rsi], eax
lea ecx, [rax + r13]
mov dword [r15], ecx
mov eax, dword [r14 + 8]
cmp ecx, eax
cmovle eax, ecx
mov dword [r15], eax
test rdi, rdi
je 0x18001a9e8
lea r9, [0x18000b160]
mov r8, qword [rdi - 8]
mov edx, 0xf8
mov rcx, rdi
call fcn.18004c498
imul rdx, qword [rdi - 8], 0xf8
add rdx, 8
lea rcx, [rdi - 8]
call fcn.18004c490
nop
mov rcx, r12
call fcn.180016870
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.18004c400
lea r11, [rsp + 0x1f8]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret