LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_signal.c
// Function: bcore_signal_s_broadcast
vd_t bcore_signal_s_broadcast( const bcore_signal_s* o, bcore_fp_signal_handler* arr, uz_t size )
{
    vd_t ret = NULL;

    if( o->type == TYPEOF_down0 || o->type == TYPEOF_down1 )
    {
        for( uz_t i = size; i > 0; i-- ) if( ( ret = arr[ i - 1 ]( o ) ) ) return ret;
    }
    else
    {
        for( uz_t i = 0; i < size; i++ ) if( ( ret = arr[ i     ]( o ) ) ) return ret;
    }

    return ret;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r12
movq 0x8(%rdi), %rax
movabsq $-0x69a05654ee793a14, %rcx # imm = 0x965FA9AB1186C5EC
cmpq %rcx, %rax
je 0xdfd4d
movabsq $-0x69a05554ee793861, %rcx # imm = 0x965FAAAB1186C79F
cmpq %rcx, %rax
jne 0xdfd69
testq %rbx, %rbx
je 0xdfd8a
xorl %r14d, %r14d
movq %r12, %rdi
callq *-0x8(%r15,%rbx,8)
testq %rax, %rax
jne 0xdfd8f
decq %rbx
jne 0xdfd55
jmp 0xdfd92
testq %rbx, %rbx
je 0xdfd8a
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %r12, %rdi
callq *(%r15,%r13,8)
testq %rax, %rax
jne 0xdfd8f
incq %r13
cmpq %r13, %rbx
jne 0xdfd74
jmp 0xdfd92
xorl %r14d, %r14d
jmp 0xdfd92
movq %rax, %r14
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_buffer_s_flush
bcore_sink_buffer_s* bcore_sink_buffer_s_flush( bcore_sink_buffer_s* o )
{
    if( o->consumer && o->size > 0 )
    {
        uz_t pushed_size = bcore_sink_a_push_data( o->consumer, o->data, o->size );
        if( pushed_size != o->size ) ERR( "Consumer accepted %zu of %zu bytes.", pushed_size, o->size );
        o->size = 0;
    }
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x20(%rdi), %r14
testq %r14, %r14
je 0xe0b75
movq 0x10(%rbx), %r15
testq %r15, %r15
je 0xe0b75
movq 0x8(%rbx), %r12
movq (%r14), %r13
leaq 0xbc01d(%rip), %rax     # 0x19cab0
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0xe0ae9
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0xe0ae9
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0xe0ae9
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0xe0af2
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0xe0b19
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0xbbfa2(%rip), %rdi     # 0x19cab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x10(%rbp), %rax
testq %rax, %rax
jne 0xe0b35
leaq 0x5960d(%rip), %rsi     # 0x13a136
movq %rbp, %rdi
callq 0xeb49c
movq 0x10(%rbp), %rax
movq %r14, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq *%rax
movq 0x10(%rbx), %r9
cmpq %r9, %rax
je 0xe0b6d
leaq 0x66a5f(%rip), %rdi     # 0x1475af
leaq 0x66a72(%rip), %rsi     # 0x1475c9
leaq 0x66a79(%rip), %rcx     # 0x1475d7
movl $0xe5, %edx
movq %rax, %r8
xorl %eax, %eax
callq 0xbe592
movq $0x0, 0x10(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: buffer_flow_snk
static uz_t buffer_flow_snk( bcore_sink_buffer_s* o, vc_t data, uz_t size )
{
    uz_t new_size = o->size + size;
    if( new_size > o->space )
    {
        uz_t new_space = ( o->space * 2 > new_size ) ? o->space * 2 : new_size;
        o->data = bcore_bn_alloc( o->data, o->space, new_space, &o->space );
    }
    bcore_memcpy( o->data + o->size, data, size );
    o->size += size;
    if( o->consumer && o->size >= o->entrepot_size ) bcore_sink_buffer_s_flush( o );
    return size;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x8(%rdi), %rax
movq 0x10(%rdi), %rdi
addq %rdi, %rdx
movq 0x18(%r14), %rsi
cmpq %rsi, %rdx
jbe 0xe0bca
leaq 0x18(%r14), %rcx
leaq (%rsi,%rsi), %rdi
cmpq %rdx, %rdi
cmovaq %rdi, %rdx
movq %rax, %rdi
callq 0xbe7d0
movq %rax, 0x8(%r14)
movq 0x10(%r14), %rdi
addq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xbe87d
movq 0x10(%r14), %rax
addq %rbx, %rax
movq %rax, 0x10(%r14)
cmpq $0x0, 0x20(%r14)
je 0xe0bf8
cmpq 0x28(%r14), %rax
jb 0xe0bf8
movq %r14, %rdi
callq 0xe0a5d
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_file_s_open
void bcore_sink_file_s_open( bcore_sink_file_s* o )
{
    if( !o->name ) ERR( "No file name specified." );
    if( o->handle ) bcore_sink_file_s_close( o );
    o->handle = fopen( o->name->sc, "wb" );
    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 %rbx
movq %rdi, %rbx
cmpq $0x0, 0x8(%rdi)
jne 0xe11c6
leaq 0x6647e(%rip), %rdi     # 0x14762a
leaq 0x66416(%rip), %rsi     # 0x1475c9
leaq 0x66487(%rip), %rcx     # 0x147641
movl $0x19b, %edx            # imm = 0x19B
xorl %eax, %eax
callq 0xbe592
cmpq $0x0, 0x10(%rbx)
je 0xe11d5
movq %rbx, %rdi
callq 0xe1202
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0x622f9(%rip), %rsi     # 0x1434dd
callq 0xd170
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0xe11f4
popq %rbx
retq
addq $0x8, %rbx
movq %rbx, %rdi
callq 0xd7ab
jmp 0xe11f2
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_file_s_close
void bcore_sink_file_s_close( bcore_sink_file_s* o )
{
    if( !o->handle ) return;
    if( fclose( o->handle ) != 0 )
    {
        st_s* msg = st_s_createf( "Error closing file %s:\n", o->name->sc );
        perror( msg->sc );
        st_s_discard( msg );
        bcore_abort();
    }
    o->handle = NULL;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rdi
testq %rdi, %rdi
je 0xe1220
callq 0xd390
testl %eax, %eax
jne 0xe1222
movq $0x0, 0x10(%rbx)
popq %rbx
retq
movq %rbx, %rdi
callq 0xd7dd
jmp 0xe1218
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_file_s_try_open
bl_t bcore_sink_file_s_try_open( bcore_sink_file_s* o )
{
    if( !o->name ) return false;
    if( o->handle ) bcore_sink_file_s_close( o );
    o->handle = fopen( o->name->sc, "wb" );
    if( !o->handle ) return false;
    return true;
}

// Assembly:
movq 0x8(%rdi), %rax
testq %rax, %rax
je 0xe1268
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x10(%rdi)
je 0xe124c
movq %rbx, %rdi
callq 0xe1202
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0x62286(%rip), %rsi     # 0x1434dd
callq 0xd170
movq %rax, 0x10(%rbx)
testq %rax, %rax
setne %al
popq %rbx
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: file_flow_snk
static uz_t file_flow_snk( bcore_sink_file_s* o, vc_t data, uz_t size )
{
    if( !o->handle ) bcore_sink_file_s_open( o );
    uz_t wsize = fwrite( data, 1, size, o->handle );
    if( wsize != size )
    {
        if( ferror( o->handle ) )
        {
            st_s* msg = st_s_createf( "Error writing to file %s:\n", o->name->sc );
            perror( msg->sc );
            st_s_discard( msg );
        }
    }
    return wsize;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
testq %rcx, %rcx
jne 0xe12b5
movq %rbx, %rdi
callq 0xe119a
movq 0x10(%rbx), %rcx
movl $0x1, %esi
movq %r15, %rdi
movq %r14, %rdx
callq 0xd3d0
movq %rax, %r15
cmpq %r14, %rax
je 0xe12da
movq 0x10(%rbx), %rdi
callq 0xd240
testl %eax, %eax
jne 0xe12e3
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
callq 0xd843
jmp 0xe12da
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_open_file
bcore_sink_chain_s* bcore_sink_open_file( sc_t file_name )
{
    bcore_sink_chain_s* chain = bcore_sink_chain_s_create();
    bcore_sink_chain_s_push_d( chain, bcore_sink_file_s_create_name( file_name ) );
    bcore_sink_chain_s_push_d( chain, bcore_inst_t_create( typeof( "bcore_sink_buffer_s" ) ) );
    return chain;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
movabsq $-0x741f65139500cd47, %r14 # imm = 0x8BE09AEC6AFF32B9
callq 0xe00b7
movq %rax, %rbx
callq 0xe1000
movq %rax, %r12
movq %r15, %rdi
callq 0x109f0e
movq %rax, 0x8(%r12)
movq %rbx, %rdi
movq %r12, %rsi
callq 0xe0222
leaq 0xbb137(%rip), %rax     # 0x19c468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r14, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0xe1387
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0xe1387
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0xe1387
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0xe1390
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe13b7
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xbb0bc(%rip), %rdi     # 0x19c468
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
callq *0xa8(%r15)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xe0222
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_try_open_file
bcore_sink_chain_s* bcore_sink_try_open_file( sc_t file_name )
{
    bcore_sink_file_s* sink_file = bcore_sink_file_s_create_name( file_name );
    if( bcore_sink_file_s_try_open( sink_file ) )
    {
        bcore_sink_chain_s* chain = bcore_sink_chain_s_create();
        bcore_sink_chain_s_push_d( chain, sink_file );
        bcore_sink_chain_s_push_d( chain, bcore_inst_t_create( typeof( "bcore_sink_buffer_s" ) ) );
        return chain;
    }
    else
    {
        bcore_sink_file_s_discard( sink_file );
        return NULL;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0xe1000
movq %rax, %r15
movq %rbx, %rdi
callq 0x109f0e
movq %rax, 0x8(%r15)
movq %r15, %rdi
callq 0xe122c
testb %al, %al
je 0xe14c8
movabsq $-0x741f65139500cd47, %r14 # imm = 0x8BE09AEC6AFF32B9
callq 0xe00b7
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0xe0222
leaq 0xbb03d(%rip), %rax     # 0x19c468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r14, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0xe1481
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0xe1481
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0xe1481
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0xe148a
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe14b1
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xbafc2(%rip), %rdi     # 0x19c468
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
callq *0xa8(%r15)
movq %rbx, %rdi
movq %rax, %rsi
callq 0xe0222
jmp 0xe14d2
movq %r15, %rdi
callq 0xe0f43
xorl %ebx, %ebx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sink_stdout_s_push_data
uz_t bcore_sink_stdout_s_push_data( bcore_sink_stdout_s* o, vc_t data, uz_t size )
{
    st_s* msg = st_s_create_sc_n( data, size );
    fprintf( stdout, "%s", msg->sc );
    st_s_discard( msg );
    return size;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x109e7c
movq %rax, %r14
movq 0xac67c(%rip), %rax     # 0x18dff0
movq (%rax), %rsi
movq 0x8(%r14), %rdi
callq 0xd2b0
movq %r14, %rdi
callq 0x10a028
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: buffer_s_create_self
static bcore_self_s* buffer_s_create_self( void )
{
    sc_t def =
    "bcore_sink_buffer_s = bcore_sink"
    "{ "
      "aware_t _; "
      "u0_t [] data; "
      "private vd_t consumer; "
      "uz_t entrepot_size; "
    "}";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_sink_buffer_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_buffer_s_init,         "bcore_fp_init",              "init"  );
    bcore_self_s_push_ns_func( self, ( fp_t )buffer_flow_snk,                  "bcore_fp_flow_snk",          "flow_snk"  );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_buffer_s_set_consumer, "bcore_sink_fp_set_consumer", "set_consumer" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_sink_buffer_s_flush,        "bcore_sink_fp_flush",        "flush" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x65297(%rip), %rdi     # 0x1477b3
movl $0x30, %esi
movl $0x8, %edx
callq 0xc447e
movq %rax, %rbx
leaq -0x1eac(%rip), %rsi     # 0xe0689
leaq 0x604f9(%rip), %rdx     # 0x142a35
leaq 0x604fb(%rip), %rcx     # 0x142a3e
movq %rax, %rdi
callq 0xc34ab
leaq -0x19c9(%rip), %rsi     # 0xe0b89
leaq 0x65195(%rip), %rdx     # 0x1476ee
leaq 0x65197(%rip), %rcx     # 0x1476f7
movq %rbx, %rdi
callq 0xc34ab
leaq -0x1870(%rip), %rsi     # 0xe0cff
leaq 0x652a5(%rip), %rdx     # 0x14781b
leaq 0x652ac(%rip), %rcx     # 0x147829
movq %rbx, %rdi
callq 0xc34ab
leaq -0x1b2f(%rip), %rsi     # 0xe0a5d
leaq 0x65187(%rip), %rdx     # 0x14771a
leaq 0x57c0b(%rip), %rcx     # 0x13a1a5
movq %rbx, %rdi
callq 0xc34ab
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
leaq 0x65287(%rip), %rdi     # 0x147836
movl $0x18, %esi
movl $0x8, %edx
callq 0xc447e
movq %rax, %rbx
leaq 0x1ae(%rip), %rsi       # 0xe2776
leaq 0x6046f(%rip), %rdx     # 0x142a3e
movq %rax, %rdi
callq 0xc3515
leaq 0x1ae(%rip), %rsi       # 0xe278c
leaq 0x54be5(%rip), %rdx     # 0x1371ca
movq %rbx, %rdi
callq 0xc3515
leaq 0x1ab(%rip), %rsi       # 0xe279f
leaq 0x5bd60(%rip), %rdx     # 0x13e35b
movq %rbx, %rdi
callq 0xc3515
leaq 0x1a8(%rip), %rsi       # 0xe27b2
leaq 0x61574(%rip), %rdx     # 0x143b85
leaq 0x6526e(%rip), %rcx     # 0x147886
movq %rbx, %rdi
callq 0xc34ab
leaq -0x1395(%rip), %rsi     # 0xe1292
leaq 0x650c0(%rip), %rdx     # 0x1476ee
leaq 0x650c2(%rip), %rcx     # 0x1476f7
movq %rbx, %rdi
callq 0xc34ab
leaq -0x13d9(%rip), %rsi     # 0xe126b
leaq 0x650cf(%rip), %rdx     # 0x14771a
leaq 0x57b53(%rip), %rcx     # 0x13a1a5
movq %rbx, %rdi
callq 0xc34ab
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
leaq 0x6522e(%rip), %rdi     # 0x147895
movl $0x20, %esi
movl $0x8, %edx
callq 0xc447e
movq %rax, %rbx
leaq 0x145(%rip), %rsi       # 0xe27c5
leaq 0x603b7(%rip), %rdx     # 0x142a3e
movq %rax, %rdi
callq 0xc3515
leaq 0x148(%rip), %rsi       # 0xe27de
leaq 0x54b2d(%rip), %rdx     # 0x1371ca
movq %rbx, %rdi
callq 0xc3515
leaq 0x145(%rip), %rsi       # 0xe27f1
leaq 0x5bca8(%rip), %rdx     # 0x13e35b
movq %rbx, %rdi
callq 0xc3515
leaq 0x230(%rip), %rsi       # 0xe28f2
leaq 0x614bc(%rip), %rdx     # 0x143b85
leaq 0x651b6(%rip), %rcx     # 0x147886
movq %rbx, %rdi
callq 0xc34ab
leaq -0x213e(%rip), %rsi     # 0xe05a1
leaq 0x65008(%rip), %rdx     # 0x1476ee
leaq 0x6500a(%rip), %rcx     # 0x1476f7
movq %rbx, %rdi
callq 0xc34ab
leaq -0x1afb(%rip), %rsi     # 0xe0c01
leaq 0x65118(%rip), %rdx     # 0x14781b
leaq 0x6511f(%rip), %rcx     # 0x147829
movq %rbx, %rdi
callq 0xc34ab
leaq -0x2269(%rip), %rsi     # 0xe04b0
leaq 0x64ffa(%rip), %rdx     # 0x14771a
leaq 0x57a7e(%rip), %rcx     # 0x13a1a5
movq %rbx, %rdi
callq 0xc34ab
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq *(%rdi)
movq 0x28(%rbx), %r14
cmpq $0x2, 0x10(%r14)
jb 0xe29e4
movl $0x1, %ebx
movq 0x8(%r14), %rax
movq -0x8(%rax,%rbx,8), %r12
movq (%rax,%rbx,8), %r13
movq (%r13), %rbp
leaq 0xba182(%rip), %rdx     # 0x19cab0
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0xe2983
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0xe2983
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0xe2983
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0xe298c
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe29b3
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %rbp, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xba108(%rip), %rdi     # 0x19cab0
movq %rbp, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x18(%r15), %rax
testq %rax, %rax
jne 0xe29cf
movq %r15, %rdi
leaq 0x64e63(%rip), %rsi     # 0x147829
callq 0xeb49c
movq 0x18(%r15), %rax
movq %r13, %rdi
movq %r12, %rsi
callq *%rax
incq %rbx
cmpq 0x10(%r14), %rbx
jb 0xe2916
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
cmpq $0x0, 0x10(%rdi)
jne 0xe3207
leaq 0x648d7(%rip), %rdi     # 0x147ac4
leaq 0x648f2(%rip), %rsi     # 0x147ae6
leaq 0x64420(%rip), %rcx     # 0x14761b
movl $0x99, %edx
xorl %eax, %eax
callq 0xbe592
movq 0x8(%rbx), %rax
movq (%rax), %r12
movq (%r12), %r13
leaq 0xb9aaf(%rip), %rdx     # 0x19ccc8
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0xe326e
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0xe326e
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0xe326e
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0xe3277
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0xe329e
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0xb9a35(%rip), %rdi     # 0x19ccc8
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x30(%rbp), %rax
testq %rax, %rax
jne 0xe32ba
leaq 0x64c94(%rip), %rsi     # 0x147f42
movq %rbp, %rdi
callq 0xeb49c
movq 0x30(%rbp), %rax
movq %r12, %rdi
movq %r15, %rsi
callq *%rax
cmpq $0x2, 0x10(%rbx)
jb 0xe33a1
movl $0x1, %r14d
movq 0x8(%rbx), %rax
movq -0x8(%rax,%r14,8), %r13
movq (%rax,%r14,8), %rbp
movq (%rbp), %r12
leaq 0xb99dd(%rip), %rdx     # 0x19ccc8
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xe3340
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xe3340
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xe3340
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xe3349
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe3370
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xb9963(%rip), %rdi     # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x30(%r15), %rax
testq %rax, %rax
jne 0xe338c
movq %r15, %rdi
leaq 0x64bbf(%rip), %rsi     # 0x147f42
callq 0xeb49c
movq 0x30(%r15), %rax
movq %rbp, %rdi
movq %r13, %rsi
callq *%rax
incq %r14
cmpq 0x10(%rbx), %r14
jb 0xe32d3
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x10(%rdi)
je 0xe3617
movq %rdi, %rbx
xorl %r15d, %r15d
xorl %r14d, %r14d
movq 0x8(%rbx), %rax
movq (%rax,%r15,8), %r13
movq (%r13), %rbp
leaq 0xb9753(%rip), %rdx     # 0x19ccc8
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0xe35ca
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0xe35ca
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0xe35ca
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0xe35d3
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0xe35fa
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbp, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0xb96d9(%rip), %rdi     # 0x19ccc8
movq %rbp, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
movq %r13, %rsi
callq 0xffe72
addq %rax, %r14
incq %r15
cmpq 0x10(%rbx), %r15
jb 0xe3562
jmp 0xe361a
xorl %r14d, %r14d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
cmpq $0x0, 0x10(%rdi)
jne 0xe3665
leaq 0x644ab(%rip), %rdi     # 0x147af6
leaq 0x64494(%rip), %rsi     # 0x147ae6
leaq 0x644bc(%rip), %rcx     # 0x147b15
movl $0xc2, %edx
xorl %eax, %eax
callq 0xbe592
movq %rbx, %rdi
callq 0xe3543
cmpq %r15, %rax
je 0xe37fa
movq 0x8(%rbx), %rax
movq (%rax), %r12
movq (%r12), %r13
leaq 0xb9640(%rip), %rdx     # 0x19ccc8
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0xe36dd
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0xe36dd
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0xe36dd
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0xe36e6
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0xe370d
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0xb95c6(%rip), %rdi     # 0x19ccc8
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbp, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0xffe83
cmpq $0x2, 0x10(%rbx)
jb 0xe37fa
movl $0x1, %r14d
movq 0x8(%rbx), %rax
movq -0x8(%rax,%r14,8), %r13
movq (%rax,%r14,8), %rbp
movq (%rbp), %r12
leaq 0xb9584(%rip), %rdx     # 0x19ccc8
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xe3799
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xe3799
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xe3799
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xe37a2
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe37c9
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xb950a(%rip), %rdi     # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x30(%r15), %rax
testq %rax, %rax
jne 0xe37e5
movq %r15, %rdi
leaq 0x64766(%rip), %rsi     # 0x147f42
callq 0xeb49c
movq 0x30(%r15), %rax
movq %rbp, %rdi
movq %r13, %rsi
callq *%rax
incq %r14
cmpq 0x10(%rbx), %r14
jb 0xe372c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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 %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq 0x8(%rdi), %rdi
leaq 0x18(%r15), %rdx
movq %rbx, %rsi
callq 0xbe7cb
movq %rax, 0x8(%r15)
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xbe87d
movq %rbx, 0x10(%r15)
movq $0x0, 0x20(%r15)
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
movq %rdi, %rbx
movl $0x38, %esi
callq 0xbe802
movabsq $-0x7a841657f0cf5c40, %rax # imm = 0x857BE9A80F30A3C0
movq %rax, (%rbx)
movq $0x4000, 0x28(%rbx)     # imm = 0x4000
movq $0x1000, 0x20(%rbx)     # imm = 0x1000
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_string_s_create_fa
bcore_source_string_s* bcore_source_string_s_create_fa( sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    bcore_source_string_s* ret = bcore_source_string_s_create_fv( format, args );
    va_end( args );
    return ret;
}

// Assembly:
pushq %rbx
subq $0xd0, %rsp
leaq 0x20(%rsp), %r10
movq %rsi, 0x8(%r10)
movq %rdx, 0x10(%r10)
movq %rcx, 0x18(%r10)
movq %r8, 0x20(%r10)
movq %r9, 0x28(%r10)
testb %al, %al
je 0xe4744
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 %r10, 0x10(%rsi)
leaq 0xe0(%rsp), %rax
movq %rax, 0x8(%rsi)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rsi)
callq 0x109d97
movq %rax, %rbx
callq 0xe44c7
movq %rbx, 0x8(%rax)
addq $0xd0, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_string_s_setup_fa
bcore_source_string_s* bcore_source_string_s_setup_fa( bcore_source_string_s* o, sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    bcore_source_string_s* ret = bcore_source_string_s_setup_fv( o, format, args );
    va_end( args );
    return ret;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movq %rsi, %r10
movq %rdi, %rbx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movq %r8, 0x20(%rdi)
movq %r9, 0x28(%rdi)
testb %al, %al
je 0xe4946
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 %rdi, 0x10(%rsi)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rsi)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, (%rsi)
movq %r10, %rdi
callq 0x109d97
movq %rax, %r14
movq 0x8(%rbx), %rdi
callq 0x10a028
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movq %r14, 0x8(%rbx)
movq %rbx, %rax
addq $0xd8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: string_flow_src
static uz_t string_flow_src( bcore_source_string_s* o, vd_t data, uz_t size )
{
    if( !o->string ) o->string = st_s_create();
    if( size > o->string->size - o->index )
    {
        // first send rest of buffer
        uz_t size1 = o->string->size - o->index;
        bcore_memcpy( data, o->string->data + o->index, size1 );
        o->index += size1;
        data = (u0_t*)data + size1;
        size -= size1;

        // refill to remaining size (if possible)
        if( o->ext_supplier ) string_refill( o, size );

        // send rest of data (if any)
        uz_t size2 = size < o->string->size - o->index ? size : o->string->size - o->index;
        bcore_memcpy( data, o->string->data + o->index, size2 );
        o->index += size2;

        return size1 + size2;
    }
    else
    {
        bcore_memcpy( data, o->string->data + o->index, size );
        o->index += size;
        return size;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rdi), %rax
testq %rax, %rax
jne 0xe49bb
xorl %eax, %eax
callq 0x109c82
movq %rax, 0x8(%rbx)
movq 0x10(%rax), %r12
movq 0x10(%rbx), %rsi
subq %rsi, %r12
addq 0x8(%rax), %rsi
movq %r15, %r13
subq %r12, %r13
jbe 0xe4a2b
movq %r14, %rdi
movq %r12, %rdx
callq 0xbe87d
movq 0x10(%rbx), %rsi
addq %r12, %rsi
movq %rsi, 0x10(%rbx)
addq %r12, %r14
cmpq $0x0, 0x18(%rbx)
je 0xe4a01
movq %rbx, %rdi
movq %r13, %rsi
callq 0xe8a53
movq 0x10(%rbx), %rsi
movq 0x8(%rbx), %rax
movq 0x10(%rax), %r15
subq %rsi, %r15
cmpq %r15, %r13
cmovbq %r13, %r15
addq 0x8(%rax), %rsi
movq %r14, %rdi
movq %r15, %rdx
callq 0xbe87d
addq %r15, 0x10(%rbx)
addq %r12, %r15
jmp 0xe4a3a
movq %r14, %rdi
movq %r15, %rdx
callq 0xbe87d
addq %r15, 0x10(%rbx)
movq %r15, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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 %r15
pushq %r14
pushq %rbx
movq 0x8(%rdi), %rax
testq %rax, %rax
je 0xe4a66
movq 0x10(%rdi), %rcx
cmpq 0x10(%rax), %rcx
jae 0xe4a66
xorl %eax, %eax
jmp 0xe4b2b
movq 0x18(%rdi), %rbx
testq %rbx, %rbx
je 0xe4b29
movq (%rbx), %r14
leaq 0xb824b(%rip), %rax     # 0x19ccc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r14, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0xe4ad3
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0xe4ad3
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0xe4ad3
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0xe4adc
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xe4b03
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
leaq 0xb81d0(%rip), %rdi     # 0x19ccc8
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x40(%r15), %rax
testq %rax, %rax
jne 0xe4b1f
leaq 0x55276(%rip), %rsi     # 0x139d89
movq %r15, %rdi
callq 0xeb49c
movq 0x40(%r15), %rax
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmpq *%rax
movb $0x1, %al
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
movq %rdi, %rbx
cmpq $0x0, 0x8(%rdi)
jne 0xe5192
leaq 0x62a62(%rip), %rdi     # 0x147bda
leaq 0x62967(%rip), %rsi     # 0x147ae6
leaq 0x624bb(%rip), %rcx     # 0x147641
movl $0x445, %edx            # imm = 0x445
xorl %eax, %eax
callq 0xbe592
cmpq $0x0, 0x10(%rbx)
je 0xe51a1
movq %rbx, %rdi
callq 0xe51ce
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0x62a43(%rip), %rsi     # 0x147bf3
callq 0xd170
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0xe51c0
popq %rbx
retq
addq $0x8, %rbx
movq %rbx, %rdi
callq 0xd8c5
jmp 0xe51be
// File: /workspace/github_c_makefile_star2_O3/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 %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
testq %rcx, %rcx
jne 0xe521d
movq %rbx, %rdi
callq 0xe5166
movq 0x10(%rbx), %rcx
movl $0x1, %esi
movq %r15, %rdi
movq %r14, %rdx
callq 0xd310
movq %rax, %r15
cmpq %r14, %rax
je 0xe5242
movq 0x10(%rbx), %rdi
callq 0xd240
testl %eax, %eax
jne 0xe524b
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
callq 0xd92a
jmp 0xe5242
// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdx, %rdx
je 0xe593a
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
xorl %ebx, %ebx
movq 0xa8700(%rip), %r13     # 0x18dfd8
movq 0x10(%r12), %rax
cmpq 0x30(%r12), %rax
jae 0xe58fb
movq 0x28(%r12), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, 0x10(%r12)
movb (%rcx,%rax), %al
movb %al, (%r15,%rbx)
jmp 0xe592d
movq (%r13), %rdi
callq 0xd290
movl %eax, %ebp
movq (%r13), %rdi
callq 0xd380
testl %eax, %eax
jne 0xe593c
movb %bpl, (%r15,%rbx)
movsbl %bpl, %esi
movq %r12, %rdi
callq 0xe594e
movq 0x30(%r12), %rax
movq %rax, 0x10(%r12)
incq %rbx
cmpq %rbx, %r14
jne 0xe58d8
movq %r14, %rbx
jmp 0xe593c
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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 %rbx
movq %rdi, %rbx
addq $0x20, %rdi
callq 0x10a448
movq 0x18(%rbx), %rax
movq 0x30(%rbx), %rcx
cmpq %rax, %rcx
jb 0xe59da
sarq %rax
movq %rcx, %rdx
subq %rax, %rdx
cmpq %rdx, 0x10(%rbx)
jb 0xe59da
testq %rax, %rax
jle 0xe59a9
movq %rax, %rcx
negq %rcx
xorl %edx, %edx
movq 0x28(%rbx), %rsi
movq 0x30(%rbx), %rdi
addq %rsi, %rdi
addq %rcx, %rdi
movb (%rdx,%rdi), %dil
movb %dil, (%rsi,%rdx)
incq %rdx
movq %rcx, %rsi
addq %rdx, %rsi
jne 0xe5984
movq 0x30(%rbx), %rcx
cmpq %rcx, %rax
jae 0xe59c5
movq %rax, %rdx
movq 0x28(%rbx), %rcx
movb $0x0, (%rcx,%rdx)
incq %rdx
movq 0x30(%rbx), %rcx
cmpq %rcx, %rdx
jb 0xe59b1
movq %rax, %rdx
subq %rcx, %rdx
subq %rax, %rcx
addq %rcx, 0x8(%rbx)
addq %rdx, 0x10(%rbx)
movq %rax, 0x30(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/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
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0xa85ee(%rip), %r14     # 0x18dfd8
movq (%r14), %rdi
callq 0xd290
movl %eax, %ebp
movq (%r14), %rdi
callq 0xd380
testl %eax, %eax
jne 0xe5a11
movsbl %bpl, %esi
movq %rbx, %rdi
callq 0xe594e
cmpl $0xa, %ebp
jne 0xe59ea
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/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 %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movabsq $0x100002200, %r14      # imm = 0x100002200
movq 0xa85a9(%rip), %r15     # 0x18dfd8
movq 0x10(%rbx), %rax
cmpq 0x30(%rbx), %rax
jae 0xe5a56
movq 0x28(%rbx), %rcx
movzbl (%rcx,%rax), %ecx
cmpq $0x20, %rcx
ja 0xe5a6c
btq %rcx, %r14
jae 0xe5a6c
incq %rax
movq %rax, 0x10(%rbx)
jmp 0xe5a2f
movq (%r15), %rdi
callq 0xd380
testl %eax, %eax
jne 0xe5a6c
movq %rbx, %rdi
callq 0xe59dc
jmp 0xe5a2f
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_source_stdin_s_parse_em_fv
er_t bcore_source_stdin_s_parse_em_fv( bcore_source_stdin_s* o, sc_t format, va_list args )
{
    if( !format ) return 0;
    if( format[ 0 ] == 0 ) return 0;
    if( format[ 0 ] == ' ' ) bcore_source_stdin_s_consume_whitechars_excluding_newline( o );
    if( o->buf_index == o->buf.size ) bcore_source_stdin_s_push_until_newline_or_eos( o );

    struct { er_t er; st_s* msg; } er_arg;
    er_arg.er = 0;
    er_arg.msg = NULL;
    sz_t index = st_s_parse_efv( &o->buf, o->buf_index, o->buf.size, stdin_s_parse_em_err, &er_arg, format, args );

    if( er_arg.er )
    {
        BLM_INIT();
        st_s* msg_main    = BLM_CREATE( st_s );
        st_s* msg_context = BLM_CREATE( st_s );
        if( er_arg.msg ) BLM_A_PUSH( er_arg.msg );

        msg_context = BLM_A_PUSH( st_s_show_line_context( &o->buf, o->buf_index ) );

        st_s_push_fa( msg_main, "error: #<sc_t>\n", er_arg.msg ? er_arg.msg->sc : "" );
        st_s_push_fa( msg_main, "#<sc_t>\n", msg_context->sc );

        bcore_error_push_sc( er_arg.er, msg_main->sc );
        BLM_DOWN();
    }
    o->buf_index = index;
    return er_arg.er;
}

// Assembly:
testq %rsi, %rsi
je 0xe5b92
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movzbl (%rsi), %eax
testl %eax, %eax
je 0xe5be8
movq %rdx, %r12
movq %rdi, %rbx
cmpl $0x20, %eax
jne 0xe5aaa
movq %rbx, %rdi
callq 0xe5a16
movq 0x10(%rbx), %rsi
movq 0x30(%rbx), %rdx
leaq 0x20(%rbx), %r15
cmpq %rdx, %rsi
jne 0xe5acb
movq %rbx, %rdi
callq 0xe59dc
movq 0x10(%rbx), %rsi
movq 0x30(%rbx), %rdx
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %r13
movaps %xmm0, (%r13)
movq %r12, (%rsp)
leaq 0x114(%rip), %rcx       # 0xe5bf7
movq %r15, %rdi
movq %r13, %r8
movq %r14, %r9
callq 0x10b9e1
movq %rax, %r14
cmpq $0x0, (%r13)
je 0xe5b95
leaq 0xb62ca(%rip), %rax     # 0x19bdd0
movq (%rax), %rsi
leaq 0x28(%rsp), %r13
movq %r13, 0x20(%rsp)
movq %r13, %rdi
callq 0xd6675
xorl %eax, %eax
callq 0x109c82
movabsq $-0x503db0e6e1c2e704, %rbp # imm = 0xAFC24F191E3D18FC
movq %r13, %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0xd67bd
movq %rax, %r12
xorl %eax, %eax
callq 0x109c82
movq %r13, %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0xd67bd
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0xe5b66
leaq 0x28(%rsp), %rdi
callq 0xd6a3c
movq 0x10(%rbx), %rsi
movq %r15, %rdi
callq 0x10b7ae
leaq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0xd6a3c
movq %rax, %r15
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xe5b99
movq 0x8(%rax), %rdx
jmp 0xe5ba0
xorl %eax, %eax
retq
xorl %eax, %eax
jmp 0xe5be4
leaq 0x62b75(%rip), %rdx     # 0x148715
leaq 0x620b6(%rip), %rsi     # 0x147c5d
movq %r12, %rdi
xorl %eax, %eax
callq 0x10a8a5
movq 0x8(%r15), %rdx
leaq 0x684ac(%rip), %rsi     # 0x14e068
movq %r12, %rdi
xorl %eax, %eax
callq 0x10a8a5
movq 0x10(%rsp), %rdi
movq 0x8(%r12), %rsi
callq 0xbeb67
leaq 0x20(%rsp), %rdi
callq 0xd6d0d
movq 0x10(%rsp), %rax
movq %r14, 0x10(%rbx)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_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 %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
movabsq $0x690af8765815ec4d, %rax # imm = 0x690AF8765815EC4D
movq %rax, (%rdi)
movq %rcx, %rdi
callq 0x10a2da
movq %rax, %r15
movq 0x8(%r14), %rdi
callq 0x10a028
movq %r15, 0x8(%r14)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
callq 0xe5a72
testq %rax, %rax
je 0xe5c50
movq %rax, %rbx
callq 0xbeffd
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl %ebx, %esi
popq %rbx
jmp 0x54248
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq 0x8(%rdi), %r12
testq %r12, %r12
je 0xe6434
movq %rdi, %r15
movq %rsi, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x10(%rdi), %r13
movq (%r12), %rbp
leaq 0xb69d8(%rip), %r14     # 0x19ccc8
movl (%r14), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r14,%rax,8), %rcx
movq 0x18(%r14,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0xe6346
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0xe6346
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0xe6346
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0xe634f
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0xe6376
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbp, %rsi
callq 0xe9bc5
movq %rax, %rbx
leaq 0xb695d(%rip), %rdi     # 0x19ccc8
movq %rbp, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xffe83
movq 0x8(%r15), %r15
movq (%r15), %r12
movl (%r14), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r14,%rax,8), %rcx
movq 0x18(%r14,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xe63e1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xe63e1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xe63e1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xe63ea
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0xe6411
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %rbx
leaq 0xb68c2(%rip), %rdi     # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
movq %r15, %rsi
movq 0x8(%rsp), %rdx
movq 0x10(%rsp), %rcx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xffb1d
movq %rsi, %rdi
movq %rdx, %rsi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xbe649