LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_wrap_s_parse
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_wrap_s )

er_t xoico_wrap_s_parse( xoico_wrap_s* o, const xoico_host* host, x_source* source )
{
    // xoico_wrap.x:30:5
    BLM_INIT_LEVEL(0);
    BLM_TRY(x_source_parse_fa(source," " ))
    BLM_TRY(xoico_host_a_parse_name_tp(host,source, (&(o->group_name)) ))
    st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
    BLM_TRY(x_source_parse_fa(source," . #name ", st ))
    if( st->size == 0 ) BLM_TRY(x_source_parse_error_fa(source,"Function name expected." ))
    o->func_name = xoico_host_a_entypeof(host,st->sc );
    BLM_TRY(x_source_parse_fa(source,";" ))
    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 0x100975(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
movq %rsp, %r12
movq %r12, %rdi
callq 0x717f5
andq $0x0, 0x10(%r12)
leaq 0xaa307(%rip), %rsi     # 0xc177d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
jne 0x17517
leaq 0x8(%r14), %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0xdcb4
testq %rax, %rax
jne 0x17517
xorl %eax, %eax
callq 0x8eb65
movq %rsp, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
leaq 0x943e3(%rip), %rsi     # 0xab8a8
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
jne 0x17517
cmpq $0x0, 0x10(%r13)
je 0x17501
movq 0x8(%r13), %rsi
movq %r15, %rdi
callq 0xfbe8
movq %rax, 0x10(%r14)
leaq 0x973d3(%rip), %rsi     # 0xae8c8
movq %rbx, %rdi
xorl %eax, %eax
callq 0xd600
jmp 0x17517
leaq 0x943aa(%rip), %rsi     # 0xab8b2
movq %rbx, %rdi
xorl %eax, %eax
callq 0xd7c4
testq %rax, %rax
je 0x174de
movq %rax, %r12
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_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 %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
addq $0x58, %rdi
callq 0x11c0d
testq %rax, %rax
je 0x1794c
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x30(%r14), %rsi
movq 0xc8(%r14), %rax
movq 0x140(%rax), %rdi
callq 0x1393c
movq %rax, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x13993
// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
addq $0x58, %rdi
callq 0x11c0d
testq %rax, %rax
je 0x179bc
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x30(%r14), %rsi
movq 0xc8(%r14), %rax
movq 0x140(%rax), %rdi
callq 0x1393c
movq %rax, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x139d2
// File: /workspace/github_c_makefile_star2_O2/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 0x17a0f
incq %rcx
cmpb %sil, %dl
je 0x179fa
xorb $0x5f, %sil
xorl %ecx, %ecx
orb %sil, %dl
sete %cl
addq %rcx, %rax
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10039b(%rip), %rax    # 0x117dd0
movq (%rax), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
callq 0x17403
movabsq $-0x47c5da8ff49c4ac4, %rdx # imm = 0xB83A25700B63B53C
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x1743e
movq %rax, %r14
testq %rax, %rax
jne 0x17a94
addq $0x78, %rbx
movq %r15, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0xf6dd
movq %rsp, %rdi
callq 0x71b64
movq %r14, %rax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 0xfff4b(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
movq 0xc8(%rbx), %rax
movq 0x140(%rax), %r14
callq 0x10ebb
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
andw $0x0, 0x28(%rax)
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0xd848
movq %rax, %r12
testq %rax, %rax
jne 0x17f39
leaq 0x58(%rbx), %r12
movq 0x20(%r15), %rsi
movq %r12, %rdi
callq 0x11bab
testq %rax, %rax
js 0x17f23
addq $0xd0, %rbx
movq 0x8(%r15), %rsi
movq %r14, %rdi
callq 0xdad8
leaq 0x93ac4(%rip), %rsi     # 0xab9d5
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xf256
movq %rax, %r12
jmp 0x17f39
movq %r15, %rdi
callq 0x6026d
movq %r12, %rdi
movq %rax, %rsi
callq 0xf6dd
xorl %r12d, %r12d
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r12, %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_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 0xffe66(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
movq 0xc8(%rbx), %rax
movq 0x140(%rax), %r14
callq 0x10ebb
movabsq $-0x58b74b3ddbc4f8b6, %rdx # imm = 0xA748B4C2243B074A
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
movw $0x1, 0x28(%rax)
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0xd848
movq %rax, %r12
testq %rax, %rax
jne 0x1801f
leaq 0x58(%rbx), %r12
movq 0x20(%r15), %rsi
movq %r12, %rdi
callq 0x11bab
testq %rax, %rax
js 0x18009
addq $0xd0, %rbx
movq 0x8(%r15), %rsi
movq %r14, %rdi
callq 0xdad8
leaq 0x93a23(%rip), %rsi     # 0xaba1a
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xf256
movq %rax, %r12
jmp 0x1801f
movq %r15, %rdi
callq 0x6026d
movq %r12, %rdi
movq %rax, %rsi
callq 0xf6dd
xorl %r12d, %r12d
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r12, %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_stamp_s_expand_declaration
er_t xoico_stamp_s_expand_declaration( const xoico_stamp_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_stamp.x:946:1
    
    sc_t sc_name = o->st_name.sc;
    
    x_sink_push_fa(sink,"#rn{ }##define TYPEOF_#<sc_t> 0x#pl16'0'{#X<tp_t>}ull\n", indent, sc_name, btypeof( sc_name ) );
    
    x_sink_push_fa(sink,"#rn{ }##define BETH_EXPAND_ITEM_#<sc_t>", indent, sc_name, sc_name );
    x_sink_push_fa(sink," \\\n#rn{ }  BCORE_DECLARE_OBJECT( #<sc_t> )", indent, sc_name );
    x_sink_push_fa(sink," \\\n" );
    
    bcore_self_s_struct_body_to_sink_newline_escaped( o->self, indent + 2, ( bcore_sink* )sink );
    x_sink_push_fa(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 + 2, sink )) // expands all prototypes
    }}{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_declaration(func,((const xoico_host*)(o)), indent + 2, sink )) // only expands static inline functions
    
    }}x_sink_push_fa(sink,"\n" );
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq %rdx, %r14
movq %rdi, %r15
movq 0x10(%rdi), %r12
movq %r12, %rdi
callq 0x10aad
leaq 0x912a1(%rip), %rsi     # 0xaa0a9
xorl %r13d, %r13d
movq %rbx, %rdi
movq %r14, %rdx
movq %r12, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xdd43
leaq 0x93298(%rip), %rsi     # 0xac0bd
movq %rbx, %rdi
movq %r14, %rdx
movq %r12, %rcx
movq %r12, %r8
xorl %eax, %eax
callq 0xdd43
leaq 0x932a6(%rip), %rsi     # 0xac0e5
movq %rbx, %rdi
movq %r14, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0xdd43
leaq 0xa8a20(%rip), %rsi     # 0xc1876
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
movq 0x50(%r15), %rdi
addq $0x2, %r14
movq %r14, %rsi
movq %rbx, %rdx
callq 0x635fa
leaq 0x95a4e(%rip), %rsi     # 0xae8c8
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
cmpq 0x68(%r15), %r13
jae 0x18ea5
movq 0x60(%r15), %rax
movq (%rax,%r13,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x11791
incq %r13
jmp 0x18e84
xorl %r13d, %r13d
cmpq 0x68(%r15), %r13
jae 0x18ee0
movq 0x60(%r15), %rax
movq (%rax,%r13,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x11871
incq %r13
testq %rax, %rax
je 0x18ea8
movq %rax, %r12
leaq 0xfeefa(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x18ef4
leaq 0xad6e4(%rip), %rsi     # 0xc65cb
xorl %r12d, %r12d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
movq %r12, %rax
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_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 %rsi, %rbx
movq %rdi, %r15
movq 0xc8(%rdi), %rax
movq 0x140(%rax), %rax
movq %rax, 0x18(%rsp)
xorl %r12d, %r12d
movq %rsi, 0x20(%rsp)
movq 0x18(%rsp), %r13
cmpq 0x68(%r15), %r12
jae 0x193d9
movq 0x60(%r15), %rax
movq (%rax,%r12,8), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x10ef6
testb %al, %al
je 0x193d4
movq 0x40(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r13, %rdi
callq 0xdad8
movq %rax, %rbx
movq 0x10(%r15), %r14
movq 0x8(%rbp), %rsi
movq %r13, %rdi
callq 0xdad8
movq 0x8(%rsp), %rdi
leaq 0x919ff(%rip), %rsi     # 0xaadb9
movq 0x10(%rsp), %rdx
movq %rbx, %rcx
movq 0x20(%rsp), %rbx
movq %r14, %r8
movq %rax, %r9
xorl %eax, %eax
callq 0xdd43
incq %r12
jmp 0x1936e
movq 0x10(%r15), %rcx
leaq 0x92da4(%rip), %rsi     # 0xac188
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0xdd43
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_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_get_hash
tp_t xoico_source_s_get_hash( const xoico_source_s* o )
{
    // xoico_source.x:54:5
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; hash = bcore_tp_fold_tp( hash, xoico_group_s_get_hash(e) );}}
    return  hash;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0xe705
movq %rax, %r14
xorl %r15d, %r15d
cmpq 0x70(%rbx), %r15
jae 0x19786
movq 0x68(%rbx), %rax
movq (%rax,%r15,8), %rdi
callq 0x13a6b
movq %r14, %rdi
movq %rax, %rsi
callq 0xe705
movq %rax, %r14
incq %r15
jmp 0x19760
movq %r14, %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_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 0x19897
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
leaq 0xacdbb(%rip), %rsi     # 0xc65cb
xorl %ebx, %ebx
movq %rcx, %rdi
xorl %eax, %eax
callq 0xdd43
pushq $0x74
popq %rcx
subq %r15, %rcx
testq %rcx, %rcx
cmovleq %rbx, %rcx
leaq 0x929bb(%rip), %rsi     # 0xac1eb
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x30(%r12), %rcx
movq 0x50(%r12), %r8
leaq 0x929af(%rip), %rsi     # 0xac1fd
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xdd43
xorl %ebp, %ebp
cmpq 0x70(%r12), %rbp
jae 0x19899
movq 0x68(%r12), %rax
movq (%rax,%rbp,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x169cc
incq %rbp
testq %rax, %rax
je 0x1985d
movq %rax, %r13
leaq 0xfe546(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r13, %rbx
jmp 0x19899
xorl %ebx, %ebx
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_O2/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 0x19d33
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
leaq 0xac91f(%rip), %rsi     # 0xc65cb
xorl %ebx, %ebx
movq %rcx, %rdi
xorl %eax, %eax
callq 0xdd43
pushq $0x50
popq %rcx
subq %r15, %rcx
testq %rcx, %rcx
cmovleq %rbx, %rcx
leaq 0x9259d(%rip), %rsi     # 0xac269
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xdd43
movq 0x30(%r12), %rcx
movq 0x50(%r12), %r8
leaq 0x92513(%rip), %rsi     # 0xac1fd
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xdd43
xorl %ebp, %ebp
cmpq 0x70(%r12), %rbp
jae 0x19d35
movq 0x68(%r12), %rax
movq (%rax,%rbp,8), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x170bc
incq %rbp
testq %rax, %rax
je 0x19cf9
movq %rax, %r13
leaq 0xfe0aa(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r13, %rbx
jmp 0x19d35
xorl %ebx, %ebx
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_O2/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 0x1a8a1
movq %rdi, %r14
movb $0x1, 0xf8(%rdi)
xorl %r15d, %r15d
cmpq 0xe8(%r14), %r15
jae 0x1a897
movq 0xe0(%r14), %rax
movq 0x138(%r14), %rcx
movq (%rax,%r15,8), %rax
movq 0x8(%rcx), %rcx
movq (%rcx,%rax,8), %rdi
callq 0x1a849
incq %r15
testb %al, %al
je 0x1a866
jmp 0x1a8a1
movb $0x0, 0xf8(%r14)
xorl %ebx, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x138(%rdi), %rdi
callq 0x1a8da
movq %rbx, %rdi
callq 0x1a849
movl %eax, %ebp
movq 0x138(%rbx), %rdi
callq 0x1a8da
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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 0xfd4b9(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
movq 0x138(%r14), %rax
movq 0x10(%rax), %r13
movq %r14, (%rsp)
addq $0xd8, %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x59190
movq %rbx, %rdi
callq 0x590c7
movabsq $0x3d19b4fc81c235e4, %rdx # imm = 0x3D19B4FC81C235E4
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x59413
movq %rax, %r15
leaq 0x8f910(%rip), %rbx     # 0xaa290
xorl %ebp, %ebp
cmpq 0x10(%r15), %rbp
jae 0x1a9e0
movq 0x8(%r15), %rax
testq %rbp, %rbp
je 0x1a99e
movq (%rax,%rbp,8), %r12
cmpq -0x8(%rax,%rbp,8), %r12
jne 0x1a9a1
jmp 0x1a9db
movq (%rax), %r12
testq %r12, %r12
js 0x1a9ab
cmpq %r13, %r12
jl 0x1a9d0
leaq 0x8fc95(%rip), %rdi     # 0xaa647
leaq 0x919e7(%rip), %rsi     # 0xac3a0
leaq 0x919fa(%rip), %rdx     # 0xac3ba
movq %rbx, %rcx
movl $0x14e3, %r8d           # imm = 0x14E3
xorl %eax, %eax
callq 0x5ffac
movq %r14, %rdi
movq %r12, %rsi
callq 0x59254
incq %rbp
jmp 0x1a982
movq (%rsp), %rbx
movq %rbx, %rdi
callq 0x1a8a9
testb %al, %al
je 0x1aa11
movq 0x10(%rbx), %rdx
leaq 0x919df(%rip), %rsi     # 0xac3da
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
xorl %eax, %eax
callq 0x605f4
movq %rax, %rbx
jmp 0x1aa13
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/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 0xfd38e(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x717f5
andq $0x0, 0x10(%rbx)
xorl %eax, %eax
callq 0x3091f
movabsq $-0x4c00d686e3307dff, %rdx # imm = 0xB3FF29791CCF8201
movq %rbx, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
movq %rax, %rdi
callq 0x5f28a
leaq 0x91984(%rip), %rsi     # 0xac409
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
movq %r15, %rdi
movq %r14, %rsi
callq 0x5f2e2
leaq 0x9197a(%rip), %rsi     # 0xac41b
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
movq %rbx, %rdi
callq 0x71b64
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_to_be_modified
bl_t xoico_target_s_to_be_modified( const xoico_target_s* o )
{
    // xoico_target.x:498:1
    BLM_INIT_LEVEL(0);
    if( o->compiler->always_expand ) BLM_RETURNV(bl_t, true)
    
    bl_t to_be_modified = true;
    
    tp_t target_hash = xoico_target_s_get_hash(o);
    
    st_s* file = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create_fa("#<sc_t>.state", o->output_path.sc )));
    if( bcore_file_exists(file->sc ) )
    {
        st_s* key_defined = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create_fa("##?w'HKEYOF_#<sc_t>'", o->name.sc )));
        x_source* source =((x_source*)( ((bcore_source*)BLM_LEVEL_A_PUSH(0,bcore_file_open_source(file->sc )))));
        while( !x_source_eos(source) )
        {
            if( x_source_inspect_char(source) == 'H' )
            {
                if( x_source_parse_bl(source,key_defined->sc ) )
                {
                    tp_t key_val = 0;
                    BLM_TRY_EXIT(x_source_parse_fa(source," #<tp_t*>", &key_val ))
                    to_be_modified = ( key_val != target_hash );
                    break;
                }
            }
            else
            {
                x_source_get_char(source);
            }
        }
    }
    
    BLM_RETURNV(bl_t, to_be_modified)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdi, %r15
leaq 0xfc5de(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x717f5
andq $0x0, 0x10(%rbx)
movq 0x138(%r15), %rax
movb $0x1, %bpl
cmpb $0x0, 0x183(%rax)
jne 0x1b923
movabsq $-0x503db0e6e1c2e704, %r14 # imm = 0xAFC24F191E3D18FC
movq %r15, %rdi
callq 0x1a699
movq %rax, %rbx
movq 0x80(%r15), %rsi
leaq 0x914d4(%rip), %rdi     # 0xacd15
xorl %eax, %eax
callq 0x8ec7d
leaq 0x10(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
movq 0x8(%rax), %rdi
callq 0x60eaa
testb %al, %al
je 0x1b923
movq 0x10(%r15), %rsi
leaq 0x914aa(%rip), %rdi     # 0xacd23
xorl %eax, %eax
callq 0x8ec7d
leaq 0x10(%rsp), %r15
movq %r15, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq 0x8(%r12), %rdi
callq 0x61037
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x71a90
movq %rax, %r15
movq %r15, %rdi
callq 0xe626
testb %al, %al
jne 0x1b923
movq %r15, %rdi
callq 0x1048a
cmpb $0x48, %al
jne 0x1b8dc
movq 0x8(%r14), %rsi
movq %r15, %rdi
callq 0xe5ff
testb %al, %al
je 0x1b8b2
jmp 0x1b8e6
movq %r15, %rdi
callq 0x104a2
jmp 0x1b8b2
leaq 0x8(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x8f94e(%rip), %rsi     # 0xab244
movq %r15, %rdi
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
je 0x1b91a
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x71b64
movl %r14d, %edi
callq 0x2dc20
cmpq %rbx, 0x8(%rsp)
setne %bpl
leaq 0x10(%rsp), %rdi
callq 0x71b64
movl %ebp, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_target_s_expand_phase1
er_t xoico_target_s_expand_phase1( xoico_target_s* o, bl_t* p_modified )
{
    // xoico_target.x:536:1
    BLM_INIT_LEVEL(0);
    st_s_attach( &(o->target_h ),  NULL);
    st_s_attach( &(o->target_c ),  NULL);
    st_s_attach( &(o->target_state ),  NULL);
    o->modified = false;
    
    if( xoico_target_s_to_be_modified(o) )
    {
        o->target_h = st_s_create();
        o->target_c = st_s_create();
        o->target_state = st_s_create();
        if( !o->compiler->dry_run )
        {
            BLM_TRY(xoico_target_s_expand_h(o,0,((x_sink*)( o->target_h)), (&(o->body_signature_h)) ))
            BLM_TRY(xoico_target_s_expand_c(o,0,((x_sink*)( o->target_c)), (&(o->body_signature_c)) ))
            BLM_TRY(xoico_target_s_expand_state(o,((x_sink*)(o->target_state ))))
        }
        else
        {
            st_s* buf = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
            BLM_TRY(xoico_target_s_expand_h(o,0,((x_sink*)( buf)), (&(o->body_signature_h)) ))
            BLM_TRY(xoico_target_s_expand_c(o,0,((x_sink*)( buf)), (&(o->body_signature_c)) ))
            BLM_TRY(xoico_target_s_expand_state(o,((x_sink*)(buf ))))
        }
        o->modified = true;
    }
    
    if( p_modified ) (*(p_modified)) = o->modified;
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0xfc47c(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
leaq 0x100(%r14), %rdi
xorl %esi, %esi
callq 0x18dc1
leaq 0x108(%r14), %rdi
xorl %esi, %esi
callq 0x18dc1
leaq 0x110(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x18dc1
movb $0x0, 0xf9(%r14)
movq %r14, %rdi
callq 0x1b7dc
testb %al, %al
je 0x1ba94
xorl %eax, %eax
callq 0x8eb65
movq %rax, 0x100(%r14)
xorl %eax, %eax
callq 0x8eb65
movq %rax, 0x108(%r14)
xorl %eax, %eax
callq 0x8eb65
movq %rax, 0x110(%r14)
movq 0x138(%r14), %rax
cmpb $0x0, 0x184(%rax)
je 0x1ba3f
xorl %eax, %eax
callq 0x8eb65
leaq 0x8(%rsp), %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r15
leaq 0x118(%r14), %rcx
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x1ad57
testq %rax, %rax
jne 0x1ba79
leaq 0x120(%r14), %rcx
movq %r14, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x1b0ce
testq %rax, %rax
jne 0x1ba79
jmp 0x1ba81
movq 0x100(%r14), %rdx
leaq 0x118(%r14), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1ad57
testq %rax, %rax
jne 0x1ba79
movq 0x108(%r14), %rdx
leaq 0x120(%r14), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1b0ce
testq %rax, %rax
je 0x1ba7e
movq %rax, %r12
jmp 0x1baa5
movq (%r15), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x1b7ab
movb $0x1, 0xf9(%r14)
testq %rbx, %rbx
je 0x1baa2
movb 0xf9(%r14), %al
movb %al, (%rbx)
xorl %r12d, %r12d
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r12, %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_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 %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0xfbe27(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x717f5
andq $0x0, 0x10(%rbx)
movq 0x8(%r14), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0x10500
movq %rax, %r12
movq %r15, %rdi
callq 0x61057
movq %rbx, %rdi
xorl %esi, %esi
movq %rax, %rdx
callq 0x71a90
movq %rax, %r15
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %rax, %rdi
callq 0x1b07c
leaq 0x90d90(%rip), %rsi     # 0xacd93
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xdd43
movq %rbx, %rdi
callq 0x71b64
xorl %eax, %eax
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_compiler_s_is_type
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:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
addq $0x50, %rdi
callq 0x68f9b
testb %al, %al
jne 0x1c1ba
movq %r14, %rdi
movq %rbx, %rsi
callq 0x16062
testb %al, %al
je 0x1c1c4
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r14
retq
addq $0xc8, %r14
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x6a674
// File: /workspace/github_c_makefile_star2_O2/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
callq 0x162bb
testq %rax, %rax
je 0x1c287
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 0x1c289
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O2/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 0x90ec4(%rip), %rdi     # 0xad22f
callq 0x60379
cmpq %rax, %r14
jb 0x1c40d
movq 0x10(%rbx), %rcx
decq %rcx
movq %rcx, %rax
testq %rcx, %rcx
js 0x1c396
movq 0x8(%rbx), %rdx
leaq -0x1(%rax), %rcx
cmpb $0x2f, (%rdx,%rax)
jne 0x1c380
leaq -0x1(%rax), %r14
testq %rax, %rax
cmovleq %rax, %r14
leaq 0x90e87(%rip), %rcx     # 0xad22f
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8f64e
cmpq %r14, %rax
jne 0x1c40d
leaq 0x8(%rsp), %r8
andq $0x0, (%r8)
leaq 0x90e7c(%rip), %rcx     # 0xad247
xorl %ebp, %ebp
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x91e11
cmpq 0x10(%rbx), %rax
jne 0x1c40f
movq 0x8(%rbx), %rax
movb $0x0, (%rax,%r14)
movq 0x8(%rsp), %r14
movq 0x8(%rbx), %rsi
movabsq $-0x340d631b7bdddcdb, %rdi # imm = 0xCBF29CE484222325
callq 0x10500
cmpq %rax, %r14
sete %bpl
jmp 0x1c40f
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_body_signature
tp_t xoico_compiler_body_signature( const st_s* data )
{
    // xoico_compiler.x:409:1
    
    // search from bottom upwards ...
    sz_t idx = 0;
    if( ( idx = st_s_find_sc(data,data->size, 0, "// XOICO_BODY_SIGNATURE" ) ) == data->size ) return  0;
    
    tp_t hash = 0;
    st_s_parse_fa(data,idx, -1, "// XOICO_BODY_SIGNATURE #<tp_t*>", (&(hash)) );
    
    return  hash;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rsi
leaq 0x90e3d(%rip), %rcx     # 0xad269
xorl %r14d, %r14d
xorl %edx, %edx
callq 0x8f64e
cmpq 0x10(%rbx), %rax
je 0x1c460
movq %rsp, %r14
andq $0x0, (%r14)
leaq 0x90e37(%rip), %rcx     # 0xad281
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %rax, %rsi
movq %r14, %r8
xorl %eax, %eax
callq 0x91e11
movq (%r14), %r14
movq %r14, %rax
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_compiler_s_to_be_modified
bl_t xoico_compiler_s_to_be_modified( const xoico_compiler_s* o )
{
    // xoico_compiler.x:536:1
    
    for(sz_t i = 0; i < o->size; i++ )
    {
        if( xoico_target_s_to_be_modified(o->data[ i ]) ) return  true;
    }
    return  false;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
xorl %ecx, %ecx
movq %rcx, %r14
movq 0x10(%rbx), %r15
cmpq %r15, %rcx
jae 0x1c752
movq 0x8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x1b7dc
leaq 0x1(%r14), %rcx
testb %al, %al
je 0x1c731
cmpq %r15, %r14
setb %al
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_expand
er_t xoico_compiler_s_expand( xoico_compiler_s* o, bl_t* p_modified )
{
    // xoico_compiler.x:548:1
    
    bl_t modified = false;
    
    BLM_TRY(xoico_compiler_s_expand_setup(o,((const xoico_host*)(o ))))
    for(sz_t i = 0; i < o->size; i++ ) BLM_TRY(xoico_target_s_expand_phase1(o->data[i],(&(modified)) ))
    for(sz_t i = 0; i < o->size; i++ ) BLM_TRY(xoico_target_s_expand_phase2(o->data[i],(&(modified)) ))
    
    if( p_modified ) (*(p_modified)) = modified;
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movb $0x0, 0xf(%rsp)
callq 0x1c6d2
testq %rax, %rax
jne 0x1c7ce
xorl %r13d, %r13d
leaq 0xf(%rsp), %r12
cmpq 0x10(%r14), %r13
jae 0x1c7a8
movq 0x8(%r14), %rax
movq (%rax,%r13,8), %rdi
movq %r12, %rsi
callq 0x1b93c
incq %r13
testq %rax, %rax
je 0x1c788
jmp 0x1c7ce
xorl %r13d, %r13d
leaq 0xf(%rsp), %r12
cmpq 0x10(%r14), %r13
jae 0x1c7f1
movq 0x8(%r14), %rax
movq (%rax,%r13,8), %rdi
movq %r12, %rsi
callq 0x1babe
incq %r13
testq %rax, %rax
je 0x1c7b0
movq %rax, %r15
leaq 0xfb5f8(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r15, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
testq %rbx, %rbx
je 0x1c7fc
movb 0xf(%rsp), %al
movb %al, (%rbx)
xorl %r15d, %r15d
jmp 0x1c7e0
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_get_self
bl_t xoico_compiler_s_get_self( const xoico_compiler_s* o, tp_t type, const bcore_self_s** self )
{
    // xoico_compiler.x:562:1
    
    const xoico* item = xoico_compiler_s_get_const_item(o,type );
    if( !item ) return  false;
    
    if( item->_ == ((tp_t)(TYPEOF_xoico_stamp_s)) )
    {
        const xoico_stamp_s* stamp = ((const xoico_stamp_s*)(item));
        if( self ) (*(self)) = stamp->self;
        return  true;
    }
    
    return  false;
}

// Assembly:
pushq %rbx
movq %rdx, %rbx
callq 0x162bb
testq %rax, %rax
je 0x1c831
movq %rax, %rcx
movabsq $0x12d01d78049fae7, %rax # imm = 0x12D01D78049FAE7
cmpq %rax, (%rcx)
jne 0x1c831
movb $0x1, %al
testq %rbx, %rbx
je 0x1c833
movq 0x50(%rcx), %rcx
movq %rcx, (%rbx)
jmp 0x1c833
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_get_type_info
bl_t xoico_compiler_s_get_type_info( const xoico_compiler_s* o, tp_t type, xoico_compiler_type_info_s* info )
{
    // xoico_compiler.x:579:1
    
    const xoico* item = xoico_compiler_s_get_const_item(o,type );
    if( !item ) return  false;
    ASSERT( info );
    if( item->_ == ((tp_t)(TYPEOF_xoico_stamp_s)) || item->_ == ((tp_t)(TYPEOF_xoico_group_s)) )
    {
        info->item = ((xoico*)(item));
        info->typespec.type = type;
        return  true;
    }
    
    return  false;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
callq 0x162bb
testq %rax, %rax
je 0x1c8a8
movq %rax, %r15
testq %rbx, %rbx
jne 0x1c87b
leaq 0x8ddee(%rip), %rdi     # 0xaa647
leaq 0x908e3(%rip), %rsi     # 0xad143
leaq 0x908c2(%rip), %rdx     # 0xad129
leaq 0x8da22(%rip), %rcx     # 0xaa290
movl $0x1846, %r8d           # imm = 0x1846
xorl %eax, %eax
callq 0x5ffac
movq (%r15), %rax
movabsq $0xc561a9d047fe9d3, %rcx # imm = 0xC561A9D047FE9D3
cmpq %rcx, %rax
je 0x1c89c
movabsq $0x12d01d78049fae7, %rcx # imm = 0x12D01D78049FAE7
cmpq %rcx, %rax
jne 0x1c8a8
movq %r15, 0x38(%rbx)
movq %r14, 0x10(%rbx)
movb $0x1, %al
jmp 0x1c8aa
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_get_type_array_element_info
bl_t xoico_compiler_s_get_type_array_element_info( const xoico_compiler_s* o, tp_t type, xoico_compiler_element_info_s* info )
{
    // xoico_compiler.x:737:1
    
    ASSERT( info );
    
    const xoico* xoico_item = xoico_compiler_s_get_const_item(o,type );
    if( !xoico_item ) return  false;
    bl_t success = false;
    info->type_info.item = ((xoico*)(xoico_item));
    
    if( xoico_item->_ == ((tp_t)(TYPEOF_xoico_stamp_s)) )
    {
        const xoico_stamp_s* stamp = ((const xoico_stamp_s*)(xoico_item));
        const bcore_self_item_s* self_item = bcore_self_s_get_first_anonymous_array_item( stamp->self );
        if( self_item )
        {
            info->type_info.typespec.type = self_item->type;
            info->type_info.typespec.indirection = bcore_flect_caps_get_indirection( self_item->caps );
            success = true;
        }
    }
    
    return  success;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
testq %rdx, %rdx
jne 0x1cc46
leaq 0x8da23(%rip), %rdi     # 0xaa647
leaq 0x90518(%rip), %rsi     # 0xad143
leaq 0x9057d(%rip), %rdx     # 0xad1af
leaq 0x8d657(%rip), %rcx     # 0xaa290
movl $0x18e2, %r8d           # imm = 0x18E2
xorl %eax, %eax
callq 0x5ffac
movq %r15, %rdi
movq %r14, %rsi
callq 0x162bb
testq %rax, %rax
je 0x1cc8e
movq %rax, 0x40(%rbx)
movabsq $0x12d01d78049fae7, %rcx # imm = 0x12D01D78049FAE7
cmpq %rcx, (%rax)
jne 0x1cc8e
movq 0x50(%rax), %rdi
callq 0x63983
testq %rax, %rax
je 0x1cc8e
movq (%rax), %rcx
movq %rcx, 0x18(%rbx)
movl 0x10(%rax), %edi
callq 0x610cc
movq %rax, 0x30(%rbx)
movb $0x1, %al
jmp 0x1cc90
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_update_target_files
er_t xoico_compiler_s_update_target_files( xoico_compiler_s* o, bl_t* p_modified )
{
    // xoico_compiler.x:768:1
    
    bl_t modified = false;
    bl_t verbosity = o->verbosity;
    f3_t time = 0;
    
    er_t er = 0;
    ABS_TIME_OF( er = xoico_compiler_s_expand(o,(&(modified)) ), time );
    BLM_TRY(er )
    
    if( modified )
    {
        if( verbosity > 0 ) bcore_msg_fa( "XOICO: Expanded in #<f3_t> sec.\n", time );
        if( verbosity > 0 ) bcore_msg_fa( "XOICO: Files were updated. Rebuild is necessary.\n" );
    }
    
    if( p_modified ) (*(p_modified)) = modified;
    
    return  er;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x7(%rsp), %r15
movb $0x0, (%r15)
movq 0x188(%rdi), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0xd140
movq %r14, %rdi
movq %r15, %rsi
callq 0x1c75e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xd140
testq %r14, %r14
je 0x1ccf3
leaq 0xfb0e7(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x1cd50
cmpb $0x1, 0x7(%rsp)
jne 0x1cd45
testq %r12, %r12
je 0x1cd45
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq 0x18(%rsp), %rax
cvtsi2sd %rax, %xmm1
subq 0x20(%rsp), %rcx
cvtsi2sd %rcx, %xmm0
mulsd 0x8d343(%rip), %xmm0    # 0xaa068
addsd %xmm1, %xmm0
leaq 0x904ac(%rip), %rdi     # 0xad1dc
movb $0x1, %al
callq 0x5fc08
leaq 0x904bf(%rip), %rdi     # 0xad1fd
xorl %eax, %eax
callq 0x5fc08
testq %rbx, %rbx
je 0x1cd50
movb 0x7(%rsp), %al
movb %al, (%rbx)
movq %r14, %rax
addq $0x28, %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_che_s_is_builtin_func
bl_t xoico_che_s_is_builtin_func( const xoico_che_s* o, tp_t tp_identifier )
{
    // xoico_che_builtin.x:21:1
    
    switch( tp_identifier )
    {
        case TYPEOF_cast:
        case TYPEOF_scope:
        case TYPEOF_t_scope:
        case TYPEOF_fork:
        case TYPEOF_try:
            return  true;
    
        default:
            return  false;
    }
}

// Assembly:
movb $0x1, %al
movabsq $-0x4aa18f6f1786b6b2, %rcx # imm = 0xB55E7090E879494E
cmpq %rcx, %rsi
je 0x1cec4
movabsq $-0x3ef8b00418101bb5, %rcx # imm = 0xC1074FFBE7EFE44B
cmpq %rcx, %rsi
je 0x1cec4
movabsq $-0x3e306737b766a6d0, %rcx # imm = 0xC1CF98C848995930
cmpq %rcx, %rsi
je 0x1cec4
movabsq $-0x22e2f286f3d0e77f, %rcx # imm = 0xDD1D0D790C2F1881
cmpq %rcx, %rsi
je 0x1cec4
movabsq $0x570ac119447423ee, %rcx # imm = 0x570AC119447423EE
cmpq %rcx, %rsi
je 0x1cec4
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_is_control_name
bl_t xoico_che_s_is_control_name( const xoico_che_s* o, tp_t tp_identifier )
{
    // xoico_che_control.x:21:1
    
    switch( tp_identifier )
    {
        case TYPEOF_for:
        case TYPEOF_foreach:
        case TYPEOF_if:
        case TYPEOF_else:
        case TYPEOF_break:
        case TYPEOF_while:
        case TYPEOF_do:
        case TYPEOF_switch:
        case TYPEOF_case:
        case TYPEOF_default:
        case TYPEOF_return:
        case TYPEOF_continue:
        case TYPEOF_goto:
            return  true;
    
        default:
            return  false;
    }
}

// Assembly:
movb $0x1, %al
movabsq $-0x752f615fa8a3cbc7, %rcx # imm = 0x8AD09EA0575C3439
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x6c48a6e2143831c8, %rcx # imm = 0x93B7591DEBC7CE38
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x62bf2e8df11518ba, %rcx # imm = 0x9D40D1720EEAE746
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x5a57853a4f4c864f, %rcx # imm = 0xA5A87AC5B0B379B1
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x4aa19e6f1786d02f, %rcx # imm = 0xB55E6190E8792FD1
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x3a38467cc88352a1, %rcx # imm = 0xC5C7B983377CAD5F
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x31785c77a7eed692, %rcx # imm = 0xCE87A3885811296E
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x2d402a5332e6995c, %rcx # imm = 0xD2BFD5ACCD1966A4
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x234d87e701262570, %rcx # imm = 0xDCB27818FED9DA90
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $-0x14525ae979df3a02, %rcx # imm = 0xEBADA5168620C5FE
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $0x8915907b53bb494, %rcx # imm = 0x8915907B53BB494
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $0x8b73007b55c3e26, %rcx # imm = 0x8B73007B55C3E26
cmpq %rcx, %rsi
je 0x1cf9c
movabsq $0x7f2b6c605332dd30, %rcx # imm = 0x7F2B6C605332DD30
cmpq %rcx, %rsi
je 0x1cf9c
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_nameof
sc_t xoico_che_s_nameof( xoico_che_s* o, tp_t type )
{
    // xoico_che.x:286:5
    
    sc_t name = bcore_hmap_name_s_get_sc(&(o->hmap_name),type );
    if( !name ) name = xoico_compiler_s_nameof(o->compiler,type );
    return  name;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
addq $0xb0, %rdi
callq 0x6f4bc
testq %rax, %rax
je 0x1cfc0
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x18(%r14), %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xdad8
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_init_level0
void xoico_che_s_init_level0( xoico_che_s* o )
{
    // xoico_che.x:293:5
    
    xoico_che_stack_block_s_clear(&(o->stack_block));
    xoico_che_stack_block_s_push(&(o->stack_block));
    o->block_level = 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x88(%rdi), %r14
addq $0x90, %rdi
callq 0x13fdc
movq %r14, %rdi
callq 0x1d002
andq $0x0, 0x28(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq