def METHOD_NAME(self, start, size):
    chunk_start = start
    chunk_size = size
    output = []
    for entry in self.handle.memmap:
        if (
            entry["base"] + entry["size"] <= chunk_start
            or entry["base"] >= chunk_start + chunk_size
        ):
            continue
        output += [
            (max(entry["base"], chunk_start), min(entry["size"], chunk_size))
        ]
        chunk_start = output[-1][0] + output[-1][1]
        chunk_size = max(0, size - chunk_start)
        if chunk_size <= 0:
            break
    return output