def METHOD_NAME(self, addr: int, size: int) -> Sequence[int]:
    """@brief Read a block of unaligned bytes in memory.
    @return an array of byte values
    """
    res = []
    # try to read 8bits data
    if (size > 0) and (addr & 0x01):
        mem = self.read8(addr)
        res.append(mem)
        size -= 1
        addr += 1
    # try to read 16bits data
    if (size > 1) and (addr & 0x02):
        mem = cast(int, self.read16(addr))
        res.append(mem & 0xff)
        res.append((mem >> 8) & 0xff)
        size -= 2
        addr += 2
    # try to read aligned block of 32bits
    if (size >= 4):
        data32 = self.read_memory_block32(addr, size // 4)
        res += conversion.u32le_list_to_byte_list(data32)
        size -= 4*len(data32)
        addr += 4*len(data32)
    if (size > 1):
        mem = cast(int, self.read16(addr))
        res.append(mem & 0xff)
        res.append((mem >> 8) & 0xff)
        size -= 2
        addr += 2
    if (size > 0):
        mem = self.read8(addr)
        res.append(mem)
    return res