// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/expat-2.0.1/lib/xmltok_impl.c
// Function: little2_isPublicId
static int PTRCALL
PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end,
                   const char **badPtr)
{
  ptr += MINBPC(enc);
  end -= MINBPC(enc);
  for (; ptr != end; ptr += MINBPC(enc)) {
    switch (BYTE_TYPE(enc, ptr)) {
    case BT_DIGIT:
    case BT_HEX:
    case BT_MINUS:
    case BT_APOS:
    case BT_LPAR:
    case BT_RPAR:
    case BT_PLUS:
    case BT_COMMA:
    case BT_SOL:
    case BT_EQUALS:
    case BT_QUEST:
    case BT_CR:
    case BT_LF:
    case BT_SEMI:
    case BT_EXCL:
    case BT_AST:
    case BT_PERCNT:
    case BT_NUM:
#ifdef XML_NS
    case BT_COLON:
#endif
      break;
    case BT_S:
      if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) {
        *badPtr = ptr;
        return 0;
      }
      break;
    case BT_NAME:
    case BT_NMSTRT:
      if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f))
        break;
    default:
      switch (BYTE_TO_ASCII(enc, ptr)) {
      case 0x24: /* $ */
      case 0x40: /* @ */
        break;
      default:
        *badPtr = ptr;
        return 0;
      }
      break;
    }
  }
  return 1;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq 0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $-0x2, %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
cmpq 0x28(%rsp), %rax
je 0x38e0d8
movq 0x30(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38df6d
movq 0x38(%rsp), %rax
movq 0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movzbl 0x88(%rax,%rcx), %eax
movl %eax, 0x1c(%rsp)
jmp 0x38df89
movq 0x30(%rsp), %rax
movb 0x1(%rax), %cl
movq 0x30(%rsp), %rax
movsbl %cl, %edi
movsbl (%rax), %esi
callq 0x38e510
movl %eax, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
movl %eax, 0x18(%rsp)
addl $-0x9, %eax
subl $0x2, %eax
jb 0x38dff1
jmp 0x38df9b
movl 0x18(%rsp), %eax
addl $-0xd, %eax
subl $0x7, %eax
jb 0x38dff1
jmp 0x38dfa9
movl 0x18(%rsp), %eax
subl $0x15, %eax
je 0x38dff6
jmp 0x38dfb4
movl 0x18(%rsp), %eax
subl $0x16, %eax
je 0x38e030
jmp 0x38dfbf
movl 0x18(%rsp), %eax
addl $-0x18, %eax
subl $0x2, %eax
jb 0x38dff1
jmp 0x38dfcd
movl 0x18(%rsp), %eax
subl $0x1a, %eax
je 0x38e030
jmp 0x38dfd8
movl 0x18(%rsp), %eax
subl $0x1b, %eax
je 0x38dff1
jmp 0x38dfe3
movl 0x18(%rsp), %eax
addl $-0x1e, %eax
subl $0x5, %eax
ja 0x38e067
jmp 0x38dff1
jmp 0x38e0c3
movq 0x30(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38e02b
movq 0x30(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
jne 0x38e02b
movq 0x30(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x44(%rsp)
jmp 0x38e0e0
jmp 0x38e0c3
movq 0x30(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38e04c
movq 0x30(%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0x14(%rsp)
jmp 0x38e057
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0x14(%rsp)
jmp 0x38e057
movl 0x14(%rsp), %eax
andl $-0x80, %eax
cmpl $0x0, %eax
jne 0x38e065
jmp 0x38e0c3
jmp 0x38e067
movq 0x30(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x38e083
movq 0x30(%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0x10(%rsp)
jmp 0x38e08e
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0x10(%rsp)
jmp 0x38e08e
movl 0x10(%rsp), %eax
movl %eax, 0xc(%rsp)
subl $0x24, %eax
je 0x38e0a8
jmp 0x38e09d
movl 0xc(%rsp), %eax
subl $0x40, %eax
jne 0x38e0aa
jmp 0x38e0a8
jmp 0x38e0c1
movq 0x30(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x44(%rsp)
jmp 0x38e0e0
jmp 0x38e0c3
jmp 0x38e0c5
movq 0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x30(%rsp)
jmp 0x38df34
movl $0x1, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax)