Function at 0x18003a880
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x18004f010]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, qword [0x18004f908]
lea rdx, str.Inside_the_Backrooms
lea rcx, str.UnityWndClass
call qword [sym.imp.USER32.dll_FindWindowW]
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rcx, str.GameAssembly.dll
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, 0xc8
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rbx], 0
je 0x18003a8a0
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x18003a8a0
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x18003a8a0
xor eax, eax
mov qword [rbx + 0x18], rdx
xorps xmm0, xmm0
mov qword [rsp + 0x40], rax
lea r8, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
lea r9d, [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_K32GetModuleInformation]
mov eax, dword [rsp + 0x38]
mov edi, 1
mov dword [rbx + 0x28], eax
mov rcx, qword [rbx + 0x18]
mov edx, 0x1000
movsxd rax, edi
mov r9d, 0x40
shl rax, 0x10
mov r8d, 0x3000
sub rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbx + 0x20], rax
test rax, rax
jne 0x18003a964
inc edi
cmp edi, 0x1000
jl 0x18003a923
test rax, rax
je 0x18003ad4a
mov edx, 0xcc
mov r8d, 0x1000
mov rcx, rax
call fcn.1800403d4
mov rcx, qword [rbx + 0x20]
lea r9, [0x180046008]
mov r8d, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x18]
mov dword [rsp + 0x28], 2
lea rax, [rcx + 0x200]
mov dword [rsp + 0x20], 0x17
mov qword [rbx + 0x88], rax
lea rax, [rcx + 0x400]
mov qword [rbx + 0x90], rax
lea rax, [rcx + 0x600]
mov qword [rbx + 0x98], rax
lea rax, [rcx + 0x800]
mov rcx, qword [rbx + 8]
mov qword [rbx + 0xa0], rax
call fcn.18003f3c0
mov rdx, rax
mov qword [rsp + 0x20], 0
mov rax, qword [rbx + 0x88]
mov r9d, 5
mov qword [rax], rdx
mov rax, qword [rbx + 0x88]
mov byte [rax + 0x10], 5
mov eax, dword [0x180046080]
mov rcx, qword [rbx + 0x88]
mov dword [rcx + 0x64], eax
movzx eax, byte [0x180046084]
mov byte [rcx + 0x68], al
mov eax, dword [rdx]
mov rcx, qword [rbx + 0x88]
mov dword [rcx + 0xc8], eax
movzx eax, byte [rdx + 4]
mov byte [rcx + 0xcc], al
mov rcx, qword [rbx + 0x88]
movups xmm0, xmmword [0x180046050]
movups xmmword [rcx + 0x12c], xmm0
movsd xmm0, qword [0x180046060]
movsd qword [rcx + 0x13c], xmm0
movzx eax, word [0x180046068]
mov word [rcx + 0x144], ax
mov ecx, dword [rbx + 0x88]
mov rax, qword [rbx + 0x88]
sub ecx, edx
add ecx, 0x127
mov dword [rax + 0x65], ecx
mov rax, qword [rbx + 0x88]
mov byte [rax + 0x6c], 0xeb
mov rax, qword [rbx + 0x88]
mov byte [rax + 0x6d], 0xb
mov rcx, qword [rbx + 0x20]
mov eax, dword [rbx + 0x54]
mov dword [rcx], eax
mov r8, qword [rbx + 0x88]
mov rcx, qword [rbx + 8]
add r8, 0x64
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov r8d, dword [rbx + 0x28]
lea r9, [0x180046070]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
mov dword [rsp + 0x28], 0xfffffffb
mov dword [rsp + 0x20], 0xf
call fcn.18003f3c0
mov rcx, qword [rbx + 0x90]
mov r8, rax
mov qword [rcx], rax
mov rcx, qword [rbx + 0x90]
mov byte [rcx + 0x10], 5
mov ecx, dword [0x180045f98]
mov rdx, qword [rbx + 0x90]
mov dword [rdx + 0x64], ecx
movzx ecx, byte [0x180045f9c]
mov byte [rdx + 0x68], cl
mov eax, dword [rax]
mov rcx, qword [rbx + 0x90]
mov dword [rcx + 0xc8], eax
movzx eax, byte [r8 + 4]
mov byte [rcx + 0xcc], al
lea r9, [0x180045fb0]
mov r8d, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0xe
call fcn.18003f3c0
mov rcx, qword [rbx + 0x98]
lea r9, [0x180045fc0]
mov r8, rax
mov dword [rsp + 0x28], 9
mov dword [rsp + 0x20], 0x12
mov qword [rcx], rax
mov rcx, qword [rbx + 0x98]
mov byte [rcx + 0x10], 5
mov ecx, dword [0x180046080]
mov rdx, qword [rbx + 0x98]
mov dword [rdx + 0x64], ecx
movzx ecx, byte [0x180046084]
mov byte [rdx + 0x68], cl
mov eax, dword [rax]
mov rcx, qword [rbx + 0x98]
mov dword [rcx + 0xc8], eax
movzx eax, byte [r8 + 4]
mov byte [rcx + 0xcc], al
mov rcx, qword [rbx + 0x98]
movsd xmm0, qword [0x180046028]
movsd qword [rcx + 0x12c], xmm0
mov eax, dword [0x180046030]
mov dword [rcx + 0x134], eax
movzx eax, word [0x180046034]
mov word [rcx + 0x138], ax
movzx eax, byte [0x180046036]
mov byte [rcx + 0x13a], al
mov ecx, dword [rbx + 0x98]
mov rax, qword [rbx + 0x98]
sub ecx, r8d
add ecx, 0x127
mov dword [rax + 0x65], ecx
sub r8d, dword [rbx + 0x98]
mov rax, qword [rbx + 0x98]
sub r8d, 0x2dd
mov dword [rax + 0x135], r8d
mov r8d, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
call fcn.18003f3c0
mov rcx, qword [rbx + 0xa0]
lea r9, [0x180046038]
mov r8, rax
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], 0x16
mov qword [rcx], rax
mov rcx, qword [rbx + 0xa0]
mov byte [rcx + 0x10], 5
mov ecx, dword [0x180046080]
mov rdx, qword [rbx + 0xa0]
mov dword [rdx + 0x64], ecx
movzx ecx, byte [0x180046084]
mov byte [rdx + 0x68], cl
mov eax, dword [rax]
mov rcx, qword [rbx + 0xa0]
mov dword [rcx + 0xc8], eax
movzx eax, byte [r8 + 4]
mov byte [rcx + 0xcc], al
mov rcx, qword [rbx + 0xa0]
movups xmm0, xmmword [0x180045ff0]
movups xmmword [rcx + 0x12c], xmm0
mov eax, dword [0x180046000]
mov dword [rcx + 0x13c], eax
mov ecx, dword [rbx + 0xa0]
mov rax, qword [rbx + 0xa0]
sub ecx, r8d
add ecx, 0x127
mov dword [rax + 0x65], ecx
mov r8d, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
call fcn.18003f3c0
mov qword [rbx + 0xa8], rax
mov r8d, dword [rbx + 0x28]
lea r9, [0x180045f80]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
mov dword [rsp + 0x28], 0xffffffde
mov dword [rsp + 0x20], 0x15
call fcn.18003f3c0
mov r8d, dword [rbx + 0x28]
lea r9, [0x180045fd8]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rbx + 8]
mov dword [rsp + 0x28], 0xffffff2e
mov qword [rbx + 0xb0], rax
mov dword [rsp + 0x20], 0x18
call fcn.18003f3c0
mov qword [rbx + 0xb8], rax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.18003f510
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret