Function at 0x180001100
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor ebx, ebx
mov rbp, rdx
mov r15, rcx
test rcx, rcx
je 0x180001379
test rdx, rdx
je 0x180001379
mov rsi, qword [rcx]
mov edi, ebx
test rsi, rsi
je 0x180001379
call fcn.180001044
mov rcx, rsi
call fcn.18000143c
mov rcx, rbp
mov rsi, rax
call fcn.18000143c
mov r13, rax
mov ebp, ebx
mov r14, rsi
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.180001abc
test eax, eax
je 0x180001362
add ebp, eax
mov eax, eax
add r14, rax
cmp ebp, 5
jb 0x18000115c
mov edx, ebp
mov rcx, rsi
call fcn.18000154c
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180001704
mov rdi, rax
test rax, rax
je 0x18000135d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r9d, 0x40
mov r8d, ebp
mov r12, rax
mov dword [rsp + 0xb0], ebx
lea rax, [rsp + 0xb0]
mov dword [rsp + 0xa0], ebx
mov rcx, r12
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov r14d, ebp
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x18000130d
mov r9d, 0x40
lea rax, [rsp + 0xa0]
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov rcx, r12
lea r8d, [r9 + 0x38]
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x1800012d2
lea r10, [rdi + 0x38]
mov rdx, rdi
sub rdx, rsi
mov r8, r10
sub r8, rsi
mov rcx, rsi
mov r9d, r14d
mov al, byte [rcx]
mov byte [r8 + rcx], al
mov byte [rdx + rcx + 0x58], al
inc rcx
sub r9, 1
jne 0x180001225
lea rdx, [rsi + rbp]
lea rcx, [r10 + rbp]
call section..text
mov rcx, rsi
mov rax, r13
sub rcx, r13
sub rax, rsi
cmp r13, rsi
mov rdx, r13
cmovb rax, rcx
cmp rax, 0x7fff0000
jbe 0x180001288
lea rcx, [rdi + 0x18]
call section..text
sub rax, rdi
lea rdx, [rdi + 0x18]
mov rcx, r12
lea r8, [rax - 0x18]
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
lea rdx, [rdi + 0x18]
lea r10, [rdi + 0x38]
mov rcx, rsi
call section..text
mov r8, r14
mov dword [rdi + 8], ebp
mov rdx, r10
mov qword [rdi], rsi
mov rcx, r12
mov qword [rdi + 0x10], r13
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov r9d, dword [rsp + 0xa0]
lea rax, [rsp + 0xa0]
mov r8d, 0x78
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
jmp 0x1800012d8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, r14
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov r9d, dword [rsp + 0xb0]
lea rax, [rsp + 0xb0]
mov r8, r14
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
jmp 0x180001313
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [rdi], rbx
je 0x180001321
lea rax, [rdi + 0x38]
mov qword [r15], rax
jmp 0x18000135d
lea rdx, [0x180004290]
mov eax, ebx
mov rcx, rdx
cmp qword [rcx], rdi
je 0x18000133f
inc eax
add rcx, 8
cmp eax, 0x40
jb 0x18000132d
jmp 0x18000135a
mov qword [rdx + rax*8], rbx
mov r8d, 0x8000
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
dec dword [0x18000425c]
mov rdi, rbx
call fcn.180001394
lea rcx, [0x180004260]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rdi, rdi
setne bl
mov eax, ebx
jmp 0x18000137b
xor eax, eax
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret