// File: 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:
subq $0x218, %rsp            # imm = 0x218
movq %rdi, 0x30(%rsp)
movq %rdi, %rax
movq %rax, 0x38(%rsp)
movq %rdi, 0x210(%rsp)
movq %rsi, 0x208(%rsp)
movq 0x208(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x2230
leaq 0x90(%rsp), %rdi
leaq 0x16318(%rip), %rsi     # 0x23ff5
callq 0x2140
movq %rax, %rdi
movq 0x202bc(%rip), %rsi     # 0x2dfa8
callq 0x2180
movl $0x4, %edi
callq 0x45f0
movl %eax, 0x8c(%rsp)
movl 0x8c(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x1a472(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x40(%rsp)
movl $0x2c, %edi
callq 0x45f0
movq 0x40(%rsp), %rdi
movl %eax, 0x88(%rsp)
movl 0x88(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x9746(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x162bf(%rip), %rsi     # 0x24024
callq 0x2140
movq %rax, %rdi
leaq 0x165d2(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x154ba(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x9762(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
movl 0xc(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x1548f(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x9770(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
movl 0xc(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x165de(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x201ba(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x48(%rsp), %rax
cmpl $0x0, 0xc(%rax)
je 0xe3f9
movq $0x0, 0x78(%rsp)
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, 0x84(%rsp)
movl $0x6, %edi
callq 0x45f0
movl %eax, 0x74(%rsp)
movl 0x74(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x1a343(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x28(%rsp)
movl $0x2a, %edi
callq 0x45f0
movq 0x28(%rsp), %rdi
movl %eax, 0x70(%rsp)
movl 0x70(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x986f(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x161b9(%rip), %rsi     # 0x24047
callq 0x2140
movq %rax, %rdi
leaq 0x164a9(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x15391(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x988b(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl (%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x1535a(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x98a5(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl (%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x1649d(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x20079(%rip), %rsi     # 0x2dfa8
callq 0x2180
cmpl $0x1, 0x84(%rsp)
je 0xdf4c
cmpl $0x3, 0x84(%rsp)
jne 0xe05c
movl $0x6, %edi
callq 0x45f0
movl %eax, 0x6c(%rsp)
movl 0x6c(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x1a21d(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x20(%rsp)
movl $0x2a, %edi
callq 0x45f0
movq 0x20(%rsp), %rdi
movl %eax, 0x68(%rsp)
movl 0x68(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x9995(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x160bf(%rip), %rsi     # 0x24073
callq 0x2140
movq %rax, %rdi
leaq 0x16383(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x1526b(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x99b1(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x4(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x15233(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x99cc(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x4(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x16375(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x1ff51(%rip), %rsi     # 0x2dfa8
callq 0x2180
cmpl $0x2, 0x84(%rsp)
jne 0xe17a
movl $0x6, %edi
callq 0x45f0
movl %eax, 0x64(%rsp)
movl 0x64(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x1a0ff(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x18(%rsp)
movl $0x2a, %edi
callq 0x45f0
movq 0x18(%rsp), %rdi
movl %eax, 0x60(%rsp)
movl 0x60(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x9ab3(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x15fc7(%rip), %rsi     # 0x24099
callq 0x2140
movq %rax, %rdi
leaq 0x16265(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x1514d(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x9acf(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x15115(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x9aea(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x16257(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x1fe33(%rip), %rsi     # 0x2dfa8
callq 0x2180
cmpl $0x3, 0x84(%rsp)
je 0xe192
cmpl $0x6, 0x84(%rsp)
jne 0xe2a2
movl $0x6, %edi
callq 0x45f0
movl %eax, 0x5c(%rsp)
movl 0x5c(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x19fd7(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x10(%rsp)
movl $0x2a, %edi
callq 0x45f0
movq 0x10(%rsp), %rdi
movl %eax, 0x58(%rsp)
movl 0x58(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x9bdb(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x15eb9(%rip), %rsi     # 0x240b3
callq 0x2140
movq %rax, %rdi
leaq 0x1613d(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x15025(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x9bf7(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x14fed(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x9c12(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x1612f(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x1fd0b(%rip), %rsi     # 0x2dfa8
callq 0x2180
cmpl $0x4, 0x84(%rsp)
jne 0xe3c0
movl $0x6, %edi
callq 0x45f0
movl %eax, 0x54(%rsp)
movl 0x54(%rsp), %esi
leaq 0x90(%rsp), %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x19eb9(%rip), %rsi     # 0x28192
callq 0x2140
movq %rax, 0x8(%rsp)
movl $0x2a, %edi
callq 0x45f0
movq 0x8(%rsp), %rdi
movl %eax, 0x50(%rsp)
movl 0x50(%rsp), %esi
callq 0x21b0
movq %rax, %rdi
leaq -0x9cf9(%rip), %rsi     # 0x4610
callq 0x20a0
movq %rax, %rdi
leaq 0x15db7(%rip), %rsi     # 0x240cf
callq 0x2140
movq %rax, %rdi
leaq 0x1601f(%rip), %rsi     # 0x24346
callq 0x2140
movq %rax, %rdi
leaq 0x14f07(%rip), %rsi     # 0x2323d
callq 0x2140
movq %rax, %rdi
leaq -0x9d15(%rip), %rsi     # 0x4630
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x10(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x14ecf(%rip), %rsi     # 0x23240
callq 0x2140
movq %rax, %rdi
leaq -0x9d30(%rip), %rsi     # 0x4650
callq 0x20a0
movq %rax, %rdi
movq 0x48(%rsp), %rax
addq $0x10, %rax
imulq $0x14, 0x78(%rsp), %rcx
addq %rcx, %rax
movl 0x10(%rax), %esi
callq 0x2220
movq %rax, %rdi
leaq 0x16011(%rip), %rsi     # 0x243bd
callq 0x2140
movq %rax, %rdi
movq 0x1fbed(%rip), %rsi     # 0x2dfa8
callq 0x2180
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
xorl %eax, %eax
cmpq $0x4, 0x78(%rsp)
movb %al, 0x7(%rsp)
jae 0xe3eb
cmpl $0x0, 0x84(%rsp)
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0xde0b
jmp 0xe3f9
movq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x2170
leaq 0x90(%rsp), %rdi
callq 0x2080
movq 0x38(%rsp), %rax
addq $0x218, %rsp            # imm = 0x218
retq
nopw %cs:(%rax,%rax)
nop