// File: /workspace/github_c_makefile_star2_O0/jondurbin[P]dre2/src/dre2_match.c
// Function: dre2_char_matches
int dre2_char_matches( struct dre2 *graph, struct dre2_node *node, unsigned char c )
{
  if ( node->c >= 0 )
  {
    if ( c == node->c )
      return true;
    if ( graph->options & DRE2_NO_CASE )
    {
      if ( node->c >= 'a' && node->c <= 'z' && c == node->c - ( 'a' - 'A' ) )
        return true;
      else if ( node->c >= 'A' && node->c <= 'Z' && c == node->c + ( 'a' - 'A' ) )
        return true;
    }
    return false;
  }

  if ( node->c == DRE2_CHAR_CLASS )
    return node->possible[c];

  switch( node->c )
  {
    case DRE2_DOT:
      if ( c != '\0' && c != '\n' && c != '\r' )
        return true;
      return false;
    case DRE2_ALPHA:
      if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) )
        return true;
      return false;
    case DRE2_WORD:
      if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= '0' && c <= '9' ) || ( c == '-' ) )
        return true;
      return false;
    case DRE2_DOMAIN:
      if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= '0' && c <= '9' ) || ( c == '-' ) || ( c == '.' ) )
        return true;
      return false;
    case DRE2_URL:
      if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= '0' && c <= '9' ) || ( c == '-' ) || ( c == '.' ) || ( c == '/' ) || ( c = ':' ) || ( c == '_' ) || ( c == '@' ) )
        return true;
      return false;
    case DRE2_DIGIT:
      if ( c >= '0' && c <= '9' )
        return true;
      return false;
    case DRE2_BORDER:
      if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= '0' && c <= '9' ) || ( c == '-' ) )
        return false;
      return true;
    case DRE2_WHITE_SPACE:
      if ( c == ' ' || c == '\t' || c == '\r' || c == '\f' || c == '\n' )
        return true;
      return false;
    case DRE2_SIM_DIGIT:
      if ( c >= '0' && c <= '9' )
        return true;
      if ( c == 215 || c == 225 || c == 226 || c == 231 || c == 238 || c == 239 || c == 247 || c == 250 || c == 254 )
        return true;
      return false;
    case DRE2_OBF_DIGIT:
      if ( c == 215 || c == 225 || c == 226 || c == 231 || c == 238 || c == 239 || c == 247 || c == 250 || c == 254 )
        return true;
      return false;
    case DRE2_HEX:
      if ( ( c >= '0' && c <= '9' ) || ( c >= 'a' && c <= 'f' ) || ( c >= 'A' && c <= 'F' ) )
        return true;
      return false;
  }
  return false;
}

// Assembly:
movb %dl, %al
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movb %al, -0x19(%rsp)
movq -0x18(%rsp), %rax
cmpl $0x0, (%rax)
jl 0x92f5
movzbl -0x19(%rsp), %eax
movq -0x18(%rsp), %rcx
cmpl (%rcx), %eax
jne 0x9269
movl $0x1, -0x4(%rsp)
jmp 0x9778
movq -0x10(%rsp), %rax
movl 0x43c(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x92e8
movq -0x18(%rsp), %rax
cmpl $0x61, (%rax)
jl 0x92b0
movq -0x18(%rsp), %rax
cmpl $0x7a, (%rax)
jg 0x92b0
movzbl -0x19(%rsp), %eax
movq -0x18(%rsp), %rcx
movl (%rcx), %ecx
subl $0x20, %ecx
cmpl %ecx, %eax
jne 0x92b0
movl $0x1, -0x4(%rsp)
jmp 0x9778
movq -0x18(%rsp), %rax
cmpl $0x41, (%rax)
jl 0x92e4
movq -0x18(%rsp), %rax
cmpl $0x5a, (%rax)
jg 0x92e4
movzbl -0x19(%rsp), %eax
movq -0x18(%rsp), %rcx
movl (%rcx), %ecx
addl $0x20, %ecx
cmpl %ecx, %eax
jne 0x92e4
movl $0x1, -0x4(%rsp)
jmp 0x9778
jmp 0x92e6
jmp 0x92e8
movl $0x0, -0x4(%rsp)
jmp 0x9778
movq -0x18(%rsp), %rax
cmpl $-0x3, (%rax)
jne 0x9319
movq -0x18(%rsp), %rax
movq 0x28(%rax), %rax
movzbl -0x19(%rsp), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4(%rsp)
jmp 0x9778
movq -0x18(%rsp), %rax
movl (%rax), %eax
addl $0x10, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rsp)
subl $0xb, %eax
ja 0x9770
movq -0x28(%rsp), %rax
leaq 0x4035(%rip), %rcx      # 0xd374
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl -0x19(%rsp), %eax
cmpl $0x0, %eax
je 0x9373
movzbl -0x19(%rsp), %eax
cmpl $0xa, %eax
je 0x9373
movzbl -0x19(%rsp), %eax
cmpl $0xd, %eax
je 0x9373
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x9394
movzbl -0x19(%rsp), %eax
cmpl $0x7a, %eax
jle 0x93a8
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x93b5
movzbl -0x19(%rsp), %eax
cmpl $0x5a, %eax
jg 0x93b5
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x93d6
movzbl -0x19(%rsp), %eax
cmpl $0x7a, %eax
jle 0x9408
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x93ea
movzbl -0x19(%rsp), %eax
cmpl $0x5a, %eax
jle 0x9408
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x93fe
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jle 0x9408
movzbl -0x19(%rsp), %eax
cmpl $0x2d, %eax
jne 0x9415
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x9436
movzbl -0x19(%rsp), %eax
cmpl $0x7a, %eax
jle 0x9472
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x944a
movzbl -0x19(%rsp), %eax
cmpl $0x5a, %eax
jle 0x9472
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x945e
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jle 0x9472
movzbl -0x19(%rsp), %eax
cmpl $0x2d, %eax
je 0x9472
movzbl -0x19(%rsp), %eax
cmpl $0x2e, %eax
jne 0x947f
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x94a0
movzbl -0x19(%rsp), %eax
cmpl $0x7a, %eax
jle 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x94b4
movzbl -0x19(%rsp), %eax
cmpl $0x5a, %eax
jle 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x94c8
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jle 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x2d, %eax
je 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x2e, %eax
je 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x2f, %eax
je 0x9505
movb $0x3a, -0x19(%rsp)
movb $0x1, %al
testb $0x1, %al
jne 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x5f, %eax
je 0x9505
movzbl -0x19(%rsp), %eax
cmpl $0x40, %eax
jne 0x9512
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x9540
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jg 0x9540
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x9561
movzbl -0x19(%rsp), %eax
cmpl $0x7a, %eax
jle 0x9593
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x9575
movzbl -0x19(%rsp), %eax
cmpl $0x5a, %eax
jle 0x9593
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x9589
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jle 0x9593
movzbl -0x19(%rsp), %eax
cmpl $0x2d, %eax
jne 0x95a0
movl $0x0, -0x4(%rsp)
jmp 0x9778
movl $0x1, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x20, %eax
je 0x95df
movzbl -0x19(%rsp), %eax
cmpl $0x9, %eax
je 0x95df
movzbl -0x19(%rsp), %eax
cmpl $0xd, %eax
je 0x95df
movzbl -0x19(%rsp), %eax
cmpl $0xc, %eax
je 0x95df
movzbl -0x19(%rsp), %eax
cmpl $0xa, %eax
jne 0x95ec
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x961a
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jg 0x961a
movl $0x1, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0xd7, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xe1, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xe2, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xe7, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xee, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xef, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xf7, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xfa, %eax
je 0x9686
movzbl -0x19(%rsp), %eax
cmpl $0xfe, %eax
jne 0x9693
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0xd7, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xe1, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xe2, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xe7, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xee, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xef, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xf7, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xfa, %eax
je 0x970c
movzbl -0x19(%rsp), %eax
cmpl $0xfe, %eax
jne 0x9716
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movzbl -0x19(%rsp), %eax
cmpl $0x30, %eax
jl 0x9734
movzbl -0x19(%rsp), %eax
cmpl $0x39, %eax
jle 0x975c
movzbl -0x19(%rsp), %eax
cmpl $0x61, %eax
jl 0x9748
movzbl -0x19(%rsp), %eax
cmpl $0x66, %eax
jle 0x975c
movzbl -0x19(%rsp), %eax
cmpl $0x41, %eax
jl 0x9766
movzbl -0x19(%rsp), %eax
cmpl $0x46, %eax
jg 0x9766
movl $0x1, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
jmp 0x9778
movl $0x0, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopl (%rax)