// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_source_s_expand_definition
er_t xoico_source_s_expand_definition( const xoico_source_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_source.x:81:5
    
    if( o->size > 0 || st_s_equal_sc(&(o->ext),"h" ) )
    {
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }/*#rn{*}*/\n", indent, sz_max( 0, 116 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
    
        if( st_s_equal_sc(&(o->ext),"h" ) )
        {
            x_sink_push_fa(sink,"#rn{ }##include \"#<sc_t>.#<sc_t>\"\n", indent, o->name.sc, o->ext.sc );
        }
        {const xoico_source_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_group_s* e=__a->data[__i]; BLM_TRY(xoico_group_s_expand_definition(e,indent, sink ))
    }}}
    
    if( o->embed_plain_data_as_string_function )
    {BLM_INIT_LEVEL(1);
        x_sink_push_fa(sink,"\n" );
        x_sink_push_fa(sink,"#rn{ }/*#rn{*}*/\n", indent, sz_max( 0, 116 - indent ) );
        x_sink_push_fa(sink,"#rn{ }// source: #<sc_t>.#<sc_t>\n", indent, o->name.sc, o->ext.sc );
        x_sink_push_fa(sink,"#rn{ }// Embedded as string function.\n", indent );
    
        st_s func_global_name;BLM_T_INIT_SPUSH(st_s, &func_global_name);st_s_push_fa(&(func_global_name),"#<sc_t>_#<sc_t>", o->name.sc, o->ext.sc );
        st_s_replace_sc_sc(&(func_global_name),".", "_" );
    
        x_sink_push_fa(sink,"#rn{ }st_s* #<sc_t>( void )\n", indent, func_global_name.sc );
        x_sink_push_fa(sink,"#rn{ }{\n"                            , indent );
    
        x_sink_push_fa(sink,"#rn{ }    sc_t sc[] =\n", indent );
        x_sink_push_fa(sink,"#rn{ }    {\n" , indent );
        x_sink_push_fa(sink,"#rn{ }        \"" , indent );
    
        sz_t lines = 0;
    
        for(sz_t i = 0; i < o->plain_data->size; i++ )
        {
            u0_t c = o->plain_data->data[ i ];
            switch( c )
            {
                case '\\': x_sink_push_sc(sink,"\\\\" ); break;
                case '"' : x_sink_push_sc(sink,"\\\"" ); break;
                case '\n':
                {
                    if( i + 1 < o->plain_data->size )
                    {
                        x_sink_push_fa(sink,"\\n\",\n" );
                        x_sink_push_fa(sink,"#rn{ }        \"" , indent );
                        lines++;
                    }
                }
                break;
    
                default: x_sink_push_char(sink,c );  break;
            }
        }
        x_sink_push_fa(sink,"\\n\"\n" );
        x_sink_push_fa(sink,"#rn{ }    };\n", indent );
        lines++;
    
        x_sink_push_fa(sink,"#rn{ }    st_s* st = st_s_create();\n", indent );
        x_sink_push_fa(sink,"#rn{ }    for( sz_t i = 0; i < #<sz_t>; i++ )\n", indent, lines );
        x_sink_push_fa(sink,"#rn{ }    {\n", indent );
        x_sink_push_fa(sink,"#rn{ }        st_s_push_sc( st, sc[ i ] );\n", indent );
        x_sink_push_fa(sink,"#rn{ }    }\n", indent );
        x_sink_push_fa(sink,"#rn{ }    return st;\n", indent, func_global_name.sc );
        x_sink_push_fa(sink,"#rn{ }}\n", indent, func_global_name.sc );
    BLM_DOWN();}
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rcx, %r14
movq %rdx, (%rsp)
movq %rdi, %r15
cmpq $0x0, 0x70(%rdi)
je 0x2c1b2
leaq 0x11c616(%rip), %rsi    # 0x148714
movq %r14, %rdi
xorl %eax, %eax
callq 0xed3f
movl $0x74, %eax
movq (%rsp), %rbx
subq %rbx, %rax
testq %rax, %rax
movl $0x0, %ecx
cmovgq %rax, %rcx
leaq 0x1030c4(%rip), %rsi    # 0x12f1eb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x1030ba(%rip), %rsi    # 0x12f1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x50(%r15), %rdi
leaq 0x103c1a(%rip), %rsi    # 0x12fd75
callq 0xbe959
testl %eax, %eax
jne 0x2c181
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x1030ac(%rip), %rsi    # 0x12f21f
movq %r14, %rdi
movq (%rsp), %rdx
xorl %eax, %eax
callq 0xed3f
cmpq $0x0, 0x70(%r15)
je 0x2c1ca
xorl %ebx, %ebx
movq 0x68(%r15), %rax
movq (%rax,%rbx,8), %rdi
movq (%rsp), %rsi
movq %r14, %rdx
callq 0x26b42
testq %rax, %rax
jne 0x2c5b0
incq %rbx
cmpq 0x70(%r15), %rbx
jb 0x2c18a
jmp 0x2c1ca
movq 0x50(%r15), %rdi
leaq 0x103bb8(%rip), %rsi    # 0x12fd75
callq 0xbe959
testl %eax, %eax
je 0x2c0f7
cmpb $0x1, 0x88(%r15)
jne 0x2c5a8
leaq 0x16fbf1(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x38(%rsp), %r12
movq %r12, 0x10(%rsp)
movq %r12, %rdi
callq 0xd6675
movq $0x1, 0x10(%r12)
leaq 0x11c510(%rip), %rsi    # 0x148714
movq %r14, %rdi
xorl %eax, %eax
callq 0xed3f
movl $0x74, %eax
movq (%rsp), %rbx
subq %rbx, %rax
testq %rax, %rax
movl $0x0, %ecx
cmovgq %rax, %rcx
leaq 0x102fbe(%rip), %rsi    # 0x12f1eb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x102fb4(%rip), %rsi    # 0x12f1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x102fe5(%rip), %rsi    # 0x12f242
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x18(%rsp), %r13
movq %r13, %rdi
callq 0x109030
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
movq %r13, %rdx
callq 0xd68d9
movq 0x30(%r15), %rdx
movq 0x50(%r15), %rcx
leaq 0x101ae1(%rip), %rsi    # 0x12dd7c
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a8a5
leaq 0x1048e7(%rip), %rsi    # 0x130b93
leaq 0x1048c1(%rip), %rdx    # 0x130b74
movq %r13, %rdi
callq 0x10b34a
movq 0x8(%r13), %rcx
leaq 0x101b2c(%rip), %rsi    # 0x12ddf2
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101b35(%rip), %rsi    # 0x12de0f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101b2a(%rip), %rsi    # 0x12de18
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101b2d(%rip), %rsi    # 0x12de2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101b26(%rip), %rsi    # 0x12de3c
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x80(%r15), %rcx
movq 0x10(%rcx), %rax
testq %rax, %rax
je 0x2c5c7
xorl %ebx, %ebx
movq $0x0, 0x8(%rsp)
movq 0x8(%rcx), %rcx
movzbl (%rcx,%rbx), %ebp
cmpl $0xa, %ebp
je 0x2c4ac
cmpl $0x22, %ebp
je 0x2c406
cmpl $0x5c, %ebp
jne 0x2c4e9
movq (%r14), %r13
leaq 0x170741(%rip), %rdx    # 0x19cab0
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x2c3c4
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2c3c4
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2c3c4
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2c3cd
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2c3f4
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x1706c7(%rip), %rdi    # 0x19cab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
movq %r14, %rsi
leaq 0x101a4b(%rip), %rdx    # 0x12de4c
jmp 0x2c4a2
movq (%r14), %r13
leaq 0x1706a0(%rip), %rdx    # 0x19cab0
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x2c465
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2c465
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2c465
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2c46e
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2c495
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x170626(%rip), %rdi    # 0x19cab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r12, %rdi
movq %r14, %rsi
leaq 0x1019ad(%rip), %rdx    # 0x12de4f
callq 0xfe4f3
jmp 0x2c587
leaq 0x1(%rbx), %rcx
cmpq %rax, %rcx
jae 0x2c587
movq %r14, %rdi
leaq 0x10198f(%rip), %rsi    # 0x12de52
xorl %eax, %eax
callq 0xed3f
movq %r14, %rdi
leaq 0x101968(%rip), %rsi    # 0x12de3c
movq (%rsp), %rdx
xorl %eax, %eax
callq 0xed3f
incq 0x8(%rsp)
jmp 0x2c587
movq (%r14), %r13
leaq 0x1705bd(%rip), %rdx    # 0x19cab0
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x2c548
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2c548
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2c548
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2c551
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2c578
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %r12
leaq 0x170543(%rip), %rdi    # 0x19cab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movsbl %bpl, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0xfe4cd
incq %rbx
movq 0x80(%r15), %rcx
movq 0x10(%rcx), %rax
cmpq %rax, %rbx
jb 0x2c342
movq 0x8(%rsp), %r15
incq %r15
jmp 0x2c5cd
xorl %r13d, %r13d
jmp 0x2c69c
movq %rax, %r13
leaq 0x16f816(%rip), %rax    # 0x19bdd0
movq (%rax), %rdi
callq 0xd6d2c
jmp 0x2c69c
movl $0x1, %r15d
leaq 0x101884(%rip), %rsi    # 0x12de58
xorl %r13d, %r13d
movq %r14, %rdi
xorl %eax, %eax
callq 0xed3f
leaq 0x101875(%rip), %rsi    # 0x12de5d
movq %r14, %rdi
movq (%rsp), %rbx
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x10186b(%rip), %rsi    # 0x12de6b
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x10187c(%rip), %rsi    # 0x12de90
movq %r14, %rdi
movq %rbx, %rdx
movq %r15, %rcx
xorl %eax, %eax
callq 0xed3f
leaq 0x101804(%rip), %rsi    # 0x12de2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101880(%rip), %rsi    # 0x12debf
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x101898(%rip), %rsi    # 0x12deeb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x20(%rsp), %rcx
leaq 0x10188c(%rip), %rsi    # 0x12def8
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
movq 0x20(%rsp), %rcx
leaq 0x101889(%rip), %rsi    # 0x12df0e
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xed3f
leaq 0x10(%rsp), %rdi
callq 0xd6d0d
movq %r13, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq