LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/utils.c
// Function: pushsubglyph
static int pushsubglyph(lua_State *L, FT_GlyphSlot glyph, FT_UInt sub_index)
    {
    FT_Error ec;
    FT_Int p_index, p_arg1, p_arg2;
    FT_UInt p_flags;
    FT_Matrix p_transform;
    ec = FT_Get_SubGlyph_Info(glyph,sub_index,&p_index,&p_flags,&p_arg1,&p_arg2, &p_transform);
    CheckError(L, ec);
    lua_newtable(L);
    pushindex(L, p_index); /* glyph_index */
    lua_setfield(L, -2, "index");
    pushflags(L, p_flags); // subglyphflags
    lua_setfield(L, -2, "flags");
    lua_pushinteger(L, p_arg1);
    lua_setfield(L, -2, "arg1");
    lua_pushinteger(L, p_arg2);
    lua_setfield(L, -2, "arg2");
    pushmatrix(L, p_transform);
    lua_setfield(L, -2, "transform");
    return 1;
    }

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x68(%rsp)
movq %rsi, 0x60(%rsp)
movl %edx, 0x5c(%rsp)
movq 0x60(%rsp), %rdi
movl 0x5c(%rsp), %esi
leaq 0x54(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x50(%rsp), %r8
leaq 0x4c(%rsp), %r9
leaq 0x28(%rsp), %rax
movq %rax, (%rsp)
callq 0x7510
movl %eax, 0x58(%rsp)
cmpl $0x0, 0x58(%rsp)
je 0x17ab3
movq 0x68(%rsp), %rax
movq %rax, 0x20(%rsp)
movl 0x58(%rsp), %edi
callq 0x7d30
movq 0x20(%rsp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x7a70
movl %eax, 0x74(%rsp)
jmp 0x17ba6
jmp 0x17ab5
movq 0x68(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq 0x68(%rsp), %rdi
movl 0x54(%rsp), %esi
callq 0x7ce0
movq 0x68(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x252c(%rip), %rdx      # 0x1a00e
callq 0x74f0
movq 0x68(%rsp), %rdi
movl 0x48(%rsp), %eax
movl %eax, %esi
callq 0x7540
movq 0x68(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2d53(%rip), %rdx      # 0x1a85b
callq 0x74f0
movq 0x68(%rsp), %rdi
movslq 0x50(%rsp), %rsi
callq 0x7540
movq 0x68(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3eb6(%rip), %rdx      # 0x1b9e3
callq 0x74f0
movq 0x68(%rsp), %rdi
movslq 0x4c(%rsp), %rsi
callq 0x7540
movq 0x68(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3e96(%rip), %rdx      # 0x1b9e8
callq 0x74f0
movq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x18(%rsp)
callq 0x7bf0
movq 0x68(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x348f(%rip), %rdx      # 0x1b028
callq 0x74f0
movl $0x1, 0x74(%rsp)
movl 0x74(%rsp), %eax
addq $0x78, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/utils.c
// Function: moonfreetype_pushbbox
int pushbbox(lua_State *L, FT_BBox bbox)
    {
    lua_newtable(L);
    lua_pushinteger(L, bbox.xMin);
    lua_setfield(L, -2, "xmin");
    lua_pushinteger(L, bbox.xMax);
    lua_setfield(L, -2, "xmax");
    lua_pushinteger(L, bbox.yMin);
    lua_setfield(L, -2, "ymin");
    lua_pushinteger(L, bbox.yMax);
    lua_setfield(L, -2, "ymax");
    return 1;   
    }

// Assembly:
subq $0x18, %rsp
leaq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq (%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3d0c(%rip), %rdx      # 0x1b900
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3ce8(%rip), %rdx      # 0x1b905
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3cc4(%rip), %rdx      # 0x1b90a
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x18(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3ca0(%rip), %rdx      # 0x1b90f
callq 0x74f0
movl $0x1, %eax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/utils.c
// Function: moonfreetype_pushsizemetrics
int pushsizemetrics(lua_State *L, FT_Size size)
    {
    lua_newtable(L);
    lua_pushinteger(L, size->metrics.x_ppem);
    lua_setfield(L, -2, "x_ppem");
    lua_pushinteger(L, size->metrics.y_ppem);
    lua_setfield(L, -2, "y_ppem");
    lua_pushinteger(L, size->metrics.x_scale);
    lua_setfield(L, -2, "x_scale");
    lua_pushinteger(L, size->metrics.y_scale);
    lua_setfield(L, -2, "y_scale");
    lua_pushinteger(L, size->metrics.ascender);
    lua_setfield(L, -2, "ascender");
    lua_pushinteger(L, size->metrics.descender);
    lua_setfield(L, -2, "descender");
    lua_pushinteger(L, size->metrics.height);
    lua_setfield(L, -2, "height");
    lua_pushinteger(L, size->metrics.max_advance);
    lua_setfield(L, -2, "max_advance");
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x18(%rax), %eax
movl %eax, %esi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3c52(%rip), %rdx      # 0x1b914
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x1a(%rax), %eax
movl %eax, %esi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3c2e(%rip), %rdx      # 0x1b91b
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3c0c(%rip), %rdx      # 0x1b922
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3beb(%rip), %rdx      # 0x1b92a
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2c6f(%rip), %rdx      # 0x1a9d7
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2c4f(%rip), %rdx      # 0x1a9e0
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2c4e(%rip), %rdx      # 0x1aa08
callq 0x74f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x48(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3b4f(%rip), %rdx      # 0x1b932
callq 0x74f0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/utils.c
// Function: moonfreetype_pushbitmapsize
int pushbitmapsize(lua_State *L, FT_Bitmap_Size size)
    {
    lua_newtable(L);
    lua_pushinteger(L, size.height);
    lua_setfield(L, -2, "height");
    lua_pushinteger(L, size.width);
    lua_setfield(L, -2, "width");
    lua_pushinteger(L, size.size);
    lua_setfield(L, -2, "size");
    lua_pushinteger(L, size.x_ppem);
    lua_setfield(L, -2, "x_ppem");
    lua_pushinteger(L, size.y_ppem);
    lua_setfield(L, -2, "y_ppem");
    return 1;
    }

// Assembly:
subq $0x18, %rsp
leaq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movswq (%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2bc3(%rip), %rdx      # 0x1aa08
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movswq 0x2(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x31a1(%rip), %rdx      # 0x1b010
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3734(%rip), %rdx      # 0x1b5cc
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3a53(%rip), %rdx      # 0x1b914
callq 0x74f0
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x18(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x3a31(%rip), %rdx      # 0x1b91b
callq 0x74f0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/variants.c
// Function: Get_char_variant_index
static int Get_char_variant_index(lua_State *L)
    {
    FT_Face *face = checkface(L, 1);
    FT_ULong charcode = luaL_checkinteger(L, 2);
    FT_ULong selector = luaL_checkinteger(L, 3);
    FT_UInt glyph_index = FT_Face_GetCharVariantIndex(*face, charcode, selector);
    pushindex(L, glyph_index);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
callq 0x7ac0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x7770
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movl $0x3, %esi
callq 0x7770
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x7300
movl %eax, 0x4(%rsp)
movq 0x20(%rsp), %rdi
movl 0x4(%rsp), %esi
callq 0x7ce0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/variants.c
// Function: Get_char_variant_is_default
static int Get_char_variant_is_default(lua_State *L)
    {
    FT_Face *face = checkface(L, 1);
    FT_ULong charcode = luaL_checkinteger(L, 2);
    FT_ULong selector = luaL_checkinteger(L, 3);
    FT_Int res = FT_Face_GetCharVariantIsDefault(*face, charcode, selector);
    if(res == -1)
        return 0; /* nil -> not a variant */
    lua_pushboolean(L, res);
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x7ac0
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x7770
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movl $0x3, %esi
callq 0x7770
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x7b10
movl %eax, 0xc(%rsp)
cmpl $-0x1, 0xc(%rsp)
jne 0x18081
movl $0x0, 0x34(%rsp)
jmp 0x18097
movq 0x28(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0x7810
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/variants.c
// Function: Get_variant_selectors
static int Get_variant_selectors(lua_State *L)
    {
    size_t i;
    FT_Face *face = checkface(L, 1);
    FT_UInt32 *selector = FT_Face_GetVariantSelectors(*face);
    if(selector == NULL)
        return 0;
    lua_newtable(L);
    i = 0;
    while(selector[i] != 0)
        {
        lua_pushinteger(L, selector[i]);
        i++;
        lua_seti(L, -2, i);
        }
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0x7ac0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x7210
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x180df
movl $0x0, 0x24(%rsp)
jmp 0x18149
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq $0x0, 0x10(%rsp)
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x18141
movq 0x18(%rsp), %rdi
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, %esi
callq 0x7540
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
jmp 0x180f6
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/variants.c
// Function: Get_variants_of_char
static int Get_variants_of_char(lua_State *L)
    {
    size_t i;
    FT_Face *face = checkface(L, 1);
    FT_ULong charcode = luaL_checkinteger(L, 2);
    FT_UInt32 *selector = FT_Face_GetVariantsOfChar(*face, charcode);
    if(selector == NULL)
        return 0;
    lua_newtable(L);
    i = 0;
    while(selector[i] != 0)
        {
        lua_pushinteger(L, selector[i]);
        i++;
        lua_seti(L, -2, i);
        }
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x7ac0
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x7770
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x7a00
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x181ba
movl $0x0, 0x34(%rsp)
jmp 0x18226
movq 0x28(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq $0x0, 0x20(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x1821e
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, %esi
callq 0x7540
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
jmp 0x181d1
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/variants.c
// Function: Get_chars_of_variant
static int Get_chars_of_variant(lua_State *L)
    {
    size_t i;
    FT_Face *face = checkface(L, 1);
    FT_ULong selector = luaL_checkinteger(L, 2);
    FT_UInt32 *charcode = FT_Face_GetCharsOfVariant(*face, selector);
    if(charcode == NULL)
        return 0;
    lua_newtable(L);
    i = 0;
    while(charcode[i] != 0)
        {
        lua_pushinteger(L, charcode[i]);
        i++;
        lua_seti(L, -2, i);
        }
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x7ac0
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x7770
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x70a0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1828a
movl $0x0, 0x34(%rsp)
jmp 0x182f6
movq 0x28(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq $0x0, 0x20(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x182ee
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, %esi
callq 0x7540
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
jmp 0x182a1
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/ohkimur[P]the-c-programming-language-2nd-edition-solutions/chapter_5/exercise_5_02/getfloat.c
// Function: main
int main(void)
{
  float number = 0.0;

  getfloat(&number);
  printf("number: %f\n", number);

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0x4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x11b0
movss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0xe74(%rip), %rdi       # 0x2014
movb $0x1, %al
callq 0x1040
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/deoxysneq128128v13/ref/deoxys.c
// Function: set_block_number_in_tweak
static void set_block_number_in_tweak(uint8_t *tweak, const uint64_t block_no) {
    tweak[ 8] = (tweak[8]&0xf0) ^ ((block_no >> 56ULL) & 0xf);
    tweak[ 9] = ((block_no >> 48ULL) & 0xff);
    tweak[10] = ((block_no >> 40ULL) & 0xff);
    tweak[11] = ((block_no >> 32ULL) & 0xff);
    tweak[12] = ((block_no >> 24ULL) & 0xff);
    tweak[13] = ((block_no >> 16ULL) & 0xff);
    tweak[14] = ((block_no >>  8ULL) & 0xff);
    tweak[15] = ((block_no >>  0ULL) & 0xff);
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq -0x8(%rsp), %rax
movzbl 0x8(%rax), %eax
andl $0xf0, %eax
cltq
movq -0x10(%rsp), %rcx
shrq $0x38, %rcx
andq $0xf, %rcx
xorq %rcx, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0x8(%rax)
movq -0x10(%rsp), %rax
shrq $0x30, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0x9(%rax)
movq -0x10(%rsp), %rax
shrq $0x28, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xa(%rax)
movq -0x10(%rsp), %rax
shrq $0x20, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xb(%rax)
movq -0x10(%rsp), %rax
shrq $0x18, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xc(%rax)
movq -0x10(%rsp), %rax
shrq $0x10, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xd(%rax)
movq -0x10(%rsp), %rax
shrq $0x8, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xe(%rax)
movq -0x10(%rsp), %rax
shrq $0x0, %rax
andq $0xff, %rax
movb %al, %cl
movq -0x8(%rsp), %rax
movb %cl, 0xf(%rax)
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: main
int main(void)
{
    generate_pat();
    generate_cat();
    generate_tsdt();
    generate_nit();
    generate_bat();
    generate_sdt();
    generate_eit();
    generate_tdt();
    generate_tot();
    generate_rst();
    generate_pmt();
    generate_dit();
    generate_sit();
    generate_scte35();

    return EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0x4(%rbp)
callq 0x1250
callq 0x1500
callq 0x1750
callq 0x1970
callq 0x1fc0
callq 0x2490
callq 0x2bb0
callq 0x3340
callq 0x3510
callq 0x3710
callq 0x3940
callq 0x4960
callq 0x49d0
callq 0x4d20
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: generate_tdt
static void generate_tdt(void) {
    uint8_t *tdt = psi_allocate();

    tdt_init(tdt);
    tdt_set_utc(tdt, dvb_time_encode_UTC(ts_0));
    if (dvb_time_decode_UTC(tdt_get_utc(tdt)) != ts_0)
        fprintf(stderr, "check tdt_get_set_utc!!!\n");
    output_psi_section(tdt, TDT_PID, &cc);

    tdt_set_utc(tdt, dvb_time_encode_UTC(ts_1));
    if (dvb_time_decode_UTC(tdt_get_utc(tdt)) != ts_1)
        fprintf(stderr, "check tdt_get_set_utc!!!\n");
    output_psi_section(tdt, TDT_PID, &cc);

    tdt_set_utc(tdt, dvb_time_encode_UTC(ts_2));
    if (dvb_time_decode_UTC(tdt_get_utc(tdt)) != ts_2)
        fprintf(stderr, "check tdt_get_set_utc!!!\n");
    output_psi_section(tdt, TDT_PID, &cc);

    tdt_set_utc(tdt, dvb_time_encode_UTC(ts_3));
    if (dvb_time_decode_UTC(tdt_get_utc(tdt)) != ts_3)
        fprintf(stderr, "check tdt_get_set_utc!!!\n");
    output_psi_section(tdt, TDT_PID, &cc);

    free(tdt);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
callq 0x4f30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd780
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x1dd2f(%rip), %rdi     # 0x21098
callq 0xb620
movq -0x10(%rbp), %rdi
movq %rax, %rsi
callq 0xd7c0
movq -0x8(%rbp), %rdi
callq 0xd8d0
movq %rax, %rdi
callq 0xd840
cmpq 0x1dd06(%rip), %rax     # 0x21098
je 0x33ac
movq 0x1dc5d(%rip), %rax     # 0x20ff8
movq (%rax), %rdi
leaq 0x141ce(%rip), %rsi     # 0x17573
movb $0x0, %al
callq 0x1080
movq -0x8(%rbp), %rdi
movl $0x14, %esi
leaq 0x1dcfd(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x1dcd0(%rip), %rdi     # 0x210a0
callq 0xb620
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xd7c0
movq -0x8(%rbp), %rdi
callq 0xd8d0
movq %rax, %rdi
callq 0xd840
cmpq 0x1dca7(%rip), %rax     # 0x210a0
je 0x3413
movq 0x1dbf6(%rip), %rax     # 0x20ff8
movq (%rax), %rdi
leaq 0x14167(%rip), %rsi     # 0x17573
movb $0x0, %al
callq 0x1080
movq -0x8(%rbp), %rdi
movl $0x14, %esi
leaq 0x1dc96(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x1dc71(%rip), %rdi     # 0x210a8
callq 0xb620
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0xd7c0
movq -0x8(%rbp), %rdi
callq 0xd8d0
movq %rax, %rdi
callq 0xd840
cmpq 0x1dc48(%rip), %rax     # 0x210a8
je 0x347a
movq 0x1db8f(%rip), %rax     # 0x20ff8
movq (%rax), %rdi
leaq 0x14100(%rip), %rsi     # 0x17573
movb $0x0, %al
callq 0x1080
movq -0x8(%rbp), %rdi
movl $0x14, %esi
leaq 0x1dc2f(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq 0x1dc12(%rip), %rdi     # 0x210b0
callq 0xb620
movq -0x28(%rbp), %rdi
movq %rax, %rsi
callq 0xd7c0
movq -0x8(%rbp), %rdi
callq 0xd8d0
movq %rax, %rdi
callq 0xd840
cmpq 0x1dbe9(%rip), %rax     # 0x210b0
je 0x34e1
movq 0x1db28(%rip), %rax     # 0x20ff8
movq (%rax), %rdi
leaq 0x14099(%rip), %rsi     # 0x17573
movb $0x0, %al
callq 0x1080
movq -0x8(%rbp), %rdi
movl $0x14, %esi
leaq 0x1dbc8(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rdi
callq 0x1030
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: generate_dit
static void generate_dit(void) {
    uint8_t *dit = psi_allocate();

    dit_init(dit);

    dit_set_transition_flag(dit, true);
    output_psi_section(dit, DIT_PID, &cc);

    dit_set_transition_flag(dit, false);
    output_psi_section(dit, DIT_PID, &cc);

    free(dit);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x4f30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x15e10
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x15e50
movq -0x8(%rbp), %rdi
movl $0x1e, %esi
leaq 0x1c721(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x15e50
movq -0x8(%rbp), %rdi
movl $0x1e, %esi
leaq 0x1c701(%rip), %rdx     # 0x210b9
callq 0x5170
movq -0x8(%rbp), %rdi
callq 0x1030
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/psi.h
// Function: psi_set_crc
static inline void psi_set_crc(uint8_t *p_section)
{
    uint32_t i_crc = 0xffffffff;
    uint16_t i_end = psi_get_length(p_section)
                      + PSI_HEADER_SIZE - PSI_CRC_SIZE;
    uint16_t i;

    for (i = 0; i < i_end; i++)
        i_crc = (i_crc << 8) ^ p_psi_crc_table[(i_crc >> 24) ^ (p_section[i])];

    p_section[i_end] = i_crc >> 24;
    p_section[i_end + 1] = (i_crc >> 16) & 0xff;
    p_section[i_end + 2] = (i_crc >> 8) & 0xff;
    p_section[i_end + 3] = i_crc & 0xff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0xffffffff, -0xc(%rbp) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rdi
callq 0x5490
movzwl %ax, %eax
addl $0x3, %eax
subl $0x4, %eax
movw %ax, -0xe(%rbp)
movw $0x0, -0x10(%rbp)
movzwl -0x10(%rbp), %eax
movzwl -0xe(%rbp), %ecx
cmpl %ecx, %eax
jge 0x50f4
movl -0xc(%rbp), %eax
shll $0x8, %eax
movl -0xc(%rbp), %ecx
shrl $0x18, %ecx
movq -0x8(%rbp), %rdx
movzwl -0x10(%rbp), %esi
movzbl (%rdx,%rsi), %edx
xorl %edx, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x11f40(%rip), %rcx     # 0x17020
xorl (%rcx,%rdx,4), %eax
movl %eax, -0xc(%rbp)
movw -0x10(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x10(%rbp)
jmp 0x50af
movl -0xc(%rbp), %eax
shrl $0x18, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzwl -0xe(%rbp), %ecx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzwl -0xe(%rbp), %ecx
addl $0x1, %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
movzwl -0xe(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movzwl -0xe(%rbp), %ecx
addl $0x3, %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/dvb_gen_si.c
// Function: output_psi_section
static void output_psi_section(uint8_t *section, uint16_t pid, uint8_t *cc) {
    uint16_t section_length = psi_get_length(section) + PSI_HEADER_SIZE;
    uint16_t section_offset = 0;
    do {
        uint8_t ts[TS_SIZE];
        uint8_t ts_offset = 0;
        memset(ts, 0xff, TS_SIZE);

        psi_split_section(ts, &ts_offset, section, &section_offset);

        ts_set_pid(ts, pid);
        ts_set_cc(ts, *cc);
        (*cc)++;
        *cc &= 0xf;

        if (section_offset == section_length)
            psi_split_end(ts, &ts_offset);

        if (write(fileno(stdout), ts, TS_SIZE) < 0)
            perror("write");
    } while (section_offset < section_length);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5490
movzwl %ax, %eax
addl $0x3, %eax
movw %ax, -0x1a(%rbp)
movw $0x0, -0x1c(%rbp)
movb $0x0, -0xe1(%rbp)
leaq -0xe0(%rbp), %rdi
movl $0xff, %esi
movl $0xbc, %edx
callq 0x1070
leaq -0xe0(%rbp), %rdi
movq -0x8(%rbp), %rdx
leaq -0xe1(%rbp), %rsi
leaq -0x1c(%rbp), %rcx
callq 0x54c0
leaq -0xe0(%rbp), %rdi
movzwl -0xa(%rbp), %esi
callq 0x5650
leaq -0xe0(%rbp), %rdi
movq -0x18(%rbp), %rax
movzbl (%rax), %esi
callq 0x56a0
movq -0x18(%rbp), %rax
movb (%rax), %cl
addb $0x1, %cl
movb %cl, (%rax)
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
andl $0xf, %ecx
movb %cl, (%rax)
movzwl -0x1c(%rbp), %eax
movzwl -0x1a(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5234
leaq -0xe0(%rbp), %rdi
leaq -0xe1(%rbp), %rsi
callq 0x56e0
movq 0x1bd9d(%rip), %rax     # 0x20fd8
movq (%rax), %rdi
callq 0x10a0
movl %eax, %edi
leaq -0xe0(%rbp), %rsi
movl $0xbc, %edx
callq 0x1040
cmpq $0x0, %rax
jge 0x5268
leaq 0x121bd(%rip), %rdi     # 0x17420
callq 0x10e0
jmp 0x526a
movzwl -0x1c(%rbp), %eax
movzwl -0x1a(%rbp), %ecx
cmpl %ecx, %eax
jl 0x51a3
addq $0xf0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/pat.h
// Function: pat_get_program
static inline uint8_t *pat_get_program(uint8_t *p_pat, uint8_t n)
{
    uint8_t *p_pat_n = p_pat + PAT_HEADER_SIZE + n * PAT_PROGRAM_SIZE;
    if (p_pat_n + PAT_PROGRAM_SIZE - p_pat
         > psi_get_length(p_pat) + PSI_HEADER_SIZE - PSI_CRC_SIZE)
        return NULL;
    return p_pat_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movzbl -0x11(%rbp), %ecx
shll $0x2, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5490
movw %ax, %cx
movq -0x28(%rbp), %rax
movzwl %cx, %ecx
addl $0x3, %ecx
subl $0x4, %ecx
movslq %ecx, %rcx
cmpq %rcx, %rax
jle 0x5349
movq $0x0, -0x8(%rbp)
jmp 0x5351
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/psi.h
// Function: psi_init
static inline void psi_init(uint8_t *p_section, bool b_syntax)
{
    /* set reserved bits */
    p_section[1] = 0x70;
    if (b_syntax) {
        psi_set_syntax(p_section);
        p_section[5] = 0xc0;
    }
}

// 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), %rax
movb $0x70, 0x1(%rax)
testb $0x1, -0x9(%rbp)
je 0x5443
movq -0x8(%rbp), %rdi
callq 0x5470
movq -0x8(%rbp), %rax
movb $-0x40, 0x5(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/ts.h
// Function: ts_init
static inline void ts_init(uint8_t *p_ts)
{
    p_ts[0] = 0x47;
    p_ts[1] = 0x0;
    p_ts[2] = 0x0;
    p_ts[3] = 0x0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movb $0x47, (%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x2(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x3(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/ts.h
// Function: ts_payload
static inline uint8_t *ts_payload(uint8_t *p_ts)
{
    if (!ts_has_payload(p_ts))
        return p_ts + TS_SIZE;
    if (!ts_has_adaptation(p_ts))
        return p_ts + TS_HEADER_SIZE;
    return p_ts + TS_HEADER_SIZE + 1 + ts_get_adaptation(p_ts);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5860
testb $0x1, %al
jne 0x57b9
movq -0x10(%rbp), %rax
addq $0xbc, %rax
movq %rax, -0x8(%rbp)
jmp 0x5800
movq -0x10(%rbp), %rdi
callq 0x5890
testb $0x1, %al
jne 0x57d4
movq -0x10(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x8(%rbp)
jmp 0x5800
movq -0x10(%rbp), %rax
addq $0x4, %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x58c0
movb %al, %cl
movq -0x18(%rbp), %rax
movzbl %cl, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/cat.h
// Function: cat_init
static inline void cat_init(uint8_t *p_cat)
{
    psi_init(p_cat, true);
    psi_set_tableid(p_cat, CAT_TABLE_ID);
    p_cat[1] &= ~0x40;
    psi_set_tableidext(p_cat, 0xffff);
    psi_set_section(p_cat, 0);
    psi_set_lastsection(p_cat, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x5410
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x5450
movq -0x8(%rbp), %rax
movzbl 0x1(%rax), %ecx
andl $-0x41, %ecx
movb %cl, 0x1(%rax)
movq -0x8(%rbp), %rdi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x4fb0
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x5040
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x5060
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/descriptors.h
// Function: desc_get_at
static inline uint8_t *desc_get_at(const uint8_t *p_desc, uint8_t n,
                                   uint8_t *(next)(const uint8_t *p_desc,
                                                   const uint8_t *p_desc_n))
{
    for (uint8_t *p = next(p_desc, NULL); p; p = next(p_desc, p))
        if (!n--)
            return p;
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5a1e
movb -0x11(%rbp), %al
movb %al, %cl
addb $-0x1, %cl
movb %cl, -0x11(%rbp)
cmpb $0x0, %al
jne 0x5a08
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5a26
jmp 0x5a0a
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq *%rax
movq %rax, -0x28(%rbp)
jmp 0x59e8
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/./bitstream/mpeg/psi/descriptors.h
// Function: descl_next_desc
static inline uint8_t *descl_next_desc(const uint8_t *p_descl,
                                       uint16_t i_length,
                                       const uint8_t *p_desc)
{
    if (p_desc == NULL)
        p_desc = p_descl;
    else
        p_desc += DESC_HEADER_SIZE + desc_get_length(p_desc);
    return p_desc + DESC_HEADER_SIZE > p_descl + i_length ?
        NULL : (uint8_t *)p_desc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x5b58
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x5b75
movq -0x18(%rbp), %rdi
callq 0x5bb0
movzbl %al, %ecx
addl $0x2, %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq -0x8(%rbp), %rcx
movzwl -0xa(%rbp), %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x5b98
xorl %eax, %eax
movq %rax, -0x20(%rbp)
jmp 0x5ba0
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc43
static void build_desc43(uint8_t *desc) {
    desc43_init(desc);
    desc43_set_frequency_bcd  (desc, 0x1175725); // 11,75725 GHz
    desc43_set_position_bcd   (desc, 0x0192); // 19.2
    desc43_set_east           (desc, true);
    desc43_set_polarization   (desc, 1); // 0-H, 1-V, 2-L, 3-R
    desc43_set_rolloff        (desc, 0); // Must be 0 if dvbs2 is false
    desc43_set_dvbs2          (desc, false);
    desc43_set_modulation     (desc, 1); // QPSK
//    desc43_set_rolloff        (desc, 1); // 0,25
//    desc43_set_dvbs2          (desc, true);
//    desc43_set_modulation     (desc, 2); // 8PSK
    desc43_set_symbolrate_bcd (desc, 0x274500); // 27,450
    desc43_set_fecinner       (desc, 5); // 7/8
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7120
movq -0x8(%rbp), %rdi
movl $0x1175725, %esi        # imm = 0x1175725
callq 0x7150
movq -0x8(%rbp), %rdi
movl $0x192, %esi            # imm = 0x192
callq 0x71b0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x71f0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x7240
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x7270
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x72a0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x72f0
movq -0x8(%rbp), %rdi
movl $0x274500, %esi         # imm = 0x274500
callq 0x7320
movq -0x8(%rbp), %rdi
movl $0x5, %esi
callq 0x7390
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_desc44
static void build_desc44(uint8_t *desc) {
    desc44_init(desc);
    desc44_set_frequency_bcd  (desc, 0x3120000); // 312,0000 Mhz
    desc44_set_fecouter       (desc, 0); // 0 - not defined
    desc44_set_modulation     (desc, 3); // 64-QAM
    desc44_set_symbolrate_bcd (desc, 0x274500); // 27,450
    desc44_set_fecinner       (desc, 6); // 8/9
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x73c0
movq -0x8(%rbp), %rdi
movl $0x3120000, %esi        # imm = 0x3120000
callq 0x7410
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x7470
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0x74a0
movq -0x8(%rbp), %rdi
movl $0x274500, %esi         # imm = 0x274500
callq 0x7320
movq -0x8(%rbp), %rdi
movl $0x6, %esi
callq 0x7390
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc5a
static void build_desc5a(uint8_t *desc) {
    desc5a_init(desc);
    desc5a_set_frequency      (desc, 1234567890); // Hz * 10
    desc5a_set_bandwidth      (desc, 2); // 6 Mhz
    desc5a_set_priority       (desc, false); // HP, hierarchy must 0
    desc5a_set_timeslicing    (desc, true);
    desc5a_set_mpefec         (desc, true);
    desc5a_set_constellation  (desc, 2); // 64-QAM
    desc5a_set_hierarchy      (desc, 0xe);
    desc5a_set_coderatehp     (desc, 2); // 3/4
    desc5a_set_coderatelp     (desc, 3); // 5/6
    desc5a_set_guard          (desc, 1); // 1/16
    desc5a_set_transmission   (desc, 2); // 4k mode
    desc5a_set_otherfrequency (desc, true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x74c0
movq -0x8(%rbp), %rdi
movl $0x499602d2, %esi       # imm = 0x499602D2
callq 0x7520
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x7580
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x75b0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x7600
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x7650
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x76a0
movq -0x8(%rbp), %rdi
movl $0xe, %esi
callq 0x76d0
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x7700
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0x7730
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x7760
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x7790
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x77c0
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc5b
static void build_desc5b(uint8_t *desc) {
    char *network_name = "M Network";
    uint8_t k = 0;
    uint8_t *data_n;

    desc5b_init(desc);
    desc_set_length(desc, 255);

    data_n = desc5b_get_data(desc, k++);
    desc5bn_set_code(data_n, (uint8_t *)"eng");
    desc5bn_set_networkname(data_n, (uint8_t *)network_name, strlen(network_name));

    data_n = desc5b_get_data(desc, k++);
    desc5bn_set_code(data_n, (uint8_t *)"fre");
    desc5bn_set_networkname(data_n, (uint8_t *)network_name, strlen(network_name));

    data_n = desc5b_get_data(desc, k++);
    desc5bn_set_code(data_n, (uint8_t *)"bul");
    desc5bn_set_networkname(data_n, (uint8_t *)network_name, strlen(network_name));

    data_n = desc5b_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 0x11240(%rip), %rax     # 0x17463
movq %rax, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7810
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 0x15d8(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x111fe(%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 0x157d(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x111a7(%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 0x1522(%rip), %rdx      # 0x7830
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x11150(%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 0x14d2(%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/dvb_gen_si.c
// Function: build_desc62
static void build_desc62(uint8_t *desc) {
    uint8_t k = 0;
    uint8_t *freq_n;

    desc62_init(desc);
    desc62_set_coding_type(desc, 2); // Cable
    desc_set_length(desc, 255);

    freq_n = desc62_get_frequency(desc, k++);
    desc62n_set_freq(freq_n, 0x3120000); // 312,0000 Mhz

    freq_n = desc62_get_frequency(desc, k++);
    desc62n_set_freq(freq_n, 0x3180000); // 318,0000 Mhz

    freq_n = desc62_get_frequency(desc, k++);
    desc62n_set_freq(freq_n, 0x3240000); // 324,0000 Mhz

    freq_n = desc62_get_frequency(desc, k++);
    desc62n_set_freq(freq_n, 0x3300000); // 330,0000 Mhz

    freq_n = desc62_get_frequency(desc, k++);
    desc62n_set_freq(freq_n, 0x3360000); // 336,0000 Mhz

    freq_n = desc62_get_frequency(desc, k);
    desc_set_length(desc, freq_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x79c0
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x7a00
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1655(%rip), %rdx      # 0x7a30
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x3120000, %esi        # imm = 0x3120000
callq 0x7a80
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1625(%rip), %rdx      # 0x7a30
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x3180000, %esi        # imm = 0x3180000
callq 0x7a80
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x15f5(%rip), %rdx      # 0x7a30
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x3240000, %esi        # imm = 0x3240000
callq 0x7a80
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x15c5(%rip), %rdx      # 0x7a30
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x3300000, %esi        # imm = 0x3300000
callq 0x7a80
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1595(%rip), %rdx      # 0x7a30
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x3360000, %esi        # imm = 0x3360000
callq 0x7a80
movq -0x8(%rbp), %rdi
leaq 0x1570(%rip), %rdx      # 0x7a30
movzbl -0x9(%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/./bitstream/dvb/si/nit.h
// Function: nit_get_ts
static inline uint8_t *nit_get_ts(uint8_t *p_nit, uint8_t n)
{
    uint16_t i_section_size = psi_get_length(p_nit) + PSI_HEADER_SIZE
                               - PSI_CRC_SIZE;
    uint8_t *p_nit_n = p_nit + NIT_HEADER_SIZE + nit_get_desclength(p_nit)
                        + NIT_HEADER2_SIZE;
    if (p_nit_n - p_nit > i_section_size) return NULL;

    while (n) {
        if (p_nit_n + NIT_TS_SIZE - p_nit > i_section_size) return NULL;
        p_nit_n += NIT_TS_SIZE + nitn_get_desclength(p_nit_n);
        n--;
    }
    if (p_nit_n - p_nit >= i_section_size) return NULL;
    return p_nit_n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %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 $0xa, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6b90
movw %ax, %cx
movq -0x28(%rbp), %rax
movzwl %cx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
addq $0x2, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x14(%rbp), %ecx
cmpq %rcx, %rax
jle 0x6c33
movq $0x0, -0x8(%rbp)
jmp 0x6caa
jmp 0x6c35
cmpb $0x0, -0x11(%rbp)
je 0x6c84
movq -0x20(%rbp), %rax
addq $0x6, %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x14(%rbp), %ecx
cmpq %rcx, %rax
jle 0x6c5d
movq $0x0, -0x8(%rbp)
jmp 0x6caa
movq -0x20(%rbp), %rdi
callq 0x8140
movzwl %ax, %ecx
addl $0x6, %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 0x6c35
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movzwl -0x14(%rbp), %ecx
cmpq %rcx, %rax
jl 0x6ca2
movq $0x0, -0x8(%rbp)
jmp 0x6caa
movq -0x20(%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/dvb_gen_si.c
// Function: build_desc41
static void build_desc41(uint8_t *desc) {
    uint8_t k = 0;
    uint8_t *service_n;

    desc41_init(desc);
    desc_set_length(desc, 255);

    service_n = desc41_get_service(desc, k++);
    desc41n_set_sid(service_n, sid);
    desc41n_set_type(service_n, 1);

    service_n = desc41_get_service(desc, k++);
    desc41n_set_sid(service_n, sid + 100);
    desc41n_set_type(service_n, 2);

    service_n = desc41_get_service(desc, k++);
    desc41n_set_sid(service_n, sid + 200);
    desc41n_set_type(service_n, 1);

    service_n = desc41_get_service(desc, k++);
    desc41n_set_sid(service_n, sid + 300);
    desc41n_set_type(service_n, 2);

    service_n = desc41_get_service(desc, k);
    desc_set_length(desc, service_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8170
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1383(%rip), %rdx      # 0x8190
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x1a266(%rip), %esi     # 0x2108a
callq 0x81e0
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x8220
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1343(%rip), %rdx      # 0x8190
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x1a226(%rip), %eax     # 0x2108a
addl $0x64, %eax
movzwl %ax, %esi
callq 0x81e0
movq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x8220
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x12fd(%rip), %rdx      # 0x8190
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x1a1e0(%rip), %eax     # 0x2108a
addl $0xc8, %eax
movzwl %ax, %esi
callq 0x81e0
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x8220
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x12b5(%rip), %rdx      # 0x8190
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movzwl 0x1a198(%rip), %eax     # 0x2108a
addl $0x12c, %eax            # imm = 0x12C
movzwl %ax, %esi
callq 0x81e0
movq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x8220
movq -0x8(%rbp), %rdi
leaq 0x1278(%rip), %rdx      # 0x8190
movzbl -0x9(%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
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc4a_std
static void build_desc4a_std(uint8_t *desc) {
    desc4a_init(desc);
    desc4a_set_tsid(desc, tsid + 500);
    desc4a_set_onid(desc, onid + 500);
    desc4a_set_sid (desc, 0x0000);
    desc4a_set_linkage(desc, 0x04); // new ts
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8240
movq -0x8(%rbp), %rdi
movzwl 0x1a118(%rip), %eax     # 0x21088
addl $0x1f4, %eax            # imm = 0x1F4
movzwl %ax, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
movzwl 0x1a106(%rip), %eax     # 0x2108e
addl $0x1f4, %eax            # imm = 0x1F4
movzwl %ax, %esi
callq 0x82b0
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x82f0
movq -0x8(%rbp), %rdi
movl $0x4, %esi
callq 0x8330
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)