// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_embedded_data_s_expand_definition
er_t xoico_embedded_data_s_expand_definition( const xoico_embedded_data_s* o, const xoico_host* host, sz_t indent, x_sink* sink )
{
    // xoico_embedded_data.x:83:5
    
    if( o->embed_method == TYPEOF_as_string || o->embed_method == TYPEOF_as_string_without_comments )
    {
        x_sink_push_fa(sink,"#rn{ }st_s* #<sc_t>( void )\n", indent, xoico_host_a_nameof(host,o->function_name ) );
        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->arr->size; i++ )
        {
            u0_t c = o->arr->data[ i ];
            switch( c )
            {
                case '\\': x_sink_push_sc(sink,"\\\\" ); break;
                case '"' : x_sink_push_sc(sink,"\\\"" ); break;
                case '\n':
                {
                    if( i + 1 < o->arr->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 );
        x_sink_push_fa(sink,"#rn{ }}\n", indent );
    }
    
    return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %rbx
movq %rdi, %r15
movq 0x18(%rdi), %rax
movabsq $0x29f0bb6cbdaf87e3, %rcx # imm = 0x29F0BB6CBDAF87E3
cmpq %rcx, %rax
je 0x13591
movabsq $-0x4513c06eae19ddf9, %rcx # imm = 0xBAEC3F9151E62207
cmpq %rcx, %rax
jne 0x1374a
movq 0x20(%r15), %rax
movq %rsi, %rdi
movq %rax, %rsi
callq 0xdf58
leaq 0x9784b(%rip), %rsi     # 0xaadf2
movq %r14, %rdi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0xdd43
leaq 0x97851(%rip), %rsi     # 0xaae0f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x97846(%rip), %rsi     # 0xaae18
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x97849(%rip), %rsi     # 0xaae2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x97842(%rip), %rsi     # 0xaae3c
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x9783e(%rip), %r13     # 0xaae4c
xorl %ebp, %ebp
xorl %r12d, %r12d
movq 0x10(%r15), %rax
movq 0x10(%rax), %rcx
cmpq %rcx, %rbp
jae 0x13693
movq 0x8(%rax), %rax
movzbl (%rax,%rbp), %eax
cmpl $0xa, %eax
je 0x13650
cmpl $0x22, %eax
je 0x1363f
cmpl $0x5c, %eax
jne 0x13683
movq %r14, %rdi
movq %r13, %rsi
jmp 0x13649
movq %r14, %rdi
leaq 0x97806(%rip), %rsi     # 0xaae4f
callq 0x11689
jmp 0x1368e
leaq 0x1(%rbp), %rax
cmpq %rcx, %rax
jae 0x1368e
movq %r14, %rdi
leaq 0x977ef(%rip), %rsi     # 0xaae52
xorl %eax, %eax
callq 0xdd43
movq %r14, %rdi
leaq 0x977c8(%rip), %rsi     # 0xaae3c
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
incq %r12
jmp 0x1368e
movsbl %al, %esi
movq %r14, %rdi
callq 0x10e57
incq %rbp
jmp 0x13613
leaq 0x977be(%rip), %rsi     # 0xaae58
movq %r14, %rdi
xorl %eax, %eax
callq 0xdd43
leaq 0x977b2(%rip), %rsi     # 0xaae5d
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
incq %r12
leaq 0x977a9(%rip), %rsi     # 0xaae6b
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x977ba(%rip), %rsi     # 0xaae90
movq %r14, %rdi
movq %rbx, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0xdd43
leaq 0x97742(%rip), %rsi     # 0xaae2f
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x977be(%rip), %rsi     # 0xaaebf
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x977d6(%rip), %rsi     # 0xaaeeb
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x977cf(%rip), %rsi     # 0xaaef8
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
leaq 0x977d1(%rip), %rsi     # 0xaaf0e
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xdd43
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq