public long PeekInt64(long pos)
{
uint ret_low, ret_high;
if (swap) {
ret_low = (uint) (blob.Contents[pos+7] |
(blob.Contents[pos+6] << 8) |
(blob.Contents[pos+5] << 16) |
(blob.Contents[pos+4] << 24));
ret_high = (uint) (blob.Contents[pos+3] |
(blob.Contents[pos+2] << 8) |
(blob.Contents[pos+1] << 16) |
(blob.Contents[pos] << 24));
} else {
ret_low = (uint) (blob.Contents[pos] |
(blob.Contents[pos+1] << 8) |
(blob.Contents[pos+2] << 16) |
(blob.Contents[pos+3] << 24));
ret_high = (uint) (blob.Contents[pos+4] |
(blob.Contents[pos+5] << 8) |
(blob.Contents[pos+6] << 16) |
(blob.Contents[pos+7] << 24));
}
return (long) ((((ulong) ret_high) << 32) | ret_low);
}