// File: /workspace/github_cpp_makefile_star2_O3/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
subq $0x18, %rsp
movq %rsi, %r14
movl %edi, %ebx
leaq 0x17b8e(%rip), %rdi     # 0x1df28
callq 0x5a1c
testl %eax, %eax
js 0x63af
movq 0x17bb6(%rip), %r15     # 0x1df60
jmp 0x6535
testq %r14, %r14
je 0x6419
movq 0x17bad(%rip), %rax     # 0x1df68
testq %rax, %rax
je 0x63cf
movl -0x10(%rax), %ecx
cmpl -0xc(%rax), %ecx
jge 0x63cf
incl %ecx
movl %ecx, -0x10(%rax)
jmp 0x63ec
leaq 0x17b92(%rip), %rdi     # 0x1df68
movl $0x8, %esi
movl $0x1, %edx
callq 0x56ce
movq 0x17b7c(%rip), %rax     # 0x1df68
movslq -0x10(%rax), %rcx
movq %r14, -0x8(%rax,%rcx,8)
leaq 0x17b2c(%rip), %rdi     # 0x1df28
callq 0x634e
movq 0x17b60(%rip), %rsi     # 0x1df68
testq %rsi, %rsi
je 0x644f
movl -0x10(%rsi), %edx
leaq 0x17b11(%rip), %rdi     # 0x1df28
jmp 0x645a
leaq 0x17b48(%rip), %rdi     # 0x1df68
callq 0x55ba
movq 0x17b34(%rip), %rdi     # 0x1df60
callq 0x23c0
movq $0x0, 0x17b24(%rip) # 0x1df60
leaq 0x17ae5(%rip), %rdi     # 0x1df28
callq 0x634e
xorl %eax, %eax
jmp 0x655a
leaq 0x17ad2(%rip), %rdi     # 0x1df28
xorl %esi, %esi
xorl %edx, %edx
callq 0x5a70
movq %r14, 0x10(%rsp)
movl %ebx, 0xc(%rsp)
testl %eax, %eax
je 0x6588
addl $0x7, %eax
sarl $0x3, %eax
movq 0x17ae3(%rip), %rdi     # 0x1df60
movslq %eax, %r12
shlq $0x8, %r12
movq %r12, %rsi
callq 0x22b0
movq %rax, %r15
movq %rax, 0x17aca(%rip)     # 0x1df60
xorl %ebp, %ebp
movq %rax, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x2160
movq 0x17abc(%rip), %rbx     # 0x1df68
leaq 0x17a75(%rip), %r12     # 0x1df28
leaq 0xbb8e(%rip), %r14      # 0x12048
testq %rbx, %rbx
je 0x64c5
movslq -0x10(%rbx), %rax
jmp 0x64c7
xorl %eax, %eax
cmpq %rax, %rbp
jge 0x6520
movq (%rbx,%rbp,8), %r13
movq %r12, %rdi
movl %r13d, %esi
callq 0x5a1c
testl %eax, %eax
js 0x6569
movl %eax, %ecx
shrl $0x3, %ecx
andl $0x7, %eax
movb (%rax,%r14), %al
shlq $0x8, %rcx
addq %r15, %rcx
xorl %edx, %edx
jmp 0x650c
movb (%r13), %sil
movzbl %sil, %esi
orb %al, (%rsi,%rcx)
incq %rdx
movq (%rbx,%rbp,8), %r13
testq %rdx, %rdx
je 0x64fa
movb (%r13,%rdx), %sil
testb %sil, %sil
jne 0x64fe
incq %rbp
jmp 0x64ba
leaq 0x17a01(%rip), %rdi     # 0x1df28
movq 0x10(%rsp), %rsi
callq 0x5a1c
movl 0xc(%rsp), %ebx
movl %eax, %ecx
sarl $0x3, %ecx
movslq %ecx, %rcx
movzbl %bl, %edx
shlq $0x8, %rcx
addq %r15, %rcx
andl $0x7, %eax
leaq 0xbaf7(%rip), %rsi      # 0x12048
movb (%rax,%rsi), %al
andb (%rdx,%rcx), %al
movzbl %al, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc285(%rip), %rdi      # 0x127f5
leaq 0xbf3a(%rip), %rsi      # 0x124b1
leaq 0xc25a(%rip), %rcx      # 0x127d8
movl $0xeb0, %edx            # imm = 0xEB0
callq 0x2140
leaq 0xc242(%rip), %rdi      # 0x127d1
leaq 0xbf1b(%rip), %rsi      # 0x124b1
leaq 0xc23b(%rip), %rcx      # 0x127d8
movl $0xeaa, %edx            # imm = 0xEAA
callq 0x2140