LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_sdt_section
static void handle_sdt_section(uint16_t i_pid, uint8_t *p_section)
{
    if (i_pid != SDT_PID || !sdt_validate(p_section)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_sdt_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid SDT section received on PID %hu\n", i_pid);
        }
        free(p_section);
        return;
    }

    if (!psi_table_section(pp_next_sdt_sections, p_section))
        return;

    handle_sdt();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x11, %eax
jne 0x3c19
movq -0x10(%rbp), %rdi
callq 0x1e1e0
testb $0x1, %al
jne 0x3c57
movl 0x346d1(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3c3a
jmp 0x3c26
movzwl -0x2(%rbp), %esi
leaq 0x27722(%rip), %rdi     # 0x2b353
movb $0x0, %al
callq 0x20b0
jmp 0x3c4c
movzwl -0x2(%rbp), %esi
leaq 0x2773d(%rip), %rdi     # 0x2b382
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3c72
movq -0x10(%rbp), %rsi
leaq 0x68e9e(%rip), %rdi     # 0x6cb00
callq 0x4400
testb $0x1, %al
jne 0x3c6d
jmp 0x3c72
callq 0x1e310
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_tdt_section
static void handle_tdt_section(uint16_t i_pid, uint8_t *p_tdt)
{
    if (i_pid != TDT_PID || !tdt_validate(p_tdt)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_tdt_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid TDT section received on PID %hu\n", i_pid);
        }
        free(p_tdt);
        return;
    }

    if (pb_print_table[TABLE_TDT])
        tdt_print(p_tdt, print_wrapper, NULL, iconv_wrapper, NULL,
                  i_print_type);

    free(p_tdt);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x14, %eax
jne 0x3ca9
movq -0x10(%rbp), %rdi
callq 0x1ec20
testb $0x1, %al
jne 0x3ce7
movl 0x34641(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3cca
jmp 0x3cb6
movzwl -0x2(%rbp), %esi
leaq 0x27841(%rip), %rdi     # 0x2b502
movb $0x0, %al
callq 0x20b0
jmp 0x3cdc
movzwl -0x2(%rbp), %esi
leaq 0x2785c(%rip), %rdi     # 0x2b531
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3d1f
testb $0x1, 0x6961a(%rip)     # 0x6d308
je 0x3d16
movq -0x10(%rbp), %rdi
movl 0x345f5(%rip), %r9d     # 0x382f0
leaq 0x15de(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %r8d
leaq 0x18f92(%rip), %rcx     # 0x1cca0
movq %r8, %rdx
callq 0x1ec80
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_tot_section
static void handle_tot_section(uint16_t i_pid, uint8_t *p_tot)
{
    if (i_pid != TOT_PID || !tot_validate(p_tot)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_tot_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid TOT section received on PID %hu\n", i_pid);
        }
        free(p_tot);
        return;
    }

    if (pb_print_table[TABLE_TOT])
        tot_print(p_tot, print_wrapper, NULL, iconv_wrapper, NULL,
                  i_print_type);

    free(p_tot);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x14, %eax
jne 0x3d59
movq -0x10(%rbp), %rdi
callq 0x1ed70
testb $0x1, %al
jne 0x3d97
movl 0x34591(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3d7a
jmp 0x3d66
movzwl -0x2(%rbp), %esi
leaq 0x27830(%rip), %rdi     # 0x2b5a1
movb $0x0, %al
callq 0x20b0
jmp 0x3d8c
movzwl -0x2(%rbp), %esi
leaq 0x2784b(%rip), %rdi     # 0x2b5d0
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3dcf
testb $0x1, 0x69569(%rip)     # 0x6d307
je 0x3dc6
movq -0x10(%rbp), %rdi
movl 0x34545(%rip), %r9d     # 0x382f0
leaq 0x152e(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %r8d
leaq 0x18ee2(%rip), %rcx     # 0x1cca0
movq %r8, %rdx
callq 0x1ee30
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_rst_section
static void handle_rst_section(uint16_t i_pid, uint8_t *p_rst)
{
    if (i_pid != RST_PID || !rst_validate(p_rst)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_rst_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid RST section received on PID %hu\n", i_pid);
        }
        free(p_rst);
        return;
    }

    if (pb_print_table[TABLE_RST])
        rst_print(p_rst, print_wrapper, NULL, iconv_wrapper, NULL,
                  i_print_type);

    free(p_rst);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x13, %eax
jne 0x3e09
movq -0x10(%rbp), %rdi
callq 0x1ef60
testb $0x1, %al
jne 0x3e47
movl 0x344e1(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3e2a
jmp 0x3e16
movzwl -0x2(%rbp), %esi
leaq 0x27825(%rip), %rdi     # 0x2b646
movb $0x0, %al
callq 0x20b0
jmp 0x3e3c
movzwl -0x2(%rbp), %esi
leaq 0x27840(%rip), %rdi     # 0x2b675
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3e7f
testb $0x1, 0x694bb(%rip)     # 0x6d309
je 0x3e76
movq -0x10(%rbp), %rdi
movl 0x34495(%rip), %r9d     # 0x382f0
leaq 0x147e(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %r8d
leaq 0x18e32(%rip), %rcx     # 0x1cca0
movq %r8, %rdx
callq 0x1efc0
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_dit_section
static void handle_dit_section(uint16_t i_pid, uint8_t *p_dit)
{
    if (i_pid != DIT_PID || !dit_validate(p_dit)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_dit_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid DIT section received on PID %hu\n", i_pid);
        }
        free(p_dit);
        return;
    }

    if (pb_print_table[TABLE_DIT])
        dit_print(p_dit, print_wrapper, NULL, iconv_wrapper, NULL,
                  i_print_type);

    free(p_dit);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x1e, %eax
jne 0x3eb9
movq -0x10(%rbp), %rdi
callq 0x1f2b0
testb $0x1, %al
jne 0x3ef7
movl 0x34431(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3eda
jmp 0x3ec6
movzwl -0x2(%rbp), %esi
leaq 0x27887(%rip), %rdi     # 0x2b758
movb $0x0, %al
callq 0x20b0
jmp 0x3eec
movzwl -0x2(%rbp), %esi
leaq 0x278a2(%rip), %rdi     # 0x2b787
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3f2f
testb $0x1, 0x6940c(%rip)     # 0x6d30a
je 0x3f26
movq -0x10(%rbp), %rdi
movl 0x343e5(%rip), %r9d     # 0x382f0
leaq 0x13ce(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %r8d
leaq 0x18d82(%rip), %rcx     # 0x1cca0
movq %r8, %rdx
callq 0x1f310
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_sit_section
static void handle_sit_section(uint16_t i_pid, uint8_t *p_sit)
{
    if (i_pid != SIT_PID || !sit_validate(p_sit)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_sit_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid SIT section received on PID %hu\n", i_pid);
        }
        free(p_sit);
        return;
    }

    if (pb_print_table[TABLE_SIT])
        sit_print(p_sit, print_wrapper, NULL, iconv_wrapper, NULL,
                  i_print_type);

    free(p_sit);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
cmpl $0x1f, %eax
jne 0x3f69
movq -0x10(%rbp), %rdi
callq 0x1f3e0
testb $0x1, %al
jne 0x3fa7
movl 0x34381(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x3f8a
jmp 0x3f76
movzwl -0x2(%rbp), %esi
leaq 0x2786e(%rip), %rdi     # 0x2b7ef
movb $0x0, %al
callq 0x20b0
jmp 0x3f9c
movzwl -0x2(%rbp), %esi
leaq 0x27889(%rip), %rdi     # 0x2b81e
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x3fdf
testb $0x1, 0x6935d(%rip)     # 0x6d30b
je 0x3fd6
movq -0x10(%rbp), %rdi
movl 0x34335(%rip), %r9d     # 0x382f0
leaq 0x131e(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %r8d
leaq 0x18cd2(%rip), %rcx     # 0x1cca0
movq %r8, %rdx
callq 0x1f5a0
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_scte35_section
static void handle_scte35_section(uint16_t i_pid, uint8_t *p_scte35)
{
    if (!scte35_validate(p_scte35)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_scte35_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid SCTE35 section received on PID %hu\n", i_pid);
        }
        free(p_scte35);
        return;
    }

    if (pb_print_table[TABLE_SCTE35] &&
        scte35_get_command_type(p_scte35) != SCTE35_NULL_COMMAND)
        scte35_print(p_scte35, print_wrapper, NULL, i_print_type);

    free(p_scte35);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x20340
testb $0x1, %al
jne 0x428e
movl 0x3409a(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x4271
jmp 0x425d
movzwl -0x2(%rbp), %esi
leaq 0x27943(%rip), %rdi     # 0x2bbab
movb $0x0, %al
callq 0x20b0
jmp 0x4283
movzwl -0x2(%rbp), %esi
leaq 0x27961(%rip), %rdi     # 0x2bbdd
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x42cb
testb $0x1, 0x69078(%rip)     # 0x6d30d
je 0x42c2
movq -0x10(%rbp), %rdi
callq 0x20530
movzbl %al, %eax
cmpl $0x0, %eax
je 0x42c2
movq -0x10(%rbp), %rdi
movl 0x3403e(%rip), %ecx     # 0x382f0
leaq 0x1027(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %edx
callq 0x20550
movq -0x10(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_ait_section
static void handle_ait_section(uint16_t i_pid, uint8_t *p_section)
{
    if (!ait_validate(p_section)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_ait_section\" pid=\"%hu\"/>\n",
                   i_pid);
            break;
        default:
            printf("invalid AIT section received on PID %hu\n", i_pid);
        }
        free(p_section);
        return;
    }

    if (!psi_table_section(pp_next_ait_sections, p_section))
        return;

    handle_ait();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x21870
testb $0x1, %al
jne 0x433e
movl 0x33fea(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x4321
jmp 0x430d
movzwl -0x2(%rbp), %esi
leaq 0x27e9d(%rip), %rdi     # 0x2c1b5
movb $0x0, %al
callq 0x20b0
jmp 0x4333
movzwl -0x2(%rbp), %esi
leaq 0x27eb8(%rip), %rdi     # 0x2c1e4
movb $0x0, %al
callq 0x20b0
movq -0x10(%rbp), %rdi
callq 0x2030
jmp 0x4359
movq -0x10(%rbp), %rsi
leaq 0x68fe7(%rip), %rdi     # 0x6d330
callq 0x4400
testb $0x1, %al
jne 0x4354
jmp 0x4359
callq 0x21960
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_pmt_es
static void handle_pmt_es(uint8_t *p_pmt, bool b_select)
{
    pmt_each_es(p_pmt, p_es) {
        uint16_t i_pid = pmtn_get_pid(p_es);
        uint8_t i_type = pmtn_get_streamtype(p_es);

        switch (i_type) {
            case PMT_STREAMTYPE_PRIVATE_PSI:
                pmtn_each_desc(p_es, p_desc) {
                    uint8_t tag = desc_get_tag(p_desc);

                    switch (tag) {
                        case 0x6f:
                            if (b_select)
                                p_pids[i_pid].i_psi_refcount++;
                            else
                                p_pids[i_pid].i_psi_refcount--;
                            break;
                        default:
                            break;
                    }
                }
                break;
            case PMT_STREAMTYPE_SCTE_35:
                if (b_select)
                    p_pids[i_pid].i_psi_refcount++;
                else
                    p_pids[i_pid].i_psi_refcount--;
                break;
            default:
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5590
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x509a
movq -0x18(%rbp), %rdi
callq 0x5660
movw %ax, -0x1a(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5690
movb %al, -0x1b(%rbp)
movzbl -0x1b(%rbp), %eax
movl %eax, -0x30(%rbp)
subl $0x5, %eax
je 0x4faa
jmp 0x4f97
movl -0x30(%rbp), %eax
subl $0x86, %eax
je 0x5040
jmp 0x5080
movq -0x18(%rbp), %rdi
callq 0x56e0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x56a0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x503e
movq -0x28(%rbp), %rdi
callq 0x5700
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
subb $0x6f, %al
jne 0x501f
jmp 0x4fdf
testb $0x1, -0x9(%rbp)
je 0x5002
movzwl -0x1a(%rbp), %eax
movl %eax, %ecx
leaq 0x3330e(%rip), %rax     # 0x38300
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x501d
movzwl -0x1a(%rbp), %eax
movl %eax, %ecx
leaq 0x332f1(%rip), %rax     # 0x38300
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $-0x1, %ecx
movl %ecx, (%rax)
jmp 0x5021
jmp 0x5021
jmp 0x5023
movq -0x18(%rbp), %rdi
callq 0x56e0
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x56a0
movq %rax, -0x28(%rbp)
jmp 0x4fc3
jmp 0x5082
testb $0x1, -0x9(%rbp)
je 0x5063
movzwl -0x1a(%rbp), %eax
movl %eax, %ecx
leaq 0x332ad(%rip), %rax     # 0x38300
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x507e
movzwl -0x1a(%rbp), %eax
movl %eax, %ecx
leaq 0x33290(%rip), %rax     # 0x38300
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $-0x1, %ecx
movl %ecx, (%rax)
jmp 0x5082
jmp 0x5082
jmp 0x5084
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5590
movq %rax, -0x18(%rbp)
jmp 0x4f65
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: print_wrapper
static void print_wrapper(void *_unused, const char *psz_format, ...)
{
    char psz_fmt[strlen(psz_format) + 2];
    va_list args;
    va_start(args, psz_format);
    strcpy(psz_fmt, psz_format);
    strcat(psz_fmt, "\n");
    vprintf(psz_fmt, args);
    va_end(args);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x531b
movaps %xmm0, -0xc0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm2, -0xa0(%rbp)
movaps %xmm3, -0x90(%rbp)
movaps %xmm4, -0x80(%rbp)
movaps %xmm5, -0x70(%rbp)
movaps %xmm6, -0x60(%rbp)
movaps %xmm7, -0x50(%rbp)
movq %r9, -0xc8(%rbp)
movq %r8, -0xd0(%rbp)
movq %rcx, -0xd8(%rbp)
movq %rdx, -0xe0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2090
movq %rax, %rcx
movq %rcx, %rax
addq $0x2, %rax
movq %rsp, %rdx
movq %rdx, -0x18(%rbp)
addq $0x11, %rcx
andq $-0x10, %rcx
movq %rsp, %rdi
subq %rcx, %rdi
movq %rdi, -0xf8(%rbp)
movq %rdi, %rsp
movq %rax, -0x20(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x30, -0x3c(%rbp)
movl $0x10, -0x40(%rbp)
movq -0x10(%rbp), %rsi
callq 0x2050
movq -0xf8(%rbp), %rdi
leaq 0x25d11(%rip), %rsi     # 0x2b0be
callq 0x21d0
movq -0xf8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x2160
movq -0x18(%rbp), %rax
movq %rax, %rsp
movq %rbp, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/cat.h
// Function: cat_validate
static inline bool cat_validate(const uint8_t *p_cat)
{
    uint16_t i_section_size = psi_get_length(p_cat) + PSI_HEADER_SIZE
                               - PSI_CRC_SIZE;

    if (!psi_get_syntax(p_cat) || psi_get_section(p_cat)
         || psi_get_lastsection(p_cat)
         || psi_get_tableid(p_cat) != CAT_TABLE_ID)
        return false;

    if (i_section_size < CAT_HEADER_SIZE
         || i_section_size < CAT_HEADER_SIZE + cat_get_desclength(p_cat))
        return false;

    if (!descl_validate(cat_get_descl_const(p_cat), cat_get_desclength(p_cat)))
        return false;

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3500
movzwl %ax, %eax
addl $0x3, %eax
subl $0x4, %eax
movw %ax, -0x12(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4360
testb $0x1, %al
jne 0x58a1
jmp 0x58d4
movq -0x10(%rbp), %rdi
callq 0x4b30
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x58d4
movq -0x10(%rbp), %rdi
callq 0x4b50
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x58d4
movq -0x10(%rbp), %rdi
callq 0x3530
movzbl %al, %eax
cmpl $0x1, %eax
je 0x58da
movb $0x0, -0x1(%rbp)
jmp 0x5939
movzwl -0x12(%rbp), %eax
cmpl $0x8, %eax
jl 0x5903
movzwl -0x12(%rbp), %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5a80
movw %ax, %cx
movl -0x18(%rbp), %eax
movzwl %cx, %ecx
addl $0x8, %ecx
cmpl %ecx, %eax
jge 0x5909
movb $0x0, -0x1(%rbp)
jmp 0x5939
movq -0x10(%rbp), %rdi
callq 0x5b20
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5a80
movq -0x20(%rbp), %rdi
movzwl %ax, %esi
callq 0x5ab0
testb $0x1, %al
jne 0x5935
movb $0x0, -0x1(%rbp)
jmp 0x5939
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_print_si.c
// Function: handle_cat
static void handle_cat(void)
{
    PSI_TABLE_DECLARE(pp_old_cat_sections);

    if (psi_table_validate(pp_current_cat_sections) &&
        psi_table_compare(pp_current_cat_sections, pp_next_cat_sections)) {
        /* Identical CAT. Shortcut. */
        psi_table_free(pp_next_cat_sections);
        psi_table_init(pp_next_cat_sections);
        return;
    }

    if (!cat_table_validate(pp_next_cat_sections)) {
        switch (i_print_type) {
        case PRINT_XML:
            printf("<ERROR type=\"invalid_cat\"/>\n");
            break;
        default:
            printf("invalid CAT received\n");
        }
        psi_table_free(pp_next_cat_sections);
        psi_table_init(pp_next_cat_sections);
        return;
    }

    /* Switch tables. */
    psi_table_copy(pp_old_cat_sections, pp_current_cat_sections);
    psi_table_copy(pp_current_cat_sections, pp_next_cat_sections);
    psi_table_init(pp_next_cat_sections);

    if (psi_table_validate(pp_old_cat_sections))
        psi_table_free(pp_old_cat_sections);

    if (pb_print_table[TABLE_CAT])
        cat_table_print(pp_current_cat_sections, print_wrapper, NULL,
                        i_print_type);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x800, %rsp            # imm = 0x800
leaq 0x6399e(%rip), %rdi     # 0x69300
callq 0x4bb0
testb $0x1, %al
jne 0x596d
jmp 0x59a3
leaq 0x6398c(%rip), %rdi     # 0x69300
leaq 0x64185(%rip), %rsi     # 0x69b00
callq 0x4bd0
testb $0x1, %al
jne 0x5986
jmp 0x59a3
leaq 0x64173(%rip), %rdi     # 0x69b00
callq 0x2de0
leaq 0x64167(%rip), %rdi     # 0x69b00
callq 0x2bb0
jmp 0x5a6e
leaq 0x64156(%rip), %rdi     # 0x69b00
callq 0x5b40
testb $0x1, %al
jne 0x59f8
movl 0x32937(%rip), %eax     # 0x382f0
subl $0x1, %eax
jne 0x59d0
jmp 0x59c0
leaq 0x1e64f(%rip), %rdi     # 0x24016
movb $0x0, %al
callq 0x20b0
jmp 0x59de
leaq 0x1e65c(%rip), %rdi     # 0x24033
movb $0x0, %al
callq 0x20b0
leaq 0x6411b(%rip), %rdi     # 0x69b00
callq 0x2de0
leaq 0x6410f(%rip), %rdi     # 0x69b00
callq 0x2bb0
jmp 0x5a6e
leaq -0x800(%rbp), %rdi
leaq 0x638fa(%rip), %rsi     # 0x69300
callq 0x4d70
leaq 0x638ee(%rip), %rdi     # 0x69300
leaq 0x640e7(%rip), %rsi     # 0x69b00
callq 0x4d70
leaq 0x640db(%rip), %rdi     # 0x69b00
callq 0x2bb0
leaq -0x800(%rbp), %rdi
callq 0x4bb0
testb $0x1, %al
jne 0x5a3c
jmp 0x5a48
leaq -0x800(%rbp), %rdi
callq 0x2de0
testb $0x1, 0x678b2(%rip)     # 0x6d301
je 0x5a6e
movl 0x32899(%rip), %ecx     # 0x382f0
leaq 0x638a2(%rip), %rdi     # 0x69300
leaq -0x785(%rip), %rsi      # 0x52e0
xorl %eax, %eax
movl %eax, %edx
callq 0x5bb0
addq $0x800, %rsp            # imm = 0x800
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/cat.h
// Function: cat_table_validate
static inline bool cat_table_validate(uint8_t **pp_sections)
{
    uint8_t i_last_section = psi_table_get_lastsection(pp_sections);
    uint8_t i;

    for (i = 0; i <= i_last_section; i++) {
        uint8_t *p_section = psi_table_get_section(pp_sections, i);

        if (!psi_check_crc(p_section))
            return false;
    }

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4b50
movb %al, -0x11(%rbp)
movb $0x0, -0x12(%rbp)
movzbl -0x12(%rbp), %eax
movzbl -0x11(%rbp), %ecx
cmpl %ecx, %eax
jg 0x5b9b
movq -0x10(%rbp), %rdi
movzbl -0x12(%rbp), %esi
callq 0x4da0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x5480
testb $0x1, %al
jne 0x5b8f
movb $0x0, -0x1(%rbp)
jmp 0x5b9f
jmp 0x5b91
movb -0x12(%rbp), %al
addb $0x1, %al
movb %al, -0x12(%rbp)
jmp 0x5b5f
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/descriptors.h
// Function: desc_print_begin
static inline void desc_print_begin(const uint8_t *p_desc, f_print pf_print,
                                    void *opaque, print_type_t i_print_type)
{

    switch (i_print_type) {
    case PRINT_XML:
    {
        uint8_t i, i_length = desc_get_length(p_desc);
        char psz_value[2 * i_length + 1];

        for (i = 0; i < i_length; i++)
            sprintf(psz_value + 2 * i, "%2.2hhx", p_desc[2 + i]);
        psz_value[2 * i] = '\0';

        pf_print(opaque, "<DESC id=\"0x%02x\" length=\"%u\" value=\"%s\">",
                 desc_get_tag(p_desc), i_length, psz_value);
        break;
    }
    default:
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x7857
jmp 0x7785
movq -0x8(%rbp), %rdi
callq 0x5820
movb %al, -0x1e(%rbp)
movzbl -0x1e(%rbp), %eax
movl %eax, %ecx
leal 0x1(%rcx,%rcx), %eax
movq %rsp, %rdx
movq %rdx, -0x28(%rbp)
leal 0x10(%rcx,%rcx), %ecx
andl $-0x10, %ecx
movl %ecx, %edx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x38(%rbp)
movq %rcx, %rsp
movq %rax, -0x30(%rbp)
movb $0x0, -0x1d(%rbp)
movzbl -0x1d(%rbp), %eax
movzbl -0x1e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x7805
movq -0x38(%rbp), %rdi
movzbl -0x1d(%rbp), %eax
shll %eax
cltq
addq %rax, %rdi
movq -0x8(%rbp), %rax
movzbl -0x1d(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
leaq 0x1c8a7(%rip), %rsi     # 0x2409b
movb $0x0, %al
callq 0x21e0
movb -0x1d(%rbp), %al
addb $0x1, %al
movb %al, -0x1d(%rbp)
jmp 0x77c0
movq -0x38(%rbp), %rax
movzbl -0x1d(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5700
movq -0x48(%rbp), %rdi
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movzbl %al, %edx
movzbl -0x1e(%rbp), %ecx
leaq 0x1c85a(%rip), %rsi     # 0x240a3
movb $0x0, %al
callq *%r9
movq -0x28(%rbp), %rax
movq %rax, %rsp
jmp 0x7859
jmp 0x7859
movq %rbp, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_83p28.h
// Function: desc83p28_print
static inline void desc83p28_print(uint8_t *p_desc, f_print pf_print,
                                   void *opaque, print_type_t i_print_type)
{
    desc83p28_each_service(p_desc, p_desc_n) {
        switch (i_print_type) {
        case PRINT_XML:
            pf_print(opaque,
            "<%s sid=\"%hu\" visible=\"%d\" lcn=\"%hu\" />",
            desc_get_tag(p_desc) == 0x88 ? "HD_SIMULCAST_LCN_DESC" : "LCN_DESC",
            desc83p28n_get_sid(p_desc_n),
            desc83p28n_get_visible(p_desc_n) ? 1 : 0,
            desc83p28n_get_lcn(p_desc_n));
            break;
        default:
            pf_print(opaque,
            "    - desc %hhx lcn sid=%hu%s lcn=%hu", desc_get_tag(p_desc),
            desc83p28n_get_sid(p_desc_n),
            desc83p28n_get_visible(p_desc_n) ? " visible" : "",
            desc83p28n_get_lcn(p_desc_n));
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x13010
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x79f6
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x7961
jmp 0x78d1
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5700
movzbl %al, %edx
leaq 0x1c80e(%rip), %rax     # 0x24102
leaq 0x1c7fa(%rip), %rcx     # 0x240f5
cmpl $0x88, %edx
cmoveq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13060
movzwl %ax, %eax
movl %eax, -0x38(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13080
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0x34(%rbp)
movq -0x28(%rbp), %rdi
callq 0x130b0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rdx
movl -0x38(%rbp), %ecx
movl -0x34(%rbp), %r8d
movq -0x30(%rbp), %r10
movzwl %ax, %r9d
leaq 0x1c773(%rip), %rsi     # 0x240cd
movb $0x0, %al
callq *%r10
jmp 0x79de
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5700
movzbl %al, %eax
movl %eax, -0x60(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13060
movzwl %ax, %eax
movl %eax, -0x5c(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13080
movb %al, %dl
leaq 0x2371e(%rip), %rax     # 0x2b0bf
leaq 0x1c789(%rip), %rcx     # 0x24131
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rdi
callq 0x130b0
movq -0x68(%rbp), %rdi
movl -0x60(%rbp), %edx
movl -0x5c(%rbp), %ecx
movq -0x58(%rbp), %r8
movq -0x50(%rbp), %r10
movzwl %ax, %r9d
leaq 0x1c732(%rip), %rsi     # 0x2410b
movb $0x0, %al
callq *%r10
jmp 0x79e0
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x13010
movq %rax, -0x28(%rbp)
jmp 0x78b8
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/descriptors.h
// Function: desc_print_error
static inline void desc_print_error(const uint8_t *p_desc, f_print pf_print,
                                    void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<INVALID_DESC />");
        break;
    default:
         pf_print(opaque, "desc %2.2hhx invalid", desc_get_tag(p_desc));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x7a36
jmp 0x7a21
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rdi
leaq 0x1c70a(%rip), %rsi     # 0x2413a
movb $0x0, %al
callq *%rcx
jmp 0x7a65
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5700
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rcx
movzbl %al, %edx
leaq 0x1c6ea(%rip), %rsi     # 0x2414b
movb $0x0, %al
callq *%rcx
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_04.h
// Function: desc04_print
static inline void desc04_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<HIERARCHY_DESC type=\"%u\" type_txt=\"%s\" layer_index=\"%u\" embedded_layer_index=\"%u\" channel=\"%u\"/>",
                 desc04_get_type(p_desc),
                 desc04_get_type_txt(desc04_get_type(p_desc)),
                 desc04_get_layer_index(p_desc),
                 desc04_get_embedded_layer_index(p_desc),
                 desc04_get_channel(p_desc)
                );
        break;
    default:
        pf_print(opaque, "    - desc 04 hierarchy type=%u type_txt=\"%s\" layer_index=%u embedded_layer_index=%u channel=%u",
                 desc04_get_type(p_desc),
                 desc04_get_type_txt(desc04_get_type(p_desc)),
                 desc04_get_layer_index(p_desc),
                 desc04_get_embedded_layer_index(p_desc),
                 desc04_get_channel(p_desc)
                );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8251
jmp 0x81c8
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136b0
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136b0
movzbl %al, %edi
callq 0x136d0
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13820
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13840
movzbl %al, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13860
movq -0x48(%rbp), %rdi
movl -0x3c(%rbp), %edx
movq -0x38(%rbp), %rcx
movl -0x30(%rbp), %r8d
movl -0x2c(%rbp), %r9d
movq -0x28(%rbp), %r10
movzbl %al, %eax
leaq 0x1c3fc(%rip), %rsi     # 0x24640
movl %eax, (%rsp)
movb $0x0, %al
callq *%r10
jmp 0x82d5
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136b0
movzbl %al, %eax
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136b0
movzbl %al, %edi
callq 0x136d0
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13820
movzbl %al, %eax
movl %eax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13840
movzbl %al, %eax
movl %eax, -0x54(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13860
movq -0x70(%rbp), %rdi
movl -0x64(%rbp), %edx
movq -0x60(%rbp), %rcx
movl -0x58(%rbp), %r8d
movl -0x54(%rbp), %r9d
movq -0x50(%rbp), %r10
movzbl %al, %eax
leaq 0x1c3d5(%rip), %rsi     # 0x246a2
movl %eax, (%rsp)
movb $0x0, %al
callq *%r10
addq $0x80, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_05.h
// Function: desc05_print
static inline void desc05_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<REGISTRATION_DESC identifier=\"%4.4s\"/>",
                 desc05_get_identifier(p_desc));
        break;
    default:
        pf_print(opaque, "    - desc 05 registration identifier=%4.4s",
                 desc05_get_identifier(p_desc));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8362
jmp 0x8331
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13880
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rcx
movq %rax, %rdx
leaq 0x1c431(%rip), %rsi     # 0x2478d
movb $0x0, %al
callq *%rcx
jmp 0x8391
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13880
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rcx
movq %rax, %rdx
leaq 0x1c428(%rip), %rsi     # 0x247b5
movb $0x0, %al
callq *%rcx
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_06.h
// Function: desc06_print
static inline void desc06_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<DATA_STREAM_ALIGNMENT_DESC alignment=\"%u\" alignment_txt=\"%s\"/>",
                 desc06_get_alignment(p_desc),
                 desc06_get_alignment_txt(desc06_get_alignment(p_desc)));
        break;
    default:
        pf_print(opaque, "    - desc 06 data_stream_alignment alignment=%u alignment_txt=\"%s\"",
                 desc06_get_alignment(p_desc),
                 desc06_get_alignment_txt(desc06_get_alignment(p_desc)));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x843d
jmp 0x83f1
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x138a0
movzbl %al, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x138a0
movzbl %al, %edi
callq 0x138c0
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %edx
movq -0x28(%rbp), %r8
movq %rax, %rcx
leaq 0x1c3ab(%rip), %rsi     # 0x247e1
movb $0x0, %al
callq *%r8
jmp 0x8487
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x138a0
movzbl %al, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x138a0
movzbl %al, %edi
callq 0x138c0
movq -0x50(%rbp), %rdi
movl -0x44(%rbp), %edx
movq -0x40(%rbp), %r8
movq %rax, %rcx
leaq 0x1c39f(%rip), %rsi     # 0x24821
movb $0x0, %al
callq *%r8
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_07.h
// Function: desc07_print
static inline void desc07_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<TARGET_BACKGROUND_GRID_DESC horizontal_size=\"%u\" vertical_size=\"%u\" aspect_ratio_info=\"%u\"/>",
                 desc07_get_horizontal_size(p_desc),
                 desc07_get_vertical_size(p_desc),
                 desc07_get_aspect_ratio_info(p_desc)
                );
        break;
    default:
        pf_print(opaque, "    - desc 07 target_background_grid horizontal_size=%u vertical_size=%u aspect_ratio_info=%u",
                 desc07_get_horizontal_size(p_desc),
                 desc07_get_vertical_size(p_desc),
                 desc07_get_aspect_ratio_info(p_desc)
                );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8538
jmp 0x84e1
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13960
movzwl %ax, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13990
movzwl %ax, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139d0
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %edx
movl -0x2c(%rbp), %ecx
movq -0x28(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c37a(%rip), %rsi     # 0x248ab
movb $0x0, %al
callq *%r9
jmp 0x858d
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13960
movzwl %ax, %eax
movl %eax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13990
movzwl %ax, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139d0
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %edx
movl -0x44(%rbp), %ecx
movq -0x40(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c381(%rip), %rsi     # 0x24909
movb $0x0, %al
callq *%r9
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_08.h
// Function: desc08_print
static inline void desc08_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<VIDEO_WINDOW_DESC horizontal_offset=\"%u\" vertical_offset=\"%u\" window_priority=\"%u\"/>",
                 desc08_get_horizontal_offset(p_desc),
                 desc08_get_vertical_offset(p_desc),
                 desc08_get_window_priority(p_desc)
                );
        break;
    default:
        pf_print(opaque, "    - desc 08 video_window horizontal_offset=%u vertical_offset=%u window_priority=%u",
                 desc08_get_horizontal_offset(p_desc),
                 desc08_get_vertical_offset(p_desc),
                 desc08_get_window_priority(p_desc)
                );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8648
jmp 0x85f1
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13960
movzwl %ax, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13990
movzwl %ax, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139d0
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %edx
movl -0x2c(%rbp), %ecx
movq -0x28(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c326(%rip), %rsi     # 0x24967
movb $0x0, %al
callq *%r9
jmp 0x869d
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13960
movzwl %ax, %eax
movl %eax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13990
movzwl %ax, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139d0
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %edx
movl -0x44(%rbp), %ecx
movq -0x40(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c325(%rip), %rsi     # 0x249bd
movb $0x0, %al
callq *%r9
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_09.h
// Function: desc09_print
static inline void desc09_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<CA_DESC sysid=\"0x%hx\" pid=\"%hu\"/>",
                 desc09_get_sysid(p_desc), desc09_get_pid(p_desc));
        break;
    default:
        pf_print(opaque, "    - desc 09 ca sysid=0x%hx pid=%hu",
                 desc09_get_sysid(p_desc), desc09_get_pid(p_desc));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8745
jmp 0x8701
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139f0
movzwl %ax, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13a10
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %edx
movq -0x28(%rbp), %r8
movzwl %ax, %ecx
leaq 0x1c2d5(%rip), %rsi     # 0x24a13
movb $0x0, %al
callq *%r8
jmp 0x8787
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x139f0
movzwl %ax, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13a10
movq -0x50(%rbp), %rdi
movl -0x44(%rbp), %edx
movq -0x40(%rbp), %r8
movzwl %ax, %ecx
leaq 0x1c2b4(%rip), %rsi     # 0x24a36
movb $0x0, %al
callq *%r8
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_0a.h
// Function: desc0a_print
static inline void desc0a_print(uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    desc0a_each_language( p_desc, p_desc_n) {
        switch (i_print_type) {
        case PRINT_XML:
            pf_print(opaque, "<AUDIO_LANGUAGE_DESC language=\"%3.3s\" audiotype=\"%u\" audiotype_txt=\"%s\"/>",
                     (const char *)desc0an_get_code(p_desc_n),
                     desc0an_get_audiotype(p_desc_n),
                     desc0a_get_audiotype_txt(desc0an_get_audiotype(p_desc_n))
                    );
            break;
        default:
            pf_print(opaque, "    - desc 0a audio_language language=%3.3s audiotype=%u audiotype_txt=\"%s\"",
                     (const char *)desc0an_get_code(p_desc_n),
                     desc0an_get_audiotype(p_desc_n),
                     desc0a_get_audiotype_txt(desc0an_get_audiotype(p_desc_n))
                    );
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x13a40
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x88cd
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x885a
jmp 0x87fd
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13a90
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13aa0
movzbl %al, %eax
movl %eax, -0x34(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13aa0
movzbl %al, %edi
callq 0x13ac0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rdx
movl -0x34(%rbp), %ecx
movq -0x30(%rbp), %r9
movq %rax, %r8
leaq 0x1c208(%rip), %rsi     # 0x24a5b
movb $0x0, %al
callq *%r9
jmp 0x88b5
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13a90
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13aa0
movzbl %al, %eax
movl %eax, -0x54(%rbp)
movq -0x28(%rbp), %rdi
callq 0x13aa0
movzbl %al, %edi
callq 0x13ac0
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rdx
movl -0x54(%rbp), %ecx
movq -0x50(%rbp), %r9
movq %rax, %r8
leaq 0x1c1f5(%rip), %rsi     # 0x24aa5
movb $0x0, %al
callq *%r9
jmp 0x88b7
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x13a40
movq %rax, -0x28(%rbp)
jmp 0x87e8
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_0b.h
// Function: desc0b_print
static inline void desc0b_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<SYSTEM_CLOCK_DESC external_clock_reference_indicator=\"%u\" clock_accuracy_integer=\"%u\" clock_accuracy_exponent=\"%u\"/>",
            desc0b_get_external_clock_reference_indicator(p_desc),
            desc0b_get_clock_accuracy_integer(p_desc),
            desc0b_get_clock_accuracy_exponent(p_desc));
        break;
    default:
        pf_print(opaque, "    - desc 0b system_clock external_clock_reference_indicator=%u clock_accuracy_integer=%u clock_accuracy_exponent=%u",
            desc0b_get_external_clock_reference_indicator(p_desc),
            desc0b_get_clock_accuracy_integer(p_desc),
            desc0b_get_clock_accuracy_exponent(p_desc));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x898a
jmp 0x8931
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b40
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b70
movzbl %al, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b90
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %edx
movl -0x2c(%rbp), %ecx
movq -0x28(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c1a8(%rip), %rsi     # 0x24b2b
movb $0x0, %al
callq *%r9
jmp 0x89e1
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b40
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b70
movzbl %al, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13b90
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %edx
movl -0x44(%rbp), %ecx
movq -0x40(%rbp), %r9
movzbl %al, %r8d
leaq 0x1c1c5(%rip), %rsi     # 0x24ba1
movb $0x0, %al
callq *%r9
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_0c.h
// Function: desc0c_print
static inline void desc0c_print(const uint8_t *p_desc, f_print pf_print,
                                void *opaque, print_type_t i_print_type)
{
    switch (i_print_type) {
    case PRINT_XML:
        pf_print(opaque, "<MULTIPLEX_BUFFER_UTILIZATION_DESC bound_valid=\"%u\" LTW_offset_lower_bound=\"%u\" LTW_offset_upper_bound=\"%u\"/>",
                 desc0c_get_bound_valid(p_desc),
                 desc0c_get_LTW_offset_lower_bound(p_desc),
                 desc0c_get_LTW_offset_upper_bound(p_desc));
        break;
    default:
        pf_print(opaque, "    - desc 0c multiplex_buffer_utilization bound_valid=%u LTW_offset_lower_bound=%u LTW_offset_upper_bound=%u",
                 desc0c_get_bound_valid(p_desc),
                 desc0c_get_LTW_offset_lower_bound(p_desc),
                 desc0c_get_LTW_offset_upper_bound(p_desc));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x8a9a
jmp 0x8a41
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13bb0
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13be0
movzwl %ax, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13c10
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %edx
movl -0x2c(%rbp), %ecx
movq -0x28(%rbp), %r9
movzwl %ax, %r8d
leaq 0x1c184(%rip), %rsi     # 0x24c17
movb $0x0, %al
callq *%r9
jmp 0x8af1
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13bb0
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13be0
movzwl %ax, %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13c10
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %edx
movl -0x44(%rbp), %ecx
movq -0x40(%rbp), %r9
movzwl %ax, %r8d
leaq 0x1c199(%rip), %rsi     # 0x24c85
movb $0x0, %al
callq *%r9
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)