// File: /workspace/github_cpp_makefile_star2_O3/salleaffaire[P]MXFParser/./mxf_base.hpp
// Function: mxf_file::mxf_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
mxf_file(std::string file_name) : m_file_name(file_name) {
      if (!m_is_UL_key_dictionary_init) {
         init_UL_key_dictionary();
         m_is_UL_key_dictionary_init = true;
      }

      std::ifstream in(m_file_name, std::ifstream::ate | std::ifstream::binary);
      if (in.fail()) {
         m_state = -1;
      }
      else {
         m_state = 0;
         
         m_file_size = in.tellg();

         // return at the begining
         in.seekg(0, in.beg);

         std::cout << "Opening : " << m_file_name
                   << " " << m_file_size << " bytes." << std::endl;

         // Allocate mem ory for file
         m_p_data = new uint8_t [m_file_size];

         // Read 
         in.read((char *)m_p_data, m_file_size);
         in.close();
      }
   }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x210, %rsp            # imm = 0x210
movq %rdi, %rbx
xorl %eax, %eax
movq %rax, 0x70(%rdi)
movq %rax, 0xf8(%rdi)
movq %rax, 0x168(%rdi)
leaq 0x178(%rdi), %r14
leaq 0x188(%rdi), %r13
movq %r13, 0x178(%rdi)
movq (%rsi), %rax
movq 0x8(%rsi), %rdx
addq %rax, %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x440a
leaq 0x1b0(%rbx), %r15
movq %r15, 0x1b8(%rbx)
movq %r15, 0x1b0(%rbx)
movq $0x0, 0x1c0(%rbx)
leaq 0x642e(%rip), %r12      # 0xa298
cmpb $0x0, (%r12)
jne 0x3e7b
callq 0x60e8
movb $0x1, (%r12)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl $0x6, %edx
callq 0x2210
movq 0x8(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x28(%rsp,%rax)
je 0x3eac
movl $0xffffffff, 0x1a8(%rbx) # imm = 0xFFFFFFFF
jmp 0x3f9a
movl $0x0, 0x1a8(%rbx)
leaq 0x8(%rsp), %rdi
callq 0x2240
movl %eax, 0x198(%rbx)
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21d0
movq 0x60fd(%rip), %rdi      # 0x9fd8
leaq 0x34cd(%rip), %rsi      # 0x73af
movl $0xa, %edx
callq 0x21a0
movq 0x178(%rbx), %rsi
movq 0x180(%rbx), %rdx
movq 0x60d7(%rip), %rdi      # 0x9fd8
callq 0x21a0
movq %rax, %r12
leaq 0x3618(%rip), %rsi      # 0x7528
movl $0x1, %edx
movq %rax, %rdi
callq 0x21a0
movl 0x198(%rbx), %esi
movq %r12, %rdi
callq 0x20d0
movq %rax, %r12
leaq 0x3485(%rip), %rsi      # 0x73ba
movl $0x7, %edx
movq %rax, %rdi
callq 0x21a0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x20e0
movl 0x198(%rbx), %r12d
movq %r12, %rdi
callq 0x2030
movq %rax, 0x1a0(%rbx)
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0x21b0
leaq 0x8(%rsp), %rdi
callq 0x2070
leaq 0x8(%rsp), %rdi
callq 0x2080
addq $0x210, %rsp            # imm = 0x210
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x3fc3
jmp 0x3fb9
movq %rax, %r12
jmp 0x3fd0
movq %rax, %r12
jmp 0x3fec
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0x2080
movq %r15, %rdi
callq 0x3ae4
movq (%r14), %rdi
cmpq %r13, %rdi
je 0x3fec
movq (%r13), %rsi
incq %rsi
callq 0x2170
movq 0x168(%rbx), %rdi
testq %rdi, %rdi
je 0x3ffd
callq 0x21c0
movq 0xf8(%rbx), %rdi
testq %rdi, %rdi
je 0x400e
callq 0x21c0
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x401c
callq 0x21c0
movq %r12, %rdi
callq 0x2250