Function at 0x18006a570
Capabilities:
Allocate or change rwx memory

Disassembly:
mov r11, rsp
push rdi
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1800eb040]
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 0x18006a751
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 0x18006a5fa
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 0x18006a5d2
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov qword [rdi + 0x10], rsi
test rsi, rsi
je 0x18006a774
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, 0xc
movsxd rdx, eax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rdi + 0x18], rax
test rax, rax
je 0x18006a797
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 byte [rcx + rax], 0x48
movsxd rcx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov byte [rcx + rax + 1], 0xb8
movsxd rdx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov rcx, qword [rdi + 8]
add rcx, rdx
mov qword [rax + rdx + 2], rcx
movsxd rcx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov byte [rcx + rax + 0xa], 0xff
movsxd rcx, dword [rdi]
mov rax, qword [rdi + 0x18]
mov byte [rcx + rax + 0xb], 0xe0
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 0x18006a6e9
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, 0xc
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.1800903f0
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.18006a510
lea rdx, [0x1800e8e88]
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.18006a510
lea rdx, [0x1800e8e88]
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.18006a510
lea rdx, [0x1800e8e88]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3