Function at 0x180027410
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 0x18002743b
mov qword [r8], rbp
test r15, r15
je 0x180027443
mov qword [r9], rbp
mov rsi, qword [rsp + 0xb0]
test rsi, rsi
je 0x180027453
mov qword [rsi], rbp
test r12, r12
jne 0x18002746c
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 [0x180299398], eax
je 0x18002748e
mov eax, 0x10dd
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [0x18029939c]
test eax, eax
jne 0x1800277f2
test rbx, rbx
jne 0x1800274b3
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 0x1800274de
mov edi, 6
mov qword [0x1802993a0], rbx
mov dword [0x18029939c], 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.180027a10
xor edx, edx
mov rcx, r12
mov rbp, rax
call fcn.180027a10
mov qword [rsp + 0x30], rax
cmp rax, rbp
jne 0x180027518
cmp dword [0x180299390], ebx
jne 0x1800277dc
jmp 0x180027782
test r15, r15
je 0x180027520
mov qword [r15], rbp
test rsi, rsi
je 0x180027528
mov qword [rsi], rax
mov ecx, 0x30
call fcn.1801860bc
mov r14, rax
test rax, rax
jne 0x180027542
lea edi, [rax + 8]
jmp 0x180027782
mov rcx, rbp
call fcn.180028170
mov rbx, rax
test rax, rax
jne 0x18002755a
lea edi, [rax + 8]
jmp 0x180027782
test r13, r13
je 0x180027563
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.180028780
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 0x180027657
movzx ecx, byte [rdi]
lea eax, [rcx + 0x3e]
cmp al, 0x29
ja 0x180027611
movabs rdx, 0x28040000403
bt rdx, rax
jb 0x180027657
cmp cl, 0xf3
jne 0x18002761c
cmp byte [rdi + 1], 0xc3
jmp 0x180027649
cmp cl, 0xff
jne 0x180027627
cmp byte [rdi + 1], 0x25
jmp 0x180027649
sub cl, 0x26
cmp cl, 0x3f
ja 0x18002764b
movabs rax, 0xc000000001010101
bt rax, rcx
jae 0x18002764b
cmp byte [rdi + 1], 0xff
jne 0x18002764b
cmp byte [rdi + 2], 0x25
je 0x180027657
cmp r8d, 5
jb 0x180027580
jmp 0x180027694
cmp r8d, 5
jae 0x18002768a
nop dword [rax]
mov rcx, rsi
call fcn.180028580
test eax, eax
je 0x180027774
cdqe
add rsi, rax
mov r8d, esi
sub r8d, ebp
cmp r8d, 5
jb 0x180027660
movzx r9d, byte [rsp + 0xb0]
cmp r15d, 8
ja 0x180027774
cmp r12, qword [rsp + 0xa8]
jbe 0x18002769f
int3
lea rcx, [rbx + 0x20]
mov byte [rbx + 0x1e], r9b
mov rdx, rbp
mov byte [rbx + 0x3e], r8b
mov edi, r8d
call fcn.1801a4560
cmp rdi, 0x19
jbe 0x1800276c6
mov edi, 6
jmp 0x180027782
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.180028530
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 0x180027738
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x180027782
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 [0x1802993b0]
mov qword [r14], rax
xor eax, eax
mov qword [0x1802993b0], r14
jmp 0x1800277ed
cmp dword [0x180299390], 0
mov edi, 9
jne 0x18002778d
mov dword [0x18029939c], edi
test rbx, rbx
je 0x1800277ca
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 0x1800277ca
mov qword [r13], 0
test r14, r14
je 0x1800277dc
mov edx, 0x30
mov rcx, r14
call fcn.180186100
mov rax, qword [rsp + 0x90]
mov qword [0x1802993a0], 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