Optimized IR:
/// @use-src 0:"mcopy_bytes_array_returned_from_function/input.sol"
object "C_14" {
    code {
        {
            let _1 := memoryguard(0x80)
            mstore(64, _1)
            if callvalue() { revert(0, 0) }
            let _2 := datasize("C_14_deployed")
            codecopy(_1, dataoffset("C_14_deployed"), _2)
            return(_1, _2)
        }
    }
    /// @use-src 0:"mcopy_bytes_array_returned_from_function/input.sol"
    object "C_14_deployed" {
        code {
            {
                let _1 := memoryguard(0x80)
                if iszero(lt(calldatasize(), 4))
                {
                    if eq(0xc2985578, shr(224, calldataload(0)))
                    {
                        if callvalue() { revert(0, 0) }
                        if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
                        let newFreePtr := add(_1, 64)
                        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _1))
                        {
                            mstore(0, shl(224, 0x4e487b71))
                            mstore(4, 0x41)
                            revert(0, 36)
                        }
                        mstore(64, newFreePtr)
                        mstore(_1, 5)
                        let _2 := add(_1, 32)
                        mstore(_2, "aaaaa")
                        let memPos := mload(64)
                        mstore(memPos, 32)
                        let length := mload(_1)
                        mstore(add(memPos, 32), length)
                        mcopy(add(memPos, 64), _2, length)
                        mstore(add(add(memPos, length), 64), 0)
                        return(memPos, add(sub(add(memPos, and(add(length, 31), not(31))), memPos), 64))
                    }
                }
                revert(0, 0)
            }
        }
        data ".metadata" hex""
    }
}
