Function at 0x10046c56
Capabilities:
Create pipe
Create thread
Create two anonymous pipes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov ebx, dword [0x100e6ac9]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0xc
mov ebx, dword [0x100e6ac9]
add ebx, 8
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 1
mov ebx, dword [0x100e6ac9]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0
mov dword [ebp - 0xc], esp
push 0
push dword [0x100e6ac9]
push 0x100e6ac1
push 0x100e6ad1
xor eax, eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
nop
nop
cmp dword [ebp - 0xc], esp
je 0x10046ce7
push 0x11c
push 0x401015c
push 6
call fcn.100b8c4b
add esp, 0xc
mov dword [0x100e6acd], eax
mov ebx, dword [0x100e6ad5]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0xc
mov ebx, dword [0x100e6ad5]
add ebx, 8
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 1
mov ebx, dword [0x100e6ad5]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0
mov dword [ebp - 0xc], esp
push 0
push dword [0x100e6ad5]
push 0x100e6ae1
push 0x100e6add
xor eax, eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
nop
nop
cmp dword [ebp - 0xc], esp
je 0x10046d66
push 0x203
push 0x401015c
push 6
call fcn.100b8c4b
add esp, 0xc
mov dword [0x100e6ad9], eax
cmp dword [0x100e6add], 0
je 0x10046d89
cmp dword [0x100e6ac1], 0
je 0x10046d89
xor eax, eax
jmp 0x10046d8e
mov eax, 1
test eax, eax
je 0x10046d9b
jmp 0x10046f81
mov ebx, dword [0x100e6ae5]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0x44
mov dword [ebp - 0xc], esp
push dword [0x100e6ae5]
xor eax, eax
call dword [0x100e6c15]
nop
nop
cmp dword [ebp - 0xc], esp
je 0x10046ddc
push 0x31d
push 0x401015c
push 6
call fcn.100b8c4b
add esp, 0xc
mov ebx, dword [0x100e6ae5]
add ebx, 0x3c
mov dword [ebp - 0xc], ebx
mov eax, dword [0x100e6ae1]
mov ebx, dword [ebp - 0xc]
mov dword [ebx], eax
mov ebx, dword [0x100e6ae5]
add ebx, 0x40
mov dword [ebp - 0xc], ebx
mov eax, dword [0x100e6ae1]
mov ebx, dword [ebp - 0xc]
mov dword [ebx], eax
mov ebx, dword [0x100e6ae5]
add ebx, 0x38
mov dword [ebp - 0xc], ebx
mov eax, dword [0x100e6ad1]
mov ebx, dword [ebp - 0xc]
mov dword [ebx], eax
mov ebx, dword [0x100e6ae5]
add ebx, 0x30
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0
mov ebx, dword [0x100e6ae5]
add ebx, 0x2c
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebx], 0x101
mov dword [ebp - 0xc], esp
push dword [0x100e6ae9]
push dword [0x100e6ae5]
push 0
push 0
push 0
push 1
push 0
push 0
push str.cmd.exe
push 0
xor eax, eax
call dword [0x100e6c19]
nop
nop
cmp dword [ebp - 0xc], esp
je 0x10046ea5
push 0x43e
push 0x401015c
push 6
call fcn.100b8c4b
add esp, 0xc
mov dword [ebp - 4], eax
push 0x80000301
push 0
push 0x1000
push 1
mov ebx, 0x1bc
call fcn.100b9960
add esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov ebx, dword [0x100e6aed]
test ebx, ebx
je 0x10046ee0
push ebx
call fcn.100b8c45
add esp, 4
pop eax
mov dword [0x100e6aed], eax
mov ebx, dword [0x100e6ae9]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov dword [0x100e6a7d], eax
mov ebx, dword [0x100e6ae9]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov dword [0x100e6af1], eax
mov ebx, dword [0x100e6ae9]
add ebx, 8
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov dword [0x100e6af5], eax
mov ebx, dword [0x100e6ae9]
add ebx, 0xc
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov dword [0x100e6af9], eax
mov dword [ebp - 0xc], esp
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x10047122
push 0
push 0
xor eax, eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
nop
nop
cmp dword [ebp - 0xc], esp
je 0x10046f81
push 0x584
push 0x401015c
push 6
call fcn.100b8c4b
add esp, 0xc
mov esp, ebp
pop ebp
ret