Function at 0x140014b80
Capabilities:
Create process on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x310
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x350], rbx
mov rax, qword [0x14012df80]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov rsi, r8
mov r15, rdx
xor ebp, ebp
mov r9d, 0x104
mov r8, rdx
lea rdx, [rsp + 0xf0]
call fcn.140013370
call fcn.14009d5e8
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x140014bf3
mov ecx, 0x80004005
call fcn.1400034f0
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
or r12, 0xffffffffffffffff
test rsi, rsi
je 0x140014c4e
test rsi, 0xffffffffffff0000
jne 0x140014c3a
movzx edi, si
mov ecx, edi
call fcn.1400a1868
test rax, rax
je 0x140014c65
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14000a990
mov rbx, qword [rsp + 0x50]
jmp 0x140014c65
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
jmp 0x140014c50
mov ecx, ebp
mov r8d, ecx
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.140003940
mov rbx, qword [rsp + 0x50]
cmp dword [rbx - 0x10], 0
je 0x140014e04
mov rsi, rbx
mov rdi, rbp
mov r13d, 1
cmp word [rbx], di
je 0x140014cf0
movzx ecx, word [rsi]
call fcn.1400cee90
test eax, eax
je 0x140014c96
test rdi, rdi
jne 0x140014c99
mov rdi, rsi
jmp 0x140014c99
mov rdi, rbp
add rsi, 2
cmp word [rsi], 0
jne 0x140014c80
test rdi, rdi
je 0x140014cf0
sub rdi, rbx
sar rdi, 1
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140014cce
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.140003510
mov rbx, qword [rsp + 0x50]
test edi, edi
js 0x140014ce5
cmp edi, dword [rbx - 0xc]
jg 0x140014ce5
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], 0
jmp 0x140014cf0
mov ecx, 0x80070057
call fcn.1400034f0
int3
lea rcx, [rsp + 0x50]
call fcn.140015aa0
mov rbx, qword [rsp + 0x50]
mov esi, dword [rbx - 0x10]
mov r14d, ebp
test esi, esi
cmovs r14d, esi
xor eax, eax
mov rcx, r12
lea rdi, [0x1400fc5dc]
repne scasw ax, word [rdi]
not rcx
sub rcx, r13
mov rdi, rcx
test ecx, ecx
jle 0x140014e04
add esi, ecx
sub r13d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, r13d
jge 0x140014d4c
mov edx, esi
lea rcx, [rsp + 0x50]
call fcn.140003510
mov rbx, qword [rsp + 0x50]
mov eax, esi
sub eax, edi
sub eax, r14d
add eax, 1
movsxd rdx, eax
add rdx, rdx
movsxd rax, r14d
lea r13, [rbx + rax*2]
movsxd rdi, edi
add rax, rdi
lea rcx, [rbx + rax*2]
mov r9, rdx
mov r8, r13
call fcn.1400cd640
test eax, eax
je 0x140014da2
cmp eax, 0xc
je 0x140014d9c
cmp eax, 0x16
je 0x140014d96
cmp eax, 0x22
je 0x140014d96
cmp eax, 0x50
je 0x140014da2
call fcn.1400a0610
int3
call fcn.1400a0610
int3
call fcn.1400a05c8
int3
lea rdx, [rdi + rdi]
mov r9, rdx
lea r8, [0x1400fc5dc]
mov rcx, r13
call fcn.1400cd500
test eax, eax
je 0x140014de2
cmp eax, 0xc
je 0x140014ddc
cmp eax, 0x16
je 0x140014dd6
cmp eax, 0x22
je 0x140014dd6
cmp eax, 0x50
je 0x140014de2
call fcn.1400a0610
int3
call fcn.1400a0610
int3
call fcn.1400a05c8
int3
test esi, esi
js 0x140014df9
cmp esi, dword [rbx - 0xc]
jg 0x140014df9
mov dword [rbx - 0x10], esi
movsxd rax, esi
mov word [rbx + rax*2], 0
jmp 0x140014e04
mov ecx, 0x80070057
call fcn.1400034f0
int3
xor edx, edx
lea r8d, [rdx + 0x68]
lea rcx, [rsp + 0x80]
call fcn.1400cfef0
mov dword [rsp + 0x80], 0x68
cmp dword [rbx - 8], 1
jle 0x140014e3a
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.140003570
mov rbx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], ebp
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x140014e95
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbp, qword [rsp + 0x58]
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
add r12d, 0xffffffff
test r12d, r12d
jg 0x140014eb1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbp
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.1400cd6e0
mov rbx, qword [rsp + 0x350]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret