// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_21.h
// Function: desc21_print
static inline void desc21_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<MUXCODE_DESC>");
        break;
    default:
        pf_print(opaque, "    - desc 21 muxcode");
    }

    desc21_each_entry(p_desc, p_desc_n) {
        switch (i_print_type) {
        case PRINT_XML:
            pf_print(opaque,
                     "<MUXCODE_ENTRY length=\"%u\" muxcode=\"%u\""
                     " version=\"%u\" substruct_count=\"%u\">",
                     desc21n_get_length(p_desc_n),
                     desc21n_get_muxcode(p_desc_n),
                     desc21n_get_version(p_desc_n),
                     desc21n_get_substruct_count(p_desc_n)
                    );
            break;
        default:
            pf_print(opaque,
                     "        - muxcode_entry length=%u muxcode=%u"
                     " version=%u substruct_count=%u",
                     desc21n_get_length(p_desc_n),
                     desc21n_get_muxcode(p_desc_n),
                     desc21n_get_version(p_desc_n),
                     desc21n_get_substruct_count(p_desc_n)
                    );
        }

        desc21n_each_substruct(p_desc_n, p_desc_k) {
            uint8_t i_slot_count = desc21k_get_slot_count(p_desc_k);
            uint8_t i_repetition_count = desc21k_get_repetition_count(p_desc_k);
            uint8_t r;

            switch (i_print_type) {
            case PRINT_XML:
                pf_print(opaque,
                         "<MUXCODE_SUBSTRUCT slot_count=\"%u\" repetition_count=\"%u\">",
                         i_slot_count, i_repetition_count);
                break;
            default:
                pf_print(opaque,
                         "            - muxcode_substruct slot_count=%u repetition_count=%u",
                         i_slot_count, i_repetition_count);
            }

            for (r = 0; r < i_slot_count; r++) {
                uint8_t i_flex_mux_channel = desc21k_get_flex_mux_channel(p_desc_k, r);
                uint8_t i_number_of_bytes  = desc21k_get_number_of_bytes(p_desc_k, r);
                switch (i_print_type) {
                case PRINT_XML:
                    pf_print(opaque,
                             "<MUXCODE_SUBSTRUCT_ENTRY slot=\"%u\" flex_mux_channel=\"%u\" number_of_bytes=\"%u\"/>",
                             r, i_flex_mux_channel, i_number_of_bytes);
                    break;
                default:
                    pf_print(opaque,
                             "                - muxcode_substruct_entry slot=%u flex_mux_channel=%u number_of_bytes=%u",
                             r, i_flex_mux_channel, i_number_of_bytes);
                }
            }

            if (i_print_type == PRINT_XML)
                pf_print(opaque, "</MUXCODE_SUBSTRUCT>");
        }

        if (i_print_type == PRINT_XML)
            pf_print(opaque, "</MUXCODE_ENTRY>");
    }

    if (i_print_type == PRINT_XML)
        pf_print(opaque, "</MUXCODE_DESC>");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x9779
jmp 0x9764
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1bb16(%rip), %rsi     # 0x25289
movb $0x0, %al
callq *%rcx
jmp 0x978c
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1bb10(%rip), %rsi     # 0x25298
movb $0x0, %al
callq *%rcx
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x140a0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x99eb
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x981c
jmp 0x97b2
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14100
movzbl %al, %eax
movl %eax, -0x4c(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14220
movzbl %al, %eax
movl %eax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14240
movzbl %al, %eax
movl %eax, -0x44(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14110
movq -0x58(%rbp), %rdi
movl -0x4c(%rbp), %edx
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %r8d
movq -0x40(%rbp), %r10
movzbl %al, %r9d
leaq 0x1ba99(%rip), %rsi     # 0x252ae
movb $0x0, %al
callq *%r10
jmp 0x9884
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14100
movzbl %al, %eax
movl %eax, -0x6c(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14220
movzbl %al, %eax
movl %eax, -0x68(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14240
movzbl %al, %eax
movl %eax, -0x64(%rbp)
movq -0x28(%rbp), %rdi
callq 0x14110
movq -0x78(%rbp), %rdi
movl -0x6c(%rbp), %edx
movl -0x68(%rbp), %ecx
movl -0x64(%rbp), %r8d
movq -0x60(%rbp), %r10
movzbl %al, %r9d
leaq 0x1ba7a(%rip), %rsi     # 0x252f9
movb $0x0, %al
callq *%r10
movq -0x28(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x14130
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x99ba
movq -0x30(%rbp), %rdi
callq 0x14190
movb %al, -0x31(%rbp)
movq -0x30(%rbp), %rdi
callq 0x14260
movb %al, -0x32(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x98e0
jmp 0x98c2
movq -0x10(%rbp), %r8
movq -0x18(%rbp), %rdi
movzbl -0x31(%rbp), %edx
movzbl -0x32(%rbp), %ecx
leaq 0x1ba6b(%rip), %rsi     # 0x25344
movb $0x0, %al
callq *%r8
jmp 0x98fc
movq -0x10(%rbp), %r8
movq -0x18(%rbp), %rdi
movzbl -0x31(%rbp), %edx
movzbl -0x32(%rbp), %ecx
leaq 0x1ba87(%rip), %rsi     # 0x2537e
movb $0x0, %al
callq *%r8
movb $0x0, -0x33(%rbp)
movzbl -0x33(%rbp), %eax
movzbl -0x31(%rbp), %ecx
cmpl %ecx, %eax
jge 0x9989
movq -0x30(%rbp), %rdi
movzbl -0x33(%rbp), %esi
callq 0x14280
movb %al, -0x34(%rbp)
movq -0x30(%rbp), %rdi
movzbl -0x33(%rbp), %esi
callq 0x142b0
movb %al, -0x35(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x9959
jmp 0x9936
movq -0x10(%rbp), %r9
movq -0x18(%rbp), %rdi
movzbl -0x33(%rbp), %edx
movzbl -0x34(%rbp), %ecx
movzbl -0x35(%rbp), %r8d
leaq 0x1ba6e(%rip), %rsi     # 0x253c0
movb $0x0, %al
callq *%r9
jmp 0x997a
movq -0x10(%rbp), %r9
movq -0x18(%rbp), %rdi
movzbl -0x33(%rbp), %edx
movzbl -0x34(%rbp), %ecx
movzbl -0x35(%rbp), %r8d
leaq 0x1ba9b(%rip), %rsi     # 0x25410
movb $0x0, %al
callq *%r9
jmp 0x997c
movb -0x33(%rbp), %al
addb $0x1, %al
movb %al, -0x33(%rbp)
jmp 0x9900
cmpl $0x1, -0x1c(%rbp)
jne 0x99a2
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1bacb(%rip), %rsi     # 0x25469
movb $0x0, %al
callq *%rcx
jmp 0x99a4
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x14130
movq %rax, -0x30(%rbp)
jmp 0x9895
cmpl $0x1, -0x1c(%rbp)
jne 0x99d3
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1baaf(%rip), %rsi     # 0x2547e
movb $0x0, %al
callq *%rcx
jmp 0x99d5
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x140a0
movq %rax, -0x28(%rbp)
jmp 0x979d
cmpl $0x1, -0x1c(%rbp)
jne 0x9a04
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1ba8f(%rip), %rsi     # 0x2548f
movb $0x0, %al
callq *%rcx
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)