Function at 0x140186d60
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbx
push rsi
push r12
sub rsp, 0x110
mov rax, qword [0x1402b5020]
xor rax, rsp
mov qword [rsp + 0xe0], rax
xor ebx, ebx
mov qword [rsp + 0x48], rcx
mov rsi, rdx
mov r12, rcx
test rdx, rdx
jne 0x140186d9a
mov eax, 0xc000000d
jmp 0x140187167
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
cmp dword [0x1402c309c], ecx
je 0x140186db8
mov eax, 0xc0000476
jmp 0x140187167
mov eax, dword [0x1402c3098]
nop
test eax, eax
jne 0x140187167
test r12, r12
je 0x140186de7
mov rcx, qword [r12]
test rcx, rcx
jne 0x140186df1
mov dword [0x1402c3098], 0xc0000008
mov qword [0x1402c3d78], r12
mov eax, 0xc0000008
jmp 0x140187167
mov qword ss:[rsp + 0x140], rbp
mov qword [rsp + 0x108], rdi
mov rdi, rbx
mov qword [rsp + 0x100], r13
mov qword [rsp + 0xf8], r14
mov r14, rbx
mov qword [rsp + 0xf0], r15
call fcn.140186880
mov rcx, rsi
mov rbp, rax
call fcn.140186880
mov qword [rsp + 0x38], rax
cmp rax, rbp
jne 0x140186e4b
cmp dword [0x1402bfcd4], ebx
jne 0x140187136
jmp 0x1401870e9
mov ecx, 0x30
call fcn.1401dd968
mov rcx, rbp
mov qword [rsp + 0x40], rax
mov r14, rax
call fcn.140186680
mov rdi, rax
test rax, rax
jne 0x140186e77
mov ebx, 0xc0000017
jmp 0x1401870e9
xor eax, eax
mov r8, rbp
mov qword [rdi + 0x40], rax
mov r15, rdi
mov r13d, ebx
movabs r12, 0xc000000001010101
movabs r14, 0x8040000403
nop word [rax + rax]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x70], rbx
test r15, r15
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0xa0]
mov dword [rsp + 0x78], ebx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x98], rbx
cmovne rcx, r15
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x30], ebx
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [0x1402db170]
mov rsi, r8
test r8, r8
jne 0x140186f0b
lea ecx, ds:[r8 + 0xd]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r8, rbx
jmp 0x140186f31
movzx eax, byte [r8]
mov r9, r8
shl rax, 4
mov r8, rcx
add rax, rdx
lea rcx, [rsp + 0x60]
mov rdx, rax
mov rax, qword [rax + 8]
call qword [str.PB__]
mov r8, rax
movsxd rax, dword [rsp + 0x30]
mov edx, r8d
sub rax, rsi
sub edx, ebp
add rax, r8
add r15, rax
movzx r10d, r15b
sub r10b, dil
movzx eax, r10b
shl al, 3
movzx ecx, al
xor cl, dl
and cl, 7
xor cl, al
mov eax, r13d
inc r13d
mov byte [rax + rdi + 0x40], cl
cmp r13d, 8
jae 0x140186fb8
movzx ecx, byte [rsi]
cmp cl, 0xeb
je 0x140186fb8
lea eax, [rcx + 0x3e]
cmp al, 0x27
ja 0x140186f82
bt r14, rax
jb 0x140186fb8
lea r9, [rsi + 1]
cmp cl, 0xf3
jne 0x140187025
cmp byte [r9], 0xc3
je 0x140186fb8
sub cl, 0x26
cmp cl, 0x3f
ja 0x140186faf
bt r12, rcx
jae 0x140186faf
cmp byte [r9], 0xff
jne 0x140186faf
cmp byte [rsi + 2], 0x25
je 0x140186fb8
cmp edx, 5
jb 0x140186ea0
mov r14, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
cmp edx, 5
jae 0x140186fe6
mov rcx, r8
call fcn.140186040
test eax, eax
je 0x1401870db
cdqe
add r8, rax
mov rdx, r8
sub edx, ebp
cmp edx, 5
jb 0x140186fc7
cmp r13d, 8
ja 0x1401870db
lea r13, [rdi + 0x1e]
cmp r15, r13
jbe 0x140186ffa
int3
mov byte [rdi + 0x3e], dl
lea rcx, [rdi + 0x20]
mov esi, edx
mov r8d, edx
mov rdx, rbp
mov byte [r13], r10b
call fcn.1401e3aa0
cmp rsi, 0x19
jbe 0x140187037
mov ebx, 0xc0000008
jmp 0x1401870e9
cmp cl, 0xff
jne 0x140186f95
cmp byte [rsi + 1], 0x25
jmp 0x140186fad
movzx edx, byte [r13]
lea rax, [rsi + rbp]
mov qword [rdi + 0x48], rax
add rdx, rdi
mov rax, qword [rsp + 0x38]
mov qword [rdi + 0x50], rax
mov eax, edi
lea rcx, [rdx + 6]
mov word [rdx], 0x25ff
sub eax, ecx
lea rcx, [rdx + 6]
add eax, 0x48
mov dword [rdx + 2], eax
mov rdx, r13
call fcn.140185fe0
lea rax, ds:[rsp + 0x34]
mov dword [rsp + 0x34], ebx
mov r9d, 0x40
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
mov qword [rsp + 0x58], rbp
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x50], rsi
mov rcx, 0xffffffffffffffff
call qword [sym.imp.ntdll.dll_NtProtectVirtualMemory]
test eax, eax
jns 0x1401870ae
mov ebx, eax
jmp 0x1401870e9
mov dword [r14 + 8], ebx
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x20], rdi
mov qword [r14 + 0x18], rbp
mov eax, dword [rsp + 0x34]
mov dword [r14 + 0x28], eax
mov rax, qword [0x1402c3d90]
mov qword [r14], rax
xor eax, eax
mov qword [0x1402c3d90], r14
jmp 0x14018713f
cmp dword [0x1402bfcd4], 0
mov ebx, 0xc0000141
jne 0x1401870f4
mov dword [0x1402c3098], ebx
test rdi, rdi
je 0x140187124
xorps xmm0, xmm0
mov r9, rdi
movups xmmword [rdi], xmm0
and r9, 0xffffffffffff0000
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x50], xmm0
mov r8, qword [r9 + 0x10]
mov qword [rdi + 0x48], r8
mov qword [r9 + 0x10], rdi
test r14, r14
je 0x140187136
mov edx, 0x30
mov rcx, r14
call fcn.1401dd9a4
mov qword [0x1402c3d78], r12
mov eax, ebx
mov r14, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x108]
mov rbp, qword [rsp + 0x140]
mov r15, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.1401dd6a0
add rsp, 0x110
pop r12
pop rsi
pop rbx
ret