// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_stamp_create_embedded_string
st_s* xoico_stamp_create_embedded_string( const st_s* s )
{
    // xoico_stamp.x:163:1
    
    st_s* out = st_s_create();
    for(sz_t i = 0; i < s->size; i++ )
    {
        if( s->data[ i ] == '/' && s->data[ i + 1 ] == '/' )
        {
            while( i < s->size && s->data[ i ] != '\n' ) i++;
        }
        else if( s->data[ i ] == '/' && s->data[ i + 1 ] == '*' )
        {
            while( i < s->size )
            {
                if( s->data[ i ] == '*' && s->data[ i + 1 ] == '/' )
                {
                    if( out->data[ out->size - 1 ] != ' ' ) st_s_push_char(out,' ' );
                    i += 2;
                    break;
                }
                i++;
            }
        }
        else if( s->data[ i ] == '"' )
        {
            st_s_push_char(out,'\\' );
            st_s_push_char(out,'"' );
            i++;
            while( i < s->size && s->data[ i ] != '"' ) st_s_push_char(out,s->data[ i++ ] );
            if( s->data[ i ] == '"' )
            {
                st_s_push_char(out,'\\' );
                st_s_push_char(out,'"' );
            }
        }
        else if( s->data[ i ] == '\n' )
        {
            if( out->data[ out->size - 1 ] != ' ' ) st_s_push_char(out,' ' );
        }
        else if( s->data[ i ] == '\t' )
        {
            if( out->data[ out->size - 1 ] != ' ' ) st_s_push_char(out,' ' );
        }
        else if( s->data[ i ] == ' ' )
        {
            if( out->data[ out->size - 1 ] != ' ' ) st_s_push_char(out,' ' );
        }
        else
        {
            st_s_push_char(out,s->data[ i ] );
        }
    }
    if( out->size > 0 && out->data[ out->size - 1 ] == ' ' )
    {
        out->data[ out->size - 1 ] = 0;
        out->size--;
    }
    return  out;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
xorl %eax, %eax
callq 0x114bbb
movq %rax, %rbx
movq 0x10(%r14), %rax
testq %rax, %rax
je 0x2c901
xorl %r15d, %r15d
movq 0x8(%r14), %rcx
movzbl (%rcx,%r15), %edx
cmpl $0x2f, %edx
jne 0x2c859
cmpb $0x2f, 0x1(%rcx,%r15)
jne 0x2c811
cmpq %rax, %r15
jae 0x2c8f1
cmpb $0xa, (%rcx,%r15)
je 0x2c8f1
incq %r15
cmpq %r15, %rax
jne 0x2c7fc
jmp 0x2c851
cmpl $0x2f, %edx
jne 0x2c859
cmpb $0x2a, 0x1(%rcx,%r15)
jne 0x2c859
cmpq %rax, %r15
jae 0x2c8f1
addq $0x2, %r15
movq %rax, %rdx
negq %rdx
cmpb $0x2a, -0x2(%rcx,%r15)
jne 0x2c841
cmpb $0x2f, -0x1(%rcx,%r15)
je 0x2c8ab
leaq (%rdx,%r15), %rsi
incq %rsi
incq %r15
cmpq $0x2, %rsi
jne 0x2c831
movq %rax, %r15
jmp 0x2c8f1
cmpl $0x1f, %edx
jg 0x2c86a
cmpl $0x9, %edx
je 0x2c8ab
cmpl $0xa, %edx
je 0x2c8ab
jmp 0x2c8c4
cmpl $0x20, %edx
je 0x2c8ab
cmpl $0x22, %edx
jne 0x2c8c4
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x115381
movq %rbx, %rdi
movl $0x22, %esi
callq 0x115381
incq %r15
cmpq 0x10(%r14), %r15
jae 0x2c8cc
movq 0x8(%r14), %rax
movb (%rax,%r15), %al
cmpb $0x22, %al
je 0x2c8cc
movsbl %al, %esi
movq %rbx, %rdi
jmp 0x2c889
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
cmpb $0x20, -0x1(%rax,%rcx)
je 0x2c8f1
movq %rbx, %rdi
movl $0x20, %esi
jmp 0x2c8ec
movsbl %dl, %esi
movq %rbx, %rdi
jmp 0x2c8ec
movq 0x8(%r14), %rax
cmpb $0x22, (%rax,%r15)
jne 0x2c8f1
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x115381
movq %rbx, %rdi
movl $0x22, %esi
callq 0x115381
incq %r15
movq 0x10(%r14), %rax
cmpq %rax, %r15
jb 0x2c7dd
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x2c91e
movq 0x8(%rbx), %rcx
cmpb $0x20, -0x1(%rcx,%rax)
jne 0x2c91e
movb $0x0, -0x1(%rcx,%rax)
decq 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq