// File: /workspace/github_c_makefile_star2_O1/hkshenSmart[P]ONVIF-discovery_cs/stdsoap2.c
// Function: soap_wstring_in
SOAP_FMAC1
wchar_t *
SOAP_FMAC2
soap_wstring_in(struct soap *soap, int flag, long minlen, long maxlen)
{ wchar_t *s;
  register int i, n = 0, f = 0;
  register long l = 0;
  register soap_wchar c;
  char *t = NULL;
  DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Reading wide string content\n"));
  if (soap->peeked)
  { if (*soap->tag)
    {
#ifndef WITH_LEAN
      struct soap_attribute *tp;
      t = soap->tmpbuf;
      *t = '<';
      t[sizeof(soap->tmpbuf)-1] = '\0';
      strncpy(t + 1, soap->tag, sizeof(soap->tmpbuf) - 2);
      t += strlen(t);
      for (tp = soap->attributes; tp; tp = tp->next)
      { if (tp->visible)
        { if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
            break;
          *t++ = ' ';
          strcpy(t, tp->name);
          t += strlen(t);
          if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
            break;
          if (tp->value)
          { *t++ = '=';
            *t++ = '"';
            strcpy(t, tp->value);
            t += strlen(t);
            *t++ = '"';
          }
        }
      }
      if (!soap->body)
        *t++ = '/';
      *t++ = '>';
      *t = '\0';
      t = soap->tmpbuf;
#endif
      if (soap->body)
        n = 1;
      f = 1;
      soap->peeked = 0;
    }
  }
  if (soap_new_block(soap) == NULL)
    return NULL;
  for (;;)
  { if (!(s = (wchar_t*)soap_push_block(soap, NULL, sizeof(wchar_t)*SOAP_BLKLEN)))
      return NULL;
    for (i = 0; i < SOAP_BLKLEN; i++)
    { if (t)
      { *s++ = (wchar_t)*t++;
        if (!*t)
          t = NULL;
        continue;
      }
      c = soap_getutf8(soap);
      switch (c)
      {
      case SOAP_TT:
        if (n == 0)
          goto end;
        n--;
        *s++ = '<';
        soap_unget(soap, '/');
        break;
      case SOAP_LT:
        if (f && n == 0)
          goto end;
        n++;
        *s++ = '<';
        break;
      case SOAP_GT:
        *s++ = '>';
        break;
      case SOAP_QT:
        *s++ = '"';
        break;
      case SOAP_AP:
        *s++ = '\'';
        break;
      case '/':
        if (n > 0)
        { c = soap_getutf8(soap);
          if (c == SOAP_GT)
            n--;
          soap_unget(soap, c);
        }
        *s++ = '/';
        break;
      case '<':
        if (flag)
          *s++ = (soap_wchar)'<';
        else
        { *s++ = (soap_wchar)'&';
          t = (char*)"lt;";
        }
        break;
      case '>':
        if (flag)
          *s++ = (soap_wchar)'>';
        else
        { *s++ = (soap_wchar)'&';
          t = (char*)"gt;";
        }
        break;
      case '"':
        if (flag)
          *s++ = (soap_wchar)'"';
        else
        { *s++ = (soap_wchar)'&';
          t = (char*)"quot;";
        }
        break;
      default:
        if ((int)c == EOF)
          goto end;
        if (sizeof(wchar_t) < 4 && c > 0xFFFF)
        { wchar_t c1, c2;
          /* http://unicode.org/faq/utf_bom.html#utf16-2 */
          c1 = 0xD800 - (0x10000 >> 10) + (c >> 10);
          c2 = 0xDC00 + (c & 0x3FF);
          c = c1;
          soap_unget(soap, c2);
        }
        *s++ = (wchar_t)c & 0x7FFFFFFF;
      }
      l++;
      if (maxlen >= 0 && l > maxlen)
      { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too long: maxlen=%ld\n", maxlen));
        soap->error = SOAP_LENGTH;
        return NULL;
      }
    }
  }
end:
  soap_unget(soap, c);
  *s = '\0';
  soap_size_block(soap, NULL, sizeof(wchar_t) * (i + 1));
  if (l < minlen)
  { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too short: %ld chars, minlen=%ld\n", l, minlen));
    soap->error = SOAP_LENGTH;
    return NULL;
  }
  s = (wchar_t*)soap_save_block(soap, NULL, NULL, 0);
#ifdef WITH_DOM
  if ((soap->mode & SOAP_XML_DOM) && soap->dom)
    soap->dom->wide = s;
#endif
  return s;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %r15
movl %esi, 0x14(%rsp)
movq %rdi, %rbx
cmpw $0x0, 0x1e5f6(%rdi)
movq %rdx, 0x20(%rsp)
je 0x1d964
cmpb $0x0, 0x1c998(%rbx)
je 0x1d964
leaq 0x1c998(%rbx), %rsi
movl $0x1c598, %r14d         # imm = 0x1C598
leaq (%rbx,%r14), %r12
movb $0x3c, 0x1c598(%rbx)
movb $0x0, 0x1c997(%rbx)
leaq 0x1c599(%rbx), %rdi
movl $0x3fe, %edx            # imm = 0x3FE
callq 0x3060
movq %r12, %rdi
callq 0x3110
movq %rax, %r13
addq %rbx, %rax
addq $0x1c598, %rax          # imm = 0x1C598
movq 0x1e5e0(%rbx), %rbp
testq %rbp, %rbp
je 0x1d981
addq %r14, %r13
cmpw $0x0, 0x28(%rbp)
je 0x1d951
cmpq $0x1c995, %r13          # imm = 0x1C995
jg 0x1d981
leaq (%rbx,%r13), %r14
incq %r14
movb $0x20, (%rax)
leaq 0x2a(%rbp), %rsi
movq %r14, %rdi
callq 0x3080
movq %r14, %rdi
callq 0x3110
addq %rax, %r13
incq %r13
cmpq $0x1c995, %r13          # imm = 0x1C995
jg 0x1d97b
cmpq $0x0, 0x10(%rbp)
je 0x1d951
leaq (%rbx,%r13), %r14
addq $0x2, %r14
movw $0x223d, -0x2(%r14)     # imm = 0x223D
movq 0x10(%rbp), %rsi
movq %r14, %rdi
callq 0x3080
movq %r14, %rdi
callq 0x3110
leaq (%rax,%r13), %rcx
addq $0x2, %rcx
addq %rax, %r13
addq $0x3, %r13
movb $0x22, (%rbx,%rcx)
leaq (%rbx,%r13), %rax
movq (%rbp), %rbp
testq %rbp, %rbp
jne 0x1d8d3
jmp 0x1d981
movq $0x0, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
xorl %r12d, %r12d
jmp 0x1d9b8
addq %rbx, %r13
movq %r13, %rax
cmpw $0x0, 0xc166(%rbx)
jne 0x1d991
movb $0x2f, (%rax)
incq %rax
movw $0x3e, (%rax)
xorl %eax, %eax
cmpw $0x0, 0xc166(%rbx)
setne %al
movq %rax, 0x8(%rsp)
movw $0x0, 0x1e5f6(%rbx)
movb $0x1, %al
movq %rax, 0x18(%rsp)
movl $0x18, %edi
callq 0x3240
testq %rax, %rax
je 0x1d9e1
movq 0x90(%rbx), %rcx
movq %rcx, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rax)
movq %rax, 0x90(%rbx)
jmp 0x1d9eb
movl $0x14, 0x1f274(%rbx)
testq %rax, %rax
je 0x1dc35
xorl %ebp, %ebp
movq 0x90(%rbx), %r14
movl $0x410, %edi            # imm = 0x410
callq 0x3240
testq %rax, %rax
je 0x1da2e
movq %rax, %r13
movq 0x8(%r14), %rax
movq %rax, (%r13)
movl $0x400, %eax            # imm = 0x400
movq %rax, 0x8(%r13)
movq %r13, 0x8(%r14)
addq %rax, 0x10(%r14)
addq $0x10, %r13
jmp 0x1da3b
movl $0x14, 0x1f274(%rbx)
xorl %r13d, %r13d
testq %r13, %r13
je 0x1dc35
movl $0x4, %r14d
testq %r12, %r12
je 0x1da73
movsbl (%r12), %eax
movl %eax, -0x4(%r13,%r14)
cmpb $0x0, 0x1(%r12)
leaq 0x1(%r12), %rax
movl $0x0, %r12d
cmovneq %rax, %r12
jmp 0x1dbb8
movq %rbx, %rdi
callq 0x1186b
cmpl $0x21, %eax
jg 0x1daaa
leal 0x6(%rax), %ecx
cmpl $0x5, %ecx
ja 0x1db73
leaq 0x83a9(%rip), %rdx      # 0x25e3c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl $0x27, -0x4(%r13,%r14)
jmp 0x1dba2
cmpl $0x3b, %eax
jg 0x1daf9
cmpl $0x22, %eax
je 0x1db48
cmpl $0x2f, %eax
jne 0x1db73
movq 0x8(%rsp), %rax
testl %eax, %eax
jle 0x1daeb
movq %rbx, %rdi
movq %rax, %r12
callq 0x1186b
xorl %ecx, %ecx
cmpl $-0x4, %eax
sete %cl
subl %ecx, %r12d
movq %r12, 0x8(%rsp)
movl %eax, 0xc160(%rbx)
movl $0x2f, -0x4(%r13,%r14)
jmp 0x1dba2
cmpl $0x3c, %eax
je 0x1db5a
cmpl $0x3e, %eax
jne 0x1db73
cmpl $0x0, 0x14(%rsp)
je 0x1dbe0
movl $0x3e, -0x4(%r13,%r14)
jmp 0x1dba2
cmpl $0x0, 0x8(%rsp)
je 0x1dbf2
movq 0x8(%rsp), %rax
decl %eax
movq %rax, 0x8(%rsp)
movl $0x3c, -0x4(%r13,%r14)
movl $0x2f, 0xc160(%rbx)
jmp 0x1dba2
cmpl $0x0, 0x14(%rsp)
je 0x1dbce
movl $0x22, -0x4(%r13,%r14)
jmp 0x1dba2
cmpl $0x0, 0x14(%rsp)
jne 0x1db99
movl $0x26, -0x4(%r13,%r14)
leaq 0x8a5e(%rip), %r12      # 0x265cf
jmp 0x1dba5
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x4(%r13,%r14)
jmp 0x1dba2
cmpl $0x0, 0x8(%rsp)
sete %cl
testb %cl, 0x18(%rsp)
jne 0x1dbf2
movq 0x8(%rsp), %rax
incl %eax
movq %rax, 0x8(%rsp)
movl $0x3c, -0x4(%r13,%r14)
xorl %r12d, %r12d
testq %r15, %r15
sets %al
cmpq %r15, %rbp
setl %cl
orb %al, %cl
je 0x1dc2b
incq %rbp
addq $0x4, %r14
cmpl $0x404, %r14d           # imm = 0x404
jne 0x1da4a
jmp 0x1d9f6
movl $0x26, -0x4(%r13,%r14)
leaq 0x89fb(%rip), %r12      # 0x265d9
jmp 0x1dba5
movl $0x26, -0x4(%r13,%r14)
leaq 0x89e4(%rip), %r12      # 0x265d4
jmp 0x1dba5
movl %eax, 0xc160(%rbx)
movl $0x0, -0x4(%r13,%r14)
movq 0x90(%rbx), %rax
movq 0x8(%rax), %rcx
testq %rcx, %rcx
je 0x1dc24
movq 0x10(%rax), %rdx
subq 0x8(%rcx), %rdx
addq %r14, %rdx
movq %rdx, 0x10(%rax)
movq %r14, 0x8(%rcx)
cmpq 0x20(%rsp), %rbp
jge 0x1dc46
movl $0x2d, 0x1f274(%rbx)
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x137b0