Function at 0x14002ed8c
Capabilities:
Create process on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x338]
sub rsp, 0x438
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x1400ce148]
xor rax, rsp
mov qword [rbp + 0x320], rax
mov rsi, r8
mov dword [rsp + 0x64], ecx
mov qword [rbp - 0x30], rdx
mov dword [rsp + 0x70], r9d
mov rdi, qword [rbp + 0x390]
mov qword [rbp + 0x100], rdi
xor r12d, r12d
mov ebx, r12d
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x78], r12
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x68]
mov edx, 0xf01ff
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea r14d, [r12 + 7]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14002f2fe
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf01ff
call qword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x68], r12
lea r9d, [r12 + 4]
lea r8, [rsp + 0x64]
lea edx, [r12 + 0xc]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
je 0x14002f2ee
mov dword [rbp + 0x90], r12d
xor edx, edx
lea r8d, [r12 + 0x60]
lea rcx, [rbp + 0x98]
call fcn.14004a330
cmp qword [rdi + 0x18], 8
jb 0x14002ee92
mov rdx, qword [rdi]
jmp 0x14002ee95
mov rdx, rdi
lea rcx, [rbp + 0x110]
call fcn.14004e378
mov dword [rbp + 0x90], 0x68
lea rax, [rbp + 0x110]
mov qword [rbp + 0xa0], rax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x50], rax
lea rax, [rbp + 0x90]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8, rsi
mov rdx, qword [rbp - 0x30]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
jne 0x14002f016
call fcn.14002ecdc
cmp dword [rax + 0x28], 3
jl 0x14002f2ee
lea rax, [rbp + 0x20]
mov qword [rbp + 0x48], rax
lea rax, [rbp - 8]
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x38], r14
mov qword [rbp + 0x30], r12
mov word [rbp + 0x20], r12w
lea rcx, [0x1400a05e8]
call fcn.14004a2f8
mov r8, rax
lea rdx, [0x1400a05e8]
lea rcx, [rbp + 0x20]
call fcn.140073170
nop
mov qword [rbp + 0x10], r14
mov qword [rbp + 8], r12
mov word [rbp - 8], r12w
lea rcx, str.CreateProcessInSession
call fcn.14004a2f8
mov r8, rax
lea rdx, str.CreateProcessInSession
lea rcx, [rbp - 8]
call fcn.140073170
nop
xor eax, eax
mov byte [rsp + 0x60], al
lea rax, [rsp + 0x60]
mov qword [rbp - 0x10], rax
lea rax, str.CreateProcess_failed_for_exe_:
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x18]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
mov qword [rbp - 0x70], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x68], rax
lea rax, str.__with_error_code_:
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x40], eax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x38], rax
lea rax, method.Nvidia::Logging::Loggable.virtual_0
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x40]
mov qword [rbp - 0x58], rax
call fcn.14002ecdc
mov rcx, rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], VarUI4FromDisp
lea r9, [rbp - 8]
lea r8, [rbp - 0x60]
mov edx, 3
call fcn.14000d244
jmp 0x14002f2ee
mov rcx, qword [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x1400dae00]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [rbp + 0x78]
mov qword [rbp - 0x80], rbx
mov esi, dword [rsp + 0x70]
mov dword [rbp - 0x78], esi
lea rax, [rbp - 0x80]
mov r8, qword [0x1400daff0]
mov rcx, qword [0x1400daff8]
cmp rax, rcx
jae 0x14002f10d
lea rax, [rbp - 0x80]
cmp r8, rax
ja 0x14002f10d
lea rbx, [rbp - 0x80]
sub rbx, r8
mov rax, qword [0x1400db000]
cmp rcx, rax
jne 0x14002f0ec
mov rdx, rcx
sub rdx, r8
sar rdx, 4
movabs r9, 0xffffffffffffffe
cmp rdx, r9
jbe 0x14002f0a0
lea rcx, str.vector_T__too_long
call fcn.140065f90
int3
inc rdx
sub rax, r8
sar rax, 4
cmp rdx, rax
jbe 0x14002f0ec
mov r8, rax
shr r8, 1
movabs rcx, 0xfffffffffffffff
sub rcx, r8
cmp rcx, rax
jae 0x14002f0cc
mov rax, r12
jmp 0x14002f0cf
add rax, r8
cmp rax, rdx
cmovb rax, rdx
mov rcx, rax
call fcn.1400379c0
mov rcx, qword [0x1400daff8]
mov r8, qword [0x1400daff0]
and rbx, 0xfffffffffffffff0
test rcx, rcx
je 0x14002f196
mov rax, qword [rbx + r8]
mov qword [rcx], rax
mov eax, dword [rbx + r8 + 8]
mov dword [rcx + 8], eax
jmp 0x14002f18f
mov rax, qword [0x1400db000]
cmp rcx, rax
jne 0x14002f184
mov rdx, rcx
sub rdx, r8
sar rdx, 4
movabs r9, 0xffffffffffffffe
cmp rdx, r9
jbe 0x14002f13f
lea rcx, str.vector_T__too_long
call fcn.140065f90
int3
inc rdx
sub rax, r8
sar rax, 4
cmp rdx, rax
jbe 0x14002f184
mov r8, rax
shr r8, 1
movabs rcx, 0xfffffffffffffff
sub rcx, r8
cmp rcx, rax
jae 0x14002f16b
mov rax, r12
jmp 0x14002f16e
add rax, r8
cmp rax, rdx
cmovb rax, rdx
mov rcx, rax
call fcn.1400379c0
mov rcx, qword [0x1400daff8]
test rcx, rcx
je 0x14002f196
mov qword [rcx], rbx
mov dword [rcx + 8], esi
mov rcx, qword [0x1400daff8]
add rcx, 0x10
mov qword [0x1400daff8], rcx
call fcn.14002ecdc
cmp dword [rax + 0x28], r14d
jl 0x14002f2dc
lea rax, [rbp - 8]
mov qword [rbp - 0x80], rax
lea rax, [rbp + 0x20]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x10], r14
mov qword [rbp + 8], r12
mov word [rbp - 8], r12w
lea rcx, [0x1400a05e8]
call fcn.14004a2f8
mov r8, rax
lea rdx, [0x1400a05e8]
lea rcx, [rbp - 8]
call fcn.140073170
nop
mov qword [rbp + 0x38], r14
mov qword [rbp + 0x30], r12
mov word [rbp + 0x20], r12w
lea rcx, str.CreateProcessInSession
call fcn.14004a2f8
mov r8, rax
lea rdx, str.CreateProcessInSession
lea rcx, [rbp + 0x20]
call fcn.140073170
nop
mov rcx, qword [0x1400daff8]
sub rcx, qword [0x1400daff0]
sar rcx, 4
xor eax, eax
mov byte [rsp + 0x60], al
lea rax, [rsp + 0x60]
mov qword [rbp + 0x70], rax
lea rax, str.Adding_Process_:
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x68]
mov qword [rbp - 0x58], rax
lea rax, [rsp + 0x70]
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rbp - 0x38], rax
lea rax, str.__Nvvsvc_Nvxdsync__0_1___for_session_:
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x40]
mov qword [rbp - 0x48], rax
mov eax, dword [rsp + 0x64]
mov dword [rbp - 0x70], eax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x68], rax
lea rax, str.__total_processes_in_vector_:
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x20], rax
mov qword [rbp + 0x50], rcx
lea rax, [rbp - 0x28]
mov qword [rbp + 0x58], rax
lea rax, method.Nvidia::Logging::Loggable.virtual_0
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x50]
mov qword [rbp - 0x10], rax
call fcn.14002ecdc
mov rcx, rax
lea rax, [rbp - 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x11b
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x18]
mov edx, r14d
call fcn.14000d244
lea rcx, [0x1400dae00]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, 1
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14002f2fe
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14002f30f
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
cmp qword [rdi + 0x18], 8
jb 0x14002f31e
mov rcx, qword [rdi]
call fcn.14004aab0
mov qword [rdi + 0x18], r14
mov qword [rdi + 0x10], r12
mov word [rdi], r12w
mov eax, ebx
mov rcx, qword [rbp + 0x320]
xor rcx, rsp
call fcn.140049cd0
add rsp, 0x438
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret