Function at 0x180005ce8
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
lea rbp, [rax - 0x18]
sub rsp, 0x110
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm12
mov rax, qword [0x180053040]
xor rax, rsp
mov qword [rbp - 0x60], rax
xor r14d, r14d
cmp qword [0x180053ff0], r14
je 0x18000624f
mov eax, dword [0x1800530f0]
lea ecx, [r14 + 0x2e]
cmp eax, 1
lea ebx, [r14 + 0x30]
lea r9d, [r14 + 0x2f]
cmove ebx, r9d
lea r10d, [r14 + 6]
cmp eax, 2
cmove ebx, ecx
cmp eax, 3
lea ecx, [r14 + 0x14]
cmove ebx, ecx
cmp eax, 4
cmove ebx, r10d
cmp eax, 5
jne 0x180005e00
call fcn.180016a90
mov r8d, eax
mov eax, 0x38e38e39
mul r8d
shr edx, 1
lea ecx, [rdx + rdx*8]
sub r8d, ecx
je 0x180005dfd
sub r8d, 1
je 0x180005df8
sub r8d, 1
je 0x180005df1
sub r8d, 1
je 0x180005dea
sub r8d, 1
je 0x180005de3
sub r8d, 1
je 0x180005ddc
sub r8d, 1
je 0x180005dd5
sub r8d, 1
je 0x180005dce
cmp r8d, 1
jne 0x180005e00
lea ebx, [r14 + 0x16]
jmp 0x180005e00
mov ebx, 2
jmp 0x180005e00
mov ebx, 0x37
jmp 0x180005e00
mov ebx, 0x1a
jmp 0x180005e00
mov ebx, 0x12
jmp 0x180005e00
mov ebx, 0xf
jmp 0x180005e00
mov ebx, 0xd
jmp 0x180005e00
mov ebx, r10d
jmp 0x180005e00
mov ebx, r9d
mov rcx, qword [0x180053660]
test rcx, rcx
je 0x18000624f
call fcn.180013910
test al, al
je 0x18000624f
mov rdx, qword [0x180053660]
mov eax, dword [rdx + 0x8d8]
shr eax, 4
test al, 1
je 0x180005e3a
cmp byte [0x180053102], r14b
jne 0x180005e53
mov rcx, qword [0x180053ff0]
mov eax, dword [rcx + 0x598]
test eax, eax
je 0x180005e5f
cmp dword [rdx + 0x598], eax
jne 0x180005e5f
mov qword [0x180053660], r14
jmp 0x18000624f
call fcn.18001454c
mov rdi, rax
test rax, rax
je 0x18000624f
mov rcx, qword [0x180053ff0]
call fcn.18001454c
mov rsi, qword [rax + 0xb0]
test rsi, rsi
je 0x18000624f
mov rcx, rdi
call fcn.1800117b8
mov r8, qword [rax]
test r8, r8
jne 0x180005ea1
mov r8d, r14d
jmp 0x180005ea5
mov r8d, dword [r8 + 0x18]
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.180011464
cmp byte [0x1800530c2], r14b
je 0x18000624f
mov ecx, dword [0x18005310c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000624f
mov rax, qword [0x180053ff0]
lea rdx, [rbp - 0x70]
mov rcx, qword [rax + 0xb8]
mov rcx, qword [rcx + 0x48]
mov rcx, qword [rcx + 0x1a0]
call fcn.1800124b4
cmp byte [0x1800530c0], r14b
je 0x180005f5b
mov rax, qword [0x180053ff0]
lea rdx, [rsp + 0x74]
mov rcx, qword [rax + 0xb8]
mov rcx, qword [rcx + 0x48]
mov rcx, qword [rcx + 0x1a0]
call fcn.1800124b4
movss xmm0, dword [rsp + 0x48]
lea rcx, [rbp - 0x80]
movss xmm1, dword [rsp + 0x44]
mov r9d, ebx
mov rdx, qword [0x180053660]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsp + 0x40]
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
call fcn.18000599c
jmp 0x180005f85
mov rax, qword [0x180053660]
mov rdx, qword [rax + 0xb8]
lea eax, [rbx*8]
movsxd rcx, eax
mov rax, qword [rdx + 0x48]
lea rdx, [rbp - 0x80]
mov rcx, qword [rax + rcx + 0x20]
call fcn.1800124b4
movsd xmm0, qword [rax]
mov rbx, qword [0x180053ff0]
mov eax, dword [rax + 8]
mov dword [rsp + 0x48], eax
movsd qword [rsp + 0x40], xmm0
cmp qword [rbx + 0x6a0], r14
je 0x18000624f
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x80]
call fcn.1800058d8
movss xmm6, dword [0x18004e1e8]
movss xmm4, dword [0x18004e210]
movss xmm5, dword [0x18004e274]
movss xmm0, dword [rax]
comiss xmm0, xmm6
jbe 0x180005fe3
subss xmm0, xmm4
jmp 0x180005fec
comiss xmm5, xmm0
jbe 0x180005ff0
addss xmm0, xmm4
movss dword [rax], xmm0
movss xmm0, dword [rax + 4]
comiss xmm0, xmm6
jbe 0x180006000
subss xmm0, xmm4
jmp 0x180006009
comiss xmm5, xmm0
jbe 0x18000600e
addss xmm0, xmm4
movss dword [rax + 4], xmm0
movss xmm12, dword [0x18004e268]
lea rcx, [rsp + 0x64]
mov dword [rax + 8], r14d
xorps xmm10, xmm10
movsd xmm0, qword [rax]
lea rax, [rsp + 0x58]
movsd qword [rsp + 0x58], xmm0
movss xmm0, dword [rsp + 0x58]
comiss xmm12, xmm0
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x68], 0x42b20000
mov dword [rsp + 0x64], 0xc2b20000
mov dword [rsp + 0x70], 0x43340000
mov dword [rsp + 0x6c], 0xc3340000
movss dword [rsp + 0x48], xmm10
cmovbe rcx, rax
lea rax, [rsp + 0x68]
comiss xmm0, dword [0x18004e1b8]
movss xmm0, dword [rsp + 0x5c]
cmovbe rax, rcx
lea rcx, [rsp + 0x6c]
comiss xmm5, xmm0
movss xmm2, dword [rax]
lea rax, [rsp + 0x5c]
movss dword [rsp + 0x58], xmm2
cmovbe rcx, rax
lea rax, [rsp + 0x70]
comiss xmm0, xmm6
movaps xmm0, xmm2
cmovbe rax, rcx
ucomiss xmm2, xmm10
movss xmm1, dword [rax]
unpcklps xmm0, xmm1
movaps xmm7, xmm0
movsd qword [rsp + 0x40], xmm0
jp 0x1800060d1
jne 0x1800060d1
ucomiss xmm1, xmm10
jp 0x1800060d1
je 0x18000624f
mov rdx, qword [rbx + 0x6a0]
movaps xmm8, xmm2
movss xmm3, dword [0x180053104]
movaps xmm9, xmm2
comiss xmm10, xmm3
mov eax, dword [rdx + 0x44]
movsd xmm0, qword [rdx + 0x3c]
movsd qword [rsp + 0x74], xmm0
movaps xmm0, xmm2
jae 0x18000616c
movsd xmm0, qword [rdx + 0x3c]
movsd qword [rsp + 0x40], xmm0
subss xmm2, dword [rsp + 0x40]
subss xmm1, dword [rsp + 0x44]
mov dword [rsp + 0x48], eax
comiss xmm2, xmm6
jbe 0x180006125
subss xmm2, xmm4
jmp 0x18000612e
comiss xmm5, xmm2
jbe 0x18000612e
addss xmm2, xmm4
comiss xmm1, xmm6
jbe 0x180006139
subss xmm1, xmm4
jmp 0x180006142
comiss xmm5, xmm1
jbe 0x180006142
addss xmm1, xmm4
divss xmm2, xmm3
divss xmm1, xmm3
addss xmm2, dword [rsp + 0x74]
addss xmm1, dword [rsp + 0x78]
movaps xmm7, xmm2
movaps xmm3, xmm2
unpcklps xmm7, xmm1
movaps xmm0, xmm2
movaps xmm8, xmm2
movaps xmm9, xmm2
jmp 0x180006178
movss xmm1, dword [rsp + 0x44]
movss xmm3, dword [rsp + 0x40]
comiss xmm2, xmm6
jbe 0x180006186
movaps xmm3, xmm0
subss xmm3, xmm4
jmp 0x180006194
comiss xmm5, xmm8
jbe 0x18000619d
movaps xmm3, xmm9
addss xmm3, xmm4
movaps xmm7, xmm3
unpcklps xmm7, xmm1
movaps xmm7, xmm7
comiss xmm1, xmm6
jbe 0x1800061ac
addss xmm1, dword [0x18004e278]
jmp 0x1800061b5
comiss xmm5, xmm1
jbe 0x1800061be
addss xmm1, xmm4
movaps xmm7, xmm3
unpcklps xmm7, xmm1
movaps xmm7, xmm7
comiss xmm12, xmm3
lea rax, [rsp + 0x40]
mov dword [rsp + 0x54], 0x42b20000
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x50], 0xc2b20000
movsd qword [rsp + 0x40], xmm7
movss xmm0, dword [rsp + 0x44]
cmovbe rcx, rax
movss dword [rsp + 0x48], xmm10
comiss xmm3, dword [0x18004e1b8]
lea rax, [rsp + 0x54]
cmovbe rax, rcx
lea rcx, [rsp + 0x54]
comiss xmm5, xmm0
movss xmm2, dword [rax]
lea rax, [rsp + 0x44]
movss dword [rsp + 0x40], xmm2
cmovbe rcx, rax
mov dword [rsp + 0x50], 0x43340000
comiss xmm0, xmm6
lea rax, [rsp + 0x50]
mov dword [rsp + 0x54], 0xc3340000
movaps xmm0, xmm2
cmovbe rax, rcx
movss xmm1, dword [rax]
unpcklps xmm0, xmm1
movsd qword [rdx + 0x3c], xmm0
movss dword [rdx + 0x44], xmm10
mov rcx, qword [rbp - 0x60]
xor rcx, rsp
call fcn.180046160
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
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 xmm12, xmmword [r11 - 0x60]
mov rsp, r11
pop rbp
ret