// File: /workspace/github_cpp_makefile_star2_O1/attractivechaos[P]udb2/stb/./stb.h
// Function: stb_ischar
int stb_ischar(char c, char *set)
{
   static unsigned char bit[8] = { 1,2,4,8,16,32,64,128 };
   static stb_perfect p;
   static unsigned char (*tables)[256];
   static char ** sets = NULL;

   int z = stb_perfect_hash(&p, (int) set);
   if (z < 0) {
      int i,k,n,j,f;
      // special code that means free all existing data
      if (set == NULL) {
         stb_arr_free(sets);
         free(tables);
         tables = NULL;
         stb_perfect_destroy(&p);
         return 0;
      }
      stb_arr_push(sets, set);
      stb_perfect_destroy(&p);
      n = stb_perfect_create(&p, (unsigned int *) (char **) sets, stb_arr_len(sets));
      assert(n != 0);
      k = (n+7) >> 3;
      tables = (unsigned char (*)[256]) realloc(tables, sizeof(*tables) * k);
      memset(tables, 0, sizeof(*tables) * k);
      for (i=0; i < stb_arr_len(sets); ++i) {
         k = stb_perfect_hash(&p, (int) sets[i]);
         assert(k >= 0);
         n = k >> 3;
         f = bit[k&7];
         for (j=0; !j || sets[i][j]; ++j) {
            tables[n][(unsigned char) sets[i][j]] |= f;
         }
      }
      z = stb_perfect_hash(&p, (int) set);
   }
   return tables[z >> 3][(unsigned char) c] & bit[z & 7];
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movl %edi, %ebx
leaq 0x17b3e(%rip), %rdi     # 0x1df38
callq 0x5b58
testl %eax, %eax
jns 0x659f
testq %r14, %r14
je 0x641f
movq 0x17b65(%rip), %rax     # 0x1df78
testq %rax, %rax
je 0x6458
movl -0x10(%rax), %ecx
incl %ecx
jmp 0x645d
leaq 0x17b52(%rip), %rdi     # 0x1df78
callq 0x56c1
movq 0x17b3e(%rip), %rdi     # 0x1df70
callq 0x23d0
movq $0x0, 0x17b2e(%rip) # 0x1df70
leaq 0x17aef(%rip), %rdi     # 0x1df38
callq 0x63b1
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x659a
movl $0x1, %ecx
testq %rax, %rax
je 0x6467
movl -0xc(%rax), %edx
jmp 0x6469
xorl %edx, %edx
cmpl %edx, %ecx
movl %ebx, 0x4(%rsp)
jle 0x6489
leaq 0x17b00(%rip), %rdi     # 0x1df78
movl $0x8, %esi
movl $0x1, %edx
callq 0x57e0
jmp 0x648c
incl -0x10(%rax)
movq 0x17ae5(%rip), %rax     # 0x1df78
xorl %r15d, %r15d
testq %rax, %rax
je 0x64a1
movslq -0x10(%rax), %rcx
jmp 0x64a3
xorl %ecx, %ecx
movq %r14, -0x8(%rax,%rcx,8)
leaq 0x17a89(%rip), %rdi     # 0x1df38
callq 0x63b1
movq 0x17abd(%rip), %rsi     # 0x1df78
testq %rsi, %rsi
je 0x64c4
movl -0x10(%rsi), %r15d
leaq 0x17a6d(%rip), %rdi     # 0x1df38
movl %r15d, %edx
callq 0x5bac
testl %eax, %eax
je 0x65fa
addl $0x7, %eax
sarl $0x3, %eax
movq 0x17a88(%rip), %rdi     # 0x1df70
movslq %eax, %r12
shlq $0x8, %r12
movq %r12, %rsi
callq 0x22b0
movq %rax, %r15
movq %rax, 0x17a6f(%rip)     # 0x1df70
xorl %r13d, %r13d
movq %rax, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x2160
movq 0x17a60(%rip), %rbp     # 0x1df78
leaq 0x17a19(%rip), %r12     # 0x1df38
leaq 0xbb22(%rip), %rbx      # 0x12048
testq %rbp, %rbp
je 0x6531
movslq -0x10(%rbp), %rax
jmp 0x6533
xorl %eax, %eax
cmpq %rax, %r13
jge 0x6587
movl (%rbp,%r13,8), %esi
movq %r12, %rdi
callq 0x5b58
testl %eax, %eax
js 0x65db
movl %eax, %ecx
shrl $0x3, %ecx
andl $0x7, %eax
movb (%rax,%rbx), %al
shlq $0x8, %rcx
addq %r15, %rcx
xorl %edx, %edx
testq %rdx, %rdx
je 0x6571
movq (%rbp,%r13,8), %rsi
cmpb $0x0, (%rsi,%rdx)
je 0x6582
movq (%rbp,%r13,8), %rsi
movzbl (%rsi,%rdx), %esi
orb %al, (%rsi,%rcx)
incq %rdx
jmp 0x6561
incq %r13
jmp 0x6526
leaq 0x179aa(%rip), %rdi     # 0x1df38
movl %r14d, %esi
callq 0x5b58
movl 0x4(%rsp), %ebx
testq %r14, %r14
je 0x65d7
movl %eax, %ecx
sarl $0x3, %ecx
movslq %ecx, %rcx
movzbl %bl, %edx
shlq $0x8, %rcx
addq 0x179bb(%rip), %rcx     # 0x1df70
andl $0x7, %eax
leaq 0xba89(%rip), %rsi      # 0x12048
movb (%rax,%rsi), %al
andb (%rdx,%rcx), %al
movzbl %al, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x65c8
leaq 0xc263(%rip), %rdi      # 0x12845
leaq 0xbf18(%rip), %rsi      # 0x12501
leaq 0xc238(%rip), %rcx      # 0x12828
movl $0xeb0, %edx            # imm = 0xEB0
callq 0x2140
leaq 0xc220(%rip), %rdi      # 0x12821
leaq 0xbef9(%rip), %rsi      # 0x12501
leaq 0xc219(%rip), %rcx      # 0x12828
movl $0xeaa, %edx            # imm = 0xEAA
callq 0x2140