// File: /workspace/github_cpp_makefile_star2_O2/lukasz-wiecaszek[P]h264iframedecoder/./dec_ref_pic_marking.hpp
// Function: ymn::h264::dec_ref_pic_marking_nonidr::to_string[abi:cxx11]() const
inline std::string dec_ref_pic_marking_nonidr::to_string() const
{
    std::ostringstream stream;

    stream << "  decoded reference picture marking (non-idr):" << std::endl;

    stream << P2(adaptive_ref_pic_marking_mode_flag);
    if (adaptive_ref_pic_marking_mode_flag) {
        uint32_t memory_management_control_operation;
        std::size_t i = 0;

        do {
            memory_management_control_operation = mmco[i].memory_management_control_operation;

            stream << P3(mmco[i].memory_management_control_operation);

            if (memory_management_control_operation == 1 ||
                memory_management_control_operation == 3)
                stream << P3(mmco[i].difference_of_pic_nums_minus1);

            if (memory_management_control_operation == 2)
                stream << P3(mmco[i].long_term_pic_num);

            if (memory_management_control_operation == 3 ||
                memory_management_control_operation == 6)
                stream << P3(mmco[i].long_term_frame_idx);

            if (memory_management_control_operation == 4)
                stream << P3(mmco[i].max_long_term_frame_idx_plus1);

            i++;
        } while ((i < TABLE_ELEMENTS(mmco)) && (memory_management_control_operation != 0));
    }

    return stream.str();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rsi, %r14
movq %rdi, 0x8(%rsp)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x21e0
leaq 0x98aa(%rip), %rsi      # 0x18475
movq %rbx, %rdi
callq 0x2120
movq %rax, %rdi
callq 0x20b0
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x20(%rsp,%rax)
leaq 0xa139(%rip), %rsi      # 0x18d2b
movq %rbx, %rdi
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rdx
movq $0x2c, 0x10(%rax,%rdx)
movq -0x18(%rcx), %rcx
movl $0xffffff4f, %esi       # imm = 0xFFFFFF4F
movl 0x18(%rax,%rcx), %edx
andl %esi, %edx
orl $0x20, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x987d(%rip), %rsi      # 0x184a4
movq %rax, %rdi
callq 0x2120
leaq 0x5471(%rip), %rsi      # 0x140a7
movq %rax, %rdi
callq 0x2120
leaq 0x53df(%rip), %rsi      # 0x14024
movq %rax, %rdi
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movl 0xc(%r14), %esi
movq %rax, %rdi
callq 0x20e0
leaq 0x53b2(%rip), %rsi      # 0x14027
movq %rax, %rdi
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movl 0xc(%r14), %esi
movq %rax, %rdi
callq 0x20e0
leaq 0x5e51(%rip), %rsi      # 0x14af6
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
callq 0x20b0
cmpl $0x0, 0xc(%r14)
je 0xefc3
addq $0x10, %r14
xorl %ebp, %ebp
leaq 0x5e29(%rip), %r15      # 0x14af6
movl (%r14), %ebx
movq 0x10(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
leaq 0x10(%rsp), %rdi
leaq 0xa03d(%rip), %rsi      # 0x18d2b
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rdx
movq $0x2a, 0x10(%rax,%rdx)
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
movl $0xffffff4f, %esi       # imm = 0xFFFFFF4F
andl %esi, %edx
orl $0x20, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
leaq 0x97a4(%rip), %rsi      # 0x184c7
callq 0x2120
movq %rax, %rdi
leaq 0x5375(%rip), %rsi      # 0x140a7
callq 0x2120
movq %rax, %rdi
leaq 0x52e3(%rip), %rsi      # 0x14024
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movl (%r14), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x52b7(%rip), %rsi      # 0x14027
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movl (%r14), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x2120
movq %rax, %rdi
callq 0x20b0
leal -0x1(%rbx), %eax
cmpl $0x5, %eax
ja 0xefae
leaq 0x85d1(%rip), %rcx      # 0x1738c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x9750(%rip), %r12      # 0x18519
pushq $0x8
popq %r13
jmpq *%rax
movq 0x10(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
leaq 0x10(%rsp), %rdi
leaq 0x9f3e(%rip), %rsi      # 0x18d2b
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rdx
movq $0x2a, 0x10(%rax,%rdx)
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
movl $0xffffff4f, %esi       # imm = 0xFFFFFF4F
andl %esi, %edx
orl $0x20, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
leaq 0x96d1(%rip), %rsi      # 0x184f3
callq 0x2120
movq %rax, %rdi
leaq 0x5276(%rip), %rsi      # 0x140a7
callq 0x2120
movq %rax, %rdi
leaq 0x51e4(%rip), %rsi      # 0x14024
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movl 0x4(%r14), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x51b7(%rip), %rsi      # 0x14027
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movl 0x4(%r14), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x2120
movq %rax, %rdi
callq 0x20b0
leaq 0x9669(%rip), %r12      # 0x18519
pushq $0x8
popq %r13
cmpl $0x2, %ebx
je 0xeed8
cmpl $0x3, %ebx
jne 0xefae
leaq 0x966a(%rip), %r12      # 0x18533
pushq $0xc
jmp 0xeed6
leaq 0x967b(%rip), %r12      # 0x1854f
pushq $0x10
popq %r13
movq 0x10(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x6, 0x20(%rsp,%rax)
leaq 0x10(%rsp), %rdi
leaq 0x9e35(%rip), %rsi      # 0x18d2b
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rdx
movq $0x2a, 0x10(%rax,%rdx)
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
movl $0xffffff4f, %esi       # imm = 0xFFFFFF4F
andl %esi, %edx
orl $0x20, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
movq %rax, %rdi
leaq 0x5171(%rip), %rsi      # 0x140a7
callq 0x2120
movq %rax, %rdi
leaq 0x50df(%rip), %rsi      # 0x14024
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movl (%r14,%r13), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
leaq 0x50b2(%rip), %rsi      # 0x14027
callq 0x2120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movl (%r14,%r13), %esi
movq %rax, %rdi
callq 0x20e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x2120
movq %rax, %rdi
callq 0x20b0
cmpq $0x2, %rbp
ja 0xefc3
incq %rbp
addq $0x14, %r14
testl %ebx, %ebx
jne 0xeccd
leaq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x2230
leaq 0x10(%rsp), %rdi
callq 0x2080
movq %rbx, %rax
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq