LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/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 0x3853c(%rip), %rax     # 0xc65cc
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 0x8e0e2
leaq 0x3bee5(%rip), %rdi     # 0xc9fac
leaq 0x3beea(%rip), %rsi     # 0xc9fb8
leaq 0x3beee(%rip), %rcx     # 0xc9fc3
pushq $0x2d
popq %rdx
movq %r15, %r8
xorl %eax, %eax
callq 0x60031
incq %r12
leaq 0x18(%rbx), %rdx
movq %r12, 0x18(%rbx)
cmpq $0x7, %r12
ja 0x8e0fe
movq $0x8, (%rdx)
pushq $0x8
popq %r12
xorl %edi, %edi
movq %r12, %rsi
callq 0x60254
movq %rax, 0x8(%rbx)
movq 0x18(%rbx), %rsi
movq %rax, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0xd300
movq 0x8(%rbx), %rdi
callq 0x60379
movq %rax, 0x10(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x3846b(%rip), %rax     # 0xc65cc
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
movq %rsi, %rdi
callq 0x60379
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 0x73692
movq %rax, %r13
testq %rax, %rax
jns 0x8e1c3
leaq 0x3be31(%rip), %rdi     # 0xc9fd9
leaq 0x3be09(%rip), %rsi     # 0xc9fb8
leaq 0x3be0d(%rip), %rcx     # 0xc9fc3
pushq $0x43
popq %rdx
movq %r14, %r8
xorl %eax, %eax
callq 0x60031
incq %r13
cmpq $0x9, %r13
pushq $0x8
popq %rsi
cmovaeq %r13, %rsi
leaq 0x18(%rbx), %rdx
movq %rsi, 0x18(%rbx)
xorl %edi, %edi
callq 0x60254
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 0x73692
movq 0x8(%rbx), %rdi
callq 0x60379
movq %rax, 0x10(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rdi, %r14
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x38280(%rip), %rax     # 0xc65cc
movq %rax, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rsi, %r15
leaq 0x1(%rdx), %rax
cmpq $0x8, %rdx
pushq $0x8
popq %rsi
cmovaeq %rax, %rsi
leaq 0x18(%rdi), %rdx
movq %rsi, 0x18(%rdi)
xorl %edi, %edi
callq 0x60254
movq %rax, 0x8(%r14)
movq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x60300
movq %rbx, 0x10(%r14)
movq 0x8(%r14), %rax
movb $0x0, (%rax,%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x3821e(%rip), %rax     # 0xc65cc
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
testq %rsi, %rsi
je 0x8e3da
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_O2/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 0x8e4cf
leaq 0x18(%r14), %r15
testq %rsi, %rsi
je 0x8e4ae
movq 0x8(%r14), %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0x60259
leaq 0x1(%rbx), %rax
cmpq $0x8, %rbx
pushq $0x8
popq %rsi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%r14)
xorl %edi, %edi
movq %r15, %rdx
callq 0x60254
movq %rax, 0x8(%r14)
xorl %eax, %eax
cmpq %rax, %rbx
je 0x8e4e3
movq 0x8(%r14), %rcx
movb %bpl, (%rcx,%rax)
incq %rax
jmp 0x8e4d1
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_O2/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 0x8e587
movq %rsi, %r14
movq 0x18(%rbx), %rsi
movq 0x10(%r14), %rdx
cmpq %rdx, %rsi
jbe 0x8e52b
movq 0x8(%rbx), %rdi
jmp 0x8e56e
leaq 0x18(%rbx), %r15
testq %rsi, %rsi
je 0x8e546
movq 0x8(%rbx), %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0x60259
movq 0x10(%r14), %rdx
leaq 0x1(%rdx), %rax
cmpq $0x8, %rdx
pushq $0x8
popq %rsi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%rbx)
xorl %edi, %edi
movq %r15, %rdx
callq 0x60254
movq %rax, %rdi
movq %rax, 0x8(%rbx)
movq 0x10(%r14), %rdx
movq 0x8(%r14), %rsi
callq 0x60300
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_O2/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 0x8e5b0
movq 0x8(%r14), %rdi
jmp 0x8e5eb
leaq 0x18(%r14), %r12
testq %rsi, %rsi
je 0x8e5c7
movq 0x8(%r14), %rdi
xorl %edx, %edx
movq %r12, %rcx
callq 0x60259
leaq 0x1(%rbx), %rax
cmpq $0x8, %rbx
pushq $0x8
popq %rsi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%r14)
xorl %edi, %edi
movq %r12, %rdx
callq 0x60254
movq %rax, %rdi
movq %rax, 0x8(%r14)
movq %r15, %rsi
movq %rbx, %rdx
callq 0x60300
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_O2/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 0x60379
movq %rax, %r15
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x8e6bb
leaq 0x18(%rbx), %rcx
movq 0x8(%rbx), %rdi
xorl %edx, %edx
callq 0x60259
movq %r14, 0x8(%rbx)
movq %r15, 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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, %rbx
movq %rdi, %r14
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%rdi)
leaq 0x37a8a(%rip), %rax     # 0xc65cc
movq %rax, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
callq 0x8e4fd
movq %rbx, %rdi
callq 0x8e45c
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8ee51
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)
pushq $0x20
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
callq 0x60254
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 0x8e068
leaq -0xbe(%rip), %rsi       # 0x8edd4
movq %rbx, %rdi
movq %r15, %rdx
callq 0x718cb
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq $0x20
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
callq 0x60254
movq %rax, %r15
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
movq %rax, (%r15)
leaq 0x376b1(%rip), %rax     # 0xc65cc
movq %rax, 0x8(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x8e83e
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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:
cmpq $0x0, 0x10(%rdi)
je 0x8ef6a
cmpq $0x0, 0x18(%rdi)
je 0x8ef6b
retq
movq 0x8(%rdi), %rsi
andq $0x0, 0x10(%rdi)
jmp 0x8e611
// File: /workspace/github_c_makefile_star2_O2/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 0x8efe3
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x8ef5c
leaq 0x18(%rbx), %rcx
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x8efbc
cmpq %r14, %rsi
jae 0x8efdc
leaq (%rsi,%rsi), %rax
cmpq %r14, %rax
cmovaq %rax, %r14
movq 0x8(%rbx), %rdi
movq %r14, %rdx
callq 0x60259
movq %rax, 0x8(%rbx)
jmp 0x8efdc
cmpq $0x9, %r14
pushq $0x8
popq %rdx
cmovaeq %r14, %rdx
xorl %edi, %edi
xorl %esi, %esi
callq 0x60259
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_O2/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, %r14
movq %rsi, %r15
movq %rdi, %r12
callq 0x8eb65
movq %rax, %rbx
movq 0x10(%r12), %rax
cmpq %r15, %rax
setbe %cl
cmpq %r15, %r14
setbe %dl
orb %cl, %dl
jne 0x8f092
cmpq %r14, %rax
cmovbq %rax, %r14
subq %r15, %r14
leaq 0x1(%r14), %rax
movq %rbx, %rdx
addq $0x18, %rdx
cmpq $0x9, %rax
pushq $0x8
popq %rsi
cmovaeq %rax, %rsi
movq %rsi, 0x18(%rbx)
xorl %edi, %edi
callq 0x60254
movq %rax, 0x8(%rbx)
movq %r14, 0x10(%rbx)
addq 0x8(%r12), %r15
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x60300
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
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_O2/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 0x8f115
movq %rbx, %rdi
callq 0x8ef5c
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x8f137
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
addq $0x2, %rcx
cmpq %rcx, %rsi
jae 0x8f150
leaq (%rsi,%rsi), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0x60259
jmp 0x8f14c
movq $0x8, 0x18(%rbx)
pushq $0x8
popq %rsi
xorl %edi, %edi
movq %r14, %rdx
callq 0x60254
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_O2/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 0x8ef79
movq 0x8(%r14), %rdi
addq 0x10(%r14), %rdi
movzbl %bpl, %esi
movq %rbx, %rdx
callq 0x602d4
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_O2/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 0x8f1f4
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
jne 0x8f1dd
movq %rbx, %rdi
callq 0x8ef5c
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_O2/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 0x8f239
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
jne 0x8f21d
movq %rbx, %rdi
callq 0x8ef5c
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_O2/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 0x8f2dc
movq %rsi, %r14
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x8f2ab
movq 0x18(%rbx), %rsi
movq 0x10(%r14), %rdx
leaq (%rdi,%rdx), %rax
incq %rax
cmpq %rax, %rsi
jae 0x8f2b8
leaq 0x18(%rbx), %r15
testq %rsi, %rsi
jne 0x8f28e
movq %rbx, %rdi
callq 0x8ef5c
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 0x60259
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdi
movq 0x10(%r14), %rdx
jmp 0x8f2bc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8e4fd
jmp 0x8f2dc
movq 0x8(%rbx), %rax
addq %rax, %rdi
movq 0x8(%r14), %rsi
callq 0x60300
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_O2/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 0x8f363
leaq 0x18(%r14), %r13
testq %rsi, %rsi
jne 0x8f34a
leaq 0x1(%rbx), %r12
movq %r14, %rdi
callq 0x8ef5c
movq 0x18(%r14), %rsi
addq 0x10(%r14), %r12
movq 0x8(%r14), %rdi
movq %r12, %rdx
movq %r13, %rcx
callq 0x60259
movq %rax, 0x8(%r14)
movq 0x10(%r14), %rdi
jmp 0x8f367
movq 0x8(%r14), %rax
addq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x60300
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_O2/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 0x8e068
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8f23a
movq %r14, %rdi
callq 0x8e45c
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8f617
cmpq %rsi, %rax
cmovbq %rax, %rsi
movq %rsi, %r8
leaq -0x1(%r8), %rax
cmpq %rsi, %rax
jae 0x8f63c
cmpq %rdx, %rax
jb 0x8f63c
movq 0x8(%rdi), %r9
cmpb %cl, -0x1(%r9,%r8)
movq %rax, %r8
jne 0x8f5fa
retq
cmpq %rdx, %rax
cmovbq %rax, %rdx
cmpq %rdx, %rsi
movq %rdx, %rax
cmovaq %rsi, %rax
cmpq %rdx, %rsi
jae 0x8f643
movq 0x8(%rdi), %r8
cmpb %cl, (%r8,%rsi)
je 0x8f640
incq %rsi
jmp 0x8f628
movq %rsi, %rax
retq
movq %rsi, %rax
cmpq %rdx, %rax
cmovbq %rax, %rdx
movq %rdx, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8f6f3
movq %rcx, %r15
cmpb $0x0, (%rcx)
je 0x8f6f3
movq %rdx, %r14
movq %rdi, %r12
movq 0x10(%rdi), %rax
cmpq %rbx, %rdx
jae 0x8f6b6
cmpq %rbx, %rax
cmovbq %rax, %rbx
leaq -0x1(%rbx), %r13
cmpq %rbx, %r13
jae 0x8f6f3
cmpq %r14, %r13
jb 0x8f6f3
movq 0x8(%r12), %rsi
movb (%rsi,%r13), %al
cmpb (%r15), %al
jne 0x8f6b1
addq %r13, %rsi
movq %r15, %rdi
callq 0x6036f
cmpl $0x1, %eax
jbe 0x8f6f0
decq %r13
jmp 0x8f689
cmpq %r14, %rax
cmovbq %rax, %r14
cmpq %r14, %rbx
jae 0x8f6e4
movq 0x8(%r12), %rsi
movb (%rsi,%rbx), %al
cmpb (%r15), %al
jne 0x8f6df
addq %rbx, %rsi
movq %r15, %rdi
callq 0x6036f
cmpl $0x2, %eax
jb 0x8f6e4
incq %rbx
jmp 0x8f6bd
cmpq %r14, %rbx
cmovbq %rbx, %r14
movq %r14, %rax
jmp 0x8f6f6
movq %r13, %rbx
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8f786
movq %rcx, %r15
cmpb $0x0, (%rcx)
je 0x8f786
movq %rdx, %r14
movq %rdi, %r12
movq 0x10(%rdi), %rax
cmpq %rbx, %rdx
jae 0x8f796
cmpq %rbx, %rax
cmovbq %rax, %rbx
movq %rbx, %rcx
leaq -0x1(%rcx), %r13
cmpq %rbx, %r13
jae 0x8f786
cmpq %r14, %r13
jb 0x8f786
movq 0x8(%r12), %rax
movsbl -0x1(%rax,%rcx), %edi
movq %r15, %rsi
callq 0x6037e
movq %r13, %rcx
testb %al, %al
je 0x8f75d
jmp 0x8f789
movq %rbx, %r13
movq %r13, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
cmpq %r14, %rax
cmovbq %rax, %r14
cmpq %r14, %rbx
jae 0x8f7bc
movq 0x8(%r12), %rax
movsbl (%rax,%rbx), %edi
movq %r15, %rsi
callq 0x6037e
testb %al, %al
jne 0x8f7bc
incq %rbx
jmp 0x8f79d
cmpq %r14, %rbx
cmovbq %rbx, %r14
movq %r14, %rax
jmp 0x8f78c
// File: /workspace/github_c_makefile_star2_O2/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 0x8f8cc
movq %rsi, %r14
cmpq $0x0, 0x18(%rbx)
jne 0x8f892
movq %rbx, %rdi
callq 0x8ef5c
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 0x60351
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_O2/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 0x8f95a
movq %rcx, %rbx
cmpb $0x0, (%rcx)
je 0x8f95a
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r13
movq 0x10(%rdi), %rax
cmpq %rdx, %rax
cmovbq %rax, %r14
xorl %r15d, %r15d
cmpq %r14, %r12
jae 0x8f95d
movq 0x8(%r13), %rsi
movb (%rsi,%r12), %al
cmpb (%rbx), %al
jne 0x8f955
addq %r12, %rsi
movq %rbx, %rdi
callq 0x6036f
cmpl $0x2, %eax
adcq $0x0, %r15
incq %r12
jmp 0x8f932
xorl %r15d, %r15d
movq %r15, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8fa1e
movl %edx, %ebp
movq %rsi, %r14
leaq 0x18(%rbx), %r15
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
jne 0x8f9b1
movq %rbx, %rdi
callq 0x8ef5c
movq 0x18(%rbx), %rsi
testq %rsi, %rsi
je 0x8f9cf
movq 0x10(%rbx), %rcx
addq $0x2, %rcx
movq 0x8(%rbx), %rax
cmpq %rcx, %rsi
jae 0x8f9e8
leaq (%rsi,%rsi), %rdx
movq %rax, %rdi
movq %r15, %rcx
callq 0x60259
jmp 0x8f9e4
movq $0x8, 0x18(%rbx)
pushq $0x8
popq %rsi
xorl %edi, %edi
movq %r15, %rdx
callq 0x60254
movq %rax, 0x8(%rbx)
leaq (%rax,%r14), %rdi
incq %rdi
addq %r14, %rax
movq 0x10(%rbx), %rdx
subq %r14, %rdx
movq %rax, %rsi
callq 0x60351
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_O2/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 0x8fadf
movq 0x10(%rbx), %rdx
cmpq %r15, %rdx
jb 0x8fb00
movq 0x18(%rbx), %rax
testq %rax, %rax
jne 0x8fa72
movq %rbx, %rdi
callq 0x8ef5c
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x8fb09
movq 0x10(%rbx), %rdx
movq 0x10(%r14), %rdi
leaq (%rdx,%rdi), %r8
incq %r8
movq 0x8(%rbx), %rsi
cmpq %r8, %rax
jae 0x8faa7
leaq 0x18(%rbx), %rcx
movq %rsi, %rdi
movq %rax, %rsi
movq %r8, %rdx
callq 0x60259
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 0x60351
addq 0x8(%rbx), %r15
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %r15, %rdi
callq 0x60300
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0x10(%rbx)
movb $0x0, (%rax,%rcx)
jmp 0x8fb00
movq %r14, %rdi
callq 0x8efe4
movq %rax, %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x8fa2c
movq %r14, %rdi
callq 0x8edd4
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8e4fd
jmp 0x8fb00
// File: /workspace/github_c_makefile_star2_O2/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 0x8fbe3
movq %rdx, %r14
movq %rsi, %r15
cmpq $0x0, 0x18(%rbx)
jne 0x8fb6d
movq %rbx, %rdi
callq 0x8ef5c
cmpq $0x0, 0x18(%rbx)
je 0x8fbf2
movq %r14, %rdi
callq 0x60379
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 0x8fbad
leaq 0x18(%rbx), %rcx
movq %rsi, %rdi
movq %rax, %rsi
movq %r8, %rdx
callq 0x60259
movq %rax, %rsi
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdx
addq %r15, %rsi
movq %r12, %rdi
addq %rsi, %rdi
subq %r15, %rdx
callq 0x60351
addq 0x8(%rbx), %r15
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x60300
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 %rbx, %rdi
movq %r14, %rsi
callq 0x8e611
jmp 0x8fbe3
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq %rdx, %rdi
movq %rcx, %rsi
callq 0x8ec4c
movq %rax, %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x8fa2c
movq %r15, %rdi
callq 0x8edd4
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8fd40
cmpq %r14, 0x10(%rbx)
jbe 0x8fd61
cmpq $0x0, 0x18(%rbx)
jne 0x8fd1b
movq %rbx, %rdi
callq 0x8ef5c
xorl %eax, %eax
cmpq 0x10(%r15), %rax
jae 0x8fd61
cmpq 0x10(%rbx), %r14
je 0x8fd61
movq 0x8(%r15), %rcx
movb (%rcx,%rax), %cl
movq 0x8(%rbx), %rdx
movb %cl, (%rdx,%r14)
incq %rax
incq %r14
jmp 0x8fd1d
movq %r15, %rdi
callq 0x8efe4
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x8fcf3
movq %r15, %rdi
callq 0x8edd4
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x8fdcb
movq %rdx, %rbx
movq %rsi, %r15
cmpq $0x0, 0x18(%r14)
jne 0x8fdaf
movq %r14, %rdi
callq 0x8ef5c
movb (%rbx), %al
testb %al, %al
je 0x8fdcb
cmpq 0x10(%r14), %r15
je 0x8fdcb
incq %rbx
movq 0x8(%r14), %rcx
movb %al, (%rcx,%r15)
incq %r15
jmp 0x8fdaf
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x60379
movq %rax, %r15
cmpq $0x0, 0x18(%r14)
jne 0x8fe3d
movq %r14, %rdi
callq 0x8ef5c
xorl %r13d, %r13d
movsbl %bpl, %ebp
movq 0x10(%r14), %r12
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movl %ebp, %ecx
callq 0x8f5e7
cmpq %r12, %rax
jae 0x8fe81
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
pushq $0x1
popq %rdx
callq 0x8f865
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x8fb38
addq %r15, %r13
jmp 0x8fe44
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_O2/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 0x60379
movq %rax, %r12
movq %rbx, %rdi
callq 0x60379
movq %rax, %r13
cmpq $0x0, 0x18(%r14)
jne 0x8fefb
movq %r14, %rdi
callq 0x8ef5c
xorl %ebp, %ebp
movq 0x10(%r14), %rdx
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rcx
callq 0x8f64e
cmpq 0x10(%r14), %rax
jae 0x8ff39
movq %rax, %rbp
movq %r14, %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0x8f865
movq %r14, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x8fb38
addq %r13, %rbp
jmp 0x8fefd
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_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_st_d_st_d
st_s* st_s_replace_st_d_st_d( st_s* o, st_s* match, st_s* replace )
{
    st_s_replace_st_st( o, match, replace );
    st_s_discard( match );
    st_s_discard( replace );
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
callq 0x8ff4b
movq %r14, %rdi
callq 0x8edd4
movq %rbx, %rdi
callq 0x8edd4
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rsi, %rax
movq 0x10(%rdi), %rcx
cmpq %rsi, %rcx
cmovbq %rcx, %rax
xorl %ecx, %ecx
movq %rax, %rsi
movq %rax, %rdx
subq $0x1, %rdx
jb 0x9003a
movq 0x8(%rdi), %r8
cmpb $0xa, -0x1(%r8,%rsi)
je 0x90037
incq %rcx
movq %rdx, %rsi
jmp 0x9001d
movq %rcx, %rax
incq %rax
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x90080
cmpq $0x1, %rax
jne 0x90050
xorl %ecx, %ecx
jmp 0x9007a
movq 0x10(%rdi), %rcx
pushq $0x1
popq %r8
xorl %esi, %esi
cmpq %rsi, %rcx
je 0x9007a
movq 0x8(%rdi), %r9
cmpb $0xa, (%r9,%rsi)
jne 0x90072
incq %r8
cmpq %rax, %r8
je 0x90077
incq %rsi
jmp 0x9005a
movq %rsi, %rcx
addq %rdx, %rcx
movq %rcx, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x10(%rdi), %rax
cmpq %rsi, %rax
cmovbq %rax, %rsi
movq %rsi, %rax
subq $0x1, %rsi
jb 0x900a0
movq 0x8(%rdi), %rcx
cmpb $0xa, -0x1(%rcx,%rax)
jne 0x9008c
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r13
callq 0x90081
movq %rax, %r15
movq 0x10(%r13), %rdx
pushq $0xa
popq %rbx
movq %r13, %rdi
movq %r14, %rsi
movl %ebx, %ecx
callq 0x8f5e7
movq %rax, %rbp
callq 0x8eb65
movq %rax, %r12
movq %r13, %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x8f012
movq %r12, %rdi
movq %rax, %rsi
callq 0x8f2e5
movq %r12, %rdi
movl %ebx, %esi
callq 0x8f0ee
subq %r15, %r14
pushq $0x20
popq %rsi
movq %r12, %rdi
movq %r14, %rdx
callq 0x8f175
pushq $0x5e
popq %rsi
movq %r12, %rdi
callq 0x8f0ee
movq %r12, %rdi
movl %ebx, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8f0ee
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_errorf
static uz_t st_s_parse_errorf( const st_s* o, fp_st_s_parse_err errfp, vd_t arg, sz_t idx, sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    st_s* msg = st_s_createvf( format, args );
    errfp( arg, o, idx, msg );
    st_s_discard( msg );
    va_end( args );
    return idx;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd0, %rsp
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
leaq 0x20(%rsp), %rcx
movq %r9, 0x28(%rcx)
testb %al, %al
je 0x91a56
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)
movq %rsp, %rsi
movq %rcx, 0x10(%rsi)
leaq 0x100(%rsp), %rax
movq %rax, 0x8(%rsi)
movabsq $0x3000000028, %rax     # imm = 0x3000000028
movq %rax, (%rsi)
movq %r8, %rdi
callq 0x8eb93
movq %rax, %r13
movq %r14, %rdi
movq %r12, %rsi
movq %rbx, %rdx
movq %rax, %rcx
callq *%r15
movq %r13, %rdi
callq 0x8edd4
movq %rbx, %rax
addq $0xd0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_em_fv
er_t st_s_parse_em_fv( const st_s* o, uz_t start, uz_t end, uz_t* out_idx, sc_t format, va_list args )
{
    er_t err = 0;
    uz_t idx = st_s_parse_efv( o, start, end, st_s_parse_em_callback, &err, format, args );
    if( out_idx ) *out_idx = idx;
    return err;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %r8, %rax
movq %rcx, %rbx
leaq 0x8(%rsp), %r8
andq $0x0, (%r8)
movq %r9, (%rsp)
leaq 0x1b(%rip), %rcx        # 0x91ec7
movq %rax, %r9
callq 0x9039a
testq %rbx, %rbx
je 0x91ebc
movq %rax, (%rbx)
movq 0x8(%rsp), %rax
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_em_callback
static uz_t st_s_parse_em_callback( vd_t arg, const st_s* o, uz_t idx, st_s* msg )
{
    ASSERT( arg );
    er_t id = TYPEOF_parse_error;
    ( *( er_t* )arg ) = id;
    bcore_error_push_sc( id, msg->sc );
    return idx;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rcx, %r14
movq %rdx, %rbx
movq %rdi, %r15
testq %rdi, %rdi
jne 0x91f03
leaq 0x18766(%rip), %rdi     # 0xaa647
leaq 0x3955b(%rip), %rsi     # 0xcb443
leaq 0x385e1(%rip), %rdx     # 0xca4d0
leaq 0x380c2(%rip), %rcx     # 0xc9fb8
movl $0x88f, %r8d            # imm = 0x88F
xorl %eax, %eax
callq 0x5ffac
movabsq $0x690af8765815ec4d, %rdi # imm = 0x690AF8765815EC4D
movq %rdi, (%r15)
movq 0x8(%r14), %rsi
callq 0x60533
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: c_char
static char c_char( sc_t o, uz_t on, sc_t f, uz_t* fi )
{
    uz_t i = *fi;
    char c = 3;  // ETX (end of text) when index is out of range
    if( f[ i ] == '\'' )
    {
        c = f[ ++i ];
        if( !f[ i ] || f[ ++i ] != '\'' ) ERR( "Format '%s' at position %zu: '<char>' expected.", f, i - 2 );
        i++;
    }
    else if( f[ i ] == '[' )
    {
        uz_t i0 = i;
        i++;
        int idx = atoi( f + i );
        if( idx >= 0 && idx < on ) c = o[ idx ];
        while( f[ i ] && f[ i ] != ']' ) i++;
        if( !f[ i ] || f[ i ] != ']' ) ERR( "Format '%s' at position %zu: [<index>] expected.", f, i0 );
        i++;
    }
    else
    {
        ERR( "Format '%s' at position %zu: '<char>' or [<index>] expected.", f, i );
    }
    *fi = i;
    return c;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r14
movq (%rcx), %r15
movzbl (%rdx,%r15), %eax
cmpl $0x5b, %eax
je 0x9307b
cmpl $0x27, %eax
jne 0x930bb
movb 0x1(%r14,%r15), %bpl
testb %bpl, %bpl
je 0x93113
leaq 0x2(%r15), %r12
cmpb $0x27, 0x2(%r14,%r15)
jne 0x93119
jmp 0x93142
movq %rsi, %r13
movq %rdi, %r12
leaq (%r15,%r14), %rdi
incq %rdi
callq 0xd2c0
movb $0x3, %bpl
testl %eax, %eax
js 0x9309f
movl %eax, %eax
cmpq %r13, %rax
jae 0x9309f
movb (%r12,%rax), %bpl
leaq 0x2(%r15), %r12
movzbl -0x1(%r14,%r12), %eax
testl %eax, %eax
je 0x930ea
cmpl $0x5d, %eax
je 0x93145
incq %r12
jmp 0x930a3
leaq 0x37369(%rip), %rdi     # 0xca42b
leaq 0x36eef(%rip), %rsi     # 0xc9fb8
leaq 0x373c3(%rip), %rcx     # 0xca493
movl $0x543, %edx            # imm = 0x543
movq %r14, %r8
movq %r15, %r9
xorl %eax, %eax
callq 0x60031
movb $0x3, %bpl
movq %r15, %r12
jmp 0x93145
leaq 0x3733a(%rip), %rdi     # 0xca42b
leaq 0x36ec0(%rip), %rsi     # 0xc9fb8
leaq 0x37363(%rip), %rcx     # 0xca462
movl $0x53e, %edx            # imm = 0x53E
movq %r14, %r8
movq %r15, %r9
xorl %eax, %eax
callq 0x60031
jmp 0x93145
incq %r15
movq %r15, %r12
leaq -0x2(%r12), %r9
leaq 0x37306(%rip), %rdi     # 0xca42b
leaq 0x36e8c(%rip), %rsi     # 0xc9fb8
leaq 0x372ff(%rip), %rcx     # 0xca432
movl $0x534, %edx            # imm = 0x534
movq %r14, %r8
xorl %eax, %eax
callq 0x60031
incq %r12
movq %r12, (%rbx)
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq