LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_hmap_tp_sr.c
// Function: bcore_hmap_tp_sr_s_down
void bcore_hmap_tp_sr_s_down( bcore_hmap_tp_sr_s* o )
{
    for( uz_t i = 0; i < o->size; i++ ) bcore_hnode_tp_sr_s_down( &o->nodes[ i ] );
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size = 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
pushq $0x8
popq %r14
xorl %r15d, %r15d
movq 0x8(%rbx), %rdi
cmpq 0x18(%rbx), %r15
jae 0x6f69e
addq %r14, %rdi
callq 0x8d1c4
incq %r15
addq $0x20, %r14
jmp 0x6f683
xorl %esi, %esi
callq 0x6023e
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0x6023e
movq %rax, 0x10(%rbx)
andq $0x0, 0x18(%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_hmap_tp_sr.c
// Function: bcore_hmap_tp_sr_s_copy
void bcore_hmap_tp_sr_s_copy( bcore_hmap_tp_sr_s* o, const bcore_hmap_tp_sr_s* src )
{
    for( uz_t i = 0; i < o->size; i++ ) bcore_hnode_tp_sr_s_down( &o->nodes[ i ] );
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size = 0;

    o->nodes = bcore_u_memzero( sizeof( bcore_hnode_tp_sr_s ), o->nodes, src->size );
    for( uz_t i = 0; i < src->size; i++ ) bcore_hnode_tp_sr_s_copy( &o->nodes[ i ], &src->nodes[ i ] );
    o->size  = src->size;
    o->depth_limit = src->depth_limit;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
pushq $0x8
popq %r15
xorl %r12d, %r12d
movq 0x8(%rbx), %rdi
cmpq 0x18(%rbx), %r12
jae 0x6f6f3
addq %r15, %rdi
callq 0x8d1c4
incq %r12
addq $0x20, %r15
jmp 0x6f6d8
xorl %r15d, %r15d
xorl %esi, %esi
callq 0x6023e
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0x6023e
movq %rax, 0x10(%rbx)
andq $0x0, 0x18(%rbx)
movq 0x8(%rbx), %rsi
movq 0x18(%r14), %rdx
pushq $0x20
popq %rdi
callq 0x602ac
movq %rax, 0x8(%rbx)
xorl %r12d, %r12d
movq 0x18(%r14), %rax
cmpq %rax, %r12
jae 0x6f751
movq 0x8(%rbx), %rdi
addq %r15, %rdi
movq 0x8(%r14), %rsi
addq %r15, %rsi
callq 0x6f5b7
incq %r12
addq $0x20, %r15
jmp 0x6f72c
movq %rax, 0x18(%rbx)
movq 0x20(%r14), %rax
movq %rax, 0x20(%rbx)
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_hmap_tp_sr.c
// Function: tp_sr_set
static uz_t tp_sr_set( bcore_hmap_tp_sr_s* o, bcore_hnode_tp_sr_s node, uz_t depth ) // sets new node
{
    uz_t size = o->size;
    if( size == 0 ) return size;
    u3_t mask = o->size - 1;

    if( depth == o->depth_limit ) return size;

    uz_t idx1 = hash_tpu3_1( node.key ) & mask;
    if( !o->nodes[ idx1 ].key )
    {
        o->nodes[ idx1 ] = node;
        return idx1;
    }

    uz_t idx2 = hash_tpu3_2( node.key ) & mask;
    if( !o->nodes[ idx2 ].key )
    {
        o->nodes[ idx2 ] = node;
        return idx2;
    }

    if( !o->flags ) o->flags = bcore_u_memzero( sizeof( bl_t ), NULL, size );

    if( !o->flags[ idx1 ] )
    {
        o->flags[ idx1 ] = true;
        if( tp_sr_set( o, o->nodes[ idx1 ], depth + 1 ) < size )
        {
            o->flags[ idx1 ] = false;
            o->nodes[ idx1 ] = node;
            return idx1;
        }
        o->flags[ idx1 ] = false;
    }

    if( !o->flags[ idx2 ] )
    {
        o->flags[ idx2 ] = true;
        if( tp_sr_set( o, o->nodes[ idx2 ], depth + 1 ) < size )
        {
            o->flags[ idx2 ] = false;
            o->nodes[ idx2 ] = node;
            return idx2;
        }
        o->flags[ idx2 ] = false;
    }

    return size;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq 0x18(%rdi), %rbx
testq %rbx, %rbx
je 0x6fb18
movq %rdi, %r14
cmpq %rsi, 0x20(%rdi)
je 0x6fb3e
movq %rsi, 0x30(%rsp)
leaq 0x70(%rsp), %rax
leaq -0x1(%rbx), %r15
movq (%rax), %r13
movq %r13, %rdi
callq 0x7091a
movq %rax, %rdx
andq %r15, %rdx
movq 0x8(%r14), %rbp
movq %rdx, %r12
shlq $0x5, %r12
cmpq $0x0, (%rbp,%r12)
je 0x6fb1c
movq %rdx, 0x28(%rsp)
movq %r13, %rdi
callq 0x7097d
andq %r15, %rax
movq %rax, %r13
shlq $0x5, %r13
cmpq $0x0, (%rbp,%r13)
je 0x6fb21
movq %rax, %rbp
movq 0x10(%r14), %rax
testq %rax, %rax
jne 0x6fa7e
pushq $0x1
popq %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x602ac
movq %rax, 0x10(%r14)
movq 0x28(%rsp), %rcx
cmpb $0x0, (%rax,%rcx)
movq 0x30(%rsp), %r15
jne 0x6facb
movb $0x1, (%rax,%rcx)
movq 0x8(%r14), %rax
leaq 0x1(%r15), %rsi
movups (%rax,%r12), %xmm0
movups 0x10(%rax,%r12), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r14, %rdi
callq 0x6f9e0
movq 0x28(%rsp), %rdx
movq %rax, %rcx
movq 0x10(%r14), %rax
movb $0x0, (%rax,%rdx)
cmpq %rbx, %rcx
jb 0x6fb0b
cmpb $0x0, (%rax,%rbp)
jne 0x6fb3e
movb $0x1, (%rax,%rbp)
movq 0x8(%r14), %rax
incq %r15
movups (%rax,%r13), %xmm0
movups 0x10(%rax,%r13), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x6f9e0
movq 0x10(%r14), %rcx
movb $0x0, (%rcx,%rbp)
movq %rbp, %rdx
cmpq %rbx, %rax
jae 0x6fb3e
movq %rdx, %rbp
shlq $0x5, %rbp
addq 0x8(%r14), %rbp
jmp 0x6fb27
xorl %ebx, %ebx
jmp 0x6fb3e
addq %r12, %rbp
jmp 0x6fb27
addq %r13, %rbp
movq %rax, %rdx
leaq 0x70(%rsp), %rax
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups %xmm1, 0x10(%rbp)
movups %xmm0, (%rbp)
movq %rdx, %rbx
movq %rbx, %rax
addq $0x38, %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_hmap_tp_sr.c
// Function: bcore_hmap_tp_sr_s_remove
sr_s bcore_hmap_tp_sr_s_remove( bcore_hmap_tp_sr_s* o, tp_t key )
{
    if( key )
    {
        uz_t idx = tp_sr_find( o, key );
        if( idx < o->size )
        {
            bcore_hnode_tp_sr_s* node = &o->nodes[ idx ];
            sr_s ret = node->val;
            node->val = sr_null();
            node->key = 0;
            return ret;
        }
    }

    return sr_null();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
testq %rdx, %rdx
je 0x6fb9e
movq %rsi, %r14
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x6f7f3
cmpq 0x18(%r14), %rax
jae 0x6fb9e
movq 0x8(%r14), %rcx
shlq $0x5, %rax
movq 0x18(%rcx,%rax), %rdx
movq %rdx, 0x10(%rbx)
movups 0x8(%rcx,%rax), %xmm0
movups %xmm0, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rcx,%rax)
andq $0x0, 0x18(%rcx,%rax)
andq $0x0, (%rcx,%rax)
jmp 0x6fba9
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
andq $0x0, 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_hmap_tp_sr.c
// Function: hnode_tp_sr_s_create_self
static bcore_self_s* hnode_tp_sr_s_create_self( void )
{
    sc_t def = "\
        bcore_hnode_tp_sr_s = bcore_inst \
        { \
            tp_t key; \
            sr_s val; \
        }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hnode_tp_sr_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hnode_tp_sr_s_init, "bcore_fp_init", "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hnode_tp_sr_s_down, "bcore_fp_down", "down" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hnode_tp_sr_s_copy, "bcore_fp_copy", "copy" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x54073(%rip), %rdi     # 0xc481f
pushq $0x20
popq %rsi
pushq $0x8
popq %rdx
callq 0x64356
movq %rax, %rbx
leaq -0x1279(%rip), %rsi     # 0x6f548
leaq 0x4fff3(%rip), %rdx     # 0xc07bb
leaq 0x4fff5(%rip), %rcx     # 0xc07c4
movq %rax, %rdi
callq 0x63a2b
leaq -0x128e(%rip), %rsi     # 0x6f550
leaq 0x4ffe4(%rip), %rdx     # 0xc07c9
leaq 0x43dfc(%rip), %rcx     # 0xb45e8
movq %rbx, %rdi
callq 0x63a2b
leaq -0x1244(%rip), %rsi     # 0x6f5b7
leaq 0x4ffd5(%rip), %rdx     # 0xc07d7
leaq 0x4b54b(%rip), %rcx     # 0xbbd54
movq %rbx, %rdi
callq 0x63a2b
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_hmap_tp_sr.c
// Function: hmap_tp_sr_s_create_self
static bcore_self_s* hmap_tp_sr_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tp_sr_s = bcore_inst \
        { \
            aware_t _; \
            private bcore_hnode_tp_sr_s* nodes; \
            private bl_t* flags; \
            private uz_t size; \
            private uz_t depth_limit; \
            shell { bcore_hnode_tp_sr_s []; } data; } \
        }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tp_sr_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_sr_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_sr_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_sr_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tp_sr_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tp_sr_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x5406a(%rip), %rdi     # 0xc4888
pushq $0x28
popq %rsi
pushq $0x8
popq %rdx
callq 0x64356
movq %rax, %rbx
leaq -0x1214(%rip), %rsi     # 0x6f61f
leaq 0x4ff81(%rip), %rdx     # 0xc07bb
leaq 0x4ff83(%rip), %rcx     # 0xc07c4
movq %rax, %rdi
callq 0x63a2b
leaq -0x11dc(%rip), %rsi     # 0x6f674
leaq 0x4ff72(%rip), %rdx     # 0xc07c9
leaq 0x43d8a(%rip), %rcx     # 0xb45e8
movq %rbx, %rdi
callq 0x63a2b
leaq -0x11aa(%rip), %rsi     # 0x6f6c3
leaq 0x4ff63(%rip), %rdx     # 0xc07d7
leaq 0x4b4d9(%rip), %rcx     # 0xbbd54
movq %rbx, %rdi
callq 0x63a2b
leaq 0x156(%rip), %rsi       # 0x709e0
leaq 0x51096(%rip), %rdx     # 0xc1927
leaq 0x46944(%rip), %rcx     # 0xb71dc
movq %rbx, %rdi
callq 0x63a2b
leaq 0x24f(%rip), %rsi       # 0x70af6
leaq 0x5106c(%rip), %rdx     # 0xc191a
leaq 0x52f7d(%rip), %rcx     # 0xc3832
movq %rbx, %rdi
callq 0x63a2b
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_hmap_tp_sr.c
// Function: tp_sr_s_get_data
static sr_s tp_sr_s_get_data( const bcore_hmap_tp_sr_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ bcore_hnode_tp_sr_s []; }" );
    tp_t t_node = typeof( "bcore_hnode_tp_sr_s" );
    sr_s sr = sr_cp( sr_create( t_data ), TYPEOF_bcore_array_s );
    for( uz_t i = 0; i < o->size; i++ )
    {
        if( o->nodes[ i ].key ) bcore_array_r_push( &sr, sr_twc( t_node, &o->nodes[ i ] ) );
    }
    return sr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x53fac(%rip), %rdi     # 0xc49a7
callq 0x65033
movq %rax, %r13
leaq 0x53e01(%rip), %rdi     # 0xc480b
callq 0x6f63c
movq %rax, %r15
movq %r13, %rdi
callq 0x8cd0a
movq %rax, 0x20(%rsp)
testq %r13, %r13
je 0x70a31
movq %r13, %rdi
callq 0x8cd25
movq %rax, %rdi
jmp 0x70a33
xorl %edi, %edi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
callq 0x7abc8
movq %rax, %rbp
movq 0x20(%rsp), %rax
movq %rax, (%rbx)
movq %rbp, 0x8(%rbx)
movq %rbx, 0x28(%rsp)
movq $0x2, 0x10(%rbx)
xorl %ebx, %ebx
xorl %r13d, %r13d
cmpq 0x18(%r14), %r13
jae 0x70ae2
movq 0x8(%r14), %r12
cmpq $0x0, (%r12,%rbx)
je 0x70ad9
testq %r15, %r15
je 0x70a83
movq %r15, %rdi
callq 0x8cd25
jmp 0x70a85
xorl %eax, %eax
addq %rbx, %r12
movq %r12, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movq $0x1, 0x40(%rsp)
movq 0x8(%rbp), %rax
movq %rbp, %rdi
movabsq $-0x5073d588c3beb52e, %rcx # imm = 0xAF8C2A773C414AD2
cmpq %rcx, %rax
je 0x70abc
movq %rax, %rdi
callq 0x70c19
movq %rax, %rdi
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x30(%rsp), %xmm0
movups %xmm0, (%rsp)
movq 0x20(%rsp), %rsi
callq 0x7c34a
incq %r13
addq $0x20, %rbx
jmp 0x70a63
movq 0x28(%rsp), %rax
addq $0x48, %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_hmap_tp_sr.c
// Function: tp_sr_s_set_data
static void tp_sr_s_set_data( bcore_hmap_tp_sr_s* o, sr_s data )
{
    bcore_hmap_tp_sr_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ bcore_hnode_tp_sr_s []; }" ) );
    data = sr_cp( data, TYPEOF_bcore_array_s );
    uz_t size = bcore_array_r_get_size( &data );
    if( sr_s_is_strong( &data ) )
    {
        bcore_hnode_tp_sr_s* src = bcore_array_r_get_d_data( &data );
        for( uz_t i = 0; i < size; i++ )
        {
            bcore_hmap_tp_sr_s_set( o, src[ i ].key, src[ i ].val );
            src[ i ].val = sr_null();
        }
    }
    else
    {
        const bcore_hnode_tp_sr_s* src = bcore_array_r_get_c_data( &data );
        for( uz_t i = 0; i < size; i++ )
        {
            bcore_hmap_tp_sr_s_set( o, src[ i ].key, sr_cw( src[ i ].val ) );
        }
    }
    sr_down( data );
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
callq 0x6fbce
movq 0x60(%rsp), %r15
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %r12
movabsq $-0x5073d588c3beb52e, %r14 # imm = 0xAF8C2A773C414AD2
movq %r14, %rsi
callq 0x7abc8
movq %r15, 0x60(%rsp)
movq %rax, 0x68(%rsp)
movq %r12, 0x70(%rsp)
movq 0x8(%rax), %rdi
cmpq %r14, %rdi
je 0x70b47
callq 0x70c19
leaq 0x60(%rsp), %r14
movq %rax, %rdi
movq %r15, %rsi
callq 0x7c954
movq %rax, %r15
movq %r14, %rdi
testb $0x2, %r12b
jne 0x70baa
callq 0x7e6f4
movq %rax, %r12
subq $0x1, %r15
jb 0x70bf0
movq (%r12), %rsi
movups 0x8(%r12), %xmm0
movaps %xmm0, 0x20(%rsp)
movq 0x18(%r12), %rax
andq $-0x3, %rax
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movaps 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %rbx, %rdi
callq 0x6f857
addq $0x20, %r12
jmp 0x70b6b
callq 0x7e717
movq %rax, %r12
addq $0x8, %r12
subq $0x1, %r15
jb 0x70bf0
movq -0x8(%r12), %rsi
movq 0x10(%r12), %rax
movq %rax, 0x10(%rsp)
movups (%r12), %xmm0
movups %xmm0, (%rsp)
movq %rbx, %rdi
callq 0x6f857
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
andq $0x0, 0x10(%r12)
addq $0x20, %r12
jmp 0x70bb6
testb $0x2, 0x10(%r14)
je 0x70c0d
movq 0x10(%r14), %rax
movq %rax, 0x10(%rsp)
movups (%r14), %xmm0
movups %xmm0, (%rsp)
callq 0x8cdc1
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_hmap_tp_sr.c
// Function: hmap_tp_sr_s_status
static st_s* hmap_tp_sr_s_status( bcore_hmap_tp_sr_s* o )
{
    st_s* string = st_s_create();
    uz_t keys = bcore_hmap_tp_sr_s_keys( o );
    st_s_pushf( string, "keys ........... %zu\n", keys );
    st_s_pushf( string, "nodes .......... %lu\n", o->size );
    st_s_pushf( string, "keys/nodes ..... %5.4f\n", o->size > 0 ? ( f3_t )( keys ) / o->size : 0 );
    return string;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r15
xorl %eax, %eax
callq 0x8eb65
movq %rax, %rbx
movq %r15, %rdi
callq 0x6fc1d
movq %rax, %r14
leaq 0x528d2(%rip), %rsi     # 0xc355f
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x8f42b
movq 0x18(%r15), %rdx
leaq 0x528d0(%rip), %rsi     # 0xc3575
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8f42b
movq 0x18(%r15), %rax
xorpd %xmm0, %xmm0
testq %rax, %rax
je 0x70d02
movq %r14, %xmm1
movq 0x439e7(%rip), %xmm2    # 0xb46b0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x439eb(%rip), %xmm3    # 0xb46c0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %rax, %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
leaq 0x52882(%rip), %rsi     # 0xc358b
movq %rbx, %rdi
movb $0x1, %al
callq 0x8f42b
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_hmap_tp_st.c
// Function: hmap_tp_st_s_status
static st_s* hmap_tp_st_s_status( bcore_hmap_tp_st_s* o )
{
    st_s* string = st_s_create();
    uz_t keys = bcore_hmap_tp_st_s_keys( o );
    st_s_pushf( string, "keys ........... %zu\n", keys );
    st_s_pushf( string, "nodes .......... %lu\n", o->map.size );
    st_s_pushf( string, "keys/nodes ..... %5.4f\n", o->map.size > 0 ? ( f3_t )( keys ) / o->map.size : 0 );
    return string;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
xorl %eax, %eax
callq 0x8eb65
movq %rax, %rbx
leaq 0x8(%r14), %rdi
callq 0x6a205
movq %rax, %r15
leaq 0x51fdc(%rip), %rsi     # 0xc355f
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x8f42b
movq 0x20(%r14), %rdx
leaq 0x51fda(%rip), %rsi     # 0xc3575
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8f42b
movq 0x20(%r14), %rax
xorpd %xmm0, %xmm0
testq %rax, %rax
je 0x715f8
movq %r15, %xmm1
movq 0x430f1(%rip), %xmm2    # 0xb46b0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x430f5(%rip), %xmm3    # 0xb46c0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %rax, %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
leaq 0x51f8c(%rip), %rsi     # 0xc358b
movq %rbx, %rdi
movb $0x1, %al
callq 0x8f42b
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/./bcore_spect_via.h
// Function: bcore_via_s_get_typed
BCORE_DECLARE_SPECT( bcore_via )
{
    bcore_spect_header_s  header;
    const bcore_inst_s*   inst_p;     // inst perspective of this item
    const bcore_via_call_spect_s* via_call_p; // via callback perspective of this item
    uz_t  size;                 // number of elements
    bl_t  is_leaf;
    bl_t  is_aware;
    bcore_vitem_s* vitem_arr;   // array of vitem
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0xa7ad8(%rip), %rax     # 0x1190f8
movl (%rax), %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
movq 0x20(%rax,%rcx), %rdx
movq 0x18(%rax,%rcx), %rcx
andq %rdi, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rcx
cmpq %rdi, %rcx
jne 0x7164b
pushq $0x8
jmp 0x71670
movq 0x10(%rax), %rcx
cmpq %rbx, %rcx
jne 0x71658
pushq $0x18
jmp 0x71670
movq 0x20(%rax), %rcx
cmpq %rbx, %rcx
jne 0x71665
pushq $0x28
jmp 0x71670
movq 0x30(%rax), %rcx
cmpq %rbx, %rcx
jne 0x7167a
pushq $0x38
popq %rcx
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x716a1
movabsq $0x541d0401d4dcff33, %rdi # imm = 0x541D0401D4DCFF33
movq %rbx, %rsi
callq 0x79b94
movq %rax, %r14
leaq 0xa7a62(%rip), %rdi     # 0x1190f8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x98d4b
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_down
void bcore_life_s_down( struct bcore_life_s* o )
{
    assert( o );

    /// shut down in reverse order
    for( sz_t i = o->size - 1; i >= 0; i-- )
    {
        bcore_life_item_s_down( &o->data[ i ] );
    }

    o->data = bcore_alloc( o->data, 0 );
    o->space = 0;
    o->size = 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x20(%rdi), %r14
movq 0x20(%rdi), %r15
imulq $0x18, %r15, %r12
decq %r15
addq $-0x18, %r12
movq 0x18(%rbx), %rdi
testq %r15, %r15
js 0x7178e
addq %r12, %rdi
callq 0x716b4
jmp 0x71774
xorl %esi, %esi
callq 0x6023e
movq %rax, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%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_life.c
// Function: bcore_life_s_push_level_item
bcore_life_item_s* bcore_life_s_push_level_item( bcore_life_s* o, sz_t nesting_level )
{
    if( o->nesting_level == nesting_level )
    {
        assert( o );
        if( !o->data )
        {
            o->space = 4;
            o->data = bcore_alloc( NULL, o->space * sizeof( bcore_life_item_s ) );
        }
        else if( o->size == o->space )
        {
            o->space = o->space * 2;
            o->data = bcore_alloc( o->data, o->space * sizeof( bcore_life_item_s ) );
        }
        bcore_life_item_s* r = &o->data[ o->size ];
        o->size++;
        bcore_life_item_s_init( r );
        return r;
    }
    else if( o->parent )
    {
        return bcore_life_s_push_level_item( o->parent, nesting_level );
    }
    else
    {
        ERR_fa( "Found no manager at nesting-level #<sz_t>", nesting_level );
    }
    return NULL;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r8
movq %rdi, %rbx
cmpq %r8, 0x10(%rbx)
je 0x71863
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
jne 0x7182e
leaq 0x53276(%rip), %rdi     # 0xc4aba
leaq 0x5328c(%rip), %rsi     # 0xc4ad7
leaq 0x53292(%rip), %rcx     # 0xc4ae4
xorl %r14d, %r14d
movl $0x84, %edx
xorl %eax, %eax
callq 0x60186
jmp 0x718b7
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x71887
movq 0x20(%rbx), %rcx
cmpq 0x28(%rbx), %rcx
jne 0x7189d
leaq (%rcx,%rcx), %rdx
movq %rdx, 0x28(%rbx)
imulq $0x30, %rcx, %rsi
movq %rax, %rdi
jmp 0x71894
movq $0x4, 0x28(%rbx)
pushq $0x60
popq %rsi
xorl %edi, %edi
callq 0x6023e
movq %rax, 0x18(%rbx)
movq 0x20(%rbx), %rcx
imulq $0x18, %rcx, %r14
addq %rax, %r14
incq %rcx
movq %rcx, 0x20(%rbx)
movq %r14, %rdi
callq 0x716ac
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push
vd_t bcore_life_s_push( bcore_life_s* o, bcore_fp_discard discard, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->down_or_discard = discard;
    item->object  = object;
    return object;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
testq %rdx, %rdx
je 0x718e6
movq %rsi, %r14
callq 0x718c2
movq %r14, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_spush
vd_t bcore_life_s_spush( bcore_life_s* o, bcore_fp_down down, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->down_or_discard = down;
    item->object  = object;
    return object;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
testq %rdx, %rdx
je 0x7190c
movq %rsi, %r14
callq 0x718c2
movq %r14, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push_typed
vd_t bcore_life_s_push_typed( bcore_life_s* o, tp_t type, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->type   = type;
    item->object = object;
    item->typed_down_or_discard = ( bcore_fp_typed_down_or_discard )bcore_inst_t_discard;
    return object;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
testq %rdx, %rdx
je 0x7193d
movq %rsi, %r14
callq 0x718c2
movq %r14, 0x8(%rax)
movq %rbx, 0x10(%rax)
leaq 0xe(%rip), %rcx         # 0x71948
movq %rcx, (%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push_level_typed
vd_t bcore_life_s_push_level_typed( bcore_life_s* o, sz_t level, tp_t type, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_level_item( o, level );
    item->type   = type;
    item->object = object;
    item->typed_down_or_discard = ( bcore_fp_typed_down_or_discard )bcore_inst_t_discard;
    return object;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rcx, %rbx
testq %rcx, %rcx
je 0x7198d
movq %rdx, %r14
callq 0x71824
movq %r14, 0x8(%rax)
movq %rbx, 0x10(%rax)
leaq -0x42(%rip), %rcx       # 0x71948
movq %rcx, (%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_spush_typed
vd_t bcore_life_s_spush_typed( bcore_life_s* o, tp_t type, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->type   = type;
    item->object = object;
    item->typed_down_or_discard = ( bcore_fp_typed_down_or_discard )bcore_inst_t_down;
    return object;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
testq %rdx, %rdx
je 0x719be
movq %rsi, %r14
callq 0x718c2
movq %r14, 0x8(%rax)
movq %rbx, 0x10(%rax)
leaq 0xe(%rip), %rcx         # 0x719c9
movq %rcx, (%rax)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push_sr
sr_s bcore_life_s_push_sr( bcore_life_s* o, sr_s object )
{
    if( sr_s_is_strong( &object ) )
    {
        return sr_pocs( object.p, bcore_life_s_push_typed( o, sr_s_type( &object ), object.o ), sr_s_is_const( &object ), false );
    }
    else
    {
        return object;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x30(%rsp), %rcx
movq 0x10(%rcx), %r15
testb $0x2, %r15b
jne 0x71a0c
movq 0x10(%rcx), %rax
movq %rax, 0x10(%rbx)
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
jmp 0x71a3e
movq 0x8(%rcx), %r12
testq %r12, %r12
je 0x71a1c
movq 0x8(%r12), %rax
jmp 0x71a1e
xorl %eax, %eax
movq (%rcx), %r14
movq %rsi, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x71917
andl $0x1, %r15d
movq %r14, (%rbx)
movq %r12, 0x8(%rbx)
movq %r15, 0x10(%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_life.c
// Function: bcore_life_s_push_aware
vd_t bcore_life_s_push_aware( bcore_life_s* o, vd_t object )
{
    if( !object ) return NULL;
    assert( bcore_flect_exists( *( aware_t* )object ) );
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->down_or_discard = ( bcore_fp_down_or_discard )bcore_inst_a_discard;
    item->object = object;
    return object;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
testq %rsi, %rsi
je 0x71a69
callq 0x718c2
leaq 0xc(%rip), %rcx         # 0x71a6e
movq %rcx, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push_level_aware
vd_t bcore_life_s_push_level_aware( bcore_life_s* o, sz_t level, vd_t object )
{
    if( !object ) return NULL;
    assert( bcore_flect_exists( *( aware_t* )object ) );
    bcore_life_item_s* item = bcore_life_s_push_level_item( o, level );
    item->down_or_discard = ( bcore_fp_down_or_discard )bcore_inst_a_discard;
    item->object = object;
    return object;
}

// Assembly:
pushq %rbx
movq %rdx, %rbx
testq %rdx, %rdx
je 0x71aac
callq 0x71824
leaq -0x37(%rip), %rcx       # 0x71a6e
movq %rcx, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_spush_aware
vd_t bcore_life_s_spush_aware( bcore_life_s* o, vd_t object )
{
    if( !object ) return NULL;
    assert( bcore_flect_exists( *( aware_t* )object ) );
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->down_or_discard = ( bcore_fp_down_or_discard )bcore_inst_a_down;
    item->object  = object;
    return object;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
testq %rsi, %rsi
je 0x71acd
callq 0x718c2
leaq 0xc(%rip), %rcx         # 0x71ad2
movq %rcx, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_push_free
vd_t bcore_life_s_push_free( bcore_life_s* o, vd_t object )
{
    if( !object ) return NULL;
    bcore_life_item_s* item = bcore_life_s_push_item( o );
    item->down_or_discard = ( bcore_fp_down_or_discard )bcore_free;
    item->object  = object;
    return object;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
testq %rsi, %rsi
je 0x71b0a
callq 0x718c2
leaq -0x118d3(%rip), %rcx    # 0x60230
movq %rcx, (%rax)
movq %rbx, 0x10(%rax)
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_down_all
void bcore_life_s_down_all( bcore_life_s* o )
{
    if( !o ) return;
    bcore_life_s* parent = o->parent;
    bcore_life_s_down( o );
    bcore_life_s_down_all( parent );
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x71b78
movq 0x8(%rdi), %rbx
callq 0x7175d
movq %rbx, %rdi
jmp 0x71b65
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_down_level
void bcore_life_s_down_level( bcore_life_s* o, sz_t nesting_level )
{
    if( !o ) return;
    if( o->nesting_level < nesting_level ) return;
    bcore_life_s* parent = o->parent;
    bcore_life_s_down( o );
    bcore_life_s_down_level( parent, nesting_level );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
testq %rdi, %rdi
je 0x71b9a
cmpq %rbx, 0x10(%rdi)
jl 0x71b9a
movq 0x8(%rdi), %r14
callq 0x7175d
movq %r14, %rdi
jmp 0x71b81
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: bcore_life_s_discard_all
void bcore_life_s_discard_all( bcore_life_s* o )
{
    if( !o ) return;
    bcore_life_s* parent = o->parent;
    bcore_life_s_discard( o );
    bcore_life_s_discard_all( parent );
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x71bb6
movq 0x8(%rdi), %rbx
callq 0x717c7
movq %rbx, %rdi
jmp 0x71ba3
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_life.c
// Function: life_s_create_self
static bcore_self_s* life_s_create_self( void )
{
    sc_t sc_def =
    "bcore_life_s = bcore_inst"
    "{"
        "aware_t _;"
        "private vd_t parent;"
        "private sz_t nesting_level;"
        "private vd_t data;"
        "private uz_t size;"
        "private uz_t space;"
    "}";

    bcore_self_s* self = bcore_self_s_build_parse_sc( sc_def, sizeof( bcore_life_s ), alignof( bcore_life_s ) );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_life_s_init, "bcore_fp_init",  "init" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_life_s_down, "bcore_fp_down",  "down" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x52ee5(%rip), %rdi     # 0xc4b26
pushq $0x30
popq %rsi
pushq $0x8
popq %rdx
callq 0x64356
movq %rax, %rbx
leaq -0x514(%rip), %rsi      # 0x71742
leaq 0x4eb5e(%rip), %rdx     # 0xc07bb
leaq 0x4eb60(%rip), %rcx     # 0xc07c4
movq %rax, %rdi
callq 0x63a2b
leaq -0x516(%rip), %rsi      # 0x7175d
leaq 0x4eb4f(%rip), %rdx     # 0xc07c9
leaq 0x42967(%rip), %rcx     # 0xb45e8
movq %rbx, %rdi
callq 0x63a2b
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/./bcore_spect_inst.h
// Function: bcore_inst_s_get_typed
BCORE_DECLARE_SPECT( bcore_inst )
{
    bcore_spect_header_s header;

    bcore_inst_body_s* body;

    uz_t size;   // sizeof(type);
    uz_t align;  // alignof(type)
    bl_t aware;  // object is self-aware, meaning it defines its type (aware_t) as first element

    bl_t init_flat; // flat initialization possible
    bl_t down_flat; // flat shut down possible
    bl_t copy_flat; // flat copying possible
    bl_t move_flat; // init_flat && copy_flat && down_flat

    /// these functions are only defined if they are part of object's reflection
    fp_t init_o; // bcore_fp_init or ap_t
    fp_t down_o; // bcore_fp_down or ap_t
    fp_t copy_o; // bcore_fp_copy or ap_t
    bcore_fp_copy_typed   copy_typed_o;
    bcore_fp_move         move_o;
    bcore_fp_create       create_o;
    bcore_fp_create_typed create_typed_o;
    bcore_fp_discard      discard_o;
    bcore_fp_clone        clone_o;

    /// callback perspective
    const bcore_inst_call_spect_s* inst_call_p;

    /// these functions are always defined and represent the service this perspective offers
    void ( *init         )( const bcore_inst_s* p, vd_t o );
    void ( *down         )( const bcore_inst_s* p, vd_t o );
    void ( *copy         )( const bcore_inst_s* p, vd_t o,         vc_t src );
    er_t ( *copy_typed   )( const bcore_inst_s* p, vd_t o, tp_t t, vc_t src );
    void ( *move         )( const bcore_inst_s* p, vd_t o,         vd_t src );
    vd_t ( *create       )( const bcore_inst_s* p );
    vd_t ( *create_typed )( const bcore_inst_s* p, tp_t t, vc_t src );
    void ( *discard      )( const bcore_inst_s* p, vd_t o );
    vd_t ( *clone        )( const bcore_inst_s* p, vc_t o );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0xa67cc(%rip), %rax     # 0x118468
movl (%rax), %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
movq 0x20(%rax,%rcx), %rdx
movq 0x18(%rax,%rcx), %rcx
andq %rdi, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rcx
cmpq %rdi, %rcx
jne 0x71cc7
pushq $0x8
jmp 0x71cec
movq 0x10(%rax), %rcx
cmpq %rbx, %rcx
jne 0x71cd4
pushq $0x18
jmp 0x71cec
movq 0x20(%rax), %rcx
cmpq %rbx, %rcx
jne 0x71ce1
pushq $0x28
jmp 0x71cec
movq 0x30(%rax), %rcx
cmpq %rbx, %rcx
jne 0x71cf6
pushq $0x38
popq %rcx
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x71d1d
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %rbx, %rsi
callq 0x79b94
movq %rax, %r14
leaq 0xa6756(%rip), %rdi     # 0x118468
movq %rbx, %rsi
movq %rax, %rdx
callq 0x98d4b
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: cat_name_ns_n
st_s* cat_name_ns_n( tp_t name_space, sc_t name, uz_t n )
{
    st_s* cat_name = st_s_create();
    if( name_space )
    {
        st_s_push_st_d( cat_name, bifnameof_s( name_space ) );
        st_s_push_char( cat_name, ':' );
    }
    st_s_push_sc_n( cat_name, name, n );
    return cat_name;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r12
xorl %eax, %eax
callq 0x8eb65
movq %rax, %r15
testq %r12, %r12
je 0x71d72
movq %r12, %rdi
callq 0x71e3e
testq %rax, %rax
jne 0x71d5c
xorl %eax, %eax
callq 0x8eb65
movq %r15, %rdi
movq %rax, %rsi
callq 0x8f2e5
pushq $0x3a
popq %rsi
movq %r15, %rdi
callq 0x8f0ee
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x8f307
movq %r15, %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_name_manager.c
// Function: bcore_name_try_name
sc_t bcore_name_try_name( tp_t type )
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    bcore_name_s* name = bcore_name_map_s_get( &hmap_s_g->map, type );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return name ? name->name : NULL;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0xa6017(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq 0xa6007(%rip), %rdi     # 0x117dd8
movq %rbx, %rsi
callq 0xa8a80
movq %rax, %rbx
movq 0xa5ff5(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
testq %rbx, %rbx
je 0x71df7
movq 0x10(%rbx), %rax
jmp 0x71df9
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_try_name_s
st_s* bcore_name_try_name_s( tp_t type )
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    bcore_name_s* name = bcore_name_map_s_get( &hmap_s_g->map, type );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );

    if( name )
    {
        return cat_name_ns( name->name_space, name->name );
    }
    return NULL;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0xa5f8f(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq 0xa5f7f(%rip), %rdi     # 0x117dd8
movq %rbx, %rsi
callq 0xa8a80
movq %rax, %rbx
movq 0xa5f6d(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
testq %rbx, %rbx
je 0x71e87
movq 0x8(%rbx), %rdi
movq 0x10(%rbx), %rsi
popq %rbx
jmp 0x71d8f
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_check_collision_sn
er_t bcore_name_check_collision_sn( tp_t name_space, sc_t name, uz_t n )
{
    assert( hmap_s_g != NULL );
    tp_t key = bcore_name_key_ns_n( name_space, name, n );
    if( key == 0 )
    {
        return bcore_error_push_fa( TYPEOF_general_error, "Hash of '#<sc_t>' is zero. Zero is a reserved value.", cat_name_ns_n( name_space, name, n )->sc );
    }

    bcore_mutex_s_lock( &hmap_s_g->mutex );
    bcore_name_s* node = bcore_name_map_s_get( &hmap_s_g->map, key );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );

    if( node )
    {
        if( node->name_space != name_space || ( bcore_strcmp_n( name, n, node->name, bcore_strlen( node->name ) ) != 0 ) )
        {
            return bcore_error_push_fa( TYPEOF_general_error, "'#<sc_t>' collides with '#<sc_t>' at key value '#<tp_t>'", cat_name_ns_n( name_space, name, n )->sc, cat_name_ns( node->name_space, node->name )->sc, key );
        }
    }
    else
    {
        if( name_space && !bcore_name_map_s_exists( &hmap_s_g->map, name_space ) )
        {
            return bcore_error_push_fa( TYPEOF_general_error, "Namespace '#<tp_t>' not found", name_space );
        }
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
callq 0x7201f
testq %rax, %rax
je 0x71fa8
movq %rax, %r14
movq 0xa5ede(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq 0xa5ece(%rip), %rdi     # 0x117dd8
movq %r14, %rsi
callq 0xa8a80
movq %rax, %r13
movq 0xa5ebc(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
testq %r13, %r13
je 0x71fe0
cmpq %rbx, 0x8(%r13)
jne 0x71f59
movq 0x10(%r13), %rbp
movq %rbp, %rdi
callq 0x60379
movq %r12, %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq %rax, %rcx
callq 0x60374
testl %eax, %eax
je 0x71ff8
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x71d28
movq 0x8(%rax), %rbx
movq 0x8(%r13), %rdi
movq 0x10(%r13), %rsi
callq 0x71d8f
movq 0x8(%rax), %rcx
leaq 0x52cb8(%rip), %rsi     # 0xc4c3b
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
movq %rbx, %rdx
movq %r14, %r8
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x605f4
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x71d28
movq 0x8(%rax), %rdx
leaq 0x52c45(%rip), %rsi     # 0xc4c06
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x605f4
testq %rbx, %rbx
je 0x71ff8
movq 0xa5dec(%rip), %rdi     # 0x117dd8
movq %rbx, %rsi
callq 0xa8ac1
testb %al, %al
je 0x72009
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x52c64(%rip), %rsi     # 0xc4c74
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
movq %rbx, %rdx
jmp 0x71fcb
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: btypeof_fv
tp_t btypeof_fv( sc_t format, va_list args )
{
    st_s* s = st_s_create_fv( format, args );
    tp_t tp = btypeof( s->sc );
    st_s_discard( s );
    return tp;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x8ec4c
movq %rax, %rbx
movq 0x8(%rax), %rdi
callq 0x722bc
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_name_manager.c
// Function: bentypeof_fv
tp_t bentypeof_fv( sc_t format, va_list args )
{
    st_s* s = st_s_create_fv( format, args );
    tp_t tp = bentypeof( s->sc );
    st_s_discard( s );
    return tp;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x8ec4c
movq %rax, %rbx
movq 0x8(%rax), %rdi
callq 0x7227a
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_name_manager.c
// Function: bcore_name_push_all
void bcore_name_push_all( bcore_hmap_name_s* name_map )
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    for( uz_t i = 0; i < hmap_s_g->map.size; i++ )
    {
        const bcore_name_s* name = &hmap_s_g->map.data[ i ];
        if( name->key ) bcore_hmap_name_s_set_sc( name_map, name->name );
    }
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0xa5966(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
pushq $0x10
popq %r14
xorl %r15d, %r15d
movq 0xa594f(%rip), %rdi     # 0x117dd8
cmpq 0x18(%rdi), %r15
jae 0x724b7
movq 0x8(%rdi), %rax
cmpq $0x0, -0x10(%rax,%r14)
je 0x724ae
movq (%rax,%r14), %rsi
movq %rbx, %rdi
callq 0x6f48c
movq 0xa592a(%rip), %rdi     # 0x117dd8
incq %r15
addq $0x18, %r14
jmp 0x72489
addq $0x30, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x97b12
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_size
sz_t  bcore_name_size()
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    sz_t size = bcore_name_map_s_keys( &hmap_s_g->map );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return size;
}

// Assembly:
pushq %rbx
movq 0xa590b(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq 0xa58fb(%rip), %rdi     # 0x117dd8
callq 0xa8ad3
movq %rax, %rbx
movq 0xa58ec(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_show
st_s* bcore_name_show()
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    st_s* log = st_s_create();
    uz_t size = bcore_name_map_s_size( &hmap_s_g->map );
    for( uz_t i = 0; i < size; i++ )
    {
        bcore_name_s* node = bcore_name_map_s_idx_name( &hmap_s_g->map, i );
        if( node->key )
        {
            bcore_mutex_s_unlock( &hmap_s_g->mutex );
            st_s_push_st_d( log, cat_name_ns( node->name_space, node->name ) );
            bcore_mutex_s_lock( &hmap_s_g->mutex );
            st_s_push_char( log, '\n' );
        }
    }
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return log;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq 0xa58cf(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x8eb65
movq %rax, %rbx
movq 0xa58b2(%rip), %rdi     # 0x117dd8
callq 0xa8af5
movq %rax, %r15
pushq $0xa
popq %rbp
movq 0xa58a0(%rip), %rdi     # 0x117dd8
cmpq %r14, %r15
je 0x72597
movq %r14, %rsi
callq 0xa8afa
cmpq $0x0, (%rax)
je 0x72592
movq %rax, %r12
movq 0xa5883(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
movq 0x8(%r12), %rdi
movq 0x10(%r12), %rsi
callq 0x71d8f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8f2e5
movq 0xa5859(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq %rbx, %rdi
movl %ebp, %esi
callq 0x8f0ee
incq %r14
jmp 0x72531
addq $0x30, %rdi
callq 0x97b12
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_create_name_map
bcore_name_map_s* bcore_name_create_name_map()
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    bcore_name_map_s* ret = bcore_name_map_s_clone( &hmap_s_g->map );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return ret;
}

// Assembly:
pushq %rbx
movq 0xa5824(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97ae2
movq 0xa5814(%rip), %rdi     # 0x117dd8
callq 0xa870f
movq %rax, %rbx
movq 0xa5805(%rip), %rdi     # 0x117dd8
addq $0x30, %rdi
callq 0x97b12
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_manager_selftest
st_s* bcore_name_manager_selftest()
{
    tp_t mynamespace_t = bentypeof( "mynamespace" );
    tp_t myname_t = bentypeof_ns( mynamespace_t, "myname" );
    ASSERT( myname_t == btypeof( "mynamespace:myname" ) );
    st_s* cname = bnameof_s( myname_t );
    ASSERT( st_s_cmp_sc( cname, "mynamespace:myname" ) == 0 );
    st_s_discard( cname );
    return NULL;
}

// Assembly:
pushq %rbx
leaq 0x52725(%rip), %rdi     # 0xc4d0e
callq 0x7227a
leaq 0x52731(%rip), %rsi     # 0xc4d26
movq %rax, %rdi
callq 0x72246
movq %rax, %rbx
leaq 0x52713(%rip), %rdi     # 0xc4d1a
callq 0x722bc
cmpq %rax, %rbx
je 0x7263a
leaq 0x3802f(%rip), %rdi     # 0xaa647
leaq 0x5270e(%rip), %rsi     # 0xc4d2d
leaq 0x52733(%rip), %rdx     # 0xc4d59
leaq 0x52599(%rip), %rcx     # 0xc4bc6
movl $0x186, %r8d            # imm = 0x186
xorl %eax, %eax
callq 0x5ffac
movq %rbx, %rdi
callq 0x71e3e
movq %rax, %rbx
testq %rax, %rax
je 0x72650
movq 0x8(%rbx), %rdi
jmp 0x72652
xorl %edi, %edi
leaq 0x526c1(%rip), %rsi     # 0xc4d1a
callq 0x6036f
testl %eax, %eax
je 0x7268b
leaq 0x37fde(%rip), %rdi     # 0xaa647
leaq 0x52705(%rip), %rsi     # 0xc4d75
leaq 0x526e2(%rip), %rdx     # 0xc4d59
leaq 0x52548(%rip), %rcx     # 0xc4bc6
movl $0x188, %r8d            # imm = 0x188
xorl %eax, %eax
callq 0x5ffac
movq %rbx, %rdi
callq 0x8edd4
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: bcore_name_manager_signal_handler
vd_t bcore_name_manager_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, btypeof( "bcore_name_manager" ) ) )
    {
        case TYPEOF_init0:
        {
            name_manager_open();
        }
        break;

        case TYPEOF_init1:
        {
        }
        break;

        case TYPEOF_down0:
        {
            // bcore_tbman_instance_disgnostics();

            s2_t verbosity = o->object ? *( s2_t* )o->object : 0;
            if( verbosity > 0 )
            {
                uz_t count = bcore_name_size(); // number of registered names
                uz_t space = bcore_tbman_total_granted_space();
                name_manager_close();
                space -= bcore_tbman_total_granted_space();
                bcore_msg( "  name mananger ....... % 7zu (by % 4zu names        )\n", space, count );
            }
            else
            {
                name_manager_close();
            }
        }
        break;

        case TYPEOF_selftest:
        {
            return bcore_name_manager_selftest();
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x52700(%rip), %rdi     # 0xc4da5
callq 0x722bc
movq %rbx, %rdi
movq %rax, %rsi
callq 0x75141
movabsq $-0x69a05554ee793861, %rcx # imm = 0x965FAAAB1186C79F
cmpq %rcx, %rax
je 0x726fe
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
cmpq %rcx, %rax
je 0x726f7
movabsq $0x6a72cf8f8250f179, %rcx # imm = 0x6A72CF8F8250F179
cmpq %rcx, %rax
jne 0x72744
leaq 0xa56f7(%rip), %rdi     # 0x117de0
leaq 0x84(%rip), %rsi        # 0x72774
callq 0x97d2e
jmp 0x72744
callq 0x725e1
jmp 0x72744
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x7273f
cmpl $0x0, (%rax)
jle 0x7273f
callq 0x724c5
movq %rax, %rbx
callq 0x9536f
movq %rax, %r14
callq 0x727a9
callq 0x9536f
subq %rax, %r14
leaq 0x52688(%rip), %rdi     # 0xc4db8
movq %r14, %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x5fb6b
jmp 0x72744
callq 0x727a9
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_name_manager.c
// Function: hmap_s_down
static void hmap_s_down( hmap_s* o )
{
    bcore_mutex_s_lock( &o->mutex );
    bcore_name_map_s_down( &o->map );
    bcore_mutex_s_unlock( &o->mutex );
    bcore_mutex_s_down( &o->mutex );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x30(%rdi), %r14
movq %r14, %rdi
callq 0x97ae2
movq %rbx, %rdi
callq 0xa867c
movq %r14, %rdi
callq 0x97b12
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x979f9
nopl (%rax)