LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_inc_block
void xoico_che_s_inc_block( xoico_che_s* o )
{
    // xoico_che.x:300:5
    
    xoico_che_stack_block_s_push(&(o->stack_block));
    o->block_level++;
    xoico_che_s_stack_block_get_top_unit(o)->level = o->block_level;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
addq $0x88, %rdi
callq 0x1d002
movq 0x28(%rbx), %rax
movq 0x98(%rbx), %rcx
incq %rax
movq %rax, 0x28(%rbx)
movq 0xa0(%rbx), %rdx
movq -0x8(%rcx,%rdx,8), %rcx
movq %rax, 0x8(%rcx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_dec_block
void xoico_che_s_dec_block( xoico_che_s* o )
{
    // xoico_che.x:307:5
    
    xoico_che_stack_var_s_pop_level(&(o->stack_var),o->block_level );
    o->block_level--;
    ASSERT( o->block_level >= 0 );
    xoico_che_stack_block_s_pop(&(o->stack_block));
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
addq $0x38, %rdi
movq 0x28(%rbx), %rsi
callq 0x1d0cb
movq 0x28(%rbx), %rax
leaq -0x1(%rax), %rcx
movq %rcx, 0x28(%rbx)
testq %rax, %rax
jg 0x1d0bb
leaq 0x8d5ae(%rip), %rdi     # 0xaa647
leaq 0x90202(%rip), %rsi     # 0xad2a2
leaq 0x9020f(%rip), %rdx     # 0xad2b6
leaq 0x8d1e2(%rip), %rcx     # 0xaa290
movl $0x19a7, %r8d           # imm = 0x19A7
xorl %eax, %eax
callq 0x5ffac
addq $0x88, %rbx
movq %rbx, %rdi
popq %rbx
jmp 0x1d112
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_stack_var_s_pop_level
xoico_che_stack_var_s* xoico_che_stack_var_s_pop_level( xoico_che_stack_var_s* o, sz_t level )
{
    // xoico_che.x:70:9
    
    sz_t size = o->adl.size;
    while( size > 0 && o->adl.data[ size - 1 ]->level >= level ) size--;
    x_array_set_size(((x_array*)(&(o->adl))),size );
    xoico_che_stack_var_s_rehash_names(o);
    return  o;
}

// Assembly:
pushq %rbx
movq %rsi, %rax
movq %rdi, %rbx
movq 0x18(%rdi), %rcx
movq %rcx, %rsi
sarq $0x3f, %rsi
andq %rcx, %rsi
testq %rcx, %rcx
jle 0x1d0fc
movq 0x10(%rbx), %rdx
movq -0x8(%rdx,%rcx,8), %rdx
cmpq %rax, 0x8(%rdx)
jl 0x1d0f9
decq %rcx
jmp 0x1d0e0
movq %rcx, %rsi
leaq 0x8(%rbx), %rdi
callq 0x159b0
movq %rbx, %rdi
callq 0x26de0
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_push_typedecl
void xoico_che_s_push_typedecl( xoico_che_s* o, const xoico_typespec_s* typespec, tp_t name )
{
    // xoico_che.x:332:5
    BLM_INIT_LEVEL(0);
    xoico_che_stack_var_unit_s* unit = ((xoico_che_stack_var_unit_s*)BLM_LEVEL_T_PUSH(0,xoico_che_stack_var_unit_s,xoico_che_stack_var_unit_s_create()));
    unit->level = o->block_level;
    unit->name = name;
    xoico_typespec_s_copy(&(unit->typespec),typespec );
    xoico_che_stack_var_s_push_unit(&(o->stack_var),unit );
    BLM_DOWN();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
leaq 0xfac24(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x10(%rsp), %r13
leaq 0x8(%rsp), %rbx
movq %r13, (%rbx)
movq %r13, %rdi
callq 0x717f5
andq $0x0, 0x10(%r13)
callq 0x26cb1
movabsq $-0x6405245fa6b4cb9a, %rdx # imm = 0x9BFADBA0594B3466
movq %r13, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
movq 0x28(%r14), %rax
movq %rax, 0x8(%r13)
movq %r12, 0x10(%r13)
leaq 0x18(%r13), %rdi
movq %r15, %rsi
callq 0xe075
addq $0x38, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x1d225
movq %rbx, %rdi
callq 0x71b48
addq $0x40, %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_che_s_typespec_to_sink
void xoico_che_s_typespec_to_sink( xoico_che_s* o, const xoico_typespec_s* typespec, x_sink* sink )
{
    // xoico_che.x:342:5
    BLM_INIT_LEVEL(0);
    xoico_che_result_arr_s* result = ((xoico_che_result_arr_s*)BLM_LEVEL_T_PUSH(0,xoico_che_result_arr_s,xoico_che_result_arr_s_create()));
    BLM_TRY_EXIT(xoico_che_s_push_typespec(o,typespec,((xoico_che_result*)( result ))))
    BLM_TRY_EXIT(xoico_che_result_arr_s_to_sink(result,sink ))
    BLM_DOWN();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r12
leaq 0xfab5e(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r14
movq %r14, (%rsp)
movq %r14, %rdi
callq 0x717f5
andq $0x0, 0x10(%r14)
callq 0x2637f
movabsq $-0x7850996cdf80346a, %rdx # imm = 0x87AF6693207FCB96
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r14
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x1d30a
testq %rax, %rax
je 0x1d2d2
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x71b64
movl %r15d, %edi
callq 0x2dc20
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1d4fa
testq %rax, %rax
je 0x1d2f6
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x71b64
movl %ebx, %edi
callq 0x2dc20
movq %rsp, %rdi
callq 0x71b48
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_che_s_trans_identifier
er_t xoico_che_s_trans_identifier( xoico_che_s* o, x_source* source, xoico_che_result* result, tp_t* tp_identifier )
{
    // xoico_che.x:447:1
    
    tp_t identifier = xoico_che_s_get_identifier(o,source, true );
    if( !identifier )
    {
        return  x_source_parse_error_fa(source,"Identifier expected" );
    }
    if( tp_identifier ) (*(tp_identifier)) = identifier;
    if( result ) BLM_TRY(xoico_che_result_a_push_sc(result,xoico_che_s_nameof(o,identifier ) ))
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r15
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r14
pushq $0x1
popq %rdx
callq 0x1d5df
testq %rax, %rax
je 0x1d88b
testq %r15, %r15
je 0x1d846
movq %rax, (%r15)
testq %rbx, %rbx
je 0x1d87a
movq %r14, %rdi
movq %rax, %rsi
callq 0x1cf9d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1d59d
testq %rax, %rax
je 0x1d87a
movq %rax, %rbx
leaq 0xfa560(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x1d87c
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x8fb53(%rip), %rsi     # 0xad3e5
movq %r12, %rdi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xd7c4
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_string_literal
er_t xoico_che_s_trans_string_literal( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:527:1
    
    BLM_TRY(xoico_che_s_trans(o,source, "\"", result ))
    
    while( !x_source_eos(source) && !x_source_parse_bl(source,"#=?'\"'" ) )
    {
        if( x_source_parse_bl(source,"#?'\\'" ) ) BLM_TRY(xoico_che_result_a_push_char(result,'\\' ))
        BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
    }
    
    BLM_TRY(xoico_che_s_trans(o,source, "\"", result ))
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
leaq 0x8d36d(%rip), %rdx     # 0xaae4a
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
je 0x1db0e
movq %rax, %r13
leaq 0xfa2dc(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r13, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x976a3(%rip), %r15     # 0xb51b8
leaq 0x8f9b0(%rip), %r12     # 0xad4cc
pushq $0x5c
popq %rbp
movq %r14, %rdi
callq 0xe626
testb %al, %al
jne 0x1db75
movq %r14, %rdi
movq %r15, %rsi
callq 0xe5ff
testb %al, %al
jne 0x1db75
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1db58
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1daa5
testq %rax, %rax
jne 0x1daea
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1db1f
jmp 0x1daea
leaq 0x8d2ce(%rip), %rdx     # 0xaae4a
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x1daea
xorl %r13d, %r13d
jmp 0x1dafc
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_char_literal
er_t xoico_che_s_trans_char_literal( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:544:1
    
    BLM_TRY(xoico_che_s_trans(o,source, "'", result ))
    
    while( !x_source_eos(source) && !x_source_parse_bl(source,"#=?|'|" ) )
    {
        if( x_source_parse_bl(source,"#?'\\'" ) ) BLM_TRY(xoico_che_result_a_push_char(result,'\\' ))
        BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
    }
    
    BLM_TRY(xoico_che_s_trans(o,source, "'", result ))
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
leaq 0x96ef6(%rip), %rdx     # 0xb4aa6
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
je 0x1dbe1
movq %rax, %r13
leaq 0xfa209(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r13, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x97b9c(%rip), %r15     # 0xb5784
leaq 0x8f8dd(%rip), %r12     # 0xad4cc
pushq $0x5c
popq %rbp
movq %r14, %rdi
callq 0xe626
testb %al, %al
jne 0x1dc48
movq %r14, %rdi
movq %r15, %rsi
callq 0xe5ff
testb %al, %al
jne 0x1dc48
movq %r14, %rdi
movq %r12, %rsi
callq 0xe5ff
testb %al, %al
je 0x1dc2b
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1daa5
testq %rax, %rax
jne 0x1dbbd
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1dbf2
jmp 0x1dbbd
leaq 0x96e57(%rip), %rdx     # 0xb4aa6
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x1dbbd
xorl %r13d, %r13d
jmp 0x1dbcf
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_preprocessor
er_t xoico_che_s_trans_preprocessor( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:628:1
    
    BLM_TRY(x_source_parse_fa(source,"##" ))
    BLM_TRY(xoico_che_result_a_push_sc(result,"#" ))
    while( !x_source_eos(source) )
    {
        char c = x_source_get_char(source);
        BLM_TRY(xoico_che_result_a_push_char(result,c ))
        if( c == '\\' && x_source_inspect_char(source) == '\n' ) BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
        if( c == '\n' ) break;
    }
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
leaq 0x8f65d(%rip), %rsi     # 0xad4e6
movq %r15, %rdi
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
jne 0x1deac
leaq 0x8f648(%rip), %rsi     # 0xad4e7
movq %r14, %rdi
callq 0x1d59d
testq %rax, %rax
je 0x1decc
movq %rax, %rbx
leaq 0xf9f1a(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
xorl %ebx, %ebx
movq %r15, %rdi
callq 0xe626
testb %al, %al
jne 0x1debe
movq %r15, %rdi
callq 0x104a2
movl %eax, %ebp
movsbl %al, %esi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x1deac
cmpb $0x5c, %bpl
je 0x1df05
movzbl %bpl, %eax
cmpl $0xa, %eax
jne 0x1dece
jmp 0x1debe
movq %r15, %rdi
callq 0x1048a
cmpb $0xa, %al
jne 0x1dece
movq %r15, %rdi
callq 0x104a2
movsbl %al, %esi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x1dece
jmp 0x1deac
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_inert_operator
tp_t xoico_che_s_trans_inert_operator( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:645:1
    
    switch( x_source_inspect_char(source) )
    {
        case '+':
        case '-':
        case '*':
        case '/':
        case '=':
        case '>':
        case '<':
        case '!':
        case '|':
        case '&':
        case '^':
        case '~':
        case '%':
        {
            BLM_TRY_EXIT(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
            return  1;
        }
        break;
    
        default: break;
    }
    
    return  false;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rsi, %rdi
callq 0x1048a
movzbl %al, %eax
leal -0x21(%rax), %ecx
cmpl $0x3d, %ecx
ja 0x1df98
movabsq $0x2000000038005631, %rdx # imm = 0x2000000038005631
btq %rcx, %rdx
jae 0x1df98
movq %r14, %rdi
callq 0x104a2
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1daa5
pushq $0x1
popq %rbx
testq %rax, %rax
je 0x1df8d
movq %rax, %r14
leaq 0xf9e53(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movl %r14d, %edi
callq 0x2dc20
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
cmpl $0x7e, %eax
je 0x1df58
cmpl $0x7c, %eax
je 0x1df58
xorl %ebx, %ebx
jmp 0x1df8d
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_adapt_expression_indirection
er_t xoico_che_s_adapt_expression_indirection( xoico_che_s* o, x_source* source, const xoico_typespec_s* typespec_expr, sz_t target_indirection, const xoico_che_result* result_expr, xoico_che_result* result )
{
    // xoico_che.x:764:1
    
    if( target_indirection == typespec_expr->indirection )
    {
        xoico_che_result_a_push_result_c(result,result_expr );
    }
    else if( target_indirection == typespec_expr->indirection + 1 )
    {
        if( typespec_expr->flag_addressable )
        {
            BLM_TRY(xoico_che_result_a_push_sc(result,"&(" ))
            xoico_che_result_a_push_result_c(result,result_expr );
            BLM_TRY(xoico_che_result_a_push_sc(result,")" ))
        }
        else
        {
            return  x_source_parse_error_fa(source,"Increasing indirection: Expression has no address." );
        }
    }
    else if( target_indirection < typespec_expr->indirection )
    {
        for(sz_t ind = typespec_expr->indirection; ind > target_indirection; ind-- ) BLM_TRY(xoico_che_result_a_push_sc(result,"*" ))
        BLM_TRY(xoico_che_result_a_push_sc(result,"(" ))
        xoico_che_result_a_push_result_c(result,result_expr );
        BLM_TRY(xoico_che_result_a_push_sc(result,")" ))
    }
    else
    {
        return  x_source_parse_error_fa(source,"Cannot adapt from expression's indirection '#<sz_t>' to target indirection '#<sz_t>'.",
            typespec_expr->indirection,
            target_indirection
        );
    }
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %rbx
movq %r8, %r15
movq %rdx, %rax
movq 0x20(%rdx), %rdx
cmpq %rcx, %rdx
jne 0x1e347
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e42a
xorl %r14d, %r14d
jmp 0x1e418
movq %rcx, %r12
leaq 0x1(%rdx), %rbp
cmpq %rcx, %rbp
jne 0x1e362
cmpb $0x1, 0x2e(%rax)
jne 0x1e388
leaq 0x900df(%rip), %rsi     # 0xae43f
jmp 0x1e3d6
cmpq %r12, %rdx
jle 0x1e3aa
leaq 0x97d94(%rip), %r13     # 0xb6102
decq %rbp
cmpq %r12, %rbp
jle 0x1e3cf
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1d59d
testq %rax, %rax
je 0x1e36e
jmp 0x1e406
leaq 0x8f15a(%rip), %rax     # 0xad4e9
movq %rsi, %rdi
movq %rax, %rsi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd7c4
leaq 0x8f16b(%rip), %rax     # 0xad51c
movq %rsi, %rdi
movq %rax, %rsi
movq %r12, %rcx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd7c4
leaq 0x8c118(%rip), %rsi     # 0xaa4ee
movq %rbx, %rdi
callq 0x1d59d
testq %rax, %rax
jne 0x1e406
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e42a
leaq 0xaaaf2(%rip), %rsi     # 0xc8ee7
movq %rbx, %rdi
callq 0x1d59d
testq %rax, %rax
je 0x1e33f
movq %rax, %r14
leaq 0xf99c0(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r14, %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_che_result_cast_s_reduce
xoico_che_result_cast_s* xoico_che_result_cast_s_reduce( xoico_che_result_cast_s* o )
{
    // xoico_che_result.x:206:5
    
    xoico_che_result_cast_s* prev_cast = NULL;
    if( xoico_che_result_a_get_cast(o->expression,&(prev_cast )) )
    {
        if( xoico_che_result_cast_s_overrides(o,prev_cast ) ) xoico_che_result_cast_s_deactivate(prev_cast);
    }
    return o;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %rsi
andq $0x0, (%rsi)
movq 0x18(%rdi), %rdi
callq 0x26463
testb %al, %al
je 0x1e8cb
movq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x26735
testb %al, %al
je 0x1e8cb
movq 0x8(%rsp), %rax
movb $0x0, 0x20(%rax)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_result_cast_s__
xoico_che_result_cast_s* xoico_che_result_cast_s__( xoico_che_result_cast_s* o, xoico_che_s* che, xoico_typespec_s* target_typespec, xoico_che_result* expression )
{
    // :2:1
    
    o->che = che;
    xoico_typespec_s_attach( &(o->target_typespec ),  target_typespec);
    xoico_che_result_a_attach( &(o->expression ), (xoico_che_result*)( expression));
    return  o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rcx, %rbx
movq %rdx, %r14
movq %rdi, %r15
movq %rsi, 0x8(%rdi)
movq 0x10(%rdi), %rdi
callq 0xe09f
movq %r14, 0x10(%r15)
leaq 0x18(%r15), %rdi
movq %rbx, %rsi
callq 0x268a0
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_take_typespec
er_t xoico_che_s_take_typespec( xoico_che_s* o, x_source* source, xoico_typespec_s* typespec, bl_t require_tractable_type )
{
    // xoico_che.x:1099:1
    
    bl_t success = false;
    BLM_TRY(xoico_che_s_try_take_typespec(o,source, typespec, require_tractable_type,&( success )))
    
    if( !success )
    {
        if( require_tractable_type )
        {
            return  x_source_parse_error_fa(source,"Typespec: Syntax error or intractable type." );
        }
        else
        {
            return  x_source_parse_error_fa(source,"Typespec: Syntax error." );
        }
    }
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %ecx, %ebp
movq %rsi, %rbx
leaq 0xf(%rsp), %r8
movb $0x0, (%r8)
callq 0x1ea5b
testq %rax, %rax
je 0x1edc3
movq %rax, %r14
leaq 0xf9017(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x1edf1
cmpb $0x0, 0xf(%rsp)
je 0x1edcf
xorl %r14d, %r14d
jmp 0x1edf1
testb %bpl, %bpl
je 0x1eddd
leaq 0x8eb33(%rip), %rsi     # 0xad90e
jmp 0x1ede4
leaq 0x8eb56(%rip), %rsi     # 0xad93a
movq %rbx, %rdi
xorl %eax, %eax
callq 0xd7c4
movq %rax, %r14
movq %r14, %rax
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_che_s_trans_name
er_t xoico_che_s_trans_name( xoico_che_s* o, x_source* source, xoico_che_result* result, xoico_typespec_s* out_typespec )
{
    // xoico_che.x:1227:1
    BLM_INIT_LEVEL(0);
    xoico_che_result_arr_s* result_local = ((xoico_che_result_arr_s*)BLM_LEVEL_T_PUSH(0,xoico_che_result_arr_s,xoico_che_result_arr_s_create()));
    tp_t tp_identifier;
    BLM_TRY(xoico_che_s_trans_identifier(o,source,((xoico_che_result*)( result_local)),&( tp_identifier )))
    BLM_TRY(xoico_che_s_trans_whitespace(o,source,((xoico_che_result*)( result_local ))))
    if( x_source_parse_bl(source,"#?'~'" ) )
    {
        xoico_typespec_s* typespec = ((xoico_typespec_s*)BLM_LEVEL_T_PUSH(0,xoico_typespec_s,xoico_typespec_s_create()));
        typespec->type = ((tp_t)(TYPEOF_tp_t));
        typespec->indirection = 0;
        typespec->flag_addressable = false;
        typespec->access_class = 0;
        BLM_TRY(xoico_che_result_push_fa(result,"((tp_t)(TYPEOF_#<sc_t>))", xoico_che_s_nameof(o,tp_identifier ) ))
        BLM_TRY(xoico_che_s_trans_typespec_expression(o,source, result, typespec, out_typespec ))
    }
    else
    {
        xoico_che_result_a_push_result_d(result,((xoico_che_result*)(((xoico_che_result_arr_s*)bcore_fork(result_local)) )));
    }
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r12
leaq 0xf8435(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r13
movq %r13, %rdi
callq 0x717f5
andq $0x0, 0x10(%r13)
callq 0x2637f
movabsq $-0x7850996cdf80346a, %rdx # imm = 0x87AF6693207FCB96
movq %r13, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
movq %rsp, %rcx
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x1d81d
testq %rax, %rax
je 0x1f9ed
movq %rax, %rbp
jmp 0x1faaa
movq %r15, %rsi
movq %r13, %rdx
callq 0x1dc6b
leaq 0x96075(%rip), %rsi     # 0xb5a74
movq %r15, %rdi
callq 0xe5ff
testb %al, %al
je 0x1fa95
callq 0xe090
leaq 0x8(%rsp), %rdi
movabsq $-0x641110359430e9c5, %rdx # imm = 0x9BEEEFCA6BCF163B
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r13
movabsq $0x6d07f9ef5b68e8a2, %rax # imm = 0x6D07F9EF5B68E8A2
movq %rax, 0x8(%r13)
andq $0x0, 0x20(%r13)
movb $0x0, 0x2e(%r13)
andq $0x0, 0x10(%r13)
movq (%rsp), %rsi
movq %r12, %rdi
callq 0x1cf9d
leaq 0x8dfaf(%rip), %rsi     # 0xada0f
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1edfd
testq %rax, %rax
jne 0x1f9e5
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r13, %rcx
movq %r14, %r8
callq 0x1f555
testq %rax, %rax
jne 0x1f9e5
jmp 0x1faa8
movq %r13, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1de41
xorl %ebp, %ebp
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %rbp, %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_che_s_trans_bracket
er_t xoico_che_s_trans_bracket( xoico_che_s* o, x_source* source, xoico_che_result* result, xoico_typespec_s* out_typespec )
{
    // xoico_che.x:1310:1
    
    BLM_TRY(x_source_parse_fa(source,"(" ))
    BLM_TRY(xoico_che_result_a_push_char(result,'(' ))
    while( !x_source_eos(source) )
    {
        BLM_TRY(xoico_che_s_trans_expression(o,source, result, out_typespec ))
        if     ( x_source_parse_bl(source,"#?')'" ) ) break;
        else if( x_source_parse_bl(source,"#?','" ) ) BLM_TRY(xoico_che_result_a_push_char(result,',' ))
        else return  x_source_parse_error_fa(source,"Syntax error in bracket expression." );
        if( out_typespec ) out_typespec->type = 0;
    }
    BLM_TRY(xoico_che_result_a_push_char(result,')' ))
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r15
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r12
leaq 0x8a05c(%rip), %rsi     # 0xaa4ee
movq %rbx, %rdi
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
jne 0x204b1
pushq $0x28
popq %rsi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x204d5
movq %rax, %r13
leaq 0xf7915(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r13, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8abb5(%rip), %rbp     # 0xab091
movq %rbx, %rdi
callq 0xe626
testb %al, %al
jne 0x2053c
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x1fc8a
testq %rax, %rax
jne 0x204b1
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xe5ff
testb %al, %al
jne 0x2053c
movq %rbx, %rdi
leaq 0x8be43(%rip), %rsi     # 0xac35a
callq 0xe5ff
testb %al, %al
je 0x20558
movq %r14, %rdi
pushq $0x2c
popq %rsi
callq 0x1daa5
testq %rax, %rax
jne 0x204b1
testq %r15, %r15
je 0x204dc
andq $0x0, 0x8(%r15)
jmp 0x204dc
pushq $0x29
popq %rsi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x204b1
xorl %r13d, %r13d
jmp 0x204c3
leaq 0x8d560(%rip), %rsi     # 0xadabf
movq %rbx, %rdi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd7c4
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_builtin
er_t xoico_che_s_trans_builtin( xoico_che_s* o, tp_t tp_builtin, x_source* source, bl_t source_without_brackets, const xoico_che_result* result_expr, const xoico_typespec_s* typespec_expr, xoico_che_result* result_out, xoico_typespec_s* typespec_out )
{
    // xoico_che_builtin.x:49:1
    
    switch( tp_builtin )
    {
        case TYPEOF_cast :   return  xoico_che_s_trans_builtin_cast(o,source, result_expr, typespec_expr, result_out, typespec_out );
        case TYPEOF_scope:   return  xoico_che_s_trans_builtin_scope(o,source, result_expr, typespec_expr, result_out, typespec_out );
        case TYPEOF_t_scope: return  xoico_che_s_trans_builtin_t_scope(o,source, result_expr, typespec_expr, result_out, typespec_out );
        case TYPEOF_fork:    return  xoico_che_s_trans_builtin_fork(o,source, source_without_brackets, result_expr, typespec_expr, result_out, typespec_out );
        case TYPEOF_try:     return  xoico_che_s_trans_builtin_try(o,source, source_without_brackets, result_expr, typespec_expr, result_out, typespec_out );
        default: return  x_source_parse_error_fa(source,"Internal error: Invalid builtin type '#<sc_t>'", ifnameof( tp_builtin ) );
    }
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
movq 0x28(%rsp), %r10
movq 0x20(%rsp), %rax
movabsq $0x570ac119447423ee, %rdx # imm = 0x570AC119447423EE
cmpq %rdx, %rsi
je 0x206fe
movabsq $-0x3ef8b00418101bb5, %rdx # imm = 0xC1074FFBE7EFE44B
cmpq %rdx, %rsi
je 0x20691
movabsq $-0x3e306737b766a6d0, %rdx # imm = 0xC1CF98C848995930
cmpq %rdx, %rsi
je 0x206c4
movabsq $-0x22e2f286f3d0e77f, %rdx # imm = 0xDD1D0D790C2F1881
cmpq %rdx, %rsi
je 0x206aa
movabsq $-0x4aa18f6f1786b6b2, %rcx # imm = 0xB55E7090E879494E
cmpq %rcx, %rsi
jne 0x206dd
movq %rbx, %rsi
movq %r8, %rdx
movq %r9, %rcx
movq %rax, %r8
movq %r10, %r9
addq $0x10, %rsp
popq %rbx
jmp 0x245c4
movq %rbx, %rsi
movq %r8, %rdx
movq %r9, %rcx
movq %rax, %r8
movq %r10, %r9
addq $0x10, %rsp
popq %rbx
jmp 0x1f100
movq %r10, (%rsp)
movzbl %cl, %edx
movq %rbx, %rsi
movq %r8, %rcx
movq %r9, %r8
movq %rax, %r9
callq 0x24c80
jmp 0x20716
movq %rbx, %rsi
movq %r8, %rdx
movq %r9, %rcx
movq %rax, %r8
movq %r10, %r9
addq $0x10, %rsp
popq %rbx
jmp 0x248ca
movq %rsi, %rdi
callq 0x1c2fb
leaq 0x8de9e(%rip), %rsi     # 0xae58a
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
jmp 0xd7c4
movq %r10, (%rsp)
movzbl %cl, %edx
movq %rbx, %rsi
movq %r8, %rcx
movq %r9, %r8
movq %rax, %r9
callq 0x24edb
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_block_inside_verbatim_c
er_t xoico_che_s_trans_block_inside_verbatim_c( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che.x:2002:1
    
    o->has_verbatim_code = true;
    BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    while( !x_source_parse_bl(source,"#=?'}'" ) && !x_source_eos(source) )
    {
        switch( x_source_inspect_char(source) )
        {
            case '"':
            {
                BLM_TRY(xoico_che_s_trans_string_literal(o,source, result ))
            }
            break;
    
            case '\'':
            {
                BLM_TRY(xoico_che_s_trans_char_literal(o,source, result ))
            }
            break;
    
            case '{':
            {
                BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
                BLM_TRY(xoico_che_s_trans_block_inside_verbatim_c(o,source, result ))
                BLM_TRY(x_source_parse_fa(source,"}" ))
                BLM_TRY(xoico_che_result_a_push_char(result,'}' ))
            }
            break;
    
            default:
            {
                BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
            }
            break;
        }
        BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    }
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movb $0x1, 0xe1(%rdi)
leaq 0x958ed(%rip), %r13     # 0xb602b
xorl %ebx, %ebx
leaq 0xa0d4b(%rip), %rbp     # 0xc1492
movq %r15, %rsi
movq %r14, %rdx
callq 0x1dc6b
movq %r15, %rdi
movq %r13, %rsi
callq 0xe5ff
testb %al, %al
jne 0x2081b
movq %r15, %rdi
callq 0xe626
testb %al, %al
jne 0x2081b
movq %r15, %rdi
callq 0x1048a
cmpb $0x7b, %al
je 0x207a8
movzbl %al, %eax
cmpl $0x27, %eax
je 0x2079b
cmpl $0x22, %eax
jne 0x207ed
movq %r15, %rsi
movq %r14, %rdx
callq 0x1dac5
jmp 0x20800
movq %r15, %rsi
movq %r14, %rdx
callq 0x1db98
jmp 0x20800
movq %r15, %rdi
callq 0x104a2
movsbl %al, %esi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
jne 0x20809
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x2071c
testq %rax, %rax
jne 0x20809
movq %r15, %rdi
movq %rbp, %rsi
xorl %eax, %eax
callq 0xd600
testq %rax, %rax
jne 0x20809
movq %r14, %rdi
pushq $0x7d
popq %rsi
jmp 0x207fb
movq %r15, %rdi
callq 0x104a2
movsbl %al, %esi
movq %r14, %rdi
callq 0x1daa5
testq %rax, %rax
je 0x20747
movq %rax, %rbx
leaq 0xf75bd(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
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_che_s_trans_block
er_t xoico_che_s_trans_block( xoico_che_s* o, x_source* source, xoico_che_result* result_out, bl_t is_break_ledge )
{
    // xoico_che.x:1947:1
    BLM_INIT_LEVEL(0);
    xoico_che_s_inc_block(o);
    xoico_che_result_arr_s* result = ((xoico_che_result_arr_s*)BLM_LEVEL_T_PUSH(0,xoico_che_result_arr_s,xoico_che_result_arr_s_create()));
    xoico_che_s_stack_block_get_top_unit(o)->break_ledge = is_break_ledge;
    BLM_TRY(xoico_che_s_trans_whitespace(o,source,((xoico_che_result*)( result ))))
    BLM_TRY(xoico_che_s_trans(o,source, "{",((xoico_che_result*)( result ))))
    BLM_TRY(xoico_che_s_trans_block_inside(o,source,((xoico_che_result*)( result ))))
    BLM_TRY(xoico_che_s_trans_whitespace(o,source,((xoico_che_result*)( result ))))
    BLM_TRY(xoico_che_s_trans(o,source, "}",((xoico_che_result*)( result ))))
    xoico_che_result_a_push_result_d(result_out,((xoico_che_result*)(((xoico_che_result_arr_s*)bcore_fork(result)) )));
    xoico_che_s_dec_block(o);
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %ecx, %ebp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0xf6cb5(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x717f5
andq $0x0, 0x10(%r12)
movq %rbx, %rdi
callq 0x1d028
callq 0x2637f
movabsq $-0x7850996cdf80346a, %rdx # imm = 0x87AF6693207FCB96
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %r12
movq 0x98(%rbx), %rax
movq 0xa0(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %rax
movb %bpl, 0x11(%rax)
movq %r15, %rsi
movq %r12, %rdx
callq 0x1dc6b
leaq 0xa0287(%rip), %rdx     # 0xc1408
movq %r15, %rsi
movq %r12, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x211c6
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x21b96
testq %rax, %rax
jne 0x211c6
movq %r15, %rsi
movq %r12, %rdx
callq 0x1dc6b
leaq 0xa02dc(%rip), %rdx     # 0xc1492
movq %r15, %rsi
movq %r12, %rcx
callq 0x1d558
testq %rax, %rax
je 0x211e5
movq %rax, %r13
leaq 0x8(%rsp), %rdi
callq 0x71b64
movq %r13, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rdi
callq 0x6026d
movq %r14, %rdi
movq %rax, %rsi
callq 0x1de41
movq %rbx, %rdi
callq 0x1d070
xorl %r13d, %r13d
jmp 0x211c9
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_result_statement_s_reduce
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_che_result_statement_s )

xoico_che_result_statement_s* xoico_che_result_statement_s_reduce( xoico_che_result_statement_s* o )
{
    // xoico_che_result.x:243:5
    
    xoico_che_result_cast_s* prev_cast = NULL;
    if( xoico_che_result_a_get_cast(o->expression,&(prev_cast )) ) xoico_che_result_cast_s_deactivate(prev_cast);
    return o;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %rsi
andq $0x0, (%rsi)
movq 0x8(%rdi), %rdi
callq 0x26463
testb %al, %al
je 0x217fe
movq 0x8(%rsp), %rax
movb $0x0, 0x20(%rax)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_assess_indentation
sz_t xoico_che_s_assess_indentation( x_source* source )
{
    // xoico_che.x:2148:1
    
    sz_t index = x_source_get_index(source);
    while( !x_source_eos(source) ) if( x_source_get_char(source) == '\n' ) break;
    sz_t indentation = 0;
    while( !x_source_eos(source) )
    {
        if( x_source_get_char(source) != ' ' ) break;
        indentation++;
    }
    x_source_set_index(source,index );
    return  indentation;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x10a95
movq %rax, %r14
movq %rbx, %rdi
callq 0xe626
testb %al, %al
jne 0x223d0
movq %rbx, %rdi
callq 0x104a2
cmpb $0xa, %al
jne 0x223b8
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0xe626
testb %al, %al
jne 0x223f0
movq %rbx, %rdi
callq 0x104a2
cmpb $0x20, %al
jne 0x223f0
incq %r15
jmp 0x223d3
movq %rbx, %rdi
movq %r14, %rsi
callq 0x10b09
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_remove_indentation
void xoico_che_s_remove_indentation( st_s* string, sz_t indentation )
{
    // xoico_che.x:2164:1
    
    ASSERT( string->space >= string->size );
    
    sz_t j = 0;
    for(sz_t i = 0; i < string->size; i++ )
    {
        char c = string->data[ i ];
        string->data[ j++ ] = c;
        if( c == '\n' )
        {
            for(sz_t k = 0; k < indentation; k++ )
            {
                if( string->data[ i + 1 ] != ' ' ) break;
                i++;
            }
        }
    }
    
    string->data[ j ] = 0;
    string->size = j;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rdi), %rax
cmpq 0x10(%rdi), %rax
jae 0x22441
leaq 0x88228(%rip), %rdi     # 0xaa647
leaq 0x8bbeb(%rip), %rsi     # 0xae011
leaq 0x8bc02(%rip), %rdx     # 0xae02f
leaq 0x87e5c(%rip), %rcx     # 0xaa290
movl $0x2076, %r8d           # imm = 0x2076
xorl %eax, %eax
callq 0x5ffac
xorl %ecx, %ecx
testq %r14, %r14
cmovleq %rcx, %r14
xorl %eax, %eax
movq 0x8(%rbx), %rdx
cmpq 0x10(%rbx), %rcx
jae 0x22497
movb (%rdx,%rcx), %sil
movb %sil, (%rdx,%rax)
cmpb $0xa, %sil
jne 0x2248f
leaq (%r14,%rcx), %rdx
decq %rcx
movq %r14, %rsi
movq %rcx, %rdi
subq $0x1, %rsi
jb 0x2248c
movq 0x8(%rbx), %r8
leaq 0x1(%rdi), %rcx
cmpb $0x20, 0x2(%rdi,%r8)
movq %rcx, %rdi
je 0x22471
jmp 0x2248f
movq %rdx, %rcx
incq %rax
incq %rcx
jmp 0x2244c
movb $0x0, (%rdx,%rax)
movq %rax, 0x10(%rbx)
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_che_s_translate
er_t xoico_che_s_translate( const xoico_che_s* o, const xoico_host* host, const xoico_body_s* body, const xoico_signature_s* signature, x_sink* sink )
{
    // xoico_che.x:2297:1
    BLM_INIT_LEVEL(0);
    er_t er = xoico_che_s_translate_mutable(((xoico_che_s*)BLM_LEVEL_T_PUSH(0,xoico_che_s,xoico_che_s_clone(o))),host, body, signature, sink );
    BLM_RETURNV(er_t, er)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %r8, %rbx
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %rbp
leaq 0xf5406(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x717f5
andq $0x0, 0x10(%r15)
movq %rbp, %rdi
callq 0x1cdbf
movabsq $0x72c73adcff3ea5ca, %rdx # imm = 0x72C73ADCFF3EA5CA
movq %r15, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0x71967
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x224a7
movq %rax, %rbx
movq %r15, %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_che_s_trans_control_for
er_t xoico_che_s_trans_control_for( xoico_che_s* o, x_source* source, xoico_che_result* result )
{
    // xoico_che_control.x:76:1
    
    xoico_che_s_inc_block(o);
    xoico_che_s_stack_block_get_top_unit(o)->break_ledge = true;
    BLM_TRY(xoico_che_s_trans(o,source, "for", result ))
    BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    BLM_TRY(xoico_che_s_trans(o,source, "(", result ))
    if( !x_source_parse_bl(source," #=?';'" ) ) BLM_TRY(xoico_che_s_trans_statement(o,source, result )) // def
    BLM_TRY(xoico_che_s_trans(o,source, ";", result ))
    BLM_TRY(xoico_che_s_trans_expression(o,source, result, NULL )) // cond
    BLM_TRY(xoico_che_s_trans(o,source, ";", result ))
    BLM_TRY(xoico_che_s_trans_expression(o,source, result, NULL )) // update
    BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    BLM_TRY(xoico_che_s_trans(o,source, ")", result ))
    BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    if( x_source_parse_bl(source,"#=?'{'" ) )
    {
        BLM_TRY(xoico_che_s_trans_block(o,source, result, false ))
    }
    else
    {
        BLM_TRY(xoico_che_s_trans_statement_as_block(o,source, result, false ))
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
callq 0x1d028
movq 0x98(%rbx), %rax
movq 0xa0(%rbx), %rcx
movq -0x8(%rax,%rcx,8), %rax
movb $0x1, 0x11(%rax)
leaq 0x89807(%rip), %rdx     # 0xae982
movq %r15, %rsi
movq %r14, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x2529b
movq %r15, %rsi
movq %r14, %rdx
callq 0x1dc6b
leaq 0x8534d(%rip), %rdx     # 0xaa4ee
movq %r15, %rsi
movq %r14, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x2529b
leaq 0x85554(%rip), %rsi     # 0xaa710
movq %r15, %rdi
callq 0xe5ff
testb %al, %al
jne 0x251df
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x21807
testq %rax, %rax
jne 0x2529b
leaq 0x896e2(%rip), %rdx     # 0xae8c8
movq %r15, %rsi
movq %r14, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x2529b
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x1fc8a
testq %rax, %rax
jne 0x2529b
leaq 0x896ae(%rip), %rdx     # 0xae8c8
movq %r15, %rsi
movq %r14, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x2529b
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x1fc8a
testq %rax, %rax
jne 0x2529b
movq %r15, %rsi
movq %r14, %rdx
callq 0x1dc6b
leaq 0xa3c96(%rip), %rdx     # 0xc8ee7
movq %r15, %rsi
movq %r14, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x2529b
movq %r15, %rsi
movq %r14, %rdx
callq 0x1dc6b
leaq 0x85359(%rip), %rsi     # 0xaa5cc
movq %r15, %rdi
callq 0xe5ff
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
testb %al, %al
je 0x25291
callq 0x210fb
jmp 0x25296
callq 0x21d77
testq %rax, %rax
je 0x252bc
movq %rax, %r12
leaq 0xf2b2b(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rbx, %rdi
callq 0x1d070
xorl %r12d, %r12d
jmp 0x252ad
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_s_trans_control_while
BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    while( !x_source_parse_bl(source,"#=?'}'" ) && !x_source_eos(source) )
    {
        switch( x_source_inspect_char(source) )
        {
            case '"':
            {
                BLM_TRY(xoico_che_s_trans_string_literal(o,source, result ))
            }
            break;
    
            case '\'':
            {
                BLM_TRY(xoico_che_s_trans_char_literal(o,source, result ))
            }
            break;
    
            case '{':
            {
                BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
                BLM_TRY(xoico_che_s_trans_block_inside_verbatim_c(o,source, result ))
                BLM_TRY(x_source_parse_fa(source,"}" ))
                BLM_TRY(xoico_che_result_a_push_char(result,'}' ))
            }
            break;
    
            default:
            {
                BLM_TRY(xoico_che_result_a_push_char(result,x_source_get_char(source) ))
            }
            break;
        }
        BLM_TRY(xoico_che_s_trans_whitespace(o,source, result ))
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x88ec2(%rip), %rdx     # 0xaea43
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x25c1b
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1dc6b
leaq 0x8494a(%rip), %rdx     # 0xaa4ee
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x25c1b
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x1fc8a
testq %rax, %rax
jne 0x25c1b
leaq 0xa3317(%rip), %rdx     # 0xc8ee7
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1d558
testq %rax, %rax
jne 0x25c1b
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1dc6b
leaq 0x849da(%rip), %rsi     # 0xaa5cc
movq %r14, %rdi
callq 0xe5ff
pushq $0x1
popq %rcx
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
testb %al, %al
je 0x25c11
callq 0x210fb
jmp 0x25c16
callq 0x21d77
testq %rax, %rax
je 0x25c3c
movq %rax, %r12
leaq 0xf21ab(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r12d, %r12d
jmp 0x25c2d
// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_che_result_block_s_is_using_blm_until_level
bl_t xoico_che_result_block_s_is_using_blm_until_level( const xoico_che_result_block_s* o, sz_t level )
{
    // xoico_che_result.x:137:5
    
    if( level > o->level ) return  false;
    if( o->is_using_blm )  return  true;
    if( o->is_root )       return  false;
    
    ASSERT( o->parent );
    return  xoico_che_result_block_s_is_using_blm_until_level(o->parent,level );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
leaq 0x84101(%rip), %r14     # 0xaa647
leaq 0x885e7(%rip), %r15     # 0xaeb34
leaq 0x885ea(%rip), %r12     # 0xaeb3e
leaq 0x83d35(%rip), %r13     # 0xaa290
cmpq %rbx, 0x8(%rdi)
jl 0x26598
movq %rdi, %rbp
cmpb $0x0, 0x10(%rdi)
jne 0x2659c
cmpb $0x0, 0x48(%rbp)
jne 0x26598
movq 0x50(%rbp), %rdi
testq %rdi, %rdi
jne 0x2655b
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %r13, %rcx
movl $0x27ac, %r8d           # imm = 0x27AC
xorl %eax, %eax
callq 0x5ffac
movq 0x50(%rbp), %rdi
jmp 0x2655b
xorl %eax, %eax
jmp 0x2659e
movb $0x1, %al
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_che_result_cast_s_overrides
bl_t xoico_che_result_cast_s_overrides( const xoico_che_result_cast_s* o, const xoico_che_result_cast_s* a )
{
    // xoico_che_result.x:189:5
    
    const xoico_typespec_s* to = o->target_typespec;
    const xoico_typespec_s* ta = a->target_typespec;
    
    /* Currently we restrict to group and stamp pointers.
     * We might be less restrictive in future.
     */
    if( !xoico_che_s_is_group(o->che,to->type ) && !xoico_che_s_is_stamp(o->che,to->type ) ) return false;
    if( !xoico_che_s_is_group(o->che,ta->type ) && !xoico_che_s_is_stamp(o->che,ta->type ) ) return false;
    if( to->indirection != 1 ) return false;
    if( ta->indirection != 1 ) return false;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x8(%rdi), %rdi
movq 0x10(%rbx), %r15
movq 0x10(%rsi), %r14
movq 0x8(%r15), %rsi
callq 0x1e874
testb %al, %al
jne 0x26767
movq 0x8(%rbx), %rdi
movq 0x8(%r15), %rsi
callq 0x1e881
testb %al, %al
je 0x2679a
movq 0x8(%rbx), %rdi
movq 0x8(%r14), %rsi
callq 0x1e874
testb %al, %al
jne 0x26789
movq 0x8(%rbx), %rdi
movq 0x8(%r14), %rsi
callq 0x1e881
testb %al, %al
je 0x2679a
cmpq $0x1, 0x20(%r15)
jne 0x2679a
cmpq $0x1, 0x20(%r14)
sete %al
jmp 0x2679c
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_che_result_cast_s_to_sink
er_t xoico_che_result_cast_s_to_sink( const xoico_che_result_cast_s* o, x_sink* sink )
{
    // xoico_che_result.x:218:5
    
    if( o->active )
    {
        x_sink_push_sc(sink,"((" );
        xoico_che_s_typespec_to_sink(o->che,o->target_typespec, sink );
        x_sink_push_sc(sink,")(" );
        BLM_TRY(xoico_che_result_a_to_sink(BCORE_PASS_TEST(xoico_che_result,o->expression),sink ))
        x_sink_push_sc(sink,"))" );
    }
    else
    {
        BLM_TRY(xoico_che_result_a_to_sink(BCORE_PASS_TEST(xoico_che_result,o->expression),sink ))
    }
    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
cmpb $0x1, 0x20(%rdi)
jne 0x26828
leaq 0x87e00(%rip), %rsi     # 0xae5c1
movq %rbx, %rdi
callq 0x11689
movq 0x8(%r14), %rdi
movq 0x10(%r14), %rsi
movq %rbx, %rdx
callq 0x1d257
leaq 0x8455a(%rip), %rsi     # 0xaad3a
movq %rbx, %rdi
callq 0x11689
movq 0x18(%r14), %r14
leaq 0x8837d(%rip), %rsi     # 0xaeb70
leaq 0x83a96(%rip), %rdx     # 0xaa290
movq %r14, %rdi
movl $0x281b, %ecx           # imm = 0x281B
callq 0x26879
movq %r14, %rdi
movq %rbx, %rsi
callq 0x263ba
testq %rax, %rax
jne 0x26857
leaq 0x86bbd(%rip), %rsi     # 0xad3db
movq %rbx, %rdi
callq 0x11689
jmp 0x2686b
movq 0x18(%r14), %r14
leaq 0x8833d(%rip), %rsi     # 0xaeb70
leaq 0x83a56(%rip), %rdx     # 0xaa290
movq %r14, %rdi
movl $0x2820, %ecx           # imm = 0x2820
callq 0x26879
movq %r14, %rdi
movq %rbx, %rsi
callq 0x263ba
testq %rax, %rax
je 0x2686b
movq %rax, %r14
leaq 0xf156f(%rip), %rax     # 0x117dd0
movq (%rax), %rdi
callq 0x71b64
jmp 0x2686e
xorl %r14d, %r14d
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_che_result_break_s_to_sink
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_che_result_break_s )

er_t xoico_che_result_break_s_to_sink( const xoico_che_result_break_s* o, x_sink* sink )
{
    // xoico_che_result.x:261:5
    
    if( !o->parent ) ERR_fa( "Parent missing." );
    if( xoico_che_result_block_s_is_using_blm_until_level(o->parent,o->ledge_level ) )
    {
        x_sink_push_fa(sink,"BLM_BREAK_LEVEL(#<sz_t>);", o->ledge_level );
    }
    else
    {
        x_sink_push_fa(sink,"break;" );
    }
    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x10(%rdi), %rdi
testq %rdi, %rdi
jne 0x269ff
leaq 0x881af(%rip), %rdi     # 0xaeb90
leaq 0x838a8(%rip), %rsi     # 0xaa290
leaq 0x881c2(%rip), %rcx     # 0xaebb1
movl $0x2858, %edx           # imm = 0x2858
xorl %eax, %eax
callq 0x60186
movq 0x10(%r14), %rdi
movq 0x8(%r14), %rsi
callq 0x26531
testb %al, %al
je 0x26a23
movq 0x8(%r14), %rdx
leaq 0x881aa(%rip), %rsi     # 0xaebc1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
jmp 0x26a34
leaq 0x881b1(%rip), %rsi     # 0xaebdb
movq %rbx, %rdi
xorl %eax, %eax
callq 0xdd43
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq