function analyze( requires ) {
	var max;
	var out;
	var len;
	var i;

	len = requires.length;
	out = [];
	if ( len === 0 ) {
		return out;
	}
	max = requires[ 0 ];
	for ( i = 0; i < len; i++ ) {
		if ( requires[ i ].rank < max.rank ) {
			requires[ i ].compared = max;
			out.push( requires[ i ] );
		} else if ( requires[ i ].rank > max.rank ) {
			max = requires[ i ];
		}
	}
	return out;
}
Analyzes an array of require statement objects for "out-of-order" statements.

@private
@param {ObjectArray} requires - array of objects representing require statements
@returns {(EmptyArray|ObjectArray)} array holding statements which violate a specified order