LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_expand_x
er_t xoico_args_s_expand_x( const xoico_args_s* o, const xoico_host* host, bl_t first, x_sink* sink )
{
    // xoico_args.x:79:1
    
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i];
    {
        if( !first ) x_sink_push_fa(sink,", " );
        first = false;
        BLM_TRY(xoico_arg_s_expand_x(arg,host, sink ))
    }
    }}return  0;
}

// Assembly:
testq %rdi, %rdi
je 0x1403b
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
cmpq $0x0, 0x10(%rdi)
je 0x1402d
movq %rcx, %rbx
movq %rsi, %r14
leaq 0x119366(%rip), %r12    # 0x12d35e
xorl %ebp, %ebp
movq 0x8(%r15), %rax
movq (%rax,%rbp,8), %r13
testb $0x1, %dl
jne 0x14014
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0xed3f
movq %r13, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x135b7
incq %rbp
xorl %edx, %edx
cmpq 0x10(%r15), %rbp
jb 0x13ffa
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_expand_name
er_t xoico_args_s_expand_name( const xoico_args_s* o, const xoico_host* host, bl_t first, x_sink* sink )
{
    // xoico_args.x:92:1
    
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i];
    {
        if( !first ) x_sink_push_fa(sink,", " );
        first = false;
        BLM_TRY(xoico_arg_s_expand_name(arg,host, sink ))
    }
    }}return  0;
}

// Assembly:
testq %rdi, %rdi
je 0x140a8
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
cmpq $0x0, 0x10(%rdi)
je 0x1409a
movq %rcx, %rbx
movq %rsi, %r14
leaq 0x1192f9(%rip), %r12    # 0x12d35e
xorl %ebp, %ebp
movq 0x8(%r15), %rax
movq (%rax,%rbp,8), %r13
testb $0x1, %dl
jne 0x14081
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0xed3f
movq %r13, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x134d3
incq %rbp
xorl %edx, %edx
cmpq 0x10(%r15), %rbp
jb 0x14067
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_get_hash
tp_t xoico_args_s_get_hash( const xoico_args_s* o )
{
    // xoico_args.x:105:1
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i]; hash = bcore_tp_fold_tp( hash, xoico_arg_s_get_hash(arg) );}}
    return  hash;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movabsq $0x100000001b3, %rbx    # imm = 0x100000001B3
movq (%rdi), %r12
movq 0x10(%rdi), %rbp
movl $0xff, %r15d
movq %r12, %rax
andq %r15, %rax
movabsq $-0x340d631b7bdddcdb, %rcx # imm = 0xCBF29CE484222325
xorq %rax, %rcx
imulq %rbx, %rcx
movl %r12d, %eax
shrl $0x8, %eax
movl $0xff, %esi
andl %esi, %eax
xorq %rcx, %rax
imulq %rbx, %rax
movl %r12d, %ecx
shrl $0x10, %ecx
andl %esi, %ecx
xorq %rax, %rcx
imulq %rbx, %rcx
movl %r12d, %eax
shrl $0x18, %eax
xorq %rcx, %rax
imulq %rbx, %rax
movq %r12, %rcx
shrq $0x20, %rcx
andq %r15, %rcx
xorq %rax, %rcx
imulq %rbx, %rcx
movq %r12, %rax
shrq $0x28, %rax
andq %r15, %rax
xorq %rcx, %rax
imulq %rbx, %rax
movq %r12, %rcx
shrq $0x30, %rcx
andq %r15, %rcx
xorq %rax, %rcx
imulq %rbx, %rcx
shrq $0x38, %r12
xorq %rcx, %r12
imulq %rbx, %r12
testq %rbp, %rbp
je 0x141f5
movq 0x8(%rdi), %r13
xorl %r14d, %r14d
movq (%r13,%r14,8), %rdi
callq 0x132d8
movl $0xff, %esi
movq %rax, %rcx
andq %r15, %rcx
xorq %r12, %rcx
imulq %rbx, %rcx
movl %eax, %edx
shrl $0x8, %edx
andl %esi, %edx
xorq %rcx, %rdx
imulq %rbx, %rdx
movl %eax, %ecx
shrl $0x10, %ecx
andl %esi, %ecx
xorq %rdx, %rcx
imulq %rbx, %rcx
movl %eax, %edx
shrl $0x18, %edx
xorq %rcx, %rdx
imulq %rbx, %rdx
movq %rax, %rcx
shrq $0x20, %rcx
andq %r15, %rcx
xorq %rdx, %rcx
imulq %rbx, %rcx
movq %rax, %rdx
shrq $0x28, %rdx
andq %r15, %rdx
xorq %rcx, %rdx
imulq %rbx, %rdx
movq %rax, %rcx
shrq $0x30, %rcx
andq %r15, %rcx
xorq %rdx, %rcx
imulq %rbx, %rcx
shrq $0x38, %rax
xorq %rcx, %rax
incq %r14
imulq %rbx, %rax
movq %rax, %r12
cmpq %r14, %rbp
jne 0x14162
jmp 0x141f8
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_convert_transient_types
BCORE_DEFINE_OBJECT_INST_P_NASC_END( xoico_signature_s )

