Function at 0x411cf8
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create two anonymous pipes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10080
call fcn.0041dcd0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x10074], eax
mov dword [ebp - 4], 3
push 0x44
push 0
lea eax, [ebp - 0x1006c]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x10
push 0
lea ecx, [ebp - 0x18]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x1006c], 0x44
mov dword [ebp - 0x10040], 0x101
mov word [ebp - 0x1003c], 0
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x1002c], eax
push 0
push 0
lea edx, [ebp - 0x401c]
push edx
lea eax, [ebp - 0x4020]
push eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
push 0
push 0
lea ecx, [ebp - 0xa024]
push ecx
lea edx, [ebp - 0xa028]
push edx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
mov eax, dword [ebp - 4]
push eax
push 1
push 0
lea ecx, [ebp - 0x10034]
push ecx
mov edx, dword [ebp - 0x10074]
push edx
mov eax, dword [ebp - 0x4020]
push eax
mov ecx, dword [ebp - 0x10074]
push ecx
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov edx, dword [ebp - 4]
push edx
push 1
push 0
lea eax, [ebp - 0x10030]
push eax
mov ecx, dword [ebp - 0x10074]
push ecx
mov edx, dword [ebp - 0xa024]
push edx
mov eax, dword [ebp - 0x10074]
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
cmp dword [ebp + 8], 0
jne 0x411f04
push 0x4312f8
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00412083
add esp, 8
mov dword [ebp - 0x10070], eax
cmp dword [ebp - 0x10070], 0
je 0x411f04
mov byte [ebp - 0x601f], 0
mov dl, byte [ebp - 0x601f]
mov byte [ebp - 0x6020], dl
mov eax, dword [ebp - 0x10070]
push eax
push 0x2000
lea ecx, [ebp - 0x6020]
push ecx
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
mov byte [ebp - 0x4021], 0
movsx edx, byte [ebp - 0x6020]
cmp edx, 0x23
jne 0x411ef4
movsx eax, byte [ebp - 0x601f]
cmp eax, 0x21
jne 0x411ef4
lea ecx, [ebp - 0x601e]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 8]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax - 1]
mov dword [ebp - 8], edx
jmp 0x411e98
mov eax, dword [ebp - 8]
sub eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x411ebe
push 8
mov edx, dword [ebp - 8]
xor eax, eax
mov al, byte [edx]
push eax
call dword [sym.imp.MSVCRT.dll__isctype]
add esp, 8
mov dword [ebp - 0x10078], eax
jmp 0x411edb
mov ecx, dword [ebp - 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov ecx, dword [eax]
xor eax, eax
mov ax, word [ecx + edx*2]
and eax, 8
mov dword [ebp - 0x10078], eax
cmp dword [ebp - 0x10078], 0
je 0x411ef4
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 8]
jbe 0x411ef4
mov edx, dword [ebp - 8]
mov byte [edx], 0
jmp 0x411e8f
mov eax, dword [ebp - 0x10070]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
cmp dword [ebp + 8], 0
je 0x411f2b
push 0x2000
lea ecx, [ebp - 0xe028]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00412481
add esp, 0xc
lea eax, [ebp - 0xe028]
mov dword [ebp + 8], eax
push 0x2000
lea ecx, [ebp - 0x10028]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call fcn.00412481
add esp, 0xc
push 0x2000
lea eax, [ebp - 0x4018]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.004116c6
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x411f6d
mov dword [ebp - 0x1007c], 0x4312fc
jmp 0x411f77
mov dword [ebp - 0x1007c], 0x4335b4
cmp dword [ebp + 8], 0
je 0x411f88
mov edx, dword [ebp + 8]
mov dword [ebp - 0x10080], edx
jmp 0x411f92
mov dword [ebp - 0x10080], 0x4335b8
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x1007c]
push ecx
mov edx, dword [ebp - 0x10080]
push edx
push str._s_s__s_
push 0x2000
lea eax, [ebp - 0xc028]
push eax
call fcn.0040f13a
add esp, 0x18
push 0x2000
lea ecx, [ebp - 0xa020]
push ecx
lea edx, [ebp - 0xc028]
push edx
call fcn.004116c6
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1006c]
push ecx
lea edx, [ebp - 0x4018]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x200
push 1
push 0
push 0
lea ecx, [ebp - 0xa020]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x41203e
push 0x4120d8
mov edx, dword [ebp - 0x401c]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call fcn.00412444
add esp, 0xc
push 0x4122f9
mov ecx, dword [ebp - 0xa028]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
call fcn.00412444
add esp, 0xc
jmp 0x412062
mov eax, dword [ebp - 0x401c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xa028]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp + 0x1c]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [ebp - 0x10030]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x10034]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret