Function at 0x180005400
Capabilities:
Allocate or change rwx memory
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
push r15
lea rbp, [rsp - 0x510]
sub rsp, 0x610
mov rax, qword [0x1800a1080]
xor rax, rsp
mov qword [rbp + 0x450], rax
movups xmm0, xmmword [0x1800a1d58]
xor r15d, r15d
lea rcx, [rsp + 0x50]
mov dword [0x1800a3d24], r15d
movups xmmword [rsp + 0x50], xmm0
call fcn.180013280
movups xmm0, xmmword [0x1800a1d08]
lea rcx, [rsp + 0x50]
mov dword [rbp - 0x60], eax
movups xmmword [rsp + 0x50], xmm0
call fcn.180013280
movups xmm0, xmmword [0x1800a1d38]
lea rcx, [rsp + 0x50]
mov dword [rbp - 0x5c], eax
movups xmmword [rsp + 0x50], xmm0
call fcn.180013280
movups xmm0, xmmword [0x1800a1cf8]
lea rcx, [rsp + 0x50]
mov esi, eax
movups xmmword [rsp + 0x50], xmm0
call fcn.180013280
movups xmm0, xmmword [0x1800a1d48]
lea rcx, [rsp + 0x50]
mov dword [rbp + 0x5c], eax
movups xmmword [rsp + 0x50], xmm0
call fcn.180013280
mov rcx, qword [0x1800a3dd8]
mov dword [rbp - 0x78], eax
cmp dword [rcx], 1
jne 0x180006ba3
cmp byte [0x1800a3cf7], r15b
mov qword [rsp + 0x638], rdi
mov qword [rsp + 0x640], r12
mov qword [rsp + 0x608], r13
mov qword [rsp + 0x600], r14
movaps xmmword [rsp + 0x5b0], xmm10
movaps xmmword [rsp + 0x5a0], xmm11
movaps xmmword [rsp + 0x590], xmm12
movaps xmmword [rsp + 0x580], xmm13
movaps xmmword [rsp + 0x570], xmm14
movaps xmmword [rsp + 0x560], xmm15
movss xmm15, dword [0x1800916bc]
mov qword [rsp + 0x630], rbx
je 0x180005625
mov eax, dword [0x1800a3d10]
lea r8, str.Background
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov eax, dword [0x1800a3d14]
cdq
sub eax, edx
sar eax, 1
lea ecx, [rbx + 6]
mov edi, eax
movd xmm0, ecx
lea ecx, [rbx - 5]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
movss dword [rsp + 0x68], xmm0
movd xmm0, ecx
mov rcx, qword [0x1800a3fc8]
cvtdq2ps xmm1, xmm1
mov rdx, qword [rcx + 0x1df0]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdx]
xor edx, edx
movss dword [rsp + 0x6c], xmm1
movss dword [rsp + 0x60], xmm0
movss dword [rsp + 0x64], xmm1
call fcn.180015810
mov rcx, rax
movss dword [rsp + 0x20], xmm15
mov r9d, esi
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
call fcn.180032730
lea eax, [rdi + 6]
movd xmm1, ebx
movd xmm0, eax
lea r8, str.Background
cvtdq2ps xmm0, xmm0
lea eax, [rdi - 5]
xor edx, edx
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x6c], xmm0
movd xmm0, eax
mov rax, qword [0x1800a3fc8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x1df0]
movss dword [rsp + 0x68], xmm1
movss dword [rsp + 0x60], xmm1
mov rcx, qword [rcx]
movss dword [rsp + 0x64], xmm0
call fcn.180015810
mov rcx, rax
movss dword [rsp + 0x20], xmm15
mov r9d, esi
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x60]
call fcn.180032730
cmp byte [0x1800a3cf2], r15b
xorps xmm10, xmm10
movaps xmmword [rsp + 0x5f0], xmm6
je 0x180005837
mov eax, dword [0x1800a3d70]
test eax, eax
je 0x1800057fd
cmp eax, 1
jne 0x1800056d8
mov rbx, qword [0x1800a3e48]
lea edx, [rax + 3]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x18000569c
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], 0x41000000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800a3e50]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800057fd
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rbx], 0x41000000
jmp 0x1800057e7
cmp eax, 2
jne 0x180005764
mov rbx, qword [0x1800a3e48]
lea edx, [rax + 2]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180005728
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], 0x41880000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800a3e50]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800057fd
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rbx], 0x41880000
jmp 0x1800057e7
cmp eax, 3
jne 0x1800057fd
mov rbx, qword [0x1800a3e48]
lea edx, [rax + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800057b4
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], 0x41900000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800a3e50]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800057fd
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rbx], 0x41900000
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
movss xmm6, dword [0x1800a1cf0]
ucomiss xmm10, xmm6
jp 0x180005811
je 0x180005903
mov rbx, qword [0x1800a3e38]
lea r9, [rbp + 0x58]
mov edx, 4
mov rcx, rbx
lea r8d, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
movss dword [rbx], xmm6
jmp 0x1800058ec
mov rbx, qword [0x1800a3e48]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180005880
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], 0x41900000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800a3e50]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800058c9
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], 0x41900000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800a3e38]
lea r9, [rbp + 0x58]
mov edx, 4
mov rcx, rbx
lea r8d, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [rbx], 0x41f00000
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
lea rcx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp byte [0x1800a3d37], r15b
je 0x180005952
mov rbx, qword [0x1800a3de0]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180005952
lea r9, [rbp + 0x58]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x58]
lea r9, [rbp + 0x58]
mov edx, 4
mov dword [rbx], r15d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor edx, edx
mov qword [rbp + 0x60], r15
mov r8d, 0x3d8
lea rcx, [rbp + 0x68]
call fcn.18007f620
xor eax, eax
xor r13b, r13b
mov qword [rbp - 0x50], rax
xorps xmm0, xmm0
mov dword [rbp - 0x48], eax
xorps xmm14, xmm14
mov qword [rbp - 0x40], rax
xorps xmm12, xmm12
mov dword [rbp - 0x38], eax
xorps xmm13, xmm13
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], eax
mov rax, qword [0x1800a3d98]
movups xmmword [rbp + 0x18], xmm0
mov r8, qword [rax]
mov rax, qword [0x1800a3dd0]
movsxd rdx, dword [r8 + 0x28a]
movsxd rcx, dword [rax]
lea r10d, [rdx + 1]
mov dword [rbp - 0x54], r10d
cmp ecx, 0x36
ja 0x1800059d4
movabs r9, 0x414108025106ce
bt r9, rcx
jae 0x1800059d4
mov ecx, 8
jmp 0x180005a4f
cmp ecx, 0xf
jne 0x1800059e0
mov ecx, 5
jmp 0x180005a4f
cmp ecx, 0xe
jne 0x1800059ec
mov ecx, recv
jmp 0x180005a4f
cmp ecx, 0x2f
ja 0x180005a08
movabs r9, 0x8000000a1020
bt r9, rcx
jae 0x180005a08
mov ecx, 0x1e
jmp 0x180005a4f
cmp ecx, 0x29
je 0x180005a4a
lea eax, [rcx - 4]
test eax, 0xffffffdf
je 0x180005a43
cmp ecx, 0x1f
ja 0x180005a2d
mov eax, 0x81000800
bt eax, ecx
jae 0x180005a2d
mov ecx, 4
jmp 0x180005a4f
lea eax, [rcx - 0x1a]
test eax, 0xfffffff9
jne 0x1800059cd
cmp ecx, 0x1e
je 0x1800059cd
mov ecx, 8
jmp 0x180005a4f
mov ecx, reloc.WS2_32.dll_recv
jmp 0x180005a4f
mov ecx, recv
mov rax, qword [r8 + 0x48]
lea r14, [rdx + 1]
mov edi, dword [rbp - 0x80]
mov r9d, r15d
movss xmm11, dword [0x18009167c]
cmp edx, 8
movaps xmmword [rsp + 0x5e0], xmm7
mov r12d, r15d
movss xmm0, dword [rax + 0xa0]
setge r9b
movss dword [0x1800a3d40], xmm0
mov rsi, r15
movss xmm1, dword [rax + 0xa4]
movss dword [0x1800a3d48], xmm1
movss xmm0, dword [rax + 0xa8]
movaps xmmword [rsp + 0x5d0], xmm8
movss dword [0x1800a3d44], xmm0
mov qword [rsp + 0x60], rcx
mov dword [rbp - 0x58], r9d
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r15
mov dword [rbp + 0x58], edi
movaps xmmword [rsp + 0x5c0], xmm9
cmp rcx, 0x1e
je 0x180005b1b
cmp rcx, 0xf
je 0x180005b1b
cmp rcx, 8
jne 0x180005b09
mov eax, r12d
sub eax, r9d
inc eax
cmp r10d, ecx
jle 0x180005afd
cmp eax, ecx
setle r13b
jmp 0x180005c0e
cmp eax, 9
setg r13b
jmp 0x180005c0e
cmp rcx, 0x10
jne 0x180005c0e
mov r13b, 1
jmp 0x180005c17
mov rbx, qword [0x1800a3d98]
mov edx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov rcx, r15
test eax, eax
jne 0x180005b3a
mov rcx, qword [rbx]
lea rbx, [r14 - 1]
mov edx, 8
imul rbx, qword [0x1800a3db8]
add rbx, rcx
lea rcx, [rbx + 0x2a8]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov rdi, r15
test eax, eax
jne 0x180005b69
mov rdi, qword [rbx + 0x2a8]
mov rbx, qword [0x1800a3d98]
mov edx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov rcx, r15
test eax, eax
jne 0x180005b88
mov rcx, qword [rbx]
lea rbx, [rsi - 1]
mov edx, 8
imul rbx, qword [0x1800a3db8]
add rbx, rcx
lea rcx, [rbx + 0x2a8]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x18000650b
mov rsi, qword [rbx + 0x2a8]
test rsi, rsi
jle 0x180006506
lea edx, [rax + 1]
lea rcx, [rdi + 0x11467]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005bda
xor dil, dil
jmp 0x180005be1
movzx edi, byte [rdi + 0x11467]
mov edx, 1
lea rcx, [rsi + 0x11467]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005bfb
xor al, al
jmp 0x180005c02
movzx eax, byte [rsi + 0x11467]
mov rsi, qword [rsp + 0x70]
cmp dil, al
setne r13b
test r13b, r13b
je 0x18000650e
cmp rsi, r14
je 0x18000650e
mov rax, qword [0x1800a3da8]
lea rdi, [rsi - 1]
add rax, 0x18
mov rbx, rdi
imul rbx, qword [0x1800a3db8]
mov edx, 8
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x18000650e
mov rax, qword [rbx]
test rax, rax
je 0x18000650e
lea rbx, [rax + 0x28c]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180005c81
cmp byte [rbx], r15b
jne 0x18000650e
xor eax, eax
lea rcx, [rbp + 0x38]
mov edx, r12d
mov qword [rbp + 0x440], rax
mov dword [rbp + 0x448], eax
mov word [rbp + 0x44c], ax
mov byte [rbp + 0x44e], al
call fcn.180009760
mov rcx, rdi
mov r14, rsi
imul rcx, qword [0x1800a3db8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov rax, qword [0x1800a3da8]
shl r14, 5
mov rbx, qword [rcx + rax]
movups xmmword [rbp + r14 + 0x60], xmm0
movups xmmword [rbp + r14 + 0x70], xmm1
test rbx, rbx
je 0x180005fc9
mov rbx, qword [rbx + 0x28f8]
mov edx, 8
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005d02
movaps xmm0, xmm10
jmp 0x180005d07
movss xmm0, dword [rbx + 0xc]
mov edx, 8
movss dword [rsp + 0x78], xmm0
lea rcx, [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005d26
movaps xmm6, xmm10
jmp 0x180005d2b
movss xmm6, dword [rbx + 0x1c]
mov edx, 8
lea rcx, [rbx + 0x2c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005d44
movaps xmm1, xmm10
jmp 0x180005d49
movss xmm1, dword [rbx + 0x2c]
movsd xmm0, qword [rsp + 0x78]
lea rdx, [rbp - 0x50]
subss xmm6, dword [0x18009179c]
shufps xmm0, xmm0, 0xe1
lea rcx, [rbp - 0x70]
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movsd qword [rsp + 0x78], xmm0
movsd qword [rbp - 0x70], xmm0
movss dword [rbp + 0x58], xmm6
movss dword [rbp - 0x68], xmm6
call fcn.1800095b0
test eax, eax
je 0x180005fc9
imul rdi, qword [0x1800a3db8]
mov rax, qword [0x1800a3da8]
mov rbx, qword [rdi + rax]
test rbx, rbx
je 0x180005fc9
mov rbx, qword [rbx + 0x28f8]
mov edx, 8
add rbx, 0x18c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005dcf
movaps xmm0, xmm10
jmp 0x180005dd3
movss xmm0, dword [rbx]
mov edx, 8
movss dword [rsp + 0x78], xmm0
lea rcx, [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005df2
movaps xmm6, xmm10
jmp 0x180005df7
movss xmm6, dword [rbx + 0x10]
mov edx, 8
lea rcx, [rbx + 0x20]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180005e10
movaps xmm1, xmm10
jmp 0x180005e15
movss xmm1, dword [rbx + 0x20]
movsd xmm0, qword [rsp + 0x78]
lea rdx, [rbp - 0x40]
addss xmm6, dword [0x18009177c]
shufps xmm0, xmm0, 0xe1
lea rcx, [rsp + 0x50]
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movsd qword [rsp + 0x78], xmm0
movsd qword [rsp + 0x50], xmm0
movss dword [rbp + 0x58], xmm6
movss dword [rsp + 0x58], xmm6
call fcn.1800095b0
test eax, eax
je 0x180005fc9
movss xmm0, dword [rbp - 0x4c]
subss xmm0, dword [rbp - 0x3c]
movss xmm3, dword [rbp - 0x40]
cvttss2si edi, dword [rbp - 0x3c]
cvttss2si ecx, xmm0
mov dword [0x1800a3d7c], edi
movaps xmm0, xmm3
mov eax, ecx
mov dword [0x1800a3d84], ecx
cdq
sub eax, edx
sar eax, 1
mov dword [0x1800a3d80], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp byte [0x1800a3cf3], r15b
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [0x1800a3d78], eax
jne 0x180005ecd
cmp byte [0x1800a3cf1], r15b
jne 0x180005ecd
mov ebx, dword [0x1800a3d74]
jmp 0x180006080
mov ebx, dword [0x1800a3d74]
mov eax, dword [0x1800a3d4c]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
movd xmm1, ebx
mov r8d, eax
sub ecx, ebx
mov eax, dword [0x1800a3d54]
cdq
sub eax, edx
sar eax, 1
movd xmm0, ecx
mov ecx, eax
cvtdq2pd xmm0, xmm0
sub ecx, ebx
cvtdq2pd xmm1, xmm1
cvttss2si esi, xmm3
divsd xmm1, qword [0x1800916f0]
addsd xmm0, xmm1
cvtpd2ps xmm7, xmm0
movd xmm0, ecx
mov ecx, edi
sub ecx, eax
mov eax, esi
sub eax, r8d
imul ecx, ecx
cvtdq2pd xmm0, xmm0
imul eax, eax
addsd xmm0, xmm1
add eax, ecx
cvtpd2ps xmm6, xmm0
movd xmm1, eax
xorps xmm0, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm0, xmm1
ja 0x180005f50
sqrtpd xmm0, xmm1
jmp 0x180005f58
movaps xmm0, xmm1
call fcn.18007e468
movd xmm1, esi
cvtdq2ps xmm1, xmm1
cvttsd2si ecx, xmm0
comiss xmm1, xmm7
jbe 0x180005fcf
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rbx + rbx]
sub eax, edx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm7, xmm2
comiss xmm7, xmm1
jbe 0x180005fcf
movd xmm0, edi
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm6
jbe 0x180005fcf
addss xmm6, xmm2
comiss xmm6, xmm0
jbe 0x180005fcf
cmp dword [0x1800a3d24], r15d
jne 0x180005fb8
mov dword [0x1800a3d24], r12d
mov dword [0x1800a3d60], ecx
jmp 0x180005fcf
cmp ecx, dword [0x1800a3d60]
jge 0x180005fcf
mov dword [0x1800a3d24], r12d
jmp 0x180005fcf
mov ebx, dword [0x1800a3d74]
cmp byte [0x1800a3cf1], r15b
je 0x180006080
mov eax, dword [0x1800a3d4c]
mov r9, qword [rbp + 0x18]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov r8d, eax
sub ecx, ebx
movsxd rcx, ecx
cmp r9, rcx
jle 0x180006080
lea ecx, [rax + rbx]
movsxd rdx, ecx
cmp r9, rdx
jge 0x180006080
mov eax, dword [0x1800a3d54]
mov r10, qword [rbp + 0x20]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
sub ecx, ebx
movsxd rcx, ecx
cmp r10, rcx
jle 0x180006080
lea ecx, [rax + rbx]
movsxd rdx, ecx
cmp r10, rdx
jge 0x180006080
sub eax, r10d
sub r8d, r9d
imul eax, eax
xorps xmm0, xmm0
imul r8d, r8d
add eax, r8d
movd xmm1, eax
cvtdq2pd xmm1, xmm1
ucomisd xmm0, xmm1
ja 0x180006056
sqrtpd xmm0, xmm1
jmp 0x18000605e
movaps xmm0, xmm1
call fcn.18007e468
cmp dword [0x1800a3d24], r15d
cvttsd2si eax, xmm0
je 0x180006073
cmp eax, dword [0x1800a3d60]
jge 0x180006080
mov dword [0x1800a3d24], r12d
mov dword [0x1800a3d60], eax
cmp byte [0x1800a3d29], r15b
je 0x180006124
mov ecx, dword [rbp + r14 + 0x68]
cmp ecx, dword [0x1800a3d14]
jge 0x180006124
mov eax, dword [rbp + r14 + 0x70]
lea r8, str.Background
cdq
movd xmm1, ecx
sub eax, edx
mov dword [rbp - 0x24], r15d
sar eax, 1
add eax, dword [rbp + r14 + 0x60]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [0x1800a3d10]
cdq
movss dword [rbp - 0x2c], xmm1
cvtdq2ps xmm0, xmm0
sub eax, edx
xor edx, edx
sar eax, 1
movss dword [rbp - 0x30], xmm0
movd xmm0, eax
mov rax, qword [0x1800a3fc8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x1df0]
movss dword [rbp - 0x28], xmm0
mov rcx, qword [rcx]
call fcn.180015810
mov esi, dword [rbp - 0x78]
lea r8, [rbp - 0x30]
mov rcx, rax
movss dword [rsp + 0x20], xmm15
mov r9d, esi
lea rdx, [rbp - 0x28]
call fcn.180032730
mov ebx, dword [0x1800a3d74]
jmp 0x180006127
mov esi, dword [rbp - 0x78]
cmp byte [0x1800a3d2a], r15b
mov edi, dword [rbp - 0x60]
je 0x18000615c
mov rdx, qword [rbp + r14 + 0x68]
mov rcx, qword [rbp + r14 + 0x60]
mov r9, qword [rbp + r14 + 0x78]
mov r8, qword [rbp + r14 + 0x70]
add r9, rdx
add r8, rcx
mov dword [rsp + 0x20], edi
call fcn.180009250
mov ebx, dword [0x1800a3d74]
cmp byte [0x1800a3d28], r15b
je 0x18000627b
mov rdx, qword [rbp + r14 + 0x60]
lea r8, str.Background
mov rcx, qword [rbp + r14 + 0x68]
xorps xmm6, xmm6
mov rax, qword [rbp + r14 + 0x70]
xorps xmm7, xmm7
add rax, rdx
xorps xmm9, xmm9
xorps xmm8, xmm8
cvtsi2ss xmm9, rcx
cvtsi2ss xmm6, rax
mov rax, qword [rbp + r14 + 0x78]
add rax, rcx
cvtsi2ss xmm8, rdx
xor edx, edx
cvtsi2ss xmm7, rax
mov rax, qword [0x1800a3fc8]
mov rcx, qword [rax + 0x1df0]
mov rcx, qword [rcx]
call fcn.180015810
mov rbx, rax
test edi, 0xff000000
je 0x180006275
test byte [rax + 0x30], 1
addss xmm8, xmm11
addss xmm9, xmm11
mov dword [rsp + 0x20], r15d
movaps xmm3, xmm10
mov rcx, rax
je 0x180006219
subss xmm6, xmm11
movss dword [rbp - 0x18], xmm8
subss xmm7, xmm11
movss dword [rbp - 0x14], xmm9
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x18]
movss dword [rbp - 0x20], xmm6
movss dword [rbp - 0x1c], xmm7
jmp 0x180006247
subss xmm6, dword [0x180091678]
subss xmm7, dword [0x180091678]
movss dword [rbp - 8], xmm8
lea r8, [rbp - 0x10]
movss dword [rbp - 4], xmm9
lea rdx, [rbp - 8]
movss dword [rbp - 0x10], xmm6
movss dword [rbp - 0xc], xmm7
call fcn.1800321c0
mov r8d, dword [rbx + 0x78]
mov r9d, edi
mov rdx, qword [rbx + 0x80]
mov rcx, rbx
movss dword [rsp + 0x28], xmm15
mov dword [rsp + 0x20], 1
call fcn.1800303a0
mov dword [rbx + 0x78], r15d
mov ebx, dword [0x1800a3d74]
cmp byte [0x1800a3cf4], r15b
je 0x1800062f6
mov eax, dword [0x1800a3d10]
lea r8, str.Background
cdq
movd xmm6, ebx
sub eax, edx
sar eax, 1
cvtdq2ps xmm6, xmm6
movd xmm0, eax
mov eax, dword [0x1800a3d14]
cdq
cvtdq2ps xmm0, xmm0
sub eax, edx
xor edx, edx
sar eax, 1
movss dword [rbp], xmm0
movd xmm0, eax
mov rax, qword [0x1800a3fc8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax + 0x1df0]
movss dword [rbp + 4], xmm0
mov rcx, qword [rcx]
call fcn.180015810
movss dword [rsp + 0x28], xmm15
lea rdx, [rbp]
mov rcx, rax
mov dword [rsp + 0x20], r15d
mov r9d, esi
movaps xmm2, xmm6
call fcn.180032e70
cmp byte [0x1800a3d34], r15b
je 0x180006310
mov edx, dword [rbp - 0x5c]
mov r8d, 1
mov ecx, r12d
call fcn.1800040a0
cmp byte [0x1800a3cf5], r15b
mov rbx, qword [rsp + 0x70]
je 0x180006427
mov rax, qword [0x1800a3da8]
lea rcx, [rbx - 1]
imul rcx, qword [0x1800a3db8]
lea rdx, str.HP:__d
movsxd r8, dword [rcx + rax + 0x44]
lea rcx, [rbp + 0x440]
call fcn.180008a80
xorps xmm6, xmm6
lea r8, str.Background
xorps xmm7, xmm7
mov rax, rbx
shl rax, 5
xor edx, edx
cvtsi2ss xmm6, qword [rbp + rax + 0x60]
mov rax, qword [rbp + rax + 0x68]
sub rax, 0x22
cvtsi2ss xmm7, rax
mov rax, qword [0x1800a3fc8]
mov rcx, qword [rax + 0x1df0]
mov rcx, qword [rcx]
call fcn.180015810
mov edi, dword [rbp + 0x5c]
mov r8, rax
test edi, 0xff000000
je 0x18000642a
lea rax, [rbp + 0x440]
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp byte [rax + rcx], r15b
jne 0x1800063b0
lea rdx, [rbp + 0x440]
add rdx, rcx
lea rax, [rbp + 0x440]
cmp rax, rdx
je 0x18000642a
movups xmm0, xmmword [r8 + 0x88]
mov rax, qword [r8 + 0x38]
lea rcx, [rbp + 0x440]
mov byte [rsp + 0x48], r15b
movss dword [rsp + 0x40], xmm10
mov qword [rsp + 0x38], rdx
mov rdx, r8
movss xmm2, dword [rax + 0x10]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 8]
movups xmmword [rbp + 8], xmm0
mov qword [rsp + 0x28], rcx
mov rcx, qword [rax + 8]
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r9, xmm0
mov dword [rsp + 0x20], edi
call fcn.180037880
jmp 0x18000642a
mov edi, dword [rbp + 0x5c]
cmp byte [0x1800a3d35], r15b
je 0x1800064fa
mov rax, qword [0x1800a3da8]
lea rcx, [rbx - 1]
imul rcx, qword [0x1800a3db8]
cmp byte [rcx + rax + 0x28], 1
jne 0x1800064fa
xorps xmm6, xmm6
lea r8, str.Background
xorps xmm7, xmm7
mov rax, rbx
shl rax, 5
xor edx, edx
cvtsi2ss xmm6, qword [rbp + rax + 0x60]
mov rax, qword [rbp + rax + 0x68]
sub rax, 0x2f
cvtsi2ss xmm7, rax
mov rax, qword [0x1800a3fc8]
mov rcx, qword [rax + 0x1df0]
mov rcx, qword [rcx]
call fcn.180015810
test edi, 0xff000000
je 0x1800064fa
mov rdx, qword [rax + 0x38]
lea r8, [0x18008c8ba]
movups xmm0, xmmword [rax + 0x88]
mov byte [rsp + 0x48], r15b
movss dword [rsp + 0x40], xmm10
mov rcx, qword [rdx + 8]
movss xmm2, dword [rdx + 0x10]
mov rdx, rax
mov qword [rsp + 0x38], r8
lea r8, str._C4_
mov qword [rsp + 0x30], r8
lea r8, [rbp + 8]
movups xmmword [rbp + 8], xmm0
mov qword [rsp + 0x28], r8
movaps xmm0, xmm6
mov dword [rsp + 0x20], edi
unpcklps xmm0, xmm7
movq r9, xmm0
call fcn.180037880
mov rsi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
jmp 0x18000650e
mov rsi, qword [rsp + 0x70]
xor r13b, r13b
mov rcx, qword [rsp + 0x60]
inc rsi
mov r9d, dword [rbp - 0x58]
inc r12d
mov r10d, dword [rbp - 0x54]
mov qword [rsp + 0x70], rsi
cmp r12d, 0x1f
jle 0x180005ad3
cmp byte [0x1800a3cf3], r15b
movaps xmm15, xmmword [rsp + 0x560]
movaps xmm11, xmmword [rsp + 0x5a0]
movaps xmm9, xmmword [rsp + 0x5c0]
movaps xmm8, xmmword [rsp + 0x5d0]
mov r14, qword [rsp + 0x600]
mov r13, qword [rsp + 0x608]
mov r12, qword [rsp + 0x640]
je 0x1800067da
movsxd rax, dword [0x1800a3d24]
test eax, eax
je 0x1800067da
lea rbx, [rax - 1]
mov edx, 8
imul rbx, qword [0x1800a3db8]
mov rax, qword [0x1800a3da8]
add rax, 0x18
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800067d3
mov rax, qword [rbx]
test rax, rax
je 0x1800067d3
lea rbx, [rax + 0x28c]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800065e6
cmp byte [rbx], r15b
jne 0x1800067d3
mov ecx, dword [0x1800a3d50]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800067d3
mov ebx, dword [0x1800a3d30]
cmp ebx, 4
jne 0x18000665a
mov rdi, qword [0x1800a3db0]
lea edx, [rbx + 4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov rcx, r15
test eax, eax
jne 0x180006623
mov rcx, qword [rdi]
mov rdi, qword [0x1800a3df0]
mov edx, 8
add rdi, rcx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006645
cmp qword [rdi], 1
je 0x180006655
mov ecx, send
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000665a
mov ebx, 6
cmp byte [0x1800a3cf6], r15b
je 0x180006783
movsd xmm0, qword [0x1800a3d40]
lea rcx, [rsp + 0x50]
mov eax, dword [0x1800a3d48]
mov r8d, ebx
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.180009a70
test eax, eax
je 0x1800067da
movsd xmm0, qword [0x1800a3d40]
lea rcx, [rsp + 0x50]
mov eax, dword [0x1800a3d48]
mov r8d, ebx
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.180009a70
mov ecx, dword [0x1800a3d24]
dec ecx
movsxd rdx, ecx
imul rdx, qword [0x1800a3db8]
mov rcx, qword [0x1800a3da8]
mov r8, qword [rdx + rcx]
test r8, r8
je 0x180006746
shl eax, 6
mov edx, 8
movsxd rbx, eax
add rbx, qword [r8 + 0x28f8]
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006702
movaps xmm14, xmm10
jmp 0x180006708
movss xmm14, dword [rbx + 0xc]
mov edx, 8
lea rcx, [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006721
movaps xmm13, xmm10
jmp 0x180006727
movss xmm13, dword [rbx + 0x1c]
mov edx, 8
lea rcx, [rbx + 0x2c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006740
movaps xmm12, xmm10
jmp 0x180006746
movss xmm12, dword [rbx + 0x2c]
unpcklps xmm14, xmm12
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
movsd qword [rsp + 0x50], xmm14
movss dword [rsp + 0x58], xmm13
call fcn.18000c010
lea rcx, [rsp + 0x50]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.18000be10
jmp 0x1800067da
mov eax, dword [0x1800a3d24]
dec eax
movsxd rcx, eax
imul rcx, qword [0x1800a3db8]
mov rax, qword [0x1800a3da8]
mov rax, qword [rcx + rax]
test rax, rax
je 0x180006746
shl ebx, 6
mov edx, 8
movsxd rbx, ebx
add rbx, qword [rax + 0x28f8]
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006702
movaps xmm14, xmm10
jmp 0x180006708
mov dword [0x1800a3d24], r15d
cmp byte [0x1800a3cf1], r15b
movaps xmm14, xmmword [rsp + 0x570]
movaps xmm13, xmmword [rsp + 0x580]
movaps xmm12, xmmword [rsp + 0x590]
je 0x180006b2d
mov ecx, dword [0x1800a3d50]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180006b2d
movsxd rbx, dword [0x1800a3d24]
mov edx, 8
mov rax, qword [0x1800a3da8]
dec rbx
imul rbx, qword [0x1800a3db8]
add rax, 0x18
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006b2d
mov rax, qword [rbx]
test rax, rax
je 0x180006b2d
lea rbx, [rax + 0x28c]
mov edx, 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x18000687b
cmp byte [rbx], r15b
jne 0x180006b2d
mov ebx, dword [0x1800a3d30]
cmp ebx, 4
jne 0x1800068d7
mov rdi, qword [0x1800a3db0]
lea edx, [rbx + 4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800068a0
mov r15, qword [rdi]
mov rdi, qword [0x1800a3df0]
mov edx, 8
add rdi, r15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800068c2
cmp qword [rdi], 1
je 0x1800068d2
mov ecx, send
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800068d7
mov ebx, 6
movsd xmm0, qword [0x1800a3d40]
lea rcx, [rsp + 0x50]
mov eax, dword [0x1800a3d48]
mov r8d, ebx
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.180009a70
cmp byte [0x1800a3cf6], 0
je 0x180006a36
mov ecx, dword [0x1800a3d24]
dec ecx
movsxd rdx, ecx
imul rdx, qword [0x1800a3db8]
mov rcx, qword [0x1800a3da8]
mov r8, qword [rdx + rcx]
test r8, r8
je 0x180006b7a
shl eax, 6
mov edx, 8
movsxd rbx, eax
add rbx, qword [r8 + 0x28f8]
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006956
movaps xmm7, xmm10
jmp 0x18000695b
movss xmm7, dword [rbx + 0xc]
mov edx, 8
lea rcx, [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006974
movaps xmm6, xmm10
jmp 0x180006979
movss xmm6, dword [rbx + 0x1c]
mov edx, 8
lea rcx, [rbx + 0x2c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006992
movss xmm10, dword [rbx + 0x2c]
mov rbx, qword [0x1800a3e08]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800069db
lea r9, [rbp + 0x5c]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x5c]
lea r9, [rbp + 0x5c]
mov edx, 4
mov dword [rbx], 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
movaps xmm0, xmm7
movss dword [rsp + 0x58], xmm6
unpcklps xmm0, xmm10
mov eax, dword [0x1800a3d48]
lea r8, [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
lea rdx, [rbp - 0x70]
movsd xmm0, qword [0x1800a3d40]
lea rcx, [rbp - 0x50]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
call fcn.18000bc00
lea rcx, [rsp + 0x50]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.18000c190
jmp 0x180006b7a
mov eax, dword [0x1800a3d24]
dec eax
movsxd rcx, eax
imul rcx, qword [0x1800a3db8]
mov rax, qword [0x1800a3da8]
mov rax, qword [rcx + rax]
test rax, rax
je 0x180006ad2
shl ebx, 6
mov edx, 8
movsxd rbx, ebx
add rbx, qword [rax + 0x28f8]
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006a7f
movaps xmm0, xmm10
jmp 0x180006a84
movss xmm0, dword [rbx + 0xc]
mov edx, 8
movss dword [rsp + 0x78], xmm0
lea rcx, [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180006aa3
movaps xmm0, xmm10
jmp 0x180006aa8
movss xmm0, dword [rbx + 0x1c]
mov edx, 8
movss dword [rbp - 0x80], xmm0
lea rcx, [rbx + 0x2c]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006ac6
movss xmm10, dword [rbx + 0x2c]
mov edi, dword [rbp - 0x80]
movss dword [rsp + 0x7c], xmm10
jmp 0x180006ad5
mov edi, dword [rbp + 0x58]
mov rbx, qword [0x1800a3e08]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006b1e
lea r9, [rbp + 0x5c]
mov rcx, rbx
lea edx, [rax + 4]
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x5c]
lea r9, [rbp + 0x5c]
mov edx, 4
mov dword [rbx], 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
movsd xmm0, qword [rsp + 0x78]
mov dword [rsp + 0x58], edi
jmp 0x1800069e8
mov rbx, qword [0x1800a3e08]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180006b73
lea r9, [rbp + 0x5c]
mov rcx, rbx
lea r8d, [rax + 0x40]
lea edx, [rax + 4]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x5c]
lea r9, [rbp + 0x5c]
mov edx, 4
mov dword [rbx], r15d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [0x1800a3d24], r15d
movaps xmm7, xmmword [rsp + 0x5e0]
movaps xmm6, xmmword [rsp + 0x5f0]
mov rbx, qword [rsp + 0x630]
mov rdi, qword [rsp + 0x638]
movaps xmm10, xmmword [rsp + 0x5b0]
mov rcx, qword [rbp + 0x450]
xor rcx, rsp
call fcn.18004f5c0
add rsp, 0x610
pop r15
pop rsi
pop rbp
ret