// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_4a.h
// Function: desc4a_print
static inline void desc4a_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    uint8_t i_linkage = desc4a_get_linkage(p_desc);

    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque,
             "<LINKAGE_DESC tsid=\"%hu\" onid=\"%hu\" sid=\"%hu\" linkage=\"0x%02x\" linkage_txt=\"%s\">",
             desc4a_get_tsid(p_desc), desc4a_get_onid(p_desc),
             desc4a_get_sid(p_desc), i_linkage,
             desc4a_get_linkage_txt(i_linkage)
             );
        if (i_linkage == DESC4A_LINKAGE_MOBILE) {
            pf_print(opaque,
                 "<MOBILE_HANDOVER_INFO handover_type=\"%u\" origin_type=\"%u\" nid=\"%u\" initial_sid=\"%u\"/>",
                 desc4a_get_mobile_handover_type(p_desc),
                 desc4a_get_mobile_origin_type(p_desc),
                 desc4a_get_mobile_nid(p_desc),
                 desc4a_get_mobile_initial_sid(p_desc)
                 );
        }
        if (i_linkage == DESC4A_LINKAGE_EVENT) { // event linkage
            pf_print(opaque,
                 "<EVENT_LINKAGE target_event_id=\"%u\" target_listed=\"%u\" event_simulcast=\"%u\"/>",
                 desc4a_get_event_target_event_id(p_desc),
                 desc4a_get_event_target_listed(p_desc),
                 desc4a_get_event_simulcast(p_desc)
                 );
        }
        if (i_linkage == DESC4A_LINKAGE_EXT_EVENT) {
            desc4a_each_ext_event(p_desc, p_desc_n) {
                pf_print(opaque,
                     "<EXTENDED_EVENT_LINKAGE target_event_id=\"%u\" target_listed=\"%u\" event_simulcast=\"%u\""
                     " link_type=\"%u\" link_type_txt=\"%s\""
                     " target_id_type=\"%u\" target_id_type_txt=\"%s\""
                     " onid_id_flag=\"%u\" service_id_flag=\"%u\""
                     " user_defined_id=\"%u\" target_tsid=\"%u\" target_onid=\"%u\" target_service_id=\"%u\"/>",
                     desc4an_get_ext_event_target_event_id(p_desc_n),
                     desc4an_get_ext_event_target_listed(p_desc_n),
                     desc4an_get_ext_event_simulcast(p_desc_n),
                     desc4an_get_ext_event_link_type(p_desc_n),
                     desc4a_get_ext_event_link_type_txt(desc4an_get_ext_event_link_type(p_desc_n)),
                     desc4an_get_ext_event_target_id_type(p_desc_n),
                     desc4a_get_ext_event_target_id_type_txt(desc4an_get_ext_event_target_id_type(p_desc_n)),
                     desc4an_get_ext_event_onid_id_flag(p_desc_n),
                     desc4an_get_ext_event_service_id_flag(p_desc_n),
                     desc4an_get_ext_event_user_defined_id(p_desc_n),
                     desc4an_get_ext_event_target_tsid(p_desc_n),
                     desc4an_get_ext_event_target_onid(p_desc_n),
                     desc4an_get_ext_event_service_id(p_desc_n)
                );
            }
        }
        pf_print(opaque,
             "</LINKAGE_DESC>");
        break;
    default:
        pf_print(opaque,
             "    - desc 4a linkage tsid=%hu onid=%hu sid=%hu linkage=0x%02x linkage_txt=\"%s\"",
             desc4a_get_tsid(p_desc), desc4a_get_onid(p_desc),
             desc4a_get_sid(p_desc), i_linkage,
             desc4a_get_linkage_txt(i_linkage)
             );
        if (i_linkage == DESC4A_LINKAGE_MOBILE) {
            pf_print(opaque,
                 "        - mobile_handover handover_type=%u origin_type=%u nid=%u initial_sid=%u",
                 desc4a_get_mobile_handover_type(p_desc),
                 desc4a_get_mobile_origin_type(p_desc),
                 desc4a_get_mobile_nid(p_desc),
                 desc4a_get_mobile_initial_sid(p_desc)
                 );
        }
        if (i_linkage == DESC4A_LINKAGE_EVENT) {
            pf_print(opaque,
                 "        - event_linkage target_event_id=%u target_listed=%u event_simulcast=%u",
                 desc4a_get_event_target_event_id(p_desc),
                 desc4a_get_event_target_listed(p_desc),
                 desc4a_get_event_simulcast(p_desc)
                 );
        }
        if (i_linkage == DESC4A_LINKAGE_EXT_EVENT) {
            desc4a_each_ext_event(p_desc, p_desc_n) {
                pf_print(opaque,
                     "        - extended_event_linkage target_event_id=%u target_listed=%u event_simulcast=%u"
                     " link_type=%u link_type_txt=\"%s\""
                     " target_id_type=%u target_id_type_txt=\"%s\""
                     " onid_id_flag=%u service_id_flag=%u"
                     " user_defined_id=%u target_tsid=%u target_onid=%u target_service_id=%u",
                     desc4an_get_ext_event_target_event_id(p_desc_n),
                     desc4an_get_ext_event_target_listed(p_desc_n),
                     desc4an_get_ext_event_simulcast(p_desc_n),
                     desc4an_get_ext_event_link_type(p_desc_n),
                     desc4a_get_ext_event_link_type_txt(desc4an_get_ext_event_link_type(p_desc_n)),
                     desc4an_get_ext_event_target_id_type(p_desc_n),
                     desc4a_get_ext_event_target_id_type_txt(desc4an_get_ext_event_target_id_type(p_desc_n)),
                     desc4an_get_ext_event_onid_id_flag(p_desc_n),
                     desc4an_get_ext_event_service_id_flag(p_desc_n),
                     desc4an_get_ext_event_user_defined_id(p_desc_n),
                     desc4an_get_ext_event_target_tsid(p_desc_n),
                     desc4an_get_ext_event_target_onid(p_desc_n),
                     desc4an_get_ext_event_service_id(p_desc_n)
                );
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movl %ecx, -0x44(%rbp)
movq -0x30(%rbp), %rdi
callq 0x179a0
movb %al, -0x45(%rbp)
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0xcfd7
jmp 0xcc8d
movq -0x38(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a40
movzwl %ax, %eax
movl %eax, -0x70(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a60
movzwl %ax, %eax
movl %eax, -0x6c(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a80
movzwl %ax, %eax
movl %eax, -0x68(%rbp)
movzbl -0x45(%rbp), %eax
movl %eax, -0x64(%rbp)
movzbl -0x45(%rbp), %edi
callq 0x17aa0
movq -0x78(%rbp), %rdi
movl -0x70(%rbp), %edx
movl -0x6c(%rbp), %ecx
movl -0x68(%rbp), %r8d
movl -0x64(%rbp), %r9d
movq -0x60(%rbp), %r10
leaq 0x1a6ee(%rip), %rsi     # 0x273e5
movq %rax, (%rsp)
movb $0x0, %al
callq *%r10
movzbl -0x45(%rbp), %eax
cmpl $0x8, %eax
jne 0xcd8f
movq -0x38(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a20
movzbl %al, %eax
movl %eax, -0x8c(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a00
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x88(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17d20
movzwl %ax, %eax
movl %eax, -0x84(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17d70
movq -0x98(%rbp), %rdi
movl -0x8c(%rbp), %edx
movl -0x88(%rbp), %ecx
movl -0x84(%rbp), %r8d
movq -0x80(%rbp), %r10
movzwl %ax, %r9d
leaq 0x1a6ac(%rip), %rsi     # 0x27436
movb $0x0, %al
callq *%r10
movzbl -0x45(%rbp), %eax
cmpl $0xd, %eax
jne 0xce09
movq -0x38(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17df0
movzwl %ax, %eax
movl %eax, -0xa8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17e10
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xa4(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17e40
movq -0xb0(%rbp), %rdi
movl -0xa8(%rbp), %edx
movl -0xa4(%rbp), %ecx
movq -0xa0(%rbp), %r9
andb $0x1, %al
movzbl %al, %r8d
leaq 0x1a688(%rip), %rsi     # 0x2748c
movb $0x0, %al
callq *%r9
movzbl -0x45(%rbp), %eax
cmpl $0xe, %eax
jne 0xcfbf
movq -0x30(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x17e60
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0xcfbd
movq -0x38(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17ec0
movzwl %ax, %eax
movl %eax, -0xdc(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17ee0
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xd8(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17f10
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xd4(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17f30
movzbl %al, %eax
movl %eax, -0xd0(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17f30
movzbl %al, %edi
callq 0x17f50
movq %rax, -0xc0(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17fc0
movzbl %al, %eax
movl %eax, -0xb8(%rbp)
movq -0x50(%rbp), %rdi
callq 0x17fc0
movzbl %al, %edi
callq 0x17fe0
movq %rax, %r13
movq -0x50(%rbp), %rdi
callq 0x18050
andb $0x1, %al
movzbl %al, %r12d
movq -0x50(%rbp), %rdi
callq 0x18070
andb $0x1, %al
movzbl %al, %r15d
movq -0x50(%rbp), %rdi
callq 0x18090
movzwl %ax, %r14d
movq -0x50(%rbp), %rdi
callq 0x180e0
movzwl %ax, %ebx
movq -0x50(%rbp), %rdi
callq 0x18130
movzwl %ax, %eax
movl %eax, -0xcc(%rbp)
movq -0x50(%rbp), %rdi
callq 0x181c0
movq -0xe8(%rbp), %rdi
movl -0xdc(%rbp), %edx
movl -0xd8(%rbp), %ecx
movl -0xd4(%rbp), %r8d
movl -0xd0(%rbp), %r9d
movl -0xcc(%rbp), %r11d
movq -0xc8(%rbp), %r10
movw %ax, %si
movq -0xc0(%rbp), %rax
movzwl %si, %esi
movl %esi, -0xb4(%rbp)
leaq 0x1a56d(%rip), %rsi     # 0x274da
movq %rax, (%rsp)
movl -0xb8(%rbp), %eax
movl %eax, 0x8(%rsp)
movl -0xb4(%rbp), %eax
movq %r13, 0x10(%rsp)
movl %r12d, 0x18(%rsp)
movl %r15d, 0x20(%rsp)
movl %r14d, 0x28(%rsp)
movl %ebx, 0x30(%rsp)
movl %r11d, 0x38(%rsp)
movl %eax, 0x40(%rsp)
movb $0x0, %al
callq *%r10
movq -0x30(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x17e60
movq %rax, -0x50(%rbp)
jmp 0xce27
jmp 0xcfbf
movq -0x38(%rbp), %rcx
movq -0x40(%rbp), %rdi
leaq 0x1a626(%rip), %rsi     # 0x275f4
movb $0x0, %al
callq *%rcx
jmp 0xd335
movq -0x38(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a40
movzwl %ax, %eax
movl %eax, -0x100(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a60
movzwl %ax, %eax
movl %eax, -0xfc(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a80
movzwl %ax, %eax
movl %eax, -0xf8(%rbp)
movzbl -0x45(%rbp), %eax
movl %eax, -0xf4(%rbp)
movzbl -0x45(%rbp), %edi
callq 0x17aa0
movq -0x108(%rbp), %rdi
movl -0x100(%rbp), %edx
movl -0xfc(%rbp), %ecx
movl -0xf8(%rbp), %r8d
movl -0xf4(%rbp), %r9d
movq -0xf0(%rbp), %r10
leaq 0x1a59f(%rip), %rsi     # 0x27604
movq %rax, (%rsp)
movb $0x0, %al
callq *%r10
movzbl -0x45(%rbp), %eax
cmpl $0x8, %eax
jne 0xd103
movq -0x38(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a20
movzbl %al, %eax
movl %eax, -0x11c(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17a00
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x118(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17d20
movzwl %ax, %eax
movl %eax, -0x114(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17d70
movq -0x128(%rbp), %rdi
movl -0x11c(%rbp), %edx
movl -0x118(%rbp), %ecx
movl -0x114(%rbp), %r8d
movq -0x110(%rbp), %r10
movzwl %ax, %r9d
leaq 0x1a556(%rip), %rsi     # 0x27654
movb $0x0, %al
callq *%r10
movzbl -0x45(%rbp), %eax
cmpl $0xd, %eax
jne 0xd17d
movq -0x38(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17df0
movzwl %ax, %eax
movl %eax, -0x138(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17e10
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x134(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17e40
movq -0x140(%rbp), %rdi
movl -0x138(%rbp), %edx
movl -0x134(%rbp), %ecx
movq -0x130(%rbp), %r9
andb $0x1, %al
movzbl %al, %r8d
leaq 0x1a52c(%rip), %rsi     # 0x276a4
movb $0x0, %al
callq *%r9
movzbl -0x45(%rbp), %eax
cmpl $0xe, %eax
jne 0xd333
movq -0x30(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x17e60
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0xd331
movq -0x38(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17ec0
movzwl %ax, %eax
movl %eax, -0x16c(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17ee0
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x168(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17f10
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x164(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17f30
movzbl %al, %eax
movl %eax, -0x160(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17f30
movzbl %al, %edi
callq 0x17f50
movq %rax, -0x150(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17fc0
movzbl %al, %eax
movl %eax, -0x148(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17fc0
movzbl %al, %edi
callq 0x17fe0
movq %rax, %r13
movq -0x58(%rbp), %rdi
callq 0x18050
andb $0x1, %al
movzbl %al, %r12d
movq -0x58(%rbp), %rdi
callq 0x18070
andb $0x1, %al
movzbl %al, %r15d
movq -0x58(%rbp), %rdi
callq 0x18090
movzwl %ax, %r14d
movq -0x58(%rbp), %rdi
callq 0x180e0
movzwl %ax, %ebx
movq -0x58(%rbp), %rdi
callq 0x18130
movzwl %ax, %eax
movl %eax, -0x15c(%rbp)
movq -0x58(%rbp), %rdi
callq 0x181c0
movq -0x178(%rbp), %rdi
movl -0x16c(%rbp), %edx
movl -0x168(%rbp), %ecx
movl -0x164(%rbp), %r8d
movl -0x160(%rbp), %r9d
movl -0x15c(%rbp), %r11d
movq -0x158(%rbp), %r10
movw %ax, %si
movq -0x150(%rbp), %rax
movzwl %si, %esi
movl %esi, -0x144(%rbp)
leaq 0x1a412(%rip), %rsi     # 0x276f3
movq %rax, (%rsp)
movl -0x148(%rbp), %eax
movl %eax, 0x8(%rsp)
movl -0x144(%rbp), %eax
movq %r13, 0x10(%rsp)
movl %r12d, 0x18(%rsp)
movl %r15d, 0x20(%rsp)
movl %r14d, 0x28(%rsp)
movl %ebx, 0x30(%rsp)
movl %r11d, 0x38(%rsp)
movl %eax, 0x40(%rsp)
movb $0x0, %al
callq *%r10
movq -0x30(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x17e60
movq %rax, -0x58(%rbp)
jmp 0xd19b
jmp 0xd333
jmp 0xd335
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw (%rax,%rax)