// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x70(%rax)
ja 0x1c2d3
movq -0x10(%rbp), %rdi
addq $0x48, %rdi
leaq 0x119dbb(%rip), %rsi    # 0x136080
callq 0x1c810
testb $0x1, %al
jne 0x1c2d3
jmp 0x1c41f
movq -0x28(%rbp), %rdi
leaq 0x136743(%rip), %rsi    # 0x152a21
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xd0(%rbp)
movl $0x74, %esi
subq -0x20(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x16cc0
movq -0xd8(%rbp), %rdi
movq -0xd0(%rbp), %rdx
movq %rax, %rcx
leaq 0x1191d9(%rip), %rsi    # 0x1354fe
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x50(%rax), %r8
leaq 0x1191c5(%rip), %rsi    # 0x135510
movb $0x0, %al
callq 0x56e0
movq -0x10(%rbp), %rdi
addq $0x48, %rdi
leaq 0x119d1f(%rip), %rsi    # 0x136080
callq 0x1c810
testb $0x1, %al
jne 0x1c36c
jmp 0x1c392
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x50(%rax), %r8
leaq 0x1191a7(%rip), %rsi    # 0x135532
movb $0x0, %al
callq 0x56e0
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x1c41d
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x70(%rcx), %rax
jae 0x1c41b
movq -0x30(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x17010
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x1c40b
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x195f3a(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1c803
jmp 0x1c40d
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x1c3a9
jmp 0x1c41d
jmp 0x1c41f
movq -0x10(%rbp), %rax
testb $0x1, 0x88(%rax)
je 0x1c7fb
leaq 0x195ef9(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x58(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0xbfe80
movq -0x90(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x28(%rbp), %rdi
leaq 0x1365a3(%rip), %rsi    # 0x152a21
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xe0(%rbp)
movl $0x74, %esi
subq -0x20(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x16cc0
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rdx
movq %rax, %rcx
leaq 0x119039(%rip), %rsi    # 0x1354fe
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x50(%rax), %r8
leaq 0x119025(%rip), %rsi    # 0x135510
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x119054(%rip), %rsi    # 0x135555
movb $0x0, %al
callq 0x56e0
leaq -0xb0(%rbp), %rdi
callq 0xfe150
movq -0x58(%rbp), %rdi
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
leaq -0xb0(%rbp), %rdx
callq 0xc0220
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rcx
leaq -0xb0(%rbp), %rdi
leaq 0x117b88(%rip), %rsi    # 0x1340d4
movb $0x0, %al
callq 0x100210
leaq -0xb0(%rbp), %rdi
leaq 0x11a93d(%rip), %rsi    # 0x136e9e
leaq 0x11a917(%rip), %rdx    # 0x136e7f
callq 0x101660
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0xa8(%rbp), %rcx
leaq 0x117bc4(%rip), %rsi    # 0x134147
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117bcb(%rip), %rsi    # 0x134164
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117bbe(%rip), %rsi    # 0x13416d
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117bbf(%rip), %rsi    # 0x134184
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117bb6(%rip), %rsi    # 0x134191
movb $0x0, %al
callq 0x56e0
movq $0x0, -0xb8(%rbp)
movq $0x0, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x80(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jae 0x1c706
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rax
movq 0x8(%rax), %rax
movq -0xc0(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xc1(%rbp)
movzbl -0xc1(%rbp), %eax
movl %eax, -0xec(%rbp)
subl $0xa, %eax
je 0x1c685
jmp 0x1c647
movl -0xec(%rbp), %eax
subl $0x22, %eax
je 0x1c673
jmp 0x1c654
movl -0xec(%rbp), %eax
subl $0x5c, %eax
jne 0x1c6dd
jmp 0x1c661
movq -0x28(%rbp), %rdi
leaq 0x117b35(%rip), %rsi    # 0x1341a1
callq 0xc460
jmp 0x1c6ed
movq -0x28(%rbp), %rdi
leaq 0x117b26(%rip), %rsi    # 0x1341a4
callq 0xc460
jmp 0x1c6ed
movq -0xc0(%rbp), %rax
addq $0x1, %rax
movq -0x10(%rbp), %rcx
movq 0x80(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jae 0x1c6db
movq -0x28(%rbp), %rdi
leaq 0x117afb(%rip), %rsi    # 0x1341a7
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117acf(%rip), %rsi    # 0x134191
movb $0x0, %al
callq 0x56e0
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x1c6ed
movq -0x28(%rbp), %rdi
movsbl -0xc1(%rbp), %esi
callq 0xb4d0
jmp 0x1c6ef
movq -0xc0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc0(%rbp)
jmp 0x1c5f8
movq -0x28(%rbp), %rdi
leaq 0x117a9c(%rip), %rsi    # 0x1341ad
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117a8b(%rip), %rsi    # 0x1341b2
movb $0x0, %al
callq 0x56e0
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117a71(%rip), %rsi    # 0x1341c0
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0xb8(%rbp), %rcx
leaq 0x117a79(%rip), %rsi    # 0x1341e5
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117a02(%rip), %rsi    # 0x134184
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117a7c(%rip), %rsi    # 0x134214
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x117a92(%rip), %rsi    # 0x134240
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0xa8(%rbp), %rcx
leaq 0x117a82(%rip), %rsi    # 0x13424d
movb $0x0, %al
callq 0x56e0
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0xa8(%rbp), %rcx
leaq 0x117a7b(%rip), %rsi    # 0x134263
movb $0x0, %al
callq 0x56e0
leaq -0x90(%rbp), %rdi
callq 0xc06e0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq