// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/textutils.c
// Function: sscan_string
static char *sscan_string(char *s)
{
    char *d = s;
    int d1, d2, d3, d4;

    for (;;) switch (*s) {
    case '\\':
        switch (s[1]) {
        case '\0': *d = '\0'; return s+1;
        case 'b': *d++ = '\b'; s += 2; break;
        case 'f': *d++ = '\f'; s += 2; break;
        case 'n': *d++ = '\n'; s += 2; break;
        case 'r': *d++ = '\r'; s += 2; break;
        case 't': *d++ = '\t'; s += 2; break;
        default:  *d++ = s[1]; s += 2; break;
        case 'u':
            if ((d1 = dehex(s[2])) >= 0 && (d2 = dehex(s[3])) >= 0 &&
                (d3 = dehex(s[4])) >= 0 && (d4 = dehex(s[5])) >= 0) {
                d = encode_utf8(d, d1 << 12 | d2 << 8 | d3 << 4 | d4);
                s += 6;
            }
            break;
        }
        break;

    case '"':
        *d = '\0';
        return s+1;

    case '\0':
        *d = '\0';
        return s;

    default:
        *d++ = *s++;
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x2c(%rbp)
testl %eax, %eax
je 0x4bdb3
jmp 0x4bba8
movl -0x2c(%rbp), %eax
subl $0x22, %eax
je 0x4bd9e
jmp 0x4bbb6
movl -0x2c(%rbp), %eax
subl $0x5c, %eax
jne 0x4bdc4
jmp 0x4bbc4
movq -0x10(%rbp), %rax
movsbl 0x1(%rax), %eax
movl %eax, -0x30(%rbp)
testl %eax, %eax
je 0x4bc24
jmp 0x4bbd5
movl -0x30(%rbp), %eax
subl $0x62, %eax
je 0x4bc3c
jmp 0x4bbdf
movl -0x30(%rbp), %eax
subl $0x66, %eax
je 0x4bc5f
jmp 0x4bbe9
movl -0x30(%rbp), %eax
subl $0x6e, %eax
je 0x4bc82
jmp 0x4bbf7
movl -0x30(%rbp), %eax
subl $0x72, %eax
je 0x4bca5
jmp 0x4bc05
movl -0x30(%rbp), %eax
subl $0x74, %eax
je 0x4bcc8
jmp 0x4bc13
movl -0x30(%rbp), %eax
subl $0x75, %eax
je 0x4bd14
jmp 0x4bceb
movq -0x18(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x4bdeb
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movb $0x8, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movb $0xc, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movb $0xa, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movb $0xd, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movb $0x9, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x10(%rbp), %rax
movb 0x1(%rax), %cl
movq -0x18(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x18(%rbp)
movb %cl, (%rax)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
movq -0x10(%rbp), %rax
movsbl 0x2(%rax), %edi
callq 0x4b5f0
movl %eax, -0x1c(%rbp)
cmpl $0x0, %eax
jl 0x4bd9a
movq -0x10(%rbp), %rax
movsbl 0x3(%rax), %edi
callq 0x4b5f0
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
jl 0x4bd9a
movq -0x10(%rbp), %rax
movsbl 0x4(%rax), %edi
callq 0x4b5f0
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
jl 0x4bd9a
movq -0x10(%rbp), %rax
movsbl 0x5(%rax), %edi
callq 0x4b5f0
movl %eax, -0x28(%rbp)
cmpl $0x0, %eax
jl 0x4bd9a
movq -0x18(%rbp), %rdi
movl -0x1c(%rbp), %esi
shll $0xc, %esi
movl -0x20(%rbp), %eax
shll $0x8, %eax
orl %eax, %esi
movl -0x24(%rbp), %eax
shll $0x4, %eax
orl %eax, %esi
orl -0x28(%rbp), %esi
callq 0x4cb40
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
addq $0x6, %rax
movq %rax, -0x10(%rbp)
jmp 0x4bd9c
jmp 0x4bde6
movq -0x18(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x4bdeb
movq -0x18(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4bdeb
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movb (%rax), %cl
movq -0x18(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x18(%rbp)
movb %cl, (%rax)
jmp 0x4bb94
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)