Function at 0x1800016e0
Capabilities:
Acquire debug privileges

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rdi, rcx
call fcn.18001cc8c
cmp qword [0x180029090], 0
jne 0x1800010ee
mov ecx, 1
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov qword [0x180029090], rax
xor esi, esi
mov qword [rsp + 0x30], rbx
cmp qword [0x1800290b0], rsi
jne 0x180001137
lea ecx, [rsi + 0x40]
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x180001130
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea r11, [rbx + 0x28]
mov qword [0x1800290b0], rbx
mov qword [r11], r11
mov qword [r11 + 8], r11
mov dword [r11 + 0x10], esi
jmp 0x180001137
mov qword [0x1800290b0], rsi
cmp qword [0x180029098], rsi
jne 0x180001187
mov ecx, 0x30
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x180001180
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
mov qword [rax + 0x18], rsi
mov qword [rax + 0x28], rsi
mov qword [rax + 0x20], rsi
mov dword [rax + 0x10], esi
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx], rax
mov qword [0x180029098], rbx
jmp 0x180001187
mov qword [0x180029098], rsi
cmp qword [0x1800290a0], rsi
jne 0x1800011b8
mov ecx, 0x38
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
test rax, rax
je 0x1800011b1
mov rcx, rax
call fcn.180007620
mov qword [0x1800290a0], rax
jmp 0x1800011b8
mov qword [0x1800290a0], rsi
cmp qword [0x1800290c8], rsi
jne 0x1800011f4
mov ecx, 8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x1800011ed
lea rcx, [0x180004a90]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov qword [0x1800290c8], rbx
mov qword [rbx], rax
jmp 0x1800011f4
mov qword [0x1800290c8], rsi
cmp qword [0x1800290a8], rsi
jne 0x180001223
mov ecx, 0x1994
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
test rax, rax
je 0x18000121c
mov dword [rax + 0x1990], esi
mov qword [0x1800290a8], rax
jmp 0x180001223
mov qword [0x1800290a8], rsi
cmp qword [0x1800290b8], rsi
jne 0x180001284
mov ecx, 0x710
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
test rax, rax
je 0x18000127d
lea rcx, [rax + 8]
mov edx, 0x20
nop word [rax + rax]
mov dword [rcx - 8], 0xffffffff
mov dword [rcx - 4], esi
mov qword [rcx], rsi
add rcx, 0x38
dec rdx
jne 0x180001250
mov qword [rax + 0x700], rsi
mov qword [rax + 0x708], rsi
mov qword [0x1800290b8], rax
jmp 0x180001284
mov qword [0x1800290b8], rsi
cmp qword [0x1800290c0], rsi
jne 0x1800012db
mov ecx, 0x2038
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x1800012d4
lea rcx, [rax + 0x2010]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18001ca58
mov qword [rbx + 0x2000], rsi
mov qword [rbx + 0x2008], rsi
mov qword [0x1800290c0], rbx
jmp 0x1800012db
mov qword [0x1800290c0], rsi
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp 0x1800016e0
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rbx, qword [0x180029098]
xor esi, esi
mov rdi, rcx
test rbx, rbx
jne 0x180001740
lea ecx, [rsi + 0x30]
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x180001736
lea edx, [rsi + 1]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x28], rsi
mov qword [rax + 0x20], rsi
mov dword [rax + 0x10], esi
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx], rax
jmp 0x180001739
mov rbx, rsi
mov qword [0x180029098], rbx
lea rcx, str.SeDebugPrivilege
mov qword [rbx + 8], rdi
call fcn.180015190
lea rcx, str.SeTcbPrivilege
call fcn.180015190
mov rbx, qword [0x1800290b0]
test rbx, rbx
jne 0x18000179d
lea ecx, [rbx + 0x40]
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
test rax, rax
je 0x180001793
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea r11, [rbx + 0x28]
mov qword [r11], r11
mov qword [r11 + 8], r11
mov dword [r11 + 0x10], esi
jmp 0x180001796
mov rbx, rsi
mov qword [0x1800290b0], rbx
lea r9, [0x180001870]
lea r8, str.bootProc
lea rdx, [0x18002a600]
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call fcn.18001c600
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret