Function at 0x18000e310
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0xa0
movaps xmmword [rax - 0x28], xmm6
xor r12d, r12d
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
mov rax, qword [0x180079bf8]
movaps xmmword [rsp + 0x30], xmm13
test rax, rax
je 0x18000e616
cmp qword [0x180079bb0], r12
je 0x18000e616
cmp byte [rax + 0x670], 4
je 0x18000e616
mov rax, qword [0x180079c38]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x4b60]
mov rcx, qword [rcx]
call fcn.1800137f4
mov rcx, qword [0x180079c10]
mov r15, rax
mov r14, qword [rcx]
mov rcx, qword [0x180079c08]
mov rsi, qword [rcx]
test rsi, rsi
je 0x18000e616
mov rax, qword [0x180079c00]
xorps xmm11, xmm11
movss xmm13, dword [0x180073878]
xorps xmm12, xmm12
movzx ebp, r12w
cmp byte [rax], r12b
jle 0x18000e5c9
movzx eax, bp
mov rbx, qword [r14 + rax*8]
test rbx, rbx
je 0x18000e5b1
mov rdi, qword [rbx + 0x700]
test rdi, rdi
je 0x18000e5b1
mov rcx, rdi
call fcn.180001010
test al, al
je 0x18000e5b1
cmp rdi, rsi
je 0x18000e5b1
test dword [rdi + 0x1278], 0x7000014
jne 0x18000e5b1
movss xmm0, dword [rdi + 0xbb0]
ucomiss xmm0, dword [0x1800736e8]
jp 0x18000e443
je 0x18000e5b1
mov r9, rdi
mov qword [rsp + 0x20], r15
mov r8, rsi
mov rdx, rbx
call fcn.1800042d0
mov rcx, rsi
call fcn.180001010
test al, al
je 0x18000e5b1
mov rcx, rdi
call fcn.1800010b0
mov rcx, rsi
mov rbx, rax
call fcn.1800010b0
mov cl, byte [rbx]
cmp byte [rax], cl
jne 0x18000e48c
cmp byte [0x180079bbc], r12b
jne 0x18000e5b1
movss xmm9, dword [rdi + 0x318]
addss xmm9, dword [rdi + 0x324]
movss xmm8, dword [rdi + 0x328]
addss xmm8, dword [rdi + 0x31c]
mov rax, qword [0x180079bb0]
movss xmm7, dword [rdi + 0x32c]
addss xmm7, dword [rdi + 0x320]
mulss xmm9, dword [0x180073764]
mov rcx, qword [rax]
mulss xmm8, dword [0x180073764]
mulss xmm7, dword [0x180073764]
mov rax, qword [rcx + 0x5c0]
addss xmm9, dword [rdi + 0xbb0]
addss xmm8, dword [rdi + 0xbb4]
addss xmm7, dword [rdi + 0xbb8]
subss xmm9, dword [rax + 0x58]
subss xmm8, dword [rax + 0x5c]
subss xmm7, dword [rax + 0x60]
movaps xmm2, xmm9
movaps xmm0, xmm8
mulss xmm2, xmm9
mulss xmm0, xmm8
movaps xmm3, xmm7
mulss xmm3, xmm7
addss xmm0, xmm2
addss xmm0, xmm3
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_sqrtf]
movaps xmm6, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm9
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_atan2f]
divss xmm8, xmm6
movaps xmm7, xmm0
subss xmm7, dword [0x1800737bc]
movaps xmm0, xmm8
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_asinf]
mov rax, qword [0x180079ba8]
movaps xmm1, xmm7
movaps xmm6, xmm0
subss xmm0, dword [rax + 4]
subss xmm1, dword [rax]
mulss xmm0, dword [0x18007382c]
mulss xmm1, dword [0x18007382c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_sqrtf]
comiss xmm13, xmm0
jbe 0x18000e5b1
movaps xmm13, xmm0
movaps xmm11, xmm7
movaps xmm12, xmm6
mov rax, qword [0x180079c00]
inc bp
movsx ecx, byte [rax]
movzx eax, bp
cmp eax, ecx
jl 0x18000e3e3
cmp byte [0x180079c18], r12b
je 0x18000e616
ucomiss xmm11, dword [0x1800736e8]
jp 0x18000e5ea
jne 0x18000e5ea
ucomiss xmm12, dword [0x1800736e8]
jp 0x18000e5ea
je 0x18000e616
comiss xmm13, dword [0x180079094]
ja 0x18000e616
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000e616
mov rax, qword [0x180079ba8]
movss dword [rax], xmm11
movss dword [rax + 4], xmm12
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm11, xmmword [r11 - 0x50]
movaps xmm12, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r12
ret