/* get a little endian long long (64bits) from a pointer 
Caller should ensure parameters are valid. */
uint64_t BytesGetLe64(const void *ptr)
/* get a little endian long long (64bits) from a pointer 
Caller should ensure parameters are valid. */
uint64_t BytesGetLe64(const void *ptr)
{
    const uint8_t *p = (const uint8_t *)ptr;
    return BytesGetLe32(p) | ((uint64_t)BytesGetLe32(p + 4) << 32);
}