private void FindBlockWithOffset(long offset, out int blockIndex, out long blockOffSet)
{
long totalScannedLength = 0;
blockIndex = 0;
blockOffSet = 0;
for (int i = 0; i < memoryBlocks.Count; i++)
{
if (offset < totalScannedLength + memoryBlocks[i].Length)
{
//Found block;
blockIndex = i;
//Calculate start offset within block
blockOffSet = offset - totalScannedLength;
break;
}
totalScannedLength += memoryBlocks[i].Length;
}
}