// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_57.h
// Function: desc57_print
static inline void desc57_print(uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    uint8_t i_country_prefix_len, i_international_area_code_len, i_operator_code_len;
    uint8_t i_national_area_code_len, i_core_number_len, i_phone;
    const char *empty = "";
    const char *p_country_prefix     = desc57_get_country_prefix(p_desc, &i_country_prefix_len);
    const char *p_international_area_code = desc57_get_international_area_code(p_desc, &i_international_area_code_len);
    const char *p_operator_code      = desc57_get_operator_code(p_desc, &i_operator_code_len);
    const char *p_national_area_code = desc57_get_national_area_code(p_desc, &i_national_area_code_len);
    const char *p_core_number        = desc57_get_core_number(p_desc, &i_core_number_len);
    const char *p_phone              = desc57_get_phone(p_desc, &i_phone);

    if (!p_country_prefix) p_country_prefix = empty;
    if (!p_international_area_code) p_international_area_code = empty;
    if (!p_operator_code) p_operator_code = empty;
    if (!p_national_area_code) p_national_area_code = empty;
    if (!p_core_number) p_core_number = empty;
    if (!p_phone) p_phone = empty;

    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque,
                 "<TELEPHONE_DESC foreign_availability=\"%u\" connection_type=\"%u\""
                 " country_prefix=\"%.*s\" international_area_code=\"%.*s\""
                 " operator_code=\"%.*s\" national_area_code=\"%.*s\""
                 " core_number=\"%.*s\" full_telephone=\"%.*s\"/>",
                 desc57_get_foreign_availability(p_desc),
                 desc57_get_connection_type(p_desc),
                 i_country_prefix_len, p_country_prefix,
                 i_international_area_code_len, p_international_area_code,
                 i_operator_code_len, p_operator_code,
                 i_national_area_code_len, p_national_area_code,
                 i_core_number_len, p_core_number,
                 i_phone, p_phone
                );
        break;
    default:
        pf_print(opaque,
                 "    - desc 57 telephone foreign_availability=%u connection_type=%u"
                 " country_prefix=%.*s international_area_code=%.*s"
                 " operator_code=%.*s national_area_code=%.*s"
                 " core_number=%.*s phone=%.*s",
                 desc57_get_foreign_availability(p_desc),
                 desc57_get_connection_type(p_desc),
                 i_country_prefix_len, p_country_prefix,
                 i_international_area_code_len, p_international_area_code,
                 i_operator_code_len, p_operator_code,
                 i_national_area_code_len, p_national_area_code,
                 i_core_number_len, p_core_number,
                 i_phone, p_phone
                );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movl %ecx, -0x44(%rbp)
leaq 0x1c935(%rip), %rax     # 0x2b0bf
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x45(%rbp), %rsi
callq 0x19070
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x46(%rbp), %rsi
callq 0x190c0
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x47(%rbp), %rsi
callq 0x19130
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x191c0
movq %rax, -0x78(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x49(%rbp), %rsi
callq 0x19270
movq %rax, -0x80(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x4a(%rbp), %rsi
callq 0x19330
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0xe806
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0xe815
movq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x70(%rbp)
jne 0xe824
movq -0x58(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x78(%rbp)
jne 0xe833
movq -0x58(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x80(%rbp)
jne 0xe842
movq -0x58(%rbp), %rax
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x88(%rbp)
jne 0xe857
movq -0x58(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0xe94e
jmp 0xe865
movq -0x38(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19380
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xac(%rbp)
movq -0x30(%rbp), %rdi
callq 0x193a0
movq -0xb8(%rbp), %rdi
movl -0xac(%rbp), %edx
movq -0xa8(%rbp), %r10
movzbl %al, %ecx
movzbl -0x45(%rbp), %r8d
movq -0x60(%rbp), %r9
movzbl -0x46(%rbp), %eax
movq -0x68(%rbp), %rsi
movq %rsi, -0xa0(%rbp)
movzbl -0x47(%rbp), %esi
movl %esi, -0x94(%rbp)
movq -0x70(%rbp), %r13
movzbl -0x48(%rbp), %r12d
movq -0x78(%rbp), %r15
movzbl -0x49(%rbp), %r14d
movq -0x80(%rbp), %rbx
movzbl -0x4a(%rbp), %r11d
movq -0x88(%rbp), %rsi
movq %rsi, -0x90(%rbp)
leaq 0x1996a(%rip), %rsi     # 0x2826b
movl %eax, (%rsp)
movq -0xa0(%rbp), %rax
movq %rax, 0x8(%rsp)
movl -0x94(%rbp), %eax
movl %eax, 0x10(%rsp)
movq -0x90(%rbp), %rax
movq %r13, 0x18(%rsp)
movl %r12d, 0x20(%rsp)
movq %r15, 0x28(%rsp)
movl %r14d, 0x30(%rsp)
movq %rbx, 0x38(%rsp)
movl %r11d, 0x40(%rsp)
movq %rax, 0x48(%rsp)
movb $0x0, %al
callq *%r10
jmp 0xea32
movq -0x38(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x19380
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xdc(%rbp)
movq -0x30(%rbp), %rdi
callq 0x193a0
movq -0xe8(%rbp), %rdi
movl -0xdc(%rbp), %edx
movq -0xd8(%rbp), %r10
movzbl %al, %ecx
movzbl -0x45(%rbp), %r8d
movq -0x60(%rbp), %r9
movzbl -0x46(%rbp), %eax
movq -0x68(%rbp), %rsi
movq %rsi, -0xd0(%rbp)
movzbl -0x47(%rbp), %esi
movl %esi, -0xc4(%rbp)
movq -0x70(%rbp), %r13
movzbl -0x48(%rbp), %r12d
movq -0x78(%rbp), %r15
movzbl -0x49(%rbp), %r14d
movq -0x80(%rbp), %rbx
movzbl -0x4a(%rbp), %r11d
movq -0x88(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
leaq 0x1994f(%rip), %rsi     # 0x28339
movl %eax, (%rsp)
movq -0xd0(%rbp), %rax
movq %rax, 0x8(%rsp)
movl -0xc4(%rbp), %eax
movl %eax, 0x10(%rsp)
movq -0xc0(%rbp), %rax
movq %r13, 0x18(%rsp)
movl %r12d, 0x20(%rsp)
movq %r15, 0x28(%rsp)
movl %r14d, 0x30(%rsp)
movq %rbx, 0x38(%rsp)
movl %r11d, 0x40(%rsp)
movq %rax, 0x48(%rsp)
movb $0x0, %al
callq *%r10
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)