Function at 0x4156ab
Capabilities:
Create pipe
Create thread

Disassembly:
push 0xd0
mov eax, 0x569fa9
call fcn.0053d399
push 0x2f
mov edi, str.EventPipe.cpp
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4156d1
push 0x2f
jmp 0x4156e1
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4156ec
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x4156ee
mov eax, edi
push 1
push 0x1c
push eax
lea esi, [ebp - 0x7c]
call fcn.00404b6f
and dword [ebp - 4], 0
push str.CEventPipe::StartWaitEvent
push 0
mov ecx, eax
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x7c]
call fcn.00404bdb
cmp dword [ebx + 4], 0xffffffff
je 0x415732
mov eax, dword [ebp + 8]
mov dword [ebx + 8], eax
jmp 0x415969
push 1
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
xor esi, esi
push esi
push esi
push 1
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
push 0xc
pop ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xd8]
push eax
push 0x4e20
mov eax, 0x1000
push eax
push eax
push 0xff
push ecx
push 0x40000001
push str..pipeescanevent
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd0], esi
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
push 0x2f
mov dword [ebx + 4], eax
push edi
cmp eax, 0xffffffff
je 0x415901
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4157ad
push 0x2f
jmp 0x4157bd
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4157c8
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x4157ca
mov eax, edi
push 1
push 0x35
push eax
lea esi, [ebp - 0x7c]
call fcn.00404b6f
push str..pipeescanevent
push str.CreateNamedPipe_succeeded:__s
push 0
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.00404c4d
mov esi, eax
call fcn.0040cc0a
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0x7c]
call fcn.00404bdb
mov eax, dword [ebp + 8]
xor esi, esi
push esi
push esi
push 1
push esi
mov dword [ebx + 8], eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebx + 0x10], eax
lea eax, [ebp - 0xdc]
push eax
push esi
push ebx
push 0x415a75
push esi
push esi
call fcn.0053c63d
add esp, 0x18
push 0x2f
mov dword [ebx + 0xc], eax
push edi
cmp eax, esi
je 0x415898
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x41584d
push 0x2f
jmp 0x41585d
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x415868
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x41586a
mov eax, edi
push 1
push 0x42
push eax
lea esi, [ebp - 0x7c]
call fcn.00404b6f
push str.WaitEventDataThread_is_created
push 0
mov ecx, eax
mov dword [ebp - 4], 3
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
jmp 0x41595c
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4158a7
push 0x2f
jmp 0x4158b7
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4158c2
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x4158c4
mov eax, edi
push 4
pop edi
push edi
push 0x44
push eax
lea esi, [ebp - 0xcc]
call fcn.00404b6f
mov esi, eax
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Creating_WaitEventDataThread_failed___d_
push 0
mov ecx, esi
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
pop ecx
pop ecx
lea ecx, [ebp - 0xcc]
jmp 0x415960
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x415910
push 0x2f
jmp 0x415920
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x41592b
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x41592d
mov eax, edi
push 4
push 0x37
push eax
lea esi, [ebp - 0x7c]
call fcn.00404b6f
push str..pipeescanevent
push str.CreateNamedPipe_failed:__s
push 0
mov ecx, eax
mov dword [ebp - 4], 2
call fcn.00404c4d
mov esi, eax
call fcn.0040cc0a
pop ecx
pop ecx
lea ecx, [ebp - 0x7c]
or dword [ebp - 4], 0xffffffff
call fcn.00404bdb
call fcn.0053d41c
ret 4