LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc4a_mobile
static void build_desc4a_mobile(uint8_t *desc) {
    desc4a_init(desc);
    desc4a_set_tsid(desc, tsid + 600);
    desc4a_set_onid(desc, onid + 600);
    desc4a_set_sid (desc, sid + 600);
    // mobile handover
    desc4a_set_linkage(desc, DESC4A_LINKAGE_MOBILE);
    desc4a_set_mobile_handover_type(desc, 1);
    desc4a_set_mobile_origin_type(desc, false);
    desc4a_set_mobile_nid(desc, onid + 1000);
    desc4a_set_mobile_initial_sid(desc, sid + 1000);
    desc4a_set_length(desc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8240
movq -0x8(%rbp), %rdi
movzwl 0x1a0a8(%rip), %eax     # 0x21088
addl $0x258, %eax            # imm = 0x258
movzwl %ax, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
movzwl 0x1a096(%rip), %eax     # 0x2108e
addl $0x258, %eax            # imm = 0x258
movzwl %ax, %esi
callq 0x82b0
movq -0x8(%rbp), %rdi
movzwl 0x1a07a(%rip), %eax     # 0x2108a
addl $0x258, %eax            # imm = 0x258
movzwl %ax, %esi
callq 0x82f0
movq -0x8(%rbp), %rdi
movl $0x8, %esi
callq 0x8330
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x8350
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x8390
movq -0x8(%rbp), %rdi
movzwl 0x1a03f(%rip), %eax     # 0x2108e
addl $0x3e8, %eax            # imm = 0x3E8
movzwl %ax, %esi
callq 0x83e0
movq -0x8(%rbp), %rdi
movzwl 0x1a023(%rip), %eax     # 0x2108a
addl $0x3e8, %eax            # imm = 0x3E8
movzwl %ax, %esi
callq 0x8430
movq -0x8(%rbp), %rdi
callq 0x84b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_43.h
// Function: desc43_set_frequency_bcd
static inline void desc43_set_frequency_bcd(uint8_t *p_desc, uint32_t i_freq_bcd)
{
    p_desc[2] = (i_freq_bcd >> 24) & 0xff;
    p_desc[3] = (i_freq_bcd >> 16) & 0xff;
    p_desc[4] = (i_freq_bcd >>  8) & 0xff;
    p_desc[5] = i_freq_bcd         & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movl -0xc(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x5(%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_43.h
// Function: desc43_set_symbolrate_bcd
static inline void desc43_set_symbolrate_bcd(uint8_t *p_desc, uint32_t i_symbolrate_bcd)
{
    p_desc[ 9] = (i_symbolrate_bcd >> 20) & 0xff;
    p_desc[10] = (i_symbolrate_bcd >> 12) & 0xff;
    p_desc[11] = (i_symbolrate_bcd >>  4) & 0xff;
    p_desc[12] = ((i_symbolrate_bcd & 0x0f) << 4) | (p_desc[12] & 0x0f);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
shrl $0x14, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x9(%rax)
movl -0xc(%rbp), %eax
shrl $0xc, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0xa(%rax)
movl -0xc(%rbp), %eax
shrl $0x4, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0xb(%rax)
movl -0xc(%rbp), %eax
andl $0xf, %eax
shll $0x4, %eax
movq -0x8(%rbp), %rcx
movzbl 0xc(%rcx), %ecx
andl $0xf, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0xc(%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_44.h
// Function: desc44_init
static inline void desc44_init(uint8_t *p_desc)
{
    desc_set_tag(p_desc, 0x44);
    desc_set_length(p_desc, DESC44_HEADER_SIZE - DESC_HEADER_SIZE);
    p_desc[6]  = 0xff;
    p_desc[7] |= 0xf0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x44, %esi
callq 0x5c80
movq -0x8(%rbp), %rdi
movl $0xb, %esi
callq 0x5ca0
movq -0x8(%rbp), %rax
movb $-0x1, 0x6(%rax)
movq -0x8(%rbp), %rax
movzbl 0x7(%rax), %ecx
orl $0xf0, %ecx
movb %cl, 0x7(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_5a.h
// Function: desc5a_init
static inline void desc5a_init(uint8_t *p_desc)
{
    desc_set_tag(p_desc, 0x5a);
    desc_set_length(p_desc, DESC5A_HEADER_SIZE - DESC_HEADER_SIZE);
    p_desc[ 6] = 0x03;
    p_desc[ 9] = 0xff;
    p_desc[10] = 0xff;
    p_desc[11] = 0xff;
    p_desc[12] = 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x5a, %esi
callq 0x5c80
movq -0x8(%rbp), %rdi
movl $0xb, %esi
callq 0x5ca0
movq -0x8(%rbp), %rax
movb $0x3, 0x6(%rax)
movq -0x8(%rbp), %rax
movb $-0x1, 0x9(%rax)
movq -0x8(%rbp), %rax
movb $-0x1, 0xa(%rax)
movq -0x8(%rbp), %rax
movb $-0x1, 0xb(%rax)
movq -0x8(%rbp), %rax
movb $-0x1, 0xc(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_5b.h
// Function: desc5b_next_data
static inline uint8_t *desc5b_next_data(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC5B_HEADER_SIZE;
    else
        p_desc_n += DESC5B_DATA_SIZE + desc5bn_get_networkname_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC5B_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x7855
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x7872
movq -0x10(%rbp), %rdi
callq 0x7910
movzbl %al, %ecx
addl $0x4, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x4, %edx
callq 0x7930
addq $0x10, %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_check
static inline uint8_t *desc_check(const uint8_t *p_desc,
                                  const uint8_t *p_desc_n,
                                  uint8_t size)
{
    if (!p_desc || !p_desc_n ||
        p_desc_n < p_desc + DESC_HEADER_SIZE ||
        p_desc_n + size > p_desc + DESC_HEADER_SIZE + desc_get_length(p_desc))
        return NULL;
    return (uint8_t *)p_desc_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x79a3
cmpq $0x0, -0x18(%rbp)
je 0x79a3
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
addq $0x2, %rcx
cmpq %rcx, %rax
jb 0x79a3
movq -0x18(%rbp), %rax
movzbl -0x19(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5bb0
movq -0x30(%rbp), %rcx
movb %al, %dl
movq -0x28(%rbp), %rax
movzbl %dl, %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x79ad
movq $0x0, -0x8(%rbp)
jmp 0x79b5
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_62.h
// Function: desc62_next_frequency
static inline uint8_t *desc62_next_frequency(const uint8_t *p_desc,
                                             const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC62_HEADER_SIZE;
    else
        p_desc_n += DESC62_FREQ_SIZE;
    return desc_check(p_desc, p_desc_n, DESC62_FREQ_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x7a55
movq -0x8(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
jmp 0x7a61
movq -0x10(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x4, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_6c.h
// Function: desc6c_next_cell
static inline uint8_t *desc6c_next_cell(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC6C_HEADER_SIZE;
    else
        p_desc_n += DESC6C_DATA_SIZE
            + desc6cn_get_subcell_info_loop_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC6C_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x7b25
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x7b42
movq -0x10(%rbp), %rdi
callq 0x7eb0
movzbl %al, %ecx
addl $0xa, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0xa, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_6c.h
// Function: desc6cn_next_subcell
static inline uint8_t *desc6cn_next_subcell(const uint8_t *p_desc,
                                            const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC6C_DATA_SIZE;
    else
        p_desc_n += DESC6C_SUBCELL_SIZE;
    if (p_desc_n >= p_desc + DESC6C_DATA_SIZE +
        desc6cn_get_subcell_info_loop_length(p_desc))
        return NULL;
    return (uint8_t *)p_desc_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x7d05
movq -0x10(%rbp), %rax
addq $0xa, %rax
movq %rax, -0x18(%rbp)
jmp 0x7d11
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0xa, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7eb0
movq -0x28(%rbp), %rcx
movb %al, %dl
movq -0x20(%rbp), %rax
movzbl %dl, %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jb 0x7d50
movq $0x0, -0x8(%rbp)
jmp 0x7d58
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_6d.h
// Function: desc6d_next_cell
static inline uint8_t *desc6d_next_cell(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC6D_HEADER_SIZE;
    else
        p_desc_n += DESC6D_DATA_SIZE
            + desc6dn_get_subcell_info_loop_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC6D_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x7f15
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x7f32
movq -0x10(%rbp), %rdi
callq 0x8120
movzbl %al, %ecx
addl $0x7, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x7, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_6d.h
// Function: desc6dn_next_subcell
static inline uint8_t *desc6dn_next_subcell(const uint8_t *p_desc,
                                            const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC6D_DATA_SIZE;
    else
        p_desc_n += DESC6D_SUBCELL_SIZE;
    if (p_desc_n >= p_desc + DESC6D_DATA_SIZE +
        desc6dn_get_subcell_info_loop_length(p_desc))
        return NULL;
    return (uint8_t *)p_desc_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x8035
movq -0x10(%rbp), %rax
addq $0x7, %rax
movq %rax, -0x18(%rbp)
jmp 0x8041
movq -0x18(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x7, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x8120
movq -0x28(%rbp), %rcx
movb %al, %dl
movq -0x20(%rbp), %rax
movzbl %dl, %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jb 0x8080
movq $0x0, -0x8(%rbp)
jmp 0x8088
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_6d.h
// Function: desc6dk_set_transponder_frequency
static inline void desc6dk_set_transponder_frequency(uint8_t *p_desc_k, uint32_t i_frequency)
{
    p_desc_k[1] = (i_frequency >> 24) & 0xff;
    p_desc_k[2] = (i_frequency >> 16) & 0xff;
    p_desc_k[3] = (i_frequency >>  8) & 0xff;
    p_desc_k[4] =  i_frequency        & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xc(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_41.h
// Function: desc41_next_service
static inline uint8_t *desc41_next_service(const uint8_t *p_desc,
                                           const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC41_HEADER_SIZE;
    else
        p_desc_n += DESC41_SERVICE_SIZE;
    return desc_check(p_desc, p_desc_n, DESC41_SERVICE_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x81b5
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x81c1
movq -0x10(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x3, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_4a.h
// Function: desc4a_set_mobile_initial_sid
static inline void desc4a_set_mobile_initial_sid(uint8_t *p_desc, uint16_t i_initial_sid)
{
    if (!desc4a_get_mobile_origin_type(p_desc)) {
        uint8_t ofs = 10;
        if (desc4a_have_mobile_nid(p_desc))
            ofs += 2;
        p_desc[ofs + 0] = (i_initial_sid >> 8) & 0xff;
        p_desc[ofs + 1] =  i_initial_sid       & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8560
testb $0x1, %al
jne 0x84a8
movb $0xa, -0xb(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8500
testb $0x1, %al
jne 0x8463
jmp 0x846d
movzbl -0xb(%rbp), %eax
addl $0x2, %eax
movb %al, -0xb(%rbp)
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xb(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xb(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_4a.h
// Function: desc4a_set_length
static inline void desc4a_set_length(uint8_t *p_desc)
{
    uint8_t i_length = DESC4A_HEADER_SIZE - DESC_HEADER_SIZE;
    i_length += desc4a_get_mobile_handover_length(p_desc);
    i_length += desc4a_get_event_length(p_desc);
    desc_set_length(p_desc, i_length);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movb $0x7, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8580
movzbl %al, %ecx
movzbl -0x9(%rbp), %eax
addl %ecx, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x85f0
movzbl %al, %ecx
movzbl -0x9(%rbp), %eax
addl %ecx, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x5ca0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_4a.h
// Function: desc4a_get_mobile_handover_length
static inline uint8_t desc4a_get_mobile_handover_length(const uint8_t *p_desc)
{
    uint8_t i_length = 0;
    if (desc4a_get_linkage(p_desc) == DESC4A_LINKAGE_MOBILE)
    {
        i_length += 1;
        if (desc4a_have_mobile_nid(p_desc))
            i_length += 2;
        if (!desc4a_get_mobile_origin_type(p_desc))
            i_length += 2;
    }
    return i_length;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8620
movzbl %al, %eax
cmpl $0x8, %eax
jne 0x85dd
movzbl -0x9(%rbp), %eax
addl $0x1, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8500
testb $0x1, %al
jne 0x85ba
jmp 0x85c4
movzbl -0x9(%rbp), %eax
addl $0x2, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8560
testb $0x1, %al
jne 0x85db
movzbl -0x9(%rbp), %eax
addl $0x2, %eax
movb %al, -0x9(%rbp)
jmp 0x85dd
movb -0x9(%rbp), %al
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc5c
static void build_desc5c(uint8_t *desc) {
    char *bouquet_name = "M Bouquet";
    uint8_t k = 0;
    uint8_t *data_n;

    desc5c_init(desc);
    desc_set_length(desc, 255);

    data_n = desc5c_get_data(desc, k++);
    desc5cn_set_code(data_n, (uint8_t *)"eng");
    desc5cn_set_bouquetname(data_n, (uint8_t *)bouquet_name, strlen(bouquet_name));

    data_n = desc5c_get_data(desc, k++);
    desc5cn_set_code(data_n, (uint8_t *)"fre");
    desc5cn_set_bouquetname(data_n, (uint8_t *)bouquet_name, strlen(bouquet_name));

    data_n = desc5c_get_data(desc, k++);
    desc5cn_set_code(data_n, (uint8_t *)"bul");
    desc5cn_set_bouquetname(data_n, (uint8_t *)bouquet_name, strlen(bouquet_name));

    data_n = desc5c_get_data(desc, k);
    desc_set_length(desc, data_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
leaq 0xeda8(%rip), %rax      # 0x1748b
movq %rax, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8870
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0x11(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x11(%rbp)
leaq -0xee8(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0xed3e(%rip), %rsi      # 0x1746d
callq 0x7890
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movzbl %al, %edx
callq 0x78d0
movq -0x8(%rbp), %rdi
movb -0x11(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x11(%rbp)
leaq -0xf43(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0xece7(%rip), %rsi      # 0x17471
callq 0x7890
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
movzbl %al, %edx
callq 0x78d0
movq -0x8(%rbp), %rdi
movb -0x11(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x11(%rbp)
leaq -0xf9e(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0xec90(%rip), %rsi      # 0x17475
callq 0x7890
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movzbl %al, %edx
callq 0x78d0
movq -0x8(%rbp), %rdi
leaq -0xfee(%rip), %rdx      # 0x7830
movzbl -0x11(%rbp), %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
subq $0x2, %rax
movzbl %al, %esi
callq 0x5ca0
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/sdt.h
// Function: sdt_get_service
static inline uint8_t *sdt_get_service(uint8_t *p_sdt, uint8_t n)
{
    uint16_t i_section_size = psi_get_length(p_sdt) + PSI_HEADER_SIZE
                               - PSI_CRC_SIZE;
    uint8_t *p_sdt_n = p_sdt + SDT_HEADER_SIZE;

    while (n) {
        if (p_sdt_n + SDT_SERVICE_SIZE - p_sdt > i_section_size) return NULL;
        p_sdt_n += SDT_SERVICE_SIZE + sdtn_get_desclength(p_sdt_n);
        n--;
    }
    if (p_sdt_n - p_sdt >= i_section_size) return NULL;
    return p_sdt_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5490
movzwl %ax, %eax
addl $0x3, %eax
subl $0x4, %eax
movw %ax, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0xb, %rax
movq %rax, -0x20(%rbp)
cmpb $0x0, -0x11(%rbp)
je 0x89d3
movq -0x20(%rbp), %rax
addq $0x5, %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x14(%rbp), %ecx
cmpq %rcx, %rax
jle 0x89ac
movq $0x0, -0x8(%rbp)
jmp 0x89f9
movq -0x20(%rbp), %rdi
callq 0x9910
movzwl %ax, %ecx
addl $0x5, %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movb -0x11(%rbp), %al
addb $-0x1, %al
movb %al, -0x11(%rbp)
jmp 0x8984
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x14(%rbp), %ecx
cmpq %rcx, %rax
jl 0x89f1
movq $0x0, -0x8(%rbp)
jmp 0x89f9
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc48
static void build_desc48(uint8_t *desc) {
    uint8_t service_type = 0x01; // digital tv
    char *provider_name = "Test Provider Name";
    char *service_name = "Test Service Name";
    desc48_init(desc);
    desc48_set_type(desc, service_type);
    desc48_set_provider(desc, (uint8_t *)provider_name, strlen(provider_name));
    desc48_set_service(desc, (uint8_t *)service_name, strlen(service_name));
    desc48_set_length(desc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movb $0x1, -0x9(%rbp)
leaq 0xe95e(%rip), %rax      # 0x17495
movq %rax, -0x18(%rbp)
leaq 0xe966(%rip), %rax      # 0x174a8
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x9940
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x9960
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1050
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
movzbl %al, %edx
callq 0x9980
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1050
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movzbl %al, %edx
callq 0x99d0
movq -0x8(%rbp), %rdi
callq 0x9a30
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc49
static void build_desc49(uint8_t *desc, bool b_available) {
    uint8_t k = 0;
    uint8_t *code_n;

    desc49_init(desc);
    desc49_set_country_availability_flag(desc, b_available);

    desc_set_length(desc, 255);

    code_n = desc49_get_code(desc, k++);
    desc49n_set_code(code_n, (uint8_t *)"GBR");

    code_n = desc49_get_code(desc, k++);
    desc49n_set_code(code_n, (uint8_t *)"FRA");

    code_n = desc49_get_code(desc, k++);
    desc49n_set_code(code_n, (uint8_t *)"BUL");

    code_n = desc49_get_code(desc, k);
    desc_set_length(desc, code_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movb $0x0, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x9af0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x9b20
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0xf5a(%rip), %rdx       # 0x9b70
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xe88d(%rip), %rsi      # 0x174ba
callq 0x7890
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0xf28(%rip), %rdx       # 0x9b70
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xe85f(%rip), %rsi      # 0x174be
callq 0x7890
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0xef6(%rip), %rdx       # 0x9b70
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xe831(%rip), %rsi      # 0x174c2
callq 0x7890
movq -0x8(%rbp), %rdi
leaq 0xecf(%rip), %rdx       # 0x9b70
movzbl -0xa(%rbp), %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
subq $0x2, %rax
movzbl %al, %esi
callq 0x5ca0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc57
static void build_desc57(uint8_t *desc) {
    char *country_prefix = "+";
    char *international_area_code = "359";
    char *operator_code = "2";
    char *national_area_code = "";
    char *core_number = "9868620";

    desc57_init(desc);

    desc57_set_foreign_availability(desc, true);
    desc57_set_connection_type(desc, 3);

    desc57_set_country_prefix(desc, country_prefix, strlen(country_prefix));
    desc57_set_international_area_code(desc, international_area_code, strlen(international_area_code));
    desc57_set_operator_code(desc, operator_code, strlen(operator_code));
    desc57_set_national_area_code(desc, national_area_code, strlen(national_area_code));
    desc57_set_core_number(desc, core_number, strlen(core_number));
    desc57_set_length(desc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
leaq 0xe57f(%rip), %rax      # 0x17555
movq %rax, -0x10(%rbp)
leaq 0xe4e5(%rip), %rax      # 0x174c6
movq %rax, -0x18(%rbp)
leaq 0xe4de(%rip), %rax      # 0x174ca
movq %rax, -0x20(%rbp)
leaq 0xe595(%rip), %rax      # 0x1758c
movq %rax, -0x28(%rbp)
leaq 0xe4ca(%rip), %rax      # 0x174cc
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa1c0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0xa210
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0xa260
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x80(%rbp), %rdi
movq -0x78(%rbp), %rsi
movzbl %al, %edx
callq 0xa290
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1050
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
movzbl %al, %edx
callq 0xa2f0
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1050
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
movzbl %al, %edx
callq 0xa360
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1050
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movzbl %al, %edx
callq 0xa3f0
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
callq 0x1050
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
movzbl %al, %edx
callq 0xa4a0
movq -0x8(%rbp), %rdi
callq 0xa560
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc64
static void build_desc64(uint8_t *desc) {
    char *selector_byte = "BY\"TE";
    char *text = "Some text";
    desc64_init(desc);
    desc64_set_broadcast_id(desc, 0x1122);
    desc64_set_component_tag(desc, 78);
    desc64_set_selector_byte(desc, (uint8_t *)selector_byte, strlen(selector_byte));
    desc64_set_lang(desc, (uint8_t *)"eng");
    desc64_set_text(desc, (uint8_t *)text, strlen(text));
    desc64_set_length(desc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
leaq 0xde96(%rip), %rax      # 0x174e9
movq %rax, -0x10(%rbp)
leaq 0xde91(%rip), %rax      # 0x174ef
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xaee0
movq -0x8(%rbp), %rdi
movl $0x1122, %esi           # imm = 0x1122
callq 0xaf10
movq -0x8(%rbp), %rdi
movl $0x4e, %esi
callq 0xaf50
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
movzbl %al, %edx
callq 0xaf70
movq -0x8(%rbp), %rdi
leaq 0xddb2(%rip), %rsi      # 0x1746d
callq 0xafb0
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1050
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movzbl %al, %edx
callq 0xb020
movq -0x8(%rbp), %rdi
callq 0xb090
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc66
static void build_desc66(uint8_t *desc) {
    char *selector_byte = "UNIX";
    desc66_init(desc);
    desc66_set_broadcast_id(desc, 0x1122);
    desc66_set_selector_byte(desc, (uint8_t *)selector_byte, strlen(selector_byte));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
leaq 0xdde6(%rip), %rax      # 0x174f9
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb140
movq -0x8(%rbp), %rdi
movl $0x1122, %esi           # imm = 0x1122
callq 0xb170
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1050
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movzbl %al, %edx
callq 0xb1b0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc4b
static void build_desc4b(uint8_t *desc, bool b_available) {
    uint8_t k = 0;
    uint8_t *ref_n;

    desc4b_init(desc);
    desc_set_length(desc, 255);

    ref_n = desc4b_get_reference(desc, k++);
    desc4bn_set_tsid(ref_n, tsid);
    desc4bn_set_onid(ref_n, onid);
    desc4bn_set_sid (ref_n, sid);

    ref_n = desc4b_get_reference(desc, k++);
    desc4bn_set_tsid(ref_n, tsid + 100);
    desc4bn_set_onid(ref_n, onid + 100);
    desc4bn_set_sid (ref_n, sid  + 100);

    ref_n = desc4b_get_reference(desc, k++);
    desc4bn_set_tsid(ref_n, tsid + 200);
    desc4bn_set_onid(ref_n, onid + 200);
    desc4bn_set_sid (ref_n, sid  + 200);

    ref_n = desc4b_get_reference(desc, k);
    desc_set_length(desc, ref_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movb $0x0, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb200
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x1a5b(%rip), %rdx      # 0xb220
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x178ac(%rip), %esi     # 0x21088
callq 0xb270
movq -0x18(%rbp), %rdi
movzwl 0x178a2(%rip), %esi     # 0x2108e
callq 0xb2b0
movq -0x18(%rbp), %rdi
movzwl 0x1788e(%rip), %esi     # 0x2108a
callq 0xb2f0
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x1a09(%rip), %rdx      # 0xb220
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x1785a(%rip), %eax     # 0x21088
addl $0x64, %eax
movzwl %ax, %esi
callq 0xb270
movq -0x18(%rbp), %rdi
movzwl 0x1784a(%rip), %eax     # 0x2108e
addl $0x64, %eax
movzwl %ax, %esi
callq 0xb2b0
movq -0x18(%rbp), %rdi
movzwl 0x17830(%rip), %eax     # 0x2108a
addl $0x64, %eax
movzwl %ax, %esi
callq 0xb2f0
movq -0x8(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x19a5(%rip), %rdx      # 0xb220
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x177f6(%rip), %eax     # 0x21088
addl $0xc8, %eax
movzwl %ax, %esi
callq 0xb270
movq -0x18(%rbp), %rdi
movzwl 0x177e4(%rip), %eax     # 0x2108e
addl $0xc8, %eax
movzwl %ax, %esi
callq 0xb2b0
movq -0x18(%rbp), %rdi
movzwl 0x177c8(%rip), %eax     # 0x2108a
addl $0xc8, %eax
movzwl %ax, %esi
callq 0xb2f0
movq -0x8(%rbp), %rdi
leaq 0x1946(%rip), %rdx      # 0xb220
movzbl -0xa(%rbp), %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
subq $0x2, %rax
movzbl %al, %esi
callq 0x5ca0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_48.h
// Function: desc48_set_length
static inline void desc48_set_length(uint8_t *p_desc)
{
    uint8_t i_provider_len, i_service_len;
    desc48_get_provider(p_desc, &i_provider_len);
    desc48_get_service(p_desc, &i_service_len);
    desc_set_length(p_desc, DESC48_HEADER_SIZE - DESC_HEADER_SIZE
                            + 1 + i_provider_len
                            + 1 + i_service_len);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x9a80
movq -0x8(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x9ab0
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %eax
addl $0x2, %eax
addl $0x1, %eax
movzbl -0xa(%rbp), %ecx
addl %ecx, %eax
movzbl %al, %esi
callq 0x5ca0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_49.h
// Function: desc49_next_code
static inline uint8_t *desc49_next_code(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC49_HEADER_SIZE;
    else
        p_desc_n += DESC49_CODE_SIZE;
    return desc_check(p_desc, p_desc_n, DESC49_CODE_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x9b95
movq -0x8(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
jmp 0x9ba1
movq -0x10(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x3, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51_next_logical_cell
static inline uint8_t *desc51_next_logical_cell(const uint8_t *p_desc,
                                                const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC51_HEADER_SIZE;
    else
        p_desc_n += desc51n_get_data_size(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC51_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x9ce5
movq -0x8(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
jmp 0x9cff
movq -0x10(%rbp), %rdi
callq 0xa0e0
movzbl %al, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x4, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_set_bouquet_id
static inline void desc51n_set_bouquet_id(uint8_t *p_desc_n, uint16_t i_bouquet_id)
{
    init_link_n();
    if (i_cell_linkage_info != 1) return;
    link_n[0] = (i_bouquet_id >> 8) & 0xff;
    link_n[1] =  i_bouquet_id       & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x1, %eax
je 0x9e82
jmp 0x9ea8
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, (%rax)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x1(%rax)
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_set_onid
static inline void desc51n_set_onid(uint8_t *p_desc_n, uint16_t i_onid)
{
    init_link_n();
    if (i_cell_linkage_info < 2 || i_cell_linkage_info > 4) return;
    link_n[0] = (i_onid >> 8) & 0xff;
    link_n[1] =  i_onid       & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x2, %eax
jl 0x9f09
movzbl -0x19(%rbp), %eax
cmpl $0x4, %eax
jle 0x9f0b
jmp 0x9f31
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, (%rax)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x1(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_set_tsid
static inline void desc51n_set_tsid(uint8_t *p_desc_n, uint16_t i_tsid)
{
    init_link_n();
    if (i_cell_linkage_info < 2 || i_cell_linkage_info > 4) return;
    link_n[2] = (i_tsid >> 8) & 0xff;
    link_n[3] =  i_tsid       & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x2, %eax
jl 0x9f99
movzbl -0x19(%rbp), %eax
cmpl $0x4, %eax
jle 0x9f9b
jmp 0x9fc2
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x2(%rax)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_set_sid
static inline void desc51n_set_sid(uint8_t *p_desc_n, uint16_t i_sid)
{
    init_link_n();
    if (i_cell_linkage_info < 2 || i_cell_linkage_info > 4) return;
    link_n[4] = (i_sid >> 8) & 0xff;
    link_n[5] =  i_sid       & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x2, %eax
jl 0xa029
movzbl -0x19(%rbp), %eax
cmpl $0x4, %eax
jle 0xa02b
jmp 0xa052
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x4(%rax)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x5(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_set_event_id
static inline void desc51n_set_event_id(uint8_t *p_desc_n, uint16_t i_event_id)
{
    init_link_n();
    if (i_cell_linkage_info != 4) return;
    link_n[6] = (i_event_id >> 8) & 0xff;
    link_n[7] =  i_event_id       & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x4, %eax
je 0xa0b2
jmp 0xa0d9
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x6(%rax)
movzwl -0xa(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x7(%rax)
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_51.h
// Function: desc51n_get_data_size
static inline uint8_t desc51n_get_data_size(const uint8_t *p_desc_n)
{
    uint8_t size =
        DESC51_DATA_SIZE + desc51n_get_elementary_cell_field_length(p_desc_n);
    switch (desc51n_get_cell_linkage_info(p_desc_n)) {
        case 1: size += 2; break;
        case 2: size += 6; break;
        case 3: size += 6; break;
        case 4: size += 8; break;
    }
    return size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa160
addb $0x4, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa180
movzbl %al, %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x3, %eax
ja 0xa155
movq -0x18(%rbp), %rax
leaq 0xcef2(%rip), %rcx      # 0x17010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl -0x9(%rbp), %eax
addl $0x2, %eax
movb %al, -0x9(%rbp)
jmp 0xa155
movzbl -0x9(%rbp), %eax
addl $0x6, %eax
movb %al, -0x9(%rbp)
jmp 0xa155
movzbl -0x9(%rbp), %eax
addl $0x6, %eax
movb %al, -0x9(%rbp)
jmp 0xa155
movzbl -0x9(%rbp), %eax
addl $0x8, %eax
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_57.h
// Function: desc57_init
static inline void desc57_init(uint8_t *p_desc)
{
    desc_set_tag(p_desc, 0x57);
    desc_set_length(p_desc, DESC57_HEADER_SIZE - DESC_HEADER_SIZE);
    p_desc[2] = 0xc0;
    p_desc[3] = 0x80;
    p_desc[4] = 0x80;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x57, %esi
callq 0x5c80
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0x5ca0
movq -0x8(%rbp), %rax
movb $-0x40, 0x2(%rax)
movq -0x8(%rbp), %rax
movb $-0x80, 0x3(%rax)
movq -0x8(%rbp), %rax
movb $-0x80, 0x4(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_57.h
// Function: desc57_set_international_area_code
static inline void desc57_set_international_area_code(uint8_t *p_desc, const char *p_international_area_code, uint8_t i_length)
{
    p_desc[3] = (p_desc[3] &~ 0x1c) | ((i_length & 0x07) << 2); // xxx111xx
    memcpy(p_desc + DESC57_HEADER_SIZE
            + desc57_get_country_prefix_length(p_desc),
           p_international_area_code, i_length);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x3(%rax), %eax
andl $-0x1d, %eax
movzbl -0x11(%rbp), %ecx
andl $0x7, %ecx
shll $0x2, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movq -0x8(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa5f0
movq -0x20(%rbp), %rdi
movzbl %al, %eax
cltq
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movzbl -0x11(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_57.h
// Function: desc57_set_operator_code
static inline void desc57_set_operator_code(uint8_t *p_desc, const char *p_operator_code, uint8_t i_length)
{
    p_desc[3] = (p_desc[3] &~ 0x03) | (i_length & 0x03); // xxxxxx11
    memcpy(p_desc + DESC57_HEADER_SIZE
            + desc57_get_country_prefix_length(p_desc)
            + desc57_get_international_area_code_length(p_desc),
           p_operator_code, i_length);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x3(%rax), %eax
andl $-0x4, %eax
movzbl -0x11(%rbp), %ecx
andl $0x3, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movq -0x8(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa5f0
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa610
movq -0x20(%rbp), %rdi
movzbl %al, %eax
cltq
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movzbl -0x11(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_57.h
// Function: desc57_set_national_area_code
static inline void desc57_set_national_area_code(uint8_t *p_desc, const char *p_national_area_code, uint8_t i_length)
{
    p_desc[4] = (p_desc[4] &~ 0x70) | ((i_length & 0x07) << 4); // x111xxxx
    memcpy(p_desc + DESC57_HEADER_SIZE
            + desc57_get_country_prefix_length(p_desc)
            + desc57_get_international_area_code_length(p_desc)
            + desc57_get_operator_code_length(p_desc),
           p_national_area_code, i_length);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x4(%rax), %eax
andl $-0x71, %eax
movzbl -0x11(%rbp), %ecx
andl $0x7, %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
movq -0x8(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa5f0
movb %al, %cl
movq -0x30(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa610
movb %al, %cl
movq -0x28(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa630
movq -0x20(%rbp), %rdi
movzbl %al, %eax
cltq
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movzbl -0x11(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)