Function at 0x14000c284
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor r12d, r12d
mov rbp, rdx
mov r15, rcx
mov edi, r12d
test rdx, rdx
jne 0x14000c2bb
lea eax, [rdx + 0x57]
jmp 0x14000c56c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
nop dword [rax + rax]
cmp dword [0x140018858], eax
je 0x14000c2d9
mov eax, 0x10dd
jmp 0x14000c56c
mov eax, dword [0x14001885c]
test eax, eax
jne 0x14000c56c
test r15, r15
jne 0x14000c2f5
lea eax, [r15 + 6]
jmp 0x14000c56c
mov rcx, qword [r15]
test rcx, rcx
jne 0x14000c30b
lea edi, [rcx + 6]
mov dword [0x14001885c], edi
jmp 0x14000c563
mov rsi, r12
mov r14, r12
call fcn.14000c588
mov rcx, rbp
mov rbx, rax
call fcn.14000c588
mov r13, rax
cmp rax, rbx
jne 0x14000c33b
cmp dword [0x140018820], r12d
jne 0x14000c563
jmp 0x14000c527
mov ecx, 0x30
call fcn.140001bec
mov r14, rax
test rax, rax
jne 0x14000c357
mov edi, 8
jmp 0x14000c527
mov rcx, rbx
call fcn.14000bf68
mov rsi, rax
test rax, rax
je 0x14000c34d
xor eax, eax
lea rbp, [rsi + 0x1e]
mov qword [rsi + 0x40], rax
mov r8, rbx
mov r12, rsi
and dword [rsp + 0x88], 0
lea rax, [rsp + 0x88]
mov rcx, r12
mov qword [rsp + 0x20], rax
mov rdi, r8
call fcn.14000d2cc
mov r8, rax
movsxd rax, dword [rsp + 0x88]
sub rax, rdi
mov edx, r8d
add rax, r8
sub edx, ebx
add r12, rax
mov al, dl
and al, 7
mov r9b, r12b
sub r9b, sil
mov cl, r9b
shl cl, 3
or cl, al
mov byte [rsi + 0x40], cl
mov al, byte [rdi]
add al, 0x3e
cmp al, 0x29
ja 0x14000c3dd
movabs rcx, 0x28040000403
bt rcx, rax
jb 0x14000c42e
cmp byte [rdi], 0xff
jne 0x14000c3e8
cmp byte [rdi + 1], 0x25
je 0x14000c42e
mov al, byte [rdi]
sub al, 0x26
cmp al, 0x3f
ja 0x14000c400
movabs rcx, 0xc000000000010101
bt rcx, rax
jb 0x14000c405
cmp byte [rdi], 0xe3
jne 0x14000c411
cmp byte [rdi + 1], 0xff
jne 0x14000c411
cmp byte [rdi + 2], 0x25
je 0x14000c42e
cmp edx, 5
jb 0x14000c377
jmp 0x14000c42e
cmp byte [r8], 0x90
jne 0x14000c516
inc r8
mov edx, r8d
sub edx, ebx
cmp edx, 5
jb 0x14000c41c
cmp r12, rbp
jbe 0x14000c439
int3
mov byte [rsi + 0x3e], dl
lea rcx, [rsi + 0x20]
mov edi, edx
mov r8d, edx
mov rdx, rbx
mov byte [rbp], r9b
call sub.msvcrt.dll_memcpy
cmp rdi, 0x19
jbe 0x14000c461
mov edi, 6
jmp 0x14000c527
movzx edx, byte [rbp]
lea rax, [rdi + rbx]
add rdx, rsi
mov qword [rsi + 0x48], rax
mov qword [rsi + 0x50], r13
mov eax, esi
mov r8, rbp
mov r12d, 0
lea rcx, [rdx + 6]
mov word [rdx], 0x25ff
sub eax, ecx
lea rcx, [rdx + 6]
sub r8, rcx
add eax, 0x48
cmp rcx, rbp
mov dword [rdx + 2], eax
cmova r8, r12
test r8, r8
je 0x14000c4aa
mov dl, 0xcc
call sub.msvcrt.dll_memset
lea r9, [rsp + 0x80]
mov dword [rsp + 0x80], r12d
mov r8d, 0x40
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
nop dword [rax + rax]
test eax, eax
jne 0x14000c4e6
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edi, eax
jmp 0x14000c527
mov dword [r14 + 8], r12d
mov qword [r14 + 0x10], r15
mov qword [r14 + 0x20], rsi
mov qword [r14 + 0x18], rbx
mov eax, dword [rsp + 0x80]
mov dword [r14 + 0x28], eax
mov rax, qword [0x140018818]
mov qword [r14], rax
xor eax, eax
mov qword [0x140018818], r14
jmp 0x14000c56c
xor r12d, r12d
mov edi, 9
cmp dword [0x140018820], r12d
jne 0x14000c532
mov dword [0x14001885c], edi
test rsi, rsi
je 0x14000c556
xor edx, edx
mov rbx, rsi
and rbx, 0xffffffffffff0000
mov rcx, rsi
lea r8d, [rdx + 0x60]
call sub.msvcrt.dll_memset
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x48], rax
mov qword [rbx + 0x10], rsi
test r14, r14
je 0x14000c563
mov rcx, r14
call fcn.140001c24
mov eax, edi
mov qword [0x140018840], r15
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret