Function at 0x415150
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Read file on windows

Disassembly:
mov eax, 0x106c
call fcn.00418240
mov eax, dword [esp + 0x1070]
push ebx
push ebp
push esi
push edi
push 0x48d
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
xor ebp, ebp
lea ecx, [esp + 0x18]
mov ebx, eax
push ebp
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], 0xc
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x4151ba
push str.___Couldnt_create_pipe_:_
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x106c
ret
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], 0x44
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x7c]
push 0x41e540
push edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov word [esp + 0x70], bp
mov dword [esp + 0x6c], 0x101
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x7c]
push str.MiscPESnoop.exe__
push eax
call edi
lea ecx, [esp + 0x7c]
push 0x41dec0
push ecx
call edi
lea edx, [esp + 0x7c]
push str.___nologo
push edx
call edi
mov esi, dword [esp + 0x1084]
mov eax, esi
and eax, 1
cmp al, 1
jne 0x41523f
lea ecx, [esp + 0x7c]
push str._PE_ET
push ecx
call edi
mov edx, esi
and edx, 2
cmp dl, 2
jne 0x415255
lea eax, [esp + 0x7c]
push str._PE_IT
push eax
call edi
mov ecx, esi
and ecx, 8
cmp cl, 8
jne 0x41526b
lea edx, [esp + 0x7c]
push str._PE_RT
push edx
call edi
mov eax, esi
and eax, 0x20
cmp al, 0x20
jne 0x415280
lea ecx, [esp + 0x7c]
push str._PE_ED
push ecx
call edi
mov edx, esi
and edx, 0x10
cmp dl, 0x10
jne 0x415296
lea eax, [esp + 0x7c]
push str._PE_DD
push eax
call edi
mov ecx, esi
and ecx, 4
cmp cl, 4
jne 0x4152ac
lea edx, [esp + 0x7c]
push str._PE_RD
push edx
call edi
mov eax, esi
and eax, 0x40
cmp al, 0x40
jne 0x4152c1
lea ecx, [esp + 0x7c]
push str._PE_AD
push ecx
call edi
mov edx, esi
and edx, 0x80
cmp dl, 0x80
jne 0x4152da
lea eax, [esp + 0x7c]
push str._PE_TT
push eax
call edi
mov ecx, esi
and ecx, 0x100
cmp ecx, 0x100
jne 0x4152f6
lea edx, [esp + 0x7c]
push str._PE_LCD
push edx
call edi
mov eax, esi
and eax, 0x200
cmp eax, 0x200
jne 0x415310
lea ecx, [esp + 0x7c]
push str._PE_BI
push ecx
call edi
mov edx, esi
and edx, 0x400
cmp edx, 0x400
jne 0x41532c
lea eax, [esp + 0x7c]
push str._PE_DI
push eax
call edi
mov ecx, esi
and ecx, 0x800
cmp ecx, 0x800
jne 0x415348
lea edx, [esp + 0x7c]
push str._PE_CD
push edx
call edi
mov eax, esi
and eax, 0x1000
cmp eax, 0x1000
jne 0x415362
lea ecx, [esp + 0x7c]
push str._PE_DH__PE_NH
push ecx
call edi
and esi, 0x2000
cmp esi, 0x2000
jne 0x41537c
lea edx, [esp + 0x7c]
push str._PE_SHT
push edx
call edi
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
push eax
push ecx
push ebp
push ebp
push ebp
push 1
push ebp
lea edx, [esp + 0x98]
push ebp
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x4153b7
push str.___Error_while_lunching_external_console_utility__PESnoop.exe___
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x106c
ret
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x7c]
push eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x84]
push 0xfff
push edx
push eax
call ebp
test eax, eax
je 0x415416
push 0
push 0xffffffffffffffff
push 0xb1
push ebx
call esi
lea ecx, [esp + 0x7c]
push ecx
push 1
push 0xc2
push ebx
call esi
jmp 0x4153ce
mov edx, dword [esp + 0x28]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [esp + 0x2c]
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x106c
ret