Function at 0x180005ab0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push rsi
push r12
lea rbp, [r11 - 0x148]
sub rsp, 0x230
mov rax, qword [0x1801473c0]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov r12, qword [0x18016dc88]
mov rsi, qword [0x18016dc80]
mov rax, r12
sub rax, rsi
test rax, 0xfffffffffffffff8
je 0x1800061c8
mov r9, qword [0x18016db48]
mov qword [r11 - 0x20], r14
mov eax, dword [r9 + 4]
lea ecx, [r9 + 4]
xor ecx, dword [r9 + 8]
mov r8d, dword [r9 + 8]
xor r8d, r9d
lea r14d, [rcx + 2]
imul r14d, ecx
lea ecx, [r8 + 2]
imul ecx, r8d
xor r14, rax
mov eax, dword [r9]
shl r14, 0x20
xor rcx, rax
add r14, rcx
movabs rcx, 0x7ffffffefffe
lea rax, [r14 - 1]
cmp rax, rcx
ja 0x1800061c0
test r14, r14
je 0x1800061c0
movsd xmm0, qword [r14 + 0x24]
mov qword [r11 + 8], rbx
mov ebx, dword [r14 + 0x2c]
movaps xmmword [r11 - 0x58], xmm8
movaps xmm8, xmm0
movaps xmmword [r11 - 0x68], xmm9
xorps xmm9, xmm9
movaps xmmword [r11 - 0x78], xmm10
movaps xmmword [r11 - 0x88], xmm11
movss xmm11, dword [0x1801331bc]
movaps xmmword [r11 - 0x38], xmm6
movsd qword [rbp - 0x70], xmm0
movss xmm10, dword [rbp - 0x70]
ucomiss xmm10, xmm9
movaps xmmword [r11 - 0x48], xmm7
movaps xmmword [r11 - 0xc8], xmm15
shufps xmm8, xmm8, 0x55
jp 0x180005bf2
jne 0x180005bf2
ucomiss xmm8, xmm9
jp 0x180005bf2
jne 0x180005bf2
movd xmm0, ebx
comiss xmm0, xmm9
jbe 0x180005bdc
movss xmm15, dword [0x180133238]
xorps xmm8, xmm8
movss dword [rsp + 0x60], xmm8
jmp 0x180005c64
movss xmm15, dword [0x180133174]
xorps xmm8, xmm8
movss dword [rsp + 0x60], xmm8
jmp 0x180005c64
movaps xmm1, xmm10
movaps xmm0, xmm8
call fcn.1800ce928
xorps xmm2, xmm2
movaps xmm1, xmm11
cvtss2sd xmm2, xmm0
mulsd xmm2, qword [0x1801330e8]
cvtpd2ps xmm0, xmm2
addss xmm0, xmm11
call fcn.1800cf51c
movss dword [rsp + 0x60], xmm0
movaps xmm1, xmm8
movd xmm6, ebx
movaps xmm0, xmm10
xorps xmm6, xmmword [0x1801334a0]
call fcn.1800ce1d4
movaps xmm1, xmm0
movaps xmm0, xmm6
call fcn.1800ce928
movss xmm8, dword [rsp + 0x60]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, qword [0x1801330e8]
cvtpd2ps xmm15, xmm1
cmp rsi, r12
je 0x18000617b
movsd xmm10, qword [0x180133098]
mov qword [rsp + 0x260], r13
xor r13d, r13d
mov qword [rsp + 0x220], r15
movaps xmmword [rsp + 0x1b0], xmm12
movss xmm12, dword [0x18013319c]
movaps xmmword [rsp + 0x1a0], xmm13
movss xmm13, dword [0x180133030]
movaps xmmword [rsp + 0x190], xmm14
movss xmm14, dword [0x1801331f4]
mov qword [rsp + 0x258], rdi
nop word [rax + rax]
mov r15, qword [rsi]
mov rax, qword [0x18016d5b8]
test byte [rax + r15], 1
je 0x1800060ff
mov ecx, dword [0x18016cfe0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180005d2b
mov ecx, dword [0x18016cff0]
test ecx, ecx
je 0x180005d24
sub ecx, 1
je 0x180005d1d
sub ecx, 1
je 0x180005d16
cmp ecx, 1
jne 0x180005d57
lea edi, [rcx + 0xe]
jmp 0x180005d5c
mov edi, 0xb
jmp 0x180005d5c
mov edi, 0x17
jmp 0x180005d5c
mov edi, 0x13
jmp 0x180005d5c
mov ecx, dword [0x18016cfd0]
test ecx, ecx
je 0x180005d57
sub ecx, 1
je 0x180005d50
sub ecx, 1
je 0x180005d49
cmp ecx, 1
jne 0x180005d57
lea edi, [rcx + 5]
jmp 0x180005d5c
mov edi, 4
jmp 0x180005d5c
mov edi, 5
jmp 0x180005d5c
mov edi, 7
mov rax, qword [0x18016d5b0]
lea r8, [rbp - 0x28]
mov edx, edi
movsx ecx, word [rax + r15]
call fcn.18001dd50
test al, al
je 0x1800060ff
mov eax, dword [0x18016cfe8]
movaps xmm6, xmm9
test eax, eax
jne 0x180005e31
xor eax, eax
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x28]
mov qword [rsp + 0x68], rax
movaps xmm6, xmm14
call fcn.18006ed50
test al, al
je 0x180005fe4
movss xmm1, dword [rsp + 0x6c]
mov eax, dword [r14 + 0xc]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movaps xmm1, xmm10
call fcn.1800cfb70
movss xmm1, dword [rsp + 0x68]
movaps xmm6, xmm0
mov eax, dword [r14 + 8]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movaps xmm1, xmm10
call fcn.1800cfb70
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x180005e1d
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
jmp 0x180005fe4
movaps xmm0, xmm6
call fcn.1800d27d8
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
jmp 0x180005fe4
cmp eax, 1
jne 0x180005fe4
mov r9d, dword [r14 + 0x80]
lea rcx, [r14 + 0x18]
movss xmm1, dword [rbp - 0x28]
lea rdx, [r14 + 0x1c]
movss xmm2, dword [rbp - 0x24]
lea r8, [r14 + 0x20]
mov r10d, r9d
mov eax, r9d
xor eax, ecx
xor r10d, ecx
add r10d, 2
imul r10d, eax
mov eax, r9d
xor eax, edx
xor r10d, dword [rcx]
mov ecx, r9d
xor ecx, edx
add ecx, 2
imul ecx, eax
mov eax, r8d
xor eax, r9d
movd xmm0, r10d
subss xmm1, xmm0
add eax, 2
xor r9d, r8d
imul eax, r9d
xor ecx, dword [rdx]
xor edx, edx
mov qword [rsp + 0x7c], rdx
movss dword [rbp - 0x60], xmm1
movss xmm1, dword [rbp - 0x20]
xor eax, dword [r8]
movd xmm0, ecx
lea rcx, [rbp - 0x60]
subss xmm2, xmm0
mov dword [rbp - 0x7c], edx
lea rdx, [rsp + 0x7c]
movd xmm0, eax
subss xmm1, xmm0
movss dword [rbp - 0x5c], xmm2
movss dword [rbp - 0x58], xmm1
call fcn.180093360
movss xmm0, dword [rsp + 0x7c]
movss xmm7, dword [rbp - 0x80]
subss xmm0, xmm15
subss xmm7, xmm8
movss xmm8, dword [rbp - 0x7c]
subss xmm8, xmm9
movd eax, xmm0
and eax, 0x7f800000
cmp eax, 0x7f800000
setne al
cmp al, 1
jne 0x180005f1a
movaps xmm1, xmm11
call fcn.1800a9604
movaps xmm6, xmm0
jmp 0x180005f1e
movaps xmm6, xmm9
movd eax, xmm7
and eax, 0x7f800000
cmp eax, 0x7f800000
setne al
cmp al, 1
jne 0x180005f44
movaps xmm1, xmm11
movaps xmm0, xmm7
call fcn.1800a9604
movaps xmm1, xmm0
jmp 0x180005f48
movaps xmm1, xmm9
movss xmm0, dword [0x180133234]
lea rax, [rbp - 0x18]
movss xmm2, dword [0x180133240]
lea rcx, [rsp + 0x70]
comiss xmm0, xmm6
mov dword [rsp + 0x74], 0x42aa0000
mov dword [rsp + 0x70], 0xc2aa0000
mov dword [rsp + 0x68], 0x43340000
mov dword [rsp + 0x78], 0xc3340000
movss dword [rbp - 0x18], xmm6
movss dword [rbp - 0x14], xmm1
cmovbe rcx, rax
movss dword [rbp - 0x10], xmm8
comiss xmm6, dword [0x180133170]
lea rax, [rsp + 0x74]
cmovbe rax, rcx
lea rcx, [rsp + 0x78]
comiss xmm2, xmm1
movss xmm0, dword [rax]
lea rax, [rbp - 0x14]
cmovbe rcx, rax
lea rax, [rsp + 0x68]
comiss xmm1, xmm12
cmovbe rax, rcx
movss xmm1, dword [rax]
movss dword [rbp - 0x14], xmm1
movss dword [rbp - 0x18], xmm0
call fcn.1800ce1d4
movaps xmm6, xmm12
minss xmm6, xmm0
comiss xmm6, dword [0x18014803c]
ja 0x1800060ff
cmp byte [0x18016cfd8], r13b
je 0x180006114
mov r10d, dword [r14 + 0x80]
lea rcx, [r14 + 0x18]
mov rax, qword [0x18016d5b0]
lea rdx, [r14 + 0x1c]
movsd xmm0, qword [rbp - 0x28]
lea r9, [r14 + 0x20]
mov dword [rsp + 0x50], r13d
mov r8d, r10d
xor r8d, edx
mov dword [rsp + 0x48], 0x280ec93
movsx ebx, word [rax + r15]
add r8d, 2
mov eax, r10d
mov dword [rsp + 0x40], r13d
xor eax, ecx
movsd qword [rbp - 0x70], xmm0
mov r11d, r10d
mov qword [rbp + 0x60], r13
xor r11d, ecx
xorps xmm0, xmm0
add r11d, 2
imul r11d, eax
mov eax, r10d
xor eax, edx
imul r8d, eax
mov eax, dword [rbp - 0x20]
mov dword [rbp - 0x68], eax
xor r11d, dword [rcx]
mov ecx, r9d
mov rax, qword [0x18016db40]
xor ecx, r10d
xor r8d, dword [rdx]
add ecx, 2
mov qword [rbp - 0x40], rax
lea rdx, [rbp]
mov rax, qword [0x18016d798]
xor r10d, r9d
mov qword [rbp - 0x38], rax
xor eax, eax
imul ecx, r10d
mov qword [rbp - 0x30], rax
mov rax, qword [0x18016d030]
mov dword [rbp - 0x4c], r8d
lea r8, [rbp - 0x50]
mov dword [rbp - 0x50], r11d
xor ecx, dword [r9]
lea r9, [rbp - 0x70]
mov dword [rbp - 0x48], ecx
movdqu xmmword [rbp + 0x68], xmm0
mov ecx, dword [rax + 0x2c0]
lea rax, [rbp + 0x60]
mov dword [rsp + 0x38], ecx
mov ecx, 2
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.18009c270
cmp dword [rbp + 0x2c], ebx
je 0x180006114
movss xmm0, dword [rbp]
comiss xmm0, xmm13
jae 0x180006114
add rsi, 8
cmp rsi, r12
je 0x180006148
movss xmm8, dword [rsp + 0x60]
jmp 0x180005cd0
movss xmm0, dword [rbp - 0x28]
movss xmm1, dword [rbp - 0x24]
movss dword [0x18016ce48], xmm0
movss xmm0, dword [rbp - 0x20]
movss dword [0x18016ce50], xmm0
movss dword [0x18016ce4c], xmm1
mov qword [0x18016ce38], r15
mov dword [0x18016ce30], edi
mov rdi, qword [rsp + 0x258]
movaps xmm13, xmmword [rsp + 0x1a0]
movaps xmm12, xmmword [rsp + 0x1b0]
movaps xmm14, xmmword [rsp + 0x190]
mov r13, qword [rsp + 0x260]
mov r15, qword [rsp + 0x220]
movaps xmm6, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x200]
movaps xmm15, xmmword [rsp + 0x180]
movaps xmm8, xmmword [rsp + 0x1f0]
mov rbx, qword [rsp + 0x250]
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm10, xmmword [rsp + 0x1d0]
movaps xmm11, xmmword [rsp + 0x1c0]
mov r14, qword [rsp + 0x228]
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.1800a1b10
add rsp, 0x230
pop r12
pop rsi
pop rbp
ret