Function at 0x18003f640
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbx
push r15
sub rsp, 0x58
mov rax, qword [0x1800db040]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x50], r14
call qword [0x1800dc698]
mov rdx, qword [0x1800dc6d0]
mov rcx, rax
call rdx
lea rcx, str.UnityEngine.GameObject
mov r14, rax
call fcn.18003f310
xor r15d, r15d
mov rcx, rax
test rax, rax
jne 0x18003f69a
mov esi, r15d
jmp 0x18003f6c1
mov rax, qword [0x1800dc690]
mov rbx, qword [0x1800dc6e0]
call rax
mov rcx, rax
call rbx
mov r8, qword [0x1800dc588]
xor edx, edx
mov rcx, rax
call r8
mov rsi, rax
mov rdi, r15
mov qword [rsp + 0x70], rbp
cmp qword [rsi + 0x18], r15
jbe 0x18003f74c
nop
mov ecx, edi
mov rbp, qword [rsi + rcx*8 + 0x20]
test rbp, rbp
je 0x18003f743
lea rcx, str.UnityEngine.MonoBehaviour
call fcn.18003f310
test rax, rax
je 0x18003f743
mov rdx, qword [0x1800dc690]
mov rcx, rax
mov rbx, qword [0x1800dc6e0]
call rdx
mov rcx, rax
call rbx
mov r10, qword [0x1800dc5f8]
xor r9d, r9d
mov qword [rsp + 0x30], r15
xor r8d, r8d
mov byte [rsp + 0x28], r15b
mov rdx, rax
mov rcx, rbp
mov byte [rsp + 0x20], 1
call r10
test rax, rax
je 0x18003f73b
cmp qword [rax + 0x18], r15
jbe 0x18003f73b
mov rax, qword [rax + 0x20]
jmp 0x18003f73e
mov rax, r15
test rax, rax
jne 0x18003f74f
inc rdi
cmp qword [rsi + 0x18], rdi
ja 0x18003f6d0
mov rax, r15
mov rax, qword [rax + 0x10]
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov rdx, qword [rax]
test rdx, rdx
je 0x18003f80a
mov word [rsp + 0x40], 0xd233
mov r8d, r15d
movzx r9d, word [rsp + 0x40]
mov rax, r15
mov byte [rsp + 0x42], 0xe9
nop dword [rax]
mov rcx, qword [rdx + rax*8]
cmp word [rcx], r9w
jne 0x18003f7a4
cmp byte [rcx + 2], 0xe9
je 0x18003f8e1
inc r8d
inc rax
cmp rax, 0x63
jl 0x18003f790
mov rcx, r15
mov dword [rsp + 0x40], 0x1ba
mov r8d, r15d
mov r10d, dword [rsp + 0x40]
mov rax, r15
mov word [rsp + 0x44], 0xe900
movzx r9d, word [rsp + 0x44]
mov qword [0x1800dc7d8], rcx
nop word [rax + rax]
mov rcx, qword [rdx + rax*8]
cmp dword [rcx], r10d
jne 0x18003f7f4
cmp word [rcx + 4], r9w
je 0x18003f8ed
inc r8d
inc rax
cmp rax, 0x63
jl 0x18003f7e0
mov rcx, r15
mov qword [0x1800dc800], rcx
mov rcx, r14
call qword [0x1800dc6d8]
mov rbx, qword [0x1800dc7d8]
mov r14, qword [rsp + 0x50]
test rbx, rbx
je 0x18003f872
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], r15d
mov edx, 8
mov r8d, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x18003f872
mov rax, qword [rbx]
lea r9, [rsp + 0x40]
mov r8d, dword [rsp + 0x40]
mov edx, 8
mov qword [0x1800dc7e0], rax
mov rcx, rbx
lea rax, [0x18003f5a0]
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [0x1800dc800]
test rbx, rbx
je 0x18003f8cc
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], r15d
mov edx, 8
mov r8d, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x18003f8cc
mov rax, qword [rbx]
lea r9, [rsp + 0x40]
mov r8d, dword [rsp + 0x40]
mov edx, 8
mov qword [0x1800dc808], rax
mov rcx, rbx
lea rax, [0x18003f5f0]
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.18004f720
add rsp, 0x58
pop r15
pop rbx
ret
movsxd rax, r8d
lea rcx, [rdx + rax*8]
jmp 0x18003f7b3
movsxd rax, r8d
lea rcx, [rdx + rax*8]
jmp 0x18003f803