er_t xoico_signature_s_convert_transient_types( xoico_signature_s* o, const xoico_host* host, const xoico_transient_map_s* map )
{
    // xoico_signature.x:45:5
    
    if( o->arg_o )
    {
        BLM_TRY(xoico_arg_s_convert_transient_types(o->arg_o,host, map ))
        if
        (
            o->arg_o->typespec.transient &&
            o->typespec_ret.transient &&
            o->arg_o->typespec.transient->class == o->typespec_ret.transient->class
        )
        {
            o->typespec_ret.type = xoico_host_a_obj_type(host);
        }
    }
    
    BLM_TRY(xoico_args_s_convert_transient_types(&(o->args),host, map ))
    BLM_TRY(xoico_typespec_s_convert_transient_types(&(o->typespec_ret),host, map ))
    return   0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r14
movq %rdi, %rbx
movq 0x50(%rdi), %r12
testq %r12, %r12
je 0x1479d
movq %rsi, %r15
movq 0x38(%r12), %rax
testq %rax, %rax
je 0x146d2
movq 0x8(%rax), %rsi
leaq 0x8(%r14), %rdi
callq 0xc9f2a
testq %rax, %rax
je 0x146d2
movq (%rax), %rax
testq %rax, %rax
je 0x146d2
movq %rax, 0x28(%r12)
movq 0x50(%rbx), %rax
movq 0x38(%rax), %rax
testq %rax, %rax
je 0x1479d
movq 0x38(%rbx), %rcx
testq %rcx, %rcx
je 0x1479d
movq 0x8(%rax), %rax
cmpq 0x8(%rcx), %rax
jne 0x1479d
movq (%r15), %r12
leaq 0x17df98(%rip), %rax    # 0x1926a0
movl 0x17df92(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x14762
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x14762
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x14762
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x1476b
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x14792
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x17df19(%rip), %rdi    # 0x1926a0
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
callq *0x30(%r13)
movq %rax, 0x28(%rbx)
leaq 0x58(%rbx), %rdi
movq %r14, %rdx
callq 0x13eca
movq 0x38(%rbx), %rax
testq %rax, %rax
je 0x147d3
movq 0x8(%rax), %rsi
addq $0x8, %r14
movq %r14, %rdi
callq 0xc9f2a
testq %rax, %rax
je 0x147d3
movq (%rax), %rax
testq %rax, %rax
je 0x147d3
movq %rax, 0x28(%rbx)
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_relent
er_t xoico_signature_s_relent( xoico_signature_s* o, const xoico_host* host, tp_t tp_obj_type )
{
    // xoico_signature.x:68:5
    
    if( o->arg_o ) BLM_TRY(xoico_arg_s_relent(o->arg_o,host, tp_obj_type ))
    BLM_TRY(xoico_args_s_relent(&(o->args),host, tp_obj_type ))
    BLM_TRY(xoico_typespec_s_relent(&(o->typespec_ret),host, tp_obj_type ))
    return  0;
}

// Assembly:
movabsq $0x213393bef2495d15, %rax # imm = 0x213393BEF2495D15
movq 0x50(%rdi), %rcx
testq %rcx, %rcx
je 0x147fc
cmpq %rax, 0x28(%rcx)
jne 0x147fc
movq %rdx, 0x28(%rcx)
movq 0x68(%rdi), %rcx
testq %rcx, %rcx
je 0x14825
xorl %esi, %esi
movq 0x60(%rdi), %r8
movq (%r8,%rsi,8), %r8
cmpq %rax, 0x28(%r8)
jne 0x1481d
movq %rdx, 0x28(%r8)
movq 0x68(%rdi), %rcx
incq %rsi
cmpq %rcx, %rsi
jb 0x14807
cmpq %rax, 0x28(%rdi)
jne 0x1482f
movq %rdx, 0x28(%rdi)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_expand_ret_x
er_t xoico_signature_s_expand_ret_x( const xoico_signature_s* o, const xoico_host* host, x_sink* sink )
{
    // xoico_signature.x:92:5
    
    if( o->typespec_ret.transient && o->typespec_ret.transient->cast_to_var )
    {
        tp_t var_name = o->typespec_ret.transient->cast_to_var;
        x_sink_push_fa(sink,"#<sc_t> ", xoico_host_a_nameof(host,var_name ) );
    }
    else
    {
        BLM_TRY(xoico_typespec_s_expand_x(&(o->typespec_ret),host, sink ))
    }
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq 0x38(%rdi), %rax
testq %rax, %rax
je 0x1491d
movq 0x10(%rax), %r15
testq %r15, %r15
je 0x1491d
movq (%r14), %r12
leaq 0x17de2d(%rip), %rax    # 0x1926a0
movl 0x17de27(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x148cd
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x148cd
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x148cd
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x148d6
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x148fd
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x17ddae(%rip), %rdi    # 0x1926a0
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r14, %rdi
movq %r15, %rsi
callq *0x48(%r13)
leaq 0x118b35(%rip), %rsi    # 0x12d443
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xed3f
jmp 0x1492c
addq $0x20, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x11ac2
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_get_signature
const xoico_signature_s* xoico_compiler_s_get_signature( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:247:5
    
    const xoico* item = xoico_compiler_s_get_const_item(o,name );
    if( !item ) return  NULL;
    if( item->_ == ((tp_t)(TYPEOF_xoico_signature_s)) ) return  ((xoico_signature_s*)(item));
    if( item->_ == ((tp_t)(TYPEOF_xoico_feature_s))   ) return &( ((xoico_feature_s*)(item))->signature);
    return  NULL;
}

// Assembly:
pushq %rax
addq $0x78, %rdi
callq 0xca94f
testq %rax, %rax
je 0x157c3
movq (%rax), %rax
testq %rax, %rax
je 0x157c3
movq (%rax), %rcx
movabsq $-0x231a5c50432e84f2, %rdx # imm = 0xDCE5A3AFBCD17B0E
cmpq %rdx, %rcx
je 0x157c5
movabsq $0x320f5368e957d0a2, %rdx # imm = 0x320F5368E957D0A2
cmpq %rdx, %rcx
jne 0x157c3
addq $0x8, %rax
jmp 0x157c5
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_is_body
bl_t xoico_compiler_s_is_body( const xoico_compiler_s* o, tp_t name )
{
    // xoico_compiler.x:188:5
    
    const xoico* item = xoico_compiler_s_get_const_item(o,name );
    if( item && ( item->_ == ((tp_t)(TYPEOF_xoico_body_s)) ) ) return  true;
    return  false;
}

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

// Assembly:
pushq %rax
addq $0x78, %rdi
callq 0xca94f
testq %rax, %rax
je 0x199f8
movq (%rax), %rcx
testq %rcx, %rcx
je 0x199f8
movb $0x1, %al
movabsq $0x320f5368e957d0a2, %rdx # imm = 0x320F5368E957D0A2
cmpq %rdx, (%rcx)
je 0x199fa
xorl %eax, %eax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_freeze_global_name
er_t xoico_func_s_freeze_global_name( xoico_func_s* o, const xoico_host* host )
{
    // xoico_func.x:94:1
    BLM_INIT_LEVEL(0);
    if( o->global_name ) BLM_RETURNV(er_t, 0)
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    o->global_name = xoico_compiler_s_entypeof(compiler,((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create_fa("#<sc_t>_#<sc_t>", xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) ), xoico_compiler_s_nameof(compiler,o->name ) )))->sc );
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x181f83(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0xd6675
movq $0x0, 0x10(%r15)
cmpq $0x0, 0x10(%rbx)
jne 0x19ffb
movq (%r14), %r15
leaq 0x178828(%rip), %r13    # 0x1926a0
movl 0x178822(%rip), %eax    # 0x1926a0
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x19ed1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x19ed1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x19ed1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x19eda
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x19f01
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x1787aa(%rip), %rdi    # 0x1926a0
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r14, %rdi
callq *0x20(%r12)
movq %rax, %r15
movq (%r14), %r12
movl 0x17878b(%rip), %eax    # 0x1926a0
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x19f68
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x19f68
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x19f68
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x19f71
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x19f98
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x178713(%rip), %rdi    # 0x1926a0
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r14, %rdi
callq *0x30(%r13)
movq %r15, %rdi
movq %rax, %rsi
callq 0xe3d7
movq %rax, %r14
movq 0x8(%rbx), %rsi
movq %r15, %rdi
callq 0xe3d7
leaq 0x113dbc(%rip), %rdi    # 0x12dd7c
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x109dca
movq %rsp, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq 0x8(%rax), %rsi
addq $0x140, %r15            # imm = 0x140
movq %r15, %rdi
callq 0xd3d8e
movq %rax, 0x10(%rbx)
movq %rsp, %rdi
callq 0xd6d2c
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_compiler_s_register_item
er_t xoico_compiler_s_register_item( xoico_compiler_s* o, const xoico* item )
{
    // xoico_compiler.x:335:1
    
    tp_t global_id = xoico_a_get_global_name_tp(item);
    if( bcore_hmap_tpvd_s_exists(&(o->hmap_item),global_id ) )
    {
        return  x_source_point_s_parse_error_fa(((x_source_point_s*)(xoico_a_get_source_point(item))),"'#<sc_t>' was already registered\n", xoico_compiler_s_nameof(o,global_id ) );
    }
    bcore_hmap_tpvd_s_set(&(o->hmap_item),global_id, ( vd_t )item );
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %r15
leaq 0x17788c(%rip), %r13    # 0x192488
movl 0x177886(%rip), %eax    # 0x192488
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x1ac55
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x1ac55
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x1ac55
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x1ac5e
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x1ac85
movabsq $0x5d91f496b6479859, %rdi # imm = 0x5D91F496B6479859
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x17780e(%rip), %rdi    # 0x192488
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
callq *0x20(%r12)
movq %rax, %r15
leaq 0x78(%r14), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0xca9a0
testb %al, %al
je 0x1ad68
movq (%rbx), %r12
movl 0x1777d8(%rip), %eax    # 0x192488
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r13,%rax,8), %rcx
movq 0x18(%r13,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x1ad03
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1ad03
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1ad03
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x1ad0c
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x1ad33
movabsq $0x5d91f496b6479859, %rdi # imm = 0x5D91F496B6479859
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x177760(%rip), %rdi    # 0x192488
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbx, %rdi
callq *0x90(%r13)
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
callq 0xe3d7
leaq 0x115084(%rip), %rsi    # 0x12fdd6
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x13254
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xca6bb
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_forward
er_t xoico_func_s_expand_forward( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:251:1
    
    if( !o->expandable ) return  0;
    if( !o->declare_in_expand_forward ) return  0;
    
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    x_sink_push_fa(sink," \\\n#rn{ }", indent );
    bl_t go_inline = o->body && o->body->go_inline;
    const xoico_signature_s* signature = o->signature;
    ASSERT( signature );
    if( go_inline )
    {
        x_sink_push_fa(sink,"static inline " );
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof(compiler,o->global_name ), indent, sink ))
    }
    else
    {
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof(compiler,o->global_name ), indent, sink ))
    }
    x_sink_push_fa(sink,";" );
    
    return  0;
}

// Assembly:
cmpb $0x1, 0x28(%rdi)
jne 0x1b5f1
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
cmpb $0x1, 0x2a(%rdi)
jne 0x1b5e3
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r14
movq (%rsi), %r13
leaq 0x1771e9(%rip), %rax    # 0x1926a0
movl 0x1771e3(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1b511
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1b511
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1b511
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1b51a
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1b541
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x17716a(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r14, %rdi
callq *0x20(%rbp)
movq %rax, %r13
leaq 0x112223(%rip), %rsi    # 0x12d774
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x38(%r15), %rax
testq %rax, %rax
je 0x1b56d
movb 0x20(%rax), %bpl
movq 0x40(%r15), %r12
testq %r12, %r12
jne 0x1b59f
leaq 0x1120ca(%rip), %rdi    # 0x12d647
leaq 0x11804b(%rip), %rsi    # 0x1335cf
leaq 0x1121f3(%rip), %rdx    # 0x12d77e
leaq 0x111cfe(%rip), %rcx    # 0x12d290
movl $0x76c, %r8d            # imm = 0x76C
xorl %eax, %eax
callq 0xbe4ef
testb %bpl, %bpl
je 0x1b5b5
leaq 0x1121ef(%rip), %rsi    # 0x12d79a
movq %rbx, %rdi
xorl %eax, %eax
callq 0xed3f
movq 0x10(%r15), %rsi
movq %r13, %rdi
callq 0xe3d7
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x1588d
leaq 0x1162ef(%rip), %rsi    # 0x1318c8
movq %rbx, %rdi
xorl %eax, %eax
callq 0xed3f
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_definition
er_t xoico_func_s_expand_definition( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:305:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    
    const xoico_signature_s* signature = o->signature;
    ASSERT( signature );
    if( o->body && !o->body->go_inline )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }", indent );
        BLM_TRY(xoico_signature_s_expand_declaration(signature,host, xoico_compiler_s_nameof(compiler,o->global_name ), indent, sink ))
        x_sink_push_fa(sink,"\n" );
        BLM_TRY(xoico_body_s_expand(o->body,host, signature, indent, sink ))
        x_sink_push_fa(sink,"\n" );
    }
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x1, 0x28(%rdi)
jne 0x1b8f4
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movq (%rsi), %r13
leaq 0x176e82(%rip), %rax    # 0x1926a0
movl 0x176e7c(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1b878
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1b878
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1b878
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1b881
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1b8a8
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x176e03(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
callq *0x20(%rbp)
movq %rax, %rbp
movq 0x40(%r12), %r13
testq %r13, %r13
jne 0x1b8e4
leaq 0x111d85(%rip), %rdi    # 0x12d647
leaq 0x117d06(%rip), %rsi    # 0x1335cf
leaq 0x111ef9(%rip), %rdx    # 0x12d7c9
leaq 0x1119b9(%rip), %rcx    # 0x12d290
movl $0x79f, %r8d            # imm = 0x79F
xorl %eax, %eax
callq 0xbe4ef
movq 0x38(%r12), %rax
testq %rax, %rax
je 0x1b8f4
cmpb $0x0, 0x20(%rax)
je 0x1b909
xorl %r14d, %r14d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x12ce04(%rip), %rsi    # 0x148714
movq %rbx, %rdi
xorl %eax, %eax
callq 0xed3f
leaq 0x111e56(%rip), %rsi    # 0x12d777
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x10(%r12), %rsi
movq %rbp, %rdi
callq 0xe3d7
movq %r13, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x1588d
movq %rbx, %rdi
leaq 0x12cdbe(%rip), %rsi    # 0x148714
xorl %eax, %eax
callq 0xed3f
movq 0x38(%r12), %rdi
movq %r15, %rsi
movq %r13, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x1912a
testq %rax, %rax
je 0x1b98f
movq %rax, %r14
leaq 0x18044e(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
jmp 0x1b8f7
leaq 0x12cd7e(%rip), %rsi    # 0x148714
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xed3f
jmp 0x1b8f7
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_func_s_expand_init1
er_t xoico_func_s_expand_init1( const xoico_func_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_func.x:327:1
    
    if( !o->expandable ) return  0;
    if( !o->register_in_function_manager ) return  0;
    
    sc_t sc_global_name = xoico_compiler_s_nameof(xoico_host_a_compiler(host),o->global_name );
    
    x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FUNC( #<sc_t> );\n",
        indent,
        sc_global_name
    );
    
    return  0;
}

// Assembly:
cmpb $0x1, 0x28(%rdi)
jne 0x1ba9e
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
cmpb $0x1, 0x2b(%rdi)
jne 0x1ba90
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %r12
movq (%rsi), %r13
leaq 0x176cc3(%rip), %rax    # 0x1926a0
movl 0x176cbd(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1ba37
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1ba37
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1ba37
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1ba40
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1ba67
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x176c44(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
callq *0x20(%rbp)
movq 0x10(%r15), %rsi
movq %rax, %rdi
callq 0xe3d7
leaq 0x111d68(%rip), %rsi    # 0x12d7e8
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xed3f
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_funcs_s_replace_d
er_t xoico_funcs_s_replace_d( xoico_funcs_s* o, sz_t idx, xoico_func_s* func )
{
    // xoico_funcs.x:68:5
    
    ASSERT( idx >= 0 && idx < o->size );
    xoico_func_s_attach( &(o->data[ idx ] ),  NULL);
    for(sz_t i = idx + 1; i < o->size; i++ ) o->data[ i - 1 ] = o->data[ i ];
    o->data[ o->size - 1 ] = func;
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
testq %rsi, %rsi
js 0x1c023
cmpq %r15, 0x10(%r14)
ja 0x1c04c
leaq 0x11161d(%rip), %rdi    # 0x12d647
leaq 0x1117de(%rip), %rsi    # 0x12d80f
leaq 0x1117f1(%rip), %rdx    # 0x12d829
leaq 0x111251(%rip), %rcx    # 0x12d290
movl $0x803, %r8d            # imm = 0x803
xorl %eax, %eax
callq 0xbe4ef
movq 0x8(%r14), %r12
testq %r12, %r12
je 0x1c075
movq (%r12,%r15,8), %rdi
callq 0x19764
movq $0x0, (%r12,%r15,8)
jmp 0x1c075
movq 0x8(%r14), %rax
movq (%rax,%r15,8), %rcx
movq %rcx, -0x8(%rax,%r15,8)
incq %r15
movq 0x10(%r14), %rax
cmpq %rax, %r15
jb 0x1c068
movq 0x8(%r14), %rcx
movq %rbx, -0x8(%rcx,%rax,8)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_indef_typedef
er_t xoico_feature_s_expand_indef_typedef( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:412:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    x_sink_push_fa(sink," \\\n#rn{ }  typedef ", indent );
    BLM_TRY(xoico_signature_s_expand_ret(&(o->signature),host, sink ))
    x_sink_push_fa(sink," (*#<sc_t>)(", xoico_compiler_s_nameof(compiler,o->function_pointer_name ) );
    BLM_TRY(xoico_arg_s_expand(o->signature.arg_o,host, sink ))
    BLM_TRY(xoico_args_s_expand(&(o->signature.args),host, false, sink ))
    x_sink_push_fa(sink," );" );
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x1e08b
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movq (%rsi), %r13
leaq 0x174730(%rip), %rax    # 0x1926a0
movl 0x17472a(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1dfca
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1dfca
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1dfca
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1dfd3
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1dffa
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x1746b1(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r14, %rdi
callq *0x20(%rbp)
movq %rax, %r13
leaq 0x10fd12(%rip), %rsi    # 0x12dd1c
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x28(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x11760
movq 0xe0(%r15), %rsi
movq %r13, %rdi
callq 0xe3d7
leaq 0x10fcf4(%rip), %rsi    # 0x12dd30
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x58(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1348e
addq $0x60, %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x13f64
leaq 0x12572c(%rip), %rsi    # 0x14379f
movq %rbx, %rdi
xorl %eax, %eax
callq 0xed3f
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_spect_declaration
er_t xoico_feature_s_expand_spect_declaration( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:427:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    x_sink_push_fa(sink," \\\n#rn{ }#<sc_t> #<sc_t>;", indent, xoico_compiler_s_nameof(compiler,o->function_pointer_name ), xoico_compiler_s_nameof(compiler,o->signature.name ) );
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x1e195
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r15
movq (%rsi), %r13
leaq 0x1745e4(%rip), %rax    # 0x1926a0
movl 0x1745de(%rip), %ecx    # 0x1926a0
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1e116
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1e116
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1e116
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1e11f
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1e146
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x174565(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
callq *0x20(%rbp)
movq %rax, %r12
movq 0xe0(%r15), %rsi
movq %rax, %rdi
callq 0xe3d7
movq %rax, %r13
movq 0x10(%r15), %rsi
movq %r12, %rdi
callq 0xe3d7
leaq 0x10fbc9(%rip), %rsi    # 0x12dd3d
movq %r14, %rdi
movq %rbx, %rdx
movq %r13, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xed3f
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_indef_declaration
er_t xoico_feature_s_expand_indef_declaration( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:458:1
    
    if( !o->expandable ) return  0;
    {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,host, indent + 2, sink ))
    }}return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x1e4f5
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r13
cmpq $0x0, 0xb0(%rdi)
je 0x1e4f1
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
addq $0x2, %r15
xorl %ebx, %ebx
movq 0xa8(%r13), %rax
movq (%rax,%rbx,8), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x1b5f4
testq %rax, %rax
jne 0x1e4f8
incq %rbx
cmpq 0xb0(%r13), %rbx
jb 0x1e4c7
xorl %eax, %eax
jmp 0x1e50d
xorl %eax, %eax
retq
movq %rax, %rbp
leaq 0x17d8ce(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %rbp, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_definition
er_t xoico_feature_s_expand_definition( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:467:1
    
    if( !o->expandable ) return  0;
    {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_definition(func,host, indent, sink ))
    }}return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x1e576
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r13
cmpq $0x0, 0xb0(%rdi)
je 0x1e572
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
xorl %ebx, %ebx
movq 0xa8(%r13), %rax
movq (%rax,%rbx,8), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x1b7f3
testq %rax, %rax
jne 0x1e579
incq %rbx
cmpq 0xb0(%r13), %rbx
jb 0x1e548
xorl %eax, %eax
jmp 0x1e58e
xorl %eax, %eax
retq
movq %rax, %rbp
leaq 0x17d84d(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
movq %rbp, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_expand_init1
er_t xoico_feature_s_expand_init1( const xoico_feature_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_feature.x:476:1
    
    if( !o->expandable ) return  0;
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    sc_t sc_global_name = xoico_compiler_s_nameof(compiler,o->signature.global_name );
    
    x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FEATURE( #<sc_t> );\n", indent, sc_global_name );
    if( o->st_default_func_name.size > 0 )
    {
        x_sink_push_fa(sink,"#rn{ }BCORE_REGISTER_FFUNC( #<sc_t>, #<sc_t>_#<sc_t> );\n",
            indent,
            sc_global_name,
            xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) ),
            o->st_default_func_name.sc
        );
    }
    return  0;
}

// Assembly:
cmpb $0x1, 0x115(%rdi)
jne 0x1e76e
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r12
movq %rdi, %r15
movq %rcx, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq (%rsi), %r13
leaq 0x1740ce(%rip), %r14    # 0x1926a0
movl 0x1740c8(%rip), %eax    # 0x1926a0
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r14,%rax,8), %rcx
movq 0x18(%r14,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x1e62b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x1e62b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x1e62b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1e634
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0x1e65b
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbx
leaq 0x174050(%rip), %rdi    # 0x1926a0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
callq *0x20(%rbx)
movq %rax, %rbp
movq 0x20(%r15), %rsi
movq %rax, %rdi
callq 0xe3d7
movq %rax, %r13
leaq 0x10f715(%rip), %rsi    # 0x12dd8f
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xed3f
cmpq $0x0, 0xf8(%r15)
je 0x1e760
movq (%r12), %rbx
movl 0x173ffa(%rip), %eax    # 0x1926a0
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r14,%rax,8), %rcx
movq 0x18(%r14,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x1e6f9
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x1e6f9
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x1e6f9
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x1e702
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x1e729
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %rbx, %rsi
callq 0xe9bc5
movq %rax, %r14
leaq 0x173f82(%rip), %rdi    # 0x1926a0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
callq *0x30(%r14)
movq %rbp, %rdi
movq %rax, %rsi
callq 0xe3d7
movq 0xf0(%r15), %r9
leaq 0x10f670(%rip), %rsi    # 0x12ddb9
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq %r13, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xed3f
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_get_traitline_feature_from_name
const xoico_feature_s* xoico_group_s_get_traitline_feature_from_name( const xoico_group_s* o, tp_t name )
{
    // xoico_group.x:158:5
    
    if( !o ) return  NULL;
    const xoico_feature_s** p_feature = ( const xoico_feature_s** )bcore_hmap_tpvd_s_get(&(o->hmap_feature),name );
    return  p_feature ? *p_feature : xoico_group_s_get_traitline_feature_from_name(xoico_group_s_get_trait_group(o),name );
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x20bab
movq %rsi, %r14
movq %rdi, %r15
xorl %ebx, %ebx
leaq 0x150(%r15), %rdi
movq %r14, %rsi
callq 0xca94f
testq %rax, %rax
jne 0x20baf
movq 0xb0(%r15), %rsi
cmpq 0xa8(%r15), %rsi
je 0x20bb2
movq 0x140(%r15), %rdi
addq $0x50, %rdi
callq 0xca94f
testq %rax, %rax
je 0x20bb2
movq (%rax), %r15
testq %r15, %r15
jne 0x20b68
jmp 0x20bb2
xorl %ebx, %ebx
jmp 0x20bb2
movq (%rax), %rbx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_get_traitline_func_from_name
const xoico_func_s* xoico_group_s_get_traitline_func_from_name( const xoico_group_s* o, tp_t name )
{
    // xoico_group.x:165:5
    
    if( !o ) return  NULL;
    const xoico_func_s** p_func = ( const xoico_func_s** )bcore_hmap_tpvd_s_get(&(o->hmap_func),name );
    return  p_func ? *p_func : xoico_group_s_get_traitline_func_from_name(xoico_group_s_get_trait_group(o),name );
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x20c10
movq %rsi, %r14
movq %rdi, %r15
xorl %ebx, %ebx
leaq 0x178(%r15), %rdi
movq %r14, %rsi
callq 0xca94f
testq %rax, %rax
jne 0x20c14
movq 0xb0(%r15), %rsi
cmpq 0xa8(%r15), %rsi
je 0x20c17
movq 0x140(%r15), %rdi
addq $0x50, %rdi
callq 0xca94f
testq %rax, %rax
je 0x20c17
movq (%rax), %r15
testq %r15, %r15
jne 0x20bcd
jmp 0x20c17
xorl %ebx, %ebx
jmp 0x20c17
movq (%rax), %rbx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_get_traitline_member_func_from_name
const xoico_func_s* xoico_group_s_get_traitline_member_func_from_name( const xoico_group_s* o, tp_t name )
{
    // xoico_group.x:172:5
    
    if( !o ) return  NULL;
    const xoico_func_s** p_func = ( const xoico_func_s** )bcore_hmap_tpvd_s_get(&(o->hmap_func),name );
    if( p_func && xoico_func_s_as_member(*(p_func)) ) return  (*(p_func));
    return  xoico_group_s_get_traitline_member_func_from_name(xoico_group_s_get_trait_group(o),name );
}

// Assembly:
testq %rdi, %rdi
je 0x20c8d
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x178(%r14), %rdi
movq %rbx, %rsi
callq 0xca94f
testq %rax, %rax
je 0x20c56
movq (%rax), %rax
movq 0x40(%rax), %rcx
testq %rcx, %rcx
je 0x20c56
cmpq $0x0, 0x50(%rcx)
jne 0x20c85
movq 0xb0(%r14), %rsi
cmpq 0xa8(%r14), %rsi
je 0x20c83
movq 0x140(%r14), %rdi
addq $0x50, %rdi
callq 0xca94f
testq %rax, %rax
je 0x20c83
movq (%rax), %r14
testq %r14, %r14
jne 0x20c2f
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_recursive
er_t xoico_group_s_parse_name_recursive( const xoico_group_s* o, x_source* source, st_s* name )
{
    // xoico_group.x:281:1
    
    if( x_source_parse_bl(source,"#?':'" ) )
    {
        if( o->lexical_parent )
        {
            BLM_TRY(xoico_group_s_parse_name_recursive(o->lexical_parent,source, name ))
        }
        else
        {
            return  x_source_parse_error_fa(source,"Too many colons: Namespace depth exceeded." );
        }
    }
    else
    {BLM_INIT_LEVEL(1);
        st_s_copy(name,&(o->st_name ));
        st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        BLM_TRY(x_source_parse_fa(source,"#name", s ))
        if( s->size > 0 ) st_s_push_fa(name,"_#<sc_t>", s->sc );
    BLM_DOWN();}
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq (%rsi), %r12
leaq 0x17bab2(%rip), %rax    # 0x19ccc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x2126c
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x2126c
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x2126c
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x21275
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x2129c
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x17ba37(%rip), %rdi    # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
leaq 0x10ccdb(%rip), %rdx    # 0x12df7e
movq %r13, %rdi
movq %r14, %rsi
callq 0xffe2b
testb %al, %al
je 0x212e2
movq 0x20(%r15), %rdi
testq %rdi, %rdi
je 0x21365
movq %r14, %rsi
movq %rbx, %rdx
callq 0x211f6
testq %rax, %rax
je 0x213a9
movq %rax, %r14
leaq 0x17aaf3(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
jmp 0x2135e
leaq 0x17aae7(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x10(%rsp), %r12
movq %r12, 0x8(%rsp)
movq %r12, %rdi
callq 0xd6675
movq $0x1, 0x10(%r12)
addq $0x88, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1094fa
xorl %eax, %eax
callq 0x109c82
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movl $0x1, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r15
leaq 0x122f50(%rip), %rsi    # 0x144294
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
je 0x21383
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xd6d2c
jmp 0x213ac
leaq 0x10cbe6(%rip), %rsi    # 0x12df52
movq %r14, %rdi
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xde10
cmpq $0x0, 0x10(%r15)
je 0x2139f
movq 0x8(%r15), %rdx
leaq 0x10c9ee(%rip), %rsi    # 0x12dd83
movq %rbx, %rdi
xorl %eax, %eax
callq 0x10a8a5
leaq 0x8(%rsp), %rdi
callq 0xd6d0d
xorl %r14d, %r14d
movq %r14, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_st
er_t xoico_group_s_parse_name_st( const xoico_group_s* o, x_source* source, st_s* name )
{
    // xoico_group.x:306:1
    
    if( x_source_parse_bl(source," #?':'" ) )
    {
        BLM_TRY(xoico_group_s_parse_name_recursive(o,source, name ))
    }
    else
    {
        BLM_TRY(x_source_parse_fa(source," #name", name ))
    }
    
    if( name->size > 0 ) xoico_compiler_s_entypeof(o->compiler,name->sc );
    
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq (%rsi), %r12
leaq 0x17b8ef(%rip), %rax    # 0x19ccc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x2142f
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x2142f
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x2142f
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x21438
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x2145f
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x17b874(%rip), %rdi    # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
leaq 0x10cb17(%rip), %rdx    # 0x12df7d
movq %r13, %rdi
movq %r15, %rsi
callq 0xffe2b
testb %al, %al
je 0x21485
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x211f6
jmp 0x21499
leaq 0x122e07(%rip), %rsi    # 0x144293
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
je 0x214b2
movq %rax, %r15
leaq 0x17a928(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
jmp 0x214d1
cmpq $0x0, 0x10(%r14)
je 0x214ce
movq 0x8(%r14), %rsi
movl $0x140, %edi            # imm = 0x140
addq 0x140(%rbx), %rdi
callq 0xd3d8e
xorl %r15d, %r15d
movq %r15, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse_name_tp
er_t xoico_group_s_parse_name_tp( const xoico_group_s* o, x_source* source, tp_t* name )
{
    // xoico_group.x:324:1
    BLM_INIT_LEVEL(0);
    st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
    
    if( x_source_parse_bl(source," #?':'" ) )
    {
        BLM_TRY(xoico_group_s_parse_name_recursive(o,source, s ))
    }
    else
    {
        BLM_TRY(x_source_parse_fa(source," #name", s ))
    }
    
    if( s->size == 0 ) BLM_TRY(x_source_parse_error_fa(source,"Identifier expected." ))
    
    if( (name) ) (*(name)) = xoico_compiler_s_entypeof(o->compiler,s->sc );
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
leaq 0x17a8d4(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0xd6675
movq $0x0, 0x10(%r12)
xorl %eax, %eax
callq 0x109c82
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r12
movq (%r15), %r13
leaq 0x17b788(%rip), %rax    # 0x19ccc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x21596
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x21596
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x21596
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2159f
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x215c6
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x17b70d(%rip), %rdi    # 0x19ccc8
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
leaq 0x10c9b0(%rip), %rdx    # 0x12df7d
movq %rbp, %rdi
movq %r15, %rsi
callq 0xffe2b
testb %al, %al
je 0x215ec
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x211f6
jmp 0x21600
leaq 0x122ca0(%rip), %rsi    # 0x144293
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
je 0x2160a
movq %rax, %r13
jmp 0x21633
cmpq $0x0, 0x10(%r12)
je 0x2164f
testq %rbx, %rbx
je 0x21630
movq 0x8(%r12), %rsi
movl $0x140, %edi            # imm = 0x140
addq 0x140(%r14), %rdi
callq 0xd3d8e
movq %rax, (%rbx)
xorl %r13d, %r13d
leaq 0x8(%rsp), %rdi
callq 0xd6d2c
movq %r13, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10bb74(%rip), %rsi    # 0x12d1ca
movq %r15, %rdi
xorl %eax, %eax
callq 0xde10
testq %rax, %rax
jne 0x21605
jmp 0x21612