Function at 0x180013600
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
cmp byte [0x180069be4], 0
movabs rdi, 0x7fffffff0000
movaps xmmword [rsp + 0x30], xmm6
je 0x1800136ae
mov ecx, 0x5a
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x1800136ae
mov rax, qword [0x180069ff0]
lea rcx, [rax + 0x32732a0]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0x32732a8
cmp rax, rdi
jae 0x180013713
mov rax, qword [rcx]
lea rcx, [rax + 0xb8]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0xc0
cmp rax, rdi
jae 0x180013713
mov rax, qword [rcx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0x1c
cmp rax, rdi
jae 0x180013713
movss xmm0, dword [0x180068658]
jmp 0x18001370f
mov rax, qword [0x180069ff0]
lea rcx, [rax + 0x32732a0]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0x32732a8
cmp rax, rdi
jae 0x180013713
mov rax, qword [rcx]
lea rcx, [rax + 0xb8]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0xc0
cmp rax, rdi
jae 0x180013713
mov rax, qword [rcx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180013713
add rax, 0x1c
cmp rax, rdi
jae 0x180013713
movss xmm0, dword [0x18006865c]
movss dword [rcx], xmm0
xor esi, esi
cmp byte [0x180069be6], sil
je 0x180013783
mov rax, qword [0x180069c98]
lea rcx, [rax + 0x4d8]
cmp rcx, 0x400000
jbe 0x180013783
add rax, 0x4e0
cmp rax, rdi
jae 0x180013783
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0xb4]
cmp r8, 0x400000
jbe 0x180013765
lea rax, [rcx + 0xb8]
cmp rax, rdi
jae 0x180013765
mov dword [r8], esi
lea rcx, [rdx + 0xb8]
cmp rcx, 0x400000
jbe 0x180013783
lea rax, [rdx + 0xbc]
cmp rax, rdi
jae 0x180013783
mov dword [rcx], esi
mov rbx, qword [0x180069c98]
mov ecx, 0x58
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xorps xmm6, xmm6
test ax, ax
jne 0x1800137d9
mov edx, 0x2f
mov rcx, rbx
call fcn.18000f650
mov rdx, rax
test rax, rax
jne 0x1800137b7
xorps xmm0, xmm0
jmp 0x1800137d1
mov rax, qword [0x180069ff0]
lea rcx, [rsp + 0x20]
add rax, 0x1fc4880
call rax
movss xmm0, dword [rsp + 0x24]
movss dword [0x180069bb4], xmm0
mov ecx, 0x58
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001383f
mov edx, 0x2f
mov rcx, rbx
call fcn.18000f650
mov rdx, rax
test rax, rax
jne 0x180013803
xorps xmm1, xmm1
jmp 0x18001381d
mov rax, qword [0x180069ff0]
lea rcx, [rsp + 0x20]
add rax, 0x1fc4880
call rax
movss xmm1, dword [rsp + 0x24]
movss xmm0, dword [0x180069bb4]
addss xmm0, dword [0x18005b3b0]
comiss xmm1, xmm0
jb 0x18001383f
mov edx, 0x64
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Beep]
cmp byte [0x180069b65], sil
je 0x180013856
mov rax, qword [0x180069c98]
mov qword [rax + 0x2c0], rsi
cmp byte [0x180069bed], sil
je 0x18001389b
mov rax, qword [0x180069c98]
lea rcx, [rax + 0x638]
lea rdx, [rax + 0x63c]
cmp rcx, 0x400000
jbe 0x18001389b
cmp rdx, rdi
jae 0x180013886
mov eax, dword [rcx]
jmp 0x180013896
cmp rcx, 0x400000
jbe 0x18001389b
mov eax, esi
cmp rdx, rdi
jae 0x18001389b
or eax, 4
mov dword [rcx], eax
cmp byte [0x180069b5b], sil
je 0x1800138e2
mov rax, qword [0x180069c98]
lea rcx, [rax + 0x4d0]
cmp rcx, 0x400000
jbe 0x1800138e2
add rax, 0x4d8
cmp rax, rdi
jae 0x1800138e2
mov rax, qword [rcx]
lea rcx, [rax + 0x64]
cmp rcx, 0x400000
jbe 0x1800138e2
add rax, 0x6c
cmp rax, rdi
jae 0x1800138e2
mov qword [rcx], rsi
cmp byte [0x180069bc1], sil
je 0x18001394e
mov rbx, qword [0x180069c98]
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x18001394e
lea rcx, [rbx + 0x640]
cmp rcx, 0x400000
jbe 0x18001394e
lea rax, [rbx + 0x648]
cmp rax, rdi
jae 0x18001394e
mov rax, qword [rcx]
lea rcx, [rax + 0x38]
cmp rcx, 0x400000
jbe 0x18001394e
add rax, 0x44
cmp rax, rdi
jae 0x18001394e
movss xmm1, dword [0x18005b380]
xorps xmm0, xmm0
unpcklps xmm0, xmm1
movsd qword [rcx], xmm0
movss dword [rcx + 8], xmm6
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rdi
ret