Function at 0x1800aa130
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
sub rsp, 0x40
cmp byte [0x18039a638], 0
mov rsi, rcx
je 0x1800aa6b1
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x1800aa6b1
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x1800aa6b1
mov qword [rsp + 0x60], rdi
mov rdi, qword [0x18039f6c0]
test rdi, rdi
je 0x1800aa6ac
mov rax, qword gs:[0x58]
mov ecx, dword [0x180399320]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov rbp, rdi
mov qword [rsp + 0x68], r14
mov rbx, qword [rax + rcx*8]
mov r14d, 4
mov eax, dword [rbx + r14]
cmp dword [0x18039f5b8], eax
jle 0x1800aa205
lea rcx, [0x18039f5b8]
call fcn.18015d060
cmp dword [0x18039f5b8], 0xffffffff
jne 0x1800aa1fe
movabs rcx, 0xdccf003ada4c08e3
call fcn.18009d530
lea rcx, [0x18039f5b8]
mov dword [0x18039f600], eax
call fcn.18015cff4
mov rdi, qword [0x18039f6c0]
mov eax, dword [0x18039f600]
cmp byte [rax + rbp], 0
je 0x1800aa69d
mov rax, qword [rsi + 0x60]
test al, 0x20
jne 0x1800aa69d
test al, 1
jne 0x1800aa69d
mov rax, qword [0x18039f620]
mov rbp, qword [rax + 0x58]
mov eax, dword [rbx + r14]
cmp dword [0x18039f5e0], eax
jle 0x1800aa276
lea rcx, [0x18039f5e0]
call fcn.18015d060
cmp dword [0x18039f5e0], 0xffffffff
jne 0x1800aa276
movabs rcx, 0x9241b8778dd136bd
call fcn.18009d530
lea rcx, [0x18039f5e0]
mov dword [0x18039fa88], eax
call fcn.18015cff4
mov edx, dword [0x18039fa88]
mov edx, dword [rdx + rdi]
cmp edx, 0xffffffff
je 0x1800aa69d
and edx, 0x7fff
mov rcx, rbp
call fcn.1800795f0
mov rdi, rax
test rax, rax
je 0x1800aa69d
mov ecx, dword [rbx + r14]
cmp dword [0x18039fd90], ecx
jle 0x1800aa2e4
lea rcx, [0x18039fd90]
call fcn.18015d060
cmp dword [0x18039fd90], 0xffffffff
jne 0x1800aa2e4
movabs rcx, 0x36f3794c9d182ccf
call fcn.18009d530
lea rcx, [0x18039fd90]
mov dword [0x18039fdac], eax
call fcn.18015cff4
mov eax, dword [0x18039fdac]
movzx ecx, byte [rax + rdi]
cmp cl, 7
je 0x1800aa69d
cmp cl, 9
je 0x1800aa69d
mov eax, dword [rbx + r14]
cmp dword [0x18039fda4], eax
jle 0x1800aa342
lea rcx, [0x18039fda4]
call fcn.18015d060
cmp dword [0x18039fda4], 0xffffffff
jne 0x1800aa342
movabs rcx, 0x68c9241229346cd7
call fcn.18009d530
lea rcx, [0x18039fda4]
mov dword [0x18039fda0], eax
call fcn.18015cff4
mov eax, dword [0x18039fda0]
movss xmm0, dword [rax + rdi]
comiss xmm0, dword [0x18024d838]
jae 0x1800aa69d
mov rdi, qword [0x18039f668]
test rdi, rdi
je 0x1800aa46f
mov ecx, dword [0x18039fd70]
movabs rbp, 0xd68445ee808de532
cmp ecx, dword [rbx + r14]
jle 0x1800aa3b7
lea rcx, [0x18039fd70]
call fcn.18015d060
mov ecx, dword [0x18039fd70]
cmp ecx, 0xffffffff
jne 0x1800aa3b7
mov rcx, rbp
call fcn.18009d530
lea rcx, [0x18039fd70]
mov dword [0x18039fd44], eax
call fcn.18015cff4
mov ecx, dword [0x18039fd70]
mov eax, dword [0x18039fd44]
cmp qword [rax + rdi], 0
je 0x1800aa46f
cmp ecx, dword [rbx + r14]
jle 0x1800aa3fd
lea rcx, [0x18039fd70]
call fcn.18015d060
cmp dword [0x18039fd70], 0xffffffff
jne 0x1800aa3fd
mov rcx, rbp
call fcn.18009d530
lea rcx, [0x18039fd70]
mov dword [0x18039fd44], eax
call fcn.18015cff4
mov eax, dword [0x18039fd44]
mov rdi, qword [rax + rdi]
mov eax, dword [rbx + r14]
cmp dword [0x18039fd38], eax
jle 0x1800aa449
lea rcx, [0x18039fd38]
call fcn.18015d060
cmp dword [0x18039fd38], 0xffffffff
jne 0x1800aa449
movabs rcx, 0xb61f1dc362857c87
call fcn.18009d530
lea rcx, [0x18039fd38]
mov dword [0x18039fd2c], eax
call fcn.18015cff4
mov edx, dword [0x18039fd2c]
mov edx, dword [rdx + rdi]
cmp edx, 0xffffffff
je 0x1800aa46f
mov rax, qword [0x18039f620]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.1800795f0
jmp 0x1800aa471
xor eax, eax
mov rdx, rax
call fcn.1800e7240
test al, al
jne 0x1800aa69d
mov ecx, dword [0x18039a644]
movaps xmmword [rsp + 0x30], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x20], xmm7
xorps xmm7, xmm7
sub ecx, 1
je 0x1800aa4e2
sub ecx, 1
je 0x1800aa4d8
sub ecx, 1
je 0x1800aa4ea
sub ecx, 1
je 0x1800aa4ba
cmp ecx, 1
jne 0x1800aa4ea
movss xmm7, dword [0x18039a648]
jmp 0x1800aa4ea
mov rax, qword [0x18039fd78]
movss xmm1, dword [0x18024dad8]
movss xmm0, dword [0x18024d954]
call rax
movaps xmm7, xmm0
jmp 0x1800aa4ea
movss xmm7, dword [0x18024dad8]
jmp 0x1800aa4ea
movss xmm7, dword [0x18024d954]
mov ecx, dword [0x18039a63c]
sub ecx, 1
je 0x1800aa50b
cmp ecx, 1
jne 0x1800aa513
movss xmm0, dword [0x18039a640]
addss xmm0, xmm6
movaps xmm6, xmm0
jmp 0x1800aa513
movss xmm6, dword [0x18024d9a8]
mov eax, dword [0x18034cf88]
movd xmm0, eax
neg eax
cvtdq2ps xmm0, xmm0
mov dword [0x18034cf88], eax
mov eax, dword [0x18039a658]
mulss xmm0, dword [0x18039a650]
addss xmm6, xmm0
test eax, eax
jne 0x1800aa54c
mov ecx, dword [0x18039a654]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1800aa55d
cmp eax, 1
jne 0x1800aa569
mov ecx, dword [0x18039a654]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je 0x1800aa576
jmp 0x1800aa56e
cmp eax, 2
jne 0x1800aa576
addss xmm6, dword [0x18039a65c]
mov eax, dword [0x18039a664]
test eax, eax
jne 0x1800aa58e
mov ecx, dword [0x18039a660]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1800aa59f
cmp eax, 1
jne 0x1800aa5ab
mov ecx, dword [0x18039a660]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je 0x1800aa5b8
jmp 0x1800aa5b0
cmp eax, 2
jne 0x1800aa5b8
addss xmm6, dword [0x18039a668]
mov rcx, rsi
call fcn.1800a9940
mov rax, qword [rsi + 0x40]
or qword [rax + 0x10], 4
mov rax, qword [rsi + 0x40]
mov rcx, qword [rax + 0x40]
movss dword [rcx + 0x18], xmm7
mov rax, qword [rsi + 0x40]
or qword [rax + 0x10], 4
mov rax, qword [rsi + 0x40]
mov rcx, qword [rax + 0x40]
addss xmm6, dword [rcx + 0x1c]
movss dword [rcx + 0x1c], xmm6
mov rax, qword [rsi + 0x40]
movss xmm6, dword [0x18024da00]
movaps xmm1, xmm6
or qword [rax + 0x10], 4
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x18]
call fcn.18018cda0
comiss xmm0, dword [0x18024d9a8]
jbe 0x1800aa628
addss xmm0, dword [0x18024daec]
movss xmm7, dword [0x18024dae8]
comiss xmm7, xmm0
jbe 0x1800aa639
addss xmm0, xmm6
movss dword [rbx + 0x18], xmm0
movaps xmm1, xmm6
mov rax, qword [rsi + 0x40]
or qword [rax + 0x10], 4
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x1c]
call fcn.18018cda0
comiss xmm0, dword [0x18024d9a8]
jbe 0x1800aa66d
addss xmm0, dword [0x18024daec]
comiss xmm7, xmm0
movaps xmm7, xmmword [rsp + 0x20]
jbe 0x1800aa67b
addss xmm0, xmm6
movaps xmm6, xmmword [rsp + 0x30]
movss dword [rbx + 0x1c], xmm0
mov rax, qword [rsi + 0x40]
or qword [rax + 0x10], 4
mov rax, qword [rsi + 0x40]
mov rcx, qword [rax + 0x40]
mov dword [rcx + 0x20], 0
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov r14, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
add rsp, 0x40
pop rsi
ret