Function at 0x1800390c0
Capabilities:
Encode data using xor
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x208]
sub rsp, 0x300
mov rax, qword [0x18004c010]
xor rax, rsp
mov qword [rbp + 0x130], rax
mov eax, dword [0x18004c9d8]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x18004c9e0]
mov qword [r11 + 8], rbx
add rax, 0x10e500e8
mov rbx, qword [0x18004c9d0]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
xor r15d, r15d
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
movaps xmmword [r11 - 0xc8], xmm15
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x1b8]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb58], rcx
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x38]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb48], rcx
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov dword [rsp + 0x28], 0x7a
mov rcx, rax
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov edx, 0x404
call rbx
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x60], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0xd0]
mov qword [rbp + 0x68], rax
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x78], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 0x58], rax
mov qword [rbp + 0xe0], r15
mov dword [rbp + 0x64], r15d
mov qword [rbp + 0x80], 8
mov qword [rbp + 0x50], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x50]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xe0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x30]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb18], rcx
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x338]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb50], rcx
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov qword [0x18004cb20], rcx
test rcx, rcx
je 0x18003961e
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x198]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rdx, qword [rbp + 0xd0]
lea r9d, [r15 + 0x18]
xorps xmm0, xmm0
mov qword [0x18004cb00], rdx
add rdx, 0x128
movsd qword [rbp - 0x38], xmm0
lea r8, [rbp - 0x48]
lea rcx, [0x18004c9d0]
movups xmmword [rbp - 0x48], xmm0
call fcn.180037400
mov eax, dword [0x18004c9d8]
movups xmm0, xmmword [rbp - 0x48]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x18004cb20]
add rax, 0x2b0
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
movups xmmword [0x18004c2f0], xmm0
mov qword [rbp + 0x18], rax
movsd xmm0, qword [rbp - 0x38]
movsd qword [0x18004c300], xmm0
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x10d0]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb08], rcx
mov dword [rbp + 0xd8], r15d
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 4
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov dword [rsp + 0x28], 0x7a
mov rcx, rax
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov eax, dword [rbp + 0xd8]
mov dword [0x18004cb30], eax
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x18004cb58]
add rax, 0x158
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd0]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x2a8]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov qword [0x18004cb38], rcx
mov qword [rbp + 0xd0], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rax, qword [rbp + 0xd0]
mov rbx, qword [0x18004c9d0]
mov qword [0x18004cb28], rax
mov eax, dword [0x18004c9d8]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x18004cb38]
add rax, 0x2b0
mov dword [rbp + 0xd8], r15d
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 4
mov qword [rbp + 0x10], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov eax, dword [rbp + 0xd8]
movss xmm15, dword [0x1800453a0]
mov dword [0x18004cb10], eax
mov dword [0x18004cb40], 0x7f7fffff
mov r14d, r15d
mov qword [0x18004caf8], r15
test eax, eax
je 0x18003a39c
mov qword [rsp + 0x318], rsi
mov qword [rsp + 0x320], rdi
mov qword [rsp + 0x2f8], r12
lea r12, [0x18004c288]
mov qword [rsp + 0x2f0], r13
lea r13, [0x18004c060]
movaps xmmword [rsp + 0x2d0], xmm6
movaps xmmword [rsp + 0x2c0], xmm7
movaps xmmword [rsp + 0x2b0], xmm8
movaps xmmword [rsp + 0x2a0], xmm9
movss xmm9, dword [0x1800452c8]
movaps xmmword [rsp + 0x290], xmm10
movss xmm10, dword [0x180045274]
movaps xmmword [rsp + 0x280], xmm11
movss xmm11, dword [0x180045334]
movaps xmmword [rsp + 0x270], xmm12
movss xmm12, dword [0x180045338]
movaps xmmword [rsp + 0x250], xmm14
xorps xmm14, xmm14
movaps xmmword [rsp + 0x260], xmm13
nop dword [rax]
nop word [rax + rax]
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x18004cb28]
mov ecx, r14d
mov qword [rbp + 0xd8], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
lea rcx, [rax + rcx*8]
mov qword [rbp + 0x90], 1
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x98], rax
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0x90]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rdi, qword [rbp + 0xd8]
test rdi, rdi
je 0x18003a31d
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rdi + 0x10d0]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0xa8], rax
mov dword [rbp + 0xd8], r15d
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 4
mov qword [rbp + 0xa0], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0xa0]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov eax, dword [0x18004cb30]
cmp dword [rbp + 0xd8], eax
je 0x18003a31d
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rdi + 0x308]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xd8], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0xb0], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0xb0]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x18003a31d
cmp rcx, qword [0x18004cb20]
je 0x18003a31d
mov eax, dword [0x18004c9d8]
mov rbx, qword [0x18004c9d0]
mov dword [rbp + 0x20], eax
mov rax, qword [0x18004c9e8]
mov qword [rbp + 0x30], rax
lea rax, [rcx + 0x318]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd8], r15
mov dword [rbp + 0x24], r15d
mov qword [rbp + 0x40], 8
mov qword [rbp + 0xc0], 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [rsp + 0x30], r15d
lea r8, [rbp + 0xc0]
mov rcx, rax
mov dword [rsp + 0x28], 0x7a
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov edx, 0x404
call rbx
mov rsi, qword [rbp + 0xd8]
test rsi, rsi
je 0x18003a31d
mov r8d, 0x6d
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.1800381b0
movups xmm0, xmmword [rsp + 0x50]
lea rdx, [rbp - 0x10]
movsd xmm1, qword [rsp + 0x60]
lea rcx, [rbp - 0x20]
movaps xmmword [rbp - 0x10], xmm0
movsd qword [rbp], xmm1
call fcn.180037d50
xor r8d, r8d
lea rcx, [rbp + 0x60]
mov rdx, rsi
call fcn.1800381b0
movups xmm6, xmmword [rbp + 0x60]
lea rdx, [rbp + 0x20]
movsd xmm7, qword [rbp + 0x70]
lea rcx, [rbp - 0x30]
movaps xmmword [rbp + 0x20], xmm6
movsd qword [rbp + 0x30], xmm7
call fcn.180037d50
movaps xmm0, xmm6
movaps xmm1, xmm9
unpckhpd xmm0, xmm6
subsd xmm0, qword [0x18004c2f8]
cvtsd2ss xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm6, qword [0x18004c2f0]
movaps xmm8, xmm0
movaps xmm1, xmm9
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm7, qword [0x18004c300]
addss xmm8, xmm0
movaps xmm1, xmm9
cvtpd2ps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm8, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm8
ja 0x180039bda
xorps xmm0, xmm0
sqrtss xmm0, xmm8
jmp 0x180039be3
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cmp byte [0x18004cae8], r15b
xorps xmm9, xmm9
cvtss2sd xmm0, xmm0
divsd xmm0, qword [0x1800452f8]
cvtsd2ss xmm9, xmm0
movss dword [rbp + 0xd8], xmm9
je 0x180039e73
movss xmm0, dword [0x180045230]
movaps xmm12, xmm14
movaps xmm6, xmm0
movaps xmm8, xmm0
movaps xmm11, xmm14
movaps xmm10, xmm14
movaps xmm13, xmm14
movaps xmm9, xmm15
movaps xmm7, xmm15
mov rbx, r13
nop dword [rax + rax]
mov r8d, dword [rbx + 0x10]
lea rcx, [rbp + 0x20]
mov rdx, rsi
call fcn.1800381b0
movups xmm0, xmmword [rbp + 0x20]
lea rdx, [rbp + 0x60]
movsd xmm1, qword [rbp + 0x30]
lea rcx, [rbp - 0x48]
movaps xmmword [rbp + 0x60], xmm0
movsd qword [rbp + 0x70], xmm1
call fcn.180037d50
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
movups xmm1, xmmword [rax]
comisd xmm0, xmm1
movups xmmword [rbx], xmm1
jbe 0x180039c8e
xorps xmm9, xmm9
cvtsd2ss xmm9, xmm1
jmp 0x180039ca2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
comisd xmm1, xmm0
jbe 0x180039ca2
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm1
movsd xmm1, qword [rbx + 8]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
comisd xmm0, xmm1
jbe 0x180039cba
cvtpd2ps xmm7, xmm1
jmp 0x180039ccd
xorps xmm0, xmm0
cvtss2sd xmm0, xmm8
comisd xmm1, xmm0
jbe 0x180039ccd
cvtpd2ps xmm8, xmm1
mov byte [rbx + 0x14], 1
add rbx, 0x18
cmp rbx, r12
jne 0x180039c40
ucomiss xmm9, xmm15
jp 0x180039ce6
je 0x180039d15
movss xmm0, dword [0x180045230]
ucomiss xmm6, xmm0
jp 0x180039cf5
je 0x180039d15
ucomiss xmm7, xmm15
jp 0x180039cfd
je 0x180039d15
ucomiss xmm8, xmm0
jp 0x180039d05
je 0x180039d15
movaps xmm12, xmm9
movaps xmm11, xmm6
movaps xmm10, xmm7
movaps xmm13, xmm8
cmp byte [0x18004cae4], r15b
subss xmm10, xmm13
je 0x180039dd7
mov rax, qword [0x18004c9c0]
lea r8, str.Foreground
movaps xmm0, xmmword [0x180045570]
mov edx, 1
movaps xmmword [rsp + 0x50], xmm0
cvttss2si edi, xmm13
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
cvttss2si ebx, xmm12
call fcn.180006780
mov r10, rax
movaps xmm0, xmm11
movd xmm1, ebx
subss xmm0, xmm12
cvtdq2ps xmm1, xmm1
cvttss2si ecx, xmm0
movss dword [rsp + 0x78], xmm1
add ecx, ebx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si ecx, xmm10
movss dword [rsp + 0x70], xmm0
add ecx, edi
movd xmm0, ecx
lea rcx, [rsp + 0x50]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x74], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x7c], xmm0
call fcn.1800030f0
mov r9d, eax
mov dword [rsp + 0x28], r15d
lea rdx, [rsp + 0x78]
movss dword [rsp + 0x20], xmm14
lea r8, [rsp + 0x70]
mov rcx, r10
call fcn.180025a50
lea rdx, [rsi + 0x360]
call fcn.18003c050
lea rdx, [rsi + 0x368]
movaps xmm6, xmm0
subss xmm11, xmm12
call fcn.18003c050
addss xmm0, dword [0x18004524c]
lea rcx, [rsp + 0x50]
comiss xmm0, xmm6
jb 0x180039e17
movaps xmm4, xmmword [0x1800455c0]
movups xmmword [rsp + 0x50], xmm4
jmp 0x180039e23
movaps xmm0, xmmword [0x1800455b0]
movups xmmword [rsp + 0x50], xmm0
call fcn.1800030f0
movss xmm0, dword [0x1800452a8]
movaps xmm3, xmm10
movss dword [rsp + 0x28], xmm0
movaps xmm2, xmm11
movaps xmm0, xmm12
mov dword [rsp + 0x20], eax
movaps xmm1, xmm13
call fcn.180038c80
movss xmm12, dword [0x180045338]
movss xmm11, dword [0x180045334]
movss xmm10, dword [0x180045274]
movss xmm9, dword [rbp + 0xd8]
cmp byte [0x18004cae5], r15b
movsd xmm7, qword [rbp - 0x28]
movsd xmm8, qword [rbp - 0x30]
je 0x180039f9d
lea rdx, [rsi + 0x360]
call fcn.18003c050
lea rdx, [rsi + 0x368]
movaps xmm6, xmm0
call fcn.18003c050
mov rax, qword [0x18004c9c0]
lea r8, str.Foreground
addss xmm0, dword [0x18004524c]
mov edx, 1
mov rcx, qword [rax + 0x48b0]
comiss xmm0, xmm6
mov rcx, qword [rcx]
jb 0x180039f2b
movaps xmm0, xmmword [0x1800455c0]
movaps xmmword [rsp + 0x50], xmm0
call fcn.180006780
cvtpd2ps xmm0, xmm8
lea rcx, [rsp + 0x50]
mov r10, rax
cvtpd2ps xmm1, xmm7
movss dword [rbp - 0x80], xmm0
movd xmm0, dword [0x18004cb70]
movss dword [rbp - 0x7c], xmm1
movd xmm1, dword [0x18004cb7c]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
call fcn.1800030f0
lea rdx, [rbp - 0x78]
lea r8, [rbp - 0x80]
jmp 0x180039f84
movaps xmm0, xmmword [0x1800455b0]
movaps xmmword [rsp + 0x50], xmm0
call fcn.180006780
cvtpd2ps xmm0, xmm8
lea rcx, [rsp + 0x50]
mov r10, rax
cvtpd2ps xmm1, xmm7
movss dword [rbp - 0x70], xmm0
movd xmm0, dword [0x18004cb70]
movss dword [rbp - 0x6c], xmm1
movd xmm1, dword [0x18004cb7c]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x68], xmm0
movss dword [rbp - 0x64], xmm1
call fcn.1800030f0
lea rdx, [rbp - 0x68]
lea r8, [rbp - 0x70]
movss xmm0, dword [0x180045254]
mov r9d, eax
mov rcx, r10
movss dword [rsp + 0x20], xmm0
call fcn.1800257e0
cmp byte [0x18004cae7], r15b
je 0x18003a161
movaps xmm0, xmmword [0x180045580]
mov rcx, r15
movaps xmmword [rsp + 0x50], xmm0
mov dword [rbp + 0xe0], 0xe044f45
mov word [rbp + 0xe4], pe_nt_image_headers64
nop dword [rax]
lea eax, [rcx + 0x60]
xor byte [rbp + rcx + 0xe0], al
inc rcx
cmp rcx, 4
jb 0x180039fd0
xorps xmm2, xmm2
mov byte [rbp + 0xe5], r15b
cvtss2sd xmm2, xmm9
lea rdx, [rbp + 0xe0]
lea rcx, [rbp + 0xf0]
movq r8, xmm2
call fcn.18003c110
mov rbx, qword [0x18004c9c0]
lea rax, [rbp + 0xf0]
movss xmm0, dword [0x1800453ac]
lea rdx, [rbp + 0xd0]
mov qword [rsp + 0x30], r15
movaps xmm3, xmm15
mov qword [rsp + 0x28], rax
movss xmm2, dword [rbx + 0x3c10]
mov rcx, qword [rbx + 0x3c08]
movss dword [rsp + 0x20], xmm0
call fcn.180029890
movss xmm0, dword [rbp + 0xd0]
lea r8, str.Foreground
addss xmm0, dword [0x1800452a0]
mov edx, 1
cvttss2si eax, xmm0
movd xmm6, eax
mov rax, qword [rbx + 0x48b0]
cvtdq2ps xmm6, xmm6
mov rcx, qword [rax]
movss dword [rbp + 0xd0], xmm6
call fcn.180006780
lea rcx, [rsp + 0x50]
mov r8, rax
call fcn.1800030f0
movss xmm1, dword [rbp + 0xd4]
mov r9d, eax
mulss xmm6, xmm10
mulss xmm1, xmm10
cvtps2pd xmm0, xmm6
subsd xmm8, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm8
movss dword [rbp - 0x60], xmm0
cvtps2pd xmm0, xmm1
subsd xmm7, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
movss dword [rbp - 0x5c], xmm0
test eax, 0xff000000
je 0x18003a161
lea rcx, [rbp + 0xf0]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r15b
jne 0x18003a0f0
lea rcx, [rbp + 0xf0]
add rcx, rax
lea rax, [rbp + 0xf0]
cmp rax, rcx
je 0x18003a161
mov rax, qword [r8 + 0x38]
mov rdx, r8
movups xmm0, xmmword [r8 + 0x88]
mov byte [rsp + 0x48], r15b
movss dword [rsp + 0x40], xmm14
movss xmm2, dword [rax + 0x10]
mov qword [rsp + 0x38], rcx
lea rcx, [rbp + 0xf0]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rax + 8]
mov dword [rsp + 0x20], r9d
lea r9, [rbp - 0x60]
movups xmmword [rsp + 0x50], xmm0
call fcn.180029ab0
cmp byte [0x18004cae6], r15b
je 0x18003a29a
mov rax, qword [0x18004c9c0]
lea r8, str.Foreground
movd xmm7, dword [0x18004cb7c]
mov edx, 1
movd xmm6, dword [0x18004cb74]
cvtdq2ps xmm7, xmm7
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
cvtdq2ps xmm6, xmm6
call fcn.180006780
lea rcx, [rsp + 0x50]
mov r10, rax
movaps xmm0, xmmword [0x180045600]
movups xmmword [rsp + 0x50], xmm0
mulss xmm7, xmm10
mulss xmm6, xmm10
movaps xmm0, xmm7
addss xmm0, xmm11
movaps xmm1, xmm6
movss dword [rbp - 0x58], xmm6
subss xmm1, dword [0x1800452a8]
movss dword [rbp - 0x54], xmm0
movaps xmm0, xmm7
subss xmm0, xmm12
movss dword [rbp - 0x50], xmm1
movss dword [rbp - 0x4c], xmm0
call fcn.1800030f0
mov r9d, eax
mov dword [rsp + 0x28], r15d
lea rdx, [rbp - 0x50]
movss dword [rsp + 0x20], xmm14
lea r8, [rbp - 0x58]
mov rcx, r10
call fcn.180025a50
mov rax, qword [0x18004c9c0]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
call fcn.180006780
movaps xmm0, xmmword [0x180045600]
lea rcx, [rsp + 0x50]
movaps xmm1, xmm6
movss dword [rbp + 0x54], xmm7
subss xmm7, dword [0x1800452a8]
addss xmm1, xmm11
mov r10, rax
subss xmm6, xmm12
movups xmmword [rsp + 0x50], xmm0
movss dword [rbp + 0x14], xmm7
movss dword [rbp + 0x50], xmm1
movss dword [rbp + 0x10], xmm6
call fcn.1800030f0
mov r9d, eax
mov dword [rsp + 0x28], r15d
lea rdx, [rbp + 0x10]
movss dword [rsp + 0x20], xmm14
lea r8, [rbp + 0x50]
mov rcx, r10
call fcn.180025a50
movsd xmm2, qword [rbp - 0x20]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [0x18004cb70]
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [0x18004cb78]
subsd xmm2, xmm0
movsd xmm0, qword [rbp - 0x18]
subsd xmm0, xmm1
mulsd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm2
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x18003a2e3
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x18003a2eb
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x18004c28c]
comiss xmm1, xmm0
movss xmm9, dword [0x1800452c8]
jb 0x18003a31d
movss xmm1, dword [0x18004cb40]
comiss xmm1, xmm0
jbe 0x18003a31d
movss dword [0x18004cb40], xmm0
mov qword [0x18004caf8], rsi
inc r14d
cmp r14d, dword [0x18004cb10]
jb 0x1800398a0
movaps xmm14, xmmword [rsp + 0x250]
movaps xmm13, xmmword [rsp + 0x260]
movaps xmm12, xmmword [rsp + 0x270]
movaps xmm11, xmmword [rsp + 0x280]
movaps xmm10, xmmword [rsp + 0x290]
movaps xmm9, xmmword [rsp + 0x2a0]
movaps xmm8, xmmword [rsp + 0x2b0]
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm6, xmmword [rsp + 0x2d0]
mov r13, qword [rsp + 0x2f0]
mov r12, qword [rsp + 0x2f8]
mov rdi, qword [rsp + 0x320]
mov rsi, qword [rsp + 0x318]
cmp byte [0x18004c290], 0
movaps xmm15, xmmword [rsp + 0x240]
mov r15, qword [rsp + 0x2e0]
mov r14, qword [rsp + 0x2e8]
mov rbx, qword [rsp + 0x310]
je 0x18003a3db
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18003a3db
call fcn.180038e60
mov rcx, qword [rbp + 0x130]
xor rcx, rsp
call fcn.18003cdf0
add rsp, 0x300
pop rbp
ret