Function at 0x14002fc94
Capabilities:
Terminate process

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov qword [rbp + 0x17], 0xfffffffffffffffe
xor edi, edi
mov esi, edi
lea r13d, [rdi + 8]
lea r14, [0x1400dae00]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor edx, edx
mov rcx, qword [0x1400daf90]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbx, qword [0x1400daff8]
mov rcx, qword [0x1400daff0]
test eax, eax
jne 0x14002fcf5
cmp rcx, rbx
je 0x14002ffd3
sub rbx, rcx
sar rbx, 4
inc ebx
cmp r13d, ebx
jae 0x14002fd17
lea r13d, [rbx + 8]
test rsi, rsi
je 0x14002fd1c
mov rcx, rsi
call fcn.140048068
mov rsi, rdi
test rsi, rsi
jne 0x14002fd46
mov ecx, r13d
mov eax, 8
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14004b2fc
mov rsi, rax
test rax, rax
je 0x14002ffe1
mov rax, qword [0x1400dae68]
mov qword [rsi], rax
cmp ebx, 1
jbe 0x14002fd7b
lea rdx, [rsi + 8]
mov r8, rdi
lea r9d, [rbx - 1]
mov rax, qword [0x1400daff0]
mov rcx, qword [r8 + rax]
mov qword [rdx], rcx
add r8, 0x10
add rdx, 8
dec r9
jne 0x14002fd60
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or r12d, 0xffffffff
cmp dword [0x1400dae64], edi
cmovne r12d, dword [0x1400daf8c]
xor edx, edx
mov rcx, qword [0x1400daf90]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14002fddc
mov r12d, 0x3a98
mov qword [rbp + 0x67], rdi
lea rcx, [rbp + 0x67]
call fcn.14002f4e0
test eax, eax
js 0x14002fdcd
mov rcx, qword [rbp + 0x67]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x28]
nop
mov rcx, qword [rbp + 0x67]
test rcx, rcx
je 0x14002fddc
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r9d, r12d
xor r8d, r8d
mov rdx, rsi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r12d, eax
test eax, eax
je 0x14002fcc2
cmp eax, ebx
jae 0x14002ff9f
dec r12d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.14002ecdc
mov ebx, 7
cmp dword [rax + 0x28], ebx
jl 0x14002ff3a
lea rax, [rbp - 0x41]
mov qword [rbp + 0x6f], rax
lea rax, [rbp - 0x69]
mov qword [rbp + 0x77], rax
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x31], rdi
mov word [rbp - 0x41], di
lea rcx, [0x1400a05e8]
call fcn.14004a2f8
mov r8, rax
lea rdx, [0x1400a05e8]
lea rcx, [rbp - 0x41]
call fcn.140073170
nop
mov qword [rbp - 0x51], rbx
mov qword [rbp - 0x59], rdi
mov word [rbp - 0x69], di
lea rcx, str.WaitControl
call fcn.14004a2f8
mov r8, rax
lea rdx, str.WaitControl
lea rcx, [rbp - 0x69]
call fcn.140073170
nop
mov rdx, qword [0x1400daff8]
mov rax, qword [0x1400daff0]
sub rdx, rax
sar rdx, 4
mov ecx, r12d
shl rcx, 4
add rcx, rax
xor eax, eax
mov byte [rbp + 0x67], al
lea rax, [rbp + 0x67]
mov qword [rbp - 0x11], rax
lea rax, str.Erasing_Process_:
mov qword [rbp - 9], rax
lea rax, [rbp - 0x19]
mov qword [rbp - 1], rax
lea rax, [rcx + 8]
mov qword [rbp + 7], rax
lea rax, [rbp - 9]
mov qword [rbp + 0xf], rax
lea rax, str.__Nvvsvc_Nvxdsync__0_1___newVectorSize_:
mov qword [rbp - 0x79], rax
lea rax, [rbp + 7]
mov qword [rbp - 0x71], rax
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x79]
mov qword [rsp + 0x38], rax
lea rax, method.Nvidia::Logging::Loggable.virtual_0
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x48], rax
call fcn.14002ecdc
mov rcx, rax
lea rax, [rbp - 0x41]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x24e
lea r9, [rbp - 0x69]
lea r8, [rsp + 0x40]
mov edx, ebx
call fcn.14000d244
mov ebx, r12d
add rbx, rbx
mov rcx, qword [0x1400daff0]
mov rcx, qword [rcx + rbx*8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r11, qword [0x1400daff0]
mov rdx, qword [0x1400daff8]
lea rcx, [r11 + rbx*8 + 0x10]
cmp rcx, rdx
je 0x14002ff86
mov rax, qword [rcx]
mov qword [rcx - 0x10], rax
mov eax, dword [rcx + 8]
mov dword [rcx - 8], eax
add rcx, 0x10
cmp rcx, rdx
jne 0x14002ff69
mov rdx, qword [0x1400daff8]
sub rdx, 0x10
mov qword [0x1400daff8], rdx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14002fcc2
cmp eax, 0x102
jne 0x140030163
xor edx, edx
mov rcx, qword [0x1400daf90]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14002ffef
mov dword [0x1400dae64], edi
mov dword [0x1400daf8c], edi
call fcn.140001844
jmp 0x14002fcc2
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14003024f
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14003025c
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11, qword [0x1400daff8]
mov rcx, r11
mov rax, qword [0x1400daff0]
sub rcx, rax
sar rcx, 4
test ecx, ecx
je 0x140030150
mov rbx, rdi
mov r12d, ecx
mov r13d, 7
xor edx, edx
mov rcx, qword [rbx + rax]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x140030124
call fcn.14002ecdc
cmp dword [rax + 0x28], 3
jl 0x140030124
lea rax, [rbp - 0x69]
mov qword [rbp + 0x6f], rax
lea rax, [rbp - 0x41]
mov qword [rbp + 0x77], rax
mov qword [rbp - 0x51], r13
mov qword [rbp - 0x59], rdi
mov word [rbp - 0x69], di
lea rcx, [0x1400a05e8]
call fcn.14004a2f8
mov r8, rax
lea rdx, [0x1400a05e8]
lea rcx, [rbp - 0x69]
call fcn.140073170
nop
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x31], rdi
mov word [rbp - 0x41], di
lea rcx, str.WaitControl
call fcn.14004a2f8
mov r8, rax
lea rdx, str.WaitControl
lea rcx, [rbp - 0x41]
call fcn.140073170
nop
xor eax, eax
mov byte [rbp + 0x67], al
lea rax, [rbp + 0x67]
mov qword [rbp - 0x11], rax
lea rax, str.Kill_child_process_error
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea rax, vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_unsigned_long_int__class_Nvidia::Logging::Chain_char_const_____25____ptr64__class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType____.0
mov qword [rbp - 0x79], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x71], rax
call fcn.14002ecdc
mov rcx, rax
lea rax, [rbp - 0x69]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x25e
lea r9, [rbp - 0x41]
lea r8, [rbp - 0x79]
mov edx, 3
call fcn.14000d244
mov rcx, qword [0x1400daff0]
mov rcx, qword [rbx + rcx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 0x10
mov rax, qword [0x1400daff0]
dec r12
jne 0x140030024
mov r11, qword [0x1400daff8]
cmp rax, r11
cmovne r11, rax
mov qword [0x1400daff8], r11
jmp 0x14002ffd3
call fcn.14002ecdc
cmp dword [rax + 0x28], 3
jl 0x14003024f
lea rax, [rbp - 0x69]
mov qword [rbp + 0x6f], rax
lea rax, [rbp - 0x41]
mov qword [rbp + 0x77], rax
mov r13d, 7
mov qword [rbp - 0x51], r13
mov qword [rbp - 0x59], rdi
mov word [rbp - 0x69], di
lea rcx, [0x1400a05e8]
call fcn.14004a2f8
mov r8, rax
lea rdx, [0x1400a05e8]
lea rcx, [rbp - 0x69]
call fcn.140073170
nop
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x31], rdi
mov word [rbp - 0x41], di
lea rcx, str.WaitControl
call fcn.14004a2f8
mov r8, rax
lea rdx, str.WaitControl
lea rcx, [rbp - 0x41]
call fcn.140073170
nop
xor eax, eax
mov byte [rbp + 0x67], al
lea rax, [rbp + 0x67]
mov qword [rbp - 0x11], rax
lea rax, str.Service_is_terminating__waitForMultipleObjects_returned_:
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x30], r12d
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea rax, vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_unsigned_long_int__class_Nvidia::Logging::Chain_char_const_____59____ptr64__class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType____.0
mov qword [rbp - 0x79], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x71], rax
call fcn.14002ecdc
mov rcx, rax
lea rax, [rbp - 0x69]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x26f
lea r9, [rbp - 0x41]
lea r8, [rbp - 0x79]
lea edx, [r13 - 4]
call fcn.14000d244
test rsi, rsi
je 0x14003025c
mov rcx, rsi
call fcn.140048068
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11, qword [0x1400daff8]
mov rcx, r11
mov rax, qword [0x1400daff0]
sub rcx, rax
sar rcx, 4
test ecx, ecx
je 0x1400302a4
mov ebx, ecx
mov rcx, qword [rdi + rax]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rdi, 0x10
mov rax, qword [0x1400daff0]
dec rbx
jne 0x140030283
mov r11, qword [0x1400daff8]
cmp rax, r11
cmovne r11, rax
mov qword [0x1400daff8], r11
mov rcx, r14
add rsp, 0xf0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]