Function at 0x4b5230
Capabilities:
Create pipe
Create process on windows
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x474
mov eax, dword [0x53273c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
test esi, esi
je 0x4b5299
mov ecx, str.stderr
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4b5280
test dl, dl
je 0x4b527c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4b5280
add eax, 2
add ecx, 2
test dl, dl
jne 0x4b5260
xor eax, eax
jmp 0x4b5285
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4b530e
push 2
call fcn.004d27a8
add esp, 4
mov edi, eax
push 0x1000
lea eax, [ebp - 0x430]
mov dword [ebp - 0x414], 0xffffffff
push eax
lea eax, [ebp - 0x408]
mov dword [ebp - 0x430], 0
push eax
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x428], 1
push eax
mov dword [ebp - 0x42c], 0
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x4b54e1
push 0
push 1
push dword [ebp - 0x40c]
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x4b5331
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetHandleInformation___failed_with__d__n
jmp 0x4b54ed
push 0x50247c
push esi
call fcn.004d5440
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b5299
push esi
push str.Failed_to_open__s_n
jmp 0x4b54ed
mov eax, dword [ebp - 0x408]
xorps xmm0, xmm0
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x438], eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x474]
movlpd qword [ebp - 0x448], xmm0
or dword [ebp - 0x448], 0x100
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push ebx
push 0
movlpd qword [ebp - 0x470], xmm0
movlpd qword [ebp - 0x468], xmm0
movlpd qword [ebp - 0x460], xmm0
movlpd qword [ebp - 0x458], xmm0
movlpd qword [ebp - 0x450], xmm0
movlpd qword [ebp - 0x440], xmm0
mov dword [ebp - 0x474], 0x44
movups xmmword [ebp - 0x424], xmm0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4b5474
push 0xffffffffffffffff
push dword [ebp - 0x424]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x414]
push eax
push dword [ebp - 0x424]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x424]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
push dword [ebp - 0x420]
call ebx
push dword [ebp - 0x408]
call ebx
test edi, edi
je 0x4b546a
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x410]
push 0
push eax
push 0x400
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x40c]
call esi
test eax, eax
je 0x4b546a
nop
cmp dword [ebp - 0x410], 0
jbe 0x4b5449
lea eax, [ebp - 0x404]
push edi
push eax
call fcn.004d70cc
add esp, 8
push 0
lea eax, [ebp - 0x410]
push eax
push 0x400
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x40c]
call esi
test eax, eax
jne 0x4b5430
push dword [ebp - 0x40c]
call ebx
jmp 0x4b54af
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x40c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, eax
call esi
push dword [ebp - 0x408]
call esi
test ebx, ebx
je 0x4b54af
push ebx
push str.CreateProcess_failed._Error__d_n
push 2
call fcn.004d27a8
add esp, 4
push eax
call fcn.0040cba0
add esp, 0xc
test edi, edi
je 0x4b54ca
push 2
call fcn.004d27a8
add esp, 4
cmp edi, eax
je 0x4b54ca
push edi
call fcn.004d5359
add esp, 4
mov eax, dword [ebp - 0x414]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreatePipe___failed_with__d__n
push 2
call fcn.004d27a8
add esp, 4
push eax
call fcn.0040cba0
mov ecx, dword [ebp - 4]
add esp, 0xc
xor ecx, ebp
or eax, 0xffffffff
pop edi
pop esi
pop ebx
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret