LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/pmt.h
// Function: pmt_next_es
static inline uint8_t *pmt_next_es(uint8_t *p_pmt, uint8_t *p_pmt_n)
{
    uint16_t i_section_size =
        psi_get_length(p_pmt) + PSI_HEADER_SIZE - PSI_CRC_SIZE;
    if (!p_pmt_n)
        p_pmt_n = p_pmt + PMT_HEADER_SIZE + pmt_get_desclength(p_pmt);
    else {
        if (p_pmt_n + PMT_ES_SIZE - p_pmt > i_section_size) return NULL;
        p_pmt_n += PMT_ES_SIZE + pmtn_get_desclength(p_pmt_n);
    }
    return (p_pmt_n - p_pmt < i_section_size) ? p_pmt_n : NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5490
movzwl %ax, %eax
addl $0x3, %eax
subl $0x4, %eax
movw %ax, -0x1a(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10c28
movq -0x10(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0xe4d0
movw %ax, %cx
movq -0x28(%rbp), %rax
movzwl %cx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0x10c67
movq -0x18(%rbp), %rax
addq $0x5, %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x1a(%rbp), %ecx
cmpq %rcx, %rax
jle 0x10c4a
movq $0x0, -0x8(%rbp)
jmp 0x10c95
movq -0x18(%rbp), %rdi
callq 0x10ca0
movzwl %ax, %ecx
addl $0x5, %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x1a(%rbp), %ecx
cmpq %rcx, %rax
jge 0x10c85
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x10c8d
xorl %eax, %eax
movq %rax, -0x30(%rbp)
jmp 0x10c8d
movq -0x30(%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/mpeg/psi/desc_02.h
// Function: desc02_set_mpeg1_only_flag
static inline void desc02_set_mpeg1_only_flag(uint8_t *p_desc, bool b_mpeg1_only_flag) {
    p_desc[2] = b_mpeg1_only_flag ? (p_desc[2] | 0x04) : (p_desc[2] &~ 0x04);
    if (b_mpeg1_only_flag)
        desc_set_length(p_desc, DESC02_HEADER_SIZE - DESC_HEADER_SIZE);
    else
        desc_set_length(p_desc, (DESC02_HEADER_SIZE + 2) - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
testb $0x1, -0x9(%rbp)
je 0x10dba
movq -0x8(%rbp), %rax
movzbl 0x2(%rax), %eax
orl $0x4, %eax
movl %eax, -0x10(%rbp)
jmp 0x10dc8
movq -0x8(%rbp), %rax
movzbl 0x2(%rax), %eax
andl $-0x5, %eax
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
testb $0x1, -0x9(%rbp)
je 0x10dea
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x5ca0
jmp 0x10df8
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0x5ca0
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_05.h
// Function: desc05_set_identifier
static inline void desc05_set_identifier(uint8_t *p_desc, const uint8_t p_id[4])
{
    p_desc[2] = p_id[0];
    p_desc[3] = p_id[1];
    p_desc[4] = p_id[2];
    p_desc[5] = p_id[3];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movb (%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x10(%rbp), %rax
movb 0x1(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movq -0x10(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
movq -0x10(%rbp), %rax
movb 0x3(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x5(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_0a.h
// Function: desc0a_next_language
static inline uint8_t *desc0a_next_language(const uint8_t *p_desc,
                                            const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC0A_HEADER_SIZE;
    else
        p_desc_n += DESC0A_LANGUAGE_SIZE;
    return desc_check(p_desc, p_desc_n, DESC0A_LANGUAGE_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x114f5
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x11501
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_5e.h
// Function: desc5e_next_data
static inline uint8_t *desc5e_next_data(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC5E_HEADER_SIZE;
    else
        p_desc_n += DESC5E_DATA_SIZE + desc5en_get_text_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC5E_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x11775
movq -0x8(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
jmp 0x11792
movq -0x10(%rbp), %rdi
callq 0x117f0
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/dvb/si/desc_6a.h
// Function: desc6a_set_length
static inline void desc6a_set_length(uint8_t *p_desc)
{
    uint8_t i_size = (DESC6A_HEADER_SIZE - DESC_HEADER_SIZE)
                       + desc6a_get_component_type_flag(p_desc)
                       + desc6a_get_bsid_flag(p_desc)
                       + desc6a_get_mainid_flag(p_desc)
                       + desc6a_get_asvc_flag(p_desc);
    return desc_set_length(p_desc, i_size);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x11bb0
andb $0x1, %al
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x11be0
movb %al, %cl
movl -0x18(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x11c00
movb %al, %cl
movl -0x14(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x11c20
movb %al, %cl
movl -0x10(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x5ca0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_7a.h
// Function: desc7a_set_length
static inline void desc7a_set_length(uint8_t *p_desc)
{
    uint8_t i_size = (DESC7A_HEADER_SIZE - DESC_HEADER_SIZE)
                       + desc7a_get_component_type_flag(p_desc)
                       + desc7a_get_bsid_flag(p_desc)
                       + desc7a_get_mainid_flag(p_desc)
                       + desc7a_get_asvc_flag(p_desc)
                       + desc7a_get_substream1_flag(p_desc)
                       + desc7a_get_substream2_flag(p_desc)
                       + desc7a_get_substream3_flag(p_desc);
    return desc_set_length(p_desc, i_size);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x123c0
andb $0x1, %al
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
callq 0x123f0
movb %al, %cl
movl -0x24(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12410
movb %al, %cl
movl -0x20(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12430
movb %al, %cl
movl -0x1c(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12450
movb %al, %cl
movl -0x18(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12470
movb %al, %cl
movl -0x14(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12490
movb %al, %cl
movl -0x10(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x5ca0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/dvb/si/desc_46.h
// Function: desc46_next_language
static inline uint8_t *desc46_next_language(const uint8_t *p_desc,
                                            const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC46_HEADER_SIZE;
    else
        p_desc_n += DESC46_LANGUAGE_SIZE;
    return desc_check(p_desc, p_desc_n, DESC46_LANGUAGE_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12735
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x12741
movq -0x10(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x5, %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_45.h
// Function: desc45_next_data
static inline uint8_t *desc45_next_data(const uint8_t *p_desc,
                                        const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC45_HEADER_SIZE;
    else
        p_desc_n += DESC45_DATA_SIZE + desc45n_get_data_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, DESC45_DATA_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12845
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x12862
movq -0x10(%rbp), %rdi
callq 0x128c0
movzbl %al, %ecx
addl $0x2, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2, %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_59.h
// Function: desc59_next_language
static inline uint8_t *desc59_next_language(const uint8_t *p_desc,
                                            const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC59_HEADER_SIZE;
    else
        p_desc_n += DESC59_LANGUAGE_SIZE;
    return desc_check(p_desc, p_desc_n, DESC59_LANGUAGE_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12b75
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x12b81
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x8, %edx
callq 0x7930
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_1f.h
// Function: desc1f_next_entry
static inline uint8_t *desc1f_next_entry(const uint8_t *p_desc,
                                         const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC1F_HEADER_SIZE;
    else
        p_desc_n += DESC1F_ENTRY_SIZE;
    return desc_check(p_desc, p_desc_n, DESC1F_ENTRY_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12d85
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x12d91
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/mpeg/psi/desc_21.h
// Function: desc21_next_entry
static inline uint8_t *desc21_next_entry(const uint8_t *p_desc,
                                         const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC21_HEADER_SIZE;
    else
        p_desc_n += 1 + desc21n_get_length(p_desc_n);
    return desc_check(p_desc, p_desc_n, 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12e85
movq -0x8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x12ea2
movq -0x10(%rbp), %rdi
callq 0x130a0
movzbl %al, %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %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/desc_21.h
// Function: desc21n_next_substruct
static inline uint8_t *desc21n_next_substruct(const uint8_t *p_desc_n,
                                              const uint8_t *p_desc_k)
{
    if (!p_desc_k)
        p_desc_k = p_desc_n + DESC21_ENTRY_HEADER_SIZE;
    else
        p_desc_k += DESC21_SUBSTRUCT_HEADER_SIZE +
            2 * desc21k_get_slot_count(p_desc_k);
    return desc21n_check_substruct(p_desc_n, p_desc_k);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x12f85
movq -0x8(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x10(%rbp)
jmp 0x12fa4
movq -0x10(%rbp), %rdi
callq 0x13020
movzbl %al, %ecx
shll %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x130b0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_21.h
// Function: desc21n_check_substruct
static inline uint8_t *desc21n_check_substruct(const uint8_t *p_desc_n,
                                               const uint8_t *p_desc_k)
{
    uint8_t length = desc21n_get_length(p_desc_n);
    return p_desc_k < p_desc_n + DESC21_ENTRY_HEADER_SIZE ||
        p_desc_k + DESC21_SUBSTRUCT_HEADER_SIZE > p_desc_n + 1 + length ?
        NULL : (uint8_t *)p_desc_k;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x130a0
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x3, %rcx
cmpq %rcx, %rax
jb 0x130fc
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq -0x8(%rbp), %rcx
addq $0x1, %rcx
movzbl -0x11(%rbp), %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x13104
xorl %eax, %eax
movq %rax, -0x20(%rbp)
jmp 0x1310c
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_22.h
// Function: desc22_next_entry
static inline uint8_t *desc22_next_entry(const uint8_t *p_desc,
                                         const uint8_t *p_desc_n)
{
    if (!p_desc_n)
        p_desc_n = p_desc + DESC22_HEADER_SIZE;
    else
        p_desc_n += DESC22_ENTRY_SIZE;
    return desc_check(p_desc, p_desc_n, DESC22_ENTRY_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x131c5
movq -0x8(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x10(%rbp)
jmp 0x131d1
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/mpeg/psi/desc_2c.h
// Function: desc2c_set_fcr_resolution
static inline void desc2c_set_fcr_resolution(uint8_t *p_desc, uint32_t i_fcr_resolution)
{
    p_desc[4] = (i_fcr_resolution >> 24) & 0xff;
    p_desc[5] = (i_fcr_resolution >> 16) & 0xff;
    p_desc[6] = (i_fcr_resolution >>  8) & 0xff;
    p_desc[7] =  i_fcr_resolution        & 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, 0x4(%rax)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x5(%rax)
movl -0xc(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x6(%rax)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x7(%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_calc_length
static inline int desc24_calc_length(const uint8_t *p_desc)
{
    int i_length = DESC24_HEADER_SIZE - DESC_HEADER_SIZE;
    uint8_t i_indicator = desc24_get_content_time_base_indicator(p_desc);
    if (desc24_get_metadata_application_format(p_desc) == 0xffff)
        i_length += 4;
    if (desc24_get_content_reference_id_record_flag(p_desc))
        i_length += 1 + desc24_get_content_reference_id_length(p_desc);
    if (i_indicator == 1 || i_indicator == 2)
        i_length += 10;
    if (i_indicator == 2)
        i_length += 1;
    if (i_indicator >= 3 && i_indicator <= 7)
        i_length += 1 + desc24_get_time_base_association_data_length(p_desc);
    return i_length;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0x3, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x137c0
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x1373b
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x1374a
jmp 0x1375f
movq -0x8(%rbp), %rdi
callq 0x13870
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x1, %eax
je 0x13771
movzbl -0xd(%rbp), %eax
cmpl $0x2, %eax
jne 0x1377a
movl -0xc(%rbp), %eax
addl $0xa, %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x2, %eax
jne 0x1378c
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x3, %eax
jl 0x137b3
movzbl -0xd(%rbp), %eax
cmpl $0x7, %eax
jg 0x137b3
movq -0x8(%rbp), %rdi
callq 0x138e0
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_set_time_base_association
static inline void desc24_set_time_base_association(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    uint8_t i_indicator = desc24_get_content_time_base_indicator(p_desc);
    if (i_indicator >= 3 && i_indicator <= 7) {
        uint8_t ofs = __ofs2;
        p_desc[ofs] = i_length;
        memcpy(p_desc + ofs + 1, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x137c0
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x3, %eax
jl 0x13a54
movzbl -0x19(%rbp), %eax
cmpl $0x7, %eax
jg 0x13a54
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x13a00
jmp 0x13a14
movq -0x8(%rbp), %rdi
callq 0x13870
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x13a1b
xorl %eax, %eax
movl %eax, -0x24(%rbp)
jmp 0x13a1b
movl -0x20(%rbp), %eax
movl -0x24(%rbp), %ecx
addl %ecx, %eax
movb %al, -0x1a(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x1a(%rbp), %ecx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x1a(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x1, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_set_metadata_application_format_identifier
static inline void desc24_set_metadata_application_format_identifier(uint8_t *p_desc, uint32_t i_identifier)
{
    if (desc24_get_metadata_application_format(p_desc) != 0xffff)
        return;
    p_desc[4] = (i_identifier >> 24) & 0xff;
    p_desc[5] = (i_identifier >> 16) & 0xff;
    p_desc[6] = (i_identifier >>  8) & 0xff;
    p_desc[7] =  i_identifier        & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0x13a84
jmp 0x13ad1
movl -0xc(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x5(%rax)
movl -0xc(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x6(%rax)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
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/mpeg/psi/desc_24.h
// Function: desc24_set_content_reference_id_record
static inline void desc24_set_content_reference_id_record(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    if (desc24_get_content_reference_id_record_flag(p_desc)) {
        uint8_t ofs = __ofs1;
        p_desc[ofs + 1] = i_length;
        memcpy(p_desc + ofs + 2, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x13b05
jmp 0x13b5b
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
movb %al, -0x19(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x19(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x19(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x2, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_set_content_time_base_value
static inline void desc24_set_content_time_base_value(uint8_t *p_desc, uint64_t i_value)
{
    uint8_t i_indicator = desc24_get_content_time_base_indicator(p_desc);
    if (i_indicator == 1 || i_indicator == 2) {
        uint8_t ofs = __ofs2;
        p_desc[ofs + 0] = 0xfe | ((i_value >> 32) & 0x01);
        p_desc[ofs + 1] = (i_value >> 24) & 0xff;
        p_desc[ofs + 2] = (i_value >> 16) & 0xff;
        p_desc[ofs + 3] = (i_value >>  8) & 0xff;
        p_desc[ofs + 4] =  i_value        & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x137c0
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x1, %eax
je 0x13ba2
movzbl -0x11(%rbp), %eax
cmpl $0x2, %eax
jne 0x13ca1
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x13bd6
jmp 0x13bea
movq -0x8(%rbp), %rdi
callq 0x13870
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x13bf1
xorl %eax, %eax
movl %eax, -0x1c(%rbp)
jmp 0x13bf1
movl -0x18(%rbp), %eax
movl -0x1c(%rbp), %ecx
addl %ecx, %eax
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rax
shrq $0x20, %rax
andq $0x1, %rax
orq $0xfe, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x18, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x10, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x8, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_set_metadata_time_base_value
static inline void desc24_set_metadata_time_base_value(uint8_t *p_desc, uint64_t i_value)
{
    uint8_t i_indicator = desc24_get_content_time_base_indicator(p_desc);
    if (i_indicator == 1 || i_indicator == 2) {
        uint8_t ofs = __ofs2 + 5;
        p_desc[ofs + 0] = 0xfe | ((i_value >> 32) & 0x01);
        p_desc[ofs + 1] = (i_value >> 24) & 0xff;
        p_desc[ofs + 2] = (i_value >> 16) & 0xff;
        p_desc[ofs + 3] = (i_value >>  8) & 0xff;
        p_desc[ofs + 4] =  i_value        & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x137c0
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x1, %eax
je 0x13ce2
movzbl -0x11(%rbp), %eax
cmpl $0x2, %eax
jne 0x13de4
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x13d16
jmp 0x13d2a
movq -0x8(%rbp), %rdi
callq 0x13870
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x13d31
xorl %eax, %eax
movl %eax, -0x1c(%rbp)
jmp 0x13d31
movl -0x18(%rbp), %eax
movl -0x1c(%rbp), %ecx
addl %ecx, %eax
addl $0x5, %eax
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rax
shrq $0x20, %rax
andq $0x1, %rax
orq $0xfe, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x18, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x10, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x8, %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0x12(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_24.h
// Function: desc24_set_content_id
static inline void desc24_set_content_id(uint8_t *p_desc, uint8_t i_content_id)
{
    uint8_t i_indicator = desc24_get_content_time_base_indicator(p_desc);
    if (i_indicator == 2) {
        uint8_t ofs = __ofs2 + 10;
        p_desc[ofs + 0] = 0x80 | i_content_id;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x137c0
movb %al, -0xa(%rbp)
movzbl -0xa(%rbp), %eax
cmpl $0x2, %eax
jne 0x13e90
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13810
testb $0x1, %al
jne 0x13e4b
jmp 0x13e5f
movq -0x8(%rbp), %rdi
callq 0x13870
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x13e66
xorl %eax, %eax
movl %eax, -0x14(%rbp)
jmp 0x13e66
movl -0x10(%rbp), %eax
movl -0x14(%rbp), %ecx
addl %ecx, %eax
addl $0xa, %eax
movb %al, -0xb(%rbp)
movzbl -0x9(%rbp), %eax
orl $0x80, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xb(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_set_metadata_format_identifier
static inline void desc25_set_metadata_format_identifier(uint8_t *p_desc, uint32_t i_identifier)
{
    if (desc25_get_metadata_format(p_desc) == 0xff) {
        uint8_t ofs = __ofs1;
        p_desc[ofs + 1] = (i_identifier >> 24) & 0xff;
        p_desc[ofs + 2] = (i_identifier >> 16) & 0xff;
        p_desc[ofs + 3] = (i_identifier >>  8) & 0xff;
        p_desc[ofs + 4] =  i_identifier        & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movzbl %al, %eax
cmpl $0xff, %eax
jne 0x13fdd
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
movb %al, -0xd(%rbp)
movl -0xc(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xd(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xd(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xd(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xd(%rbp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_set_metadata_locator_record
static inline void desc25_set_metadata_locator_record(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    if (desc25_get_metadata_locator_record_flag(p_desc)) {
        uint8_t ofs = __ofs2;
        p_desc[ofs + 2] = i_length;
        memcpy(p_desc + ofs + 3, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145f0
testb $0x1, %al
jne 0x14155
jmp 0x141d4
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x20(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
movb %al, -0x19(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x19(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x19(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x3, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_set_program_number
static inline void desc25_set_program_number(uint8_t *p_desc, uint16_t i_program)
{
    uint8_t i_flags = desc25_get_mpeg_carriage_flags(p_desc);
    if (i_flags == 0 || i_flags == 1 || i_flags == 2) {
        uint8_t ofs = __ofs3;
        p_desc[ofs + 0] = (i_program >> 8) & 0xff;
        p_desc[ofs + 1] =  i_program       & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14670
movb %al, -0xb(%rbp)
movzbl -0xb(%rbp), %eax
cmpl $0x0, %eax
je 0x142be
movzbl -0xb(%rbp), %eax
cmpl $0x1, %eax
je 0x142be
movzbl -0xb(%rbp), %eax
cmpl $0x2, %eax
jne 0x1437f
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x14(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145f0
testb $0x1, %al
jne 0x1431b
jmp 0x1432f
movq -0x8(%rbp), %rdi
callq 0x146f0
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x14336
xorl %eax, %eax
movl %eax, -0x18(%rbp)
jmp 0x14336
movl -0x10(%rbp), %eax
movl -0x18(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movb %al, -0xc(%rbp)
movzwl -0xa(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzbl -0xc(%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 -0xc(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_set_ts_location
static inline void desc25_set_ts_location(uint8_t *p_desc, uint16_t i_ts_location)
{
    if (desc25_get_mpeg_carriage_flags(p_desc) == 1) {
        uint8_t ofs = __ofs3;
        p_desc[ofs + 2] = (i_ts_location >> 8) & 0xff;
        p_desc[ofs + 3] =  i_ts_location       & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14670
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14479
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x14(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145f0
testb $0x1, %al
jne 0x14415
jmp 0x14429
movq -0x8(%rbp), %rdi
callq 0x146f0
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x14430
xorl %eax, %eax
movl %eax, -0x18(%rbp)
jmp 0x14430
movl -0x10(%rbp), %eax
movl -0x18(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %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 $0x2, %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 $0x3, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_set_ts_id
static inline void desc25_set_ts_id(uint8_t *p_desc, uint16_t i_ts_id)
{
    if (desc25_get_mpeg_carriage_flags(p_desc) == 1) {
        uint8_t ofs = __ofs3;
        p_desc[ofs + 4] = (i_ts_id >> 8) & 0xff;
        p_desc[ofs + 5] =  i_ts_id       & 0xff;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14670
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14569
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x14(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145f0
testb $0x1, %al
jne 0x14505
jmp 0x14519
movq -0x8(%rbp), %rdi
callq 0x146f0
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x14520
xorl %eax, %eax
movl %eax, -0x18(%rbp)
jmp 0x14520
movl -0x10(%rbp), %eax
movl -0x18(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %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 $0x4, %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 $0x5, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_25.h
// Function: desc25_calc_length
static inline int desc25_calc_length(const uint8_t *p_desc)
{
    int i_length = DESC25_HEADER_SIZE - DESC_HEADER_SIZE;
    uint8_t i_flags = desc25_get_mpeg_carriage_flags(p_desc);
    if (desc25_get_metadata_application_format(p_desc) == 0xffff)
        i_length += 4;
    if (desc25_get_metadata_format(p_desc) == 0xff)
        i_length += 4;
    if (desc25_get_metadata_locator_record_flag(p_desc))
        i_length += 1 + desc25_get_metadata_locator_record_length(p_desc);
    if (i_flags == 0 || i_flags == 1 || i_flags == 2)
        i_length += 2;
    if (i_flags == 1)
        i_length += 4;
    return i_length;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0x5, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14670
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x147bb
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movzbl %al, %eax
cmpl $0xff, %eax
jne 0x147d7
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145f0
testb $0x1, %al
jne 0x147e6
jmp 0x147fb
movq -0x8(%rbp), %rdi
callq 0x146f0
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x0, %eax
je 0x14816
movzbl -0xd(%rbp), %eax
cmpl $0x1, %eax
je 0x14816
movzbl -0xd(%rbp), %eax
cmpl $0x2, %eax
jne 0x1481f
movl -0xc(%rbp), %eax
addl $0x2, %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x1, %eax
jne 0x14831
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_26.h
// Function: desc26_calc_length
static inline int desc26_calc_length(const uint8_t *p_desc)
{
    int i_length = DESC26_HEADER_SIZE - DESC_HEADER_SIZE;
    uint8_t i_flags = desc26_get_decoder_config_flags(p_desc);

    if (desc26_get_metadata_application_format(p_desc) == 0xffff)
        i_length += 4;
    if (desc26_get_metadata_format(p_desc) == 0xff)
        i_length += 4;
    if (desc26_get_dsm_cc_flag(p_desc))
        i_length += 1 + desc26_get_service_identification_record_length(p_desc);
    if (i_flags == 1)
        i_length += 1 + desc26_get_decoder_config_length(p_desc);
    if (i_flags == 3)
        i_length += 1 + desc26_get_dec_config_identification_record_length(p_desc);
    if (i_flags == 4)
        i_length += 1;
    return i_length;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0x5, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14ad0
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x14a2b
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movzbl %al, %eax
cmpl $0xff, %eax
jne 0x14a47
movl -0xc(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14b50
testb $0x1, %al
jne 0x14a56
jmp 0x14a6b
movq -0x8(%rbp), %rdi
callq 0x14bd0
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x1, %eax
jne 0x14a89
movq -0x8(%rbp), %rdi
callq 0x14c60
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x3, %eax
jne 0x14aa7
movq -0x8(%rbp), %rdi
callq 0x14d30
movzbl %al, %eax
addl $0x1, %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x4, %eax
jne 0x14ab9
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_26.h
// Function: desc26_set_service_identification_record
static inline void desc26_set_service_identification_record(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    if (desc26_get_dsm_cc_flag(p_desc)) {
        uint8_t ofs = __ofs2;
        p_desc[ofs + 2] = i_length;
        memcpy(p_desc + ofs + 3, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14b50
testb $0x1, %al
jne 0x14e25
jmp 0x14ea4
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x20(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
movb %al, -0x19(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x19(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x19(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x3, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%rbp), %eax
movl %eax, %edx
callq 0x1090
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_26.h
// Function: desc26_set_decoder_config
static inline void desc26_set_decoder_config(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    if (desc26_get_decoder_config_flags(p_desc) == 1) {
        uint8_t ofs = __ofs3;
        p_desc[ofs] = i_length;
        memcpy(p_desc + ofs + 1, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14ad0
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14f8f
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x24(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14b50
testb $0x1, %al
jne 0x14f38
jmp 0x14f4c
movq -0x8(%rbp), %rdi
callq 0x14bd0
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x14f53
xorl %eax, %eax
movl %eax, -0x28(%rbp)
jmp 0x14f53
movl -0x20(%rbp), %eax
movl -0x28(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movb %al, -0x19(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x19(%rbp), %ecx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x19(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x1, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%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/mpeg/psi/desc_26.h
// Function: desc26_set_dec_config_identification_record
static inline void desc26_set_dec_config_identification_record(uint8_t *p_desc, uint8_t i_length, uint8_t *p_data)
{
    if (desc26_get_decoder_config_flags(p_desc) == 3) {
        uint8_t ofs = __ofs3;
        p_desc[ofs] = i_length;
        memcpy(p_desc + ofs + 1, p_data, i_length);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14ad0
movzbl %al, %eax
cmpl $0x3, %eax
jne 0x1507f
movq -0x8(%rbp), %rdi
callq 0x136e0
movzwl %ax, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xffff, %edx           # imm = 0xFFFF
cmovel %ecx, %eax
addl $0x4, %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
callq 0x145a0
movb %al, %cl
movl -0x24(%rbp), %eax
movzbl %cl, %esi
xorl %ecx, %ecx
movl $0x4, %edx
cmpl $0xff, %esi
cmovel %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14b50
testb $0x1, %al
jne 0x15028
jmp 0x1503c
movq -0x8(%rbp), %rdi
callq 0x14bd0
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x15043
xorl %eax, %eax
movl %eax, -0x28(%rbp)
jmp 0x15043
movl -0x20(%rbp), %eax
movl -0x28(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movb %al, -0x19(%rbp)
movb -0x9(%rbp), %dl
movq -0x8(%rbp), %rax
movzbl -0x19(%rbp), %ecx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rdi
movzbl -0x19(%rbp), %eax
cltq
addq %rax, %rdi
addq $0x1, %rdi
movq -0x18(%rbp), %rsi
movzbl -0x9(%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/mpeg/psi/desc_2a.h
// Function: desc2a_set_picture_and_timing_info_present
static inline void desc2a_set_picture_and_timing_info_present(uint8_t *p_desc, bool b_picture_and_timing_info_present)
{
    if (b_picture_and_timing_info_present)
        desc_set_length(p_desc, DESC2A_HEADER_SIZE2 - DESC_HEADER_SIZE);
    else
        desc_set_length(p_desc, DESC2A_HEADER_SIZE - DESC_HEADER_SIZE);
    p_desc[2] = b_picture_and_timing_info_present ? (p_desc[2] | 0x01) : (p_desc[2] &~ 0x01);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
testb $0x1, -0x9(%rbp)
je 0x1545a
movq -0x8(%rbp), %rdi
movl $0x7, %esi
callq 0x5ca0
jmp 0x15468
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x5ca0
testb $0x1, -0x9(%rbp)
je 0x1547e
movq -0x8(%rbp), %rax
movzbl 0x2(%rax), %eax
orl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1548c
movq -0x8(%rbp), %rax
movzbl 0x2(%rax), %eax
andl $-0x2, %eax
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/desc_2a.h
// Function: desc2a_set_90khz_flag
static inline void desc2a_set_90khz_flag(uint8_t *p_desc, bool b_90khz_flag)
{
    if (!desc2a_get_picture_and_timing_info_present(p_desc))
        return;
    if (b_90khz_flag)
        desc_set_length(p_desc, DESC2A_HEADER_SIZE2 - DESC_HEADER_SIZE);
    else
        desc_set_length(p_desc, DESC2A_HEADER_SIZE3 - DESC_HEADER_SIZE);
    p_desc[3] = 0x7f;
    p_desc[3] = b_90khz_flag ? (p_desc[3] | 0x80) : (p_desc[3] &~ 0x80);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x15920
testb $0x1, %al
jne 0x154c3
jmp 0x15523
testb $0x1, -0x9(%rbp)
je 0x154d9
movq -0x8(%rbp), %rdi
movl $0x7, %esi
callq 0x5ca0
jmp 0x154e7
movq -0x8(%rbp), %rdi
movl $0xf, %esi
callq 0x5ca0
movq -0x8(%rbp), %rax
movb $0x7f, 0x3(%rax)
testb $0x1, -0x9(%rbp)
je 0x15507
movq -0x8(%rbp), %rax
movzbl 0x3(%rax), %eax
orl $0x80, %eax
movl %eax, -0x10(%rbp)
jmp 0x15517
movq -0x8(%rbp), %rax
movzbl 0x3(%rax), %eax
andl $0xffffff7f, %eax       # imm = 0xFFFFFF7F
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)