Function at 0x18000f704
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov rax, qword [0x180053400]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rbx, qword [rcx]
xor esi, esi
mov rdi, rdx
mov r14d, esi
mov qword [rbp - 0x51], rcx
call fcn.18000f6b8
mov rcx, rbx
call fcn.18000fb90
mov rcx, rdi
mov r15, rax
call fcn.18000fb90
lea r8d, [rsi + 0x50]
lea rcx, [rbp - 0x41]
xor edx, edx
mov qword [rbp - 0x49], rsi
mov rbx, rax
mov qword [rbp - 0x59], rax
call fcn.180010a00
lea r8, [rbp - 0x49]
lea edx, [rsi + 5]
mov rcx, r15
call fcn.18000f49c
mov edi, eax
cmp eax, 5
jb 0x18000f97f
mov edx, edi
mov rcx, r15
call fcn.18000fcc0
mov r8, qword [rbp - 0x41]
mov rdx, qword [rbp - 0x49]
mov rcx, r15
call fcn.18000fe74
mov r14, rax
test rax, rax
je 0x18000f97a
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r9d, [rsi + 0x40]
mov r8d, edi
mov r13, rax
lea rax, [rbp - 0x65]
mov rdx, r15
mov rcx, r13
mov dword [rbp - 0x65], esi
mov dword [rbp - 0x69], esi
mov qword [rsp + 0x20], rax
mov r12d, edi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x18000f92c
lea rax, [rbp - 0x69]
lea r9d, [rsi + 0x40]
lea r8d, [rsi + 0x78]
mov rdx, r14
mov rcx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x18000f901
lea rdi, [r14 + 0x38]
cmp r12d, esi
jbe 0x18000f837
mov rdx, r15
mov r8, r14
mov rcx, rdi
sub rdx, rdi
sub r8, rdi
mov r9d, r12d
mov al, byte [rdx + rcx]
mov byte [rcx], al
mov byte [r8 + rcx + 0x58], al
inc rcx
dec r9
jne 0x18000f825
lea rdx, [r12 + r15]
lea rcx, [r12 + rdi]
call fcn.18000f674
mov r10, rdi
sub r10, r15
cmp dword [rbp - 0x39], esi
jbe 0x18000f86b
mov r8d, dword [rbp - 0x39]
lea rdx, [rbp - 0x31]
mov ecx, dword [rdx + 8]
mov eax, dword [rdx]
lea rdx, [rdx + 0x10]
sub ecx, r10d
mov dword [rax + rdi], ecx
dec r8
jne 0x18000f857
mov rcx, r15
mov rax, rbx
sub rcx, rbx
sub rax, r15
cmp rbx, r15
cmovb rax, rcx
cmp rax, 0x7fff0000
jbe 0x18000f8ba
mov rdx, qword [rbp - 0x59]
lea rbx, [r14 + 0x18]
mov rcx, rbx
call fcn.18000f674
mov rdx, rbx
mov rcx, r13
sub rax, r14
lea r8, [rax - 0x18]
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rdx, rbx
mov rcx, r15
call fcn.18000f674
mov rbx, qword [rbp - 0x59]
jmp 0x18000f8c5
mov rdx, rbx
mov rcx, r15
call fcn.18000f674
mov eax, r12d
mov r8, r12
mov rdx, rdi
mov rcx, r13
mov qword [r14], r15
mov qword [r14 + 0x10], rbx
mov dword [r14 + 8], eax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov r9d, dword [rbp - 0x69]
lea rax, [rbp - 0x69]
mov r8d, 0x78
mov rdx, r14
mov rcx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov r8, r12
mov rdx, r15
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov r9d, dword [rbp - 0x65]
lea rax, [rbp - 0x65]
mov r8, r12
mov rdx, r15
mov rcx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
cmp qword [r14], rsi
je 0x18000f93e
mov rcx, qword [rbp - 0x51]
lea rax, [r14 + 0x38]
mov qword [rcx], rax
jmp 0x18000f97a
lea rdx, [0x180054d20]
mov eax, esi
mov rcx, rdx
cmp qword [rcx], r14
je 0x18000f95c
inc eax
add rcx, 8
cmp eax, 0x40
jb 0x18000f94a
jmp 0x18000f977
mov qword [rdx + rax*8], rsi
mov r8d, 0x8000
mov rcx, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
dec dword [0x180054cc4]
mov r14, rsi
call fcn.18000fae8
lea rcx, [0x180054cf0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r14, r14
setne sil
mov eax, esi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.180010060
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret