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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2884
call fcn.00476ea0
mov eax, dword [0x548280]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2824], eax
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x10]
test eax, eax
je 0x480b58
cmp dword [ebp + 0xc], 0
je 0x480b58
test esi, esi
je 0x480b58
push 0
lea eax, [ebp - 0x2830]
mov dword [ebp - 0x2828], 0
push eax
lea eax, [ebp - 0x281c]
mov dword [ebp - 0x2814], 0
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x2818], 0
lea eax, [ebp - 0x2818]
movq qword [ebp - 0x2830], xmm0
push eax
mov dword [ebp - 0x281c], 0
mov dword [ebp - 0x2830], 0xc
mov dword [ebp - 0x282c], 0
mov dword [ebp - 0x2828], 1
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x480b42
push 0x44
lea eax, [ebp - 0x2884]
push 0
push eax
call fcn.0046f380
add esp, 0xc
mov dword [ebp - 0x2884], 0x44
lea eax, [ebp - 0x2884]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov eax, dword [ebp - 0x281c]
xorps xmm0, xmm0
mov dword [ebp - 0x2844], eax
mov dword [ebp - 0x2848], eax
xor eax, eax
cmp byte [ebp + 0x18], al
push 0x800
setne al
mov dword [ebp - 0x2858], 0x101
mov word [ebp - 0x2854], ax
xor eax, eax
push eax
mov word [ebp - 0x808], ax
lea eax, [ebp - 0x806]
movdqu xmmword [ebp - 0x2840], xmm0
push eax
mov dword [ebp - 0x2840], 0
mov dword [ebp - 0x283c], 0
mov byte [ebp - 0x280d], 0
call fcn.0046f380
push 0xffffffffffffffff
push 0x5c
push esi
call fcn.0047d8b0
add esp, 0x18
test eax, eax
je 0x4809c5
sub eax, esi
mov ecx, 0x400
sar eax, 1
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [ebp - 0x808]
push esi
push eax
call fcn.00463af4
add esp, 0xc
mov byte [ebp - 0x280d], 1
xor eax, eax
push 0x2000
push eax
mov word [ebp - 0x280c], ax
lea eax, [ebp - 0x280a]
push eax
call fcn.0046f380
lea ecx, [ebp - 0x280c]
add esp, 0xc
sub ecx, esi
jmp 0x4809f0
movzx eax, word [esi]
lea esi, [esi + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x4809f0
push edi
lea edi, [ebp - 0x280c]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x480a10
mov eax, dword [0x53b3a0]
mov esi, ebx
mov dword [edi], eax
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x480a25
lea edi, [ebp - 0x280c]
sub ebx, esi
add edi, 0xfffffffe
jmp 0x480a40
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x480a40
mov ecx, ebx
lea eax, [ebp - 0x2840]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, ebx
lea eax, [ebp - 0x2884]
push eax
and ecx, 3
lea eax, [ebp - 0x808]
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
cmp byte [ebp - 0x280d], cl
cmove eax, ecx
push eax
push ecx
push ecx
push 1
push ecx
push ecx
lea eax, [ebp - 0x280c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
test eax, eax
je 0x480b32
push dword [ebp + 0x1c]
push dword [ebp - 0x2840]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x480b22
push eax
mov dword [ebp - 0x2820], eax
lea eax, [ebp - 0x2820]
push eax
push 0
push 0
push 0
push dword [ebp - 0x2818]
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x480b22
mov eax, dword [ebp - 0x2820]
cmp eax, dword [ebp + 0xc]
cmova eax, dword [ebp + 0xc]
mov dword [ebp - 0x2820], eax
test eax, eax
je 0x480b22
push 0
lea ecx, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0
push ecx
push eax
push dword [ebp - 0x2824]
push dword [ebp - 0x2818]
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test eax, eax
cmovne ecx, dword [ebp - 0x2814]
mov dword [ebp - 0x2814], ecx
push dword [ebp - 0x2840]
call esi
push dword [ebp - 0x283c]
call esi
push dword [ebp - 0x2818]
call esi
push dword [ebp - 0x281c]
call esi
mov eax, dword [ebp - 0x2814]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004632a9
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.004632a9
mov esp, ebp
pop ebp
ret