LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_s_discard
static void down_s_discard( down_manager_s* o, down_s* down )
{
    if( o->aligned )
    {
        token_manager_s* token_manager = ( token_manager_s* )( ( intptr_t )down & ~( intptr_t )( o->pool_size - 1 ) );
        token_manager_s_free( token_manager, down );
    }
    else
    {
        token_manager_s_free( bcore_btree_vd_s_largest_below_equal( o->tm_btree, down ), down );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x1d0(%rax)
je 0x10cfca
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x1c8(%rcx), %rcx
subq $0x1, %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10cdf0
jmp 0x10cfea
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1288a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x10cdf0
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_full_to_free
static void block_manager_s_full_to_free( block_manager_s* o, token_manager_s* child )
{
    assert( o->free_index > 0 );

    o->free_index--;

    // swap child with current free position
    uz_t child_index = child->parent_index;
    uz_t swapc_index = o->free_index;

    token_manager_s* swapc = o->data[ swapc_index ];
    o->data[ swapc_index ] = child;
    o->data[ child_index ] = swapc;
    child->parent_index = swapc_index;
    swapc->parent_index = child_index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x28(%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_empty_tail
static uz_t block_manager_s_empty_tail( const block_manager_s* o )
{
    if( o->size == 0 ) return 0;
    uz_t empty_index = o->size;
    while( empty_index > 0 && token_manager_s_is_empty( o->data[ empty_index - 1 ] ) ) empty_index--;
    return o->size - empty_index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x10d291
movq $0x0, -0x8(%rbp)
jmp 0x10d2ec
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x18(%rbp)
movb %al, -0x19(%rbp)
jbe 0x10d2c5
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10d300
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
testb $0x1, %al
jne 0x10d2ce
jmp 0x10d2dc
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x10d29d
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
subq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_free_ext
static void external_manager_s_free_ext( external_manager_s* o, vd_t ptr, ext_s* ext )
{
    // reference control
    if( ext->rc_count )
    {
        ext->rc_count--;
        return;
    }

    if( ext->rc_down )
    {
        down_s* down = ext->rc_down;
        bcore_mutex_s_unlock( o->mutex );
        down->_( down, ptr );
        bcore_mutex_s_lock( o->mutex );
        assert( o->down_manager );
        down_s_discard( o->down_manager, down );
        ext->rc_down = NULL;
    }

    bcore_btree_pp_s_remove( o->ex_btree, ptr );
    ext_s_discard( o, ext );
    free( ptr );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x10d354
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x10d3e3
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x10d3bc
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc70
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq *%rax
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc20
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0x10cf80
movq -0x18(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1267f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10d3f0
movq -0x10(%rbp), %rdi
callq 0x4200
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: ext_s_discard
static void ext_s_discard( external_manager_s* o, ext_s* ext )
{
    ext_s_down( ext );
    if( o->aligned )
    {
        token_manager_s* token_manager = ( token_manager_s* )( ( intptr_t )ext & ~( intptr_t )( o->pool_size - 1 ) );
        token_manager_s_free( token_manager, ext );
    }
    else
    {
        token_manager_s_free( bcore_btree_vd_s_largest_below_equal( o->tm_btree, ext ), ext );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10d470
movq -0x8(%rbp), %rax
testb $0x1, 0x88(%rax)
je 0x10d443
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x80(%rcx), %rcx
subq $0x1, %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10cdf0
jmp 0x10d460
movq -0x8(%rbp), %rax
movq 0x70(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1288a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x10cdf0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_release_obj
static void external_manager_s_release_obj( external_manager_s* o, fp_down_obj down, vd_t ptr )
{
    bcore_btree_pp_kv_s* kv = bcore_btree_pp_s_largest_below_equal( o->ex_btree, ptr );
    if( !kv ) ERR( "Object has no root address in dynamic memory." );
    bl_t ptr_is_root = ( kv->key == ptr );
    ext_s* ext = kv->val;
    if( ext->rc_count )
    {
        ext->rc_count--;

        /* We only safe 'down' instruction when the object is root.
         * Otherwise 'token' refers to a parent to which function down does not apply.
         * In that case shut down information is controlled by the parent object.
         */
        if( ptr_is_root && !ext->rc_down )
        {
            assert( o->down_manager );
            ext->rc_down = down_obj_s_create( o->down_manager, down );
        }
    }
    else
    {
        if( !ext->rc_down )
        {
            bcore_mutex_s_unlock( o->mutex );
            if( !ptr_is_root ) ERR( "Object is not root." );
            down( ptr );
            bcore_mutex_s_lock( o->mutex );
        }
        external_manager_s_free_ext( o, ptr, ext );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x126590
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x10d661
leaq 0x4a432(%rip), %rdi     # 0x157a79
leaq 0x49d4f(%rip), %rsi     # 0x15739d
movl $0x528, %edx            # imm = 0x528
leaq 0x4a288(%rip), %rcx     # 0x1578e2
movb $0x0, %al
callq 0x9cf40
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x10d6cd
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x8(%rax)
testb $0x1, -0x21(%rbp)
je 0x10d6cb
movq -0x30(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x10d6cb
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x10d790
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x10d73a
movq -0x30(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x10d729
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc70
testb $0x1, -0x21(%rbp)
jne 0x10d70f
leaq 0x4a384(%rip), %rdi     # 0x157a79
leaq 0x49ca1(%rip), %rsi     # 0x15739d
movl $0x53e, %edx            # imm = 0x53E
leaq 0x4a27c(%rip), %rcx     # 0x157984
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc20
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x10d320
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_obj_s_create
static down_obj_s* down_obj_s_create( down_manager_s* o, fp_down_obj fp )
{
    down_obj_s* down = block_manager_s_alloc( &o->bm_down_obj );
    down->_._ = ( fp_down )_down_obj;
    down->fp = fp;
    return down;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x10d7e0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
leaq 0xa8(%rip), %rcx        # 0x10d860
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_alloc
static vd_t block_manager_s_alloc( block_manager_s* o )
{
    if( o->free_index == o->size ) block_manager_s_acquire_token_manager( o );
    token_manager_s* child = o->data[ o->free_index ];
    vd_t ret = token_manager_s_alloc( child );
    if( token_manager_s_is_full( child ) ) o->free_index++;
    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jne 0x10d807
movq -0x8(%rbp), %rdi
callq 0x10d890
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10daa0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10daf0
testb $0x1, %al
jne 0x10d83b
jmp 0x10d84b
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x30(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_release_arg
static void external_manager_s_release_arg( external_manager_s* o, fp_down_arg down, vc_t arg, vd_t ptr )
{
    bcore_btree_pp_kv_s* kv = bcore_btree_pp_s_largest_below_equal( o->ex_btree, ptr );
    if( !kv ) ERR( "Object has no root address in dynamic memory." );
    bl_t ptr_is_root = ( kv->key == ptr );
    ext_s* ext = kv->val;
    if( ext->rc_count )
    {
        ext->rc_count--;

        /* We only safe 'down' instruction when the object is root.
         * Otherwise shut down information is controlled by the parent object.
         */
        if( ptr_is_root )
        {
            if( !ext->rc_down )
            {
                assert( o->down_manager );
                ext->rc_down = down_arg_s_create( o->down_manager, down, arg );
            }
        }
    }
    else
    {
        if( !ext->rc_down )
        {
            bcore_mutex_s_unlock( o->mutex );
            if( !ptr_is_root ) ERR( "Object is not root." );
            down( arg, ptr );
            bcore_mutex_s_lock( o->mutex );
        }
        external_manager_s_free_ext( o, ptr, ext );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0x126590
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x10dfb5
leaq 0x49b19(%rip), %rdi     # 0x157ab4
leaq 0x493fb(%rip), %rsi     # 0x15739d
movl $0x54b, %edx            # imm = 0x54B
leaq 0x49934(%rip), %rcx     # 0x1578e2
movb $0x0, %al
callq 0x9cf40
movq -0x28(%rbp), %rax
movq (%rax), %rax
cmpq -0x20(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x10e027
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x8(%rax)
testb $0x1, -0x29(%rbp)
je 0x10e025
movq -0x38(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x10e023
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x10e0a0
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x10e025
jmp 0x10e098
movq -0x38(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x10e087
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc70
testb $0x1, -0x29(%rbp)
jne 0x10e069
leaq 0x49a65(%rip), %rdi     # 0x157ab4
leaq 0x49347(%rip), %rsi     # 0x15739d
movl $0x563, %edx            # imm = 0x563
leaq 0x49922(%rip), %rcx     # 0x157984
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq *%rax
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0x10fc20
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x10d320
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_arg_s_create
static down_arg_s* down_arg_s_create( down_manager_s* o, fp_down_arg fp, vc_t arg )
{
    down_arg_s* down = block_manager_s_alloc( &o->bm_down_arg );
    down->_._ = ( fp_down )_down_arg;
    down->fp = fp;
    down->arg = arg;
    return down;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
callq 0x10d7e0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
leaq 0x30(%rip), %rcx        # 0x10e100
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_obj_arr_s_create
static down_obj_arr_s* down_obj_arr_s_create( down_manager_s* o, fp_down_obj fp, uz_t size, uz_t step )
{
    down_obj_arr_s* down = block_manager_s_alloc( &o->bm_down_obj_arr );
    down->_._ = ( fp_down )_down_obj_arr;
    down->fp = fp;
    down->size = size;
    down->step = step;
    return down;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
addq $0xe0, %rdi
callq 0x10d7e0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
leaq -0xf7(%rip), %rcx       # 0x10e4a0
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_arg_arr_s_create
static down_arg_arr_s* down_arg_arr_s_create( down_manager_s* o, fp_down_arg fp, vc_t arg, uz_t size, uz_t step )
{
    down_arg_arr_s* down = block_manager_s_alloc( &o->bm_down_arg_arr );
    down->_._ = ( fp_down )_down_arg_arr;
    down->fp = fp;
    down->arg = arg;
    down->size = size;
    down->step = step;
    return down;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x10d7e0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
leaq -0x49b(%rip), %rcx      # 0x10e500
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x30(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_references
static uz_t external_manager_s_references( external_manager_s* o, vc_t ptr )
{
    bcore_btree_pp_kv_s* kv = bcore_btree_pp_s_largest_below_equal( o->ex_btree, ( vd_t )ptr );
    if( !kv ) return 0;
    ext_s* ext = kv->val;
    if( ( ( ptrdiff_t )( ( u0_t* )ptr - ( u0_t* )kv->key ) ) >= ext->size ) return 0;
    return 1 + ext->rc_count;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x126590
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x10ea76
movq $0x0, -0x8(%rbp)
jmp 0x10eab3
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rcx), %rcx
subq %rcx, %rax
movq -0x28(%rbp), %rcx
cmpq (%rcx), %rax
jb 0x10eaa3
movq $0x0, -0x8(%rbp)
jmp 0x10eab3
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_free
static void external_manager_s_free( external_manager_s* o, vd_t ptr )
{
    vd_t* ext_p = bcore_btree_pp_s_val( o->ex_btree, ptr );
    if( !ext_p )
    {
        ERR( "Attempt to free invalid memory" );
    }
    external_manager_s_free_ext( o, ptr, *ext_p );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1265c0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x10eb0d
leaq 0x49026(%rip), %rdi     # 0x157b19
leaq 0x488a3(%rip), %rsi     # 0x15739d
movl $0x4a4, %edx            # imm = 0x4A4
leaq 0x4902b(%rip), %rcx     # 0x157b31
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq (%rax), %rdx
callq 0x10d320
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_malloc
static vd_t external_manager_s_malloc( external_manager_s* o, uz_t requested_bytes, uz_t* granted_bytes )
{
    vd_t ptr = aligned_alloc( TBMAN_ALIGN, requested_bytes );
    if( !ptr ) ERR( "Failed allocating %zu bytes.", requested_bytes );
    if( granted_bytes ) *granted_bytes = requested_bytes;
    ext_s* ext = ext_s_create( o );
    ext->size = requested_bytes;
    if( bcore_btree_pp_s_set( o->ex_btree, ptr, ext ) != 1 ) ERR( "Registering new address failed" );
    return ptr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
movl $0x100, %edi            # imm = 0x100
callq 0x41c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x10ebe2
movq -0x10(%rbp), %r8
leaq 0x48fd4(%rip), %rdi     # 0x157b9c
leaq 0x487ce(%rip), %rsi     # 0x15739d
movl $0x47a, %edx            # imm = 0x47A
leaq 0x48fdb(%rip), %rcx     # 0x157bb6
movb $0x0, %al
callq 0x9cf40
cmpq $0x0, -0x18(%rbp)
je 0x10ebf4
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rdi
callq 0x10ec60
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x126660
cmpl $0x1, %eax
je 0x10ec47
leaq 0x48f6f(%rip), %rdi     # 0x157b9c
leaq 0x48769(%rip), %rsi     # 0x15739d
movl $0x47e, %edx            # imm = 0x47E
leaq 0x48f93(%rip), %rcx     # 0x157bd3
movb $0x0, %al
callq 0x9cf40
movq -0x20(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: token_manager_s_for_each_instance
static void token_manager_s_for_each_instance( token_manager_s* o, void (*cb)( vd_t arg, vd_t ptr, uz_t space ), vd_t arg )
{
    if( !cb ) return;
    for( uz_t i = 0; i < o->stack_index; i++ )
    {
        uz_t token = o->token_stack[ i ];
        cb( arg, ( u0_t* )o + token * o->block_size, o->block_size );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x10ed7d
jmp 0x10eddb
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
cmpq %rcx, %rax
jae 0x10eddb
movq -0x8(%rbp), %rax
movq -0x20(%rbp), %rcx
movzwl 0x48(%rax,%rcx,2), %eax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rdx
imulq 0x8(%rdx), %rcx
addq %rcx, %rsi
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rdx
callq *%rax
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x10ed85
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_total_instances
static uz_t block_manager_s_total_instances( const block_manager_s* o )
{
    uz_t sum = 0;
    for( uz_t i = 0; i < o->size; i++ )
    {
        sum += token_manager_s_total_instances( o->data[ i ] );
    }
    return sum;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0x10ef15
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10ef20
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x10eedc
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_total_references
static uz_t block_manager_s_total_references( const block_manager_s* o )
{
    uz_t sum = 0;
    for( uz_t i = 0; i < o->size; i++ )
    {
        sum += token_manager_s_total_references( o->data[ i ] );
    }
    return sum;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0x10efc5
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10efd0
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x10ef8c
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: token_manager_s_total_references
static uz_t token_manager_s_total_references( const token_manager_s* o )
{
    uz_t count = 0;
    for( uz_t i = 0; i < o->stack_index; i++ )
    {
        uz_t token = o->token_stack[ i ];
        count++;
        if( o->rc_count_arr ) count += o->rc_count_arr[ token ];
    }
    return count;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
cmpq %rcx, %rax
jae 0x10f049
movq -0x8(%rbp), %rax
movq -0x18(%rbp), %rcx
movzwl 0x48(%rax,%rcx,2), %eax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x10f039
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x10f03b
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x10efe8
movq -0x10(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: token_manager_s_status
static st_s* token_manager_s_status( const token_manager_s* o, int detail_level )
{
    st_s* str = st_s_create();
    if( detail_level <= 0 ) return str;
    st_s_pushf( str, "    pool_size:   %zu\n",  o->pool_size );
    st_s_pushf( str, "    block_size:  %zu\n",  o->block_size );
    st_s_pushf( str, "    stack_size:  %zu\n",  o->stack_size );
    st_s_pushf( str, "    aligned:     %s\n",   o->aligned ? "true" : "false" );
    st_s_pushf( str, "    stack_index: %zu\n",  ( uz_t )o->stack_index );
    st_s_pushf( str, "    total alloc: %zu\n", token_manager_s_total_alloc( o ) );
    st_s_pushf( str, "    total space: %zu\n", token_manager_s_total_space( o ) );
    return str;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movb $0x0, %al
callq 0xff2e0
movq %rax, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
jg 0x10f07d
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10f168
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x48caa(%rip), %rsi     # 0x157d39
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x48ca6(%rip), %rsi     # 0x157d4f
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movzwl 0x10(%rax), %edx
leaq 0x48ca2(%rip), %rsi     # 0x157d65
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movb 0x14(%rax), %cl
leaq 0x2ac39(%rip), %rdx     # 0x139d15
leaq 0x49d68(%rip), %rax     # 0x158e4b
testb $0x1, %cl
cmovneq %rax, %rdx
leaq 0x48c8a(%rip), %rsi     # 0x157d7b
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movzwl 0x12(%rax), %eax
movl %eax, %edx
leaq 0x48c83(%rip), %rsi     # 0x157d90
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10ee30
movq -0x30(%rbp), %rdi
movq %rax, %rdx
leaq 0x48c73(%rip), %rsi     # 0x157da6
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10ee50
movq -0x28(%rbp), %rdi
movq %rax, %rdx
leaq 0x48c63(%rip), %rsi     # 0x157dbc
movb $0x0, %al
callq 0x100120
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: tbman_s_diagnostic_test_callback
static void tbman_s_diagnostic_test_callback( vd_t arg, vd_t ptr, uz_t space )
{
    diagnostic_s* d = arg;
    bl_t found = false;
    for( sz_t i = 0; i < d->size; i++ )
    {
        if( ptr == d->ptr_arr[ i ] )
        {
            found = true;
            ASSERT( space == d->spc_arr[ i ] );
        }
    }
    ASSERT( found );
    bcore_tbman_s_b_alloc( d->man, ptr, 0, NULL );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jge 0x10f5d1
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq -0x30(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jne 0x10f5c1
movb $0x1, -0x21(%rbp)
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x30(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x10f5bf
leaq 0x24402(%rip), %rdi     # 0x13399f
leaq 0x48a50(%rip), %rsi     # 0x157ff4
leaq 0x48a62(%rip), %rdx     # 0x15800d
leaq 0x47deb(%rip), %rcx     # 0x15739d
movl $0xc69, %r8d            # imm = 0xC69
movb $0x0, %al
callq 0x9cea0
jmp 0x10f5c1
jmp 0x10f5c3
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x10f558
testb $0x1, -0x21(%rbp)
jne 0x10f600
leaq 0x243c1(%rip), %rdi     # 0x13399f
leaq 0x41af4(%rip), %rsi     # 0x1510d9
leaq 0x48a21(%rip), %rdx     # 0x15800d
leaq 0x47daa(%rip), %rcx     # 0x15739d
movl $0xc6c, %r8d            # imm = 0xC6C
movb $0x0, %al
callq 0x9cea0
movq -0x20(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x1089f0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_mutex_s_init
void bcore_mutex_s_init( bcore_mutex_s* o )
{
    bcore_memzero( o, sizeof( *o  ) );
    int ern = pthread_mutex_init( &o->_mutex, NULL );
    if( ern == EAGAIN ) ERR( "Resources exceeded." );
    if( ern == ENOMEM ) ERR( "Memory exhaused." );
    if( ern == EPERM  ) ERR( "Unpriviledged call." );
    if( ern ) ERR( "function returned error %i", ern );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
callq 0x9d4f0
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x41b0
movl %eax, -0xc(%rbp)
cmpl $0xb, -0xc(%rbp)
jne 0x10f9d1
leaq 0x4881a(%rip), %rdi     # 0x1581d1
leaq 0x48826(%rip), %rsi     # 0x1581e4
movl $0x21, %edx
leaq 0x4882a(%rip), %rcx     # 0x1581f4
movb $0x0, %al
callq 0x9cf40
cmpl $0xc, -0xc(%rbp)
jne 0x10f9f8
leaq 0x487f3(%rip), %rdi     # 0x1581d1
leaq 0x487ff(%rip), %rsi     # 0x1581e4
movl $0x22, %edx
leaq 0x48817(%rip), %rcx     # 0x158208
movb $0x0, %al
callq 0x9cf40
cmpl $0x1, -0xc(%rbp)
jne 0x10fa1f
leaq 0x487cc(%rip), %rdi     # 0x1581d1
leaq 0x487d8(%rip), %rsi     # 0x1581e4
movl $0x23, %edx
leaq 0x48801(%rip), %rcx     # 0x158219
movb $0x0, %al
callq 0x9cf40
cmpl $0x0, -0xc(%rbp)
je 0x10fa4a
movl -0xc(%rbp), %r8d
leaq 0x487a1(%rip), %rdi     # 0x1581d1
leaq 0x487ad(%rip), %rsi     # 0x1581e4
movl $0x24, %edx
leaq 0x487ea(%rip), %rcx     # 0x15822d
movb $0x0, %al
callq 0x9cf40
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_mutex_s_down
void bcore_mutex_s_down( bcore_mutex_s* o )
{
    int ern = pthread_mutex_destroy( &o->_mutex );
    if( ern == EBUSY  ) ERR( "Mutex is locked." );
    if( ern == EINVAL ) ERR( "Invalid mutex." );
    if( ern ) ERR( "function returned error %i", ern );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x43f0
movl %eax, -0xc(%rbp)
cmpl $0x10, -0xc(%rbp)
jne 0x10fa8f
leaq 0x487d3(%rip), %rdi     # 0x158248
leaq 0x48768(%rip), %rsi     # 0x1581e4
movl $0x2a, %edx
leaq 0x487d3(%rip), %rcx     # 0x15825b
movb $0x0, %al
callq 0x9cf40
cmpl $0x16, -0xc(%rbp)
jne 0x10fab6
leaq 0x487ac(%rip), %rdi     # 0x158248
leaq 0x48741(%rip), %rsi     # 0x1581e4
movl $0x2b, %edx
leaq 0x487bd(%rip), %rcx     # 0x15826c
movb $0x0, %al
callq 0x9cf40
cmpl $0x0, -0xc(%rbp)
je 0x10fae1
movl -0xc(%rbp), %r8d
leaq 0x48781(%rip), %rdi     # 0x158248
leaq 0x48716(%rip), %rsi     # 0x1581e4
movl $0x2c, %edx
leaq 0x48753(%rip), %rcx     # 0x15822d
movb $0x0, %al
callq 0x9cf40
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_thread_s_join
vd_t bcore_thread_s_join( bcore_thread_s* o )
{
    vd_t ret = NULL;
    if( o->_join )
    {
        int ern = pthread_join( o->_thread, &ret );
        if( ern == EINVAL )  ERR( "No joinable thread" );
        if( ern == ESRCH )   ERR( "Invalid thread id" );
        if( ern == EDEADLK ) ERR( "Deadlock detected." );
        if( ern ) ERR( "function returned error %i", ern );
        o->_join = false;
    }
    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x11058d
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq -0x10(%rbp), %rsi
callq 0x4040
movl %eax, -0x14(%rbp)
cmpl $0x16, -0x14(%rbp)
jne 0x11050c
leaq 0x47e52(%rip), %rdi     # 0x158344
leaq 0x47ceb(%rip), %rsi     # 0x1581e4
movl $0x16c, %edx            # imm = 0x16C
leaq 0x47e53(%rip), %rcx     # 0x158358
movb $0x0, %al
callq 0x9cf40
cmpl $0x3, -0x14(%rbp)
jne 0x110533
leaq 0x47e2b(%rip), %rdi     # 0x158344
leaq 0x47cc4(%rip), %rsi     # 0x1581e4
movl $0x16d, %edx            # imm = 0x16D
leaq 0x47e3f(%rip), %rcx     # 0x15836b
movb $0x0, %al
callq 0x9cf40
cmpl $0x23, -0x14(%rbp)
jne 0x11055a
leaq 0x47e04(%rip), %rdi     # 0x158344
leaq 0x47c9d(%rip), %rsi     # 0x1581e4
movl $0x16e, %edx            # imm = 0x16E
leaq 0x47e2a(%rip), %rcx     # 0x15837d
movb $0x0, %al
callq 0x9cf40
cmpl $0x0, -0x14(%rbp)
je 0x110585
movl -0x14(%rbp), %r8d
leaq 0x47dd9(%rip), %rdi     # 0x158344
leaq 0x47c72(%rip), %rsi     # 0x1581e4
movl $0x16f, %edx            # imm = 0x16F
leaq 0x47caf(%rip), %rcx     # 0x15822d
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
movb $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_thread_s_call
void bcore_thread_s_call( bcore_thread_s* o, bcore_fp_thread func, vd_t arg )
{
    bcore_thread_s_join( o );
    int ern = pthread_create( &o->_thread, NULL, func, arg );
    if( ern ) ERR( "function returned error %i", ern );
    o->_join = true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1104b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x41e0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x110730
movl -0x1c(%rbp), %r8d
leaq 0x47c1a(%rip), %rdi     # 0x158330
leaq 0x47ac7(%rip), %rsi     # 0x1581e4
movl $0x15a, %edx            # imm = 0x15A
leaq 0x47b04(%rip), %rcx     # 0x15822d
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
movb $0x1, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_thread_arr_s_push_call
uz_t bcore_thread_arr_s_push_call( bcore_thread_arr_s* o, bcore_fp_thread func, vd_t arg )
{
    bcore_thread_s* thread = bcore_thread_s_create();
    bcore_thread_s_call( thread, func, arg );
    bcore_array_a_push( (bcore_array*)o, sr_tsm( TYPEOF_bcore_thread_s, thread ) );
    return o->size - 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
callq 0x110650
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1106d0
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rdx
leaq -0x38(%rbp), %rdi
movabsq $-0x6b951732b6f4fa73, %rsi # imm = 0x946AE8CD490B058D
callq 0x110be0
movq -0x40(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x110b90
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_thread_arr_s_join_pop
vd_t bcore_thread_arr_s_join_pop( bcore_thread_arr_s* o )
{
    if( o->size == 0 ) return NULL;
    bcore_thread_s* thread = bcore_thread_arr_s_get_thread( o, o->size - 1 );
    vd_t ret = bcore_thread_s_join( thread );
    bcore_array_a_pop( (bcore_array*)o );
    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x110c71
movq $0x0, -0x8(%rbp)
jmp 0x110ca8
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
subq $0x1, %rsi
callq 0x110ad0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1104b0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x110cc0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_sleep_ns
void bcore_sleep_ns( u3_t ns )
{
    struct timespec ts = { 0 };
    ts.tv_sec  = ns / 1000000000;
    ts.tv_nsec = ns % 1000000000;

    // it seems the nanosleep prototype is not necessarily defined in <time.h>
    // so we do it here.
    int nanosleep( const struct timespec* requested, struct timespec* remaining );

    nanosleep( &ts, NULL );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x4090
movq -0x8(%rbp), %rax
movl $0x3b9aca00, %ecx       # imm = 0x3B9ACA00
xorl %edx, %edx
divq %rcx
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl $0x3b9aca00, %ecx       # imm = 0x3B9ACA00
xorl %edx, %edx
divq %rcx
movq %rdx, -0x10(%rbp)
leaq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4310
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_mutex_s_create_self
static bcore_self_s* bcore_mutex_s_create_self( void )
{
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( "bcore_mutex_s = { ... }", bcore_mutex_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_mutex_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_mutex_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_mutex_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x4746d(%rip), %rdi     # 0x1583fc
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x162d(%rip), %rsi     # 0x10f980
leaq 0x3bc0e(%rip), %rdx     # 0x14cbc2
leaq 0x3bc10(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x157b(%rip), %rsi     # 0x10fa50
leaq 0x3bbfe(%rip), %rdx     # 0x14cbd0
leaq 0x2dd7f(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x14f9(%rip), %rsi     # 0x10faf0
leaq 0x3bbee(%rip), %rdx     # 0x14cbde
leaq 0x355b5(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_lock_s_create_self
static bcore_self_s* bcore_lock_s_create_self( void )
{
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( "bcore_lock_s = { aware_t _; private bcore_mutex_s* mutex; }", bcore_lock_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_lock_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_lock_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_lock_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x473f5(%rip), %rdi     # 0x158414
movl $0x10, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x129d(%rip), %rsi     # 0x10fda0
leaq 0x3bb7e(%rip), %rdx     # 0x14cbc2
leaq 0x3bb80(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x127b(%rip), %rsi     # 0x10fde0
leaq 0x3bb6e(%rip), %rdx     # 0x14cbd0
leaq 0x2dcef(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x1239(%rip), %rsi     # 0x10fe40
leaq 0x3bb5e(%rip), %rdx     # 0x14cbde
leaq 0x35525(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_unlock_s_create_self
static bcore_self_s* bcore_unlock_s_create_self( void )
{
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( "bcore_unlock_s = { aware_t _; private bcore_mutex_s* mutex; }", bcore_unlock_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_unlock_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_unlock_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_unlock_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x473a1(%rip), %rdi     # 0x158450
movl $0x10, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x115d(%rip), %rsi     # 0x10ff70
leaq 0x3baee(%rip), %rdx     # 0x14cbc2
leaq 0x3baf0(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x113b(%rip), %rsi     # 0x10ffb0
leaq 0x3bade(%rip), %rdx     # 0x14cbd0
leaq 0x2dc5f(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0x10f9(%rip), %rsi     # 0x110010
leaq 0x3bace(%rip), %rdx     # 0x14cbde
leaq 0x35495(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_condition_s_create_self
static bcore_self_s* bcore_condition_s_create_self( void )
{
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( "bcore_condition_s = { ... }", bcore_condition_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_condition_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_condition_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_condition_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x4734f(%rip), %rdi     # 0x15848e
movl $0x30, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0xfbd(%rip), %rsi      # 0x1101a0
leaq 0x3ba5e(%rip), %rdx     # 0x14cbc2
leaq 0x3ba60(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0xf8b(%rip), %rsi      # 0x1101f0
leaq 0x3ba4e(%rip), %rdx     # 0x14cbd0
leaq 0x2dbcf(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0xf59(%rip), %rsi      # 0x110240
leaq 0x3ba3e(%rip), %rdx     # 0x14cbde
leaq 0x35405(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_threads.c
// Function: bcore_thread_s_create_self
BCORE_DEFINE_FUNCTIONS_CDC( bcore_thread_s )

static bcore_self_s* bcore_thread_s_create_self( void )
{
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( "bcore_thread_s = { ... }", bcore_thread_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_thread_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_thread_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_thread_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x472db(%rip), %rdi     # 0x1584aa
movl $0x10, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0xd7d(%rip), %rsi      # 0x110470
leaq 0x3b9ce(%rip), %rdx     # 0x14cbc2
leaq 0x3b9d0(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0xd7b(%rip), %rsi      # 0x110490
leaq 0x3b9be(%rip), %rdx     # 0x14cbd0
leaq 0x2db3f(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x8(%rbp), %rdi
leaq -0xc89(%rip), %rsi      # 0x1105a0
leaq 0x3b9ae(%rip), %rdx     # 0x14cbde
leaq 0x35375(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tp.c
// Function: bcore_tp_is_float
tp_t bcore_tp_is_float( tp_t t )
{
    switch( t )
    {
        case TYPEOF_f3_t: return true;
        case TYPEOF_f2_t: return true;
        default: return false;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movabsq $-0x5fc2af85f419929b, %rcx # imm = 0xA03D507A0BE66D65
subq %rcx, %rax
je 0x111a56
jmp 0x111a41
movq -0x18(%rbp), %rax
movabsq $-0x58737885f0577326, %rcx # imm = 0xA78C877A0FA88CDA
subq %rcx, %rax
je 0x111a60
jmp 0x111a6a
movq $0x1, -0x8(%rbp)
jmp 0x111a72
movq $0x1, -0x8(%rbp)
jmp 0x111a72
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tp.c
// Function: bcore_tp_is_unsigned
tp_t bcore_tp_is_unsigned( tp_t t )
{
    switch( t )
    {
        case TYPEOF_u3_t:    return true;
        case TYPEOF_u2_t:    return true;
        case TYPEOF_u1_t:    return true;
        case TYPEOF_u0_t:    return true;
        case TYPEOF_uz_t:    return true;
        case TYPEOF_tp_t:    return true;
        case TYPEOF_aware_t: return true;
        default: return false;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movabsq $-0x73f6ae1ad309fd45, %rcx # imm = 0x8C0951E52CF602BB
subq %rcx, %rax
je 0x111b91
jmp 0x111af5
movq -0x18(%rbp), %rax
movabsq $-0x6bce971ace902370, %rcx # imm = 0x943168E5316FDC90
subq %rcx, %rax
je 0x111b87
jmp 0x111b0a
movq -0x18(%rbp), %rax
movabsq $-0x6119581ac7eacd63, %rcx # imm = 0x9EE6A7E53815329D
subq %rcx, %rax
je 0x111b7d
jmp 0x111b1f
movq -0x18(%rbp), %rax
movabsq $-0x5aa4411ac4e2880e, %rcx # imm = 0xA55BBEE53B1D77F2
subq %rcx, %rax
je 0x111b73
jmp 0x111b34
movq -0x18(%rbp), %rax
movabsq $-0x4882601bdca6aefb, %rcx # imm = 0xB77D9FE423595105
subq %rcx, %rax
je 0x111b9b
jmp 0x111b49
movq -0x18(%rbp), %rax
movabsq $-0x388c46b188de83fe, %rcx # imm = 0xC773B94E77217C02
subq %rcx, %rax
je 0x111baf
jmp 0x111b5e
movq -0x18(%rbp), %rax
movabsq $0x6d07f9ef5b68e8a2, %rcx # imm = 0x6D07F9EF5B68E8A2
subq %rcx, %rax
je 0x111ba5
jmp 0x111bb9
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x1, -0x8(%rbp)
jmp 0x111bc1
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tp.c
// Function: bcore_tp_signal_handler
vd_t bcore_tp_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_tp" ) ) )
    {
        case TYPEOF_init1:
        {
            return NULL;
        }
        break;

        default: break;
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0x4691e(%rip), %rdi     # 0x158509
callq 0x111c30
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xc7f40
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
subq %rcx, %rax
jne 0x111c17
jmp 0x111c0d
movq $0x0, -0x8(%rbp)
jmp 0x111c21
jmp 0x111c19
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tp_fastmap.c
// Function: bcore_tp_fastmap_table_s_clear
void bcore_tp_fastmap_table_s_clear( bcore_tp_fastmap_table_s* o )
{
    if( o->arr ) bcore_release( o->arr );
    o->arr = NULL;
    o->size = 0;
    o->mask = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x111d94
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x9d3f0
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x8(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)