// File: salleaffaire[P]MXFParser/./bit_extractor.hpp
// Function: bit_extractor::get_64bits()
uint64_t get_64bits() {
      uint64_t rval = 0;

      if (mEndianess) {
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+0) << 56);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+1) << 48);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+2) << 40);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+3) << 32);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+4) << 24);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+5) << 16);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+6) << 8);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+7));
      }
      else {
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+7));
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+6) << 8);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+5) << 16);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+4) << 24);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+3) << 32);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+2) << 40);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+1) << 48);
         rval |= ((uint64_t)*(mBuffer+mContextBytePos+0) << 56);
      }

      mContextBytePos += 8;
      
      return rval;
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x10(%rbp)
testb $0x1, 0x14(%rax)
je 0x92fe
movq -0x18(%rbp), %rcx
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl (%rax,%rdx), %eax
shlq $0x38, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x1(%rax,%rdx), %eax
shlq $0x30, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x2(%rax,%rdx), %eax
shlq $0x28, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x3(%rax,%rdx), %eax
shlq $0x20, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x4(%rax,%rdx), %eax
shlq $0x18, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x5(%rax,%rdx), %eax
shlq $0x10, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x6(%rax,%rdx), %eax
shlq $0x8, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %ecx
movzbl 0x7(%rax,%rcx), %eax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x93b5
movq -0x18(%rbp), %rcx
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x7(%rax,%rdx), %eax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x6(%rax,%rdx), %eax
shlq $0x8, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x5(%rax,%rdx), %eax
shlq $0x10, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x4(%rax,%rdx), %eax
shlq $0x18, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x3(%rax,%rdx), %eax
shlq $0x20, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x2(%rax,%rdx), %eax
shlq $0x28, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %edx
movzbl 0x1(%rax,%rdx), %eax
shlq $0x30, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq (%rcx), %rax
movl 0x10(%rcx), %ecx
movzbl (%rax,%rcx), %eax
shlq $0x38, %rax
orq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x8, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
popq %rbp
retq
nopl (%rax,%rax)