Function at 0x180061920
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp - 0x40], rax
mov rax, qword [0x1801bdc70]
cmp byte [rax + 0x140], 0
je 0x180061fd7
mov rcx, qword [0x1801b43a8]
add rcx, qword [0x1801bd7a8]
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r12
movaps xmmword [r11 - 0x68], xmm10
movaps xmmword [r11 - 0xa8], xmm14
movaps xmmword [r11 - 0xb8], xmm15
call rcx
mov rdx, qword [0x1801b43a8]
mov r12, rax
add rdx, qword [0x1801bd7a8]
xor eax, eax
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], eax
call rdx
cmp dword [rax + 0x15c], 0
je 0x1800619d8
mov ecx, dword [rax + 0x5c]
and ecx, 0xc000
cmp ecx, 0x8000
jne 0x1800619d8
mov r9, qword [0x1801b43b0]
lea r8, [rsp + 0x50]
add r9, qword [0x1801bd7a8]
mov rdx, rax
xor ecx, ecx
call r9
jmp 0x1800619fc
mov rcx, qword [0x1801bd7a8]
mov rax, qword [0x1801b43b8]
mov rax, qword [rax + rcx]
movsd xmm0, qword [rax + 0x20]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rax + 0x28]
mov dword [rsp + 0x58], eax
movss xmm0, dword [0x1800fe35c]
xor eax, eax
movss xmm15, dword [0x1800fe2d0]
xor edi, edi
movss xmm10, dword [0x1800fe32c]
xorps xmm14, xmm14
mov qword [rsp + 0x198], rsi
mov qword [rsp + 0x178], r14
mov qword [rsp + 0x170], r15
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x130], xmm9
movaps xmmword [rsp + 0x110], xmm11
movaps xmmword [rsp + 0x100], xmm12
movaps xmmword [rsp + 0xf0], xmm13
movss dword [rsp + 0x20], xmm0
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], eax
nop dword [rax]
nop word [rax + rax]
mov r8, qword [0x1801bd7a8]
mov edx, edi
add r8, qword [0x1801b43c0]
xor ecx, ecx
call r8
mov rbx, rax
test rax, rax
je 0x180061eba
mov rcx, qword [0x1801bd7a8]
cmp rax, rcx
jbe 0x180061eba
cmp byte [rax + 0x146], 1
jne 0x180061eba
test byte [rax + 0x23c], 1
je 0x180061eba
test dword [rax + 0x198], 0x40000
jne 0x180061eba
movsx eax, byte [r12]
cmp eax, edi
je 0x180061eba
add rcx, qword [0x1801b43a8]
call rcx
mov ecx, edi
add rax, 0x174da8
imul rdx, rcx, 0x70
add rax, rdx
je 0x180061eba
mov rcx, qword [0x1801b43a8]
add rcx, qword [0x1801bd7a8]
call rcx
cmp byte [rbx + 0x146], 1
movsx r8d, byte [rax]
jne 0x180061b3c
movsx esi, byte [rbx + 0x148]
jmp 0x180061b43
movzx esi, word [rbx + 0x13e]
mov rdx, qword [0x1801bd7a8]
mov r14d, r8d
add rdx, qword [0x1801b43a8]
call rdx
imul ecx, r14d, 0x740
mov r15d, dword [rax + rcx + 0x161d34]
mov rcx, qword [0x1801b43a8]
add rcx, qword [0x1801bd7a8]
call rcx
imul ecx, esi, 0x740
mov ecx, dword [rax + rcx + 0x161d34]
test r15d, r15d
je 0x180061b95
test ecx, ecx
je 0x180061b95
cmp r15d, ecx
jne 0x180061b9e
jmp 0x180061eba
cmp r14d, esi
je 0x180061eba
mov r8, qword [0x1801bd7a8]
lea r9, [rsp + 0x60]
mov r10, qword [0x1801b43c8]
xor eax, eax
mov qword [rsp + 0x60], rax
add r10, r8
mov dword [rsp + 0x68], eax
mov rdx, rbx
mov r8d, dword [r8 + 0x74ff01c]
xor ecx, ecx
call r10
test rax, rax
je 0x180061eba
movss xmm6, dword [rsp + 0x64]
subss xmm6, dword [rsp + 0x54]
movss xmm7, dword [rsp + 0x60]
movss xmm9, dword [rsp + 0x68]
subss xmm7, dword [rsp + 0x50]
subss xmm9, dword [rsp + 0x58]
ucomiss xmm6, xmm14
jp 0x180061c2b
jne 0x180061c2b
ucomiss xmm7, xmm14
jp 0x180061c2b
jne 0x180061c2b
comiss xmm9, xmm14
movaps xmm8, xmm14
jbe 0x180061c21
movss xmm0, dword [0x1800fe324]
jmp 0x180061c93
movss xmm0, dword [0x1800fe2e4]
jmp 0x180061c93
movaps xmm1, xmm7
movaps xmm0, xmm6
call fcn.1800bd4cc
movaps xmm8, xmm0
mulss xmm8, xmm15
comiss xmm14, xmm8
jbe 0x180061c4a
addss xmm8, xmm10
xorps xmm9, xmmword [0x1800fe7a0]
xorps xmm0, xmm0
mulss xmm6, xmm6
mulss xmm7, xmm7
addss xmm6, xmm7
ucomiss xmm0, xmm6
ja 0x180061c6f
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x180061c77
movaps xmm0, xmm6
call fcn.1800be988
movaps xmm1, xmm0
movaps xmm0, xmm9
call fcn.1800bd4cc
mulss xmm0, xmm15
comiss xmm14, xmm0
jbe 0x180061c93
addss xmm0, xmm10
lea rdx, [rbp - 0x80]
movss dword [rbp - 0x80], xmm0
lea rcx, [rbp - 0x60]
movss dword [rbp - 0x7c], xmm8
mov dword [rbp - 0x78], 0
call fcn.18008d320
movss xmm1, dword [r12 + 0x130]
lea rdx, [rsp + 0x30]
movss xmm0, dword [r12 + 0x12c]
lea rcx, [rbp - 0x70]
movss xmm2, dword [r12 + 0x134]
unpcklps xmm0, xmm1
movsd qword [rsp + 0x30], xmm0
movss dword [rsp + 0x38], xmm2
call fcn.18008d320
movss xmm6, dword [0x1800fe158]
movss xmm13, dword [rbp - 0x70]
movss xmm12, dword [rbp - 0x6c]
mulss xmm13, xmm6
mulss xmm12, xmm6
movaps xmm0, xmm13
call fcn.1800bdb40
movsd xmm1, qword [rbp - 0x60]
lea rdx, [rsp + 0x40]
mov eax, dword [rbp - 0x58]
lea rcx, [rbp - 0x50]
movsd qword [rsp + 0x40], xmm1
movaps xmm11, xmm0
mov dword [rsp + 0x48], eax
call fcn.18008d320
movss xmm8, dword [rbp - 0x50]
movss xmm7, dword [rbp - 0x4c]
mulss xmm8, xmm6
mulss xmm7, xmm6
movaps xmm0, xmm8
call fcn.1800bdb40
movaps xmm6, xmm0
movaps xmm0, xmm7
call fcn.1800bdb40
movaps xmm9, xmm0
movaps xmm0, xmm7
mulss xmm9, xmm6
call fcn.1800be290
movaps xmm10, xmm0
movaps xmm0, xmm8
mulss xmm10, xmm6
call fcn.1800be290
movaps xmm7, xmm0
movaps xmm0, xmm12
xorps xmm7, xmmword [0x1800fe7a0]
call fcn.1800be290
movaps xmm6, xmm0
movaps xmm0, xmm12
mulss xmm6, xmm11
mulss xmm6, xmm10
call fcn.1800bdb40
mulss xmm0, xmm11
mulss xmm0, xmm9
addss xmm6, xmm0
movaps xmm0, xmm13
call fcn.1800be290
mulss xmm0, xmm7
mulss xmm10, xmm10
subss xmm6, xmm0
mulss xmm9, xmm9
mulss xmm7, xmm7
addss xmm10, xmm9
addss xmm10, xmm7
divss xmm6, xmm10
movaps xmm0, xmm6
call fcn.1800bd0b4
movss xmm9, dword [rsp + 0x20]
mulss xmm0, xmm15
comiss xmm9, xmm0
jb 0x180061eb1
movss xmm8, dword [rsp + 0x50]
movss xmm7, dword [rsp + 0x54]
subss xmm8, dword [rsp + 0x60]
subss xmm7, dword [rsp + 0x64]
movss xmm6, dword [rsp + 0x58]
subss xmm6, dword [rsp + 0x68]
movss dword [rsp + 0x20], xmm0
movaps xmm0, xmm8
mulss xmm0, xmm8
movaps xmm2, xmm7
mulss xmm2, xmm7
movaps xmm1, xmm6
mulss xmm1, xmm6
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x180061e62
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x180061e6a
movaps xmm0, xmm2
call fcn.1800be988
divss xmm6, xmm0
movaps xmm0, xmm6
call fcn.1800bd2e0
divss xmm7, xmm8
movaps xmm6, xmm0
movaps xmm0, xmm7
mulss xmm6, xmm15
call fcn.1800bd8c4
comiss xmm8, xmm14
mulss xmm0, xmm15
jb 0x180061e9e
addss xmm0, dword [0x1800fe310]
movaps xmm1, xmm6
movss dword [rsp + 0x78], xmm14
unpcklps xmm1, xmm0
movsd qword [rsp + 0x70], xmm1
movss xmm10, dword [0x1800fe32c]
inc edi
cmp edi, 0x800
jl 0x180061a90
movaps xmm15, xmmword [rsp + 0xd0]
mov ecx, 1
movaps xmm14, xmmword [rsp + 0xe0]
movaps xmm13, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm6, xmmword [rsp + 0x160]
mov r15, qword [rsp + 0x170]
mov r14, qword [rsp + 0x178]
mov rdi, qword [rsp + 0x1a0]
mov rsi, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x190]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180061fcf
mov rax, qword [0x1801bdc70]
cmp byte [rax + 0x1c0], 0
je 0x180061fb6
mov rcx, qword [0x1801b43d0]
add rcx, qword [0x1801bd7a8]
call rcx
mov rcx, qword [0x1801bd7a8]
and eax, 0x7f
shl rax, 6
mov rdx, qword [rcx + 0x2ec84f0]
cvttss2si ecx, dword [rsp + 0x70]
mov dword [rax + rdx + 0x4b84], ecx
cvttss2si ecx, dword [rsp + 0x74]
mov dword [rax + rdx + 0x4b88], ecx
cvttss2si ecx, dword [rsp + 0x78]
mov dword [rax + rdx + 0x4b8c], ecx
jmp 0x180061fcf
mov r8, qword [0x1801bd7a8]
lea rdx, [rsp + 0x70]
add r8, qword [0x1801b43d8]
mov rcx, r12
call r8
mov r12, qword [rsp + 0x1a8]
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.1800921e0
add rsp, 0x180
pop rbp
ret