// File: salleaffaire[P]MXFParser/klv.cpp
// Function: klv_item::output(std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void klv_item::output(std::ostream &os, std::string indent) {
   os << indent << " KEY" << std::endl;
   os << indent << " -------------------------------------------" << std::endl;
   os << indent << " IOD     = " << "0x" << std::hex << std::setfill('0') << std::setw(2) 
      << (uint32_t)mKey[0] << std::endl;
   os << indent << " UL Size = " << "0x" << std::hex << std::setfill('0') << std::setw(2) 
      << (uint32_t)mKey[1] << std::endl;
   os << indent << " UL Code = " << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[2] << std::endl;
   os << indent << " SMPTE D = " << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[3] << std::endl;
   os << indent << " Registry Category Designator = " 
      << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[4];
   if (0x02 == mKey[4]) {
      os << indent << " [Group]" << std::endl; 
   }
   else {
      os << indent << std::endl;
   }
   os << indent << " Registry Designator          = " 
      << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[5] << std::endl;
   os << indent << " Structure Designator         = " 
      << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[6] << std::endl;
   os << indent << " Version Number               = " 
      << "0x" << std::hex << std::setfill('0') << std::setw(2)
      << (uint32_t)mKey[7] << std::endl;
      
   os << indent << " Item Designator              = "
      << "0x" 
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[8]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[9]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[10]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[11]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[12]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[13]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[14]
      << std::hex << std::setfill('0') << std::setw(2) << (uint32_t)mKey[15] 
      << std::endl;
   os << indent << " Length = " << mLength << std::endl; 

   if (mKLVList) {
      
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movq %rdx, -0x128(%rbp)
movq %rsi, %rax
movq -0x128(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7dc0(%rip), %rsi      # 0xc02d
callq 0x31f0
movq %rax, %rdi
movq 0xcd3c(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7d97(%rip), %rsi      # 0xc032
callq 0x31f0
movq %rax, %rdi
movq 0xcd0e(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7d96(%rip), %rsi      # 0xc05f
callq 0x31f0
movq %rax, %rdi
leaq 0x7d93(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0x917(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x120(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x120(%rbp), %rdi
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %esi
callq 0x3320
movq %rax, -0x118(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x118(%rbp), %rdi
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x110(%rbp)
xorl %esi, %esi
callq 0x5030
movq -0x110(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xcc57(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7cee(%rip), %rsi      # 0xc06e
callq 0x31f0
movq %rax, %rdi
leaq 0x7cdc(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0x9ce(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x108(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x108(%rbp), %rdi
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %esi
callq 0x3320
movq %rax, -0x100(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x100(%rbp), %rdi
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0xf8(%rbp)
movl $0x1, %esi
callq 0x5030
movq -0xf8(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xcb9d(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7c40(%rip), %rsi      # 0xc07a
callq 0x31f0
movq %rax, %rdi
leaq 0x7c22(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xa88(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0xf0(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0xf0(%rbp), %rdi
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %esi
callq 0x3320
movq %rax, -0xe8(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0xe8(%rbp), %rdi
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0xe0(%rbp)
movl $0x2, %esi
callq 0x5030
movq -0xe0(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xcae3(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7b92(%rip), %rsi      # 0xc086
callq 0x31f0
movq %rax, %rdi
leaq 0x7b68(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xb42(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0xd8(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0xd8(%rbp), %rdi
movb %al, -0x31(%rbp)
movzbl -0x31(%rbp), %esi
callq 0x3320
movq %rax, -0xd0(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0xd0(%rbp), %rdi
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0xc8(%rbp)
movl $0x3, %esi
callq 0x5030
movq -0xc8(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xca29(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7ae4(%rip), %rsi      # 0xc092
callq 0x31f0
movq %rax, %rdi
leaq 0x7aae(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xbfc(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0xb8(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0xb8(%rbp), %rdi
movb %al, -0x39(%rbp)
movzbl -0x39(%rbp), %esi
callq 0x3320
movq %rax, -0xb0(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0xb0(%rbp), %rdi
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movl $0x4, %esi
callq 0x5030
movq -0xa8(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq -0xa0(%rbp), %rdi
movl $0x4, %esi
callq 0x5030
movzbl (%rax), %ecx
movl $0x2, %eax
cmpl %ecx, %eax
jne 0x468c
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7a3d(%rip), %rsi      # 0xc0b3
callq 0x31f0
movq %rax, %rdi
movq 0xc933(%rip), %rsi      # 0x10fb8
callq 0x3230
jmp 0x46ab
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
movq 0xc912(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x79f7(%rip), %rsi      # 0xc0bc
callq 0x31f0
movq %rax, %rdi
leaq 0x7997(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xd13(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x230(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x230(%rbp), %rdi
movb %al, -0x41(%rbp)
movzbl -0x41(%rbp), %esi
callq 0x3320
movq %rax, -0x228(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x228(%rbp), %rdi
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x220(%rbp)
movl $0x5, %esi
callq 0x5030
movq -0x220(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xc858(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x795e(%rip), %rsi      # 0xc0dd
callq 0x31f0
movq %rax, %rdi
leaq 0x78dd(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xdcd(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x218(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x218(%rbp), %rdi
movb %al, -0x49(%rbp)
movzbl -0x49(%rbp), %esi
callq 0x3320
movq %rax, -0x210(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x210(%rbp), %rdi
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x208(%rbp)
movl $0x6, %esi
callq 0x5030
movq -0x208(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xc79e(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x78c5(%rip), %rsi      # 0xc0fe
callq 0x31f0
movq %rax, %rdi
leaq 0x7823(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xe87(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x200(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x200(%rbp), %rdi
movb %al, -0x51(%rbp)
movzbl -0x51(%rbp), %esi
callq 0x3320
movq %rax, -0x1f8(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x1f8(%rbp), %rdi
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x1f0(%rbp)
movl $0x7, %esi
callq 0x5030
movq -0x1f0(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xc6e4(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x782c(%rip), %rsi      # 0xc11f
callq 0x31f0
movq %rax, %rdi
leaq 0x7769(%rip), %rsi      # 0xc06b
callq 0x31f0
movq %rax, %rdi
leaq -0xf41(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x1e8(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x1e8(%rbp), %rdi
movb %al, -0x59(%rbp)
movzbl -0x59(%rbp), %esi
callq 0x3320
movq %rax, -0x1e0(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x1e0(%rbp), %rdi
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x1d8(%rbp)
movl $0x8, %esi
callq 0x5030
movq -0x1d8(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0xfbe(%rip), %rsi      # 0x39d0
callq 0x30d0
movq %rax, -0x1d0(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x1d0(%rbp), %rdi
movb %al, -0x61(%rbp)
movzbl -0x61(%rbp), %esi
callq 0x3320
movq %rax, -0x1c8(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x1c8(%rbp), %rdi
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x1c0(%rbp)
movl $0x9, %esi
callq 0x5030
movq -0x1c0(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x103b(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x1b8(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x1b8(%rbp), %rdi
movb %al, -0x69(%rbp)
movzbl -0x69(%rbp), %esi
callq 0x3320
movq %rax, -0x1b0(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x1b0(%rbp), %rdi
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x1a8(%rbp)
movl $0xa, %esi
callq 0x5030
movq -0x1a8(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x10b8(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x1a0(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x1a0(%rbp), %rdi
movb %al, -0x71(%rbp)
movzbl -0x71(%rbp), %esi
callq 0x3320
movq %rax, -0x198(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x198(%rbp), %rdi
movl %eax, -0x78(%rbp)
movl -0x78(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x190(%rbp)
movl $0xb, %esi
callq 0x5030
movq -0x190(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x1135(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x188(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x188(%rbp), %rdi
movb %al, -0x79(%rbp)
movzbl -0x79(%rbp), %esi
callq 0x3320
movq %rax, -0x180(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x180(%rbp), %rdi
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x178(%rbp)
movl $0xc, %esi
callq 0x5030
movq -0x178(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x11b2(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x170(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x170(%rbp), %rdi
movb %al, -0x81(%rbp)
movzbl -0x81(%rbp), %esi
callq 0x3320
movq %rax, -0x168(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x168(%rbp), %rdi
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x160(%rbp)
movl $0xd, %esi
callq 0x5030
movq -0x160(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x123b(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x158(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x158(%rbp), %rdi
movb %al, -0x89(%rbp)
movzbl -0x89(%rbp), %esi
callq 0x3320
movq %rax, -0x150(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x150(%rbp), %rdi
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x148(%rbp)
movl $0xe, %esi
callq 0x5030
movq -0x148(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
leaq -0x12c4(%rip), %rsi     # 0x39d0
callq 0x30d0
movq %rax, -0x140(%rbp)
movl $0x30, %edi
callq 0x3a20
movq -0x140(%rbp), %rdi
movb %al, -0x91(%rbp)
movzbl -0x91(%rbp), %esi
callq 0x3320
movq %rax, -0x138(%rbp)
movl $0x2, %edi
callq 0x3a00
movq -0x138(%rbp), %rdi
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %esi
callq 0x3280
movq -0xa0(%rbp), %rdi
movq %rax, -0x130(%rbp)
movl $0xf, %esi
callq 0x5030
movq -0x130(%rbp), %rdi
movzbl (%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xc29b(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xc0(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
leaq 0x7404(%rip), %rsi      # 0xc140
callq 0x31f0
movq %rax, %rdi
movq -0xa0(%rbp), %rax
movl 0x10(%rax), %esi
callq 0x32d0
movq %rax, %rdi
movq 0xc25b(%rip), %rsi      # 0x10fb8
callq 0x3230
movq -0xa0(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x4d72
jmp 0x4d72
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
nopl (%rax,%rax)