Function at 0x100168c6
Capabilities:
Create pipe

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
xor ebx, ebx
push esi
mov esi, ecx
cmp dword [ebp + 8], ebx
jne 0x100168de
xor eax, eax
jmp 0x10016b23
cmp dword [ebp + 0xc], ebx
jne 0x100168ea
mov dword [ebp + 0xc], 4
push edi
call fcn.100166de
push dword [ebp + 8]
call fcn.100465b0
add eax, 0xa
push eax
call fcn.10045263
mov edi, eax
pop ecx
pop ecx
mov dword [ebp - 4], edi
cmp edi, ebx
je 0x10016b12
push str..pipe_
push edi
call fcn.10046190
push dword [ebp + 8]
push edi
call fcn.100461a0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
push 0x48
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10045263
add esp, 0x14
mov dword [esi + 0x9c], eax
cmp eax, ebx
jne 0x10016954
push edi
call fcn.1004523d
pop ecx
jmp 0x10016b12
mov dword [ebp + 8], ebx
cmp dword [ebp + 0xc], ebx
jbe 0x100169ae
xor edi, edi
mov eax, dword [esi + 0x9c]
push 0x48
add eax, edi
push ebx
push eax
call fcn.100457d0
mov eax, dword [esi + 0x9c]
or dword [edi + eax + 0x28], 0xffffffff
mov eax, dword [esi + 0x9c]
mov dword [edi + eax + 0x24], 1
mov ecx, dword [esi + 0x9c]
mov eax, dword [ebp + 8]
mov dword [edi + ecx + 0x44], eax
mov ecx, dword [esi + 0x9c]
add esp, 0xc
inc eax
mov byte [edi + ecx], 0xff
add edi, 0x48
mov dword [ebp + 8], eax
cmp eax, dword [ebp + 0xc]
jb 0x1001695e
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xa4], eax
add eax, ecx
mov dword [esi + 0xa0], edi
mov dword [esi + 0xa8], ecx
cmp eax, edi
ja 0x100169f0
xor ecx, ecx
push 4
pop edx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10045263
pop ecx
mov dword [esi + 0x98], eax
cmp eax, ebx
jne 0x10016a05
push dword [ebp - 4]
call fcn.1004523d
pop ecx
mov ecx, esi
call fcn.100166de
jmp 0x10016b12
mov ecx, 0x10094b4c
mov dword [ebp - 8], ebx
call fcn.10016374
test eax, eax
je 0x10016a32
mov ecx, dword [0x10094b4c]
cmp dword [ecx + 4], ebx
je 0x10016a32
push ebx
lea eax, [ebp - 8]
push eax
push 1
push str.D:_A__FA___SY__A__FA___LS__A__FRFW___BA__A__FRFW___BU__A__FRFW___AN_S:_ML_____LW_
call fcn.10016047
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 0xc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ebx
mov dword [ebp + 0x10], 1
mov dword [ebp + 8], ebx
cmp dword [ebp + 0xc], ebx
jbe 0x10016af6
xor edi, edi
push ebx
push 1
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [esi + 0x9c]
mov dword [edi + ecx + 0x3c], eax
mov eax, dword [esi + 0x9c]
mov eax, dword [edi + eax + 0x3c]
cmp eax, ebx
je 0x10016ae6
mov ecx, dword [esi + 0x98]
mov edx, dword [ebp + 8]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 8]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x14]
and eax, ecx
push eax
push 0x1388
push ebx
push ebx
push dword [esi + 0xa0]
push ebx
push 0x40000003
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
mov ecx, dword [esi + 0x9c]
mov dword [edi + ecx + 0x28], eax
mov eax, dword [esi + 0x9c]
add eax, edi
cmp dword [eax + 0x28], 0xffffffff
mov ecx, esi
je 0x10016ae8
push 1
push eax
call fcn.10016457
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
add edi, 0x48
cmp eax, dword [ebp + 0xc]
jb 0x10016a57
jmp 0x10016af6
mov ecx, esi
call fcn.100166de
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 4]
call fcn.1004523d
pop ecx
cmp dword [ebp - 8], ebx
je 0x10016b0d
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp + 0x10], ebx
jne 0x10016b16
xor eax, eax
jmp 0x10016b22
push ebx
push ebx
mov ecx, esi
call fcn.100172ab
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0x10