// File: /workspace/github_c_makefile_star2_O3/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 $0x48, %rsp
movq %rdi, %r15
movl %esi, -0x44(%rbp)
cmpl $0x1, %esi
jne 0x101c9
leaq 0x804c(%rip), %rsi      # 0x1820e
xorl %eax, %eax
callq 0x7e94
cmpb $0x4, 0x1(%r15)
jb 0x10584
leaq 0x2(%r15), %r13
movl $0x4, %ebx
movq %r15, -0x68(%rbp)
movq %r13, -0x60(%rbp)
leaq (%r15,%rbx), %r14
leaq (%r15,%rbx), %r12
addq $0x2, %r12
movzbl -0x2(%r12), %ecx
movl %ecx, %edx
shrl $0x3, %edx
andl $0x7, %ecx
movzbl -0x1(%r12), %edi
cmpl $0x1, -0x44(%rbp)
movq %r14, -0x38(%rbp)
jne 0x1036a
movl %edi, %r8d
shrl $0x7, %r8d
movl %edi, %r9d
shrl $0x6, %r9d
andl $0x1, %r9d
movl %edi, %r10d
shrl $0x5, %r10d
andl $0x1, %r10d
shrl $0x4, %edi
andl $0x1, %edi
leaq 0x7feb(%rip), %rsi      # 0x18228
xorl %eax, %eax
pushq %rdi
pushq %r10
callq 0x7e94
addq $0x10, %rsp
movb 0x1(%r14), %al
testb $0x8, %al
je 0x10281
movb 0x2(%r12), %al
movb %al, -0x2e(%rbp)
movzwl (%r12), %eax
movw %ax, -0x30(%rbp)
movb $0x0, -0x2d(%rbp)
leaq 0x8058(%rip), %rsi      # 0x182c7
leaq -0x30(%rbp), %rdx
xorl %eax, %eax
callq 0x7e94
movq -0x38(%rbp), %rax
movb 0x1(%rax), %al
testb $0x4, %al
je 0x102b5
testb $0x8, %al
movq %r12, %rcx
movl $0x0, %edx
cmoveq %rdx, %rcx
addq $0x3, %rcx
testb $0x8, %al
cmoveq %r12, %rcx
movzbl (%rcx), %edx
leaq 0x8045(%rip), %rsi      # 0x182ec
xorl %eax, %eax
callq 0x7e94
movq -0x38(%rbp), %rax
movb 0x1(%rax), %al
testb $0x2, %al
je 0x10357
movq %rbx, -0x58(%rbp)
movq %rsp, -0x50(%rbp)
testb $0x8, %al
movq %r12, %r15
movl $0x0, %ecx
cmoveq %rcx, %r15
addq $0x3, %r15
testb $0x8, %al
cmoveq %r12, %r15
shrb $0x2, %al
movzbl %al, %ecx
andl $0x1, %ecx
movzbl (%r15,%rcx), %eax
movq %rsp, %rdx
addq $-0x10, %rdx
movq %rdx, -0x40(%rbp)
movq %rdx, %rsp
cmpl $0x20, %eax
leaq 0x2b4f(%rip), %rbx      # 0x12e52
jb 0x10335
addq %rcx, %r15
shrl $0x5, %eax
movzbl %al, %r14d
movq -0x40(%rbp), %r12
xorl %r13d, %r13d
movzbl 0x1(%r15,%r13), %edx
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x21e0
incq %r13
addq $0x2, %r12
cmpq %r13, %r14
jne 0x10316
leaq 0x7fdb(%rip), %rsi      # 0x18317
movq -0x40(%rbp), %rdx
xorl %eax, %eax
callq 0x7e94
movq -0x50(%rbp), %rsp
movq -0x68(%rbp), %r15
movq -0x60(%rbp), %r13
movq -0x58(%rbp), %rbx
leaq 0x7fe3(%rip), %rsi      # 0x18341
xorl %eax, %eax
callq 0x7e94
jmp 0x104d0
testb %dil, %dil
leaq 0x8032(%rip), %r8       # 0x183a6
leaq 0x89a7(%rip), %rax      # 0x18d22
cmovnsq %rax, %r8
testb $0x40, %dil
leaq 0x802f(%rip), %r9       # 0x183b9
cmoveq %rax, %r9
testb $0x20, %dil
leaq 0x8032(%rip), %r10      # 0x183cb
cmoveq %rax, %r10
testb $0x10, %dil
leaq 0x8039(%rip), %rdi      # 0x183e1
cmoveq %rax, %rdi
leaq 0x7fa4(%rip), %rsi      # 0x18357
xorl %eax, %eax
pushq %rdi
pushq %r10
callq 0x7e94
addq $0x10, %rsp
movb 0x1(%r14), %al
testb $0x8, %al
je 0x103f8
movb 0x2(%r12), %al
movb %al, -0x2a(%rbp)
movzwl (%r12), %eax
movw %ax, -0x2c(%rbp)
movb $0x0, -0x29(%rbp)
leaq 0x7d1e(%rip), %rsi      # 0x18103
leaq -0x2c(%rbp), %rdx
xorl %eax, %eax
callq 0x7e94
movq -0x38(%rbp), %r14
movb 0x1(%r14), %al
testb $0x4, %al
je 0x1042d
testb $0x8, %al
movq %r12, %rcx
movl $0x0, %edx
cmoveq %rdx, %rcx
addq $0x3, %rcx
testb $0x8, %al
cmoveq %r12, %rcx
movzbl (%rcx), %edx
leaq 0x7fda(%rip), %rsi      # 0x183f8
xorl %eax, %eax
callq 0x7e94
movq -0x38(%rbp), %r14
movb 0x1(%r14), %al
testb $0x2, %al
je 0x104d4
movq %rbx, -0x58(%rbp)
movq %rsp, -0x50(%rbp)
testb $0x8, %al
movq %r12, %r13
movl $0x0, %ecx
cmoveq %rcx, %r13
addq $0x3, %r13
testb $0x8, %al
cmoveq %r12, %r13
shrb $0x2, %al
movzbl %al, %ecx
andl $0x1, %ecx
movzbl (%r13,%rcx), %eax
movq %rsp, %rdx
addq $-0x10, %rdx
movq %rdx, -0x40(%rbp)
movq %rdx, %rsp
cmpl $0x20, %eax
leaq 0x29d6(%rip), %rbx      # 0x12e52
jb 0x104ae
addq %rcx, %r13
shrl $0x5, %eax
movzbl %al, %r14d
movq -0x40(%rbp), %r15
xorl %r12d, %r12d
movzbl 0x1(%r13,%r12), %edx
movq %r15, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x21e0
incq %r12
addq $0x2, %r15
cmpq %r12, %r14
jne 0x1048f
leaq 0x7f66(%rip), %rsi      # 0x1841b
movq -0x40(%rbp), %rdx
xorl %eax, %eax
callq 0x7e94
movq -0x50(%rbp), %rsp
movq -0x68(%rbp), %r15
movq -0x60(%rbp), %r13
movq -0x58(%rbp), %rbx
movq -0x38(%rbp), %r14
movzbl 0x1(%r14), %edx
xorl %eax, %eax
testb $0x8, %dl
setne %al
leal (%rax,%rax,2), %esi
addl $0x2, %esi
movl %edx, %ecx
shrl $0x2, %ecx
andl $0x1, %ecx
movl %edx, %edi
andb $0x1, %dil
btl $0x1, %edx
movl %ecx, %eax
adcb %dil, %al
addb %sil, %al
testb $0x2, %dl
jne 0x1052a
testb %dil, %dil
je 0x10563
addq $0x2, %r14
testb $0x8, %dl
movl $0x0, %esi
cmovneq %r14, %rsi
addq $0x3, %rsi
testb $0x8, %dl
cmoveq %r14, %rsi
movl %ecx, %edx
jmp 0x10558
addq $0x2, %r14
testb $0x8, %dl
movl $0x0, %esi
cmovneq %r14, %rsi
addq $0x3, %rsi
testb $0x8, %dl
cmoveq %r14, %rsi
movb (%rsi,%rcx), %dl
shrb $0x5, %dl
addb %dl, %al
testb %dil, %dil
je 0x10563
addq %rcx, %rsi
incq %rsi
movzbl %dl, %ecx
movb (%rsi,%rcx), %cl
andb $0x1f, %cl
addb %cl, %al
movzbl %al, %eax
addq %rax, %rbx
cmpq $0x2, %rbx
jb 0x10584
leaq (%rbx,%r13), %rax
movzbl 0x1(%r15), %ecx
addq %r13, %rcx
cmpq %rcx, %rax
jbe 0x101e5
cmpl $0x1, -0x44(%rbp)
jne 0x10598
leaq 0x7ea9(%rip), %rsi      # 0x1843a
xorl %eax, %eax
callq 0x7e94
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq