Function at 0x6106c6b0
Capabilities:
Create pipe

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov esi, dword [ebp + 8]
test dword [ebp + 0x10], 0x40000
mov dword [ebp - 0x74], 0x610ef788
jne 0x6106c6d6
mov dword [ebp - 0x74], 0x610ef77c
mov dword [ebp - 0x78], 0xffffffff
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 8], eax
lea eax, [ebp - 0x6c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x70]
mov dword [esp], eax
call sub.KERNEL32.dll_CreatePipe
sub esp, 0x10
test eax, eax
jne 0x6106c770
mov edx, 0xde
mov eax, 0x6106c660
call fcn.61022e70
mov ebx, dword [0x610f08a0]
test ebx, ebx
jne 0x6106c728
mov eax, dword [ebp - 0x78]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esi]
mov dword [esp + 0xc], 0x6106c691
mov dword [esp + 8], 0x6106c600
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x78]
mov dword [esp + 4], 0x10
mov dword [esp], 0x610f089c
mov dword [esp + 0x10], eax
call fcn.6108fd50
jmp 0x6106c71d
mov dword [esp + 4], 0
mov dword [esp], 0x61006eec
call fcn.6101dc50
mov dword [esi], eax
mov dword [esp + 4], 0
mov dword [esp], 0x61006f00
call fcn.6101dc50
mov dword [esi + 4], eax
mov ebx, dword [ebp + 0x10]
and ebx, 0x20000
jne 0x6106c7ad
mov ebx, 0x10000
mov edx, dword [esi]
mov eax, dword [ebp - 0x70]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x80000000
call dword [ecx + 0x78]
mov edx, dword [esi + 4]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [edx]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x40000000
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ecx + 0x78]
test dword [ebp + 0x10], 0x40000
je 0x6106c8f8
mov ebx, dword [esi]
mov eax, dword [esi + 4]
or dword [ebx + 4], 0x4000
or dword [eax + 4], 0x4000
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x610ef788
call sub.KERNEL32.dll_CreateEventA
mov dword [ebx + 0x38], eax
sub esp, 0x10
mov ebx, dword [esi]
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x74]
or dword [ebx + 4], 0x2000000
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.KERNEL32.dll_CreateMutexA
mov dword [ebx + 0x394], eax
sub esp, 0xc
mov eax, dword [0x61148914]
movzx eax, byte [eax + 0xf]
shr al, 2
and eax, 1
test al, al
je 0x6106c713
mov eax, dword [0x61146b30]
lea ebx, [ebp - 0x68]
mov dword [ebp - 0x7c], eax
inc eax
mov dword [0x61146b30], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [0x610ef740]
mov eax, dword [eax]
mov dword [esp + 4], str.stupid_pipe._u._u
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6108c610
mov eax, dword [ebp - 0x74]
mov edi, dword [esi + 4]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.KERNEL32.dll_CreateEventA
mov dword [edi + 0x39c], eax
mov edx, dword [esi]
sub esp, 0x10
mov eax, dword [0x610ef740]
mov eax, dword [eax]
mov dword [edx + 0x3a0], eax
mov eax, dword [ebp - 0x7c]
mov dword [edx + 0x3a4], eax
jmp 0x6106c713
mov ebx, dword [esi]
jmp 0x6106c808