Function at 0x18007e090
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
sub rsp, 0x80
mov rax, qword [0x180198230]
mov rsi, rcx
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rdx, [rax + 0x18]
jbe 0x18007e0c3
cmp qword [rdx], 0
jne 0x18007e0c0
int3
mov rdx, qword [rdx]
cmp byte [rdx], 0
je 0x18007e8ea
mov rcx, qword [0x180197830]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x18007e8ea
mov rcx, qword [0x180197830]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x18007e8ea
mov qword [rsp + 0x90], rbx
mov rbx, qword [0x180197990]
test rbx, rbx
je 0x18007e8e2
mov eax, dword [0x1801978c4]
mov qword [rsp + 0xa0], rdi
mov rdi, rbx
test al, 1
jne 0x18007e156
or eax, 1
movabs rcx, 0xdccf003ada4c08e3
mov dword [0x1801978c4], eax
call fcn.180077e70
mov rbx, qword [0x180197990]
mov dword [0x1801978d8], eax
jmp 0x18007e15c
mov eax, dword [0x1801978d8]
mov eax, eax
cmp byte [rax + rdi], 0
je 0x18007e8da
test byte [rsi + 0x60], 0x20
jne 0x18007e8da
mov edx, dword [0x180197eb8]
mov qword [rsp + 0x98], rbp
movabs rbp, 0xcbdf49e242648c6f
test dl, 1
jne 0x18007e1b1
or edx, 1
mov rcx, rbp
mov dword [0x180197eb8], edx
call fcn.180077e70
mov edx, dword [0x180197eb8]
mov r8d, eax
mov dword [0x180197e9c], eax
jmp 0x18007e1b8
mov r8d, dword [0x180197e9c]
mov eax, r8d
mov ecx, dword [rax + rbx]
add ecx, 0xfffffff8
cmp ecx, 1
jbe 0x18007e8d2
mov rbx, qword [0x180197938]
mov rdi, rbx
test rbx, rbx
je 0x18007e8d2
test dl, 1
jne 0x18007e203
or edx, 1
mov rcx, rbp
mov dword [0x180197eb8], edx
call fcn.180077e70
mov rbx, qword [0x180197938]
mov r8d, eax
mov dword [0x180197e9c], eax
mov eax, r8d
mov ecx, dword [rax + rdi]
add ecx, 0xfffffff8
cmp ecx, 1
jbe 0x18007e8d2
mov eax, dword [0x1801979c8]
test al, 1
jne 0x18007e23f
or eax, 1
movabs rcx, 0xd68445ee808de532
mov dword [0x1801979c8], eax
call fcn.180077e70
mov dword [0x1801979cc], eax
jmp 0x18007e245
mov eax, dword [0x1801979cc]
mov eax, eax
mov rbx, qword [rax + rbx]
test rbx, rbx
je 0x18007e8d2
mov rax, qword [0x1801978e8]
mov rdi, qword [rax + 0x58]
mov eax, dword [0x1801979a4]
test al, 1
jne 0x18007e289
or eax, 1
movabs rcx, 0xb61f1dc362857c87
mov dword [0x1801979a4], eax
call fcn.180077e70
mov dword [0x1801979a8], eax
jmp 0x18007e28f
mov eax, dword [0x1801979a8]
mov edx, eax
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x18007e8d2
and edx, 0x7fff
mov rcx, rdi
call fcn.1800626b0
mov rbx, rax
test rax, rax
je 0x18007e8d2
mov ecx, dword [0x1801978d4]
test cl, 1
jne 0x18007e2e5
or ecx, 1
mov dword [0x1801978d4], ecx
movabs rcx, 0x79737564f6f2d233
call fcn.180077e70
add eax, 8
mov dword [0x180197928], eax
jmp 0x18007e2eb
mov eax, dword [0x180197928]
mov rbx, qword [rax + rbx]
test rbx, rbx
je 0x18007e8d2
mov eax, dword [0x1801978c0]
test al, 1
jne 0x18007e322
or eax, 1
movabs rcx, 0xc11b1abece31bb76
mov dword [0x1801978c0], eax
call fcn.180077e70
mov dword [0x18019792c], eax
jmp 0x18007e328
mov eax, dword [0x18019792c]
mov eax, eax
cmp dword [rax + rbx], 9
jne 0x18007e360
mov rax, qword [0x180198238]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e357
cmp qword [rcx], 0
jne 0x18007e354
int3
mov rcx, qword [rcx]
cmp byte [rcx], 0
jne 0x18007e8d2
mov rax, qword [0x1801978e8]
mov rbx, qword [0x180197990]
mov rdi, qword [rax + 0x58]
mov eax, dword [0x1801978dc]
test al, 1
jne 0x18007e39c
or eax, 1
movabs rcx, 0x9241b8778dd136bd
mov dword [0x1801978dc], eax
call fcn.180077e70
mov dword [0x180197cb8], eax
jmp 0x18007e3a2
mov eax, dword [0x180197cb8]
mov edx, eax
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x18007e8d2
and edx, 0x7fff
mov rcx, rdi
call fcn.1800626b0
test rax, rax
je 0x18007e8d2
mov rcx, qword [0x180196080]
mov rax, qword [0x180198280]
movaps xmmword [rsp + 0x70], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x60], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0x50], xmm8
lea rdx, [rcx + 0x18]
shl rax, 5
movaps xmmword [rsp + 0x40], xmm9
add rdx, rax
movaps xmmword [rsp + 0x30], xmm10
movaps xmmword [rsp + 0x20], xmm11
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e41a
cmp qword [rdx], 0
jne 0x18007e417
int3
mov rdx, qword [rdx]
mov edx, dword [rdx]
movss xmm10, dword [0x18017c020]
sub edx, 1
je 0x18007e462
sub edx, 1
je 0x18007e466
cmp edx, 1
jne 0x18007e466
mov rax, qword [0x180198228]
lea rdx, [rcx + 0x18]
shl rax, 5
add rdx, rax
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e458
cmp qword [rdx], 0
jne 0x18007e455
int3
mov rdx, qword [rdx]
movss xmm7, dword [rdx]
addss xmm7, xmm6
jmp 0x18007e466
movaps xmm7, xmm10
mov rax, qword [0x180198288]
lea rdx, [rcx + 0x18]
shl rax, 5
add rdx, rax
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e48a
cmp qword [rdx], 0
jne 0x18007e487
int3
mov rdx, qword [rdx]
mov edx, dword [rdx]
sub edx, 1
je 0x18007e4d4
sub edx, 1
je 0x18007e4dc
sub edx, 1
je 0x18007e4ca
cmp edx, 1
jne 0x18007e4dc
mov rax, qword [0x180198220]
lea rdx, [rcx + 0x18]
shl rax, 5
add rdx, rax
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e4c4
cmp qword [rdx], 0
jne 0x18007e4c1
int3
mov rdx, qword [rdx]
movss xmm6, dword [rdx]
jmp 0x18007e4dc
movss xmm6, dword [0x18017c010]
jmp 0x18007e4dc
movss xmm6, dword [0x18017bf14]
mov rax, qword [0x180198240]
lea rdx, [rcx + 0x18]
shl rax, 5
add rdx, rax
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e500
cmp qword [rdx], 0
jne 0x18007e4fd
int3
mov rdx, qword [rdx]
cmp byte [rdx], 0
movss xmm8, dword [0x18017bf74]
movss xmm11, dword [0x18017bf54]
movss xmm9, dword [0x18017c024]
je 0x18007e63a
mov rax, qword [0x180198268]
shl rax, 5
add rax, rcx
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e547
cmp qword [rcx], 0
jne 0x18007e544
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18007e633
mov rax, qword [0x180198270]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e580
cmp qword [rcx], 0
jne 0x18007e57d
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18007e633
mov rcx, qword [0x180196080]
mov rax, qword [0x180198250]
shl rax, 5
lea rdx, [rcx + 0x18]
add rdx, rax
cmp byte [0x180197486], 0
je 0x18007e5cc
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e5c6
cmp qword [rdx], 0
jne 0x18007e5c3
int3
mov rdx, qword [rdx]
addss xmm7, dword [rdx]
jmp 0x18007e5e2
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e5de
cmp qword [rdx], 0
jne 0x18007e5db
int3
mov rdx, qword [rdx]
subss xmm7, dword [rdx]
mov rax, qword [0x180198248]
shl rax, 5
lea rdx, [rax + 0x18]
add rdx, rcx
cmp byte [0x180197485], 0
je 0x18007e618
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e60f
cmp qword [rdx], 0
jne 0x18007e60c
int3
mov rdx, qword [rdx]
addss xmm6, dword [rdx]
jmp 0x18007e71d
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e62a
cmp qword [rdx], 0
jne 0x18007e627
int3
mov rdx, qword [rdx]
subss xmm6, dword [rdx]
jmp 0x18007e71d
mov rcx, qword [0x180196080]
mov rax, qword [0x180198258]
shl rax, 5
lea rdx, [rax + 0x18]
add rdx, rcx
cmp qword [rax + rcx + 0x10], 8
jbe 0x18007e65e
cmp qword [rdx], 0
jne 0x18007e65b
int3
mov rdx, qword [rdx]
cmp byte [rdx], 0
je 0x18007e71d
mov rax, qword [0x180198268]
shl rax, 5
add rax, rcx
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e68a
cmp qword [rcx], 0
jne 0x18007e687
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18007e716
mov rax, qword [0x180198270]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e6bf
cmp qword [rcx], 0
jne 0x18007e6bc
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18007e716
mov rax, qword [rsi + 0x40]
movaps xmm1, xmm8
movd xmm0, dword [0x1801974c0]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x40]
movss dword [rcx + 0x1c], xmm0
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x1c]
call fcn.1801134a0
comiss xmm0, xmm11
jbe 0x18007e706
addss xmm0, xmm9
comiss xmm10, xmm0
jbe 0x18007e711
addss xmm0, xmm8
movss dword [rbx + 0x1c], xmm0
mov rcx, qword [0x180196080]
mov rax, qword [0x180198268]
shl rax, 5
add rax, rcx
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e740
cmp qword [rcx], 0
jne 0x18007e73d
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18007e756
movss xmm7, dword [0x18017c018]
mov rax, qword [0x180198270]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e77d
cmp qword [rcx], 0
jne 0x18007e77a
int3
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18007e793
movss xmm7, dword [0x18017bf28]
mov rax, qword [0x180198288]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e7ba
cmp qword [rcx], 0
jne 0x18007e7b7
int3
mov rcx, qword [rcx]
cmp dword [rcx], 0
movaps xmm1, xmm8
mov rax, qword [rsi + 0x40]
mov rdx, qword [rax + 0x40]
jne 0x18007e7d0
addss xmm6, dword [rdx + 0x18]
movss dword [rdx + 0x18], xmm6
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x18]
call fcn.1801134a0
comiss xmm0, xmm11
jbe 0x18007e7f2
addss xmm0, xmm9
comiss xmm10, xmm0
jbe 0x18007e7fd
addss xmm0, xmm8
movss dword [rbx + 0x18], xmm0
movaps xmm1, xmm8
mov rax, qword [rsi + 0x40]
mov rcx, qword [rax + 0x40]
addss xmm7, dword [rcx + 0x1c]
movss dword [rcx + 0x1c], xmm7
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x1c]
call fcn.1801134a0
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x70]
comiss xmm0, xmm11
movaps xmm11, xmmword [rsp + 0x20]
jbe 0x18007e845
addss xmm0, xmm9
movaps xmm9, xmmword [rsp + 0x40]
comiss xmm10, xmm0
movaps xmm10, xmmword [rsp + 0x30]
jbe 0x18007e85c
addss xmm0, xmm8
cmp byte [0x180197485], 0
movaps xmm8, xmmword [rsp + 0x50]
movss dword [rbx + 0x1c], xmm0
sete byte [0x180197485]
mov rax, qword [rsi + 0x40]
cmp byte [0x180197486], 0
sete byte [0x180197486]
mov rcx, qword [rax + 0x40]
mov dword [rcx + 0x20], 0
mov rax, qword [0x180198260]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18007e8b9
cmp qword [rcx], 0
jne 0x18007e8b6
int3
mov rcx, qword [rcx]
movd xmm0, dword [0x1801974c0]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rcx]
cvttss2si eax, xmm0
mov dword [0x1801974c0], eax
mov rbp, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
add rsp, 0x80
pop rsi
ret