Function at 0x180041e20
Capabilities:
Create thread

Disassembly:
push rdi
sub rsp, 0x1b0
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x1c8], rbx
mov rax, qword [0x180176020]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
mov rbx, rcx
mov qword [rsp + 0x48], rcx
movzx eax, byte [rcx + 0x1a0]
test al, al
je 0x180041e82
lea rdx, str.IPC_engine_already_started
lea rcx, [rsp + 0x58]
call fcn.18004e590
lea rdx, [0x1801704d0]
lea rcx, [rsp + 0x58]
call sub.MSVCR90.dll__CxxThrowException
nop
call fcn.180042510
mov byte [rbx + 0x1a1], 0
xor edi, edi
mov dword [rbx + 0x1a4], edi
mov dword [rbx + 0x22c], 0x10000
mov ecx, 0x10000
call sub.MSVCR90.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov qword [rbx + 0x230], rax
mov ecx, 0x10000
call sub.MSVCR90.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov qword [rbx + 0x238], rax
lea rcx, [rbx + 0x1f0]
xor r8d, r8d
mov edx, 0x10000
call fcn.180042f10
lea rdx, str..pipe_
lea rcx, [rsp + 0x178]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const____ptr64____ptr64]
nop
lea rdx, str.SM_VF_NOTIFY_CHAN
lea rcx, [rsp + 0x178]
call qword [reloc.MSVCP90.dll___Y__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_PEB_W_Z]
mov byte [rsp + 0x68], 0
mov qword [rsp + 0xb0], rdi
mov dword [rsp + 0x70], 0x18
mov dword [rsp + 0x80], edi
lea rax, [rsp + 0x88]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x68]
call fcn.18004e420
lea r9, [rsp + 0x70]
cmp byte [rsp + 0x68], 0
cmove r9, rdi
lea rcx, [rsp + 0x180]
cmp qword [rsp + 0x198], 8
cmovae rcx, qword [rsp + 0x180]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x40000000
mov dword [rsp + 0x20], 3
xor r8d, r8d
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 0x180], rax
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r11, qword [rbx + 0x180]
cmp r11, 0xffffffffffffffff
jne 0x18004205e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xe7
je 0x180042000
lea rbx, [rsp + 0x180]
cmp qword [rsp + 0x198], 8
cmovae rbx, qword [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov r9, rbx
lea rdx, str.Could_not_create_IPC_connection.___s_._Named_pipe:___s_
lea rcx, [rsp + 0x130]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0x130]
call sub.MSVCR90.dll__CxxThrowException
lea rcx, [rsp + 0x180]
cmp qword [rsp + 0x198], 8
cmovae rcx, qword [rsp + 0x180]
mov edx, 0x2710
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
jne 0x180041f01
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_open_pipe.___s
lea rcx, [rsp + 0x148]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0x148]
call sub.MSVCR90.dll__CxxThrowException
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x178], rax
mov rax, qword [rbx + 0x178]
test rax, rax
jne 0x1800420b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_thread_event.___s
lea rcx, [rsp + 0xb8]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0xb8]
call sub.MSVCR90.dll__CxxThrowException
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x188], rax
mov rax, qword [rbx + 0x188]
test rax, rax
jne 0x180042106
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_event.___s
lea rcx, [rsp + 0x100]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0x100]
call sub.MSVCR90.dll__CxxThrowException
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x190], rax
mov rax, qword [rbx + 0x190]
test rax, rax
jne 0x18004215a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_event.___s
lea rcx, [rsp + 0x160]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0x160]
call sub.MSVCR90.dll__CxxThrowException
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x1c8], rax
test rax, rax
jne 0x1800421a9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_read_event.___s
lea rcx, [rsp + 0xd0]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0xd0]
call sub.MSVCR90.dll__CxxThrowException
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x1e8], rax
test rax, rax
jne 0x1800421f8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_write_event.___s
lea rcx, [rsp + 0xe8]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0xe8]
call sub.MSVCR90.dll__CxxThrowException
mov rcx, rbx
call fcn.18004e7c0
mov rcx, qword [rbx + 0x178]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
mov r9, rbx
lea r8, [0x1800426f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 0x170], rax
mov rax, qword [rbx + 0x170]
test rax, rax
jne 0x18004226e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Could_not_create_work_thread.___s
lea rcx, [rsp + 0x118]
call fcn.18004e5e0
lea rdx, [0x1801704f0]
lea rcx, [rsp + 0x118]
call sub.MSVCR90.dll__CxxThrowException
xor edx, edx
mov rcx, qword [rbx + 0x170]
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rsp + 0x40], eax
mov byte [rsp + 0x20], 1
mov r9d, 4
lea r8, [rsp + 0x40]
or edx, 0xffffffff
mov rcx, rbx
call fcn.1800423f0
nop
lea rcx, [rsp + 0x178]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
mov byte [rbx + 0x1a0], 1
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.1800e9d70
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x1b0
pop rdi
ret