// File: /workspace/github_c_makefile_star2_O0/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_QName2s
SOAP_FMAC1
const char*
SOAP_FMAC2
soap_QName2s(struct soap *soap, const char *s)
{ const char *t = NULL;
  if (s)
  { soap->labidx = 0;
    for (;;)
    { size_t n;
      /* skip blanks */
      while (*s && soap_blank(*s))
        s++;
      if (!*s)
        break;
      /* find next QName */
      n = 1;
      while (s[n] && !soap_blank(s[n]))
        n++;
      /* normal prefix: pass string as is */
      if (*s != '"')
      { soap_append_lab(soap, s, n);
#ifndef WITH_LEAN
        if ((soap->mode & SOAP_XML_CANONICAL))
        { const char *r = strchr(s, ':');
          if (r)
            soap_utilize_ns(soap, s, r - s);
        }
#endif
      }
      else /* URL-based string prefix */
      { const char *q;
        s++;
        q = strchr(s, '"');
        if (q)
        { struct Namespace *p = soap->local_namespaces;
          if (p)
          { for (; p->id; p++)
            { if (p->ns)
                if (!soap_tag_cmp(s, p->ns))
                  break;
              if (p->in)
                if (!soap_tag_cmp(s, p->in))
                  break;
            }
          }
          /* URL is in the namespace table? */
          if (p && p->id)
          { soap_append_lab(soap, p->id, strlen(p->id));
          }
          else /* not in namespace table: create xmlns binding */
          { char *r = soap_strdup(soap, s);
            r[q-s] = '\0';
            sprintf(soap->tmpbuf, "xmlns:_%d", soap->idnum++);
            soap_set_attr(soap, soap->tmpbuf, r);
            soap_append_lab(soap, soap->tmpbuf + 6, strlen(soap->tmpbuf + 6));
          }
          soap_append_lab(soap, q + 1, n - (q-s) - 1);
        }
      }
      /* advance to next and add spacing */
      s += n;
      if (*s)
        soap_append_lab(soap, " ", 1);
    }
    soap_append_lab(soap, SOAP_STR_EOS, 1);
    t = soap_strdup(soap, soap->labbuf);
  }
  return t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x67038
movq -0x8(%rbp), %rax
movq $0x0, 0x6130(%rax)
jmp 0x66cf4
movq -0x10(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x41(%rbp)
je 0x66d2c
movq -0x10(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x42(%rbp)
jl 0x66d26
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
setle %al
movb %al, -0x42(%rbp)
movb -0x42(%rbp), %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x66d35
jmp 0x66d43
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x66cf4
movq -0x10(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x66d51
jmp 0x6700b
movq $0x1, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x43(%rbp)
je 0x66da2
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x44(%rbp)
jl 0x66d9a
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
setle %al
movb %al, -0x44(%rbp)
movb -0x44(%rbp), %al
xorb $-0x1, %al
movb %al, -0x43(%rbp)
movb -0x43(%rbp), %al
testb $0x1, %al
jne 0x66dab
jmp 0x66db9
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x66d59
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0x66e1f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x51780
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x10000, %eax          # imm = 0x10000
cmpl $0x0, %eax
je 0x66e1a
movq -0x10(%rbp), %rdi
movl $0x3a, %esi
callq 0x3130
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x66e18
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rax
subq %rax, %rdx
callq 0x60570
jmp 0x66e1a
jmp 0x66fdc
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x22, %esi
callq 0x3130
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x66fda
movq -0x8(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x66ec6
jmp 0x66e60
movq -0x38(%rbp), %rax
cmpq $0x0, (%rax)
je 0x66ec4
movq -0x38(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x66e8f
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x4ff40
cmpl $0x0, %eax
jne 0x66e8d
jmp 0x66ec4
jmp 0x66e8f
movq -0x38(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x66eb4
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x4ff40
cmpl $0x0, %eax
jne 0x66eb2
jmp 0x66ec4
jmp 0x66eb4
jmp 0x66eb6
movq -0x38(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x38(%rbp)
jmp 0x66e60
jmp 0x66ec6
cmpq $0x0, -0x38(%rbp)
je 0x66f0b
movq -0x38(%rbp), %rax
cmpq $0x0, (%rax)
je 0x66f0b
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0x3100
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
callq 0x51780
jmp 0x66fb3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x538b0
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rdx
subq %rdx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x8(%rbp), %rdi
addq $0x16538, %rdi          # imm = 0x16538
movq -0x8(%rbp), %rax
movl 0x5f40(%rax), %edx
movl %edx, %ecx
addl $0x1, %ecx
movl %ecx, 0x5f40(%rax)
leaq 0x13c41(%rip), %rsi     # 0x7ab97
movb $0x0, %al
callq 0x3370
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x16538, %rsi          # imm = 0x16538
movq -0x40(%rbp), %rdx
callq 0x60c30
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rax
addq $0x16538, %rax          # imm = 0x16538
addq $0x6, %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
addq $0x16538, %rdi          # imm = 0x16538
addq $0x6, %rdi
callq 0x3100
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rax, %rdx
callq 0x51780
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x1, %rsi
movq -0x20(%rbp), %rdx
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
subq %rax, %rdx
subq $0x1, %rdx
callq 0x51780
jmp 0x66fdc
movq -0x20(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpb $0x0, (%rax)
je 0x67006
movq -0x8(%rbp), %rdi
leaq 0x13cc8(%rip), %rsi     # 0x7acc4
movl $0x1, %edx
callq 0x51780
jmp 0x66cf2
movq -0x8(%rbp), %rdi
leaq 0x1346b(%rip), %rsi     # 0x7a481
movl $0x1, %edx
callq 0x51780
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x6120(%rax), %rsi
callq 0x538b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)