// File: /workspace/github_c_makefile_star2_O3/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 0x109c82
movq %rax, %rbx
movq 0x10(%r14), %rax
testq %rax, %rax
je 0x2aca3
xorl %r15d, %r15d
movq 0x8(%r14), %rcx
movb (%rcx,%r15), %dl
movzbl %dl, %esi
cmpl $0x1f, %esi
jle 0x2abd2
cmpl $0x20, %esi
je 0x2abdc
cmpl $0x22, %esi
je 0x2abfd
cmpl $0x2f, %esi
jne 0x2abf5
movzbl 0x1(%rcx,%r15), %esi
cmpl $0x2a, %esi
je 0x2ac6b
cmpl $0x2f, %esi
jne 0x2abf5
cmpq %rax, %r15
jae 0x2ac59
cmpb $0xa, (%rcx,%r15)
je 0x2ac59
incq %r15
cmpq %r15, %rax
jne 0x2abba
jmp 0x2ac9e
cmpl $0x9, %esi
je 0x2abdc
cmpl $0xa, %esi
jne 0x2abf5
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
cmpb $0x20, -0x1(%rax,%rcx)
je 0x2ac59
movq %rbx, %rdi
movl $0x20, %esi
jmp 0x2ac54
movsbl %dl, %esi
movq %rbx, %rdi
jmp 0x2ac54
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x10a448
movq %rbx, %rdi
movl $0x22, %esi
callq 0x10a448
incq %r15
cmpq 0x10(%r14), %r15
jae 0x2ac34
movq 0x8(%r14), %rax
movb (%rax,%r15), %al
cmpb $0x22, %al
je 0x2ac34
movsbl %al, %esi
movq %rbx, %rdi
jmp 0x2ac12
movq 0x8(%r14), %rax
cmpb $0x22, (%rax,%r15)
jne 0x2ac59
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x10a448
movq %rbx, %rdi
movl $0x22, %esi
callq 0x10a448
incq %r15
movq 0x10(%r14), %rax
cmpq %rax, %r15
jb 0x2ab7e
jmp 0x2aca3
cmpq %rax, %r15
jae 0x2ac59
addq $0x2, %r15
movq %rax, %rdx
negq %rdx
cmpb $0x2a, -0x2(%rcx,%r15)
jne 0x2ac8e
cmpb $0x2f, -0x1(%rcx,%r15)
je 0x2abdc
leaq (%rdx,%r15), %rsi
incq %rsi
incq %r15
cmpq $0x2, %rsi
jne 0x2ac7a
movq %rax, %r15
jmp 0x2ac59
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x2acc0
movq 0x8(%rbx), %rcx
cmpb $0x20, -0x1(%rcx,%rax)
jne 0x2acc0
movb $0x0, -0x1(%rcx,%rax)
decq 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq