Function at 0x1800022a0
Capabilities:
Allocate or change rwx memory
Check for software breakpoints

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push r13
push r15
mov rbp, rsp
sub rsp, 0x70
mov r15, rcx
mov r13, r8
movzx ecx, byte [rcx]
lea eax, [rcx + 0x3e]
cmp al, 1
jbe 0x180002576
mov qword [rsp + 0x58], r12
cmp cl, 0xeb
jne 0x180002315
movsx rax, byte [r15 + 1]
lea r8, [r15 + 2]
add r8, rax
cmp byte [r8], 0xff
jne 0x180002315
cmp byte [r8 + 1], 0x25
jne 0x180002315
movzx edx, byte [r15 + 2]
lea rax, [r15 + 2]
xor ecx, ecx
cmp dl, 0xcc
je 0x180002300
cmp dl, 0x90
jne 0x18000230a
nop dword [rax]
inc ecx
lea rax, [rax + 1]
cmp byte [rax], dl
je 0x180002300
movsxd rax, ecx
cmp rax, 3
cmovb r15, r8
mov rcx, r15
call fcn.180002150
mov r12, rax
test rax, rax
je 0x180002567
mov edx, 0x40
mov qword [rsp + 0xa0], rbx
mov r8d, edx
mov qword [rsp + 0x50], r14
lea r9, [rbp + 0x38]
mov rcx, rax
mov r14, r15
lea rbx, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x18000255a
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], rdi
lea rdx, [rbp - 0x50]
mov rcx, r14
call fcn.180001820
test dword [rbp - 0x2f], 0x1000
jne 0x18000253a
movzx ecx, byte [rbp - 0x45]
cmp cl, 0xf
jne 0x1800023a6
movzx ecx, byte [rbp - 0x44]
lea eax, [rcx + 0x80]
cmp al, 0xf
ja 0x180002485
mov eax, dword [rbp - 0x3b]
mov byte [rbx], 0xf
mov byte [rbx + 1], cl
jmp 0x18000246c
lea eax, [rcx - 0x70]
cmp al, 0xf
ja 0x1800023c1
mov eax, dword [rbp - 0x3b]
and cl, 0xf
or cl, 0x80
mov byte [rbx], 0xf
mov byte [rbx + 1], cl
jmp 0x18000246c
cmp cl, 0xe3
jne 0x1800023e0
mov eax, dword [rbp - 0x3b]
mov word [rbx], 0x8548
mov byte [rbx + 2], 0xc9
add rbx, 3
mov word [rbx], 0x840f
jmp 0x18000246c
cmp cl, 0xe8
jne 0x180002404
movsxd rdx, dword [rbp - 0x3b]
mov rcx, rbx
movzx esi, byte [rbp - 0x50]
add rdx, r14
add rdx, rsi
call fcn.180002290
add rbx, 5
jmp 0x18000249a
cmp cl, 0xe9
jne 0x180002427
movzx esi, byte [rbp - 0x50]
mov eax, dword [rbp - 0x3b]
mov byte [rbx], cl
add eax, 0xfffffffb
mov ecx, esi
sub ecx, ebx
add ecx, r14d
add ecx, eax
mov dword [rbx + 1], ecx
add rbx, 5
jmp 0x18000249a
cmp cl, 0xeb
jne 0x18000244c
movsx eax, byte [rbp - 0x3b]
movzx esi, byte [rbp - 0x50]
sub eax, ebx
add eax, r14d
mov byte [rbx], 0xe9
mov ecx, esi
add ecx, 0xfffffffb
add ecx, eax
mov dword [rbx + 1], ecx
add rbx, 5
jmp 0x18000249a
cmp cl, 0xff
jne 0x180002485
movzx eax, byte [rbp - 0x43]
cmp al, 0x15
jne 0x180002460
mov word [rbx], 0x15ff
jmp 0x180002469
cmp al, 0x25
jne 0x180002485
mov word [rbx], 0x25ff
mov eax, dword [rbp - 0x33]
movzx esi, byte [rbp - 0x50]
add eax, 0xfffffffa
mov ecx, esi
sub ecx, ebx
add ecx, r14d
add ecx, eax
mov dword [rbx + 2], ecx
add rbx, 6
jmp 0x18000249a
movzx esi, byte [rbp - 0x50]
mov rdx, r14
mov r8d, esi
mov rcx, rbx
call fcn.180007100
add rbx, rsi
movzx eax, sil
add r14, rax
mov rax, r14
sub rax, r15
cmp rax, 5
jb 0x180002364
mov qword [r12 + 8], r15
lea r9, [rbp + 0x20]
mov edx, 5
mov rax, rbx
sub rax, r12
sub r14d, ebx
add rax, 0x15
sub r14d, 5
and rax, 0xfffffffffffffff0
mov rcx, r15
mov qword [r12], rax
lea r8d, [rdx + 0x3b]
mov rax, qword [rbp + 0x28]
mov word [r12 + 0x10], 0x25ff
mov dword [r12 + 0x12], 2
mov qword [r12 + 0x18], rax
mov byte [rbx], 0xe9
mov dword [rbx + 1], r14d
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x18000253a
mov r8d, dword [rbp + 0x20]
lea r9, [rbp + 0x20]
mov eax, r12d
mov byte [r15], 0xe9
sub eax, r15d
mov edx, 5
add eax, 0xb
mov rcx, r15
mov dword [r15 + 1], eax
lea rax, [r12 + 0x20]
mov qword [r13], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, dword [rbp + 0x38]
lea r9, [rbp + 0x38]
mov edx, 0x40
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
add rsp, 0x70
pop r15
pop r13
pop rbp
ret
mov qword [r8], r15
add rsp, 0x70
pop r15
pop r13
pop rbp
ret