import struct


def unpack_uint32(byte_stream, endian="<"):
    """Return list of uint32s, (either endian) from bytes object.

    Unpack a bytes object into list of 32-bit unsigned integers.
    Each 4 input bytes decodes to a uint32.

    Args:
        byte_stream (bytes): length is a multiple of 4
        endian (char, optional): "<" means little-endian unpacking, and
            ">" means big-endian unpacking

    Returns:
        list: unpacked uint32 numbers
    """
    num_uint32 = len(byte_stream) // 4
    out_uint32s = struct.unpack(endian + "I" * num_uint32, byte_stream)
    return out_uint32s