Function at 0x18005fc20
Capabilities:
Allocate or change rwx memory

Disassembly:
mov r11, rsp
push rdi
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1800dc010]
xor rax, rsp
mov qword [rsp + 0x40], rax
movsxd rax, dword [rcx]
mov r15, r8
mov r14, rdx
mov rdi, rcx
cmp eax, 5
jl 0x18005fe07
mov rcx, qword [rcx + 8]
lea r9, [r11 - 0x40]
mov qword [r11 + 0x10], rbx
mov rdx, rax
mov qword [r11 - 0x20], rbp
mov qword [r11 - 0x28], rsi
xor esi, esi
mov dword [rsp + 0x38], esi
lea r8d, [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [rdi + 8]
lea rbp, [rbx + 0x7fffffff]
cmp rbx, rbp
jae 0x18005fcaa
mov edx, 0xc
mov r8d, 0x3000
mov rcx, rbx
lea r9d, [rdx + 0x34]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
inc rbx
mov rsi, rax
test rax, rax
je 0x18005fc82
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov qword [rdi + 0x10], rsi
test rsi, rsi
je 0x18005fe2a
mov byte [rsi], 0x48
xor ecx, ecx
mov rax, qword [rdi + 0x10]
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
mov byte [rax + 1], 0xb8
mov rax, qword [rdi + 0x10]
mov qword [rax + 2], r14
mov rax, qword [rdi + 0x10]
mov byte [rax + 0xa], 0xff
mov rax, qword [rdi + 0x10]
mov byte [rax + 0xb], 0xe0
mov eax, dword [rdi]
add eax, 0x16
movsxd rdx, eax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rdi + 0x18], rax
test rax, rax
je 0x18005fe4d
mov qword [r15], rax
movsxd r8, dword [rdi]
mov rdx, qword [rdi + 8]
mov rcx, qword [rdi + 0x18]
call sub.VCRUNTIME140.dll_memcpy
movsxd rcx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov dword [rcx + rax], 0x24448948
mov word [rcx + rax + 4], 0x48f0
mov byte [rcx + rax + 6], 0xb8
movsxd rdx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov rcx, qword [rdi + 8]
add rcx, rdx
mov qword [rax + rdx + 7], rcx
movsxd rcx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov dword [rcx + rax + 0xf], 0x448b4850
mov word [rcx + rax + 0x13], 0xf824
mov byte [rcx + rax + 0x15], 0xc3
mov rax, qword [rdi + 8]
mov ecx, dword [rdi + 0x10]
sub ecx, dword [rdi + 8]
sub ecx, 5
mov byte [rax], 0xe9
mov rax, qword [rdi + 8]
mov dword [rax + 1], ecx
mov eax, dword [rdi]
cmp eax, 5
jle 0x18005fd9f
mov rcx, qword [rdi + 8]
add eax, 0xfffffffb
movsxd r8, eax
add rcx, 5
mov edx, 0x90
call sub.VCRUNTIME140.dll_memset
movsxd rdx, dword [rdi]
lea r9, [rsp + 0x38]
mov r8d, dword [rsp + 0x38]
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rcx, qword [rdi + 0x10]
lea r9, [rsp + 0x38]
mov edx, 0xc
lea r8d, [rdx + 0x14]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [rdi]
lea r9, [rsp + 0x38]
mov rcx, qword [rdi + 0x18]
add eax, 0x16
movsxd rdx, eax
mov r8d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180082950
add rsp, 0x60
pop r15
pop r14
pop rdi
ret
lea rdx, str.Not_enough_memory_for_the_jmp_instruction
lea rcx, [rsp + 0x20]
call fcn.180056bf0
lea rdx, [0x1800da160]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rdx, str.Failed_to_allocate_memory_for_the_hook
lea rcx, [rsp + 0x20]
call fcn.180056bf0
lea rdx, [0x1800da160]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rdx, str.Failed_to_allocate_memory_for_the_hook
lea rcx, [rsp + 0x20]
call fcn.180056bf0
lea rdx, [0x1800da160]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3