// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_5a.h
// Function: desc5a_print
static inline void desc5a_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    uint8_t i_bandwidth = desc5a_get_bandwidth(p_desc);
    uint8_t i_constellation = desc5a_get_constellation(p_desc);
    const char *psz_constellation = "reserved";
    uint8_t i_hierarchy = desc5a_get_hierarchy(p_desc);
    const char *psz_hierarchy = "";
    bool b_hierarchy = !!(i_hierarchy & 0x3);
    uint8_t i_guard = desc5a_get_guard(p_desc);
    const char *psz_guard = "";
    uint8_t i_transmission = desc5a_get_transmission(p_desc);
    const char *psz_transmission = "reserved";

    switch (i_bandwidth) {
        case 0x0: i_bandwidth = 8; break;
        case 0x1: i_bandwidth = 7; break;
        case 0x2: i_bandwidth = 6; break;
        case 0x3: i_bandwidth = 5; break;
        default: i_bandwidth = 0; break;
    }

    switch (i_constellation) {
        case 0x0: psz_constellation = "QPSK"; break;
        case 0x1: psz_constellation = "16-qam"; break;
        case 0x2: psz_constellation = "64-qam"; break;
    }

    switch (i_hierarchy) {
        case 0x0: psz_hierarchy = "none"; break;
        case 0x1: psz_hierarchy = "1"; break;
        case 0x2: psz_hierarchy = "2"; break;
        case 0x3: psz_hierarchy = "4"; break;
        case 0x4: psz_hierarchy = "none+in-depth"; break;
        case 0x5: psz_hierarchy = "1+in-depth"; break;
        case 0x6: psz_hierarchy = "2+in-depth"; break;
        case 0x7: psz_hierarchy = "4+in-depth"; break;
    }

    switch (i_guard) {
        case 0x0: psz_guard = "1/32"; break;
        case 0x1: psz_guard = "1/16"; break;
        case 0x2: psz_guard = "1/8"; break;
        case 0x3: psz_guard = "1/4"; break;
    }

    switch (i_transmission) {
        case 0x0: psz_transmission = "2k"; break;
        case 0x1: psz_transmission = "8k"; break;
        case 0x2: psz_transmission = "4k"; break;
    }

    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque,
             "<TERRESTRIAL_DESC frequency=\"%" PRIu64 "\" bandwidth=\"%u\" priority=\"%s\" timeslicing=\"%d\" mpefec=\"%d\" constellation=\"%s\" hierarchy=\"%s\" coderatehp=\"%s\" coderatelp=\"%s\" guard=\"%s\" transmission=\"%s\" otherfrequency=\"%d\"/>",
             desc5a_get_frequency(p_desc), i_bandwidth,
             desc5a_get_priority(p_desc) ? "HP" : "LP",
             desc5a_get_timeslicing(p_desc) ? 1 : 0,
             desc5a_get_mpefec(p_desc) ? 1 : 0, psz_constellation,
             psz_hierarchy,
             dvb_delivery_get_fec(desc5a_get_coderatehp(p_desc) + 1),
             b_hierarchy ? dvb_delivery_get_fec(desc5a_get_coderatelp(p_desc) + 1) : "not_applicable",
             psz_guard, psz_transmission,
             desc5a_get_otherfrequency(p_desc) ? 1 : 0);
        break;
    default:
        pf_print(opaque,
             "    - desc 5a dvb-t frequency=%" PRIu64 " Hz bandwidth=%u MHz priority=%s timeslicing=%d mpefec=%d constellation=%s hierarchy=%s coderatehp=%s coderatelp=%s guard=%s transmission=%s otherfrequency=%d",
             desc5a_get_frequency(p_desc), i_bandwidth,
             desc5a_get_priority(p_desc) ? "HP" : "LP",
             desc5a_get_timeslicing(p_desc) ? 1 : 0,
             desc5a_get_mpefec(p_desc) ? 1 : 0, psz_constellation,
             psz_hierarchy,
             dvb_delivery_get_fec(desc5a_get_coderatehp(p_desc) + 1),
             b_hierarchy ? dvb_delivery_get_fec(desc5a_get_coderatelp(p_desc) + 1) : "not_applicable",
             psz_guard, psz_transmission,
             desc5a_get_otherfrequency(p_desc) ? 1 : 0);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movl %ecx, -0x44(%rbp)
movq -0x30(%rbp), %rdi
callq 0x198c0
movb %al, -0x45(%rbp)
movq -0x30(%rbp), %rdi
callq 0x198e0
movb %al, -0x46(%rbp)
leaq 0x15681(%rip), %rax     # 0x244d3
movq %rax, -0x90(%rbp)
movq %rax, -0x50(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19900
movb %al, -0x51(%rbp)
leaq 0x1c24f(%rip), %rax     # 0x2b0bf
movq %rax, -0x98(%rbp)
movq %rax, -0x60(%rbp)
movzbl -0x51(%rbp), %eax
testb $0x3, %al
setne -0x61(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19920
movb %al, %cl
movq -0x98(%rbp), %rax
movb %cl, -0x62(%rbp)
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19940
movb %al, %cl
movq -0x90(%rbp), %rax
movb %cl, -0x71(%rbp)
movq %rax, -0x80(%rbp)
movzbl -0x45(%rbp), %eax
movq %rax, -0x88(%rbp)
subq $0x3, %rax
ja 0xeef7
movq -0x88(%rbp), %rax
leaq 0x1459a(%rip), %rcx     # 0x23470
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x8, -0x45(%rbp)
jmp 0xeefb
movb $0x7, -0x45(%rbp)
jmp 0xeefb
movb $0x6, -0x45(%rbp)
jmp 0xeefb
movb $0x5, -0x45(%rbp)
jmp 0xeefb
movb $0x0, -0x45(%rbp)
movzbl -0x46(%rbp), %eax
movl %eax, -0x9c(%rbp)
testl %eax, %eax
je 0xef25
jmp 0xef0b
movl -0x9c(%rbp), %eax
subl $0x1, %eax
je 0xef32
jmp 0xef18
movl -0x9c(%rbp), %eax
subl $0x2, %eax
je 0xef3f
jmp 0xef4a
leaq 0x196e7(%rip), %rax     # 0x28613
movq %rax, -0x50(%rbp)
jmp 0xef4a
leaq 0x17e18(%rip), %rax     # 0x26d51
movq %rax, -0x50(%rbp)
jmp 0xef4a
leaq 0x17fea(%rip), %rax     # 0x26f30
movq %rax, -0x50(%rbp)
movzbl -0x51(%rbp), %eax
movq %rax, -0xa8(%rbp)
subq $0x7, %rax
ja 0xefd8
movq -0xa8(%rbp), %rax
leaq 0x14517(%rip), %rcx     # 0x23480
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x17f9f(%rip), %rax     # 0x26f18
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x19f5f(%rip), %rax     # 0x28ee5
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x17c45(%rip), %rax     # 0x26bd8
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x17c4e(%rip), %rax     # 0x26bee
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x1966b(%rip), %rax     # 0x28618
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x1966c(%rip), %rax     # 0x28626
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x1966a(%rip), %rax     # 0x28631
movq %rax, -0x60(%rbp)
jmp 0xefd8
leaq 0x19668(%rip), %rax     # 0x2863c
movq %rax, -0x60(%rbp)
movzbl -0x62(%rbp), %eax
movq %rax, -0xb0(%rbp)
subq $0x3, %rax
ja 0xf032
movq -0xb0(%rbp), %rax
leaq 0x144a9(%rip), %rcx     # 0x234a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x19640(%rip), %rax     # 0x28647
movq %rax, -0x70(%rbp)
jmp 0xf032
leaq 0x19638(%rip), %rax     # 0x2864c
movq %rax, -0x70(%rbp)
jmp 0xf032
leaq 0x19630(%rip), %rax     # 0x28651
movq %rax, -0x70(%rbp)
jmp 0xf032
leaq 0x19627(%rip), %rax     # 0x28655
movq %rax, -0x70(%rbp)
movzbl -0x71(%rbp), %eax
movl %eax, -0xb4(%rbp)
testl %eax, %eax
je 0xf05c
jmp 0xf042
movl -0xb4(%rbp), %eax
subl $0x1, %eax
je 0xf069
jmp 0xf04f
movl -0xb4(%rbp), %eax
subl $0x2, %eax
je 0xf076
jmp 0xf081
leaq 0x195f6(%rip), %rax     # 0x28659
movq %rax, -0x80(%rbp)
jmp 0xf081
leaq 0x195ec(%rip), %rax     # 0x2865c
movq %rax, -0x80(%rbp)
jmp 0xf081
leaq 0x195e2(%rip), %rax     # 0x2865f
movq %rax, -0x80(%rbp)
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0xf23d
jmp 0xf08f
movq -0x38(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19960
movq %rax, -0xf0(%rbp)
movzbl -0x45(%rbp), %eax
movl %eax, -0xe4(%rbp)
movq -0x30(%rbp), %rdi
callq 0x199b0
movb %al, %dl
leaq 0x19665(%rip), %rax     # 0x28736
leaq 0x1965b(%rip), %rcx     # 0x28733
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0xe0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x199e0
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0xd8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a10
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0xd4(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a40
movzbl %al, %eax
addl $0x1, %eax
movzbl %al, %edi
callq 0x17260
movq %rax, -0xc0(%rbp)
testb $0x1, -0x61(%rbp)
je 0xf17c
movq -0x30(%rbp), %rdi
callq 0x19a60
movzbl %al, %eax
addl $0x1, %eax
movzbl %al, %edi
callq 0x17260
movq %rax, -0x108(%rbp)
jmp 0xf18c
leaq 0x195b6(%rip), %rax     # 0x28739
movq %rax, -0x108(%rbp)
jmp 0xf18c
movq -0xc0(%rbp), %r15
movq -0xc8(%rbp), %r12
movq -0xd0(%rbp), %r13
movq -0x108(%rbp), %r14
movq -0x70(%rbp), %rbx
movq -0x80(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a80
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rdx
movq -0xe0(%rbp), %r8
movl -0xd8(%rbp), %r9d
movl -0xd4(%rbp), %r10d
movq -0x110(%rbp), %r11
movb %al, %cl
xorl %eax, %eax
movl $0x1, %esi
testb $0x1, %cl
movl -0xe4(%rbp), %ecx
cmovnel %esi, %eax
leaq 0x1945c(%rip), %rsi     # 0x28662
movl %r10d, (%rsp)
movq -0x100(%rbp), %r10
movq %r13, 0x8(%rsp)
movq %r12, 0x10(%rsp)
movq %r15, 0x18(%rsp)
movq %r14, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
movq %r11, 0x30(%rsp)
movl %eax, 0x38(%rsp)
movb $0x0, %al
callq *%r10
jmp 0xf3e6
movq -0x38(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19960
movq %rax, -0x148(%rbp)
movzbl -0x45(%rbp), %eax
movl %eax, -0x13c(%rbp)
movq -0x30(%rbp), %rdi
callq 0x199b0
movb %al, %dl
leaq 0x194b7(%rip), %rax     # 0x28736
leaq 0x194ad(%rip), %rcx     # 0x28733
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x138(%rbp)
movq -0x30(%rbp), %rdi
callq 0x199e0
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0x130(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a10
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0x12c(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a40
movzbl %al, %eax
addl $0x1, %eax
movzbl %al, %edi
callq 0x17260
movq %rax, -0x118(%rbp)
testb $0x1, -0x61(%rbp)
je 0xf32a
movq -0x30(%rbp), %rdi
callq 0x19a60
movzbl %al, %eax
addl $0x1, %eax
movzbl %al, %edi
callq 0x17260
movq %rax, -0x160(%rbp)
jmp 0xf33a
leaq 0x19408(%rip), %rax     # 0x28739
movq %rax, -0x160(%rbp)
jmp 0xf33a
movq -0x118(%rbp), %r15
movq -0x120(%rbp), %r12
movq -0x128(%rbp), %r13
movq -0x160(%rbp), %r14
movq -0x70(%rbp), %rbx
movq -0x80(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19a80
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rdx
movq -0x138(%rbp), %r8
movl -0x130(%rbp), %r9d
movl -0x12c(%rbp), %r10d
movq -0x168(%rbp), %r11
movb %al, %cl
xorl %eax, %eax
movl $0x1, %esi
testb $0x1, %cl
movl -0x13c(%rbp), %ecx
cmovnel %esi, %eax
leaq 0x19394(%rip), %rsi     # 0x28748
movl %r10d, (%rsp)
movq -0x158(%rbp), %r10
movq %r13, 0x8(%rsp)
movq %r12, 0x10(%rsp)
movq %r15, 0x18(%rsp)
movq %r14, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
movq %r11, 0x30(%rsp)
movl %eax, 0x38(%rsp)
movb $0x0, %al
callq *%r10
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax,%rax)