Function at 0x180009cdc
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x180010010]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rbx, qword [0x1800112f0]
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r14d, r14d
lea r13d, [r14 + 1]
test r13b, al
je 0x180009d37
cmp byte [0x180012779], r14b
sete al
mov byte [0x180012779], al
jmp 0x180009d3d
mov al, byte [0x180012779]
test al, al
je 0x18000a2f1
mov r15d, dword [0x180012790]
lea rcx, [0x180012730]
mov edi, dword [0x180012770]
mov ebp, dword [0x180012768]
mov esi, dword [0x18001276c]
shl r15d, 4
add r15d, 8
mov eax, r15d
cdq
idiv dword [0x180012788]
mov dword [rsp + 0x40], eax
mov eax, edi
cdq
and edx, 3
lea r12d, [rdx + rax]
sar r12d, 2
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [0x180012730]
mov rcx, rbx
call qword [sym.imp.USER32.dll_ScreenToClient]
add dword [0x180012730], 9
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
and al, r13b
mov ecx, 2
mov byte [0x180012740], al
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
and al, r13b
mov ecx, r13d
mov byte [0x180012741], al
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movd xmm3, dword [0x180012730]
lea r13d, [r12 + rbp]
test ax, ax
lea eax, [rsi + 0x19]
movd xmm2, eax
lea eax, [r13 + 5]
movd xmm1, eax
setne byte [0x180012742]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm2, xmm2
comiss xmm3, xmm1
jbe 0x180009ef6
mov eax, edi
sub eax, r12d
sub eax, 0x14
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
comiss xmm0, xmm3
jbe 0x180009ef6
movd xmm1, dword [0x180012734]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jbe 0x180009ef6
mov r11d, dword [0x180012790]
mov eax, r11d
shl eax, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x180009ef6
mov eax, dword [0x1800112d0]
mov edx, dword [0x180012794]
test eax, eax
jle 0x180009e81
test edx, edx
jle 0x180009e7f
dec edx
dec dword [0x180012784]
mov dword [0x180012794], edx
test eax, eax
jns 0x180009ef6
movsxd r10, dword [0x18001278c]
lea rax, [0x180011470]
mov r8d, r14d
lea r13, [0x180011470]
mov r14d, dword [0x180012780]
lea rcx, [r10 + r10*4]
mov r9d, dword [rax + rcx*8 + 0x1350]
lea ebx, [r10 + 1]
cmp dword [0x180012788], ebx
jle 0x180009eca
lea rcx, [r10 + r10*4]
mov eax, dword [r13 + rcx*8 + 0x1378]
dec eax
jmp 0x180009ece
lea eax, [r14 - 1]
cmp r9d, eax
jg 0x180009edb
inc r8d
inc r9d
jmp 0x180009eb2
sub r8d, r11d
lea r13d, [r12 + rbp]
cmp edx, r8d
jge 0x180009ef6
inc dword [0x180012784]
lea eax, [rdx + 1]
mov dword [0x180012794], eax
call fcn.18000a31c
mov al, byte [0x180012742]
mov r8d, dword [0x180012734]
neg al
mov edx, dword [0x180012730]
sbb cl, cl
and byte [0x180012778], cl
je 0x180009f39
mov eax, edx
mov ecx, r8d
sub eax, dword [0x180012738]
sub ecx, dword [0x18001273c]
mov dword [0x18001276c], ecx
mov dword [0x180012768], eax
jmp 0x180009f45
mov ecx, dword [0x18001276c]
mov eax, dword [0x180012768]
movss xmm5, dword [0x18000dd40]
movd xmm4, ebp
movd xmm1, edx
cvtdq2ps xmm4, xmm4
cvtdq2ps xmm1, xmm1
movd xmm2, esi
comiss xmm1, xmm4
cvtdq2ps xmm2, xmm2
jbe 0x180009fae
movd xmm3, edi
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm3
addss xmm0, xmm4
comiss xmm0, xmm1
jbe 0x180009fae
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jbe 0x180009fae
movaps xmm0, xmm2
addss xmm0, xmm5
comiss xmm0, xmm1
jbe 0x180009fae
sub edx, eax
mov byte [0x180012778], 1
sub r8d, ecx
mov dword [0x180012738], edx
mov dword [0x18001273c], r8d
jmp 0x180009fb5
movd xmm3, edi
cvtdq2ps xmm3, xmm3
mov eax, dword [0x180010368]
movaps xmm1, xmm4
mov dword [rsp + 0x38], eax
mov eax, dword [0x18001036c]
mov dword [rsp + 0x30], eax
mov eax, dword [0x180010374]
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm5
call fcn.180001fe8
mov ebx, dword [0x180010360]
lea rdx, [0x180012748]
lea rcx, [rsp + 0x48]
call fcn.180009150
mov r9, rax
mov dword [rsp + 0x30], 1
mov eax, edi
mov dword [rsp + 0x20], ebx
cdq
lea r8d, [rsi + 2]
sub eax, edx
sar eax, 1
lea edx, [rax + rbp]
call fcn.180001f14
movd xmm0, r15d
lea r14d, [rsi + 0x15]
movd xmm2, r14d
mov ebx, edi
cvtdq2ps xmm0, xmm0
sub ebx, r12d
lea eax, [rbx - 1]
movd xmm3, eax
lea eax, [r13 + 1]
movd xmm1, eax
mov eax, dword [0x180010368]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18001036c]
mov dword [rsp + 0x30], eax
mov eax, dword [0x180010374]
mov dword [rsp + 0x28], eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x20], xmm0
call fcn.180001fe8
mov ecx, dword [0x180012784]
test ecx, ecx
js 0x18000a0cc
and dword [rsp + 0x38], 0
lea eax, [rbx - 0x15]
and dword [rsp + 0x30], 0
sub ecx, dword [0x180012794]
movss xmm0, dword [0x18000dd24]
movd xmm3, eax
lea eax, [rsi + 0x1b]
shl ecx, 4
add eax, ecx
cvtdq2ps xmm3, xmm3
movd xmm2, eax
lea eax, [r13 + 6]
movd xmm1, eax
mov eax, dword [0x180010370]
mov dword [rsp + 0x28], eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x20], xmm0
call fcn.180001fe8
mov eax, dword [rsp + 0x40]
mov r9d, r12d
mov r8d, r14d
mov dword [rsp + 0x20], eax
mov edx, ebp
call fcn.18000a688
lea r8d, [rsi + 0x14]
mov r9d, edi
lea edx, [r13 + 0xa]
call fcn.18000a84c
lea edx, [rbp - 0xa]
add edx, edi
lea r9d, [r15 - 0xf]
lea r8d, [rsi + 0x1b]
call fcn.18000ab38
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
mov edx, dword [0x1800112a0]
inc edx
mov dword [0x1800112a0], edx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x18000dcb4]
movaps xmm0, xmm1
movss dword [0x1800112a8], xmm1
subss xmm0, dword [0x1800112a4]
comiss xmm0, dword [0x18000dcd0]
jbe 0x18000a224
lea rcx, [rsp + 0x48]
movss dword [0x1800112a4], xmm1
call fcn.180001e28
mov rbx, rax
mov edi, 0x1000
lea rax, [0x180010be0]
cmp rax, rbx
je 0x18000a1e1
mov rdx, qword [0x180010bf8]
cmp rdx, 0x10
jb 0x18000a1a5
mov rcx, qword [0x180010be0]
inc rdx
cmp rdx, rdi
jb 0x18000a1a0
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18000a211
mov rcx, r8
call fcn.18000ae4c
movdqa xmm0, xmmword [0x18000dde0]
movdqu xmmword [0x180010bf0], xmm0
mov byte [0x180010be0], 0
movups xmm0, xmmword [rbx]
movups xmmword [0x180010be0], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [0x180010bf0], xmm1
and qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x18000a21d
mov rcx, qword [rsp + 0x48]
inc rdx
mov rax, rcx
cmp rdx, rdi
jb 0x18000a218
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000a218
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18000ae4c
and dword [0x1800112a0], 0
cmp dword [0x1800116d8], 1
mov dword [0x180012774], 0xff007800
jne 0x18000a25a
mov ecx, 0x191919
mov edx, 0xffbebebe
mov eax, 0xff0d0d0d
mov r8d, 0xff000000
mov r9d, 0xff141414
mov r10d, 0xff212121
jmp 0x18000a278
mov eax, 0xffdcdcdc
mov ecx, 0xff1e1e1e
mov r9d, eax
mov edx, 0xff323232
mov r8d, 0xffc3c3c3
mov r10d, 0xffe9e9e9
mov dword [0x180010364], ecx
mov ecx, 1
mov dword [0x180010374], r10d
mov dword [0x18001036c], r9d
mov dword [0x180010368], r8d
mov dword [0x180010370], eax
mov dword [0x180010360], edx
call qword [sym.imp.USER32.dll_ShowCursor]
mov eax, dword [0x180010368]
movd xmm2, dword [0x180012734]
movd xmm1, dword [0x180012730]
movss xmm3, dword [0x18000dd1c]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18001036c]
mov dword [rsp + 0x30], eax
mov eax, dword [0x180010374]
mov dword [rsp + 0x28], eax
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x20], xmm3
call fcn.180001fe8
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.18000adf0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret