// File: /workspace/github_c_makefile_star2_O2/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_7f19.h
// Function: desc7f19_print
static inline void desc7f19_print(const uint8_t *p_desc, f_print pf_print,
                                  void *opaque, print_type_t i_print_type)
{
    if (i_print_type == PRINT_XML)
        pf_print(opaque, "<AUDIO_PRESELECTION_DESC>");

    uint8_t *p;
    desc7f19_each_presel(p_desc, p_desc_n) {
        switch (i_print_type) {
            case PRINT_XML:
                pf_print(opaque,
                         "<AUDIO_PRESELECTION"
                         " id=\"%u\""
                         " audio_rendering_indication=\"%u\""
                         " audio_description=\"%u\""
                         " spoken_subtitles=\"%u\""
                         " dialogue_enhancement=\"%u\""
                         " interactivity_enabled=\"%u\""
                         ">",
                         desc7f19_presel_get_preselection_id(p_desc_n),
                         desc7f19_presel_get_audio_rendering_indication(p_desc_n),
                         desc7f19_presel_get_audio_description(p_desc_n),
                         desc7f19_presel_get_spoken_subtitles(p_desc_n),
                         desc7f19_presel_get_dialogue_enhancement(p_desc_n),
                         desc7f19_presel_get_interactivity_enabled(p_desc_n)
                        );
                if ((p = desc7f19_presel_get_language_code_ptr(p_desc_n))) {
                    char code[4];
                    memcpy(code, p, 3);
                    code[3] = '\0';
                    pf_print(opaque, "<AUDIO_PRESELECTION_LANG code=\"%s\"/>",
                             code);
                }
                if ((p = desc7f19_presel_get_text_label_ptr(p_desc_n))) {
                    pf_print(opaque, "<AUDIO_PRESELECTION_TEXT"
                             " message_id=\"%u\"/>",
                             desc7f19_presel_text_get_message_id(p));
                }
                if ((p = desc7f19_presel_get_multi_stream_info_ptr(p_desc_n))) {
                    uint8_t nb = desc7f19_presel_msi_get_num_aux_components(p);
                    char comp_tags[nb * 2 + 1];
                    for (uint8_t i = 0; i < nb; i++)
                        sprintf(comp_tags + i * 2, "%02x", p[i + 1]);
                    pf_print(opaque, "<AUDIO_PRESELECTION_MSI "
                             "components=\"%s\"/>",
                             comp_tags);
                }
                pf_print(opaque, "</AUDIO_PRESELECTION>");
                break;
            default:
                pf_print(opaque,
                         "    - desc 7f19 audio_preselection"
                         " id=%u"
                         " audio_rendering_indication=%u"
                         "%s"
                         "%s"
                         "%s"
                         "%s"
                         "",
                         desc7f19_presel_get_preselection_id(p_desc_n),
                         desc7f19_presel_get_audio_rendering_indication(p_desc_n),
                         desc7f19_presel_get_audio_description(p_desc_n) ?
                         " audio_description" : "",
                         desc7f19_presel_get_spoken_subtitles(p_desc_n) ?
                         " spoken_subtitles" : "",
                         desc7f19_presel_get_dialogue_enhancement(p_desc_n) ?
                         " dialogue_enhancement" : "",
                         desc7f19_presel_get_interactivity_enabled(p_desc_n) ?
                         " interactivity_enabled" : ""
                        );
                if ((p = desc7f19_presel_get_language_code_ptr(p_desc_n))) {
                    char code[4];
                    memcpy(code, p, 3);
                    code[3] = '\0';
                    pf_print(opaque,
                             "        - language code=\"%s\"", code);
                }
                if ((p = desc7f19_presel_get_text_label_ptr(p_desc_n))) {
                    pf_print(opaque, "        - text label message_id=%u",
                             desc7f19_presel_text_get_message_id(p));
                }
                if ((p = desc7f19_presel_get_multi_stream_info_ptr(p_desc_n))) {
                    uint8_t nb = desc7f19_presel_msi_get_num_aux_components(p);
                    char comp_tags[nb * 2 + 1];
                    for (uint8_t i = 0; i < nb; i++)
                        sprintf(comp_tags + i * 2, "%02x", p[i + 1]);
                    pf_print(opaque, "        - multi_stream_info %s",
                             comp_tags);
                }
        }
    }

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, -0x50(%rbp)
movl %esi, -0x44(%rbp)
cmpl $0x1, %esi
jne 0xbcf4
leaq 0x9629(%rip), %rsi      # 0x15316
xorl %eax, %eax
callq 0x5d75
movq -0x50(%rbp), %rcx
leaq 0x4(%rcx), %rax
cmpb $0x4, 0x1(%rcx)
movl $0x0, %r13d
cmovaeq %rax, %r13
testq %r13, %r13
je 0xbfda
movq %r13, %rdi
callq 0xd1d4
movl %eax, %ebx
movq %r13, %rdi
callq 0xd1de
movl %eax, %r14d
movq %r13, %rdi
callq 0xd1e9
movzbl %bl, %r12d
movzbl %r14b, %ebx
cmpl $0x1, -0x44(%rbp)
jne 0xbe4b
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movq %r13, %rdi
callq 0xd1f4
movzbl %al, %r14d
movq %r13, %rdi
callq 0xd1ff
movzbl %al, %r15d
movq %r13, %rdi
callq 0xd20a
movzbl %al, %edi
leaq 0x95be(%rip), %rsi      # 0x15330
movl %r12d, %edx
movl %ebx, %ecx
movl -0x30(%rbp), %r8d
movl %r14d, %r9d
xorl %eax, %eax
pushq %rdi
pushq %r15
callq 0x5d75
popq %rax
popq %rcx
movq %r13, %rdi
callq 0xd1ba
testq %rax, %rax
je 0xbdba
movb 0x2(%rax), %cl
movb %cl, -0x36(%rbp)
movzwl (%rax), %eax
movw %ax, -0x38(%rbp)
movb $0x0, -0x35(%rbp)
leaq 0x9620(%rip), %rsi      # 0x153cf
leaq -0x38(%rbp), %rdx
xorl %eax, %eax
callq 0x5d75
movq %r13, %rdi
callq 0xd18d
testq %rax, %rax
je 0xbde0
movq %rax, %rdi
callq 0xd215
movzbl %al, %edx
leaq 0x961b(%rip), %rsi      # 0x153f4
xorl %eax, %eax
callq 0x5d75
movq %r13, %rdi
callq 0xd118
testq %rax, %rax
je 0xbf9d
movq %rax, %rbx
movq %r13, -0x30(%rbp)
movq %rax, %rdi
callq 0xd157
movq %rsp, -0x40(%rbp)
movzbl %al, %r15d
leal 0x10(,%r15,2), %eax
andl $-0x10, %eax
movq %rsp, %r12
subq %rax, %r12
movq %r12, %rsp
movq %r12, %r14
xorl %r13d, %r13d
cmpq %r13, %r15
je 0xbf84
movzbl 0x1(%rbx,%r13), %edx
movq %r14, %rdi
leaq 0x410b(%rip), %rsi      # 0xff46
xorl %eax, %eax
callq 0x21e0
incq %r13
addq $0x2, %r14
jmp 0xbe22
testb %al, %al
leaq 0x965a(%rip), %r14      # 0x154ae
leaq 0x9fcf(%rip), %rax      # 0x15e2a
movl %ebx, -0x30(%rbp)
movq %rax, %rbx
cmoveq %rax, %r14
movq %r13, %rdi
callq 0xd1f4
testb %al, %al
movl %r12d, -0x40(%rbp)
leaq 0x9647(%rip), %r12      # 0x154c1
cmoveq %rbx, %r12
movq %r13, %rdi
callq 0xd1ff
testb %al, %al
leaq 0x9644(%rip), %r15      # 0x154d3
cmoveq %rbx, %r15
movq %r13, %rdi
callq 0xd20a
testb %al, %al
leaq 0x9645(%rip), %rdi      # 0x154e9
cmoveq %rbx, %rdi
leaq 0x95b0(%rip), %rsi      # 0x1545f
movl -0x40(%rbp), %edx
movl -0x30(%rbp), %ecx
movq %r14, %r8
movq %r12, %r9
xorl %eax, %eax
pushq %rdi
pushq %r15
callq 0x5d75
popq %rax
popq %rcx
movq %r13, %rdi
callq 0xd1ba
testq %rax, %rax
je 0xbef7
movb 0x2(%rax), %cl
movb %cl, -0x32(%rbp)
movzwl (%rax), %eax
movw %ax, -0x34(%rbp)
movb $0x0, -0x31(%rbp)
leaq 0x931f(%rip), %rsi      # 0x1520b
leaq -0x34(%rbp), %rdx
xorl %eax, %eax
callq 0x5d75
movq %r13, %rdi
callq 0xd18d
testq %rax, %rax
je 0xbf1d
movq %rax, %rdi
callq 0xd215
movzbl %al, %edx
leaq 0x95ea(%rip), %rsi      # 0x15500
xorl %eax, %eax
callq 0x5d75
movq %r13, %rdi
callq 0xd118
testq %rax, %rax
je 0xbfc6
movq %rax, %rbx
movq %r13, -0x30(%rbp)
movq %rax, %rdi
callq 0xd157
movq %rsp, -0x40(%rbp)
movzbl %al, %r15d
leal 0x10(,%r15,2), %eax
andl $-0x10, %eax
movq %rsp, %r12
subq %rax, %r12
movq %r12, %rsp
movq %r12, %r14
xorl %r13d, %r13d
cmpq %r13, %r15
je 0xbfad
movzbl 0x1(%rbx,%r13), %edx
movq %r14, %rdi
leaq 0x3fd2(%rip), %rsi      # 0xff46
xorl %eax, %eax
callq 0x21e0
incq %r13
addq $0x2, %r14
jmp 0xbf5f
leaq 0x9494(%rip), %rsi      # 0x1541f
movq %r12, %rdx
xorl %eax, %eax
callq 0x5d75
movq -0x40(%rbp), %rsp
movq -0x30(%rbp), %r13
leaq 0x94a5(%rip), %rsi      # 0x15449
xorl %eax, %eax
callq 0x5d75
jmp 0xbfc6
leaq 0x956f(%rip), %rsi      # 0x15523
movq %r12, %rdx
xorl %eax, %eax
callq 0x5d75
movq -0x40(%rbp), %rsp
movq -0x30(%rbp), %r13
movq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0xcff6
movq %rax, %r13
jmp 0xbd0a
cmpl $0x1, -0x44(%rbp)
jne 0xbfee
leaq 0x955b(%rip), %rsi      # 0x15542
xorl %eax, %eax
callq 0x5d75
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq