LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_self_s_try_external_fp
fp_t bcore_self_s_try_external_fp( const bcore_self_s* o, tp_t type, tp_t name )
{
    if( !o->body ) return NULL;
    const bcore_self_body_s* body = o->body;
    for( uz_t i = 0; i < body->size; i++ )
    {
        const bcore_self_item_s* item = body->data[ i ];
        if( ( item->caps == BCORE_CAPS_EXTERNAL_FUNC ) &&
            ( type == 0 || item->type == type        ) &&
            ( name == 0 || item->name == name        ) )
        {
            if( item->default_tp )
            {
                fp_t fp = bcore_function_get( item->default_tp );
                if( !fp ) ERR( "Function '%s' (%"PRItp_t") not registered in function manager.", ifnameof(item->default_tp ), item->default_tp );
                return fp;
            }
            else
            {
                ERR( "Object '%s': Function '%s' declared but not assigned.", ifnameof( o->type ), ifnameof( name ) );
            }
        }
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0xa6a5c
movq $0x0, -0x8(%rbp)
jmp 0xa6b99
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0xa6b91
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpl $0xe, 0x10(%rax)
jne 0xa6b7e
cmpq $0x0, -0x18(%rbp)
je 0xa6abb
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jne 0xa6b7e
cmpq $0x0, -0x20(%rbp)
je 0xa6ad4
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
cmpq -0x20(%rbp), %rax
jne 0xa6b7e
movq -0x38(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xa6b3a
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0xaa6d0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0xa6b30
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0xa0a30
movq %rax, %r8
movq -0x38(%rbp), %rax
movq 0x18(%rax), %r9
leaq 0xa731f(%rip), %rdi     # 0x14de35
leaq 0xa6ca5(%rip), %rsi     # 0x14d7c2
movl $0x776, %edx            # imm = 0x776
leaq 0xa7329(%rip), %rcx     # 0x14de52
movb $0x0, %al
callq 0x9cf40
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xa6b99
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa0a30
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rdi
callq 0xa0a30
movq -0x48(%rbp), %r8
movq %rax, %r9
leaq 0xa72d3(%rip), %rdi     # 0x14de35
leaq 0xa6c59(%rip), %rsi     # 0x14d7c2
movl $0x77b, %edx            # imm = 0x77B
leaq 0xa7315(%rip), %rcx     # 0x14de8a
movb $0x0, %al
callq 0x9cf40
jmp 0xa6b7e
jmp 0xa6b80
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xa6a70
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_self_s_is_aware
bool bcore_self_s_is_aware( const bcore_self_s* o )
{
    if( !o->body ) return false;
    const bcore_self_body_s* body = o->body;
    if( body->size == 0 ) return false;
    return body->data[ 0 ]->type == TYPEOF_aware_t || body->data[ 0 ]->type == TYPEOF_bcore_spect_header_s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0xa6c59
movb $0x0, -0x1(%rbp)
jmp 0xa6cb9
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xa6c76
movb $0x0, -0x1(%rbp)
jmp 0xa6cb9
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rcx
movb $0x1, %al
movabsq $-0x388c46b188de83fe, %rdx # imm = 0xC773B94E77217C02
cmpq %rdx, (%rcx)
movb %al, -0x19(%rbp)
je 0xa6cb1
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movabsq $-0x7c15e45e4ba87aee, %rcx # imm = 0x83EA1BA1B4578512
cmpq %rcx, (%rax)
sete %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_self_s_try_const
vc_t bcore_self_s_try_const( const bcore_self_s* o, tp_t type, tp_t name ) // returns NULL when not found
{
    if( !o->body ) return NULL;
    const bcore_self_body_s* body = o->body;
    for( uz_t i = 0; i < body->size; i++ )
    {
        const bcore_self_item_s* item = body->data[ i ];
        if( ( item->caps == BCORE_CAPS_SOLID_STATIC ) &&
            ( type == 0 || item->type == type       ) &&
            ( name == 0 || item->name == name       ) )
        {
            return &item->default_u3; // u3 maximally aligned and representative for all default types
        }
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0xa6dc8
movq $0x0, -0x8(%rbp)
jmp 0xa6e56
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0xa6e4e
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpl $0x1, 0x10(%rax)
jne 0xa6e3e
cmpq $0x0, -0x18(%rbp)
je 0xa6e1b
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jne 0xa6e3e
cmpq $0x0, -0x20(%rbp)
je 0xa6e30
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
cmpq -0x20(%rbp), %rax
jne 0xa6e3e
movq -0x38(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x8(%rbp)
jmp 0xa6e56
jmp 0xa6e40
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xa6ddc
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_self_s_check_integrity
void bcore_self_s_check_integrity( const bcore_self_s* o )
{
    if( !bcore_trait_supported( o->trait, o, NULL ) )
    {
        st_s* log = st_s_create();
        bcore_trait_supported( o->trait, o, log );
        ERR( "Reflection '%s' is of trait '%s' but does not support it.\nReason: %s\n", ifnameof( o->type ), ifnameof( o->trait ), log->sc );
        st_s_discard( log );
    }
    if( o->body ) bcore_self_body_s_check_integrity( o->body );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x1139a0
testb $0x1, %al
jne 0xa6f90
movb $0x0, %al
callq 0xff2e0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x1139a0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa0a30
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xa0a30
movq -0x18(%rbp), %r8
movq %rax, %r9
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
leaq 0xa7047(%rip), %rdi     # 0x14dfb0
leaq 0xa6852(%rip), %rsi     # 0x14d7c2
movl $0x7ca, %edx            # imm = 0x7CA
leaq 0xa7051(%rip), %rcx     # 0x14dfcd
movq %rax, (%rsp)
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
callq 0xff600
movq -0x8(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xa6fa8
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xa4f10
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_discard_flect_maps
void bcore_discard_flect_maps()
{
    if( self_map_s_g )
    {
        self_map_s_discard( self_map_s_g );
        self_map_s_g = NULL;
    }
    if( creator_map_s_g )
    {
        creator_map_s_discard( creator_map_s_g );
        creator_map_s_g = NULL;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpq $0x0, 0x10b30c(%rip)    # 0x1b2308
je 0xa7015
movq 0x10b303(%rip), %rdi    # 0x1b2308
callq 0xa7040
movq $0x0, 0x10b2f3(%rip) # 0x1b2308
cmpq $0x0, 0x10b2f3(%rip)    # 0x1b2310
je 0xa7036
movq 0x10b2ea(%rip), %rdi    # 0x1b2310
callq 0xa7070
movq $0x0, 0x10b2da(%rip) # 0x1b2310
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_exists
bl_t bcore_flect_exists( tp_t type )
{
    assert( self_map_s_g != NULL );
    bl_t exists = false;

    bcore_mutex_s_lock( &self_map_s_g->mutex );
    exists = bcore_hmap_u3vd_s_exists( self_map_s_g->hmap, type );
    bcore_mutex_s_unlock( &self_map_s_g->mutex );
    if( exists ) return true;

    assert( creator_map_s_g != NULL );
    bcore_mutex_s_lock( &creator_map_s_g->mutex );
    exists = bcore_hmap_u3vd_s_exists( creator_map_s_g->hmap, type );
    bcore_mutex_s_unlock( &creator_map_s_g->mutex );
    return exists;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq 0x10b251(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b241(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xac3f0
andb $0x1, %al
movb %al, -0x11(%rbp)
movq 0x10b229(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
testb $0x1, -0x11(%rbp)
je 0xa70f4
movb $0x1, -0x1(%rbp)
jmp 0xa7134
movq 0x10b215(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b205(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xac3f0
andb $0x1, %al
movb %al, -0x11(%rbp)
movq 0x10b1ed(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc70
movb -0x11(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_size
sz_t bcore_flect_size()
{
    sz_t count = 0;
    bcore_mutex_s_lock( &creator_map_s_g->mutex );
    {
        sz_t size = bcore_hmap_u3vd_s_size( creator_map_s_g->hmap );
        for( sz_t i = 0; i < size; i++ )
        {
            tp_t type = bcore_hmap_u3vd_s_idx_key( creator_map_s_g->hmap, i );
            if( type ) count++;
        }
    }

    bcore_mutex_s_lock( &self_map_s_g->mutex );
    {
        sz_t size = bcore_hmap_u3vd_s_size( self_map_s_g->hmap );
        for( sz_t i = 0; i < size; i++ )
        {
            tp_t type = bcore_hmap_u3vd_s_idx_key( self_map_s_g->hmap, i );
            if( type && !bcore_hmap_u3vd_s_exists( creator_map_s_g->hmap, type ) )
            {
                 count++;
            }
        }
    }

    bcore_mutex_s_unlock( &creator_map_s_g->mutex );
    bcore_mutex_s_unlock( &self_map_s_g->mutex );

    return count;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq $0x0, -0x8(%rbp)
movq 0x10b1b9(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b1a9(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
callq 0xac620
movq %rax, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jge 0xa71bf
movq 0x10b184(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xac640
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xa71af
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0xa71b1
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xa717b
movq 0x10b142(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b132(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
callq 0xac620
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x28(%rbp), %rax
jge 0xa7245
movq 0x10b10d(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
callq 0xac640
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0xa7235
movq 0x10b0f7(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0xac3f0
testb $0x1, %al
jne 0xa7235
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0xa7237
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xa71ea
movq 0x10b0c4(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc70
movq 0x10b0ac(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_push_all_types
void bcore_flect_push_all_types( bcore_arr_tp_s* arr )
{
    bcore_mutex_s_lock( &creator_map_s_g->mutex );
    {
        sz_t size = bcore_hmap_u3vd_s_size( creator_map_s_g->hmap );
        for( sz_t i = 0; i < size; i++ )
        {
            tp_t type = bcore_hmap_u3vd_s_idx_key( creator_map_s_g->hmap, i );
            if( type ) bcore_arr_tp_s_push( arr, type );
        }
    }

    bcore_mutex_s_lock( &self_map_s_g->mutex );
    {
        sz_t size = bcore_hmap_u3vd_s_size( self_map_s_g->hmap );
        for( sz_t i = 0; i < size; i++ )
        {
            tp_t type = bcore_hmap_u3vd_s_idx_key( self_map_s_g->hmap, i );
            if( type && !bcore_hmap_u3vd_s_exists( creator_map_s_g->hmap, type ) )
            {
                bcore_arr_tp_s_push( arr, type );
            }
        }
    }

    bcore_mutex_s_unlock( &creator_map_s_g->mutex );
    bcore_mutex_s_unlock( &self_map_s_g->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq 0x10b08d(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b07d(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
callq 0xac620
movq %rax, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jge 0xa72ec
movq 0x10b058(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xac640
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xa72dc
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x948a0
jmp 0xa72de
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xa72a7
movq 0x10b015(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq 0x10b005(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
callq 0xac620
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x28(%rbp), %rax
jge 0xa7373
movq 0x10afe0(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
callq 0xac640
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0xa7363
movq 0x10afca(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0xac3f0
testb $0x1, %al
jne 0xa7363
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x948a0
jmp 0xa7365
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xa7317
movq 0x10af96(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc70
movq 0x10af7e(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_get_self
const bcore_self_s* bcore_flect_get_self( tp_t type )
{
    const bcore_self_s* self = bcore_flect_try_self( type );
    if( !self )
    {
        const char* name = bcore_name_try_name( type );
        if( !name )
        {
            ERR( "type '0x%x'; has neither name nor self-reflection", type );
        }
        else
        {
            ERR( "type '%s' has no self-reflection", name );
        }
    }
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa6610
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xa7612
movq -0x8(%rbp), %rdi
callq 0xc10f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xa75eb
movq -0x8(%rbp), %r8
leaq 0xa6af0(%rip), %rdi     # 0x14e0bf
leaq 0xa61ec(%rip), %rsi     # 0x14d7c2
movl $0x920, %edx            # imm = 0x920
leaq 0xa6af2(%rip), %rcx     # 0x14e0d4
movb $0x0, %al
callq 0x9cf40
jmp 0xa7610
movq -0x18(%rbp), %r8
leaq 0xa6ac9(%rip), %rdi     # 0x14e0bf
leaq 0xa61c5(%rip), %rsi     # 0x14d7c2
movl $0x924, %edx            # imm = 0x924
leaq 0xa6afd(%rip), %rcx     # 0x14e106
movb $0x0, %al
callq 0x9cf40
jmp 0xa7612
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_define_self_d
tp_t bcore_flect_define_self_d( bcore_self_s* self )
{
    assert( self_map_s_g != NULL );
    bcore_self_s_check_integrity( self );
    tp_t type = self->type;
    bcore_mutex_s_lock( &self_map_s_g->mutex );
    if( bcore_hmap_u3vd_s_exists( self_map_s_g->hmap, type ) ) ERR( "'%s' (%"PRItp_t") is already defined", ifnameof( type ), type );
    bcore_flect_set_trait( self );
    bcore_hmap_u3vd_s_set( self_map_s_g->hmap, type, self, true );
    bcore_mutex_s_unlock( &self_map_s_g->mutex );
    return self->type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa6ef0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq 0x10acc0(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq 0x10acb0(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xac3f0
testb $0x1, %al
jne 0xa766a
jmp 0xa769b
movq -0x10(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
movq -0x10(%rbp), %r9
leaq 0xa6aa6(%rip), %rdi     # 0x14e127
leaq 0xa613a(%rip), %rsi     # 0x14d7c2
movl $0x932, %edx            # imm = 0x932
leaq 0xa6aad(%rip), %rcx     # 0x14e141
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rdi
callq 0xa7560
movq 0x10ac5d(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rdx
movl $0x1, %ecx
callq 0xab870
movq 0x10ac41(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_define_parse_fa
tp_t bcore_flect_define_parse_fa( sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    st_s* string = st_s_createvf( format, args );
    va_end( args );
    tp_t type = bcore_flect_define_parse_sc( string->sc );
    st_s_discard( string );
    return type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
testb %al, %al
je 0xa77d8
movaps %xmm0, -0xb0(%rbp)
movaps %xmm1, -0xa0(%rbp)
movaps %xmm2, -0x90(%rbp)
movaps %xmm3, -0x80(%rbp)
movaps %xmm4, -0x70(%rbp)
movaps %xmm5, -0x60(%rbp)
movaps %xmm6, -0x50(%rbp)
movaps %xmm7, -0x40(%rbp)
movq %r9, -0xb8(%rbp)
movq %r8, -0xc0(%rbp)
movq %rcx, -0xc8(%rbp)
movq %rdx, -0xd0(%rbp)
movq %rsi, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movl $0x30, -0x1c(%rbp)
movl $0x8, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0xff310
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa7750
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x30(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_type_self_d
tp_t bcore_flect_type_self_d( bcore_self_s* self )
{
    const bcore_self_s* self_l = bcore_flect_try_self( self->type );
    if( self_l )
    {
        if( bcore_self_s_cmp( self_l, self ) != 0 )
        {
            ERR( "Attempt to register a different reflection under type = '%s' (%"PRItp_t")\nRegistered:\n%s\nNew:\n%s\n",
                 ifnameof( self->type ), self->type,
                 bcore_self_s_show( self_l )->sc,
                 bcore_self_s_show( self )->sc );
        }
        bcore_self_s_discard( self );
        return self_l->type;
    }
    else
    {
        flect_define_self_rentrant_d( self );
        return self->type;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa6610
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xa7922
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xa6910
cmpl $0x0, %eax
je 0xa790b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa0a30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0xa5b00
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa5b00
movq -0x30(%rbp), %r8
movq -0x28(%rbp), %r9
movq -0x20(%rbp), %r10
movq 0x8(%rax), %rax
leaq 0xa6877(%rip), %rdi     # 0x14e15f
leaq 0xa5ed3(%rip), %rsi     # 0x14d7c2
movl $0x975, %edx            # imm = 0x975
leaq 0xa687c(%rip), %rcx     # 0x14e177
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
callq 0xa54c0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xa7937
movq -0x10(%rbp), %rdi
callq 0xa7950
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: flect_define_self_rentrant_d
static tp_t flect_define_self_rentrant_d( bcore_self_s* self )
{
    assert( self_map_s_g != NULL );
    bcore_self_s_check_integrity( self );
    tp_t type = self->type;
    bcore_mutex_s_lock( &self_map_s_g->mutex );
    bcore_flect_set_trait( self );
    if( !bcore_hmap_u3vd_s_exists( self_map_s_g->hmap, type ) ) bcore_hmap_u3vd_s_set( self_map_s_g->hmap, type, self, true );
    bcore_mutex_s_unlock( &self_map_s_g->mutex );
    return self->type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa6ef0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq 0x10a990(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq -0x8(%rbp), %rdi
callq 0xa7560
movq 0x10a977(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0xac3f0
testb $0x1, %al
jne 0xa79bd
movq 0x10a960(%rip), %rax    # 0x1b2308
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rdx
movl $0x1, %ecx
callq 0xab870
movq 0x10a944(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_type_parse_fa
tp_t bcore_flect_type_parse_fa( sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    st_s* string = st_s_create_fv( format, args );
    va_end( args );
    tp_t type = bcore_flect_type_parse_sc( string->sc );
    st_s_discard( string );
    return type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
testb %al, %al
je 0xa7ad8
movaps %xmm0, -0xb0(%rbp)
movaps %xmm1, -0xa0(%rbp)
movaps %xmm2, -0x90(%rbp)
movaps %xmm3, -0x80(%rbp)
movaps %xmm4, -0x70(%rbp)
movaps %xmm5, -0x60(%rbp)
movaps %xmm6, -0x50(%rbp)
movaps %xmm7, -0x40(%rbp)
movq %r9, -0xb8(%rbp)
movq %r8, -0xc0(%rbp)
movq %rcx, -0xc8(%rbp)
movq %rdx, -0xd0(%rbp)
movq %rsi, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movl $0x30, -0x1c(%rbp)
movl $0x8, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0xff3f0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa7a50
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x30(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_define_creator
void bcore_flect_define_creator( tp_t type, bcore_flect_create_self_fp creator )
{
    assert( creator_map_s_g != NULL );
    bcore_mutex_s_lock( &creator_map_s_g->mutex );
    if( bcore_hmap_u3vd_s_exists( creator_map_s_g->hmap, type ) ) ERR( "'%s' (%"PRItp_t") is already defined", ifnameof( type ), type );
    bcore_hmap_u3vd_s_setf( creator_map_s_g->hmap, type, ( fp_t )creator );
    bcore_mutex_s_unlock( &creator_map_s_g->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq 0x10a799(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc20
movq 0x10a789(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x8(%rbp), %rsi
callq 0xac3f0
testb $0x1, %al
jne 0xa7b99
jmp 0xa7bca
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
movq -0x8(%rbp), %r9
leaq 0xa6622(%rip), %rdi     # 0x14e1d2
leaq 0xa5c0b(%rip), %rsi     # 0x14d7c2
movl $0x9a9, %edx            # imm = 0x9A9
leaq 0xa657e(%rip), %rcx     # 0x14e141
movb $0x0, %al
callq 0x9cf40
movq 0x10a73f(%rip), %rax    # 0x1b2310
movq (%rax), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0xabea0
movq 0x10a728(%rip), %rdi    # 0x1b2310
addq $0x8, %rdi
callq 0x10fc70
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_push_item_d
void bcore_flect_push_item_d( tp_t type, bcore_self_item_s* item )
{
    bool allowed = false;
    if( item->caps == BCORE_CAPS_EXTERNAL_FUNC ) allowed = true;
    if( item->flags.f_const                    ) allowed = true;
    if( !allowed )
    {
        WRN_fa( "Extending type '#<sc_t>': item configuration is not allowed.", ifnameof( type ) );
        return;
    }

    bcore_self_s* self = bcore_flect_try_d_self( type );

    if( nameof( self->type ) == NULL )
    {
        WRN_fa( "Extending anonymous type is not allowed.", ifnameof( type ) );
        return;
    }

    if( self )
    {
        bcore_mutex_s_lock( &self_map_s_g->mutex );
        bcore_self_s_push_d( self, item );
        bcore_mutex_s_unlock( &self_map_s_g->mutex );
        bcore_self_s_check_integrity( self );
    }
    else
    {
        WRN_fa( "Extending type '#<sc_t>': Type is not defined.", ifnameof( type ) );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq -0x10(%rbp), %rax
cmpl $0xe, 0x10(%rax)
jne 0xa7c22
movb $0x1, -0x11(%rbp)
movq -0x10(%rbp), %rax
movw 0x14(%rax), %ax
shrw $0x4, %ax
andw $0x1, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
je 0xa7c3e
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0xa7c76
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
leaq 0xa6596(%rip), %rdi     # 0x14e1ed
leaq 0xa5b64(%rip), %rsi     # 0x14d7c2
movl $0x9b7, %edx            # imm = 0x9B7
leaq 0xa659b(%rip), %rcx     # 0x14e205
movb $0x0, %al
callq 0x9cda0
jmp 0xa7d31
movq -0x8(%rbp), %rdi
callq 0xa73a0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa4fe0
cmpq $0x0, %rax
jne 0xa7cc5
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
leaq 0xa6544(%rip), %rdi     # 0x14e1ed
leaq 0xa5b12(%rip), %rsi     # 0x14d7c2
movl $0x9bf, %edx            # imm = 0x9BF
leaq 0xa6586(%rip), %rcx     # 0x14e242
movb $0x0, %al
callq 0x9cda0
jmp 0xa7d31
cmpq $0x0, -0x20(%rbp)
je 0xa7d04
movq 0x10a635(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xa5850
movq 0x10a618(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
movq -0x20(%rbp), %rdi
callq 0xa6ef0
jmp 0xa7d31
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
leaq 0xa64d6(%rip), %rdi     # 0x14e1ed
leaq 0xa5aa4(%rip), %rsi     # 0x14d7c2
movl $0x9cc, %edx            # imm = 0x9CC
leaq 0xa6541(%rip), %rcx     # 0x14e26b
movb $0x0, %al
callq 0x9cda0
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_push_ns_func
void bcore_flect_push_ns_func( tp_t type, fp_t func, sc_t func_type, sc_t func_name )
{
    bcore_self_s* self = bcore_flect_try_d_self( type );

    if( nameof( self->type ) == NULL )
    {
        WRN_fa( "Extending anonymous type is not allowed.", ifnameof( type ) );
        return;
    }

    if( self )
    {
        bcore_mutex_s_lock( &self_map_s_g->mutex );
        bcore_self_s_push_ns_func( self, func, func_type, func_name );
        bcore_mutex_s_unlock( &self_map_s_g->mutex );
        bcore_self_s_check_integrity( self );
    }
    else
    {
        WRN_fa( "Extending type '#<sc_t>': Type is not defined.", ifnameof( type ) );
    }
}

// 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
callq 0xa73a0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xa4fe0
cmpq $0x0, %rax
jne 0xa7da7
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
leaq 0xa650f(%rip), %rdi     # 0x14e29a
leaq 0xa5a30(%rip), %rsi     # 0x14d7c2
movl $0x9d8, %edx            # imm = 0x9D8
leaq 0xa64a4(%rip), %rcx     # 0x14e242
movb $0x0, %al
callq 0x9cda0
jmp 0xa7e1b
cmpq $0x0, -0x28(%rbp)
je 0xa7dee
movq 0x10a553(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc20
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0xa5930
movq 0x10a52e(%rip), %rdi    # 0x1b2308
addq $0x8, %rdi
callq 0x10fc70
movq -0x28(%rbp), %rdi
callq 0xa6ef0
jmp 0xa7e1b
movq -0x8(%rbp), %rdi
callq 0xa0a30
movq %rax, %r8
leaq 0xa6499(%rip), %rdi     # 0x14e29a
leaq 0xa59ba(%rip), %rsi     # 0x14d7c2
movl $0x9e5, %edx            # imm = 0x9E5
leaq 0xa6457(%rip), %rcx     # 0x14e26b
movb $0x0, %al
callq 0x9cda0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: bcore_flect_parse_all_flects
void bcore_flect_parse_all_flects()
{
    bcore_arr_tp_s* type_arr = bcore_arr_tp_s_create();
    bcore_flect_push_all_types( type_arr );
    for( sz_t i = 0; i < type_arr->size; i++ ) bcore_flect_get_self( type_arr->data[ i ] );
    bcore_arr_tp_s_discard( type_arr );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb $0x0, %al
callq 0x945a0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa7270
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xa7e85
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xa7590
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0xa7e54
movq -0x8(%rbp), %rdi
callq 0x945d0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: flect_selftest
static st_s* flect_selftest( void )
{
    {
        bcore_flect_define_parse_sc(" teabag =    { u3_t leaves; s1_t flavor; s0_t color;  }" );
        bcore_flect_define_parse_sc(" container = { u3_t elements; teabag => [] bags; u1_t flags; }" );
        bcore_flect_define_parse_sc(" delivery =  { aware_t _; u3_t tag; container => cargo; aware => [] attachments; }" );
        bcore_flect_define_parse_sc(" another = delivery" );
    }

    {
        tp_t t_teabag    = bcore_flect_type_parse_sc( "{ u3_t leaves; s1_t flavor; s0_t color; }" );
        tp_t t_container = bcore_flect_type_parse_fa( "{ u3_t elements = 343; #<tp_t> bag; u1_t flags; }", t_teabag );
        bcore_flect_get_self( t_container );
        tp_t anonymous = bcore_flect_type_parse_sc( "{ u3_t leaves; s1_t flavor; s0_t color; }" );
        ASSERT( t_teabag == anonymous );
    }

    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
leaq 0xa714c(%rip), %rdi     # 0x14f45b
callq 0xa7750
leaq 0xa7178(%rip), %rdi     # 0x14f493
callq 0xa7750
leaq 0xa71ab(%rip), %rdi     # 0x14f4d2
callq 0xa7750
leaq 0xa71f2(%rip), %rdi     # 0x14f525
callq 0xa7750
leaq 0xa71fa(%rip), %rdi     # 0x14f539
callq 0xa7a50
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq 0xa7210(%rip), %rdi     # 0x14f563
movb $0x0, %al
callq 0xa7aa0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa7590
leaq 0xa71cb(%rip), %rdi     # 0x14f539
callq 0xa7a50
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0xa83aa
leaq 0x8b617(%rip), %rdi     # 0x13399f
leaq 0xa7206(%rip), %rsi     # 0x14f595
leaq 0xa7215(%rip), %rdx     # 0x14f5ab
leaq 0xa5425(%rip), %rcx     # 0x14d7c2
movl $0xa39, %r8d            # imm = 0xA39
movb $0x0, %al
callq 0x9cea0
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: self_map_s_down
static void self_map_s_down( self_map_s* o )
{
    bcore_mutex_s_lock( &o->mutex );
    if( o->hmap )
    {
        // We manually detach objects here to keep hmap from invoking
        // perspective management, which may (already) be down at this point.
        uz_t hmap_size = bcore_hmap_u3vd_s_size( o->hmap );
        for( uz_t i = 0; i < hmap_size; i++ )
        {
            if( bcore_hmap_u3vd_s_idx_holds( o->hmap, i ) )
            {
                tp_t key = bcore_hmap_u3vd_s_idx_key( o->hmap, i );
                bcore_self_s_discard( bcore_hmap_u3vd_s_detach_h( o->hmap, key ) );
            }
        }
        bcore_hmap_u3vd_s_discard( o->hmap );
    }
    bcore_mutex_s_unlock( &o->mutex );
    bcore_mutex_s_down( &o->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc20
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0xa8b47
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xac620
movq %rax, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0xa8b3b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xac670
testb $0x1, %al
jne 0xa8aff
jmp 0xa8b2b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xac640
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0xac360
movq %rax, %rdi
callq 0xa54c0
jmp 0xa8b2d
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xa8adf
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xab520
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fa50
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: creator_map_s_down
static void creator_map_s_down( creator_map_s* o )
{
    bcore_mutex_s_lock( &o->mutex );
    bcore_hmap_u3vd_s_discard( o->hmap );
    bcore_mutex_s_unlock( &o->mutex );
    bcore_mutex_s_down( &o->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc20
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xab520
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fa50
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: self_item_s_create_self
static bcore_self_s* self_item_s_create_self( void )
{
    sc_t def =
    "bcore_self_item_s = bcore_inst"
    "{"
        "tp_t type;"    // hash of type
        "tp_t name;"    // hash of name
        "u2_t caps;"    // data encapsulation
        "bcore_flect_flags_s flags;"   // collection of attribute flags
        "umax_t default;" // container of default data
        "bcore_self_item_s => child_item;"
    "}";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_self_item_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_init,    "bcore_fp_init",    "init"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_down,    "bcore_fp_down",    "down"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_copy,    "bcore_fp_copy",    "copy"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_move,    "bcore_fp_move",    "move"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_create,  "bcore_fp_create",  "create"  );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_clone,   "bcore_fp_clone",   "clone"   );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_discard, "bcore_fp_discard", "discard" );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_item_s_cmp,     "bcore_fp_compare", "cmp"     );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa5ffc(%rip), %rax     # 0x14f10b
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x89f5(%rip), %rsi     # 0xa0740
leaq 0xa3a86(%rip), %rdx     # 0x14cbc2
leaq 0xa3a88(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x89f3(%rip), %rsi     # 0xa0760
leaq 0xa3a76(%rip), %rdx     # 0x14cbd0
leaq 0x95bf7(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x89b1(%rip), %rsi     # 0xa07c0
leaq 0xa3a66(%rip), %rdx     # 0x14cbde
leaq 0x9d42d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x890f(%rip), %rsi     # 0xa0880
leaq 0xa5ffd(%rip), %rdx     # 0x14f193
leaq 0xa5fff(%rip), %rcx     # 0x14f19c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x88dd(%rip), %rsi     # 0xa08d0
leaq 0xa5fed(%rip), %rdx     # 0x14f1a1
leaq 0xa5fef(%rip), %rcx     # 0x14f1aa
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x899b(%rip), %rsi     # 0xa0830
leaq 0xa5fdf(%rip), %rdx     # 0x14f1b1
leaq 0xa5fe1(%rip), %rcx     # 0x14f1ba
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x8a59(%rip), %rsi     # 0xa0790
leaq 0xa5fd0(%rip), %rdx     # 0x14f1c0
leaq 0xa5fd2(%rip), %rcx     # 0x14f1c9
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x84c7(%rip), %rsi     # 0xa0d40
leaq 0xa5fc3(%rip), %rdx     # 0x14f1d1
leaq 0xa5fcd(%rip), %rcx     # 0x14f1e2
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: flect_body_s_create_self
static bcore_self_s* flect_body_s_create_self( void )
{
    sc_t def =
    "bcore_self_body_s = bcore_inst"
    "{"
        "bcore_self_item_s => [] arr;"
        "bl_t complete;"
    "}";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_self_body_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_init,    "bcore_fp_init",    "init"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_down,    "bcore_fp_down",    "down"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_copy,    "bcore_fp_copy",    "copy"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_create,  "bcore_fp_create",  "create"  );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_clone,   "bcore_fp_clone",   "clone"   );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_body_s_discard, "bcore_fp_discard", "discard" );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa5fa7(%rip), %rax     # 0x14f1e6
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x49e5(%rip), %rsi     # 0xa4880
leaq 0xa3956(%rip), %rdx     # 0x14cbc2
leaq 0xa3958(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x49d3(%rip), %rsi     # 0xa48b0
leaq 0xa3946(%rip), %rdx     # 0x14cbd0
leaq 0x95ac7(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x4971(%rip), %rsi     # 0xa4930
leaq 0xa3936(%rip), %rdx     # 0x14cbde
leaq 0x9d2fd(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x486f(%rip), %rsi     # 0xa4a50
leaq 0xa5edb(%rip), %rdx     # 0x14f1a1
leaq 0xa5edd(%rip), %rcx     # 0x14f1aa
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x482d(%rip), %rsi     # 0xa4ab0
leaq 0xa5ecd(%rip), %rdx     # 0x14f1b1
leaq 0xa5ecf(%rip), %rcx     # 0x14f1ba
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x487b(%rip), %rsi     # 0xa4a80
leaq 0xa5ebe(%rip), %rdx     # 0x14f1c0
leaq 0xa5ec0(%rip), %rcx     # 0x14f1c9
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_flect.c
// Function: flect_self_s_create_self
static bcore_self_s* flect_self_s_create_self( void )
{
    sc_t def =
    "bcore_self_s = bcore_inst"
    "{"
        "aware_t _;"
        "tp_t type;"
        "tp_t trait;"
        "tp_t parent;"
        "uz_t size;"
        "uz_t align;"
        "bcore_self_body_s => body;"
    "}";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_self_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_init,         "bcore_fp_init",         "init"         );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_down,         "bcore_fp_down",         "down"         );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_copy,         "bcore_fp_copy",         "copy"         );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_create,       "bcore_fp_create",       "create"       );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_clone,        "bcore_fp_clone",        "clone"        );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_self_s_discard,      "bcore_fp_discard",      "discard"      );
    return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa5f02(%rip), %rax     # 0x14f231
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x38, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x3fa5(%rip), %rsi     # 0xa53b0
leaq 0xa3866(%rip), %rdx     # 0x14cbc2
leaq 0xa3868(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f83(%rip), %rsi     # 0xa53f0
leaq 0xa3856(%rip), %rdx     # 0x14cbd0
leaq 0x959d7(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f81(%rip), %rsi     # 0xa5410
leaq 0xa3846(%rip), %rdx     # 0x14cbde
leaq 0x9d20d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f4f(%rip), %rsi     # 0xa5460
leaq 0xa5deb(%rip), %rdx     # 0x14f1a1
leaq 0xa5ded(%rip), %rcx     # 0x14f1aa
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f3d(%rip), %rsi     # 0xa5490
leaq 0xa5ddd(%rip), %rdx     # 0x14f1b1
leaq 0xa5ddf(%rip), %rcx     # 0x14f1ba
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f2b(%rip), %rsi     # 0xa54c0
leaq 0xa5dce(%rip), %rdx     # 0x14f1c0
leaq 0xa5dd0(%rip), %rcx     # 0x14f1c9
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_folder.c
// Function: bcore_folder_get_current
st_s* bcore_folder_get_current( st_s* name )
{
    if( !name ) return name;
    char *get_current_dir_name( void ); // prototype not defined in unistd.h
    sd_t sd = get_current_dir_name();
    ASSERT( sd );
    st_s_copy_sc( name, sd );
    free( sd );
    return name;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xa985d
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xa98b4
callq 0x4180
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xa9896
leaq 0x8a12b(%rip), %rdi     # 0x13399f
leaq 0xa5d3f(%rip), %rsi     # 0x14f5ba
leaq 0xa5d3b(%rip), %rdx     # 0x14f5bd
leaq 0xa5d4d(%rip), %rcx     # 0x14f5d6
movl $0x4c, %r8d
movb $0x0, %al
callq 0x9cea0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xfea50
movq -0x18(%rbp), %rdi
callq 0x4200
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_folder.c
// Function: bcore_folder_s_clear
bcore_folder_s* bcore_folder_s_clear( bcore_folder_s* o )
{
    st_s_clear( &o->name );
    bcore_array_a_set_size( ( bcore_array* )o, 0 );
    bcore_arr_st_s_clear( &o->arr_file );
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0xffb50
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa9b90
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
callq 0x95c90
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_folder.c
// Function: bcore_folder_signal_handler
vd_t bcore_folder_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_folder" ) ) )
    {
        case TYPEOF_init1:
        {
            BCORE_REGISTER_OBJECT( bcore_folder_s );
        }
        break;

        case TYPEOF_get_quicktypes:
        {
            BCORE_REGISTER_QUICKTYPE( bcore_folder_s );
        }
        break;

        case TYPEOF_selftest:
        {
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0xa562d(%rip), %rdi     # 0x14f618
callq 0xaa090
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xc7f40
movq %rax, %rcx
movq %rcx, -0x10(%rbp)
movabsq $-0x1fb07977e4413a54, %rcx # imm = 0xE04F86881BBEC5AC
subq %rcx, %rax
je 0xaa05b
jmp 0xaa014
movq -0x10(%rbp), %rax
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
subq %rcx, %rax
je 0xaa03e
jmp 0xaa029
movq -0x10(%rbp), %rax
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
subq %rcx, %rax
je 0xaa07c
jmp 0xaa07e
leaq 0xa55e0(%rip), %rdi     # 0x14f625
callq 0xaa090
movq %rax, %rdi
leaq 0x5c(%rip), %rsi        # 0xaa0b0
callq 0xa7b60
jmp 0xaa080
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xaa07a
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0xa55b0(%rip), %rsi     # 0x14f625
callq 0xaa0d0
jmp 0xaa080
jmp 0xaa080
jmp 0xaa080
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_function_manager.c
// Function: bcore_function_get
fp_t bcore_function_get( tp_t t )
{
    assert( hmap_s_g != NULL );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    fp_t* vdp = bcore_hmap_tpfp_s_get( hmap_s_g->map, t );
    fp_t fp = vdp ? *vdp : NULL;
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return fp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq 0x107c3d(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc20
movq 0x107c2d(%rip), %rax    # 0x1b2320
movq (%rax), %rdi
movq -0x8(%rbp), %rsi
callq 0xae740
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xaa717
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0xaa71f
xorl %eax, %eax
movq %rax, -0x20(%rbp)
jmp 0xaa71f
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x107bf2(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc70
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_function_manager.c
// Function: bcore_function_set
void bcore_function_set( tp_t t, fp_t f )
{
    assert( hmap_s_g != NULL );
    if( t == 0 ) ERR( "Type is zero. Zero is a reserved value." );
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    if( !hmap_s_g->map ) hmap_s_g->map = bcore_hmap_tpfp_s_create();
    fp_t* vdp = bcore_hmap_tpfp_s_get( hmap_s_g->map, t );
    if( vdp )
    {
        if( *vdp != f )
        {
            ERR( "Under type '%s' (%"PRItp_t") a different function has already been enrolled.", ifnameof( t ), t );
        }
    }
    else
    {
        bcore_hmap_tpfp_s_set( hmap_s_g->map, t, f );
    }
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0xaa7b8
leaq 0xa4ef8(%rip), %rdi     # 0x14f696
leaq 0xa4f04(%rip), %rsi     # 0x14f6a9
movl $0x62, %edx
leaq 0xa4f11(%rip), %rcx     # 0x14f6c2
movb $0x0, %al
callq 0x9cf40
movq 0x107b61(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc20
movq 0x107b51(%rip), %rax    # 0x1b2320
cmpq $0x0, (%rax)
jne 0xaa7e9
movb $0x0, %al
callq 0xae3f0
movq %rax, %rcx
movq 0x107b3a(%rip), %rax    # 0x1b2320
movq %rcx, (%rax)
movq 0x107b30(%rip), %rax    # 0x1b2320
movq (%rax), %rdi
movq -0x8(%rbp), %rsi
callq 0xae740
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xaa847
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpq -0x10(%rbp), %rax
je 0xaa845
movq -0x8(%rbp), %rdi
callq 0xaa880
movq %rax, %r8
movq -0x8(%rbp), %r9
leaq 0xa4e6b(%rip), %rdi     # 0x14f696
leaq 0xa4e77(%rip), %rsi     # 0x14f6a9
movl $0x6a, %edx
leaq 0xa4eac(%rip), %rcx     # 0x14f6ea
movb $0x0, %al
callq 0x9cf40
jmp 0xaa85e
movq 0x107ad2(%rip), %rax    # 0x1b2320
movq (%rax), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0xae920
movq 0x107abb(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc70
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)