Function at 0x140012040
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x50
xor ebp, ebp
mov r15, r9
mov r13, r8
mov r12, rdx
mov rbx, rcx
mov edi, ebp
test r8, r8
je 0x14001206b
mov qword [r8], rbp
test r15, r15
je 0x140012073
mov qword [r9], rbp
mov rsi, qword [rsp + 0xb0]
test rsi, rsi
je 0x140012083
mov qword [rsi], rbp
test r12, r12
jne 0x14001209c
lea eax, [r12 + 0x57]
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x14006b378], eax
je 0x1400120be
mov eax, 0x10dd
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [0x14006b390]
test eax, eax
jne 0x14001241d
test rbx, rbx
jne 0x1400120e3
lea eax, [rbx + 6]
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rbx]
test rcx, rcx
jne 0x14001210e
mov edi, 6
mov qword [0x14006b398], rbx
mov dword [0x14006b390], edi
mov eax, edi
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x48], r14
xor edx, edx
mov r14, rbp
mov rbx, rbp
call fcn.140012430
xor edx, edx
mov rcx, r12
mov rbp, rax
call fcn.140012430
mov qword [rsp + 0x30], rax
cmp rax, rbp
jne 0x140012148
cmp dword [0x14006b388], ebx
jne 0x140012407
jmp 0x1400123b2
test r15, r15
je 0x140012150
mov qword [r15], rbp
test rsi, rsi
je 0x140012158
mov qword [rsi], rax
mov ecx, 0x30
call fcn.140024c18
mov r14, rax
test rax, rax
jne 0x140012172
lea edi, [rax + 8]
jmp 0x1400123b2
mov rcx, rbp
call fcn.140011ae0
mov rbx, rax
test rax, rax
jne 0x14001218a
lea edi, [rax + 8]
jmp 0x1400123b2
test r13, r13
je 0x140012193
mov qword [r13], rbx
xor eax, eax
mov rsi, rbp
mov qword [rbx + 0x40], rax
mov r12, rbx
lea rax, [rbx + 0x1e]
xor r15d, r15d
mov qword [rsp + 0xa8], rax
nop
lea rax, [rsp + 0x98]
mov dword [rsp + 0x98], 0
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rsp + 0xa8]
mov rcx, r12
mov rdi, rsi
call fcn.140013430
mov rsi, rax
movsxd rax, dword [rsp + 0x98]
sub rax, rdi
mov r8d, esi
add rax, rsi
sub r8d, ebp
add r12, rax
movzx eax, r8b
and al, 7
movzx r9d, r12b
sub r9b, bl
movzx ecx, r9b
mov byte [rsp + 0xb0], r9b
shl cl, 3
or cl, al
mov byte [r15 + rbx + 0x40], cl
inc r15d
cmp r15d, 8
jae 0x140012287
movzx ecx, byte [rdi]
lea eax, [rcx + 0x3e]
cmp al, 0x29
ja 0x140012241
movabs rdx, 0x28040000403
bt rdx, rax
jb 0x140012287
cmp cl, 0xf3
jne 0x14001224c
cmp byte [rdi + 1], 0xc3
jmp 0x140012279
cmp cl, 0xff
jne 0x140012257
cmp byte [rdi + 1], 0x25
jmp 0x140012279
sub cl, 0x26
cmp cl, 0x3f
ja 0x14001227b
movabs rax, 0xc000000001010101
bt rax, rcx
jae 0x14001227b
cmp byte [rdi + 1], 0xff
jne 0x14001227b
cmp byte [rdi + 2], 0x25
je 0x140012287
cmp r8d, 5
jb 0x1400121b0
jmp 0x1400122c4
cmp r8d, 5
jae 0x1400122ba
nop dword [rax]
mov rcx, rsi
call fcn.140011da0
test eax, eax
je 0x1400123a4
cdqe
add rsi, rax
mov r8d, esi
sub r8d, ebp
cmp r8d, 5
jb 0x140012290
movzx r9d, byte [rsp + 0xb0]
cmp r15d, 8
ja 0x1400123a4
cmp r12, qword [rsp + 0xa8]
jbe 0x1400122cf
int3
lea rcx, [rbx + 0x20]
mov byte [rbx + 0x1e], r9b
mov rdx, rbp
mov byte [rbx + 0x3e], r8b
mov edi, r8d
call fcn.140026110
cmp rdi, 0x19
jbe 0x1400122f6
mov edi, 6
jmp 0x1400123b2
movzx r8d, byte [rbx + 0x1e]
lea rax, [rdi + rbp]
mov qword [rbx + 0x48], rax
add r8, rbx
mov rax, qword [rsp + 0x30]
mov qword [rbx + 0x50], rax
mov eax, ebx
lea rcx, [r8 + 6]
mov word [r8], 0x25ff
sub eax, ecx
lea rcx, [r8 + 6]
add eax, 0x48
mov dword [r8 + 2], eax
mov rdx, qword [rsp + 0xa8]
call fcn.140011d50
lea r9, [rsp + 0xa0]
mov dword [rsp + 0xa0], 0
mov r8d, 0x40
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140012368
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1400123b2
mov rax, qword [rsp + 0x90]
mov qword [r14 + 0x10], rax
mov dword [r14 + 8], 0
mov qword [r14 + 0x20], rbx
mov qword [r14 + 0x18], rbp
mov eax, dword [rsp + 0xa0]
mov dword [r14 + 0x28], eax
mov rax, qword [0x14006b3a8]
mov qword [r14], rax
xor eax, eax
mov qword [0x14006b3a8], r14
jmp 0x140012418
cmp dword [0x14006b388], 0
mov edi, 9
jne 0x1400123bd
mov dword [0x14006b390], edi
test rbx, rbx
je 0x1400123fa
xorps xmm0, xmm0
mov rcx, rbx
movups xmmword [rbx], xmm0
and rcx, 0xffffffffffff0000
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x50], xmm0
mov rax, qword [rcx + 0x10]
mov qword [rbx + 0x48], rax
mov qword [rcx + 0x10], rbx
test r13, r13
je 0x1400123fa
mov qword [r13], 0
test r14, r14
je 0x140012407
mov rcx, r14
call fcn.140024c54
mov rax, qword [rsp + 0x90]
mov qword [0x14006b398], rax
mov eax, edi
mov r14, qword [rsp + 0x48]
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret