LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sr.c
// Function: sr_s_create_self
static bcore_self_s* sr_s_create_self( void )
{
    bcore_self_s* self = bcore_self_s_build_parse_sc( " sr_s = bcore_inst { private vd_t o; private vc_t p; private tp_t f; shell typed => obj; }", sizeof( sr_s ), alignof( sr_s ) );
    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_init,    "bcore_fp_init", "init"    );
    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_down,    "bcore_fp_down", "down"    );
    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_copy,    "bcore_fp_copy", "copy"    );
    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_get_obj, "bcore_fp_get",  "get_obj" );
    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_set_obj, "bcore_fp_set",  "set_obj" );

    bcore_self_s_push_ns_func( self, ( fp_t )sr_s_copy_typed, "bcore_fp_copy_typed", "copy_typed"  );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x42ffa(%rip), %rdi     # 0x14bec3
movl $0x18, %esi
movl $0x8, %edx
callq 0xc447e
movq %rax, %rbx
leaq -0x1243(%rip), %rsi     # 0x107c9f
leaq 0x39b4c(%rip), %rdx     # 0x142a35
leaq 0x39b4e(%rip), %rcx     # 0x142a3e
movq %rax, %rdi
callq 0xc34ab
leaq -0x1256(%rip), %rsi     # 0x107ca9
leaq 0x39b3d(%rip), %rdx     # 0x142a43
leaq 0x2e2bd(%rip), %rcx     # 0x1371ca
movq %rbx, %rdi
callq 0xc34ab
leaq -0x1238(%rip), %rsi     # 0x107ce4
leaq 0x39b2e(%rip), %rdx     # 0x142a51
leaq 0x35431(%rip), %rcx     # 0x13e35b
movq %rbx, %rdi
callq 0xc34ab
leaq 0x55(%rip), %rsi        # 0x108f8e
leaq 0x3ac57(%rip), %rdx     # 0x143b97
leaq 0x42fd7(%rip), %rcx     # 0x14bf1e
movq %rbx, %rdi
callq 0xc34ab
leaq 0x4e(%rip), %rsi        # 0x108fa4
leaq 0x3ac2d(%rip), %rdx     # 0x143b8a
leaq 0x42fc2(%rip), %rcx     # 0x14bf26
movq %rbx, %rdi
callq 0xc34ab
leaq -0xdef(%rip), %rsi      # 0x108184
leaq 0x3229a(%rip), %rdx     # 0x13b214
leaq 0x3229c(%rip), %rcx     # 0x13b21d
movq %rbx, %rdi
callq 0xc34ab
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_initvf
void st_s_initvf( st_s* o, sc_t format, va_list args )
{
    st_s_init( o );
    va_list args1;
    va_copy( args1, args );
    s3_t n = vsnprintf( NULL, 0, format, args1 );
    if( n < 0 ) ERR( "Format error in '%s'\n", format );
    o->space = n + 1;
    va_end( args1 );
    if( o->space < 8 ) o->space = 8;
    o->data = bcore_b_alloc( NULL, o->space, &o->space );
    vsnprintf( o->data, o->space, format, args );
    o->size = bcore_strlen( o->sc );
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x3f69d(%rip), %rax     # 0x148715
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
movq 0x10(%rdx), %rax
movq %rsp, %rcx
movq %rax, 0x10(%rcx)
movups (%rdx), %xmm0
movaps %xmm0, (%rcx)
xorl %edi, %edi
xorl %esi, %esi
movq %r15, %rdx
callq 0xd300
movslq %eax, %r12
testl %r12d, %r12d
jns 0x1090cc
leaq 0x42ea5(%rip), %rdi     # 0x14bf54
leaq 0x42eaa(%rip), %rsi     # 0x14bf60
leaq 0x42eae(%rip), %rcx     # 0x14bf6b
movl $0x2d, %edx
movq %r15, %r8
xorl %eax, %eax
callq 0xbe592
incq %r12
leaq 0x18(%rbx), %rdx
movq %r12, 0x18(%rbx)
cmpq $0x7, %r12
ja 0x1090ea
movq $0x8, (%rdx)
movl $0x8, %r12d
xorl %edi, %edi
movq %r12, %rsi
callq 0xbe7cb
movq %rax, 0x8(%rbx)
movq 0x18(%rbx), %rsi
movq %rax, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0xd300
movq 0x8(%rbx), %rdi
callq 0xbe963
movq %rax, 0x10(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_init_fv
void st_s_init_fv( st_s* o, sc_t format, va_list args )
{
    st_s_init( o );
    uz_t format_size = bcore_strlen( format );
    s3_t n = 0;
    {
        va_list argsl;
        va_copy( argsl, args );
        n = sc_t_fnv( NULL, 0, format, format_size, &argsl );
        va_end( argsl );
    }
    if( n < 0 ) ERR( "Format error in '%s'\n", format );
    o->space = n + 1;
    if( o->space < 8 ) o->space = 8;
    o->data = bcore_b_alloc( NULL, o->space, &o->space );

    {
        va_list argsl;
        va_copy( argsl, args );
        sc_t_fnv( o->data, o->space, format, format_size, &argsl );
        va_end( argsl );
    }

    o->size = bcore_strlen( o->sc );
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x3f5c8(%rip), %rax     # 0x148715
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
movq %rsi, %rdi
callq 0xbe963
movq %rax, %r12
movq 0x10(%r15), %rax
movq %rsp, %r8
movq %rax, 0x10(%r8)
movups (%r15), %xmm0
movaps %xmm0, (%r8)
xorl %edi, %edi
xorl %esi, %esi
movq %r14, %rdx
movq %r12, %rcx
callq 0xddfbc
movq %rax, %r13
testq %rax, %rax
jns 0x1091b1
leaq 0x42ded(%rip), %rdi     # 0x14bf81
leaq 0x42dc5(%rip), %rsi     # 0x14bf60
leaq 0x42dc9(%rip), %rcx     # 0x14bf6b
movl $0x43, %edx
movq %r14, %r8
xorl %eax, %eax
callq 0xbe592
incq %r13
cmpq $0x9, %r13
movl $0x8, %esi
cmovaeq %r13, %rsi
leaq 0x18(%rbx), %rdx
movq %rsi, 0x18(%rbx)
xorl %edi, %edi
callq 0xbe7cb
movq %rax, 0x8(%rbx)
movq 0x10(%r15), %rax
movq %rsp, %r8
movq %rax, 0x10(%r8)
movups (%r15), %xmm0
movaps %xmm0, (%r8)
movq 0x8(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq %r14, %rdx
movq %r12, %rcx
callq 0xddfbc
movq 0x8(%rbx), %rdi
callq 0xbe963
movq %rax, 0x10(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_init_sc_n
void st_s_init_sc_n( st_s* o, sc_t sc, uz_t sc_size )
{
    st_s_init( o );
    o->space = sc_size < 8 ? 8 : sc_size + 1;
    o->data  = bcore_b_alloc( NULL, o->space, &o->space );
    bcore_memcpy( o->data, sc, sc_size );
    o->size = sc_size;
    o->data[ o->size ] = 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x3f3d6(%rip), %rax     # 0x148715
movq %rax, 0x8(%rdi)
movq $0x0, 0x10(%rdi)
leaq 0x1(%rdx), %rax
cmpq $0x8, %rdx
movl $0x8, %esi
cmovaeq %rax, %rsi
leaq 0x18(%rdi), %rdx
movq %rsi, 0x18(%rdi)
xorl %edi, %edi
callq 0xbe7cb
movq %rax, 0x8(%r15)
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xbe87d
movq %rbx, 0x10(%r15)
movq 0x8(%r15), %rax
movb $0x0, (%rax,%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_init_sd_d
void st_s_init_sd_d( st_s* o, sd_t sd )
{
    st_s_init( o );
    if( sd != NULL )
    {
        o->data  = sd;
        o->size  = strlen( sd );
        o->space = o->size + 1;
    }
}

// Assembly:
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x3f372(%rip), %rax     # 0x148715
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
testq %rsi, %rsi
je 0x1093cf
pushq %rbx
movq %rdi, %rbx
movq %rsi, 0x8(%rdi)
movq %rsi, %rdi
callq 0xd230
movq %rax, 0x10(%rbx)
incq %rax
movq %rax, 0x18(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_set_size
st_s* st_s_set_size( st_s* o, u0_t fill_char, uz_t size )
{
    if( o->space <= size )
    {
        if( o->space > 0 ) bcore_bn_alloc( o->data, o->space, 0, &o->space );
        o->space = size < 8 ? 8 : size + 1;
        o->data  = bcore_b_alloc( NULL, o->space, &o->space );
    }
    for( sz_t i = 0; i < size; i++ ) o->data[ i ] = fill_char;
    o->size = size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movq 0x18(%rdi), %rsi
cmpq %rdx, %rsi
ja 0x1094c9
leaq 0x18(%r14), %r15
testq %rsi, %rsi
je 0x1094a6
movq 0x8(%r14), %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0xbe7d0
leaq 0x1(%rbx), %rax
cmpq $0x8, %rbx
movl $0x8, %esi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%r14)
xorl %edi, %edi
movq %r15, %rdx
callq 0xbe7cb
movq %rax, 0x8(%r14)
testq %rbx, %rbx
je 0x1094e0
xorl %eax, %eax
movq 0x8(%r14), %rcx
movb %bpl, (%rcx,%rax)
incq %rax
cmpq %rax, %rbx
jne 0x1094d0
movq %rbx, 0x10(%r14)
movq 0x8(%r14), %rax
movb $0x0, (%rax,%rbx)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_copy
st_s* st_s_copy( st_s* o, const st_s* src )
{
    if( !src || o == src ) return o;
    if( o->space <= src->size )
    {
        if( o->space > 0 ) bcore_bn_alloc( o->data, o->space, 0, &o->space );
        o->space = src->size < 8 ? 8 : src->size + 1;
        o->data  = bcore_b_alloc( NULL, o->space, &o->space );
    }
    bcore_memcpy( o->data, src->data, src->size );
    o->size = src->size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
testq %rsi, %rsi
sete %al
cmpq %rsi, %rdi
sete %cl
orb %al, %cl
jne 0x109586
movq %rsi, %r14
movq 0x18(%rbx), %rsi
movq 0x10(%r14), %rdx
cmpq %rdx, %rsi
jbe 0x109528
movq 0x8(%rbx), %rdi
jmp 0x10956d
leaq 0x18(%rbx), %r15
testq %rsi, %rsi
je 0x109543
movq 0x8(%rbx), %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0xbe7d0
movq 0x10(%r14), %rdx
leaq 0x1(%rdx), %rax
cmpq $0x8, %rdx
movl $0x8, %esi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%rbx)
xorl %edi, %edi
movq %r15, %rdx
callq 0xbe7cb
movq %rax, %rdi
movq %rax, 0x8(%rbx)
movq 0x10(%r14), %rdx
movq 0x8(%r14), %rsi
callq 0xbe87d
movq 0x10(%r14), %rax
movq %rax, 0x10(%rbx)
movq 0x8(%rbx), %rcx
movb $0x0, (%rcx,%rax)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_copy_sc_n
st_s* st_s_copy_sc_n( st_s* o, sc_t sc, uz_t sc_size )
{
    if( o->space <= sc_size )
    {
        if( o->space > 0 ) bcore_bn_alloc( o->data, o->space, 0, &o->space );
        o->space = sc_size < 8 ? 8 : sc_size + 1;
        o->data  = bcore_b_alloc( NULL, o->space, &o->space );
    }
    bcore_memcpy( o->data, sc, sc_size );
    o->size = sc_size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x18(%rdi), %rsi
cmpq %rdx, %rsi
jbe 0x1095af
movq 0x8(%r14), %rdi
jmp 0x1095ec
leaq 0x18(%r14), %r12
testq %rsi, %rsi
je 0x1095c6
movq 0x8(%r14), %rdi
xorl %edx, %edx
movq %r12, %rcx
callq 0xbe7d0
leaq 0x1(%rbx), %rax
cmpq $0x8, %rbx
movl $0x8, %esi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%r14)
xorl %edi, %edi
movq %r12, %rdx
callq 0xbe7cb
movq %rax, %rdi
movq %rax, 0x8(%r14)
movq %r15, %rsi
movq %rbx, %rdx
callq 0xbe87d
movq %rbx, 0x10(%r14)
movq 0x8(%r14), %rax
movb $0x0, (%rax,%rbx)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_assign_sc
st_s* st_s_assign_sc( st_s* o, sc_t sc )
{
    uz_t src_size = bcore_strlen( sc );
    if( o->space > 0 ) bcore_bn_alloc( o->data, o->space, 0, &o->space );
    o->sc   = sc;
    o->size = src_size;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
callq 0xbe963
movq %rax, %r15
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x1096d3
leaq 0x18(%rbx), %rcx
movq 0x8(%rbx), %rdi
xorl %edx, %edx
callq 0xbe7d0
movq %r14, 0x8(%rbx)
movq %r15, 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_move
st_s* st_s_move( st_s* o, st_s* src )
{
    st_s_init( o );
    st_s_copy( o, src );
    st_s_down( src );
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x3eace(%rip), %rax     # 0x148715
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
callq 0x1094fa
movq 0x18(%r14), %rsi
testq %rsi, %rsi
je 0x109c6f
leaq 0x18(%r14), %rcx
movq 0x8(%r14), %rdi
xorl %edx, %edx
callq 0xbe7d0
movq $0x0, 0x10(%r14)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_createf_l
st_s* st_s_createf_l( bcore_life_s* life, sc_t format, ... )
{
    st_s* o = bcore_b_alloc( NULL, sizeof( st_s ), NULL );
    va_list args;
    va_start( args, format );
    st_s_initvf( o, format, args );
    va_end( args );
    return bcore_life_s_push( life, ( bcore_fp_discard )st_s_discard, o );
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x20(%rsp), %r12
movq %rdx, 0x10(%r12)
movq %rcx, 0x18(%r12)
movq %r8, 0x20(%r12)
movq %r9, 0x28(%r12)
testb %al, %al
je 0x10a0a5
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r15
movq %rsp, %rdx
movq %r12, 0x10(%rdx)
leaq 0x100(%rsp), %rax
movq %rax, 0x8(%rdx)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, (%rdx)
movq %r15, %rdi
movq %r14, %rsi
callq 0x109050
leaq -0xc0(%rip), %rsi       # 0x10a028
movq %rbx, %rdi
movq %r15, %rdx
callq 0xd6769
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_create_typed
st_s* st_s_create_typed( tp_t type, vc_t src )
{
    st_s* o = bcore_b_alloc( NULL, sizeof( st_s ), NULL );
    st_s_init( o );
    st_s_copy_typed( o, type, src );
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r15
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%r15)
leaq 0x3e577(%rip), %rax     # 0x148715
movq %rax, 0x8(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x10988c
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_make_strong
void st_s_make_strong( st_s* o )
{
    if( !st_s_is_weak( o ) ) return;
    sc_t src = o->sc;
    o->size = 0;
    st_s_copy_sc( o, src );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
cmpq $0x0, 0x10(%rdi)
je 0x10a23c
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
je 0x10a244
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x8(%rbx), %r14
movq $0x0, 0x10(%rbx)
movq %r14, %rdi
callq 0xbe963
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x10958f
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_set_min_space
void st_s_set_min_space( st_s* o, uz_t min_space )
{
    if( min_space == 0 ) return;
    st_s_make_strong( o );
    if( o->space == 0 )
    {
        uz_t new_space = min_space > 8 ? min_space : 8;
        o->data = bcore_bn_alloc( NULL, 0, new_space, &o->space );
        o->data[ o->size ] = 0;
    }
    else if( o->space < min_space )
    {
        uz_t new_space = ( min_space > o->space * 2 ) ? min_space : o->space * 2;
        o->data = bcore_bn_alloc( o->data, o->space, new_space, &o->space );
    }
}

// Assembly:
testq %rsi, %rsi
je 0x10a2d9
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x10a227
leaq 0x18(%rbx), %rcx
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x10a2b0
cmpq %r14, %rsi
jae 0x10a2d2
leaq (%rsi,%rsi), %rax
cmpq %r14, %rax
cmovaq %rax, %r14
movq 0x8(%rbx), %rdi
movq %r14, %rdx
callq 0xbe7d0
movq %rax, 0x8(%rbx)
jmp 0x10a2d2
cmpq $0x9, %r14
movl $0x8, %edx
cmovaeq %r14, %rdx
xorl %edi, %edi
xorl %esi, %esi
callq 0xbe7d0
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
movb $0x0, (%rax,%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_clone
st_s* st_s_clone( const st_s* o )
{
    if( o )
    {
        st_s* o_l = st_s_create();
        st_s_copy( o_l, o );
        return o_l;
    }
    return NULL;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x10a324
movq %rdi, %rbx
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r14
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%r14)
leaq 0x3e40a(%rip), %rax     # 0x148715
movq %rax, 0x8(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1094fa
jmp 0x10a327
xorl %r14d, %r14d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_crop
st_s* st_s_crop( const st_s* o, uz_t start, uz_t end )
{
    st_s* s = st_s_create();
    if( start >= o->size ) return s;
    uz_t end_l = end < o->size ? end : o->size;
    if( end_l <= start ) return s;
    s->space = end_l - start + 1;
    if( s->space < 8 ) s->space = 8;
    s->data = bcore_b_alloc( NULL, s->space, &s->space );
    s->size = end_l - start;
    bcore_memcpy( s->data, o->data + start, s->size );
    s->data[ s->size ] = 0;
    return s;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r12
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r15
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%r15)
leaq 0x3e3ad(%rip), %rax     # 0x148715
movq %rax, 0x8(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movq 0x10(%r12), %rax
cmpq %r14, %rax
setbe %cl
cmpq %r14, %rbx
setbe %dl
orb %cl, %dl
jne 0x10a3dd
cmpq %rbx, %rax
cmovbq %rax, %rbx
subq %r14, %rbx
leaq 0x1(%rbx), %rax
movq %r15, %rdx
addq $0x18, %rdx
cmpq $0x9, %rax
movl $0x8, %esi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%r15)
xorl %edi, %edi
callq 0xbe7cb
movq %rax, 0x8(%r15)
movq %rbx, 0x10(%r15)
addq 0x8(%r12), %r14
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xbe87d
movq 0x8(%r15), %rax
movq 0x10(%r15), %rcx
movb $0x0, (%rax,%rcx)
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_push_char
st_s* st_s_push_char( st_s* o, char c )
{
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        o->space = 8;
        o->data = bcore_b_alloc( NULL, o->space, &o->space );
    }
    else if( o->space < o->size + 2 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->space * 2, &o->space );
    }
    o->data[ o->size ] = c;
    o->size++;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x18(%rdi), %r14
movq 0x18(%rdi), %rsi
testq %rsi, %rsi
jne 0x10a46f
movq %rbx, %rdi
callq 0x10a227
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x10a491
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
addq $0x2, %rcx
cmpq %rcx, %rsi
jae 0x10a4ac
leaq (%rsi,%rsi), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xbe7d0
jmp 0x10a4a8
movq $0x8, 0x18(%rbx)
movl $0x8, %esi
xorl %edi, %edi
movq %r14, %rdx
callq 0xbe7cb
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
movb %bpl, (%rax,%rcx)
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
movb $0x0, 0x1(%rax,%rcx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_push_char_n
st_s* st_s_push_char_n( st_s* o, char c, uz_t n )
{
    st_s_set_min_space( o, o->size + n + 1 );
    bcore_memset( o->data + o->size, c, n );
    o->size += n;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movq 0x10(%rdi), %rax
leaq (%rdx,%rax), %rsi
incq %rsi
callq 0x10a26d
movq 0x8(%r14), %rdi
addq 0x10(%r14), %rdi
movzbl %bpl, %esi
movq %rbx, %rdx
callq 0xbe84f
addq 0x10(%r14), %rbx
movq %rbx, 0x10(%r14)
movq 0x8(%r14), %rax
movb $0x0, (%rax,%rbx)
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_pop_char
char st_s_pop_char( st_s* o )
{
    if( o->size  == 0 ) return 0;
    if( o->space == 0 ) st_s_make_strong( o );
    o->size--;
    char c = o->data[ o->size ];
    o->data[ o->size ] = 0;
    return c;
}

// Assembly:
movq 0x10(%rdi), %rcx
testq %rcx, %rcx
je 0x10a550
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
jne 0x10a539
movq %rbx, %rdi
callq 0x10a227
movq 0x10(%rbx), %rcx
leaq -0x1(%rcx), %rax
movq %rax, 0x10(%rbx)
movq 0x8(%rbx), %rdx
movb -0x1(%rdx,%rcx), %al
movb $0x0, -0x1(%rdx,%rcx)
popq %rbx
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_pop_n
void st_s_pop_n( st_s* o, uz_t n )
{
    if( o->size  == 0 ) return;
    if( o->space == 0 ) st_s_make_strong( o );
    o->size = ( o->size > n ) ? ( o->size - n ) : 0;
    o->data[ o->size ] = 0;
}

// Assembly:
movq 0x10(%rdi), %rax
testq %rax, %rax
je 0x10a595
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
jne 0x10a579
movq %rbx, %rdi
callq 0x10a227
movq 0x10(%rbx), %rax
xorl %ecx, %ecx
subq %r14, %rax
cmovaeq %rax, %rcx
movq %rcx, 0x10(%rbx)
movq 0x8(%rbx), %rax
movb $0x0, (%rax,%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_push_st
st_s* st_s_push_st( st_s* o, const st_s* src )
{
    if( !src ) return o;
    if( o->size == 0 )
    {
        st_s_copy( o, src );
        return o;
    }
    if( o->space < o->size + src->size + 1 )
    {
        if( o->space == 0 ) st_s_make_strong( o );
        o->data = bcore_bn_alloc( o->data, o->space, o->size + src->size + 1, &o->space );
    }
    bcore_memcpy( o->data + o->size, src->data, src->size );
    o->size += src->size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
testq %rsi, %rsi
je 0x10a638
movq %rsi, %r14
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x10a607
movq 0x18(%rbx), %rsi
movq 0x10(%r14), %rdx
leaq (%rdi,%rdx), %rax
incq %rax
cmpq %rax, %rsi
jae 0x10a614
leaq 0x18(%rbx), %r15
testq %rsi, %rsi
jne 0x10a5ea
movq %rbx, %rdi
callq 0x10a227
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rsi
movq 0x10(%r14), %rcx
addq %rcx, %rax
incq %rax
movq 0x8(%rbx), %rdi
movq %rax, %rdx
movq %r15, %rcx
callq 0xbe7d0
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdi
movq 0x10(%r14), %rdx
jmp 0x10a618
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1094fa
jmp 0x10a638
movq 0x8(%rbx), %rax
addq %rax, %rdi
movq 0x8(%r14), %rsi
callq 0xbe87d
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0x10(%rbx)
movb $0x0, (%rax,%rcx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_push_sc_n
st_s* st_s_push_sc_n( st_s* o, sc_t sc, uz_t sc_size )
{
    if( o->space < o->size + sc_size + 1 )
    {
        if( o->space == 0 ) st_s_make_strong( o );
        o->data = bcore_bn_alloc( o->data, o->space, o->size + sc_size + 1, &o->space );
    }
    bcore_memcpy( o->data + o->size, sc, sc_size );
    o->size += sc_size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x10(%rdi), %rdi
movq 0x18(%r14), %rsi
leaq (%rdx,%rdi), %r12
incq %r12
cmpq %r12, %rsi
jae 0x10a6cb
leaq 0x18(%r14), %r13
testq %rsi, %rsi
jne 0x10a6b2
leaq 0x1(%rbx), %r12
movq %r14, %rdi
callq 0x10a227
movq 0x18(%r14), %rsi
addq 0x10(%r14), %r12
movq 0x8(%r14), %rdi
movq %r12, %rdx
movq %r13, %rcx
callq 0xbe7d0
movq %rax, 0x8(%r14)
movq 0x10(%r14), %rdi
jmp 0x10a6cf
movq 0x8(%r14), %rax
addq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xbe87d
addq 0x10(%r14), %rbx
movq %rbx, 0x10(%r14)
movq 0x8(%r14), %rax
movb $0x0, (%rax,%rbx)
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_pushvf
st_s* st_s_pushvf( st_s* o, sc_t format, va_list args )
{
    st_s s;
    st_s_initvf( &s, format, args );
    st_s_push_st( o, &s );
    st_s_down( &s );
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x109050
movq %rbx, %rdi
movq %r14, %rsi
callq 0x10a596
movq 0x18(%r14), %rsi
testq %rsi, %rsi
je 0x10a7c5
leaq 0x20(%rsp), %rcx
movq -0x10(%rcx), %rdi
xorl %edx, %edx
callq 0xbe7d0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_push_fv
st_s* st_s_push_fv( st_s* o, sc_t format, va_list args )
{
    st_s s;
    st_s_init_fv( &s, format, args );
    st_s_push_st( o, &s );
    st_s_down( &s );
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x109123
movq %rbx, %rdi
movq %r14, %rsi
callq 0x10a596
movq 0x18(%r14), %rsi
testq %rsi, %rsi
je 0x10a89a
leaq 0x20(%rsp), %rcx
movq -0x10(%rcx), %rdi
xorl %edx, %edx
callq 0xbe7d0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_find_char
uz_t st_s_find_char( const st_s* o, uz_t start, uz_t end, char c )
{
    if( end >= start )
    {
        uz_t end_l = end < o->size ? end : o->size;
        for( uz_t j = start; j < end_l; j++ ) if( o->data[ j ] == c ) return j;
        return end_l;
    }
    else
    {
        uz_t start_l = start < o->size ? start : o->size;
        for( uz_t j = start_l - 1;  j < start_l && j >= end; j-- ) if( o->data[ j ] == c ) return j;
        return start_l;
    }
}

// Assembly:
movq 0x10(%rdi), %rax
cmpq %rsi, %rdx
jae 0x10a9cd
cmpq %rsi, %rax
cmovbq %rax, %rsi
movq %rsi, %r8
leaq -0x1(%r8), %rax
cmpq %rsi, %rax
jae 0x10a9f8
cmpq %rdx, %rax
jb 0x10a9f8
movq 0x8(%rdi), %r9
cmpb %cl, -0x1(%r9,%r8)
movq %rax, %r8
jne 0x10a9b0
retq
cmpq %rdx, %rax
cmovbq %rax, %rdx
cmpq %rsi, %rdx
jbe 0x10a9ed
movq 0x8(%rdi), %rax
cmpb %cl, (%rax,%rsi)
je 0x10a9ed
incq %rsi
cmpq %rsi, %rdx
jne 0x10a9dd
movq %rdx, %rsi
cmpq %rdx, %rsi
cmovbq %rsi, %rdx
movq %rdx, %rax
retq
movq %rsi, %rax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_find_sc
uz_t st_s_find_sc( const st_s* o, uz_t start, uz_t end, sc_t find_sc )
{
    if( !find_sc || find_sc[ 0 ] == 0 ) return start;

    if( end >= start )
    {
        uz_t end_l = end < o->size ? end : o->size;
        for( uz_t j = start; j < end_l; j++ )
        {
            if( o->data[ j ] == find_sc[ 0 ] )
            {
                int m = bcore_strcmp( find_sc, &o->data[ j ] );
                if( m == 0 || m == 1 ) return j;
            }
        }
        return end_l;
    }
    else
    {
        uz_t start_l = start < o->size ? start : o->size;
        for( uz_t j = start_l - 1;  j < start_l && j >= end; j-- )
        {
            if( o->data[ j ] == find_sc[ 0 ] )
            {
                int m = bcore_strcmp( find_sc, &o->data[ j ] );
                if( m == 0 || m == 1 ) return j;
            }
        }
        return start_l;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
testq %rcx, %rcx
je 0x10aab7
movq %rcx, %r15
cmpb $0x0, (%rcx)
je 0x10aab7
movq %rdx, %r14
movq %rdi, %r12
movq 0x10(%rdi), %rax
cmpq %rbx, %rdx
jae 0x10aa74
cmpq %rbx, %rax
cmovbq %rax, %rbx
leaq -0x1(%rbx), %r13
testq %rax, %rax
sete %al
cmpq %r14, %r13
setb %cl
orb %al, %cl
jne 0x10aab7
movq 0x8(%r12), %rsi
movb (%rsi,%r13), %al
cmpb (%r15), %al
jne 0x10aa65
addq %r13, %rsi
movq %r15, %rdi
callq 0xbe959
cmpl $0x2, %eax
jb 0x10aab4
decq %r13
cmpq %rbx, %r13
jae 0x10aab7
cmpq %r14, %r13
jae 0x10aa47
jmp 0x10aab7
cmpq %r14, %rax
cmovbq %rax, %r14
cmpq %rbx, %r14
jbe 0x10aaa8
movq 0x8(%r12), %rsi
movb (%rsi,%rbx), %al
cmpb (%r15), %al
jne 0x10aa9d
addq %rbx, %rsi
movq %r15, %rdi
callq 0xbe959
cmpl $0x2, %eax
jb 0x10aaa8
incq %rbx
cmpq %rbx, %r14
jne 0x10aa80
movq %r14, %rbx
cmpq %r14, %rbx
cmovbq %rbx, %r14
movq %r14, %rax
jmp 0x10aaba
movq %r13, %rbx
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_find_any_sc
uz_t st_s_find_any_sc( const st_s* o, uz_t start, uz_t end, sc_t sc )
{
    if( !sc || sc[ 0 ] == 0 ) return start;
    if( end >= start )
    {
        uz_t end_l = end < o->size ? end : o->size;
        for( uz_t j = start; j < end_l; j++ ) if( bcore_strany( o->data[ j ], sc ) ) return j;
        return end_l;
    }
    else
    {
        uz_t start_l = start < o->size ? start : o->size;
        for( uz_t j = start_l - 1; j < start_l && j >= end; j-- ) if( bcore_strany( o->data[ j ], sc ) ) return j;
        return start_l;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
testq %rcx, %rcx
je 0x10ab55
movq %rcx, %r15
cmpb $0x0, (%rcx)
je 0x10ab55
movq %rdx, %r14
movq %rdi, %r12
movq 0x10(%rdi), %rax
cmpq %rbx, %rdx
jae 0x10ab65
cmpq %rbx, %rax
cmovbq %rax, %rbx
movq %rbx, %rcx
leaq -0x1(%rcx), %r13
cmpq %rbx, %r13
jae 0x10ab55
cmpq %r14, %r13
jb 0x10ab55
movq 0x8(%r12), %rax
movsbl -0x1(%rax,%rcx), %edi
movq %r15, %rsi
callq 0xbe968
movq %r13, %rcx
testb %al, %al
je 0x10ab2c
jmp 0x10ab58
movq %rbx, %r13
movq %r13, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
cmpq %r14, %rax
cmovbq %rax, %r14
cmpq %rbx, %r14
jbe 0x10ab91
movq 0x8(%r12), %rax
movsbl (%rax,%rbx), %edi
movq %r15, %rsi
callq 0xbe968
testb %al, %al
jne 0x10ab91
incq %rbx
cmpq %rbx, %r14
jne 0x10ab71
movq %r14, %rbx
cmpq %r14, %rbx
cmovbq %rbx, %r14
movq %r14, %rax
jmp 0x10ab5b
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_remove
st_s* st_s_remove( st_s* o, uz_t start, uz_t size )
{
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    uz_t size_l = start + size > o->size ? o->size - start : size;
    bcore_memmove( o->data + start, o->data + start + size_l, o->size - start - size_l );
    o->size -= size_l;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rdi, %rbx
movq 0x10(%rdi), %rdx
cmpq %rsi, %rdx
jbe 0x10aca7
movq %rsi, %r14
cmpq $0x0, 0x18(%rbx)
jne 0x10ac6d
movq %rbx, %rdi
callq 0x10a227
movq 0x10(%rbx), %rdx
leaq (%r15,%r14), %rax
movq %rdx, %r12
subq %r14, %r12
cmpq %rdx, %rax
cmovbeq %r15, %r12
subq %r12, %rdx
subq %r14, %rdx
addq 0x8(%rbx), %r14
leaq (%r14,%r12), %rsi
movq %r14, %rdi
callq 0xbe8fd
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
subq %r12, %rcx
movq %rcx, 0x10(%rbx)
movb $0x0, (%rax,%rcx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_count_char
uz_t st_s_count_char( const st_s* o, uz_t start, uz_t end, char c )
{
    uz_t count = 0;
    uz_t end_l = end < o->size ? end : o->size;
    for( uz_t j = start; j < end_l; j++ ) if( o->data[ j ] == c ) count++;
    return count;
}

// Assembly:
movq 0x10(%rdi), %rax
cmpq %rdx, %rax
cmovbq %rax, %rdx
cmpq %rsi, %rdx
jbe 0x10ace2
movq 0x8(%rdi), %rdi
xorl %eax, %eax
xorl %r8d, %r8d
cmpb %cl, (%rdi,%rsi)
sete %r8b
addq %r8, %rax
incq %rsi
cmpq %rsi, %rdx
jne 0x10accc
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_count_sc
uz_t st_s_count_sc( const st_s* o, uz_t start, uz_t end, sc_t sc )
{
    uz_t count = 0;
    if( !sc || sc[ 0 ] == 0 ) return 0;

    uz_t end_l = end < o->size ? end : o->size;
    for( uz_t j = start; j < end_l; j++ )
    {
        if( o->data[ j ] == sc[ 0 ] )
        {
            int m = bcore_strcmp( sc, &o->data[ j ] );
            if( m == 0 || m == 1 ) count++;
        }
    }
    return count;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rcx, %rcx
je 0x10ad40
movq %rcx, %rbx
cmpb $0x0, (%rcx)
je 0x10ad40
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movq 0x10(%rdi), %rax
cmpq %rdx, %rax
cmovbq %rax, %r14
cmpq %rsi, %r14
jbe 0x10ad40
xorl %r13d, %r13d
movq 0x8(%r12), %rsi
movb (%rsi,%r15), %al
cmpb (%rbx), %al
jne 0x10ad36
addq %r15, %rsi
movq %rbx, %rdi
callq 0xbe959
cmpl $0x2, %eax
adcq $0x0, %r13
incq %r15
cmpq %r15, %r14
jne 0x10ad17
jmp 0x10ad43
xorl %r13d, %r13d
movq %r13, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_char
st_s* st_s_insert_char( st_s* o, uz_t start, char c )
{
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        o->space = 8;
        o->data = bcore_b_alloc( NULL, o->space, &o->space );
    }
    else if( o->space < o->size + 2 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->space * 2, &o->space );
    }
    bcore_memmove( o->data + start + 1, o->data + start, o->size - start );
    o->data[ start ] = c;
    o->size++;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
cmpq %rsi, %rcx
jb 0x10ae06
movl %edx, %ebp
movq %rsi, %r14
leaq 0x18(%rbx), %r15
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
jne 0x10ad97
movq %rbx, %rdi
callq 0x10a227
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x10adb5
movq 0x10(%rbx), %rcx
addq $0x2, %rcx
movq 0x8(%rbx), %rax
cmpq %rcx, %rsi
jae 0x10add0
leaq (%rsi,%rsi), %rdx
movq %rax, %rdi
movq %r15, %rcx
callq 0xbe7d0
jmp 0x10adcc
movq $0x8, 0x18(%rbx)
movl $0x8, %esi
xorl %edi, %edi
movq %r15, %rdx
callq 0xbe7cb
movq %rax, 0x8(%rbx)
leaq (%rax,%r14), %rdi
incq %rdi
addq %r14, %rax
movq 0x10(%rbx), %rdx
subq %r14, %rdx
movq %rax, %rsi
callq 0xbe8fd
movq 0x8(%rbx), %rax
movb %bpl, (%rax,%r14)
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
movb $0x0, 0x1(%rax,%rcx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_st
st_s* st_s_insert_st( st_s* o, uz_t start, const st_s* string )
{
    if( o == string )
    {
        st_s* string_l = st_s_clone( string );
        st_s_insert_st( o, start, string_l );
        st_s_discard( string_l );
        return o;
    }
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        st_s_copy( o, string );
        return o;
    }
    if( o->space < o->size + string->size + 1 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->size + string->size + 1, &o->space );
    }
    bcore_memmove( o->data + start + string->size, o->data + start, o->size - start );
    bcore_memcpy(  o->data + start, string->sc, string->size );
    o->size += string->size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
cmpq %rdx, %rdi
je 0x10aec7
movq 0x10(%rbx), %rdx
cmpq %r15, %rdx
jb 0x10aef4
movq 0x18(%rbx), %rax
testq %rax, %rax
jne 0x10ae5a
movq %rbx, %rdi
callq 0x10a227
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x10aefd
movq 0x10(%rbx), %rdx
movq 0x10(%r14), %rdi
leaq (%rdx,%rdi), %r8
incq %r8
movq 0x8(%rbx), %rsi
cmpq %r8, %rax
jae 0x10ae8f
leaq 0x18(%rbx), %rcx
movq %rsi, %rdi
movq %rax, %rsi
movq %r8, %rdx
callq 0xbe7d0
movq %rax, %rsi
movq %rax, 0x8(%rbx)
movq 0x10(%r14), %rdi
movq 0x10(%rbx), %rdx
addq %r15, %rsi
addq %rsi, %rdi
subq %r15, %rdx
callq 0xbe8fd
addq 0x8(%rbx), %r15
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %r15, %rdi
callq 0xbe87d
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0x10(%rbx)
movb $0x0, (%rax,%rcx)
jmp 0x10aef4
movq %r14, %rdi
callq 0x10a2da
movq %rax, %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x10ae14
testq %r14, %r14
je 0x10aef4
leaq -0x1a9b(%rip), %rdi     # 0x109451
movq %r14, %rsi
callq 0xbe7ee
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1094fa
jmp 0x10aef4
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_sc
st_s* st_s_insert_sc( st_s* o, uz_t start, sc_t sc )
{
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        st_s_copy_sc( o, sc );
        return o;
    }

    uz_t src_size = bcore_strlen( sc );
    if( o->space < o->size + src_size + 1 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->size + src_size + 1, &o->space );
    }
    bcore_memmove( o->data + start + src_size, o->data + start, o->size - start );
    bcore_memcpy(  o->data + start, sc, src_size );
    o->size += src_size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq %rsi, 0x10(%rdi)
jb 0x10afe3
movq %rdx, %r14
movq %rsi, %r15
cmpq $0x0, 0x18(%rbx)
jne 0x10af6d
movq %rbx, %rdi
callq 0x10a227
cmpq $0x0, 0x18(%rbx)
je 0x10aff2
movq %r14, %rdi
callq 0xbe963
movq %rax, %r12
movq 0x18(%rbx), %rax
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
leaq (%r12,%rdx), %r8
incq %r8
cmpq %r8, %rax
jae 0x10afad
leaq 0x18(%rbx), %rcx
movq %rsi, %rdi
movq %rax, %rsi
movq %r8, %rdx
callq 0xbe7d0
movq %rax, %rsi
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdx
addq %r15, %rsi
movq %r12, %rdi
addq %rsi, %rdi
subq %r15, %rdx
callq 0xbe8fd
addq 0x8(%rbx), %r15
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0xbe87d
movq 0x10(%rbx), %rax
addq %r12, %rax
movq %rax, 0x10(%rbx)
movq 0x8(%rbx), %rcx
movb $0x0, (%rcx,%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r14, %rdi
callq 0xbe963
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x10958f
jmp 0x10afe3
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_fv
st_s* st_s_insert_fv( st_s* o, uz_t start, sc_t format, va_list args )
{
    st_s* st = st_s_create_fv( format, args );
    st_s_insert_st( o, start, st );
    st_s_discard( st );
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %r15
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %rbx
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x109123
movq %rbx, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x10ae14
testq %r14, %r14
je 0x10b060
leaq -0x1c07(%rip), %rdi     # 0x109451
movq %r14, %rsi
callq 0xbe7ee
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_st
st_s* st_s_replace_st( st_s* o, uz_t start, const st_s* string )
{
    if( o == string )
    {
        st_s* string_l = st_s_clone( string );
        st_s_replace_st( o, start, string_l );
        st_s_discard( string_l );
        return o;
    }
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    for( uz_t i = 0; i < string->size; i++ )
    {
        uz_t idx = i + start;
        if( idx == o->size ) break;
        o->data[ idx ] = string->data[ i ];
    }
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
cmpq %rdx, %rdi
je 0x10b180
cmpq %r14, 0x10(%rbx)
jbe 0x10b1ad
cmpq $0x0, 0x18(%rbx)
jne 0x10b151
movq %rbx, %rdi
callq 0x10a227
cmpq $0x0, 0x10(%r15)
je 0x10b1ad
xorl %eax, %eax
leaq (%r14,%rax), %rcx
cmpq 0x10(%rbx), %rcx
je 0x10b1ad
movq 0x8(%r15), %rcx
movb (%rcx,%rax), %cl
movq 0x8(%rbx), %rdx
addq %r14, %rdx
movb %cl, (%rax,%rdx)
incq %rax
cmpq 0x10(%r15), %rax
jb 0x10b15a
jmp 0x10b1ad
movq %r15, %rdi
callq 0x10a2da
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x10b129
testq %r15, %r15
je 0x10b1ad
leaq -0x1d54(%rip), %rdi     # 0x109451
movq %r15, %rsi
callq 0xbe7ee
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_sc
st_s* st_s_replace_sc( st_s* o, uz_t start, sc_t sc )
{
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    for( uz_t i = 0; *sc != 0; i++ )
    {
        uz_t idx = i + start;
        if( idx == o->size ) break;
        o->data[ idx ] = *sc++;
    }
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
cmpq %rsi, 0x10(%rdi)
jbe 0x10b22a
movq %rdx, %rbx
movq %rsi, %r15
cmpq $0x0, 0x18(%r14)
jne 0x10b207
movq %r14, %rdi
callq 0x10a227
movb (%rbx), %al
testb %al, %al
je 0x10b22a
incq %rbx
cmpq 0x10(%r14), %r15
je 0x10b22a
movq 0x8(%r14), %rcx
movb %al, (%rcx,%r15)
movb (%rbx), %al
incq %r15
incq %rbx
testb %al, %al
jne 0x10b210
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_char_sc
st_s* st_s_replace_char_sc( st_s* o, char c, sc_t sc )
{
    uz_t start = 0;
    uz_t sz_sc = bcore_strlen( sc );
    if( o->space == 0 ) st_s_make_strong( o );

    while( ( start = st_s_find_char( o, start, o->size, c ) ) < o->size )
    {
        st_s_remove(    o, start, 1 );
        st_s_insert_sc( o, start, sc );
        start += sz_sc;
    }
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movq %rdx, %rdi
callq 0xbe963
movq %rax, %r15
cmpq $0x0, 0x18(%r14)
jne 0x10b2a6
movq %r14, %rdi
callq 0x10a227
movq 0x10(%r14), %r13
movsbl %bpl, %ebp
movq %r14, %rdi
xorl %esi, %esi
movq %r13, %rdx
movl %ebp, %ecx
callq 0x10a99d
cmpq %r13, %rax
jae 0x10b302
movq %rax, %r12
movl $0x1, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x10ac40
movq %r14, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x10af38
addq %r15, %r12
movq 0x10(%r14), %r13
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movl %ebp, %ecx
callq 0x10a99d
movq %rax, %r12
cmpq %r13, %rax
jb 0x10b2c5
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_sc_sc
st_s* st_s_replace_sc_sc( st_s* o, sc_t match, sc_t replace )
{
    uz_t start = 0;
    uz_t sz_match = bcore_strlen( match );
    uz_t sz_replace = bcore_strlen( replace );
    if( o->space == 0 ) st_s_make_strong( o );
    while( ( start = st_s_find_sc( o, start, o->size, match ) ) < o->size )
    {
        st_s_remove(    o, start, sz_match );
        st_s_insert_sc( o, start, replace );
        start += sz_replace;
    }
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq %rsi, %rdi
callq 0xbe963
movq %rax, %r12
movq %rbx, %rdi
callq 0xbe963
movq %rax, %r13
cmpq $0x0, 0x18(%r14)
jne 0x10b383
movq %r14, %rdi
callq 0x10a227
movq 0x10(%r14), %rdx
movq %r14, %rdi
xorl %esi, %esi
movq %r15, %rcx
callq 0x10a9fc
cmpq 0x10(%r14), %rax
jae 0x10b3d7
movq %rax, %rbp
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x10ac40
movq %r14, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x10af38
addq %r13, %rbp
movq 0x10(%r14), %rdx
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rcx
callq 0x10a9fc
movq %rax, %rbp
cmpq 0x10(%r14), %rax
jb 0x10b39d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_colof
uz_t st_s_colof( const st_s* o, uz_t pos )
{
    uz_t pos_l = pos < o->size ? pos : o->size;
    uz_t count = 0;
    while( pos_l > 0 )
    {
        if( o->data[ pos_l - 1 ] == '\n' ) break;
        count++;
        pos_l--;
    }
    return count + 1;
}

// Assembly:
movq 0x10(%rdi), %rax
cmpq %rsi, %rax
cmovbq %rax, %rsi
testq %rsi, %rsi
je 0x10b535
movq 0x8(%rdi), %rax
leaq (%rsi,%rax), %rcx
decq %rcx
xorl %eax, %eax
cmpb $0xa, (%rcx)
je 0x10b531
incq %rax
decq %rcx
cmpq %rax, %rsi
jne 0x10b51e
movq %rsi, %rax
incq %rax
retq
movl $0x1, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_posof
uz_t st_s_posof( const st_s* o, uz_t line, uz_t col )
{
    if( line == 0 ) return 0;
    uz_t pos = 0;
    uz_t count = 1;
    if( line > 1 )
    {
        for( pos = 0; pos < o->size; pos++ )
        {
            if( o->data[ pos ] == '\n' )
            {
                count++;
                if( count == line ) break;
            }
        }
    }
    return pos + col;
}

// Assembly:
movq %rsi, %rax
testq %rsi, %rsi
je 0x10b581
cmpq $0x1, %rax
je 0x10b579
movq 0x10(%rdi), %rsi
testq %rsi, %rsi
je 0x10b579
movq 0x8(%rdi), %rdi
movl $0x1, %r8d
xorl %ecx, %ecx
cmpb $0xa, (%rdi,%rcx)
jne 0x10b56c
incq %r8
cmpq %rax, %r8
je 0x10b57b
incq %rcx
cmpq %rcx, %rsi
jne 0x10b55e
movq %rsi, %rcx
jmp 0x10b57b
xorl %ecx, %ecx
addq %rdx, %rcx
movq %rcx, %rax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_posofline
uz_t st_s_posofline( const st_s* o, uz_t pos )
{
    uz_t pos_l = ( pos > o->size ) ? o->size : pos;
    while( pos_l > 0 )
    {
        if( o->data[ pos_l - 1 ] == '\n' ) break;
        pos_l--;
    }
    return pos_l;
}

// Assembly:
movq %rsi, %rax
movq 0x10(%rdi), %rcx
cmpq %rsi, %rcx
cmovbq %rcx, %rax
testq %rax, %rax
je 0x10b5a5
movq 0x8(%rdi), %rcx
cmpb $0xa, -0x1(%rcx,%rax)
je 0x10b5a7
decq %rax
jne 0x10b599
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_show_line_context
st_s* st_s_show_line_context( const st_s* o, uz_t pos )
{
    uz_t start = st_s_posofline( o, pos );
    uz_t end = st_s_find_char( o, pos, o->size, '\n' );
    st_s* s = st_s_create();
    st_s_push_st_d( s, st_s_crop( o, start, end ) );
    st_s_push_char( s, '\n' );
    st_s_push_char_n( s, ' ', pos - start );
    st_s_push_char(   s, '^' );
    st_s_push_char( s, '\n' );
    return s;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r15
movq 0x10(%rdi), %rdx
cmpq %rsi, %rdx
movq %rsi, %r14
cmovbq %rdx, %r14
testq %r14, %r14
je 0x10b7e1
movq 0x8(%r15), %rax
cmpb $0xa, -0x1(%rax,%r14)
je 0x10b7e4
decq %r14
jne 0x10b7d4
xorl %r14d, %r14d
movq %r15, %rdi
movq %rbx, %rsi
movl $0xa, %ecx
callq 0x10a99d
movq %rax, %r13
movl $0x20, %esi
xorl %edi, %edi
xorl %edx, %edx
callq 0xbe7cb
movq %rax, %r12
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%r12)
leaq 0x3cef8(%rip), %rax     # 0x148715
movq %rax, 0x8(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r12)
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x10a332
movq %r12, %rdi
movq %rax, %rsi
callq 0x10a641
movq %r12, %rdi
movl $0xa, %esi
callq 0x10a448
subq %r14, %rbx
movq %r12, %rdi
movl $0x20, %esi
movq %rbx, %rdx
callq 0x10a4d1
movq %r12, %rdi
movl $0x5e, %esi
callq 0x10a448
movq %r12, %rdi
movl $0xa, %esi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x10a448