// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/expat-2.0.1/lib/xmltok_impl.c
// Function: little2_scanPi
static int PTRCALL
PREFIX(scanPi)(const ENCODING *enc, const char *ptr,
               const char *end, const char **nextTokPtr)
{
  int tok;
  const char *target = ptr;
  if (ptr == end)
    return XML_TOK_PARTIAL;
  switch (BYTE_TYPE(enc, ptr)) {
  CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
  default:
    *nextTokPtr = ptr;
    return XML_TOK_INVALID;
  }
  while (ptr != end) {
    switch (BYTE_TYPE(enc, ptr)) {
    CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
    case BT_S: case BT_CR: case BT_LF:
      if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) {
        *nextTokPtr = ptr;
        return XML_TOK_INVALID;
      }
      ptr += MINBPC(enc);
      while (ptr != end) {
        switch (BYTE_TYPE(enc, ptr)) {
        INVALID_CASES(ptr, nextTokPtr)
        case BT_QUEST:
          ptr += MINBPC(enc);
          if (ptr == end)
            return XML_TOK_PARTIAL;
          if (CHAR_MATCHES(enc, ptr, ASCII_GT)) {
            *nextTokPtr = ptr + MINBPC(enc);
            return tok;
          }
          break;
        default:
          ptr += MINBPC(enc);
          break;
        }
      }
      return XML_TOK_PARTIAL;
    case BT_QUEST:
      if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) {
        *nextTokPtr = ptr;
        return XML_TOK_INVALID;
      }
      ptr += MINBPC(enc);
      if (ptr == end)
        return XML_TOK_PARTIAL;
      if (CHAR_MATCHES(enc, ptr, ASCII_GT)) {
        *nextTokPtr = ptr + MINBPC(enc);
        return tok;
      }
      /* fall through */
    default:
      *nextTokPtr = ptr;
      return XML_TOK_INVALID;
    }
  }
  return XML_TOK_PARTIAL;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movq %rdx, 0x48(%rsp)
movq %rcx, 0x40(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x50(%rsp), %rax
cmpq 0x48(%rsp), %rax
jne 0x38eabb
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
jmp 0x38f0ce
movq 0x50(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38eae4
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
movzbl 0x88(%rax,%rcx), %eax
movl %eax, 0x2c(%rsp)
jmp 0x38eb00
movq 0x50(%rsp), %rax
movb 0x1(%rax), %cl
movq 0x50(%rsp), %rax
movsbl %cl, %edi
movsbl (%rax), %esi
callq 0x38e510
movl %eax, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
addl $-0x5, %eax
movl %eax, %ecx
movq %rcx, 0x20(%rsp)
subl $0x18, %eax
ja 0x38ec57
movq 0x20(%rsp), %rax
leaq 0x2115a1(%rip), %rcx    # 0x5a00c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x50(%rsp), %rax
movzbl 0x1(%rax), %eax
movl %eax, %ecx
leaq 0x212d32(%rip), %rax    # 0x5a1870
movzbl (%rax,%rcx), %eax
shll $0x3, %eax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x212804(%rip), %rax    # 0x5a1360
movl (%rax,%rcx,4), %eax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
andl $0x1f, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x38eb94
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38eb96
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
jmp 0x38ec71
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x38ebc9
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x3, %rax
jge 0x38ec03
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jge 0x38ec3d
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38ec73
movq 0x50(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x38f0c6
movq 0x50(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38ecac
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
movzbl 0x88(%rax,%rcx), %eax
movl %eax, 0x1c(%rsp)
jmp 0x38ecc8
movq 0x50(%rsp), %rax
movb 0x1(%rax), %cl
movq 0x50(%rsp), %rax
movsbl %cl, %edi
movsbl (%rax), %esi
callq 0x38e510
movl %eax, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
addl $-0x5, %eax
movl %eax, %ecx
movq %rcx, 0x10(%rsp)
subl $0x18, %eax
ja 0x38f0aa
movq 0x10(%rsp), %rax
leaq 0x21143d(%rip), %rcx    # 0x5a0128
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x50(%rsp), %rax
movzbl 0x1(%rax), %eax
movl %eax, %ecx
leaq 0x212c6a(%rip), %rax    # 0x5a1970
movzbl (%rax,%rcx), %eax
shll $0x3, %eax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x21263c(%rip), %rax    # 0x5a1360
movl (%rax,%rcx,4), %eax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
andl $0x1f, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x38ed5c
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38ed5e
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
jmp 0x38f0c1
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x38ed91
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x3, %rax
jge 0x38edcb
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jge 0x38ee05
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x58(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x50(%rsp), %rdx
leaq 0x3c(%rsp), %rcx
callq 0x38fb10
cmpl $0x0, %eax
jne 0x38ee57
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x38f009
movq 0x50(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38ee9e
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movzbl (%rcx), %ecx
movzbl 0x88(%rax,%rcx), %eax
movl %eax, 0xc(%rsp)
jmp 0x38eeba
movq 0x50(%rsp), %rax
movb 0x1(%rax), %cl
movq 0x50(%rsp), %rax
movsbl %cl, %edi
movsbl (%rax), %esi
callq 0x38e510
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
movl %eax, %ecx
movq %rcx, (%rsp)
subl $0xf, %eax
ja 0x38eff6
movq (%rsp), %rax
leaq 0x2112b4(%rip), %rcx    # 0x5a018c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jge 0x38ef01
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
jmp 0x38f004
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x3, %rax
jge 0x38ef34
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x3, %rax
movq %rax, 0x50(%rsp)
jmp 0x38f004
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jge 0x38ef67
movl $0xfffffffe, 0x64(%rsp) # imm = 0xFFFFFFFE
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x50(%rsp)
jmp 0x38f004
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
cmpq 0x48(%rsp), %rax
jne 0x38efbb
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
jmp 0x38f0ce
movq 0x50(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38eff4
movq 0x50(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x38eff4
movq 0x50(%rsp), %rcx
addq $0x2, %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl 0x3c(%rsp), %eax
movl %eax, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38f004
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
jmp 0x38ee65
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
jmp 0x38f0ce
movq 0x58(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x50(%rsp), %rdx
leaq 0x3c(%rsp), %rcx
callq 0x38fb10
cmpl $0x0, %eax
jne 0x38f04e
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
cmpq 0x48(%rsp), %rax
jne 0x38f072
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
jmp 0x38f0ce
movq 0x50(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38f0a8
movq 0x50(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x38f0a8
movq 0x50(%rsp), %rcx
addq $0x2, %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl 0x3c(%rsp), %eax
movl %eax, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38f0aa
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x64(%rsp)
jmp 0x38f0ce
jmp 0x38ec73
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
movl 0x64(%rsp), %eax
addq $0x68, %rsp
retq
nopw (%rax,%rax)