// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_66.h
// Function: desc66_print
static inline void desc66_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    uint8_t i_selector_byte_length, i;
    const uint8_t *p_selector_byte = desc66_get_selector_byte(p_desc, &i_selector_byte_length);
    char psz_selector_byte[2 * 255 + 1];
    char psz_selector_byte_txt[255 + 1];

    for (i = 0; i < i_selector_byte_length; i++) {
        sprintf(psz_selector_byte + 2 * i, "%02x", p_selector_byte[i]);
        if (p_selector_byte[i] >= 48 && p_selector_byte[i] <= 127 && p_selector_byte[i] != '"')
            psz_selector_byte_txt[i] = p_selector_byte[i];
        else
            psz_selector_byte_txt[i] = '.';
    }
    psz_selector_byte[2 * i] = '\0';
    psz_selector_byte_txt[i] = '\0';

    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque,
                 "<DATA_BROADCAST_ID_DESC broadcast_id=\"0x%04x\""
                 " selector_byte=\"%s\"/>",
                 desc66_get_broadcast_id(p_desc),
                 psz_selector_byte
                );
        break;
    default:
        pf_print(opaque,
                 "    - desc 66 data_broadcast broadcast_id=0x%04x"
                 " selector_byte=\"%s\" selector_byte_txt=\"%s\"",
                 desc66_get_broadcast_id(p_desc),
                 psz_selector_byte,
                 psz_selector_byte_txt
                );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x350, %rsp            # imm = 0x350
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x1d(%rbp), %rsi
callq 0x1a320
movq %rax, -0x28(%rbp)
movb $0x0, -0x1e(%rbp)
movzbl -0x1e(%rbp), %eax
movzbl -0x1d(%rbp), %ecx
cmpl %ecx, %eax
jge 0x102c1
leaq -0x230(%rbp), %rdi
movzbl -0x1e(%rbp), %eax
shll %eax
cltq
addq %rax, %rdi
movq -0x28(%rbp), %rax
movzbl -0x1e(%rbp), %ecx
movzbl (%rax,%rcx), %edx
leaq 0x14f2c(%rip), %rsi     # 0x25180
movb $0x0, %al
callq 0x21e0
movq -0x28(%rbp), %rax
movzbl -0x1e(%rbp), %ecx
movzbl (%rax,%rcx), %eax
cmpl $0x30, %eax
jl 0x102a6
movq -0x28(%rbp), %rax
movzbl -0x1e(%rbp), %ecx
movzbl (%rax,%rcx), %eax
cmpl $0x7f, %eax
jg 0x102a6
movq -0x28(%rbp), %rax
movzbl -0x1e(%rbp), %ecx
movzbl (%rax,%rcx), %eax
cmpl $0x22, %eax
je 0x102a6
movq -0x28(%rbp), %rax
movzbl -0x1e(%rbp), %ecx
movb (%rax,%rcx), %cl
movzbl -0x1e(%rbp), %eax
movb %cl, -0x330(%rbp,%rax)
jmp 0x102b2
movzbl -0x1e(%rbp), %eax
movb $0x2e, -0x330(%rbp,%rax)
jmp 0x102b4
movb -0x1e(%rbp), %al
addb $0x1, %al
movb %al, -0x1e(%rbp)
jmp 0x1021f
movzbl -0x1e(%rbp), %eax
movb $0x0, -0x230(%rbp,%rax,2)
movzbl -0x1e(%rbp), %eax
movb $0x0, -0x330(%rbp,%rax)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x10328
jmp 0x102e3
movq -0x10(%rbp), %rax
movq %rax, -0x338(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a350
movq -0x340(%rbp), %rdi
movq -0x338(%rbp), %r8
movzwl %ax, %edx
leaq -0x230(%rbp), %rcx
leaq 0x18be0(%rip), %rsi     # 0x28f01
movb $0x0, %al
callq *%r8
jmp 0x10372
movq -0x10(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x350(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a350
movq -0x350(%rbp), %rdi
movq -0x348(%rbp), %r9
movzwl %ax, %edx
leaq -0x230(%rbp), %rcx
leaq -0x330(%rbp), %r8
leaq 0x18bd7(%rip), %rsi     # 0x28f44
movb $0x0, %al
callq *%r9
addq $0x350, %rsp            # imm = 0x350
popq %rbp
retq
nopl (%rax,%rax)