Function at 0x1800041f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push rsi
push r14
lea rbp, [r11 - 0x138]
sub rsp, 0x220
mov rax, qword [0x18008e070]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rax, qword [0x180090f88]
xor r14d, r14d
mov esi, r14d
mov rcx, qword [rax]
cmp dword [rcx + 0xc], r14d
jbe 0x18000478b
mov qword [r11 + 0x18], r15
movaps xmmword [r11 - 0x28], xmm6
movss xmm6, dword [0x1800831e0]
movaps xmmword [r11 - 0x38], xmm7
movss xmm7, dword [0x1800831f4]
movaps xmmword [r11 - 0x48], xmm8
movss xmm8, dword [0x180083160]
movaps xmmword [r11 - 0x58], xmm9
movss xmm9, dword [0x1800831d4]
movaps xmmword [r11 - 0x68], xmm10
movss xmm10, dword [0x1800831cc]
movaps xmmword [r11 - 0x78], xmm11
movss xmm11, dword [0x180083124]
movaps xmmword [r11 - 0x88], xmm12
xorps xmm12, xmm12
movaps xmmword [r11 - 0x98], xmm13
movss xmm13, dword [0x180083208]
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rdi
nop dword [rax + rax]
mov eax, esi
imul rdx, rax, 0x110
mov r8d, dword [rdx + rcx + 0x10]
test r8d, r8d
je 0x180004640
sub r8d, 1
je 0x1800045f8
sub r8d, 1
je 0x18000446b
sub r8d, 1
je 0x1800043de
cmp r8d, 1
jne 0x180004718
movups xmm0, xmmword [rdx + rcx + 0x14]
mov ebx, dword [rdx + rcx + 0x2c]
movsd xmm2, qword [rdx + rcx + 0x24]
movss xmm1, dword [0x18008ec80]
movups xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm2
movsd qword [rsp + 0x40], xmm2
shufps xmm0, xmm0, 0x55
comiss xmm1, xmm0
jbe 0x180004718
cmp byte [0x180090e29], r14b
je 0x180004718
cmp byte [0x180090e26], r14b
jne 0x180004345
cmp ebx, 0x1cd1d4
jne 0x18000438c
movaps xmm3, xmm9
jmp 0x180004349
movaps xmm3, xmm10
movss xmm4, dword [rsp + 0x40]
movaps xmm0, xmm7
movss xmm1, dword [rsp + 0x3c]
movaps xmm2, xmm6
divss xmm0, xmm4
divss xmm3, xmm4
subss xmm1, xmm0
movss dword [rsp + 0x28], xmm8
movss xmm0, dword [rsp + 0x38]
divss xmm2, xmm4
mov dword [rsp + 0x20], 0x6b1de0
subss xmm0, xmm3
movaps xmm3, xmm2
call fcn.1800035c0
mov ecx, dword [0x18008ec90]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180004718
cmp byte [0x180090e26], r14b
jne 0x1800043b8
cmp ebx, 0x1cd1d4
jne 0x180004718
cvttss2si r8, dword [rsp + 0x34]
xor r9d, r9d
mov ecx, 0x8001
mov qword [rsp + 0x20], r14
cvttss2si rdx, dword [rsp + 0x30]
call qword [sym.imp.USER32.dll_mouse_event]
jmp 0x180004718
add rdx, 0x14
mov eax, 2
add rcx, rdx
lea rdx, [rbp - 0x80]
nop
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub rax, 1
jne 0x1800043f0
mov rax, qword [rcx]
lea r9, [rbp - 0x74]
mov qword [rdx], rax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
mov r8d, dword [rbp - 0x78]
movss xmm1, dword [rbp - 0x7c]
movss xmm0, dword [rbp - 0x80]
call fcn.180003ac0
jmp 0x180004718
cmp byte [0x180090e29], r14b
movups xmm0, xmmword [rdx + rcx + 0x14]
mov eax, dword [rdx + rcx + 0x24]
mov dword [rsp + 0x40], eax
movups xmmword [rsp + 0x30], xmm0
je 0x180004718
mov rcx, qword [0x180090ff8]
lea rax, [rsp + 0x68]
lea r9, [rsp + 0x6c]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x70]
lea rdx, str._02x_02x_02x
call fcn.180001f30
mov ebx, dword [rsp + 0x68]
or ebx, 0x5000
shl ebx, 8
or ebx, dword [rsp + 0x6c]
shl ebx, 8
or ebx, dword [rsp + 0x70]
cmp byte [0x180090e2b], r14b
je 0x180004718
mov rax, qword [0x180090e50]
lea r8, str.Foreground
movss xmm0, dword [rsp + 0x30]
mov edx, 1
movss xmm1, dword [rsp + 0x34]
movss dword [rsp + 0x50], xmm0
mov rcx, qword [rax + 0x1de8]
movss dword [rsp + 0x54], xmm1
mov rcx, qword [rcx]
call fcn.180012290
movzx edx, bl
mov ecx, ebx
shr ebx, 8
mov rdi, rax
shr ecx, 0x10
movzx ecx, cl
movd xmm1, ecx
movzx ecx, bl
cvtdq2ps xmm1, xmm1
movd xmm2, ecx
movaps xmm0, xmm1
cvtdq2ps xmm2, xmm2
mulss xmm0, xmm12
subss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm12
subss xmm2, xmm0
movd xmm0, edx
cvttss2si ebx, xmm1
cvttss2si eax, xmm2
or ebx, 0xff00
shl ebx, 8
movss xmm2, dword [0x18008ec80]
or ebx, eax
mulss xmm2, xmm13
mov eax, 0xff
shl ebx, 8
sub eax, edx
cvtdq2ps xmm0, xmm0
mulss xmm2, dword [rsp + 0x38]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm12
addss xmm1, xmm0
cvttss2si eax, xmm1
or ebx, eax
comiss xmm12, xmm2
jae 0x180004718
subss xmm2, xmm11
mov dword [rsp + 0x20], 0x30
xor r9d, r9d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.18002b5a0
mov r8d, dword [rdi + 0x78]
mov r9d, ebx
movss xmm0, dword [rsp + 0x40]
dec r8d
mov rdx, qword [rdi + 0x80]
mov rcx, rdi
movss dword [rsp + 0x28], xmm0
mov dword [rdi + 0x78], r8d
mov dword [rsp + 0x20], 1
call fcn.18002a110
mov dword [rdi + 0x78], r14d
jmp 0x180004718
movups xmm4, xmmword [rdx + rcx + 0x14]
movsd xmm0, qword [rdx + rcx + 0x24]
movaps xmm1, xmm0
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x40]
movaps xmm3, xmm4
shufps xmm1, xmm1, 0x55
movaps xmm2, xmm4
movss dword [rsp + 0x28], xmm1
movaps xmm0, xmm4
movaps xmm1, xmm4
shufps xmm3, xmm4, 0xff
shufps xmm1, xmm4, 0x55
shufps xmm2, xmm4, 0xaa
mov dword [rsp + 0x20], eax
call fcn.1800035c0
jmp 0x180004718
cmp byte [0x180090e23], r14b
movups xmm0, xmmword [rdx + rcx + 0x14]
movsd xmm1, qword [rdx + rcx + 0x24]
movups xmmword [rsp + 0x30], xmm0
movsd qword [rsp + 0x40], xmm1
je 0x180004718
mov rcx, qword [0x180090f50]
lea rax, [rsp + 0x74]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x7c]
lea rdx, str._02x_02x_02x
call fcn.180001f30
mov rax, qword [0x180090e50]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x1de8]
mov rcx, qword [rcx]
call fcn.180012290
movss xmm0, dword [rsp + 0x38]
lea r8, [rsp + 0x58]
movss xmm1, dword [rsp + 0x3c]
lea rdx, [rsp + 0x60]
mov r9d, dword [rsp + 0x74]
mov rcx, rax
or r9d, 0x5000
movss dword [rsp + 0x58], xmm0
movss xmm0, dword [rsp + 0x30]
shl r9d, 8
or r9d, dword [rsp + 0x78]
shl r9d, 8
or r9d, dword [rsp + 0x7c]
movss dword [rsp + 0x5c], xmm1
movss xmm1, dword [rsp + 0x34]
movss dword [rsp + 0x60], xmm0
movss xmm0, dword [rsp + 0x44]
movss dword [rsp + 0x64], xmm1
movss dword [rsp + 0x20], xmm0
call fcn.18002c450
mov rax, qword [0x180090f88]
inc esi
mov rcx, qword [rax]
cmp esi, dword [rcx + 0xc]
jb 0x1800042b0
movaps xmm13, xmmword [rsp + 0x1a0]
movaps xmm12, xmmword [rsp + 0x1b0]
movaps xmm11, xmmword [rsp + 0x1c0]
movaps xmm10, xmmword [rsp + 0x1d0]
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm8, xmmword [rsp + 0x1f0]
movaps xmm7, xmmword [rsp + 0x200]
movaps xmm6, xmmword [rsp + 0x210]
mov r15, qword [rsp + 0x250]
mov rdi, qword [rsp + 0x248]
mov rbx, qword [rsp + 0x240]
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.180040040
add rsp, 0x220
pop r14
pop rsi
pop rbp
ret