// File: /workspace/github_c_makefile_star2_O1/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 0x2dec7
leaq 0x1258fc(%rip), %rsi    # 0x1536ee
movq %r14, %rdi
xorl %eax, %eax
callq 0xee2a
movl $0x74, %eax
movq (%rsp), %rbx
subq %rbx, %rax
testq %rax, %rax
movl $0x0, %ecx
cmovgq %rax, %rcx
leaq 0x10c3d0(%rip), %rsi    # 0x13a1eb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x10c3c6(%rip), %rsi    # 0x13a1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x50(%r15), %rdi
leaq 0x10cf26(%rip), %rsi    # 0x13ad75
callq 0xc84cd
testl %eax, %eax
jne 0x2de75
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x10c3b8(%rip), %rsi    # 0x13a21f
movq %r14, %rdi
movq (%rsp), %rdx
xorl %eax, %eax
callq 0xee2a
testq %r15, %r15
je 0x2dee0
cmpq $0x0, 0x70(%r15)
setne %bl
je 0x2dee2
xorl %ebp, %ebp
movq 0x68(%r15), %rax
movq (%rax,%rbp,8), %rdi
movq (%rsp), %rsi
movq %r14, %rdx
callq 0x281d2
movq %rax, %r12
testq %rax, %rax
je 0x2deb4
leaq 0x17af27(%rip), %rax    # 0x1a8dd0
movq (%rax), %rdi
callq 0xe0b30
movq %r12, %r13
testq %r12, %r12
jne 0x2dee2
incq %rbp
cmpq 0x70(%r15), %rbp
setb %bl
jb 0x2de86
jmp 0x2dee2
movq 0x50(%r15), %rdi
leaq 0x10cea3(%rip), %rsi    # 0x13ad75
callq 0xc84cd
testl %eax, %eax
jne 0x2deeb
jmp 0x2ddeb
xorl %ebx, %ebx
testb $0x1, %bl
jne 0x2e3c7
cmpb $0x1, 0x88(%r15)
jne 0x2e2e0
leaq 0x17aed0(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x38(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xe0431
movq 0x10(%rsp), %r12
movq $0x1, 0x10(%r12)
leaq 0x1257c7(%rip), %rsi    # 0x1536ee
movq %r14, %rdi
xorl %eax, %eax
callq 0xee2a
movl $0x74, %eax
movq (%rsp), %rbx
subq %rbx, %rax
testq %rax, %rax
movl $0x0, %ecx
cmovgq %rax, %rcx
leaq 0x10c29b(%rip), %rsi    # 0x13a1eb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x30(%r15), %rcx
movq 0x50(%r15), %r8
leaq 0x10c291(%rip), %rsi    # 0x13a1fd
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10c2c2(%rip), %rsi    # 0x13a242
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x18(%rsp), %r13
movq %r13, %rdi
callq 0x113f7c
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
movq %r13, %rdx
callq 0xe06ab
movq 0x30(%r15), %rdx
movq 0x50(%r15), %rcx
leaq 0x10adbe(%rip), %rsi    # 0x138d7c
movq %r13, %rdi
xorl %eax, %eax
callq 0x1157cb
leaq 0x10dbc4(%rip), %rsi    # 0x13bb93
leaq 0x10db9e(%rip), %rdx    # 0x13bb74
movq %r13, %rdi
callq 0x116257
movq 0x8(%r13), %rcx
leaq 0x10ae09(%rip), %rsi    # 0x138df2
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ae12(%rip), %rsi    # 0x138e0f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ae07(%rip), %rsi    # 0x138e18
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ae0a(%rip), %rsi    # 0x138e2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ae03(%rip), %rsi    # 0x138e3c
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x80(%r15), %rcx
movq 0x10(%rcx), %rax
testq %rax, %rax
je 0x2e2f2
xorl %ebx, %ebx
movq $0x0, 0x8(%rsp)
movq 0x8(%rcx), %rcx
movzbl (%rcx,%rbx), %ebp
cmpl $0xa, %ebp
je 0x2e1d7
cmpl $0x22, %ebp
je 0x2e12d
cmpl $0x5c, %ebp
jne 0x2e214
movq (%r14), %r13
leaq 0x17ba1e(%rip), %rdx    # 0x1a9ab0
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 0x2e0eb
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2e0eb
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2e0eb
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2e2d3
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2e11b
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x17b9a0(%rip), %rdi    # 0x1a9ab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
leaq 0x10ad24(%rip), %rdx    # 0x138e4c
jmp 0x2e1cd
movq (%r14), %r13
leaq 0x17b979(%rip), %rdx    # 0x1a9ab0
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 0x2e190
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2e190
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2e190
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2e2cb
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2e1c0
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x17b8fb(%rip), %rdi    # 0x1a9ab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
leaq 0x10ac82(%rip), %rdx    # 0x138e4f
callq 0x10908b
jmp 0x2e2b2
leaq 0x1(%rbx), %rcx
cmpq %rax, %rcx
jae 0x2e2b2
movq %r14, %rdi
leaq 0x10ac64(%rip), %rsi    # 0x138e52
xorl %eax, %eax
callq 0xee2a
movq %r14, %rdi
leaq 0x10ac3d(%rip), %rsi    # 0x138e3c
movq (%rsp), %rdx
xorl %eax, %eax
callq 0xee2a
incq 0x8(%rsp)
jmp 0x2e2b2
movq (%r14), %r13
leaq 0x17b892(%rip), %rdx    # 0x1a9ab0
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 0x2e273
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x2e273
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x2e273
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x2e2db
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x2e2a3
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x17b818(%rip), %rdi    # 0x1a9ab0
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movsbl %bpl, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x109065
incq %rbx
movq 0x80(%r15), %rcx
movq 0x10(%rcx), %rax
cmpq %rax, %rbx
jb 0x2e065
jmp 0x2e2e8
xorl %r12d, %r12d
jmp 0x2e194
xorl %r12d, %r12d
jmp 0x2e0ef
xorl %r12d, %r12d
jmp 0x2e277
xorl %r13d, %r13d
jmp 0x2e3c7
movq 0x8(%rsp), %r15
incq %r15
jmp 0x2e2f8
movl $0x1, %r15d
leaq 0x10ab59(%rip), %rsi    # 0x138e58
xorl %r13d, %r13d
movq %r14, %rdi
xorl %eax, %eax
callq 0xee2a
leaq 0x10ab4a(%rip), %rsi    # 0x138e5d
movq %r14, %rdi
movq (%rsp), %rbx
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ab40(%rip), %rsi    # 0x138e6b
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ab51(%rip), %rsi    # 0x138e90
movq %r14, %rdi
movq %rbx, %rdx
movq %r15, %rcx
xorl %eax, %eax
callq 0xee2a
leaq 0x10aad9(%rip), %rsi    # 0x138e2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ab55(%rip), %rsi    # 0x138ebf
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10ab6d(%rip), %rsi    # 0x138eeb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x20(%rsp), %rcx
leaq 0x10ab61(%rip), %rsi    # 0x138ef8
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
movq 0x20(%rsp), %rcx
leaq 0x10ab5e(%rip), %rsi    # 0x138f0e
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xee2a
leaq 0x10(%rsp), %rdi
callq 0xe0b11
movq %r13, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq