LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/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 0x17a4b7(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x0, 0x10(%r12)
callq 0x196b9
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movb $0x0, 0x28(%rax)
movq %r15, %rdi
callq 0xe4688
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0xd6b17
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x1a013
movq %rax, %r15
testq %rax, %rax
jne 0x21996
movq %r14, %rdi
callq 0xbe7e4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x219af
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r15, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/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 %rbx
movq %rsi, %rbx
movq %rdi, %rcx
addq $0x118, %rdi            # imm = 0x118
movq 0x128(%rcx), %rdx
testq %rdx, %rdx
je 0x21a23
movq 0x8(%rbx), %rsi
movq 0x120(%rcx), %r9
xorl %eax, %eax
movq (%r9,%rax,8), %r8
cmpq %rsi, 0x8(%r8)
je 0x219ea
incq %rax
cmpq %rax, %rdx
jne 0x219d6
jmp 0x21a23
testq %rax, %rax
js 0x21a23
movq 0x140(%rcx), %rcx
movq 0x20(%r8), %rdx
cmpq 0x20(%rbx), %rdx
jne 0x21a32
cmpq $0x0, 0x38(%rbx)
je 0x21a32
cmpq $0x0, 0x38(%r8)
je 0x21a53
addq $0x48, %rbx
movq %rcx, %rdi
callq 0xe3d7
leaq 0x10c591(%rip), %rsi    # 0x12dfb2
jmp 0x21a45
movq (%rdi), %rsi
movq %rbx, %rdx
callq 0x55b79
xorl %eax, %eax
popq %rbx
retq
addq $0x48, %rbx
movq %rcx, %rdi
callq 0xe3d7
leaq 0x10c53f(%rip), %rsi    # 0x12df84
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
popq %rbx
jmp 0x13254
movq %rax, %rsi
movq %rbx, %rdx
callq 0x1c007
jmp 0x21a2e
// File: /workspace/github_c_makefile_star2_O3/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 0x17a358(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x0, 0x10(%r12)
callq 0x196b9
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movb $0x1, 0x28(%rax)
movq %r15, %rdi
callq 0xe4688
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0xd6b17
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x1a013
movq %rax, %r15
testq %rax, %rax
jne 0x21af5
movq %r14, %rdi
callq 0xbe7e4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x219af
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r15, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/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 0x17a2a9(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0xd6675
movq $0x0, 0x10(%r14)
callq 0x196b9
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x1a013
testq %rax, %rax
jne 0x21bbf
movb %bpl, 0x2b(%r14)
movq 0x8(%r14), %rax
movabsq $-0x548727f5f9a4038b, %rcx # imm = 0xAB78D80A065BFC75
cmpq %rcx, %rax
je 0x21ba0
movabsq $-0xaafc4c24e667991, %rcx # imm = 0xF5503B3DB199866F
cmpq %rcx, %rax
jne 0x21ba7
movb $0x1, 0xd9(%rbx)
jmp 0x21ba7
movb $0x1, 0xda(%rbx)
movq %r14, %rdi
callq 0xbe7e4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x219af
testq %rax, %rax
je 0x21bda
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
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 0x21bfc
movabsq $-0x7a452b622f2c7b3e, %rcx # imm = 0x85BAD49DD0D384C2
cmpq %rcx, %rax
jne 0x21c44
movq 0x138(%rbx), %rax
movq 0x90(%rax), %rax
movq 0x138(%rax), %rcx
cmpb $0x0, 0x170(%rcx)
je 0x21c36
addq $0x48, %r14
leaq 0x10d73b(%rip), %rsi    # 0x12f360
movq %r14, %rdi
xorl %eax, %eax
callq 0x13254
testq %rax, %rax
jne 0x21bbf
jmp 0x21c44
movb $0x1, 0x170(%rcx)
movq %r14, 0x140(%rax)
xorl %r15d, %r15d
jmp 0x21bc2
// File: /workspace/github_c_makefile_star2_O3/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 0x109a32(%rip), %rsi    # 0x12ea72
callq 0x2987d
testq %rax, %rax
jne 0x250ae
leaq 0x109a39(%rip), %rsi    # 0x12ea8a
movq %r14, %rdi
callq 0x2987d
testq %rax, %rax
jne 0x250ae
leaq 0x109a3d(%rip), %rsi    # 0x12eaa2
movq %r14, %rdi
callq 0x2987d
testq %rax, %rax
jne 0x250ae
leaq 0x109a41(%rip), %rsi    # 0x12eaba
movq %r14, %rdi
callq 0x2987d
testq %rax, %rax
jne 0x250ae
leaq 0x109a47(%rip), %rsi    # 0x12ead4
movq %r14, %rdi
callq 0x2987d
testq %rax, %rax
jne 0x250ae
leaq 0x109a4e(%rip), %rsi    # 0x12eaef
movq %r14, %rdi
callq 0x2987d
testq %rax, %rax
je 0x250cb
movq %rax, %rbx
leaq 0x176d18(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
xorl %ebx, %ebx
jmp 0x250c0
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_is_stamp
bl_t xoico_compiler_s_is_stamp( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:181:5
    
    const xoico* item = xoico_compiler_s_get_const_item(o,name );
    if( item && ( item->_ == ((tp_t)(TYPEOF_xoico_stamp_s)) ) ) return  true;
    return  false;
}

// Assembly:
pushq %rax
addq $0x78, %rdi
callq 0xca94f
testq %rax, %rax
je 0x250f7
movq (%rax), %rcx
testq %rcx, %rcx
je 0x250f7
movb $0x1, %al
movabsq $0x12d01d78049fae7, %rdx # imm = 0x12D01D78049FAE7
cmpq %rdx, (%rcx)
je 0x250f9
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/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
movabsq $0x100000001b3, %rbx    # imm = 0x100000001B3
movq (%rdi), %rcx
movq 0x10(%rdi), %rax
movl $0xff, %edx
movq %rcx, %rsi
andq %rdx, %rsi
movabsq $-0x340d631b7bdddcdb, %r8 # imm = 0xCBF29CE484222325
xorq %rsi, %r8
imulq %rbx, %r8
movl %ecx, %esi
shrl $0x8, %esi
movl $0xff, %r9d
andl %r9d, %esi
xorq %r8, %rsi
imulq %rbx, %rsi
movl %ecx, %r8d
shrl $0x10, %r8d
andl %r9d, %r8d
xorq %rsi, %r8
imulq %rbx, %r8
movl %ecx, %esi
shrl $0x18, %esi
xorq %r8, %rsi
imulq %rbx, %rsi
movq %rcx, %r8
shrq $0x20, %r8
andq %rdx, %r8
xorq %rsi, %r8
imulq %rbx, %r8
movq %rcx, %rsi
shrq $0x28, %rsi
andq %rdx, %rsi
xorq %r8, %rsi
imulq %rbx, %rsi
movq %rcx, %r8
shrq $0x30, %r8
andq %rdx, %r8
xorq %rsi, %r8
imulq %rbx, %r8
shrq $0x38, %rcx
xorq %r8, %rcx
testq %rax, %rax
je 0x253de
imulq %rbx, %rcx
movb (%rax), %sil
testb %sil, %sil
je 0x253ec
incq %rax
movzbl %sil, %edx
xorq %rcx, %rdx
imulq %rbx, %rdx
movb (%rax), %sil
incq %rax
movq %rdx, %rcx
testb %sil, %sil
jne 0x253c3
jmp 0x253ef
movabsq $0x366000002e329, %rax  # imm = 0x366000002E329
imulq %rax, %rcx
movq %rcx, %rdx
movq 0x48(%rdi), %rax
testq %rax, %rax
je 0x25407
movq 0x8(%rax), %rax
testq %rax, %rax
jne 0x2540e
imulq %rbx, %rdx
jmp 0x25430
leaq 0x123307(%rip), %rax    # 0x148715
movb (%rax), %cl
testb %cl, %cl
je 0x25430
incq %rax
movzbl %cl, %r14d
xorq %rdx, %r14
imulq %rbx, %r14
movb (%rax), %cl
incq %rax
movq %r14, %rdx
testb %cl, %cl
jne 0x25417
jmp 0x25433
movq %rdx, %r14
addq $0x58, %rdi
callq 0x1c098
movl $0xff, %ecx
movq %rax, %rdx
andq %rcx, %rdx
xorq %r14, %rdx
imulq %rbx, %rdx
movl %eax, %esi
shrl $0x8, %esi
movl $0xff, %edi
andl %edi, %esi
xorq %rdx, %rsi
imulq %rbx, %rsi
movl %eax, %edx
shrl $0x10, %edx
andl %edi, %edx
xorq %rsi, %rdx
imulq %rbx, %rdx
movl %eax, %esi
shrl $0x18, %esi
xorq %rdx, %rsi
imulq %rbx, %rsi
movq %rax, %rdx
shrq $0x20, %rdx
andq %rcx, %rdx
xorq %rsi, %rdx
imulq %rbx, %rdx
movq %rax, %rsi
shrq $0x28, %rsi
andq %rcx, %rsi
xorq %rdx, %rsi
imulq %rbx, %rsi
movq %rax, %rdx
shrq $0x30, %rdx
andq %rcx, %rdx
xorq %rsi, %rdx
imulq %rbx, %rdx
shrq $0x38, %rax
xorq %rdx, %rax
imulq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/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 0xca9a0
movq 0x10(%r14), %rsi
movq %r15, %rdi
testb %al, %al
je 0x25eec
callq 0xca94f
movq (%rax), %r13
leaq 0x48(%r14), %r15
movq 0x10(%r14), %rsi
movq %rbx, %rdi
callq 0xe3d7
movq %rax, %r12
cmpq %r14, %r13
je 0x25f00
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0xe3d7
movq %rax, %r14
movq 0x8(%r13), %rsi
movq %rbx, %rdi
callq 0xe3d7
leaq 0x109f6f(%rip), %rsi    # 0x12fe3f
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 0x13254
movq %r14, %rdx
callq 0xca6bb
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x109ef1(%rip), %rsi    # 0x12fdf8
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x13254
// File: /workspace/github_c_makefile_star2_O3/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x1, 0xc8(%rdi)
jne 0x26067
movq %rdx, %rbp
movq %rsi, %rdx
movq %rdi, %r15
movq 0x90(%rdi), %rcx
leaq 0x1071bb(%rip), %rsi    # 0x12d107
movq %rbp, %rdi
movq %rdx, (%rsp)
xorl %eax, %eax
callq 0xed3f
cmpq $0x0, 0x10(%r15)
je 0x2602d
xorl %ebx, %ebx
movq %rbp, %r14
movq 0x8(%r15), %rax
movq (%rax,%rbx,8), %rbp
movq (%rbp), %r13
movl 0x16c50c(%rip), %eax    # 0x192488
cltq
leaq (%rax,%rax,2), %rax
leaq 0x16c4ff(%rip), %rdx    # 0x192488
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x25fd6
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x25fd6
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x25fd6
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x25fdf
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x26006
movabsq $0x5d91f496b6479859, %rdi # imm = 0x5D91F496B6479859
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x16c48d(%rip), %rdi    # 0x192488
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbp, %rdi
movq %r15, %rsi
movq (%rsp), %rdx
movq %r14, %rbp
movq %r14, %rcx
callq *0x40(%r12)
testq %rax, %rax
jne 0x2606c
incq %rbx
cmpq 0x10(%r15), %rbx
jb 0x25f67
cmpq $0x0, 0x128(%r15)
je 0x26067
xorl %r13d, %r13d
xorl %ebx, %ebx
movq (%rsp), %r14
movq 0x120(%r15), %rax
movq (%rax,%rbx,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x1b482
incq %rbx
cmpq 0x128(%r15), %rbx
jb 0x26040
jmp 0x2607e
xorl %r13d, %r13d
jmp 0x2607e
movq %rax, %r13
leaq 0x175d5a(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %r13, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_get_traitline_func_from_name
const xoico_func_s* xoico_stamp_s_get_traitline_func_from_name( const xoico_stamp_s* o, tp_t name )
{
    // xoico_stamp.x:95:5
    
    const xoico_func_s* func = xoico_funcs_s_get_func_from_name(&(o->funcs),name );
    if( !func )
    {
        func = xoico_group_s_get_traitline_func_from_name(xoico_compiler_s_get_group(o->group->compiler,o->trait_name ),name );
    }
    return  func;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
movq 0x68(%rdi), %rcx
testq %rcx, %rcx
je 0x28b3f
movq 0x60(%rdi), %rsi
xorl %edx, %edx
movq (%rsi,%rdx,8), %rax
cmpq %rbx, 0x8(%rax)
je 0x28b38
incq %rdx
cmpq %rdx, %rcx
jne 0x28b24
jmp 0x28b3f
testq %rdx, %rdx
js 0x28b3f
popq %rbx
retq
movq 0x30(%rdi), %rsi
movq 0xc8(%rdi), %rax
movq 0x140(%rax), %rdi
addq $0x50, %rdi
callq 0xca94f
testq %rax, %rax
je 0x28b64
movq (%rax), %rdi
jmp 0x28b66
xorl %edi, %edi
movq %rbx, %rsi
popq %rbx
jmp 0x20bbb
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_get_traitline_member_func_from_name
const xoico_func_s* xoico_stamp_s_get_traitline_member_func_from_name( const xoico_stamp_s* o, tp_t name )
{
    // xoico_stamp.x:110:5
    
    const xoico_func_s* func = xoico_funcs_s_get_func_from_name(&(o->funcs),name );
    if( !func )
    {
        func = xoico_group_s_get_traitline_member_func_from_name(xoico_compiler_s_get_group(o->group->compiler,o->trait_name ),name );
    }
    return  func;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
movq 0x68(%rdi), %rcx
testq %rcx, %rcx
je 0x28bd1
movq 0x60(%rdi), %rsi
xorl %edx, %edx
movq (%rsi,%rdx,8), %rax
cmpq %rbx, 0x8(%rax)
je 0x28bca
incq %rdx
cmpq %rdx, %rcx
jne 0x28bb6
jmp 0x28bd1
testq %rdx, %rdx
js 0x28bd1
popq %rbx
retq
movq 0x30(%rdi), %rsi
movq 0xc8(%rdi), %rax
movq 0x140(%rax), %rdi
addq $0x50, %rdi
callq 0xca94f
testq %rax, %rax
je 0x28bf6
movq (%rax), %rdi
jmp 0x28bf8
xorl %edi, %edi
movq %rbx, %rsi
popq %rbx
jmp 0x20c20
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_get_rel_name_sc
sc_t xoico_stamp_s_get_rel_name_sc( const xoico_stamp_s* o )
{
    // xoico_stamp.x:372:1
    
    sc_t group_name = o->group->st_name.sc;
    sc_t stamp_name = o->st_name.sc;
    
    sz_t i = 0;
    while( group_name[ i ] == stamp_name[ i ] && group_name[ i ] != 0 ) i++;
    if( group_name[ i ] == 0 && stamp_name[ i ] == '_' ) i++;
    
    return  stamp_name + i;
}

// Assembly:
movq 0x10(%rdi), %rax
movq 0xc8(%rdi), %rcx
movq 0x90(%rcx), %rcx
decq %rax
movb (%rcx), %dl
movb 0x1(%rax), %sil
incq %rax
testb %dl, %dl
je 0x28c2b
incq %rcx
cmpb %sil, %dl
je 0x28c16
xorb $0x5f, %sil
xorl %ecx, %ecx
orb %sil, %dl
sete %cl
addq %rcx, %rax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_parse_wrap
er_t xoico_stamp_s_parse_wrap( xoico_stamp_s* o, x_source* source )
{
    // xoico_stamp.x:433:1
    BLM_INIT_LEVEL(0);
    xoico_wrap_s* wrap = ((xoico_wrap_s*)BLM_LEVEL_T_PUSH(0,xoico_wrap_s,xoico_wrap_s_create()));
    BLM_TRY(xoico_wrap_s_parse(wrap,((const xoico_host*)(o)), source ))
    x_array_push_d(((x_array*)(&(o->wraps))),((x_inst*)(((xoico_wrap_s*)bcore_fork(wrap)) )));
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x17317d(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xd6675
movq $0x0, 0x10(%r15)
callq 0x2787b
movabsq $-0x47c5da8ff49c4ac4, %rdx # imm = 0xB83A25700B63B53C
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x27aa2
movq %rax, %r14
testq %rax, %rax
jne 0x28cbb
leaq 0x78(%rbx), %r12
movq %r15, %rdi
callq 0xbe7e4
movq 0x78(%rbx), %rsi
movq %r12, %rdi
movq %rax, %rdx
callq 0x55b79
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_push_inexpandable_func_from_sc
er_t xoico_stamp_s_push_inexpandable_func_from_sc( xoico_stamp_s* o, sc_t sc )
{
    // xoico_stamp.x:552:1
    BLM_INIT_LEVEL(0);
    xoico_compiler_s* compiler = o->group->compiler;
    xoico_func_s* func = ((xoico_func_s*)BLM_LEVEL_T_PUSH(0,xoico_func_s,xoico_func_s_create()));
    func->overloadable = false;
    func->expandable = false;
    
    BLM_TRY(xoico_parse_sc(((xoico*)(func)),((const xoico_host*)(o)), sc ))
    
    sz_t idx = xoico_funcs_s_get_index_from_signature_global_name(&(o->funcs),func->signature_global_name );
    
    if( idx >= 0 )
    {
        BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->source_point),"Function '#<sc_t>' conflicts with a default function for this stamp.", xoico_compiler_s_nameof(compiler,func->name ) ))
    }
    else
    {
        x_array_push_d(((x_array*)(&(o->funcs))),((x_inst*)(((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, %r12
movq %rdi, %rbx
leaq 0x17253b(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xd6675
movq $0x0, 0x10(%r15)
movq 0xc8(%rbx), %rax
movq 0x140(%rax), %r14
callq 0x196b9
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
movw $0x0, 0x28(%rax)
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0xde94
movq %rax, %r12
testq %rax, %rax
jne 0x2996b
movq 0x68(%rbx), %rax
testq %rax, %rax
je 0x2994e
movq 0x20(%r15), %rcx
movq 0x60(%rbx), %rsi
xorl %edx, %edx
movq (%rsi,%rdx,8), %rdi
cmpq %rcx, 0x20(%rdi)
je 0x2991d
incq %rdx
cmpq %rdx, %rax
jne 0x29909
jmp 0x2994e
testq %rdx, %rdx
js 0x2994e
addq $0xd0, %rbx
movq 0x8(%r15), %rsi
movq %r14, %rdi
callq 0xe3d7
leaq 0x105099(%rip), %rsi    # 0x12e9d5
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x13254
movq %rax, %r12
jmp 0x2996b
addq $0x58, %rbx
movq %r15, %rdi
callq 0xbe7e4
movq (%rbx), %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x55b79
xorl %r12d, %r12d
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r12, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_push_internal_func_from_sc
er_t xoico_stamp_s_push_internal_func_from_sc( xoico_stamp_s* o, sc_t sc )
{
    // xoico_stamp.x:577:1
    BLM_INIT_LEVEL(0);
    xoico_compiler_s* compiler = o->group->compiler;
    xoico_func_s* func = ((xoico_func_s*)BLM_LEVEL_T_PUSH(0,xoico_func_s,xoico_func_s_create()));
    func->overloadable = false;
    func->expandable = true;
    
    BLM_TRY(xoico_parse_sc(((xoico*)(func)),((const xoico_host*)(o)), sc ))
    
    sz_t idx = xoico_funcs_s_get_index_from_signature_global_name(&(o->funcs),func->signature_global_name );
    
    if( idx >= 0 )
    {
        BLM_RETURNV(er_t, x_source_point_s_parse_error_fa(&(o->source_point),"Function '#<sc_t>' conflicts with an internal function for this stamp of the same name.", xoico_compiler_s_nameof(compiler,func->name ) ))
    }
    else
    {
        x_array_push_d(((x_array*)(&(o->funcs))),((x_inst*)(((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, %r12
movq %rdi, %rbx
leaq 0x172434(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xd6675
movq $0x0, 0x10(%r15)
movq 0xc8(%rbx), %rax
movq 0x140(%rax), %r14
callq 0x196b9
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
movw $0x1, 0x28(%rax)
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0xde94
movq %rax, %r12
testq %rax, %rax
jne 0x29a72
movq 0x68(%rbx), %rax
testq %rax, %rax
je 0x29a55
movq 0x20(%r15), %rcx
movq 0x60(%rbx), %rsi
xorl %edx, %edx
movq (%rsi,%rdx,8), %rdi
cmpq %rcx, 0x20(%rdi)
je 0x29a24
incq %rdx
cmpq %rdx, %rax
jne 0x29a10
jmp 0x29a55
testq %rdx, %rdx
js 0x29a55
addq $0xd0, %rbx
movq 0x8(%r15), %rsi
movq %r14, %rdi
callq 0xe3d7
leaq 0x104fd7(%rip), %rsi    # 0x12ea1a
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x13254
movq %rax, %r12
jmp 0x29a72
addq $0x58, %rbx
movq %r15, %rdi
callq 0xbe7e4
movq (%rbx), %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x55b79
xorl %r12d, %r12d
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r12, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_s_expand_init1
er_t xoico_stamp_s_expand_init1( const xoico_stamp_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_stamp.x:1010:1
    
    xoico_compiler_s* compiler = o->group->compiler;
    
    {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];
    {
        if( xoico_func_s_reflectable(func,host ) )
        {
            const xoico_signature_s* signature = func->signature;
            x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FFUNC( #<sc_t>, #<sc_t>_#<sc_t> );\n",
                indent,
                xoico_compiler_s_nameof(compiler,signature->global_name ),
                o->st_name.sc,
                xoico_compiler_s_nameof(compiler,func->name )
            );
        }
    }
    }}x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_OBJECT( #<sc_t> );\n", indent, o->st_name.sc );
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq %rdi, %r15
cmpq $0x0, 0x68(%rdi)
je 0x2af18
movq %rsi, %rbx
movq 0xc8(%r15), %rax
movq 0x140(%rax), %rax
movq %rax, 0x18(%rsp)
xorl %r12d, %r12d
movq %rsi, 0x20(%rsp)
movq 0x18(%rsp), %r13
movq 0x60(%r15), %rax
movq (%rax,%r12,8), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x198e0
testb %al, %al
je 0x2af0f
movq 0x40(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r13, %rdi
callq 0xe3d7
movq %rax, %rbx
movq 0x10(%r15), %r14
movq 0x8(%rbp), %rsi
movq %r13, %rdi
callq 0xe3d7
movq 0x8(%rsp), %rdi
leaq 0x102ec4(%rip), %rsi    # 0x12ddb9
movq 0x10(%rsp), %rdx
movq %rbx, %rcx
movq 0x20(%rsp), %rbx
movq %r14, %r8
movq %rax, %r9
xorl %eax, %eax
callq 0xed3f
incq %r12
cmpq 0x68(%r15), %r12
jb 0x2aeaf
movq 0x10(%r15), %rcx
leaq 0x104265(%rip), %rsi    # 0x12f188
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0xed3f
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_expand_declaration
er_t xoico_source_s_expand_declaration( const xoico_source_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_source.x:69:5
    
    if( o->size > 0 )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }/*#rn{*}*/\n", indent, sz_max( 0, 116 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
        {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; BLM_TRY(xoico_group_s_expand_declaration(e,indent, sink ))
    }}}
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x70(%rdi)
je 0x2c0a9
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
leaq 0x11c6e9(%rip), %rsi    # 0x148714
xorl %ebx, %ebx
movq %rcx, %rdi
xorl %eax, %eax
callq 0xed3f
movl $0x74, %ecx
subq %r15, %rcx
testq %rcx, %rcx
cmovleq %rbx, %rcx
leaq 0x10319e(%rip), %rsi    # 0x12f1eb
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x30(%r12), %rcx
movq 0x50(%r12), %r8
leaq 0x103192(%rip), %rsi    # 0x12f1fd
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xed3f
cmpq $0x0, 0x70(%r12)
je 0x2c0c2
xorl %ebx, %ebx
xorl %ebp, %ebp
movq 0x68(%r12), %rax
movq (%rax,%rbp,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x2624b
testq %rax, %rax
jne 0x2c0ad
incq %rbp
cmpq 0x70(%r12), %rbp
jb 0x2c084
jmp 0x2c0c2
xorl %ebx, %ebx
jmp 0x2c0c2
movq %rax, %r13
leaq 0x16fd19(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %r13, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_expand_init1
er_t xoico_source_s_expand_init1( const xoico_source_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_source.x:152:5
    
    if( o->size > 0 )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }// #rn{-}\n", indent, sz_max( 0, 80 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
        {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; BLM_TRY(xoico_group_s_expand_init1(e,indent, sink ))
    }}}
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x70(%rdi)
je 0x2c752
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
leaq 0x11c040(%rip), %rsi    # 0x148714
xorl %ebx, %ebx
movq %rcx, %rdi
xorl %eax, %eax
callq 0xed3f
movl $0x50, %ecx
subq %r15, %rcx
testq %rcx, %rcx
cmovleq %rbx, %rcx
leaq 0x102b73(%rip), %rsi    # 0x12f269
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x30(%r12), %rcx
movq 0x50(%r12), %r8
leaq 0x102ae9(%rip), %rsi    # 0x12f1fd
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xed3f
cmpq $0x0, 0x70(%r12)
je 0x2c76b
xorl %ebx, %ebx
xorl %ebp, %ebp
movq 0x68(%r12), %rax
movq (%rax,%rbp,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x26ea8
testq %rax, %rax
jne 0x2c756
incq %rbp
cmpq 0x70(%r12), %rbp
jb 0x2c72d
jmp 0x2c76b
xorl %ebx, %ebx
jmp 0x2c76b
movq %rax, %r13
leaq 0x16f670(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %r13, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_expand_down1
er_t xoico_source_s_expand_down1( const xoico_source_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_source.x:164:5
    
    if( o->size > 0 )
    {
        // there is hardly any code in the down1-handler, so for the moment we need omit commenting the sources
    //            sink.push_fa( "\n" );
    //            sink.push_fa( "#rn{ }// #rn{-}\n", indent, sz_max( 0, 80 - indent ) );
    //            sink.push_fa( "#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o.name.sc, o.ext.sc );
        {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; BLM_TRY(xoico_group_s_expand_down1(e,indent, sink ))
    }}}
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq %rdx, %r14
movq 0x70(%rdi), %rax
testq %rax, %rax
sete %cl
testq %rdi, %rdi
sete %dl
orb %cl, %dl
jne 0x2c7ea
movq %rdi, %r15
leaq 0x1020b4(%rip), %r12    # 0x12e85e
xorl %r13d, %r13d
movq 0x68(%r15), %rcx
movq (%rcx,%r13,8), %rcx
cmpb $0x1, 0xc8(%rcx)
jne 0x2c7e2
cmpb $0x1, 0xda(%rcx)
jne 0x2c7e2
movq 0x90(%rcx), %rcx
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x70(%r15), %rax
incq %r13
cmpq %rax, %r13
jb 0x2c7ad
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_is_cyclic_recursive
bl_t xoico_target_s_is_cyclic_recursive( xoico_target_s* o )
{
    // xoico_target.x:194:1
    
    if( o->flag ) return  true;
    o->flag = true;
    {const bcore_arr_sz_s* __a=&(o->dependencies );if(__a)for(sz_t __i=0;__i<__a->size;__i++){sz_t target_idx=__a->data[__i]; if( xoico_target_s_is_cyclic_recursive(o->compiler->data[ target_idx ]) ) return  true;
    }}o->flag = false;
    return  false;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movb $0x1, %bl
cmpb $0x0, 0xf8(%rdi)
jne 0x2de5b
movq %rdi, %r14
movb $0x1, 0xf8(%rdi)
cmpq $0x0, 0xe8(%rdi)
je 0x2de51
xorl %r15d, %r15d
movq 0xe0(%r14), %rax
movq 0x138(%r14), %rcx
movq (%rax,%r15,8), %rax
movq 0x8(%rcx), %rcx
movq (%rcx,%rax,8), %rdi
callq 0x2ddfb
testb %al, %al
jne 0x2de5b
incq %r15
cmpq 0xe8(%r14), %r15
jb 0x2de22
movb $0x0, 0xf8(%r14)
xorl %ebx, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_is_cyclic
bl_t xoico_target_s_is_cyclic( xoico_target_s* o )
{
    // xoico_target.x:205:1
    
    xoico_compiler_s_clear_flags(o->compiler);
    bl_t cyclic = xoico_target_s_is_cyclic_recursive(o);
    xoico_compiler_s_clear_flags(o->compiler);
    return  cyclic;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x138(%rdi), %rax
testq %rax, %rax
je 0x2de94
cmpq $0x0, 0x10(%rax)
je 0x2de94
xorl %ecx, %ecx
movq 0x8(%rax), %rdx
movq (%rdx,%rcx,8), %rdx
movb $0x0, 0xf8(%rdx)
incq %rcx
cmpq 0x10(%rax), %rcx
jb 0x2de7c
movq %rbx, %rdi
callq 0x2ddfb
movq 0x138(%rbx), %rcx
testq %rcx, %rcx
je 0x2dec9
cmpq $0x0, 0x10(%rcx)
je 0x2dec9
xorl %edx, %edx
movq 0x8(%rcx), %rsi
movq (%rsi,%rdx,8), %rsi
movb $0x0, 0xf8(%rsi)
incq %rdx
cmpq 0x10(%rcx), %rdx
jb 0x2deb1
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_set_dependencies
er_t xoico_target_s_set_dependencies( xoico_target_s* o, const bcore_arr_sz_s* dependencies )
{
    // xoico_target.x:215:1
    BLM_INIT_LEVEL(0);
    sz_t targets = o->compiler->size;
    
    /// sort, remove duplicates, copy
    bcore_arr_sz_s* dst =&( o->dependencies);
    bcore_arr_sz_s_set_size(dst,0 );
    bcore_arr_sz_s* src = bcore_arr_sz_s_sort(((bcore_arr_sz_s*)BLM_LEVEL_T_PUSH(0,bcore_arr_sz_s,bcore_arr_sz_s_clone(dependencies))),1 );
    for(sz_t i = 0; i < src->size; i++ )
    {
        if( i == 0 || src->data[ i ] != src->data[ i - 1 ] )
        {
            sz_t idx = src->data[ i ];
            ASSERT( idx >= 0 && idx < targets );
            bcore_arr_sz_s_push(dst,idx );
        }
    }
    
    if( xoico_target_s_is_cyclic(o) )
    {
        BLM_RETURNV(er_t, bcore_error_push_fa(((tp_t)(TYPEOF_general_error)), "Cyclic dependencies found in target '#<sc_t>'.", o->name.sc ))
    }
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x16deea(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xd6675
movq $0x0, 0x10(%r15)
movq 0x138(%r14), %rax
movq 0x10(%rax), %r13
movq %r14, (%rsp)
addq $0xd8, %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0xb6474
movq %rbx, %rdi
callq 0xb637c
movabsq $0x3d19b4fc81c235e4, %rdx # imm = 0x3D19B4FC81C235E4
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %rdi
movl $0x1, %esi
callq 0xb6714
movq %rax, %r15
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2dfbe
leaq 0xff333(%rip), %rbx     # 0x12d290
xorl %ebp, %ebp
movq 0x8(%r15), %rcx
testq %rbp, %rbp
je 0x2df75
movq (%rcx,%rbp,8), %r12
cmpq -0x8(%rcx,%rbp,8), %r12
jne 0x2df78
jmp 0x2dfb6
movq (%rcx), %r12
testq %r12, %r12
js 0x2df82
cmpq %r13, %r12
jl 0x2dfa7
leaq 0xff6be(%rip), %rdi     # 0x12d647
leaq 0x101410(%rip), %rsi    # 0x12f3a0
leaq 0x101423(%rip), %rdx    # 0x12f3ba
movq %rbx, %rcx
movl $0x14e3, %r8d           # imm = 0x14E3
xorl %eax, %eax
callq 0xbe4ef
movq %r14, %rdi
movq %r12, %rsi
callq 0xb653d
movq 0x10(%r15), %rax
incq %rbp
cmpq %rax, %rbp
jb 0x2df5f
movq (%rsp), %rbx
movq %rbx, %rdi
callq 0x2de63
testb %al, %al
je 0x2dfef
movq 0x10(%rbx), %rdx
leaq 0x101401(%rip), %rsi    # 0x12f3da
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
xorl %eax, %eax
callq 0xbec3c
movq %rax, %rbx
jmp 0x2dff1
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_expand_update_time
er_t xoico_target_s_expand_update_time( const xoico_target_s* o, sz_t indent, x_sink* sink )
{
    // xoico_target.x:243:1
    BLM_INIT_LEVEL(0);
    bcore_cday_utc_s* time = ((bcore_cday_utc_s*)BLM_LEVEL_T_PUSH(0,bcore_cday_utc_s,bcore_cday_utc_s_create()));
    bcore_cday_utc_s_from_system( time );
    x_sink_push_fa(sink,"//  Last update: " ); bcore_cday_utc_s_to_sink( time,( bcore_sink* )sink ); x_sink_push_fa(sink," (UTC)\n" );
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdx, %r14
leaq 0x16ddb0(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0xd6675
movq $0x0, 0x10(%rbx)
xorl %eax, %eax
callq 0x5cfe7
movabsq $-0x4c00d686e3307dff, %rdx # imm = 0xB3FF29791CCF8201
movq %rbx, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
movq %rax, %rdi
callq 0xbd847
leaq 0x1013a3(%rip), %rsi    # 0x12f409
movq %r14, %rdi
xorl %eax, %eax
callq 0xed3f
movq %r15, %rdi
movq %r14, %rsi
callq 0xbd913
leaq 0x101399(%rip), %rsi    # 0x12f41b
movq %r14, %rdi
xorl %eax, %eax
callq 0xed3f
movq %rbx, %rdi
callq 0xd6d2c
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_write_with_signature
er_t xoico_target_write_with_signature( sc_t file, const st_s* data )
{
    // xoico_target.x:571:1
    BLM_INIT_LEVEL(0);
    tp_t hash = bcore_tp_fold_sc( bcore_tp_init(), data->sc );
    x_sink* sink =((x_sink*)( ((bcore_sink*)BLM_LEVEL_A_PUSH(0,bcore_file_open_sink(file )))));
    x_sink_push_data(sink,( vc_t )data->data, data->size );
    x_sink_push_fa(sink,"// XOICO_FILE_SIGNATURE 0x#pl16'0'{#X<tp_t>}\n", hash );
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r12
movq %rdi, %r14
leaq 0x16c0e5(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0xd6675
movq $0x0, 0x10(%rbx)
movq 0x8(%r12), %rax
testq %rax, %rax
je 0x2fd42
movabsq $-0x340d631b7bdddcdb, %rsi # imm = 0xCBF29CE484222325
movb (%rax), %dl
testb %dl, %dl
je 0x2fd4e
incq %rax
movabsq $0x100000001b3, %rcx    # imm = 0x100000001B3
movzbl %dl, %ebx
xorq %rsi, %rbx
imulq %rcx, %rbx
movb (%rax), %dl
incq %rax
movq %rbx, %rsi
testb %dl, %dl
jne 0x2fd2a
jmp 0x2fd51
movabsq $-0x509c42b379fe4821, %rbx # imm = 0xAF63BD4C8601B7DF
jmp 0x2fd51
movq %rsi, %rbx
movq %r14, %rdi
callq 0xbf77a
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0xd6b17
movq %rax, %r14
movq 0x8(%r12), %r15
movq 0x10(%r12), %r12
movq (%rax), %r13
leaq 0x16cd31(%rip), %rax    # 0x19cab0
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x2fdd5
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2fdd5
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2fdd5
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2fdde
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x2fe05
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x16ccb6(%rip), %rdi    # 0x19cab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x10(%rbp), %rax
testq %rax, %rax
jne 0x2fe21
leaq 0x10a321(%rip), %rsi    # 0x13a136
movq %rbp, %rdi
callq 0xeb49c
movq 0x10(%rbp), %rax
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq *%rax
leaq 0xfff60(%rip), %rsi     # 0x12fd93
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_copy
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_compiler_s )

bl_t xoico_compiler_s_is_type( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:159:5
    
    if( xoico_compiler_s_is_group(o,name ) ) return  true;
    if( xoico_compiler_s_is_stamp(o,name ) ) return  true;
    if( bcore_hmap_tp_s_exists(&(o->hmap_external_type),name ) ) return  true;
    return  false;
}

// Assembly:
cmpq %rsi, %rdi
je 0x30941
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movabsq $-0x583f6f93cc340497, %r15 # imm = 0xA7C0906C33CBFB69
leaq 0x16bbcb(%rip), %rax    # 0x19c468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r15, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x308f3
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x308f3
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x308f3
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x308fc
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x30923
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x16bb50(%rip), %rdi    # 0x19c468
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x90(%r12), %rax
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_is_signature
bl_t xoico_compiler_s_is_signature( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:195:5
    
    const xoico* item = xoico_compiler_s_get_const_item(o,name );
    if( item && ( item->_ == ((tp_t)(TYPEOF_xoico_signature_s)) ) ) return  true;
    return  false;
}

// Assembly:
pushq %rax
addq $0x78, %rdi
callq 0xca94f
testq %rax, %rax
je 0x30c48
movq (%rax), %rcx
testq %rcx, %rcx
je 0x30c48
movb $0x1, %al
movabsq $-0x231a5c50432e84f2, %rdx # imm = 0xDCE5A3AFBCD17B0E
cmpq %rdx, (%rcx)
je 0x30c4a
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_is_signature_or_feature
bl_t xoico_compiler_s_is_signature_or_feature( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:202:5
    
    const xoico* item = xoico_compiler_s_get_const_item(o,name );
    if( !item ) return  NULL;
    if( item->_ == ((tp_t)(TYPEOF_xoico_signature_s)) || item->_ == ((tp_t)(TYPEOF_xoico_feature_s)) ) return  true;
    return  false;
}

// Assembly:
pushq %rax
addq $0x78, %rdi
callq 0xca94f
testq %rax, %rax
je 0x30c8a
movq (%rax), %rax
testq %rax, %rax
je 0x30c8a
movq (%rax), %rax
movabsq $-0x231a5c50432e84f2, %rcx # imm = 0xDCE5A3AFBCD17B0E
cmpq %rcx, %rax
sete %cl
movabsq $0x320f5368e957d0a2, %rdx # imm = 0x320F5368E957D0A2
cmpq %rdx, %rax
sete %al
orb %cl, %al
jmp 0x30c8c
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_init_x
void xoico_compiler_s_init_x( xoico_compiler_s* o )
{
    // xoico_compiler.x:302:5
    
    if( o->work_build_time_into_pre_hash )
    {
        o->target_pre_hash = bcore_tp_fold_sc( o->target_pre_hash, __DATE__ );
        o->target_pre_hash = bcore_tp_fold_sc( o->target_pre_hash, __TIME__ );
    }
}

// Assembly:
cmpb $0x1, 0x180(%rdi)
jne 0x30d9c
movabsq $0x100000001b3, %rcx    # imm = 0x100000001B3
movq 0x178(%rdi), %rax
movb $0x41, %r8b
movl $0x1, %edx
leaq 0xff069(%rip), %rsi     # 0x12fdc1
movzbl %r8b, %r8d
xorq %r8, %rax
imulq %rcx, %rax
movb (%rdx,%rsi), %r8b
incq %rdx
cmpq $0xc, %rdx
jne 0x30d58
movb $0x31, %r8b
xorl %edx, %edx
leaq 0xff051(%rip), %rsi     # 0x12fdcd
movzbl %r8b, %r8d
xorq %r8, %rax
imulq %rcx, %rax
movb 0x1(%rdx,%rsi), %r8b
incq %rdx
cmpq $0x8, %rdx
jne 0x30d7c
movq %rax, 0x178(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_is_correctly_signed
bl_t xoico_compiler_is_correctly_signed( const st_s* data )
{
    // xoico_compiler.x:384:1
    
    if( data->size < bcore_strlen( "// XOICO_FILE_SIGNATURE" ) ) return  false;
    
    sz_t idx = data->size - 1;
    while( idx >= 0 && data->data[ idx ] != '/' ) idx--;
    if( idx > 0 ) idx--;
    
    if( st_s_find_sc(data,idx, -1, "// XOICO_FILE_SIGNATURE" ) != idx ) return  false;
    
    tp_t hash = 0;
    sz_t end_idx = st_s_parse_fa(data,idx, -1, "// XOICO_FILE_SIGNATURE #<tp_t*> ", (&(hash)) );
    
    if( end_idx != data->size ) return  false;
    
    data->data[ idx ] = 0;
    
    if( hash != bcore_tp_fold_sc( bcore_tp_init(), data->sc ) ) return  false;
    
    return  true;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq 0x10(%rdi), %r14
leaq 0xff471(%rip), %rdi     # 0x13022f
callq 0xbe963
cmpq %rax, %r14
jb 0x30eb3
movq 0x10(%rbx), %rdx
leaq -0x1(%rdx), %rax
cmpq $-0x1, %rax
movq $-0x1, %rcx
cmovlq %rax, %rcx
leaq 0x1(%rcx), %r14
movq %rdx, %rax
decq %rax
js 0x30e03
movq 0x8(%rbx), %rsi
cmpb $0x2f, -0x1(%rsi,%rdx)
movq %rax, %rdx
jne 0x30dea
leaq 0x1(%rax), %r14
jmp 0x30e06
movq %rcx, %rax
addq $-0x2, %r14
testq %rax, %rax
cmovleq %rax, %r14
leaq 0xff417(%rip), %rcx     # 0x13022f
movq %rbx, %rdi
movq %r14, %rsi
movq $-0x1, %rdx
callq 0x10a9fc
cmpq %r14, %rax
jne 0x30eb3
leaq 0x8(%rsp), %r8
movq $0x0, (%r8)
leaq 0xff401(%rip), %rcx     # 0x130247
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r14, %rsi
movq $-0x1, %rdx
xorl %eax, %eax
callq 0x10d709
cmpq 0x10(%rbx), %rax
jne 0x30eb5
movq 0x8(%rbx), %rax
movb $0x0, (%rax,%r14)
movq 0x8(%rsp), %rax
movq 0x8(%rbx), %rcx
testq %rcx, %rcx
je 0x30ec0
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
movb (%rcx), %sil
testb %sil, %sil
je 0x30ecc
incq %rcx
movabsq $0x100000001b3, %rdx    # imm = 0x100000001B3
movzbl %sil, %r8d
xorq %rdi, %r8
imulq %rdx, %r8
movb (%rcx), %sil
incq %rcx
movq %r8, %rdi
testb %sil, %sil
jne 0x30e98
jmp 0x30ecf
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movabsq $-0x509c42b379fe4821, %r8 # imm = 0xAF63BD4C8601B7DF
jmp 0x30ecf
movq %rdi, %r8
cmpq %r8, %rax
sete %bpl
jmp 0x30eb5