Function at 0x18004e640
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], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2b0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
mov rax, qword [0x180063020]
xor rax, rsp
mov qword [rbp + 0x150], rax
call fcn.18004df50
call fcn.18004dd20
mov rax, qword [0x18008cb30]
mov rcx, qword [rax + 8]
mov rax, qword [0x18008cbe0]
add rcx, qword [rax + 0x10]
lea rdx, [0x18008c308]
call fcn.180005c20
mov rax, qword [0x18008cbe0]
mov ecx, dword [rax + 0x28]
add rcx, qword [0x18008c308]
lea rdx, [0x18008c318]
call fcn.180005cd0
xor r14d, r14d
mov edi, r14d
mov rbx, qword [0x18008cb08]
mov rax, qword [rbx + 0x148]
sub rax, qword [rbx + 0x140]
sar rax, 3
xorps xmm6, xmm6
test rax, rax
je 0x18004eab8
mov esi, r14d
movabs r15, 0x7ffd5d15ff558
movabs r12, 0x2aaaaaaaaaaaaaab
movss xmm8, dword [0x18005b740]
movss xmm7, dword [0x18005b2f8]
movsd xmm9, qword [0x18005b270]
movss xmm10, dword [0x18005b20c]
nop dword [rax]
xor edx, edx
mov r8d, 0x178
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov qword [rbp + 0x18], 0
mov dword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0
mov dword [rbp + 0x30], 0
movups xmmword [rbp + 0x38], xmm0
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], 0xf
mov byte [rbp + 0x38], 0
movups xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], r14
mov qword [rbp + 0xa0], 0xf
mov byte [rbp + 0x88], 0
mov dword [rbp + 0xac], 0
movaps xmmword [rbp + 0xb0], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0xc0], xmm1
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xf8], r14
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmmword [rbp + 0x110], xmm1
movdqa xmmword [rbp + 0x120], xmm0
movdqa xmmword [rbp + 0x130], xmm1
mov rax, qword [rbx + 0x140]
mov rdx, qword [rsi + rax]
mov qword [rbp + 0xf0], rdx
mov rax, qword [rbx + 0x128]
mov rax, qword [rsi + rax]
mov qword [rbp + 0xe8], rax
mov rax, qword [0x18008cbe0]
mov ecx, dword [rax + 0x44]
add rcx, rdx
lea rdx, [rbp + 0x28]
call fcn.18004f410
mov rax, qword [0x18008cbe0]
mov ecx, dword [rax + 0x38]
add rcx, qword [rbp + 0xf0]
lea rdx, [rbp + 0x5c]
call fcn.180005cd0
mov rax, qword [0x18008cbe0]
mov ecx, dword [rax + 0x2c]
add rcx, qword [rbp + 0xe8]
lea rdx, [rbp - 0x2c]
call fcn.180005cd0
mov rax, qword [0x18008cbe0]
mov ecx, dword [rax + 0x28]
add rcx, qword [rbp + 0xe8]
lea rdx, [rbp - 0x30]
call fcn.180005cd0
lea rcx, [rbp - 0x30]
call fcn.18004d910
lea rcx, [rbp - 0x30]
call fcn.18004d580
lea rcx, [rbp - 0x30]
call fcn.18004dac0
mov rax, qword [0x18008c308]
cmp qword [rbp + 0xe8], rax
jne 0x18004e943
mov rax, qword [0x18008cbe0]
mov ebx, dword [rax + 0x44]
add rbx, qword [rbp + 0xf0]
je 0x18004e92f
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x18004e92f
mov r8d, 0x30
lea rdx, [rbp - 0x80]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18004e92f
cmp dword [rbp - 0x60], 0x1000
jne 0x18004e92f
mov eax, dword [rbp - 0x5c]
test eax, 0x101
jne 0x18004e92f
test al, 0x66
je 0x18004e92f
mov rax, qword [rbp - 0x80]
sub rax, rbx
add rax, qword [rbp - 0x68]
cmp rax, 0xc
jb 0x18004e92f
movsd xmm0, qword [rbx]
movsd qword [0x18008c320], xmm0
mov eax, dword [rbx + 8]
mov dword [0x18008c328], eax
mov rax, qword [0x18008c308]
cmp qword [rbp + 0xe8], rax
je 0x18004ea84
cmp byte [0x1800630d8], 0
je 0x18004e95b
mov eax, dword [0x18008c318]
cmp dword [rbp - 0x30], eax
je 0x18004ea84
cmp dword [rbp + 0x5c], 0
jle 0x18004ea84
cmp dword [rbp - 0x2c], 1
jne 0x18004ea84
mov rcx, qword [rbp + 0xc8]
sub rcx, qword [rbp + 0xc0]
mov rax, r12
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x18004ea84
lea rcx, [rbp - 0x30]
call fcn.180003a30
movss xmm0, dword [rbp + 0x28]
movss dword [rsp + 0x70], xmm0
movss xmm1, dword [rbp + 0x2c]
movss dword [rsp + 0x74], xmm1
movss xmm0, dword [rbp + 0x30]
addss xmm0, xmm7
movss dword [rsp + 0x78], xmm0
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x54], 0
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x28]
call fcn.1800038f0
test eax, eax
je 0x18004ea70
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x70]
call fcn.1800038f0
test eax, eax
je 0x18004ea70
movss xmm4, dword [rsp + 0x54]
comiss xmm6, xmm4
ja 0x18004ea70
movss xmm0, dword [rsp + 0x5c]
mov rax, qword [0x18008ca80]
comiss xmm0, dword [rax + 0x14]
ja 0x18004ea70
movaps xmm3, xmm4
subss xmm3, xmm0
andps xmm3, xmm8
cvtps2pd xmm0, xmm3
mulsd xmm0, xmm9
cvtpd2ps xmm2, xmm0
movaps xmm1, xmm2
mulss xmm1, xmm10
movss xmm0, dword [rsp + 0x58]
subss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm4
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm2
shufps xmm0, xmm0, 0x27
movss xmm0, xmm3
shufps xmm0, xmm0, 0x39
jmp 0x18004ea73
xorps xmm0, xmm0
movups xmmword [0x18008ca60], xmm0
lea rcx, [rbp - 0x30]
call fcn.180004b80
nop
lea rcx, [rbp - 0x30]
call fcn.18004ee20
inc edi
add rsi, 8
mov rbx, qword [0x18008cb08]
mov rcx, qword [rbx + 0x148]
sub rcx, qword [rbx + 0x140]
sar rcx, 3
movsxd rax, edi
cmp rax, rcx
jb 0x18004e740
mov edi, r14d
mov rax, qword [rbx + 0x160]
sub rax, qword [rbx + 0x158]
sar rax, 3
test rax, rax
je 0x18004ed01
mov rsi, r14
nop dword [rax]
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x50], 0xf
mov byte [rbp - 0x68], 0
mov dword [rbp - 0x44], 0
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [rbx + 0x158]
mov rax, qword [rsi + rax]
mov qword [rbp - 0x80], rax
lea rcx, [rbp - 0x80]
call fcn.18004e1d0
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x44]
call fcn.1800038f0
test eax, eax
je 0x18004ec9a
movss xmm0, dword [rbp - 0x38]
comiss xmm6, xmm0
ja 0x18004ec9a
mov rax, qword [0x18008ca80]
comiss xmm0, dword [rax + 0x10]
ja 0x18004ec9a
movss xmm0, dword [rbp - 0x34]
comiss xmm6, xmm0
ja 0x18004ec9a
comiss xmm0, dword [rax + 0x14]
ja 0x18004ec9a
movss xmm0, dword [rbp - 0x44]
ucomiss xmm0, xmm6
jp 0x18004eb76
je 0x18004ec9a
movss xmm0, dword [rbp - 0x40]
ucomiss xmm0, xmm6
jp 0x18004eb86
je 0x18004ec9a
movss xmm0, dword [rbp - 0x3c]
ucomiss xmm0, xmm6
jp 0x18004eb96
je 0x18004ec9a
cmp byte [0x1800630d0], 0
je 0x18004ec9a
cmp qword [rbp - 0x58], 0
je 0x18004ebd8
lea rax, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rax, qword [rbp - 0x68]
movsx ecx, byte [rax]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rcx, qword [rbp - 0x68]
mov byte [rcx], al
mov rax, qword [0x18008ca80]
mov rax, qword [rax + 0x4b10]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax]
call fcn.18000f310
mov r10, rax
lea r8, [rbp - 0x68]
mov r9, qword [rbp - 0x50]
cmp r9, 0x10
cmovae r8, qword [rbp - 0x68]
lea rcx, [0x180063058]
call fcn.18000c130
mov r11d, eax
movss xmm0, dword [rbp - 0x38]
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [rbp - 0x34]
movss dword [rsp + 0x54], xmm1
test eax, 0xff000000
je 0x18004ec9e
test r8, r8
je 0x18004ec9e
cmp byte [r8], 0
je 0x18004ec9e
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18004ec42
add rcx, r8
mov rax, qword [r10 + 0x38]
movups xmm0, xmmword [r10 + 0x88]
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r8
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r11d
lea r9, [rsp + 0x50]
movss xmm2, dword [rax + 0x10]
mov rdx, r10
mov rcx, qword [rax + 8]
call fcn.180035080
mov r9, qword [rbp - 0x50]
cmp r9, 0x10
jb 0x18004ecd6
lea rdx, [r9 + 1]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004ecd1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004ee17
call fcn.1800517f4
inc edi
add rsi, 8
mov rbx, qword [0x18008cb08]
mov rcx, qword [rbx + 0x160]
sub rcx, qword [rbx + 0x158]
sar rcx, 3
movsxd rax, edi
cmp rax, rcx
jb 0x18004eae0
call fcn.1800057f0
cmp byte [0x18008ca51], 0
je 0x18004edce
movss xmm0, dword [0x18006304c]
ucomiss xmm0, dword [0x18005b360]
jp 0x18004ed2a
je 0x18004edb9
movsxd rax, dword [0x18008ca58]
lea rcx, [0x1800547d8]
mov ecx, dword [rcx + rax*4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x18004edb9
movss xmm2, dword [0x18005b248]
divss xmm2, dword [0x180063044]
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x70], r14d
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
movss xmm1, dword [0x18008c330]
subss xmm1, dword [0x18008c300]
mulss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [rbp - 0x78], eax
movss xmm0, dword [0x18008c334]
subss xmm0, dword [0x18008c304]
mulss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rbp - 0x74], eax
mov dword [rbp - 0x6c], 1
mov r8d, 0x28
lea rdx, [rbp - 0x80]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov dword [0x18006304c], 0x49742400
mov qword [0x18008c330], 0
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.180051340
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
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]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3