LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_declaration
er_t xoico_func_s_expand_declaration( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:277:1
    
    if( !o->expandable ) return  0;
    
    bl_t go_inline = o->body && o->body->go_inline;
    const xoico_signature_s* signature = o->signature;
    ASSERT( signature );
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    
    if( go_inline )
    {
        x_sink_push_fa(sink," \\\n#rn{ }", indent );
        x_sink_push_fa(sink,"static inline " );
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof( compiler,o->global_name ), indent, sink ))
        BLM_TRY(xoico_body_s_expand(o->body,host, signature, indent, sink ))
    }
    else if( !o->declare_in_expand_forward )
    {
        x_sink_push_fa(sink," \\\n#rn{ }", indent );
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof( compiler,o->global_name ), indent, sink ))
        x_sink_push_fa(sink,";" );
    }
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x1, 0x28(%rdi)
jne 0x11967
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %r12
movq 0x38(%rdi), %rax
testq %rax, %rax
je 0x118a1
movb 0x20(%rax), %bpl
jmp 0x118a3
xorl %ebp, %ebp
movq 0x40(%r12), %r13
testq %r13, %r13
jne 0x118d6
leaq 0x98d93(%rip), %rdi     # 0xaa647
leaq 0x9eed1(%rip), %rsi     # 0xb078c
leaq 0x98ee7(%rip), %rdx     # 0xaa7a9
leaq 0x989c7(%rip), %rcx     # 0xaa290
movl $0x783, %r8d            # imm = 0x783
xorl %eax, %eax
callq 0x5ffac
movq %r14, %rdi
callq 0xdab3
testb %bpl, %bpl
je 0x1195f
leaq 0x98e8a(%rip), %rsi     # 0xaa774
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, (%rsp)
xorl %eax, %eax
callq 0xdd43
leaq 0x98e96(%rip), %rsi     # 0xaa79a
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
movq 0x10(%r12), %rsi
movq (%rsp), %rdi
callq 0xdad8
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x10048
movq 0x38(%r12), %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %r15, %rcx
movq %rbx, %r8
callq 0x10c98
testq %rax, %rax
je 0x11969
movq %rax, %rbx
leaq 0x10647e(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %rbx, %rbp
jmp 0x11969
cmpb $0x0, 0x2a(%r12)
je 0x1197b
xorl %ebp, %ebp
movq %rbp, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98df2(%rip), %rsi     # 0xaa774
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %r15
xorl %eax, %eax
callq 0xdd43
movq 0x10(%r12), %rsi
movq %r15, %rdi
callq 0xdad8
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x10048
leaq 0x9cf0f(%rip), %rsi     # 0xae8c8
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
jmp 0x11969
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_definition
er_t xoico_func_s_expand_definition( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:305:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    
    const xoico_signature_s* signature = o->signature;
    ASSERT( signature );
    if( o->body && !o->body->go_inline )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }", indent );
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof(compiler,o->global_name ), indent, sink ))
        x_sink_push_fa(sink,"\n" );
        BLM_TRY(xoico_body_s_expand(o->body,host, signature, indent, sink ))
        x_sink_push_fa(sink,"\n" );
    }
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x1, 0x28(%rdi)
jne 0x11a30
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movq %rsi, %rdi
callq 0xdab3
movq %rax, %rbp
movq 0x40(%r12), %r13
testq %r13, %r13
jne 0x11a20
leaq 0x98c49(%rip), %rdi     # 0xaa647
leaq 0x9ed87(%rip), %rsi     # 0xb078c
leaq 0x98dbd(%rip), %rdx     # 0xaa7c9
leaq 0x9887d(%rip), %rcx     # 0xaa290
movl $0x79f, %r8d            # imm = 0x79F
xorl %eax, %eax
callq 0x5ffac
movq 0x38(%r12), %rax
testq %rax, %rax
je 0x11a30
cmpb $0x0, 0x20(%rax)
je 0x11a45
xorl %r14d, %r14d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb4b7f(%rip), %rsi     # 0xc65cb
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
leaq 0x98d1a(%rip), %rsi     # 0xaa777
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x10(%r12), %rsi
movq %rbp, %rdi
callq 0xdad8
movq %r13, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x10048
movq %rbx, %rdi
leaq 0xb4b39(%rip), %rsi     # 0xc65cb
xorl %eax, %eax
callq 0xdd43
movq 0x38(%r12), %rdi
movq %r15, %rsi
movq %r13, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x10c98
testq %rax, %rax
je 0x11acb
movq %rax, %r14
leaq 0x106312(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x11a33
leaq 0xb4af9(%rip), %rsi     # 0xc65cb
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
jmp 0x11a33
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_init1
er_t xoico_func_s_expand_init1( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:327:1
    
    if( !o->expandable ) return  0;
    if( !o->register_in_function_manager ) return  0;
    
    sc_t sc_global_name = xoico_compiler_s_nameof(xoico_host_a_compiler(host),o->global_name );
    
    x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FUNC( #<sc_t> );\n",
        indent,
        sc_global_name
    );
    
    return  0;
}

// Assembly:
cmpb $0x1, 0x28(%rdi)
jne 0x11b2e
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r15
cmpb $0x1, 0x2b(%rdi)
jne 0x11b29
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %rdi
callq 0xdab3
movq 0x10(%r15), %rsi
movq %rax, %rdi
callq 0xdad8
leaq 0x98ccf(%rip), %rsi     # 0xaa7e8
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xdd43
popq %rbx
popq %r14
popq %r15
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_funcs_s_replace_d
er_t xoico_funcs_s_replace_d( xoico_funcs_s* o, sz_t idx, xoico_func_s* func )
{
    // xoico_funcs.x:68:5
    
    ASSERT( idx >= 0 && idx < o->size );
    xoico_func_s_attach( &(o->data[ idx ] ),  NULL);
    for(sz_t i = idx + 1; i < o->size; i++ ) o->data[ i - 1 ] = o->data[ i ];
    o->data[ o->size - 1 ] = func;
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
testq %rsi, %rsi
js 0x11c45
cmpq %r14, 0x10(%r15)
ja 0x11c6e
leaq 0x989fb(%rip), %rdi     # 0xaa647
leaq 0x98bbc(%rip), %rsi     # 0xaa80f
leaq 0x98bcf(%rip), %rdx     # 0xaa829
leaq 0x9862f(%rip), %rcx     # 0xaa290
movl $0x803, %r8d            # imm = 0x803
xorl %eax, %eax
callq 0x5ffac
movq 0x8(%r15), %r12
testq %r12, %r12
je 0x11c90
movq (%r12,%r14,8), %rdi
callq 0x10eca
andq $0x0, (%r12,%r14,8)
jmp 0x11c90
movq (%rax,%r14,8), %rcx
movq %rcx, -0x8(%rax,%r14,8)
incq %r14
movq 0x8(%r15), %rax
movq 0x10(%r15), %rcx
cmpq %rcx, %r14
jb 0x11c87
movq %rbx, -0x8(%rax,%rcx,8)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_funcs_s_get_hash
tp_t xoico_funcs_s_get_hash( const xoico_funcs_s* o )
{
    // xoico_funcs.x:77:5
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    {const xoico_funcs_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_func_s* func=__a->data[__i]; hash = bcore_tp_fold_tp( hash, xoico_func_s_get_hash(func) );}}
    return  hash;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0xe705
movq %rax, %r14
movq 0x10(%rbx), %r15
xorl %r12d, %r12d
cmpq %r12, %r15
je 0x11cff
movq 0x8(%rbx), %rax
movq (%rax,%r12,8), %rdi
callq 0x10f3b
movq %r14, %rdi
movq %rax, %rsi
callq 0xe705
movq %rax, %r14
incq %r12
jmp 0x11cda
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_get_hash
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_feature_s )

tp_t xoico_feature_s_get_hash( const xoico_feature_s* o )
{
    // xoico_feature.x:65:1
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_tp( hash, xoico_signature_s_get_hash(&(o->signature)) );
    hash = bcore_tp_fold_tp( hash, o->default_body ? xoico_body_s_get_hash(o->default_body) : 0 );
    hash = bcore_tp_fold_bl( hash, o->strict );
    hash = bcore_tp_fold_bl( hash, o->flag_p );
    hash = bcore_tp_fold_bl( hash, o->flag_t );
    hash = bcore_tp_fold_bl( hash, o->flag_a );
    hash = bcore_tp_fold_bl( hash, o->flag_r );
    hash = bcore_tp_fold_sc( hash, o->st_default_func_name.sc );
    return  hash;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %r14
addq $0x8, %rdi
callq 0xfab9
movq %rax, %r15
movq 0x108(%rbx), %rdi
testq %rdi, %rdi
je 0x11db8
callq 0x10874
movq %rax, %r12
jmp 0x11dbb
xorl %r12d, %r12d
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
movq %r14, %rsi
callq 0xe705
movq %rax, %rdi
movq %r15, %rsi
callq 0xe705
movq %rax, %rdi
movq %r12, %rsi
callq 0xe705
movzbl 0x110(%rbx), %ecx
xorq %rax, %rcx
movabsq $0x100000001b3, %rax    # imm = 0x100000001B3
imulq %rax, %rcx
movzbl 0x111(%rbx), %edx
xorq %rcx, %rdx
imulq %rax, %rdx
movzbl 0x112(%rbx), %ecx
xorq %rdx, %rcx
imulq %rax, %rcx
movzbl 0x113(%rbx), %edx
xorq %rcx, %rdx
imulq %rax, %rdx
movzbl 0x114(%rbx), %edi
xorq %rdx, %rdi
imulq %rax, %rdi
movq 0xf0(%rbx), %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x10500
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_indef_typedef
er_t xoico_feature_s_expand_indef_typedef( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:412:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    x_sink_push_fa(sink," \\\n#rn{ }  typedef ", indent );
    BLM_TRY(xoico_signature_s_expand_ret(&(o->signature),host, sink ))
    x_sink_push_fa(sink," (*#<sc_t>)(", xoico_compiler_s_nameof(compiler,o->function_pointer_name ) );
    BLM_TRY(xoico_arg_s_expand(o->signature.arg_o,host, sink ))
    BLM_TRY(xoico_args_s_expand(&(o->signature.args),host, false, sink ))
    x_sink_push_fa(sink," );" );
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x12f4f
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movq %rsi, %rdi
callq 0xdab3
movq %rax, %r13
leaq 0x97e49(%rip), %rsi     # 0xaad1c
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x28(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xe71d
movq 0xe0(%r15), %rsi
movq %r13, %rdi
callq 0xdad8
leaq 0x97e2b(%rip), %rsi     # 0xaad30
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x58(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xf334
addq $0x60, %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0xf761
leaq 0xae5f3(%rip), %rsi     # 0xc152f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_spect_definition
er_t xoico_feature_s_expand_spect_definition( const xoico_feature_s* o, const xoico_host* host, sz_t indent, bl_t append_comma, bl_t append_nl, x_sink* sink )
{
    // xoico_feature.x:437:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    x_sink_push_fa(sink,"#rn{ }\"feature ", indent );
    if( o->strict ) x_sink_push_fa(sink,"strict " );
    if( o->flag_a ) x_sink_push_fa(sink,"aware " );
    
    x_sink_push_fa(sink,"#<sc_t> : #<sc_t>", xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) ), xoico_compiler_s_nameof(compiler,o->signature.name ) );
    if( o->st_default_func_name.size > 0 )
    {
        x_sink_push_fa(sink," = #<sc_t>_#<sc_t>", xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) ), o->st_default_func_name.sc );
    }
    x_sink_push_fa(sink,";\"" );
    if( append_comma ) x_sink_push_fa(sink,"," );
    if( append_nl    ) x_sink_push_fa(sink,"\n" );
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x130fb
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %rbx
movl %ecx, %r14d
movq %rdx, %rbp
movq %rsi, %r12
movq %rdi, %r15
movl %r8d, 0x4(%rsp)
movq %rsi, %rdi
callq 0xdab3
movq %rax, %r13
leaq 0x97d5d(%rip), %rsi     # 0xaad57
movq %rbx, %rdi
movq %rbp, %rdx
xorl %eax, %eax
callq 0xdd43
cmpb $0x1, 0x110(%r15)
jne 0x13022
leaq 0x972cf(%rip), %rsi     # 0xaa2e7
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
cmpb $0x1, 0x113(%r15)
jne 0x1303d
leaq 0x97402(%rip), %rsi     # 0xaa435
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
movq %r12, %rdi
callq 0xe8a0
movq %r13, %rdi
movq %rax, %rsi
callq 0xdad8
movq %rax, %rbp
movq 0x10(%r15), %rsi
movq %r13, %rdi
callq 0xdad8
leaq 0x97d01(%rip), %rsi     # 0xaad67
movq %rbx, %rdi
movq %rbp, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xdd43
cmpq $0x0, 0xf8(%r15)
je 0x130ae
movq %r12, %rdi
callq 0xe8a0
movq %r13, %rdi
movq %rax, %rsi
callq 0xdad8
movq 0xf0(%r15), %rcx
leaq 0x97cd8(%rip), %rsi     # 0xaad79
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x97cd7(%rip), %rsi     # 0xaad8c
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
testb %r14b, %r14b
je 0x130d5
leaq 0x98079(%rip), %rsi     # 0xab144
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
cmpb $0x0, 0x4(%rsp)
je 0x130ed
leaq 0xb34e8(%rip), %rsi     # 0xc65cb
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_init1
er_t xoico_feature_s_expand_init1( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:476:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    sc_t sc_global_name = xoico_compiler_s_nameof(compiler,o->signature.global_name );
    
    x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FEATURE( #<sc_t> );\n", indent, sc_global_name );
    if( o->st_default_func_name.size > 0 )
    {
        x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FFUNC( #<sc_t>, #<sc_t>_#<sc_t> );\n",
            indent,
            sc_global_name,
            xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) ),
            o->st_default_func_name.sc
        );
    }
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x13291
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %r13
movq %rdi, %r15
movq %rsi, %rdi
callq 0xdab3
movq %rax, %rbp
movq 0x20(%r15), %rsi
movq %rax, %rdi
callq 0xdad8
movq %rax, %r12
leaq 0x97b5a(%rip), %rsi     # 0xaad8f
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xdd43
cmpq $0x0, 0xf8(%r15)
je 0x13283
movq %r13, %rdi
callq 0xe8a0
movq %rbp, %rdi
movq %rax, %rsi
callq 0xdad8
movq 0xf0(%r15), %r9
leaq 0x97b49(%rip), %rsi     # 0xaadb9
movq %r14, %rdi
movq %rbx, %rdx
movq %r12, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xdd43
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_embedded_data_s_get_hash
tp_t xoico_embedded_data_s_get_hash( const xoico_embedded_data_s* o )
{
    // xoico_embedded_data.x:69:5
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_tp( hash, o->embed_method );
    hash = bcore_tp_fold_tp( hash, o->function_name );
    for(sz_t i = 0; i < o->arr->size; i++ ) hash = bcore_tp_fold_tp( hash, o->arr->data[ i ] );
    return  hash;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0xe705
movq 0x18(%rbx), %rsi
movq %rax, %rdi
callq 0xe705
movq 0x20(%rbx), %rsi
movq %rax, %rdi
callq 0xe705
movq 0x10(%rbx), %rbx
movq 0x10(%rbx), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1354e
movq 0x8(%rbx), %rcx
movzbl (%rcx,%r15), %esi
movq %rax, %rdi
callq 0xe705
incq %r15
jmp 0x13533
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_get_traitline_member_func_from_name
const xoico_func_s* xoico_group_s_get_traitline_member_func_from_name( const xoico_group_s* o, tp_t name )
{
    // xoico_group.x:172:5
    
    if( !o ) return  NULL;
    const xoico_func_s** p_func = ( const xoico_func_s** )bcore_hmap_tpvd_s_get(&(o->hmap_func),name );
    if( p_func && xoico_func_s_as_member(*(p_func)) ) return  (*(p_func));
    return  xoico_group_s_get_traitline_member_func_from_name(xoico_group_s_get_trait_group(o),name );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
testq %r14, %r14
je 0x13a15
leaq 0x178(%r14), %rdi
movq %rbx, %rsi
callq 0x68f4a
testq %rax, %rax
je 0x13a08
movq (%rax), %rax
movq 0x40(%rax), %rcx
testq %rcx, %rcx
je 0x13a08
cmpq $0x0, 0x50(%rcx)
jne 0x13a17
movq %r14, %rdi
callq 0x1391d
movq %rax, %r14
jmp 0x139dc
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_get_hash
tp_t xoico_group_s_get_hash( const xoico_group_s* o )
{
    // xoico_group.x:243:1
    
    tp_t hash = o->pre_hash;
    hash = bcore_tp_fold_tp( hash, o->tp_name );
    hash = bcore_tp_fold_tp( hash, o->trait_name );
    hash = bcore_tp_fold_bl( hash, o->is_retrievable );
    hash = bcore_tp_fold_bl( hash, o->expandable );
    hash = bcore_tp_fold_bl( hash, o->short_spect_name );
    hash = bcore_tp_fold_tp( hash, o->beta );
    hash = bcore_tp_fold_tp( hash, xoico_funcs_s_get_hash(&(o->funcs)) );
    {const xoico_group_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico* e=__a->data[__i]; hash = bcore_tp_fold_tp( hash, xoico_a_get_hash(e) );}}
    
    hash = bcore_tp_fold_sz( hash, o->includes_in_declaration.size );
    {const bcore_arr_st_s* __a=&(o->includes_in_declaration );if(__a)for(sz_t __i=0;__i<__a->size;__i++){st_s* e=__a->data[__i]; hash = bcore_tp_fold_sc( hash, e->sc );}}
    
    hash = bcore_tp_fold_sz( hash, o->includes_in_definition.size );
    {const bcore_arr_st_s* __a=&(o->includes_in_definition  );if(__a)for(sz_t __i=0;__i<__a->size;__i++){st_s* e=__a->data[__i]; hash = bcore_tp_fold_sc( hash, e->sc );}}
    
    {const bcore_arr_st_s* __a=&(o->explicit_embeddings     );if(__a)for(sz_t __i=0;__i<__a->size;__i++){st_s* e=__a->data[__i]; hash = bcore_tp_fold_sc( hash, e->sc );}}
    return  hash;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0xa8(%rdi), %rsi
movq 0xb8(%rdi), %rdi
callq 0xe705
movq 0xb0(%rbx), %rsi
movq %rax, %rdi
callq 0xe705
movzbl 0xca(%rbx), %ecx
xorq %rax, %rcx
movabsq $0x100000001b3, %rax    # imm = 0x100000001B3
imulq %rax, %rcx
movzbl 0xc8(%rbx), %edx
xorq %rcx, %rdx
imulq %rax, %rdx
movzbl 0xd8(%rbx), %edi
xorq %rdx, %rdi
imulq %rax, %rdi
movq 0xc0(%rbx), %rsi
callq 0xe705
movq %rax, %r14
leaq 0x118(%rbx), %rdi
callq 0x11cb3
movq %r14, %rdi
movq %rax, %rsi
callq 0xe705
movq %rax, %r15
xorl %r14d, %r14d
cmpq 0x10(%rbx), %r14
jae 0x13b1b
movq 0x8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x13ba6
movq %r15, %rdi
movq %rax, %rsi
callq 0xe705
movq %rax, %r15
incq %r14
jmp 0x13af5
movq 0x38(%rbx), %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x13bb6
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x13b4b
movq 0x30(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
movq 0x8(%rcx), %rsi
movq %rax, %rdi
callq 0x10500
incq %r15
jmp 0x13b2d
movq 0x58(%rbx), %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x13bb6
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x13b7b
movq 0x50(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
movq 0x8(%rcx), %rsi
movq %rax, %rdi
callq 0x10500
incq %r15
jmp 0x13b5d
movq 0x78(%rbx), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x13ba0
movq 0x70(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
movq 0x8(%rcx), %rsi
movq %rax, %rdi
callq 0x10500
incq %r15
jmp 0x13b82
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_recursive
er_t xoico_group_s_parse_name_recursive( const xoico_group_s* o, x_source* source, st_s* name )
{
    // xoico_group.x:281:1
    
    if( x_source_parse_bl(source,"#?':'" ) )
    {
        if( o->lexical_parent )
        {
            BLM_TRY(xoico_group_s_parse_name_recursive(o->lexical_parent,source, name ))
        }
        else
        {
            return  x_source_parse_error_fa(source,"Too many colons: Namespace depth exceeded." );
        }
    }
    else
    {BLM_INIT_LEVEL(1);
        st_s_copy(name,&(o->st_name ));
        st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        BLM_TRY(x_source_parse_fa(source,"#name", s ))
        if( s->size > 0 ) st_s_push_fa(name,"_#<sc_t>", s->sc );
    BLM_DOWN();}
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x97357(%rip), %rsi     # 0xaaf7e
movq %r14, %rdi
callq 0xe5ff
testb %al, %al
je 0x13c63
movq 0x20(%r15), %rdi
testq %rdi, %rdi
je 0x13ce3
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13c0c
testq %rax, %rax
je 0x13d23
movq %rax, %r14
leaq 0x104172(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
jmp 0x13cdc
leaq 0x104166(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, (%rsp)
movq %r12, %rdi
callq 0x717f5
movq $0x1, 0x10(%r12)
addq $0x88, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8e4fd
xorl %eax, %eax
callq 0x8eb65
pushq $0x1
popq %rsi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
leaq 0xae466(%rip), %rsi     # 0xc2128
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
je 0x13cff
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x71b64
jmp 0x13d26
leaq 0x97268(%rip), %rsi     # 0xaaf52
movq %r14, %rdi
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xd7c4
cmpq $0x0, 0x10(%r15)
je 0x13d1b
movq 0x8(%r15), %rdx
leaq 0x97072(%rip), %rsi     # 0xaad83
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8f4ef
movq %rsp, %rdi
callq 0x71b48
xorl %r14d, %r14d
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_st
er_t xoico_group_s_parse_name_st( const xoico_group_s* o, x_source* source, st_s* name )
{
    // xoico_group.x:306:1
    
    if( x_source_parse_bl(source," #?':'" ) )
    {
        BLM_TRY(xoico_group_s_parse_name_recursive(o,source, name ))
    }
    else
    {
        BLM_TRY(x_source_parse_fa(source," #name", name ))
    }
    
    if( name->size > 0 ) xoico_compiler_s_entypeof(o->compiler,name->sc );
    
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x97233(%rip), %rsi     # 0xaaf7d
movq %r15, %rdi
callq 0xe5ff
testb %al, %al
je 0x13d66
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x13c0c
jmp 0x13d7a
leaq 0xae3ba(%rip), %rsi     # 0xc2127
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
je 0x13d93
movq %rax, %r15
leaq 0x104047(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x13db2
cmpq $0x0, 0x10(%r14)
je 0x13daf
movq 0x8(%r14), %rsi
movl $0x140, %edi            # imm = 0x140
addq 0x140(%rbx), %rdi
callq 0x6f48c
xorl %r15d, %r15d
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_tp
er_t xoico_group_s_parse_name_tp( const xoico_group_s* o, x_source* source, tp_t* name )
{
    // xoico_group.x:324:1
    BLM_INIT_LEVEL(0);
    st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
    
    if( x_source_parse_bl(source," #?':'" ) )
    {
        BLM_TRY(xoico_group_s_parse_name_recursive(o,source, s ))
    }
    else
    {
        BLM_TRY(x_source_parse_fa(source," #name", s ))
    }
    
    if( s->size == 0 ) BLM_TRY(x_source_parse_error_fa(source,"Identifier expected." ))
    
    if( (name) ) (*(name)) = xoico_compiler_s_entypeof(o->compiler,s->sc );
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
leaq 0x103ff8(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
movq %rsp, %r12
movq %r12, %rdi
callq 0x717f5
andq $0x0, 0x10(%r12)
xorl %eax, %eax
callq 0x8eb65
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
leaq 0x97169(%rip), %rsi     # 0xaaf7d
movq %r15, %rdi
callq 0xe5ff
testb %al, %al
je 0x13e30
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x13c0c
jmp 0x13e44
leaq 0xae2f0(%rip), %rsi     # 0xc2127
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
je 0x13e4e
movq %rax, %r13
jmp 0x13e77
cmpq $0x0, 0x10(%r12)
je 0x13e90
testq %rbx, %rbx
je 0x13e74
movq 0x8(%r12), %rsi
movl $0x140, %edi            # imm = 0x140
addq 0x140(%r14), %rdi
callq 0x6f48c
movq %rax, (%rbx)
xorl %r13d, %r13d
movq %rsp, %rdi
callq 0x71b64
movq %r13, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x96333(%rip), %rsi     # 0xaa1ca
movq %r15, %rdi
xorl %eax, %eax
callq 0xd7c4
testq %rax, %rax
jne 0x13e49
jmp 0x13e56
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_push_inexpandable_feature_from_sc
er_t xoico_group_s_push_inexpandable_feature_from_sc( xoico_group_s* o, sc_t sc )
{
    // xoico_group.x:346:1
    BLM_INIT_LEVEL(0);
    xoico_compiler_s* compiler = o->compiler;
    xoico_feature_s* feature = ((xoico_feature_s*)BLM_LEVEL_T_PUSH(0,xoico_feature_s,xoico_feature_s_create()));
    feature->expandable = false;
    BLM_TRY(xoico_feature_s_parse(feature,((const xoico_host*)(o)), ((x_source*)BLM_LEVEL_A_PUSH(0,x_source_create_from_sc(sc ))) ))
    
    if( !xoico_compiler_s_is_item(compiler,xoico_feature_s_get_global_name_tp(feature) ) )
    {
        {const xoico_funcs_s* __a=&(feature->funcs_return_to_group );if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_func_s* func=__a->data[__i]; x_array_push_d(((x_array*)(&(o->funcs))),((x_inst*)(((xoico_func_s*)bcore_fork(func)) )));}}
        x_array_clear(((x_array*)(&(feature->funcs_return_to_group))));
        BLM_TRY(xoico_compiler_s_register_item(compiler,((const xoico*)(feature ))))
        bcore_hmap_tpvd_s_set(&(o->hmap_feature),feature->signature.name, ( vd_t )feature );
        xoico_group_s_push_item_d(o,((xoico*)(((xoico_feature_s*)bcore_fork(feature)) )));
    }
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x103f0e(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
movq %rsp, %r13
movq %r13, %rdi
callq 0x717f5
andq $0x0, 0x10(%r13)
movq 0x140(%rbx), %r15
callq 0x11d4d
movabsq $0x320f5368e957d0a2, %rdx # imm = 0x320F5368E957D0A2
movq %r13, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movb $0x0, 0x115(%rax)
movq %r12, %rdi
callq 0x76c9e
movq %r13, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x71a90
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x11e4a
testq %rax, %rax
je 0x13f32
movq %rax, %r12
jmp 0x13fbe
movq 0x20(%r14), %rsi
leaq 0x78(%r15), %rdi
callq 0x68f9b
testb %al, %al
jne 0x13fbb
leaq 0x118(%rbx), %r12
xorl %r13d, %r13d
cmpq 0xd0(%r14), %r13
jae 0x13f76
movq 0xc8(%r14), %rax
movq (%rax,%r13,8), %rdi
callq 0x6026d
movq %r12, %rdi
movq %rax, %rsi
callq 0xf6dd
incq %r13
jmp 0x13f4d
movq %r14, %rdi
addq $0xc0, %rdi
callq 0x13fdc
movq %r15, %rdi
movq %r14, %rsi
callq 0x114d0
testq %rax, %rax
jne 0x13f2a
leaq 0x150(%rbx), %rdi
movq 0x10(%r14), %rsi
movq %r14, %rdx
callq 0x68dba
movq %r14, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0xf6dd
xorl %r12d, %r12d
movq %rsp, %rdi
callq 0x71b64
movq %r12, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_push_inexpandable_func_from_sc
er_t xoico_group_s_push_inexpandable_func_from_sc( xoico_group_s* o, sc_t sc )
{
    // xoico_group.x:367:1
    BLM_INIT_LEVEL(0);
    xoico_func_s* func = ((xoico_func_s*)BLM_LEVEL_T_PUSH(0,xoico_func_s,xoico_func_s_create()));
    func->expandable = false;
    BLM_TRY(xoico_func_s_parse(func,((const xoico_host*)(o)), ((x_source*)BLM_LEVEL_A_PUSH(0,x_source_create_from_sc(sc ))) ))
    BLM_TRY(xoico_group_s_push_func_d(o,((xoico_func_s*)bcore_fork(func)) ))
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x103dbe(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
andq $0x0, 0x10(%r12)
callq 0x10ebb
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movb $0x0, 0x28(%rax)
movq %r15, %rdi
callq 0x76c9e
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x71a90
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x110b6
movq %rax, %r15
testq %rax, %rax
jne 0x1408c
movq %r14, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x140a5
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r15, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_push_func_d
er_t xoico_group_s_push_func_d( xoico_group_s* o, xoico_func_s* func )
{
    // xoico_group.x:415:1
    
    sz_t idx = xoico_funcs_s_get_index_from_name(&(o->funcs),func->name );
    
    xoico_compiler_s* compiler = o->compiler;
    
    if( idx >= 0 )
    {
        xoico_func_s* prex_func = o->funcs.data[ idx ];
        if( ( prex_func->signature_global_name == func->signature_global_name ) )
        {
            if( !func->body )
            {
                return  x_source_point_s_parse_error_fa(&(func->source_point),"Function '#<sc_t>' has already been declared.", xoico_compiler_s_nameof(compiler,func->name ) );
            }
            else if( prex_func->body )
            {
                return  x_source_point_s_parse_error_fa(&(func->source_point),"Function '#<sc_t>' has already a body.", xoico_compiler_s_nameof(compiler,func->name ) );
            }
            else
            {
                BLM_TRY(xoico_funcs_s_replace_d(&(o->funcs),idx, func ))
            }
        }
        else
        {
            return  x_source_point_s_parse_error_fa(&(func->source_point),"Function '#<sc_t>' has already been declared.", xoico_compiler_s_nameof(compiler,func->name ) );
        }
    }
    else
    {
        x_array_push_d(((x_array*)(&(o->funcs))),((x_inst*)(func )));
    }
    
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r12
leaq 0x118(%rdi), %r15
movq 0x8(%rsi), %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x11598
testq %rax, %rax
js 0x1413a
movq 0x140(%r12), %rdi
movq 0x120(%r12), %rcx
movq (%rcx,%rax,8), %rcx
movq 0x20(%rcx), %rdx
cmpq 0x20(%rbx), %rdx
jne 0x1410f
cmpq $0x0, 0x38(%rbx)
je 0x1410f
cmpq $0x0, 0x38(%rcx)
je 0x14153
addq $0x48, %rbx
movq %r14, %rsi
callq 0xdad8
leaq 0x96ea5(%rip), %rsi     # 0xaafb2
jmp 0x14122
addq $0x48, %rbx
movq %r14, %rsi
callq 0xdad8
leaq 0x96e62(%rip), %rsi     # 0xaaf84
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xf256
movq %r15, %rdi
movq %rbx, %rsi
callq 0xf6dd
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r15, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x11c29
jmp 0x14145
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_push_func_from_sc
er_t xoico_group_s_push_func_from_sc( xoico_group_s* o, sc_t sc )
{
    // xoico_group.x:378:1
    BLM_INIT_LEVEL(0);
    xoico_func_s* func = ((xoico_func_s*)BLM_LEVEL_T_PUSH(0,xoico_func_s,xoico_func_s_create()));
    func->expandable = true;
    BLM_TRY(xoico_func_s_parse(func,((const xoico_host*)(o)), ((x_source*)BLM_LEVEL_A_PUSH(0,x_source_create_from_sc(sc ))) ))
    BLM_TRY(xoico_group_s_push_func_d(o,((xoico_func_s*)bcore_fork(func)) ))
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x103c55(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
andq $0x0, 0x10(%r12)
callq 0x10ebb
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movb $0x1, 0x28(%rax)
movq %r15, %rdi
callq 0x76c9e
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x71a90
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x110b6
movq %rax, %r15
testq %rax, %rax
jne 0x141f5
movq %r14, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x140a5
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r15, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_func
er_t xoico_group_s_parse_func( xoico_group_s* o, x_source* source, bl_t register_in_function_manager )
{
    // xoico_group.x:389:1
    BLM_INIT_LEVEL(0);
    xoico_func_s* func = ((xoico_func_s*)BLM_LEVEL_T_PUSH(0,xoico_func_s,xoico_func_s_create()));
    BLM_TRY(xoico_func_s_parse(func,((const xoico_host*)(o)), source ))
    func->register_in_function_manager = register_in_function_manager;
    
    if( func->name == ((tp_t)(TYPEOF_group_signal_init1)) )
    {
        o->defines_group_signal_init1 = true;
    }
    
    if( func->name == ((tp_t)(TYPEOF_group_signal_down1)) )
    {
        o->defines_group_signal_down1 = true;
    }
    
    BLM_TRY(xoico_group_s_push_func_d(o,((xoico_func_s*)bcore_fork(func)) ))
    if( func->signature_global_name == ((tp_t)(TYPEOF_x_inst_main)) || func->signature_global_name == ((tp_t)(TYPEOF_x_inst_main_c)) )
    {
        BLM_TRY(xoico_target_s_set_main_function(o->xoico_source->target,func ))
    }
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x103ba9(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x717f5
andq $0x0, 0x10(%r14)
callq 0x10ebb
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x110b6
testq %rax, %rax
jne 0x142bc
movb %bpl, 0x2b(%r14)
movq 0x8(%r14), %rax
movabsq $-0x548727f5f9a4038b, %rcx # imm = 0xAB78D80A065BFC75
cmpq %rcx, %rax
je 0x1429d
movabsq $-0xaafc4c24e667991, %rcx # imm = 0xF5503B3DB199866F
cmpq %rcx, %rax
jne 0x142a4
movb $0x1, 0xd9(%rbx)
jmp 0x142a4
movb $0x1, 0xda(%rbx)
movq %r14, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x140a5
testq %rax, %rax
je 0x142d7
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r15, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x20(%r14), %rax
movabsq $0x242b13df94fa288, %rcx # imm = 0x242B13DF94FA288
cmpq %rcx, %rax
je 0x142f9
movabsq $-0x7a452b622f2c7b3e, %rcx # imm = 0x85BAD49DD0D384C2
cmpq %rcx, %rax
jne 0x14314
movq 0x138(%rbx), %rax
movq 0x90(%rax), %rdi
movq %r14, %rsi
callq 0x14319
testq %rax, %rax
jne 0x142bc
xorl %r15d, %r15d
jmp 0x142bf
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_push_inexpandable_funcs
er_t xoico_stamp_s_push_inexpandable_funcs( xoico_stamp_s* o )
{
    // xoico_stamp.x:602:1
    
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.init;" ))
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.down;" ))
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.copy;" ))
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.create;" ))
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.discard;" ))
    BLM_TRY(xoico_stamp_s_push_inexpandable_func_from_sc(o,"bcore_stamp_funcs.clone;" ))
    return  0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
leaq 0x95a9f(%rip), %rsi     # 0xaba72
callq 0x17e6d
testq %rax, %rax
jne 0x16041
leaq 0x95aa6(%rip), %rsi     # 0xaba8a
movq %r14, %rdi
callq 0x17e6d
testq %rax, %rax
jne 0x16041
leaq 0x95aaa(%rip), %rsi     # 0xabaa2
movq %r14, %rdi
callq 0x17e6d
testq %rax, %rax
jne 0x16041
leaq 0x95aae(%rip), %rsi     # 0xababa
movq %r14, %rdi
callq 0x17e6d
testq %rax, %rax
jne 0x16041
leaq 0x95ab4(%rip), %rsi     # 0xabad4
movq %r14, %rdi
callq 0x17e6d
testq %rax, %rax
jne 0x16041
leaq 0x95abb(%rip), %rsi     # 0xabaef
movq %r14, %rdi
callq 0x17e6d
testq %rax, %rax
je 0x1605e
movq %rax, %rbx
leaq 0x101d85(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
xorl %ebx, %ebx
jmp 0x16053
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_get_hash
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_stamp_s )

tp_t xoico_stamp_s_get_hash( const xoico_stamp_s* o )
{
    // xoico_stamp.x:54:5
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_sc( hash, o->st_name.sc );
    hash = bcore_tp_fold_sc( hash, o->self_source ? o->self_source->sc : "" );
    hash = bcore_tp_fold_tp( hash, xoico_funcs_s_get_hash(&(o->funcs)) );
    return  hash;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0xe705
movq 0x10(%rbx), %rsi
movq %rax, %rdi
callq 0x10500
movq 0x48(%rbx), %rcx
testq %rcx, %rcx
je 0x1628b
movq 0x8(%rcx), %rsi
jmp 0x16292
leaq 0xb033a(%rip), %rsi     # 0xc65cc
movq %rax, %rdi
callq 0x10500
movq %rax, %r14
addq $0x58, %rbx
movq %rbx, %rdi
callq 0x11cb3
movq %r14, %rdi
movq %rax, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xe705
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_get_group_if_preexsting
er_t xoico_source_s_get_group_if_preexsting( xoico_source_s* o, const xoico_host* host, x_source* source, sc_t group_name, sc_t trait_name, xoico_group_s** group )
{
    // xoico_source.x:199:1
    
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    if( xoico_compiler_s_is_group(compiler,xoico_host_a_entypeof(host,group_name ) ) )
    {
        (*(group)) = xoico_compiler_s_get_group(compiler,xoico_host_a_entypeof(host,group_name ) );
    
        // Extending a preexisting group is only allowed inside the same target
        if( (**(group)).xoico_source->target != o->target )
        {
            return  x_source_parse_error_fa(source,"Group '#<sc_t>' was defined in target '#<sc_t>'. It cannot be extended in a different target.", group_name, (**(group)).xoico_source->target->name.sc );
        }
    
        if( (**(group)).trait_name != xoico_compiler_s_entypeof(compiler,trait_name ) )
        {
            return  x_source_parse_error_fa(source,"Extending group '#<sc_t>' of trait '#<sc_t>' with a different trait '#<sc_t>'.", group_name, xoico_host_a_nameof(host,(**(group)).trait_name ), trait_name );
        }
    
    }
    else
    {
        (*(group)) = NULL;
    }
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %r12
movq %r8, %r15
movq %rcx, %rbx
movq %rdx, (%rsp)
movq %rsi, %r13
movq %rdi, %r14
movq %rsi, %rdi
callq 0xdab3
movq %rax, %rbp
movq %r13, %rdi
movq %rbx, %rsi
callq 0xfbe8
leaq 0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x68f9b
testb %al, %al
je 0x1636f
movq %r13, %rdi
movq %rbx, %rsi
callq 0xfbe8
movq %rbp, %rdi
movq %rax, %rsi
callq 0x1393c
movq %rax, (%r12)
movq 0x138(%rax), %rcx
movq 0x90(%rcx), %rcx
cmpq 0x90(%r14), %rcx
je 0x16385
movq 0x10(%rcx), %rcx
leaq 0x95f27(%rip), %rsi     # 0xac27a
movq (%rsp), %rdi
movq %rbx, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd7c4
andq $0x0, (%r12)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xb0(%rax), %r14
addq $0x140, %rbp            # imm = 0x140
movq %rbp, %rdi
movq %r15, %rsi
callq 0x6f48c
cmpq %rax, %r14
je 0x16374
movq (%r12), %rax
movq 0xb0(%rax), %rsi
movq %r13, %rdi
callq 0xdf58
leaq 0x95f1b(%rip), %rsi     # 0xac2d8
movq (%rsp), %rdi
movq %rbx, %rdx
movq %rax, %rcx
movq %r15, %r8
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd7c4
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_register_func
er_t xoico_compiler_s_register_func( xoico_compiler_s* o, const xoico_func_s* func )
{
    // xoico_compiler.x:348:1
    
    if( bcore_hmap_tpvd_s_exists(&(o->hmap_func),func->global_name ) )
    {
        xoico_func_s* func_registered =*( ((xoico_func_s**)(bcore_hmap_tpvd_s_get(&(o->hmap_func),func->global_name ))));
    
        if( func_registered == func )
        {
            return  x_source_point_s_parse_error_fa(&(
                func->source_point),"Global func name '#<sc_t>' was already registered from same instance.\n",
                xoico_compiler_s_nameof(o,func->global_name )
            );
        }
        else
        {
            return  x_source_point_s_parse_error_fa(&(
                func->source_point),"Global func name '#<sc_t>' was already registered from different instance.\n"
                "'#<sc_t>' vs '#<sc_t>'\n",
                xoico_compiler_s_nameof(o,func->global_name ),
                xoico_compiler_s_nameof(o,func->name ),
                xoico_compiler_s_nameof(o,func_registered->name )
            );
        }
    }
    
    bcore_hmap_tpvd_s_set(&(o->hmap_func),func->global_name, ( vd_t )func );
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
leaq 0xa0(%rdi), %r15
movq 0x10(%rsi), %rsi
movq %r15, %rdi
callq 0x68f9b
movq 0x10(%r14), %rsi
movq %r15, %rdi
testb %al, %al
je 0x167de
callq 0x68f4a
movq (%rax), %r13
leaq 0x48(%r14), %r15
movq 0x10(%r14), %rsi
movq %rbx, %rdi
callq 0xdad8
movq %rax, %r12
cmpq %r14, %r13
je 0x167f2
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0xdad8
movq %rax, %r14
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq 0xdad8
leaq 0x9667d(%rip), %rsi     # 0xace3f
movq %r15, %rdi
movq %r12, %rdx
movq %r14, %rcx
movq %rax, %r8
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xf256
movq %r14, %rdx
callq 0x68dba
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x965ff(%rip), %rsi     # 0xacdf8
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xf256
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_expand_forward
er_t xoico_group_s_expand_forward( const xoico_group_s* o, sz_t indent, x_sink* sink )
{
    // xoico_group.x:897:1
    
    if( !o->expandable ) return  0;
    x_sink_push_fa(sink," \\\n#rn{ }BCORE_FORWARD_OBJECT( #<sc_t> );", indent, o->st_name.sc );
    {const xoico_group_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico* e=__a->data[__i]; BLM_TRY(xoico_a_expand_forward(e,((const xoico_host*)(o)), indent, sink ))
    }}{const xoico_funcs_s* __a=&(o->funcs );if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_func_s* func=__a->data[__i]; BLM_TRY(xoico_func_s_expand_forward(func,((const xoico_host*)(o)), indent, sink ))
    }}return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
cmpb $0x1, 0xc8(%rdi)
jne 0x16889
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq 0x90(%rdi), %rcx
leaq 0x938cf(%rip), %rsi     # 0xaa107
xorl %r13d, %r13d
movq %rdx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xdd43
cmpq 0x10(%r15), %r13
jae 0x16899
movq 0x8(%r15), %rax
movq (%rax,%r13,8), %r12
movq %r12, %rdi
callq 0x2d62b
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq *0x40(%rax)
incq %r13
testq %rax, %rax
je 0x16848
movq %rax, %r12
leaq 0x101551(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x1688c
xorl %r12d, %r12d
movq %r12, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
xorl %r12d, %r12d
xorl %r13d, %r13d
cmpq 0x128(%r15), %r13
jae 0x1688c
movq 0x120(%r15), %rax
movq (%rax,%r13,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x11791
incq %r13
jmp 0x1689f
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_expand_spect_declaration
er_t xoico_group_s_expand_spect_declaration( const xoico_group_s* o, sz_t indent, x_sink* sink )
{
    // xoico_group.x:908:1
    
    if( !o->expandable ) return  0;
    if( o->short_spect_name )
    {
        x_sink_push_fa(sink," \\\n#rn{ }BCORE_DECLARE_SPECT( #<sc_t> )", indent, o->st_name.sc );
    }
    else
    {
        x_sink_push_fa(sink," \\\n#rn{ }XOILA_DECLARE_SPECT( #<sc_t> )", indent, o->st_name.sc );
    }
    
    x_sink_push_fa(sink," \\\n#rn{ }{", indent );
    x_sink_push_fa(sink," \\\n#rn{ }    bcore_spect_header_s header;", indent );
    {const xoico_group_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico* e=__a->data[__i]; BLM_TRY(xoico_a_expand_spect_declaration(e,((const xoico_host*)(o)), indent + 4, sink ))
    }}x_sink_push_fa(sink," \\\n#rn{ }};", indent );
    
    x_sink_push_fa(sink," \\\n#rn{ }"
        "BCORE_DECLARE_VIRTUAL_AWARE_OBJECT( #<sc_t> )",
        indent,
        o->st_name.sc
    );
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x1, 0xc8(%rdi)
jne 0x16983
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r15
movq 0x90(%rdi), %rcx
leaq 0x94bcb(%rip), %rax     # 0xab4c0
leaq 0x94bec(%rip), %rsi     # 0xab4e8
cmpb $0x0, 0xd8(%rdi)
cmovneq %rax, %rsi
xorl %ebp, %ebp
movq %rdx, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x94bf3(%rip), %rsi     # 0xab510
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x94bea(%rip), %rsi     # 0xab51b
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x4(%rbx), %r13
cmpq 0x10(%r15), %rbp
jae 0x16988
movq 0x8(%r15), %rax
movq (%rax,%rbp,8), %r12
movq %r12, %rdi
callq 0x2d62b
movq %r12, %rdi
movq %r15, %rsi
movq %r13, %rdx
movq %r14, %rcx
callq *0x50(%rax)
incq %rbp
testq %rax, %rax
je 0x16942
movq %rax, %r12
leaq 0x101457(%rip), %rax    # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x169ba
xorl %r12d, %r12d
jmp 0x169ba
leaq 0x94bb6(%rip), %rsi     # 0xab545
xorl %r12d, %r12d
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x90(%r15), %rcx
leaq 0x94ba4(%rip), %rsi     # 0xab551
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq