LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: file_s_create_self
static bcore_self_s* file_s_create_self( void )
{
    sc_t def =
    "bcore_sink_file_s = bcore_sink"
    "{ "
      "aware_t _; "
      "st_s => name; "
      "private vd_t handle; "
    "}";

    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_sink_file_s );
    bcore_self_s_push_ns_amoeba( self, file_init_a, "init" );
    bcore_self_s_push_ns_amoeba( self, file_down_a, "down" );
    bcore_self_s_push_ns_amoeba( self, file_copy_a, "copy" );
    bcore_self_s_push_ns_func( self, ( fp_t )file_interpret_body_a,   "ap_t", "interpret_body"        );
    bcore_self_s_push_ns_func( self, ( fp_t )file_flow_snk,           "bcore_fp_flow_snk", "flow_snk" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_file_s_flush, "bcore_sink_fp_flush", "flush"  );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x87b5c(%rip), %rax     # 0x151b0b
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x18, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x86b(%rip), %rsi       # 0xca840
leaq 0x82bef(%rip), %rdx     # 0x14cbcb
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x894(%rip), %rsi       # 0xca880
leaq 0x74d65(%rip), %rdx     # 0x13ed58
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x8bd(%rip), %rsi       # 0xca8c0
leaq 0x7c5a2(%rip), %rdx     # 0x1465ac
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x8e6(%rip), %rsi       # 0xca900
leaq 0x83d64(%rip), %rdx     # 0x14dd85
leaq 0x87b33(%rip), %rcx     # 0x151b5b
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0xb98(%rip), %rsi      # 0xc94a0
leaq 0x87984(%rip), %rdx     # 0x1519c3
leaq 0x87986(%rip), %rcx     # 0x1519cc
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0xc66(%rip), %rsi      # 0xc93f0
leaq 0x87992(%rip), %rdx     # 0x1519ef
leaq 0x77e47(%rip), %rcx     # 0x141eab
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: chain_s_create_self
static bcore_self_s* chain_s_create_self( void )
{
    sc_t def =
    "bcore_sink_chain_s = bcore_sink"
    "{ "
      "aware_t _; "
      "aware => [] data; "
    "}";

    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_sink_chain_s );
    bcore_self_s_push_ns_amoeba( self, chain_init_a, "init" );
    bcore_self_s_push_ns_amoeba( self, chain_down_a, "down" );
    bcore_self_s_push_ns_amoeba( self, chain_copy_a, "copy" );
    bcore_self_s_push_ns_func( self, ( fp_t )chain_interpret_body_a,   "ap_t", "interpret_body" );
    bcore_self_s_push_ns_func( self, ( fp_t )chain_flow_snk,           "bcore_fp_flow_snk",   "flow_snk" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_chain_s_set_consumer, "bcore_sink_fp_set_consumer", "set_consumer" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_chain_s_flush, "bcore_sink_fp_flush", "flush"    );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x87adb(%rip), %rax     # 0x151b6a
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x88b(%rip), %rsi       # 0xca940
leaq 0x82b0f(%rip), %rdx     # 0x14cbcb
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x8b4(%rip), %rsi       # 0xca980
leaq 0x74c85(%rip), %rdx     # 0x13ed58
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x8dd(%rip), %rsi       # 0xca9c0
leaq 0x7c4c2(%rip), %rdx     # 0x1465ac
callq 0xa59c0
movq -0x10(%rbp), %rdi
leaq 0x946(%rip), %rsi       # 0xcaa40
leaq 0x83c84(%rip), %rdx     # 0x14dd85
leaq 0x87a53(%rip), %rcx     # 0x151b5b
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1488(%rip), %rsi     # 0xc8c90
leaq 0x878a4(%rip), %rdx     # 0x1519c3
leaq 0x878a6(%rip), %rcx     # 0x1519cc
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1116(%rip), %rsi     # 0xc9020
leaq 0x879b3(%rip), %rdx     # 0x151af0
leaq 0x879ba(%rip), %rcx     # 0x151afe
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1574(%rip), %rsi     # 0xc8be0
leaq 0x87894(%rip), %rdx     # 0x1519ef
leaq 0x77d49(%rip), %rcx     # 0x141eab
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: chain_interpret_body_a
static void chain_interpret_body_a( vd_t nc )
{
    struct { ap_t a; vc_t p; vc_t inter; vd_t sink; tp_t type; vd_t obj; } * nc_l = nc;
    nc_l->a( nc ); // default
    bcore_sink_chain_s* o = nc_l->obj;
    for( uz_t i = 1; i < o->size; i++ ) bcore_sink_a_set_consumer( o->data[ i ], o->data[ i - 1 ] );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq $0x1, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xcaaba
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
callq 0xc8b60
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xcaa75
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_chain_s_set_supplier
void bcore_source_chain_s_set_supplier( bcore_source_chain_s* o, vd_t supplier )
{
    if( o->size == 0 ) ERR( "chain is empty" );
    bcore_source_a_set_supplier( o->data[ 0 ], supplier );
    for( uz_t i = 1; i < o->size; i++ )
    {
        // resetting the supplier also resets of the internal state of each element
        bcore_source_a_set_supplier( o->data[ i ], o->data[ i - 1 ] );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xcb48c
leaq 0x86927(%rip), %rdi     # 0x151d99
leaq 0x86942(%rip), %rsi     # 0x151dbb
movl $0x99, %edx
leaq 0x86426(%rip), %rcx     # 0x1518ab
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xcb340
movq $0x1, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xcb4ed
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
callq 0xcb340
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xcb4a8
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_chain_s_get_index
s3_t bcore_source_chain_s_get_index( const bcore_source_chain_s* o )
{
    s3_t index = 0;
    for( uz_t i = 0; i < o->size; i++ )
    {
        index += bcore_source_a_get_index( o->data[ i ] );
    }
    return index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xcb655
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xcb660
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xcb61c
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_chain_s_set_index
void bcore_source_chain_s_set_index( bcore_source_chain_s* o, s3_t index )
{
    if( o->size == 0 ) ERR( "Chain is empty." );
    s3_t cur_index = bcore_source_chain_s_get_index( o );
    if( index == cur_index ) return;
    bcore_source_a_set_index( o->data[ 0 ], index );
    for( uz_t i = 1; i < o->size; i++ )
    {
        // resetting the supplier also resets of the internal state of each element
        bcore_source_a_set_supplier( o->data[ i ], o->data[ i - 1 ] );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xcb6cc
leaq 0x86719(%rip), %rdi     # 0x151dcb
leaq 0x86702(%rip), %rsi     # 0x151dbb
movl $0xc2, %edx
leaq 0x86725(%rip), %rcx     # 0x151dea
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rdi
callq 0xcb600
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0xcb6e5
jmp 0xcb746
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xcb750
movq $0x1, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xcb746
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
callq 0xcb340
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xcb701
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_buffer_s_setup_from_data
bcore_source_buffer_s* bcore_source_buffer_s_setup_from_data( bcore_source_buffer_s* o, vc_t data, uz_t size )
{
    o->data = bcore_b_alloc( o->data, size, &o->space );
    bcore_memcpy( o->data, data, size );
    o->size = size;
    o->index = 0;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x8(%rbp), %rdx
addq $0x8, %rdx
addq $0x10, %rdx
callq 0x9d2c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x9d5e0
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_string_s_init
void bcore_source_string_s_init( bcore_source_string_s* o )
{
    bcore_memzero( o, sizeof( *o ) );
    o->_ = TYPEOF_bcore_source_string_s;
    o->prefetch_size = 16384;
    o->refill_limit  = 4096;

    //o->refill_limit  = 8000;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x38, %esi
callq 0x9d4f0
movq -0x8(%rbp), %rax
movabsq $-0x7a841657f0cf5c40, %rcx # imm = 0x857BE9A80F30A3C0
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq $0x4000, 0x28(%rax)     # imm = 0x4000
movq -0x8(%rbp), %rax
movq $0x1000, 0x20(%rax)     # imm = 0x1000
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_string_s_reset
bcore_source_string_s* bcore_source_string_s_reset( bcore_source_string_s* o )
{
    st_s_detach( &o->string );
    o->index = 0;
    o->ext_supplier = NULL;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0xcbf20
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_string_s_eos
bl_t bcore_source_string_s_eos( const bcore_source_string_s* o )
{
    if( !o->string )
    {
        if( o->ext_supplier ) return bcore_source_a_eos( o->ext_supplier );
        return true;
    }

    if( o->index < o->string->size ) return false;
    if( o->ext_supplier ) return bcore_source_a_eos( o->ext_supplier );

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xcc54c
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xcc546
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0xcb550
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xcc58b
movb $0x1, -0x1(%rbp)
jmp 0xcc58b
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jae 0xcc568
movb $0x0, -0x1(%rbp)
jmp 0xcc58b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xcc587
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0xcb550
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xcc58b
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_file_s_open
void bcore_source_file_s_open( bcore_source_file_s* o )
{
    if( !o->name ) ERR( "No file name specified." );
    if( o->handle ) bcore_source_file_s_close( o );
    o->handle = fopen( o->name->sc, "rb" );
    if( !o->handle )
    {
        st_s* msg = st_s_createf( "Error opening file %s:\n", o->name->sc );
        perror( msg->sc );
        st_s_discard( msg );
        bcore_abort();
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xcc928
leaq 0x855a1(%rip), %rdi     # 0x151eaf
leaq 0x854a6(%rip), %rsi     # 0x151dbb
movl $0x445, %edx            # imm = 0x445
leaq 0x84fb0(%rip), %rcx     # 0x1518d1
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xcc93c
movq -0x8(%rbp), %rdi
callq 0xcc9b0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x85579(%rip), %rsi     # 0x151ec8
callq 0x4160
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xcc9a5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
leaq 0x84f6c(%rip), %rdi     # 0x1518e9
movb $0x0, %al
callq 0xff350
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x43d0
movq -0x10(%rbp), %rdi
callq 0xff600
movb $0x0, %al
callq 0x9c670
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: file_flow_src
static uz_t file_flow_src( bcore_source_file_s* o, vd_t data, uz_t size )
{
    if( !o->handle ) bcore_source_file_s_open( o );
    uz_t rsize = fread( data, 1, size, o->handle );
    if( rsize != size )
    {
        if( ferror( o->handle ) )
        {
            st_s* msg = st_s_createf( "Error reading file %s:\n", o->name->sc );
            perror( msg->sc );
            st_s_discard( msg );
        }
    }
    return rsize;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xcca88
movq -0x8(%rbp), %rdi
callq 0xcc8f0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movl $0x1, %esi
callq 0x42d0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0xccaf8
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4220
cmpl $0x0, %eax
je 0xccaf6
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
leaq 0x85669(%rip), %rdi     # 0x15213e
movb $0x0, %al
callq 0xff350
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x43d0
movq -0x28(%rbp), %rdi
callq 0xff600
jmp 0xccaf8
movq -0x20(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_file_s_eos
bl_t bcore_source_file_s_eos( const bcore_source_file_s* o )
{
    if( !o->handle )
    {
        if( o->name ) return false;
        return true;
    }

    return feof( o->handle );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xccb3e
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xccb38
movb $0x0, -0x1(%rbp)
jmp 0xccb56
movb $0x1, -0x1(%rbp)
jmp 0xccb56
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4330
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_get_data
uz_t bcore_source_stdin_s_get_data( bcore_source_stdin_s* o, vd_t data, uz_t size )
{
    for( uz_t i = 0; i < size; i++ )
    {
        if( o->buf_index < o->buf.size )
        {
            ( ( u0_t* )data )[ i ] = o->buf.data[ o->buf_index++ ];
        }
        else
        {
            s2_t c = fgetc( stdin );
            if( feof( stdin ) ) return i;
            ( ( u0_t* )data )[ i ] = c;
            bcore_source_stdin_s_push_char( o, c );
            o->buf_index = o->buf.size;
        }
    }

    return size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0xcd059
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x30(%rcx), %rax
jae 0xccfe7
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rdx
movq 0x10(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x10(%rdx)
movb (%rax,%rcx), %dl
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0xcd046
movq 0xdafea(%rip), %rax     # 0x1a7fd8
movq (%rax), %rdi
callq 0x4270
movl %eax, -0x2c(%rbp)
movq 0xdafd8(%rip), %rax     # 0x1a7fd8
movq (%rax), %rdi
callq 0x4330
cmpl $0x0, %eax
je 0xcd017
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xcd061
movl -0x2c(%rbp), %eax
movb %al, %dl
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
movl -0x2c(%rbp), %eax
movsbl %al, %esi
callq 0xcd070
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0xcd048
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0xccf9c
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_push_char
static void bcore_source_stdin_s_push_char( bcore_source_stdin_s* o, char c )
{
    st_s_push_char( &o->buf, c );

    if( o->buf.size >= o->buf_limit )
    {
        sz_t block_size = o->buf_limit >> 1;
        if( o->buf_index >= o->buf.size - block_size )
        {
            for( sz_t i = 0; i < block_size; i++ ) o->buf.data[ i ] = o->buf.data[ o->buf.size - block_size + i ];
            for( sz_t i = block_size; i < o->buf.size; i++ ) o->buf.data[ i ] = 0;
            o->base_index += o->buf.size - block_size;
            o->buf_index  -= o->buf.size - block_size;
            o->buf.size = block_size;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
movsbl -0x9(%rbp), %esi
callq 0xffba0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0xcd194
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
sarq %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
subq -0x18(%rbp), %rcx
cmpq %rcx, %rax
jb 0xcd192
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jge 0xcd11f
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
subq -0x18(%rbp), %rcx
addq -0x20(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xcd0dd
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x30(%rcx), %rax
jae 0xcd153
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x28(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0xcd127
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
subq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdx
subq -0x18(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0xcd194
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_push_until_newline_or_eos
void bcore_source_stdin_s_push_until_newline_or_eos( bcore_source_stdin_s* o )
{
    for(;;)
    {
        s2_t c = fgetc( stdin );
        if( feof( stdin ) ) break;
        bcore_source_stdin_s_push_char( o, c );
        if( c == '\n' ) break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0xdae25(%rip), %rax     # 0x1a7fd8
movq (%rax), %rdi
callq 0x4270
movl %eax, -0xc(%rbp)
movq 0xdae13(%rip), %rax     # 0x1a7fd8
movq (%rax), %rdi
callq 0x4330
cmpl $0x0, %eax
je 0xcd1d4
jmp 0xcd1ed
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movsbl %al, %esi
callq 0xcd070
cmpl $0xa, -0xc(%rbp)
jne 0xcd1eb
jmp 0xcd1ed
jmp 0xcd1ac
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_consume_whitechars_excluding_newline
void bcore_source_stdin_s_consume_whitechars_excluding_newline( bcore_source_stdin_s* o )
{
    for(;;)
    {
        if( o->buf_index < o->buf.size )
        {
            char c = o->buf.data[ o->buf_index ];
            if( c == ' ' || c == '\t' || c == '\r' )
            {
                o->buf_index++;
            }
            else
            {
                break;
            }
        }
        else
        {
            if( feof( stdin ) ) break;
            bcore_source_stdin_s_push_until_newline_or_eos( o );
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x30(%rcx), %rax
jae 0xcd265
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movb (%rax,%rcx), %al
movb %al, -0x9(%rbp)
movsbl -0x9(%rbp), %eax
cmpl $0x20, %eax
je 0xcd24f
movsbl -0x9(%rbp), %eax
cmpl $0x9, %eax
je 0xcd24f
movsbl -0x9(%rbp), %eax
cmpl $0xd, %eax
jne 0xcd261
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
jmp 0xcd263
jmp 0xcd286
jmp 0xcd284
movq 0xdad6c(%rip), %rax     # 0x1a7fd8
movq (%rax), %rdi
callq 0x4330
cmpl $0x0, %eax
je 0xcd27b
jmp 0xcd286
movq -0x8(%rbp), %rdi
callq 0xcd1a0
jmp 0xcd20c
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: stdin_s_parse_em_err
static uz_t stdin_s_parse_em_err( vd_t arg, const st_s* string, uz_t idx, st_s* ext_msg )
{
    struct { er_t er; st_s* msg; }* er_arg = arg;
    er_arg->er = TYPEOF_parse_error;
    st_s_attach( &er_arg->msg, st_s_clone( ext_msg ) );
    return idx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movabsq $0x690af8765815ec4d, %rcx # imm = 0x690AF8765815EC4D
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
callq 0xff990
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_parse_fv
void bcore_source_stdin_s_parse_fv( bcore_source_stdin_s* o, sc_t format, va_list args )
{
    er_t er = bcore_source_stdin_s_parse_em_fv( o, format, args );
    if( er )
    {
        bcore_error_pop_to_stderr();
        bcore_down_exit( -1, er );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xcd290
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xcd585
callq 0x9e5d0
movq -0x20(%rbp), %rax
movl %eax, %esi
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x425b0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_set_index
void bcore_source_stdin_s_set_index( bcore_source_stdin_s* o, s3_t index )
{
    sz_t new_buf_index = index - o->base_index;
    if( new_buf_index < 0 || new_buf_index > o->buf.size )
    {
        ERR_fa( "Buffer index '<s3_t>' is out of range.", index );
    }

    o->buf_index = new_buf_index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x8(%rcx), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jl 0xcd655
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x30(%rcx), %rax
jbe 0xcd67a
movq -0x10(%rbp), %r8
leaq 0x848f7(%rip), %rdi     # 0x151f57
leaq 0x84754(%rip), %rsi     # 0x151dbb
movl $0x5c3, %edx            # imm = 0x5C3
leaq 0x84903(%rip), %rcx     # 0x151f76
movb $0x0, %al
callq 0x9d0f0
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_parse_err_fv
void bcore_source_point_s_parse_err_fv( const bcore_source_point_s* o, sc_t format, va_list args )
{
    if( o->source )
    {
        bcore_source_a_set_index( o->source, o->index );
        bcore_source_a_parse_err_fv( o->source, format, args );
    }
    else
    {
        bcore_err_fv( format, args );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xcd8bb
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xcd8d0
jmp 0xcd8c8
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9d000
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_parse_msg_to_sink_fv
void bcore_source_point_s_parse_msg_to_sink_fv( const bcore_source_point_s* o, bcore_sink* sink, sc_t format, va_list args )
{
    if( o->source )
    {
        s3_t index = bcore_source_a_get_index( o->source );
        bcore_source_a_set_index( o->source, o->index );
        bcore_source_a_parse_msg_to_sink_fv( o->source, sink, format, args );
        bcore_source_a_set_index( o->source, index );
    }
    else
    {
        if( sink ) bcore_sink_a_push_fv( sink, format, args );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xcda25
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcb660
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0xcda50
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0xcb750
jmp 0xcda3f
cmpq $0x0, -0x10(%rbp)
je 0xcda3d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xcdaa0
jmp 0xcda3f
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_parse_msg_fv
void bcore_source_point_s_parse_msg_fv( const bcore_source_point_s* o, sc_t format, va_list args )
{
    if( o->source )
    {
        s3_t index = bcore_source_a_get_index( o->source );
        bcore_source_a_set_index( o->source, o->index );
        bcore_source_a_parse_msg_fv( o->source, format, args );
        bcore_source_a_set_index( o->source, index );
    }
    else
    {
        bcore_msg_fv( format, args );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xcdbed
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcb660
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xcdc00
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0xcb750
jmp 0xcdbfa
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9c9b0
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_parse_error_fv
er_t bcore_source_point_s_parse_error_fv( const bcore_source_point_s* o, sc_t format, va_list args )
{
    if( o->source )
    {
        s3_t index = bcore_source_a_get_index( o->source );
        bcore_source_a_set_index( o->source, o->index );
        er_t ret = bcore_source_a_parse_error_fv( o->source, format, args );
        bcore_source_a_set_index( o->source, index );
        return ret;
    }
    else
    {
        return bcore_error_push_fv( TYPEOF_parse_error, format, args );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xcdd59
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcb660
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xf4880
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0xcb750
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xcdd74
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movabsq $0x690af8765815ec4d, %rdi # imm = 0x690AF8765815EC4D
callq 0x9e040
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_clone_source
bcore_source* bcore_source_point_s_clone_source( const bcore_source_point_s* o )
{
    if( !o->source ) return NULL;
    bcore_source* source = bcore_source_a_clone( o->source );
    bcore_source_a_set_index( source, o->index );
    return source;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xcde51
movq $0x0, -0x8(%rbp)
jmp 0xcde7b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcad50
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_point_s_source_reference_to_sink
void bcore_source_point_s_source_reference_to_sink( const bcore_source_point_s* o, bl_t file_name_only, bcore_sink* sink )
{
    if( !o->source ) return;

    BLM_INIT();
    sz_t index = bcore_source_a_get_index( o->source );
    bcore_source_a_set_index( o->source, o->index );

    bcore_source_context_s* context = BLM_CREATE( bcore_source_context_s );
    bcore_source_a_get_context( o->source, context );

    if( context->file_path )
    {
        st_s* file = BLM_CLONE( st_s, context->file_path );
        if( file_name_only )
        {
            st_s_copy( file, BLM_A_PUSH( st_s_create_sc( bcore_file_name( file->sc ) ) ) );
        }
        bcore_sink_a_push_fa( sink, "#<sc_t>", file->sc );
    }

    bcore_sink_a_push_fa( sink, ":#<sz_t>:#<sz_t>", context->line, context->col );

    bcore_source_a_set_index( o->source, index );
    BLM_DOWN();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xcdebb
jmp 0xce029
leaq 0xe446e(%rip), %rax     # 0x1b2330
movq (%rax), %rax
movq %rax, -0x20(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xbfe80
movq -0x58(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcb660
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xcb750
movq -0x20(%rbp), %rax
movq %rax, -0x78(%rbp)
movb $0x0, %al
callq 0xf2270
movq -0x78(%rbp), %rdi
movq %rax, %rdx
movabsq $0x420d5f875454e1c, %rsi # imm = 0x420D5F875454E1C
callq 0xc00e0
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x68(%rbp), %rsi
callq 0xce040
movq -0x68(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xcdfed
movq -0x20(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xff990
movq -0x80(%rbp), %rdi
movq %rax, %rdx
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
callq 0xc00e0
movq %rax, -0x70(%rbp)
testb $0x1, -0x9(%rbp)
je 0xcdfd3
movq -0x70(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x70(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x9f460
movq %rax, %rdi
callq 0xff550
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0xc0460
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0xfe850
movq -0x18(%rbp), %rdi
movq -0x70(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x80f3f(%rip), %rsi     # 0x14ef25
movb $0x0, %al
callq 0xf0e20
movq -0x18(%rbp), %rdi
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x68(%rbp), %rax
movq 0x20(%rax), %rcx
leaq 0x7106b(%rip), %rsi     # 0x13f073
movb $0x0, %al
callq 0xf0e20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x60(%rbp), %rsi
callq 0xcb750
leaq -0x58(%rbp), %rdi
callq 0xc06e0
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_open_file
bcore_source_chain_s* bcore_source_open_file( sc_t file_name )
{
    bcore_source_chain_s* chain = bcore_source_chain_s_create();
    bcore_source_chain_s_push_d( chain, bcore_source_file_s_create_name( file_name ) );
    bcore_source_chain_s_push_d( chain, bcore_inst_t_create( TYPEOF_bcore_source_string_s ) );
    bcore_source_string_s* string = chain->data[ chain->size - 1 ];
    string->parent = chain;
    return chain;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
callq 0xcb0b0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xcc860
movq -0x28(%rbp), %rdi
movq %rax, %rsi
callq 0xcb170
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movabsq $-0x7a841657f0cf5c40, %rdi # imm = 0x857BE9A80F30A3C0
callq 0xcb0d0
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0xcb170
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: sources_selftest_stdin
void sources_selftest_stdin( void )
{
    BLM_INIT();
    bcore_msg_fa( "sources_selftest_stdin:\n" );

    bcore_source* source = BLM_A_PUSH( bcore_source_open_stdin() );

//    while( !bcore_source_a_eos( source ) )
//    {
//        s2_t c = bcore_source_a_get_char( source );
//        bcore_msg_fa( "#<s2_t>\n", c );
//    }

    st_s* st = BLM_CREATE( st_s );

    while( !bcore_source_a_eos( source ) )
    {
        bcore_source_a_parse_fa( source, " #name", st );
        if( st->size == 0 ) bcore_source_a_parse_err_fa( source, "Name expected\n" );
        bcore_msg_fa( "name: #<st_s*>\n", st );
    }

    BLM_DOWN();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0xe4201(%rip), %rax     # 0x1b2330
movq (%rax), %rax
movq %rax, -0x8(%rbp)
leaq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0xbfe80
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
leaq 0x83e43(%rip), %rdi     # 0x151f9d
movb $0x0, %al
callq 0x9c9e0
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
callq 0xce110
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0xc0460
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x58(%rbp), %rdi
movq %rax, %rdx
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
callq 0xc00e0
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
callq 0xcb550
xorb $-0x1, %al
testb $0x1, %al
jne 0xce1b8
jmp 0xce1ff
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x8037c(%rip), %rsi     # 0x14e543
movb $0x0, %al
callq 0xf3450
movq -0x50(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xce1eb
movq -0x48(%rbp), %rdi
leaq 0x83dd2(%rip), %rsi     # 0x151fb6
movb $0x0, %al
callq 0xf3700
movq -0x50(%rbp), %rsi
leaq 0x83dcf(%rip), %rdi     # 0x151fc5
movb $0x0, %al
callq 0x9c9e0
jmp 0xce1a7
leaq -0x40(%rbp), %rdi
callq 0xc06e0
addq $0x60, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: buffer_s_create_self
static bcore_self_s* buffer_s_create_self( void )
{
    sc_t def =
    "bcore_source_buffer_s = bcore_source"
    "{ "
      "aware_t _; "
      "u0_t [] data; "
      "uz_t index; "
      "private vd_t supplier; "
      "uz_t prefetch_size; "
    "}";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_source_buffer_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_init,         "bcore_fp_init",                   "init"  );
    bcore_self_s_push_ns_func( self, ( fp_t )buffer_flow_src,                    "bcore_fp_flow_src",               "flow_src"  );
    bcore_self_s_push_ns_func( self, ( fp_t )buffer_get_context,                 "bcore_source_fp_get_context",     "get_context" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_set_supplier, "bcore_source_fp_set_supplier",    "set_supplier" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_eos,          "bcore_source_fp_eos",             "eos" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_get_file,     "bcore_source_fp_get_file",        "get_file" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_get_index,    "bcore_source_fp_get_index",       "get_index" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_source_buffer_s_set_index,    "bcore_source_fp_set_index",       "set_index" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x83c07(%rip), %rax     # 0x1522d6
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x38, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x2f65(%rip), %rsi     # 0xcb790
leaq 0x7e4c6(%rip), %rdx     # 0x14cbc2
leaq 0x7e4c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2d53(%rip), %rsi     # 0xcb9c0
leaq 0x838e7(%rip), %rdx     # 0x152001
leaq 0x838e9(%rip), %rcx     # 0x15200a
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x1def(%rip), %rsi      # 0xd0520
leaq 0x83ad6(%rip), %rdx     # 0x15220e
leaq 0x83adf(%rip), %rcx     # 0x15221e
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x29df(%rip), %rsi     # 0xcbd70
leaq 0x83ad4(%rip), %rdx     # 0x15222a
leaq 0x83add(%rip), %rcx     # 0x15223a
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2b2d(%rip), %rsi     # 0xcbc40
leaq 0x838b8(%rip), %rdx     # 0x15202c
leaq 0x73314(%rip), %rcx     # 0x141a8f
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2aeb(%rip), %rsi     # 0xcbca0
leaq 0x838cc(%rip), %rdx     # 0x15205e
leaq 0x7363f(%rip), %rcx     # 0x141dd8
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2ac9(%rip), %rsi     # 0xcbce0
leaq 0x838e6(%rip), %rdx     # 0x152096
leaq 0x7352d(%rip), %rcx     # 0x141ce4
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2ac7(%rip), %rsi     # 0xcbd00
leaq 0x838e2(%rip), %rdx     # 0x1520b0
leaq 0x73522(%rip), %rcx     # 0x141cf7
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: chain_copy_a
static void chain_copy_a( bcore_nucleus_s* nc )
{
    bcore_source_chain_s* o = nc->client;
    nc->default_handler( nc );
    for( uz_t i = 0; i < o->size; i++ )
    {
        bcore_source_a_set_parent( o->data[ i ], o );
        if( i > 0 ) bcore_source_a_set_supplier( o->data[ i ], o->data[ i - 1 ] );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xd0794
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0xd0b00
cmpq $0x0, -0x18(%rbp)
jbe 0xd0784
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
callq 0xcb340
jmp 0xd0786
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xd072d
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: chain_interpret_body_a
static void chain_interpret_body_a( vd_t nc )
{
    struct { ap_t a; vc_t p; vc_t inter; vd_t source; tp_t type; vd_t obj; } * nc_l = nc;
    nc_l->a( nc ); // default
    bcore_source_chain_s* o = nc_l->obj;
    for( uz_t i = 0; i < o->size; i++ )
    {
        bcore_source_a_set_parent( o->data[ i ], o );
        if( i > 0 ) bcore_source_a_set_supplier( o->data[ i ], o->data[ i - 1 ] );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xd083c
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x18(%rbp), %rsi
callq 0xd0b00
cmpq $0x0, -0x20(%rbp)
jbe 0xd082c
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
callq 0xcb340
jmp 0xd082e
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xd07d5
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: chain_get_context
static void chain_get_context( bcore_source_chain_s* o, bcore_source_context_s* context )
{
    s3_t index = bcore_source_chain_s_get_index( o );
    context->index = index;

    if( o->size > 0 )
    {
        if( o->data[ 0 ] && ( *( aware_t* )o->data[ 0 ] ) == TYPEOF_bcore_source_file_s )
        {
            bcore_source_file_s* fo = o->data[ 0 ];
            st_s_attach( &context->file_path, st_s_create_sc( bcore_source_file_s_get_name( fo ) ) );
            st_s_attach( &context->txt_context, st_s_create() );
            uz_t line, col;
            bcore_source_file_s_get_line_col_context( fo, index, &line, &col,context->txt_context );
            context->line = line;
            context->col = col;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xcb600
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jbe 0xd0946
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, (%rax)
je 0xd0944
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movabsq $0x766eac77ec0f2a97, %rcx # imm = 0x766EAC77EC0F2A97
cmpq %rcx, (%rax)
jne 0xd0944
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rdi
callq 0xcc8a0
movq %rax, %rdi
callq 0xff550
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x10(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x38(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %r8
leaq -0x28(%rbp), %rdx
leaq -0x30(%rbp), %rcx
callq 0xccc10
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xd0946
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: chain_parse_fv
static void chain_parse_fv( bcore_source_chain_s* o, sc_t format, va_list args )
{
    if( o->size > 0 )
    {
        const bcore_source_s* source_p = bcore_source_s_get_aware( o->data[ o->size - 1 ] );
        if( source_p->parse_fv )
        {
            bcore_source_p_parse_fv( source_p, o->data[ o->size - 1 ], format, args );
        }
        else
        {
            bcore_source_chain_s_push_type( o, TYPEOF_bcore_source_string_s );
            chain_parse_fv( o, format, args );
        }
    }
    else
    {
        ERR( "Chain is empty" );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jbe 0xd09ec
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
callq 0xd0b70
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xd09c6
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xd0b90
jmp 0xd09ea
movq -0x8(%rbp), %rdi
movabsq $-0x7a841657f0cf5c40, %rsi # imm = 0x857BE9A80F30A3C0
callq 0xcb380
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xd0950
jmp 0xd0a0d
leaq 0x819f4(%rip), %rdi     # 0x1523e7
leaq 0x813c1(%rip), %rsi     # 0x151dbb
movl $0xfa, %edx
leaq 0x819f0(%rip), %rcx     # 0x1523f6
movb $0x0, %al
callq 0x9cf40
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)