LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_vd_s_push
bcore_arr_vd_s* bcore_arr_vd_s_push( bcore_arr_vd_s* o, vd_t v )
{
    if( o->size >  o->space ) bcore_arr_vd_s_make_strong( o );
    if( o->size == o->space )
    {
        o->data = bcore_un_alloc( sizeof( vd_t ), o->data, o->space, o->space > 0 ? o->space * 2 : 1, &o->space );
    }
    o->data[ o->size++ ] = v;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
movq 0x18(%rdi), %rdx
cmpq %rdx, %rcx
jbe 0x5cc30
movq %rbx, %rdi
callq 0x5cbc5
movq 0x10(%rbx), %rcx
movq 0x18(%rbx), %rdx
movq 0x8(%rbx), %rax
cmpq %rdx, %rcx
jne 0x5cc5e
leaq 0x18(%rbx), %r8
leaq (%rdx,%rdx), %rsi
testq %rdx, %rdx
pushq $0x1
popq %rcx
cmovneq %rsi, %rcx
pushq $0x8
popq %rdi
movq %rax, %rsi
callq 0x60263
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
movq %r14, (%rax,%rcx,8)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_vd_s_push_left
bcore_arr_vd_s* bcore_arr_vd_s_push_left( bcore_arr_vd_s* o, vd_t v )
{
    bcore_arr_vd_s_push( o, NULL );
    for( sz_t i = o->size - 1; i > 0; i-- ) o->data[ i ] = o->data[ i - 1 ];
    o->data[ 0 ] = v;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
xorl %esi, %esi
callq 0x5cc09
movq 0x10(%rbx), %rax
decq %rax
movq 0x8(%rbx), %rcx
testq %rax, %rax
jle 0x5cca1
movq -0x8(%rcx,%rax,8), %rdx
movq %rdx, (%rcx,%rax,8)
jmp 0x5cc8a
movq %r14, (%rcx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_vd_s_reorder
bcore_arr_vd_s* bcore_arr_vd_s_reorder( bcore_arr_vd_s* o, const bcore_arr_uz_s* order )
{
    if( o->space < o->size ) bcore_arr_vd_s_make_strong( o );
    uz_t buf_space = 0;
    vd_t* buf = bcore_u_alloc( sizeof( vd_t ), NULL, order->size, &buf_space );
    for( uz_t i = 0; i < order->size; i++ )
    {
        assert( order->data[ i ] < o->size );
        buf[ i ] = o->data[ order->data[ i ] ];
    }
    bcore_un_alloc( sizeof( vd_t ), o->data, o->space, 0, &o->space );
    o->data = buf;
    o->space = buf_space;
    o->size = order->size;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rdi), %rax
cmpq 0x10(%rdi), %rax
jae 0x5ccf2
movq %rbx, %rdi
callq 0x5cbc5
leaq 0x18(%rbx), %r15
leaq 0x8(%rsp), %rcx
andq $0x0, (%rcx)
movq 0x10(%r14), %rdx
xorl %r13d, %r13d
pushq $0x8
popq %rdi
xorl %esi, %esi
callq 0x6025e
movq %rax, %r12
movq 0x8(%rbx), %rsi
cmpq 0x10(%r14), %r13
jae 0x5cd32
movq 0x8(%r14), %rax
movq (%rax,%r13,8), %rax
movq (%rsi,%rax,8), %rax
movq %rax, (%r12,%r13,8)
incq %r13
jmp 0x5cd13
movq 0x18(%rbx), %rdx
pushq $0x8
popq %rdi
xorl %ecx, %ecx
movq %r15, %r8
callq 0x60263
movq %r12, 0x8(%rbx)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rbx)
movq 0x10(%r14), %rax
movq %rax, 0x10(%rbx)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_vd_s_find
uz_t bcore_arr_vd_s_find( const bcore_arr_vd_s* o, uz_t start, uz_t end, vd_t v )
{
    if( end >= start )
    {
        uz_t end_l = end < o->size ? end : o->size;
        for( uz_t j = start; j < end_l; j++ ) if( o->data[ j ] == v ) return j;
        return end_l;
    }
    else
    {
        uz_t start_l = start < o->size ? start : o->size;
        for( uz_t j = start_l - 1;  j < start_l && j >= end; j-- ) if( o->data[ j ] == v ) return j;
        return start_l;
    }
}

// Assembly:
movq 0x10(%rdi), %rax
cmpq %rsi, %rdx
jae 0x5cd94
cmpq %rsi, %rax
cmovbq %rax, %rsi
movq %rsi, %rax
decq %rax
cmpq %rsi, %rax
jae 0x5cdb9
cmpq %rdx, %rax
jb 0x5cdb9
movq 0x8(%rdi), %r8
cmpq %rcx, (%r8,%rax,8)
jne 0x5cd7c
retq
cmpq %rdx, %rax
cmovbq %rax, %rdx
cmpq %rdx, %rsi
movq %rdx, %rax
cmovaq %rsi, %rax
cmpq %rdx, %rsi
jae 0x5cdc0
movq 0x8(%rdi), %r8
cmpq %rcx, (%r8,%rsi,8)
je 0x5cdbd
incq %rsi
jmp 0x5cda5
movq %rsi, %rax
retq
movq %rsi, %rax
cmpq %rdx, %rax
cmovbq %rax, %rdx
movq %rdx, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_copy
void bcore_arr_fp_s_copy( bcore_arr_fp_s* o, const bcore_arr_fp_s* src )
{
    if( o->space < src->size )
    {
        if( o->space > 0 ) o->data = bcore_un_alloc( sizeof( fp_t ), o->data, o->space, 0, &o->space );
        o->data = bcore_un_alloc( sizeof( fp_t ), NULL, o->space, src->size, &o->space );
    }
    bcore_u_memcpy( sizeof( fp_t ), o->data, src->data, src->size );
    o->size = src->size;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rdi), %rdx
movq 0x10(%rsi), %rcx
cmpq %rcx, %rdx
jae 0x5ce66
leaq 0x18(%rbx), %r15
testq %rdx, %rdx
je 0x5ce6c
movq 0x8(%rbx), %rsi
pushq $0x8
popq %rdi
xorl %ecx, %ecx
movq %r15, %r8
callq 0x60263
movq %rax, 0x8(%rbx)
movq 0x18(%rbx), %rdx
movq 0x10(%r14), %rcx
jmp 0x5ce6e
movq 0x8(%rbx), %rsi
jmp 0x5ce86
xorl %edx, %edx
pushq $0x8
popq %rdi
xorl %esi, %esi
movq %r15, %r8
callq 0x60263
movq %rax, %rsi
movq %rax, 0x8(%rbx)
movq 0x10(%r14), %rcx
movq 0x8(%r14), %rdx
pushq $0x8
popq %rdi
callq 0x6033c
movq 0x10(%r14), %rax
movq %rax, 0x10(%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_set_space
bcore_arr_fp_s* bcore_arr_fp_s_set_space( bcore_arr_fp_s* o, uz_t space )
{
    if( o->space == 0 )
    {
        o->data = bcore_u_alloc( sizeof( fp_t ), NULL, space, &o->space );
    }
    else
    {
        o->data = bcore_un_alloc( sizeof( fp_t ), o->data, o->space, space, &o->space );
    }
    if( o->size > space ) o->size = space;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x18(%rdi), %r8
movq 0x18(%rdi), %rdx
testq %rdx, %rdx
je 0x5cf3c
movq 0x8(%rbx), %rsi
pushq $0x8
popq %rdi
movq %r14, %rcx
callq 0x60263
jmp 0x5cf4c
pushq $0x8
popq %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %r8, %rcx
callq 0x6025e
movq %rax, 0x8(%rbx)
cmpq %r14, 0x10(%rbx)
jbe 0x5cf5a
movq %r14, 0x10(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_set_size
bcore_arr_fp_s* bcore_arr_fp_s_set_size( bcore_arr_fp_s* o, sz_t size )
{
    bcore_arr_fp_s_set_space( o, size );
    if( size > o->size )
    {
        for( sz_t i = o->size; i < size; i++ ) o->data[ i ] = NULL;
    }
    o->size = size;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x5cf14
movq 0x10(%rbx), %rax
cmpq %r14, %rax
jae 0x5cf90
cmpq %r14, %rax
jge 0x5cf90
movq 0x8(%rbx), %rcx
andq $0x0, (%rcx,%rax,8)
incq %rax
jmp 0x5cf7d
movq %r14, 0x10(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_fill
bcore_arr_fp_s* bcore_arr_fp_s_fill( bcore_arr_fp_s* o, uz_t size, fp_t v )
{
    bcore_arr_fp_s_set_space( o, size );
    for( uz_t i = 0; i < size; i++ ) o->data[ i ] = v;
    o->size = size;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
callq 0x5cf14
xorl %eax, %eax
cmpq %rax, %r14
je 0x5cfc6
movq 0x8(%rbx), %rcx
movq %r15, (%rcx,%rax,8)
incq %rax
jmp 0x5cfb4
movq %r14, 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_push
bcore_arr_fp_s* bcore_arr_fp_s_push( bcore_arr_fp_s* o, fp_t v )
{
    if( o->size >  o->space ) bcore_arr_fp_s_make_strong( o );
    if( o->size == o->space )
    {
        o->data = bcore_un_alloc( sizeof( fp_t ), o->data, o->space, o->space > 0 ? o->space * 2 : 1, &o->space );
    }
    o->data[ o->size++ ] = v;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
movq 0x18(%rdi), %rdx
cmpq %rdx, %rcx
jbe 0x5d03e
movq %rbx, %rdi
callq 0x5cfd3
movq 0x10(%rbx), %rcx
movq 0x18(%rbx), %rdx
movq 0x8(%rbx), %rax
cmpq %rdx, %rcx
jne 0x5d06c
leaq 0x18(%rbx), %r8
leaq (%rdx,%rdx), %rsi
testq %rdx, %rdx
pushq $0x1
popq %rcx
cmovneq %rsi, %rcx
pushq $0x8
popq %rdi
movq %rax, %rsi
callq 0x60263
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
movq %r14, (%rax,%rcx,8)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_push_left
bcore_arr_fp_s* bcore_arr_fp_s_push_left( bcore_arr_fp_s* o, fp_t v )
{
    bcore_arr_fp_s_push( o, NULL );
    for( sz_t i = o->size - 1; i > 0; i-- ) o->data[ i ] = o->data[ i - 1 ];
    o->data[ 0 ] = v;
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
xorl %esi, %esi
callq 0x5d017
movq 0x10(%rbx), %rax
decq %rax
movq 0x8(%rbx), %rcx
testq %rax, %rax
jle 0x5d0af
movq -0x8(%rcx,%rax,8), %rdx
movq %rdx, (%rcx,%rax,8)
jmp 0x5d098
movq %r14, (%rcx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_reorder
bcore_arr_fp_s* bcore_arr_fp_s_reorder( bcore_arr_fp_s* o, const bcore_arr_uz_s* order )
{
    if( o->space < o->size ) bcore_arr_fp_s_make_strong( o );
    uz_t buf_space = 0;
    fp_t* buf = bcore_u_alloc( sizeof( fp_t ), NULL, order->size, &buf_space );
    for( uz_t i = 0; i < order->size; i++ )
    {
        assert( order->data[ i ] < o->size );
        buf[ i ] = o->data[ order->data[ i ] ];
    }
    bcore_un_alloc( sizeof( fp_t ), o->data, o->space, 0, &o->space );
    o->data = buf;
    o->space = buf_space;
    o->size = order->size;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rdi), %rax
cmpq 0x10(%rdi), %rax
jae 0x5d100
movq %rbx, %rdi
callq 0x5cfd3
leaq 0x18(%rbx), %r15
leaq 0x8(%rsp), %rcx
andq $0x0, (%rcx)
movq 0x10(%r14), %rdx
xorl %r13d, %r13d
pushq $0x8
popq %rdi
xorl %esi, %esi
callq 0x6025e
movq %rax, %r12
movq 0x8(%rbx), %rsi
cmpq 0x10(%r14), %r13
jae 0x5d140
movq 0x8(%r14), %rax
movq (%rax,%r13,8), %rax
movq (%rsi,%rax,8), %rax
movq %rax, (%r12,%r13,8)
incq %r13
jmp 0x5d121
movq 0x18(%rbx), %rdx
pushq $0x8
popq %rdi
xorl %ecx, %ecx
movq %r15, %r8
callq 0x60263
movq %r12, 0x8(%rbx)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rbx)
movq 0x10(%r14), %rax
movq %rax, 0x10(%rbx)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_fp_s_find
uz_t bcore_arr_fp_s_find( const bcore_arr_fp_s* o, uz_t start, uz_t end, fp_t v )
{
    if( end >= start )
    {
        uz_t end_l = end < o->size ? end : o->size;
        for( uz_t j = start; j < end_l; j++ ) if( o->data[ j ] == v ) return j;
        return end_l;
    }
    else
    {
        uz_t start_l = start < o->size ? start : o->size;
        for( uz_t j = start_l - 1;  j < start_l && j >= end; j-- ) if( o->data[ j ] == v ) return j;
        return start_l;
    }
}

// Assembly:
movq 0x10(%rdi), %rax
cmpq %rsi, %rdx
jae 0x5d1a2
cmpq %rsi, %rax
cmovbq %rax, %rsi
movq %rsi, %rax
decq %rax
cmpq %rsi, %rax
jae 0x5d1c7
cmpq %rdx, %rax
jb 0x5d1c7
movq 0x8(%rdi), %r8
cmpq %rcx, (%r8,%rax,8)
jne 0x5d18a
retq
cmpq %rdx, %rax
cmovbq %rax, %rdx
cmpq %rdx, %rsi
movq %rdx, %rax
cmovaq %rsi, %rax
cmpq %rdx, %rsi
jae 0x5d1ce
movq 0x8(%rdi), %r8
cmpq %rcx, (%r8,%rsi,8)
je 0x5d1cb
incq %rsi
jmp 0x5d1b3
movq %rsi, %rax
retq
movq %rsi, %rax
cmpq %rdx, %rax
cmovbq %rax, %rdx
movq %rdx, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_sr_s_clear
bcore_arr_sr_s* bcore_arr_sr_s_clear( bcore_arr_sr_s* o )
{
    if( o->space == 0 )
    {
        o->data = NULL; // in case array is referencing external data
        o->size = 0;
    }

    for( uz_t i = 0; i < o->size; i++ ) sr_down( o->data[ i ] );
    o->size = 0;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rdi), %r14
cmpq $0x0, 0x18(%rdi)
jne 0x5d2bb
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
xorl %r15d, %r15d
xorl %r12d, %r12d
cmpq 0x10(%rbx), %r12
jae 0x5d304
movq (%r14), %rax
movq 0x10(%rax,%r15), %rcx
movq %rcx, 0x30(%rsp)
movups (%rax,%r15), %xmm0
movaps %xmm0, 0x20(%rsp)
testb $0x2, %cl
je 0x5d2fb
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x8cdc1
incq %r12
addq $0x18, %r15
jmp 0x5d2c1
andq $0x0, 0x10(%rbx)
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_sr_s_push
sr_s* bcore_arr_sr_s_push( bcore_arr_sr_s* o )
{
    if( o->size > o->space ) bcore_arr_sr_s_make_strong( o );
    if( o->size == o->space )
    {
        o->data = bcore_un_alloc( sizeof( sr_s ), o->data, o->space, o->space > 0 ? o->space * 2 : 1, &o->space );
    }
    o->data[ o->size++ ] = sr_null();
    return &o->data[ o->size - 1 ];
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
movq 0x18(%rdi), %rdx
cmpq %rdx, %rcx
jbe 0x5d38a
movq %rbx, %rdi
callq 0x5d351
movq 0x10(%rbx), %rcx
movq 0x18(%rbx), %rdx
movq 0x8(%rbx), %rax
cmpq %rdx, %rcx
jne 0x5d3b8
leaq 0x18(%rbx), %r8
leaq (%rdx,%rdx), %rsi
testq %rdx, %rdx
pushq $0x1
popq %rcx
cmovneq %rsi, %rcx
pushq $0x18
popq %rdi
movq %rax, %rsi
callq 0x60263
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
imulq $0x18, %rcx, %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rcx)
andq $0x0, 0x10(%rax,%rcx)
movq 0x8(%rbx), %rax
imulq $0x18, 0x10(%rbx), %rcx
addq %rcx, %rax
addq $-0x18, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_sr_s_push_sr
sr_s* bcore_arr_sr_s_push_sr( bcore_arr_sr_s* o, sr_s v )
{
    if( o->size > o->space ) bcore_arr_sr_s_make_strong( o );
    if( o->size == o->space )
    {
        o->data = bcore_un_alloc( sizeof( sr_s ), o->data, o->space, o->space > 0 ? o->space * 2 : 1, &o->space );
    }
    o->data[ o->size++ ] = v;
    return &o->data[ o->size - 1 ];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
movq 0x18(%rdi), %rdx
cmpq %rdx, %rcx
jbe 0x5d407
movq %rbx, %rdi
callq 0x5d351
movq 0x10(%rbx), %rcx
movq 0x18(%rbx), %rdx
leaq 0x20(%rsp), %r14
movq 0x8(%rbx), %rax
cmpq %rdx, %rcx
jne 0x5d43a
leaq 0x18(%rbx), %r8
leaq (%rdx,%rdx), %rsi
testq %rdx, %rdx
pushq $0x1
popq %rcx
cmovneq %rsi, %rcx
pushq $0x18
popq %rdi
movq %rax, %rsi
callq 0x60263
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rbx)
imulq $0x18, %rcx, %rcx
movq 0x10(%r14), %rdx
movq %rdx, 0x10(%rax,%rcx)
movups (%r14), %xmm0
movups %xmm0, (%rax,%rcx)
movq 0x8(%rbx), %rax
imulq $0x18, 0x10(%rbx), %rcx
addq %rcx, %rax
addq $-0x18, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_sr_s_push_tp
sr_s* bcore_arr_sr_s_push_tp( bcore_arr_sr_s* o, tp_t type )
{
    if( o->size > o->space ) bcore_arr_sr_s_make_strong( o );
    if( o->size == o->space )
    {
        o->data = bcore_un_alloc( sizeof( sr_s ), o->data, o->space, o->space > 0 ? o->space * 2 : 1, &o->space );
    }
    o->data[ o->size++ ] = sr_create( type );
    return &o->data[ o->size - 1 ];
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %r13
movq 0x18(%rdi), %rdx
cmpq %rdx, %r13
jbe 0x5d49b
movq %rbx, %rdi
callq 0x5d351
movq 0x10(%rbx), %r13
movq 0x18(%rbx), %rdx
movq 0x8(%rbx), %r15
cmpq %rdx, %r13
jne 0x5d4cc
leaq 0x18(%rbx), %r8
leaq (%rdx,%rdx), %rax
testq %rdx, %rdx
pushq $0x1
popq %rcx
cmovneq %rax, %rcx
pushq $0x18
popq %rdi
movq %r15, %rsi
callq 0x60263
movq %rax, %r15
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %r13
leaq 0x1(%r13), %rax
movq %rax, 0x10(%rbx)
movq %r14, %rdi
callq 0x8cd0a
movq %rax, %r12
testq %r14, %r14
je 0x5d4ee
movq %r14, %rdi
callq 0x8cd25
jmp 0x5d4f0
xorl %eax, %eax
imulq $0x18, %r13, %rcx
movq %r12, (%r15,%rcx)
movq %rax, 0x8(%r15,%rcx)
movq $0x2, 0x10(%r15,%rcx)
movq 0x8(%rbx), %rax
imulq $0x18, 0x10(%rbx), %rcx
addq %rcx, %rax
addq $-0x18, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_sr_s_to_arr_st
const bcore_arr_sr_s* bcore_arr_sr_s_to_arr_st( const bcore_arr_sr_s* o, bcore_arr_st_s* arr )
{
    bcore_arr_st_s_clear( arr );
    bcore_arr_st_s_set_size( arr, o->size );
    for( uz_t i = 0; i < o->size; i++ )
    {
        if( sr_s_type( &o->data[ i ] ) == TYPEOF_st_s ) arr->data[ i ] = st_s_clone( ( const st_s* )o->data[ i ].o );
    }
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
callq 0x5c394
movq 0x10(%rbx), %rsi
movq %r14, %rdi
callq 0x5c40b
pushq $0x1
popq %r15
xorl %r12d, %r12d
movabsq $-0x503db0e6e1c2e704, %r13 # imm = 0xAFC24F191E3D18FC
cmpq 0x10(%rbx), %r12
jae 0x5d92d
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x5d924
movq (%rax,%r15,8), %rcx
testq %rcx, %rcx
je 0x5d924
cmpq %r13, 0x8(%rcx)
jne 0x5d924
movq -0x8(%rax,%r15,8), %rdi
callq 0x8efe4
movq 0x8(%r14), %rcx
movq %rax, (%rcx,%r12,8)
incq %r12
addq $0x3, %r15
jmp 0x5d8f4
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_ymd_s_from_cday
bcore_cday_ymd_s* bcore_cday_ymd_s_from_cday( bcore_cday_ymd_s* o, s2_t cday )
{
    s2_t lyr = cday / ( 365 * 4 + 1 );
    s2_t ldy = cday - lyr * ( 365 * 4 + 1 );
    s2_t qyr = ldy / 365;
    qyr = ( qyr > 3 ) ? 3 : qyr;
    s2_t yr = ( lyr * 4 ) + qyr;
    s2_t dy = ldy - qyr * 365;
    s2_t mt = 3;

    s2_t dtbl[] = { 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31 };

    for( s2_t i = 0; i < 11; i++ )
    {
        if( dtbl[ i ] > dy ) break;
        dy -= dtbl[ i ];
        mt++;
    }

    o->d   = dy + 1;
    o->m = ( mt <= 12 ) ? mt : mt - 12;
    o->y  = 1900 + yr + ( ( mt <= 12 ) ? 0 : 1 );

    return o;
}

// Assembly:
movl $0x5b5, %ecx            # imm = 0x5B5
movl %esi, %eax
cltd
idivl %ecx
movl %eax, %ecx
imull $0xfffffa4b, %eax, %r8d # imm = 0xFFFFFA4B
addl %esi, %r8d
movl $0x16d, %esi            # imm = 0x16D
movl %r8d, %eax
cltd
idivl %esi
cmpl $0x3, %eax
pushq $0x3
popq %r9
cmovgel %r9d, %eax
imull $0xfffffe93, %eax, %edx # imm = 0xFFFFFE93
addl %r8d, %edx
xorl %r8d, %r8d
pushq $0xe
popq %rsi
leaq 0x61dbc(%rip), %r10     # 0xc0b00
cmpq $0x2c, %r8
je 0x5ed62
movl %edx, %r11d
subl (%r8,%r10), %r11d
jl 0x5ed5f
incl %r9d
addq $0x4, %r8
movl %r11d, %edx
jmp 0x5ed44
movl %r9d, %esi
incl %edx
leal -0xc(%rsi), %r8d
cmpl $0xd, %esi
cmovbl %esi, %r8d
movl %edx, 0x10(%rdi)
leal (%rax,%rcx,4), %eax
sbbl $-0x1, %eax
movl %r8d, 0xc(%rdi)
addl $0x76c, %eax            # imm = 0x76C
movl %eax, 0x8(%rdi)
movq %rdi, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_ymd_s_to_cday
s2_t bcore_cday_ymd_s_to_cday( const bcore_cday_ymd_s* o )
{
    bcore_cday_ymd_s_check_plausibility( o );

    s2_t yr = o->y - 1900;
    s2_t leap_days = 1 + ( yr / 4 );
    if( ( o->m < 3 ) && ( yr % 4 == 0 ) ) leap_days--;

    s2_t sum = yr * 365 + leap_days;

    switch( o->m - 1 )
    {
        case 11: sum += 30;
        case 10: sum += 31;
        case  9: sum += 30;
        case  8: sum += 31;
        case  7: sum += 31;
        case  6: sum += 30;
        case  5: sum += 31;
        case  4: sum += 30;
        case  3: sum += 31;
        case  2: sum += 28;
        case  1: sum += 31;
        case  0:
        default: break;
    }

    sum += o->d - 1;

    if( sum < 60 ) ERR( "Lowest possible cday '0' subceeded. 0 is mapped to 01.03.1900" );
    sum -= 60;

    return sum;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq 0x5e9c4
movl 0x8(%rbx), %edi
movl 0xc(%rbx), %esi
movl %edi, %ecx
addl $0xfffff894, %ecx       # imm = 0xFFFFF894
pushq $0x4
popq %r8
movl %ecx, %eax
cltd
idivl %r8d
cmpl $0x3, %esi
setge %dl
testb $0x3, %dil
setne %dil
orb %dl, %dil
movzbl %dil, %edx
imull $0x16d, %ecx, %ecx      # imm = 0x16D
addl %edx, %ecx
addl %eax, %ecx
addl $-0x2, %esi
cmpl $0xa, %esi
ja 0x5eff6
leaq 0x61b04(%rip), %rax     # 0xc0ad0
movslq (%rax,%rsi,4), %rdx
addq %rax, %rdx
jmpq *%rdx
addl $0x1e, %ecx
addl $0x1f, %ecx
addl $0x1e, %ecx
addl $0x1f, %ecx
addl $0x1f, %ecx
addl $0x1e, %ecx
addl $0x1f, %ecx
addl $0x1e, %ecx
addl $0x1f, %ecx
addl $0x1c, %ecx
addl $0x1f, %ecx
movl 0x10(%rbx), %eax
leal (%rcx,%rax), %ebx
decl %ebx
cmpl $0x3b, %ebx
jg 0x5f024
leaq 0x61c9e(%rip), %rdi     # 0xc0ca8
leaq 0x61b80(%rip), %rsi     # 0xc0b91
leaq 0x61ca9(%rip), %rcx     # 0xc0cc1
movl $0x8e, %edx
xorl %eax, %eax
callq 0x60031
addl $-0x3c, %ebx
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_ymd_s_to_wnum
s2_t bcore_cday_ymd_s_to_wnum( const bcore_cday_ymd_s* o )
{
    bcore_cday_ymd_s ymd_l;
    bcore_cday_ymd_s_init( &ymd_l );
    ymd_l.y = o->y;
    ymd_l.m = 1;
    ymd_l.d = 1;

    sz_t first_cday = bcore_cday_ymd_s_to_cday( &ymd_l );
    sz_t first_wday = bcore_cday_to_wday( first_cday );

    // monday of week of first_cday
    sz_t mo1_cday = first_cday - first_wday;
    if( first_wday > 3 ) mo1_cday += 7;

    sz_t cur_cday = bcore_cday_ymd_s_to_cday( o );

    if( cur_cday < mo1_cday ) // last week of last year
    {
        if( first_wday == 4 ) return 53;
        if( first_wday == 5 ) return ( ( ymd_l.y - 1 ) % 4 ) == 0 ? 53 : 52;
        return 52;
    }
    else
    {
        sz_t wnum = 1 + ( cur_cday - mo1_cday ) / 7;
        if( wnum == 53 )
        {
            if( ( first_wday == 3 ) || ( ( ( ymd_l.y % 4 ) == 0 ) && ( first_wday == 2 ) ) )
            {
                return 53;
            }
            else
            {
                return 1;
            }
        }
        return wnum;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %r14
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x30866
movl 0x8(%r14), %eax
movl %eax, 0x8(%rbx)
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0xc(%rbx)
movq %rbx, %rdi
callq 0x5ef7d
movslq %eax, %rcx
leal 0x3(%rcx), %eax
pushq $0x7
popq %rsi
cltd
idivl %esi
movl %edx, %ebx
movslq %edx, %rax
subq %rax, %rcx
leaq 0x7(%rcx), %r15
cmpl $0x4, %eax
cmovlq %rcx, %r15
movq %r14, %rdi
callq 0x5ef7d
cltq
subq %r15, %rax
jge 0x5f100
cmpl $0x4, %ebx
je 0x5f116
cmpl $0x5, %ebx
jne 0x5f11a
movl 0x10(%rsp), %ecx
decl %ecx
andl $0x3, %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
adcl $0x34, %eax
jmp 0x5f134
pushq $0x7
popq %rcx
cqto
idivq %rcx
incq %rax
cmpq $0x35, %rax
jne 0x5f134
cmpl $0x3, %ebx
jne 0x5f11f
pushq $0x35
jmp 0x5f11c
pushq $0x34
popq %rax
jmp 0x5f134
movl 0x10(%rsp), %eax
andl $0x3, %eax
xorl $0x2, %ebx
orl %eax, %ebx
pushq $0x35
popq %rcx
pushq $0x1
popq %rax
cmovel %ecx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_to_wnum
s2_t bcore_cday_to_wnum( s2_t cday )
{
    bcore_cday_ymd_s ymd_l;
    bcore_cday_ymd_s_init( &ymd_l );
    bcore_cday_ymd_s_from_cday( &ymd_l, cday );
    s2_t wnum = bcore_cday_ymd_s_to_wnum( &ymd_l );
    return wnum;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movl %edi, %ebx
movq %rsp, %r14
movq %r14, %rdi
callq 0x30866
movq %r14, %rdi
movl %ebx, %esi
callq 0x5ed02
movq %r14, %rdi
callq 0x5f07f
addq $0x18, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_from_sc
s2_t bcore_cday_from_sc( sc_t sc )
{
    bcore_cday_ymd_s* ymd = bcore_cday_ymd_s_create();
    bcore_cday_ymd_s_from_sc( ymd, sc );
    s2_t cday = bcore_cday_ymd_s_to_cday( ymd );
    bcore_cday_ymd_s_discard( ymd );
    return cday;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
callq 0x308a5
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x5ef50
movq %r14, %rdi
callq 0x5ef7d
movl %eax, %ebx
movq %r14, %rdi
callq 0x308b4
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_from_source
s2_t bcore_cday_from_source( bcore_source* source )
{
    bcore_cday_ymd_s* ymd = bcore_cday_ymd_s_create();
    bcore_cday_ymd_s_from_source( ymd, source );
    s2_t cday = bcore_cday_ymd_s_to_cday( ymd );
    bcore_cday_ymd_s_discard( ymd );
    return cday;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
callq 0x308a5
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x5ed88
movq %r14, %rdi
callq 0x5ef7d
movl %eax, %ebx
movq %r14, %rdi
callq 0x308b4
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_utc_s_from_system
bcore_cday_utc_s* bcore_cday_utc_s_from_system( bcore_cday_utc_s* o )
{
    u3_t stime = ( u3_t )time( NULL );
    s2_t epoch_days = stime / ( 24 * 3600 );
    s2_t seconds    = stime % ( 24 * 3600 );
    o->cday = bcore_cday_of_epoch() + epoch_days;
    o->ms = seconds * 1000;
    return o;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
xorl %edi, %edi
callq 0xd4e0
movl $0x15180, %ecx          # imm = 0x15180
xorl %edx, %edx
divq %rcx
addl $0x63a4, %eax           # imm = 0x63A4
movl %eax, 0x8(%rbx)
imull $0x3e8, %edx, %eax      # imm = 0x3E8
movl %eax, 0xc(%rbx)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_utc_s_to_sink
const bcore_cday_utc_s* bcore_cday_utc_s_to_sink( const bcore_cday_utc_s* o, bcore_sink* sink )
{
    bcore_cday_to_sink( o->cday, sink );
    s2_t secs = o->ms / 1000;
    s2_t hh = secs / 3600;
    secs = secs % 3600;
    s2_t mm = secs / 60;
    secs = secs % 60;
    s2_t ss = secs;
    bcore_sink_a_push_fa( sink, "T#pl2'0'{#<s2_t>}:#pl2'0'{#<s2_t>}:#pl2'0'{#<s2_t>}Z", hh, mm, ss );
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movl 0x8(%rdi), %edi
callq 0x5f1aa
movl 0xc(%rbx), %ecx
movl $0x3e8, %esi            # imm = 0x3E8
movl %ecx, %eax
cltd
idivl %esi
movl %eax, %esi
movl $0x36ee80, %edi         # imm = 0x36EE80
movl %ecx, %eax
cltd
idivl %edi
movl %eax, %r9d
movl $0xe10, %ecx            # imm = 0xE10
movl %esi, %eax
cltd
idivl %ecx
movl %edx, %eax
movw $0x3c, %cx
cwtd
idivw %cx
movswl %ax, %ecx
movswl %dx, %r8d
leaq 0x619fa(%rip), %rsi     # 0xc0d2d
movq %r14, %rdi
movl %r9d, %edx
xorl %eax, %eax
callq 0x87cf1
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_utc_s_from_source
bcore_cday_utc_s* bcore_cday_utc_s_from_source( bcore_cday_utc_s* o, bcore_source* source )
{
    o->cday = bcore_cday_from_source( source );
    s2_t hh = 0;
    s2_t mm = 0;
    s2_t ss = 0;
    bcore_source_a_parse_fa( source, "T#-?'0'#<s2_t*>:#-?'0'#<s2_t*>:#-?'0'#<s2_t*>Z", &hh, &mm, &ss );
    o->ms = ( hh * 3600 + mm * 60 + ss ) * 1000;
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
callq 0x5f252
movl %eax, 0x8(%rbx)
leaq 0xc(%rsp), %r15
andl $0x0, (%r15)
leaq 0x8(%rsp), %r12
andl $0x0, (%r12)
leaq 0x4(%rsp), %r13
andl $0x0, (%r13)
leaq 0x619d5(%rip), %rsi     # 0xc0d62
movq %r14, %rdi
movq %r15, %rdx
movq %r12, %rcx
movq %r13, %r8
xorl %eax, %eax
callq 0x88fce
imull $0xe10, (%r15), %eax    # imm = 0xE10
imull $0x3c, (%r12), %ecx
addl %eax, %ecx
addl (%r13), %ecx
imull $0x3e8, %ecx, %eax      # imm = 0x3E8
movl %eax, 0xc(%rbx)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_write_fv
void bcore_write_fv( FILE* file, sc_t format, va_list args )
{
    st_s* s = st_s_create_fv( format, args );
    fwrite( s->sc, 1, s->size, file );
    fflush( file );
    st_s_discard( s );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x8ec4c
movq %rax, %r14
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rdx
pushq $0x1
popq %rsi
movq %rbx, %rcx
callq 0xd3d0
movq %rbx, %rdi
callq 0xd4f0
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x8edd4
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_writeln_fv
void bcore_writeln_fv( FILE* file, sc_t format, va_list args )
{
    st_s* s = st_s_create_fv( format, args );
    fwrite( s->sc, 1, s->size, file );
    fwrite( "\n", 1, 1, file );
    fflush( file );
    st_s_discard( s );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x8ec4c
movq %rax, %r14
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rdx
pushq $0x1
popq %rsi
movq %rbx, %rcx
callq 0xd3d0
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0xd200
movq %rbx, %rdi
callq 0xd4f0
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x8edd4
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_ext_wrn
void bcore_ext_wrn( sc_t func, sc_t file, int line, sc_t format, ... )
{
    fprintf( stderr, "warning:%s:%i:0 in function %s:\n", file, line, func );
    va_list args;
    va_start( args, format );
    vfprintf( stderr, format, args );
    va_end( args );
    fprintf( stderr, "\n" );
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xd0, %rsp
movq %rcx, %rbx
movl %edx, %ecx
movq %rsi, %rdx
movq %rdi, %r10
testb %al, %al
je 0x5fdc3
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)
leaq 0x20(%rsp), %r14
movq %r8, 0x20(%r14)
movq %r9, 0x28(%r14)
movq 0xaa209(%rip), %r15     # 0x109fe0
movq (%r15), %rdi
leaq 0x61377(%rip), %rsi     # 0xc1158
movq %r10, %r8
xorl %eax, %eax
callq 0xd430
movq %rsp, %rdx
movq %r14, 0x10(%rdx)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rdx)
movabsq $0x3000000020, %rax     # imm = 0x3000000020
movq %rax, (%rdx)
movq (%r15), %rdi
movq %rbx, %rsi
callq 0xd1e0
movq (%r15), %rsi
pushq $0xa
popq %rdi
callq 0xd200
addq $0xd0, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_ext_err
void bcore_ext_err( sc_t func, sc_t file, int line, sc_t format, ... )
{
    fprintf( stderr, "error:%s:%i:0 in function %s:\n", file, line, func );
    va_list args;
    va_start( args, format );
    bcore_wrnv( format, args );
    va_end( args );
    bcore_abort();
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movq %rcx, %rbx
movl %edx, %ecx
movq %rsi, %rdx
movq %rdi, %r10
testb %al, %al
je 0x60081
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)
leaq 0x20(%rsp), %r14
movq %r8, 0x20(%r14)
movq %r9, 0x28(%r14)
movq 0xa9f4b(%rip), %rax     # 0x109fe0
movq (%rax), %rdi
leaq 0x610da(%rip), %rsi     # 0xc1179
movq %r10, %r8
xorl %eax, %eax
callq 0xd430
movq %rsp, %rsi
movq %r14, 0x10(%rsi)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rsi)
movabsq $0x3000000020, %rax     # imm = 0x3000000020
movq %rax, (%rsi)
movq %rbx, %rdi
callq 0x5fcaa
callq 0xd0d0
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_ext_err_fa
void bcore_ext_err_fa( sc_t func, sc_t file, int line, sc_t format, ... )
{
    fprintf( stderr, "error:%s:%i:0 in function %s:\n", file, line, func );
    va_list args;
    va_start( args, format );
    bcore_writeln_fv( stderr, format, args );
    va_end( args );
    bcore_abort();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xd0, %rsp
movq %rcx, %rbx
movl %edx, %ecx
movq %rsi, %rdx
movq %rdi, %r10
testb %al, %al
je 0x601d8
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)
leaq 0x20(%rsp), %r14
movq %r8, 0x20(%r14)
movq %r9, 0x28(%r14)
movq 0xa9df4(%rip), %r15     # 0x109fe0
movq (%r15), %rdi
leaq 0x60f83(%rip), %rsi     # 0xc1179
movq %r10, %r8
xorl %eax, %eax
callq 0xd430
movq %rsp, %rdx
movq %r14, 0x10(%rdx)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rdx)
movabsq $0x3000000020, %rax     # imm = 0x3000000020
movq %rax, (%rdx)
movq (%r15), %rdi
movq %rbx, %rsi
callq 0x5fa7e
callq 0xd0d0
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_control.c
// Function: bcore_get_time
void bcore_get_time( u3_t* seconds, u3_t* microseconds )
{
    struct timeval t = { 0 };
    gettimeofday( &t, NULL );
    if( seconds ) *seconds = t.tv_sec;
    if( microseconds ) *microseconds = t.tv_usec;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rsi, %rbx
movq %rdi, %r14
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0xd140
testq %r14, %r14
je 0x603ac
movq (%rsp), %rax
movq %rax, (%r14)
testq %rbx, %rbx
je 0x603b9
movq 0x8(%rsp), %rax
movq %rax, (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_error_manager.c
// Function: bcore_error_push_fv
er_t bcore_error_push_fv( er_t id, sc_t format, va_list args )
{
    st_s* msg = st_s_create_fv( format, args );
    er_t ret = bcore_error_push_sc( id, msg->sc );
    st_s_discard( msg );
    return ret;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x8ec4c
movq %rax, %r14
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x60533
movq %r14, %rdi
callq 0x8edd4
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_error_manager.c
// Function: bcore_error_push_ffl_fv
er_t bcore_error_push_ffl_fv( er_t id, sc_t func, sc_t file, sz_t line, sc_t format, va_list args )
{
    st_s* msg = st_s_create_fa( "error:#<sc_t>:#<sz_t>:0 in function #<sc_t>:\n", file, line, func );
    st_s_push_fv( msg, format, args );
    bcore_error_push_fa( id, "#<sc_t>", msg->sc );
    st_s_discard( msg );
    return id;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %r14
movq %r8, %r15
movq %rsi, %rax
movq %rdi, %rbx
leaq 0x60afa(%rip), %rdi     # 0xc1198
movq %rdx, %rsi
movq %rcx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x8ec7d
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x8f4ba
movq 0x8(%r12), %rdx
leaq 0x6243e(%rip), %rsi     # 0xc2b09
movq %rbx, %rdi
xorl %eax, %eax
callq 0x605f4
movq %r12, %rdi
callq 0x8edd4
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_error_manager.c
// Function: bcore_error_pop_to_sink
bl_t bcore_error_pop_to_sink( bcore_sink* sink )
{
    BLM_INIT();
    st_s* s = BLM_CREATE( st_s );
    bl_t success = bcore_error_pop_st( NULL, s );
    if( success && sink ) bcore_sink_a_push_fa( sink, "#<sc_t>\n", s->sc );
    BLM_RETURNV( bl_t, success );
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
leaq 0xb74c1(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
movq %rsp, %r14
movq %r14, %rdi
callq 0x717f5
xorl %eax, %eax
callq 0x8eb65
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r14, %rdi
movq %rax, %rdx
callq 0x71917
movq %rax, %r14
xorl %edi, %edi
movq %rax, %rsi
callq 0x60859
movl %eax, %ebp
xorb $0x1, %al
testq %rbx, %rbx
sete %cl
orb %al, %cl
jne 0x60969
movq 0x8(%r14), %rdx
leaq 0x6b749(%rip), %rsi     # 0xcc0a8
movq %rbx, %rdi
xorl %eax, %eax
callq 0x87cf1
movq %rsp, %rdi
callq 0x71b64
movl %ebp, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_error_manager.c
// Function: bcore_error_manager_signal_handler
vd_t bcore_error_manager_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, btypeof( "bcore_error_manager" ) ) )
    {
        case TYPEOF_init0:
        {
        }
        break;

        case TYPEOF_init1:
        {
        }
        break;

        case TYPEOF_down1:
        {
            if( context_g )
            {
                s2_t verbosity = o->object ? *( s2_t* )o->object : 0;
                if( verbosity >= 0 && bcore_error_stack_size() > 0 )
                {
                    WRN_fa( "Error Manager: Stack is not empty!\nList of remaining errors:" );
                    st_s* msg = st_s_create();
                    er_t id = 0;
                    while( bcore_error_pop_st( &id, msg ) )
                    {
                        bcore_wrn_fa( "\n#<sc_t>: #<sc_t>\n", ifnameof( id ), msg->sc );
                    }
                    st_s_discard( msg );
                }
                bcore_error_manager_context_s_detach( &context_g );
            }
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movabsq $0x31cbdf7c3004c3b3, %rsi # imm = 0x31CBDF7C3004C3B3
callq 0x75141
movabsq $-0x69a05654ee793a14, %rcx # imm = 0x965FA9AB1186C5EC
cmpq %rcx, %rax
jne 0x60aab
cmpq $0x0, 0xb739d(%rip)     # 0x117d98
je 0x60aab
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x60a13
cmpl $0x0, (%rax)
js 0x60a97
callq 0x60504
testq %rax, %rax
jle 0x60a97
leaq 0x607a2(%rip), %rdi     # 0xc11c6
leaq 0x607be(%rip), %rsi     # 0xc11e9
leaq 0x607cd(%rip), %rcx     # 0xc11ff
movl $0x143, %edx            # imm = 0x143
xorl %eax, %eax
callq 0x5feef
xorl %eax, %eax
callq 0x8eb65
movq %rsp, %r14
andq $0x0, (%r14)
movq %rax, %rbx
leaq 0x65b76(%rip), %r12     # 0xc65cc
leaq 0x607df(%rip), %r15     # 0xc123c
movq %r14, %rdi
movq %rbx, %rsi
callq 0x60859
testb %al, %al
je 0x60a8f
movq (%rsp), %rdi
callq 0x71db6
testq %rax, %rax
cmoveq %r12, %rax
movq 0x8(%rbx), %rdx
movq %r15, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x5fe4d
jmp 0x60a5d
movq %rbx, %rdi
callq 0x8edd4
movq 0xb72fa(%rip), %rdi     # 0x117d98
callq 0x30ac0
andq $0x0, 0xb72ed(%rip)     # 0x117d98
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_path_s_source
void bcore_file_path_s_source( bcore_file_path_s* o, bcore_source* source )
{
    sc_t file = bcore_source_a_get_file( source );
    st_s_detach( &o->full );
    st_s_detach( &o->root );
    if( file )
    {
        o->root = bcore_file_folder_path( file );
        if( o->root && o->name.size > 0 && o->name.sc[ 0 ] != '/' )
        {
            o->full = st_s_create_fa( "#<sc_t>/#<sc_t>", o->root->sc, o->name.sc );
        }
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %r15
leaq 0xb81b8(%rip), %rax     # 0x118cc8
movl (%rax), %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
movq 0x20(%rax,%rcx), %rdx
movq 0x18(%rax,%rcx), %rcx
andq %r15, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rcx
cmpq %r15, %rcx
jne 0x60b3b
pushq $0x8
jmp 0x60b60
movq 0x10(%rax), %rcx
cmpq %r15, %rcx
jne 0x60b48
pushq $0x18
jmp 0x60b60
movq 0x20(%rax), %rcx
cmpq %r15, %rcx
jne 0x60b55
pushq $0x28
jmp 0x60b60
movq 0x30(%rax), %rcx
cmpq %r15, %rcx
jne 0x60b6a
pushq $0x38
popq %rcx
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x60b91
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r15, %rsi
callq 0x79b94
movq %rax, %r12
leaq 0xb8142(%rip), %rdi     # 0x118cc8
movq %r15, %rsi
movq %rax, %rdx
callq 0x98d4b
movq %r12, %rdi
movq %r14, %rsi
callq 0x88c82
movq %rax, %r15
leaq 0x30(%rbx), %r14
movq %r14, %rdi
callq 0x60bfe
leaq 0x28(%rbx), %r12
movq %r12, %rdi
callq 0x60bfe
testq %r15, %r15
je 0x60bf2
movq %r15, %rdi
callq 0x60c15
movq %rax, (%r12)
testq %rax, %rax
je 0x60bf2
cmpq $0x0, 0x18(%rbx)
je 0x60bf2
movq 0x10(%rbx), %rdx
cmpb $0x2f, (%rdx)
je 0x60bf2
movq 0x8(%rax), %rsi
leaq 0x49490(%rip), %rdi     # 0xaa078
xorl %eax, %eax
callq 0x8ec7d
movq %rax, (%r14)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_folder_path
st_s* bcore_file_folder_path( sc_t path )
{
    st_s* s = st_s_create_sc( path );
    sz_t idx = st_s_find_char( s, -1, 0, '/' );
    if( s->data[ idx ] == '/' )
    {
        s->data[ idx ] = 0;
        s->size = idx;
    }
    else
    {
        s->data[ 0 ] = 0;
        s->size = 0;
    }

    // preserve explicit root folder
    if( s->size == 0 && path[ 0 ] == '/' ) st_s_push_char( s, '/' );

    return s;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
callq 0x8ed62
movq %rax, %rbx
pushq $-0x1
popq %rsi
pushq $0x2f
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x8f5e7
movq 0x8(%rbx), %rcx
cmpb $0x2f, (%rcx,%rax)
jne 0x60c4d
movb $0x0, (%rcx,%rax)
movq %rax, 0x10(%rbx)
testq %rax, %rax
jne 0x60c66
jmp 0x60c55
movb $0x0, (%rcx)
andq $0x0, 0x10(%rbx)
cmpb $0x2f, (%r14)
jne 0x60c66
pushq $0x2f
popq %rsi
movq %rbx, %rdi
callq 0x8f0ee
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_path_minimized
st_s* bcore_file_path_minimized( sc_t path )
{
    if( !path ) return NULL;
    st_s* s = st_s_create();
    sc_t sc = path;
    while( *sc != 0 )
    {
        if( sc[0] == '/' )
        {
            while( sc[ 1 ] == '/' ) sc++;
            st_s_push_char( s, '/' );
            sc++;
        }
        else if( sc[0] == '.' && sc[1] == '/' )
        {
            sc += 2;
        }
        else if( sc[0] == '.' && sc[1] == '.' && sc[2] == '/' )
        {
            if( s->size > 1 && s->sc[ s->size - 1 ] == '/' )
            {
                st_s_pop_char( s );
                st_s_attach( &s, bcore_file_folder_path( s->sc ) );
                st_s_push_char( s, '/' );
            }
            else
            {
                st_s_push_sc( s, "../" );
            }
            sc += 3;
        }
        else
        {
            st_s_push_char( s, *sc );
            sc++;
        }
    }

    // if path is relative, ensure that s stays relative
    if( s->sc[ 0 ] == '/' && path[ 0 ] != '/' ) st_s_remove( s, 0, 1 );

    return s;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x60d9d
movq %rdi, %r14
xorl %eax, %eax
callq 0x8eb65
movq %rax, %rbx
pushq $0x2f
popq %rbp
leaq 0x6059c(%rip), %r15     # 0xc1269
movq %r14, %r13
movzbl (%r13), %eax
cmpl $0x2e, %eax
je 0x60cff
cmpl $0x2f, %eax
je 0x60ce8
testl %eax, %eax
jne 0x60d1b
jmp 0x60d7f
cmpb $0x2f, 0x1(%r13)
leaq 0x1(%r13), %r13
je 0x60ce8
movq %rbx, %rdi
movl %ebp, %esi
callq 0x8f0ee
jmp 0x60cd0
movzbl 0x1(%r13), %ecx
cmpl $0x2e, %ecx
je 0x60d14
cmpl $0x2f, %ecx
jne 0x60d1b
addq $0x2, %r13
jmp 0x60cd0
cmpb $0x2f, 0x2(%r13)
je 0x60d2b
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8f0ee
incq %r13
jmp 0x60cd0
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
jb 0x60d6b
movq 0x8(%rbx), %rcx
cmpb $0x2f, -0x1(%rcx,%rax)
jne 0x60d6b
movq %rbx, %rdi
callq 0x8f1bd
movq 0x8(%rbx), %rdi
callq 0x60c15
movq %rax, %r12
movq %rbx, %rdi
callq 0x8edd4
movq %r12, %rdi
movl %ebp, %esi
callq 0x8f0ee
movq %r12, %rbx
jmp 0x60d76
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8f392
addq $0x3, %r13
jmp 0x60cd0
movq 0x8(%rbx), %rax
cmpb $0x2f, (%rax)
jne 0x60d9f
cmpb $0x2f, (%r14)
je 0x60d9f
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x8f865
jmp 0x60d9f
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_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_extension
sc_t bcore_file_extension( sc_t path )
{
    st_s* s = st_s_create_sc( path );
    sz_t idx = st_s_find_char( s, -1, 0, '.' );
    if( s->data[ idx ] == '.' ) idx++;
    st_s_discard( s );
    return path + idx;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x8ed62
movq %rax, %r14
pushq $-0x1
popq %rsi
pushq $0x2e
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x8f5e7
movq %rax, %r15
movq 0x8(%r14), %rax
xorl %r12d, %r12d
cmpb $0x2e, (%rax,%r15)
sete %r12b
movq %r14, %rdi
callq 0x8edd4
addq %r15, %rbx
addq %r12, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_name
sc_t bcore_file_name( sc_t path )
{
    st_s* s = st_s_create_sc( path );
    sz_t idx = st_s_find_char( s, -1, 0, '/' );
    st_s_discard( s );
    if( path[ idx ] == '/' ) return path + idx + 1;
    return path;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x8ed62
movq %rax, %r14
pushq $-0x1
popq %rsi
pushq $0x2f
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x8f5e7
movq %rax, %r15
movq %r14, %rdi
callq 0x8edd4
leaq (%rbx,%r15), %rax
incq %rax
cmpb $0x2f, -0x1(%rax)
cmoveq %rax, %rbx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_strip_extension
st_s* bcore_file_strip_extension( sc_t path )
{
    st_s* s = st_s_create_sc( path );
    sz_t idx = st_s_find_char( s, -1, 0, '.' );
    if( s->data[ idx ] == '.' )
    {
        s->data[ idx ] = 0;
        s->size = idx;
    }
    return s;
}

// Assembly:
pushq %rbx
callq 0x8ed62
movq %rax, %rbx
pushq $-0x1
popq %rsi
pushq $0x2e
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x8f5e7
movq 0x8(%rbx), %rcx
cmpb $0x2e, (%rcx,%rax)
jne 0x60e72
movb $0x0, (%rcx,%rax)
movq %rax, 0x10(%rbx)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_folder_name
st_s* bcore_file_folder_name( sc_t path )
{
    st_s* s1 = bcore_file_folder_path( path );
    st_s* s2 = st_s_create_sc( bcore_file_name( s1->sc ) );
    st_s_discard( s1 );
    return s2;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x60c15
movq %rax, %rbx
movq 0x8(%rax), %rdi
callq 0x60e04
movq %rax, %rdi
callq 0x8ed62
movq %rax, %r14
movq %rbx, %rdi
callq 0x8edd4
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_file.c
// Function: bcore_file_touch
bl_t bcore_file_touch( sc_t name )
{
    if( bcore_file_exists( name ) ) return true;
    vd_t handle = fopen( name, "wb" );
    if( !handle ) return false;
    fclose( handle );
    return true;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
callq 0x60eaa
movb $0x1, %bl
testb %al, %al
jne 0x60f29
leaq 0x6035d(%rip), %rsi     # 0xc126d
movq %r14, %rdi
callq 0xd170
testq %rax, %rax
je 0x60f27
movq %rax, %rdi
callq 0xd390
jmp 0x60f29
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq