// File: /workspace/github_c_makefile_star2_O0/ukontainer[P]sqlite-bench/sqlite3.c
// Function: sqlite3GetToken
SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){
  int i, c;
  switch( aiClass[*z] ){  /* Switch on the character-class of the first byte
                          ** of the token. See the comment on the CC_ defines
                          ** above. */
    case CC_SPACE: {
      testcase( z[0]==' ' );
      testcase( z[0]=='\t' );
      testcase( z[0]=='\n' );
      testcase( z[0]=='\f' );
      testcase( z[0]=='\r' );
      for(i=1; sqlite3Isspace(z[i]); i++){}
      *tokenType = TK_SPACE;
      return i;
    }
    case CC_MINUS: {
      if( z[1]=='-' ){
        for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
        *tokenType = TK_SPACE;   /* IMP: R-22934-25134 */
        return i;
      }
      *tokenType = TK_MINUS;
      return 1;
    }
    case CC_LP: {
      *tokenType = TK_LP;
      return 1;
    }
    case CC_RP: {
      *tokenType = TK_RP;
      return 1;
    }
    case CC_SEMI: {
      *tokenType = TK_SEMI;
      return 1;
    }
    case CC_PLUS: {
      *tokenType = TK_PLUS;
      return 1;
    }
    case CC_STAR: {
      *tokenType = TK_STAR;
      return 1;
    }
    case CC_SLASH: {
      if( z[1]!='*' || z[2]==0 ){
        *tokenType = TK_SLASH;
        return 1;
      }
      for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
      if( c ) i++;
      *tokenType = TK_SPACE;   /* IMP: R-22934-25134 */
      return i;
    }
    case CC_PERCENT: {
      *tokenType = TK_REM;
      return 1;
    }
    case CC_EQ: {
      *tokenType = TK_EQ;
      return 1 + (z[1]=='=');
    }
    case CC_LT: {
      if( (c=z[1])=='=' ){
        *tokenType = TK_LE;
        return 2;
      }else if( c=='>' ){
        *tokenType = TK_NE;
        return 2;
      }else if( c=='<' ){
        *tokenType = TK_LSHIFT;
        return 2;
      }else{
        *tokenType = TK_LT;
        return 1;
      }
    }
    case CC_GT: {
      if( (c=z[1])=='=' ){
        *tokenType = TK_GE;
        return 2;
      }else if( c=='>' ){
        *tokenType = TK_RSHIFT;
        return 2;
      }else{
        *tokenType = TK_GT;
        return 1;
      }
    }
    case CC_BANG: {
      if( z[1]!='=' ){
        *tokenType = TK_ILLEGAL;
        return 1;
      }else{
        *tokenType = TK_NE;
        return 2;
      }
    }
    case CC_PIPE: {
      if( z[1]!='|' ){
        *tokenType = TK_BITOR;
        return 1;
      }else{
        *tokenType = TK_CONCAT;
        return 2;
      }
    }
    case CC_COMMA: {
      *tokenType = TK_COMMA;
      return 1;
    }
    case CC_AND: {
      *tokenType = TK_BITAND;
      return 1;
    }
    case CC_TILDA: {
      *tokenType = TK_BITNOT;
      return 1;
    }
    case CC_QUOTE: {
      int delim = z[0];
      testcase( delim=='`' );
      testcase( delim=='\'' );
      testcase( delim=='"' );
      for(i=1; (c=z[i])!=0; i++){
        if( c==delim ){
          if( z[i+1]==delim ){
            i++;
          }else{
            break;
          }
        }
      }
      if( c=='\'' ){
        *tokenType = TK_STRING;
        return i+1;
      }else if( c!=0 ){
        *tokenType = TK_ID;
        return i+1;
      }else{
        *tokenType = TK_ILLEGAL;
        return i;
      }
    }
    case CC_DOT: {
#ifndef SQLITE_OMIT_FLOATING_POINT
      if( !sqlite3Isdigit(z[1]) )
#endif
      {
        *tokenType = TK_DOT;
        return 1;
      }
      /* If the next character is a digit, this is a floating point
      ** number that begins with ".".  Fall thru into the next case */
    }
    case CC_DIGIT: {
      testcase( z[0]=='0' );  testcase( z[0]=='1' );  testcase( z[0]=='2' );
      testcase( z[0]=='3' );  testcase( z[0]=='4' );  testcase( z[0]=='5' );
      testcase( z[0]=='6' );  testcase( z[0]=='7' );  testcase( z[0]=='8' );
      testcase( z[0]=='9' );
      *tokenType = TK_INTEGER;
#ifndef SQLITE_OMIT_HEX_INTEGER
      if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){
        for(i=3; sqlite3Isxdigit(z[i]); i++){}
        return i;
      }
#endif
      for(i=0; sqlite3Isdigit(z[i]); i++){}
#ifndef SQLITE_OMIT_FLOATING_POINT
      if( z[i]=='.' ){
        i++;
        while( sqlite3Isdigit(z[i]) ){ i++; }
        *tokenType = TK_FLOAT;
      }
      if( (z[i]=='e' || z[i]=='E') &&
           ( sqlite3Isdigit(z[i+1]) 
            || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))
           )
      ){
        i += 2;
        while( sqlite3Isdigit(z[i]) ){ i++; }
        *tokenType = TK_FLOAT;
      }
#endif
      while( IdChar(z[i]) ){
        *tokenType = TK_ILLEGAL;
        i++;
      }
      return i;
    }
    case CC_QUOTE2: {
      for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){}
      *tokenType = c==']' ? TK_ID : TK_ILLEGAL;
      return i;
    }
    case CC_VARNUM: {
      *tokenType = TK_VARIABLE;
      for(i=1; sqlite3Isdigit(z[i]); i++){}
      return i;
    }
    case CC_DOLLAR:
    case CC_VARALPHA: {
      int n = 0;
      testcase( z[0]=='$' );  testcase( z[0]=='@' );
      testcase( z[0]==':' );  testcase( z[0]=='#' );
      *tokenType = TK_VARIABLE;
      for(i=1; (c=z[i])!=0; i++){
        if( IdChar(c) ){
          n++;
#ifndef SQLITE_OMIT_TCL_VARIABLE
        }else if( c=='(' && n>0 ){
          do{
            i++;
          }while( (c=z[i])!=0 && !sqlite3Isspace(c) && c!=')' );
          if( c==')' ){
            i++;
          }else{
            *tokenType = TK_ILLEGAL;
          }
          break;
        }else if( c==':' && z[i+1]==':' ){
          i++;
#endif
        }else{
          break;
        }
      }
      if( n==0 ) *tokenType = TK_ILLEGAL;
      return i;
    }
    case CC_KYWD: {
      for(i=1; aiClass[z[i]]<=CC_KYWD; i++){}
      if( IdChar(z[i]) ){
        /* This token started out using characters that can appear in keywords,
        ** but z[i] is a character not allowed within keywords, so this must
        ** be an identifier instead */
        i++;
        break;
      }
      *tokenType = TK_ID;
      return keywordCode((char*)z, i, tokenType);
    }
    case CC_X: {
#ifndef SQLITE_OMIT_BLOB_LITERAL
      testcase( z[0]=='x' ); testcase( z[0]=='X' );
      if( z[1]=='\'' ){
        *tokenType = TK_BLOB;
        for(i=2; sqlite3Isxdigit(z[i]); i++){}
        if( z[i]!='\'' || i%2 ){
          *tokenType = TK_ILLEGAL;
          while( z[i] && z[i]!='\'' ){ i++; }
        }
        if( z[i] ) i++;
        return i;
      }
#endif
      /* If it is not a BLOB literal, then it must be an ID, since no
      ** SQL keywords start with the letter 'x'.  Fall through */
    }
    case CC_ID: {
      i = 1;
      break;
    }
    case CC_NUL: {
      *tokenType = TK_ILLEGAL;
      return 0;
    }
    default: {
      *tokenType = TK_ILLEGAL;
      return 1;
    }
  }
  while( IdChar(z[i]) ){ i++; }
  *tokenType = TK_ID;
  return i;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
leaq 0x127ec2(%rip), %rcx    # 0x57aa60
movzbl (%rax,%rcx), %eax
movq %rax, -0x30(%rbp)
subq $0x1c, %rax
ja 0x4535dc
movq -0x30(%rbp), %rax
leaq 0x125d8d(%rip), %rcx    # 0x578948
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x127670(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x452bf9
jmp 0x452bee
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x452bcb
movq -0x18(%rbp), %rax
movl $0xac, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x2d, %eax
jne 0x452c70
movl $0x2, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %ecx
movl %ecx, -0x20(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x31(%rbp)
je 0x452c45
cmpl $0xa, -0x20(%rbp)
setne %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x452c4e
jmp 0x452c5b
jmp 0x452c50
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x452c22
movq -0x18(%rbp), %rax
movl $0xac, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x61, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x16, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x17, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x60, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x62, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x2a, %eax
jne 0x452d0e
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x0, %eax
jne 0x452d24
movq -0x18(%rbp), %rax
movl $0x63, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movl $0x3, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
movl %eax, -0x20(%rbp)
cmpl $0x2a, -0x20(%rbp)
jne 0x452d52
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x2f, %ecx
movb %al, -0x32(%rbp)
je 0x452d6a
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
setne %al
movb %al, -0x32(%rbp)
movb -0x32(%rbp), %al
testb $0x1, %al
jne 0x452d73
jmp 0x452d80
jmp 0x452d75
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x452d36
cmpl $0x0, -0x20(%rbp)
je 0x452d8f
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movl $0xac, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x64, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x35, (%rax)
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x3d, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
movl %eax, -0x20(%rbp)
cmpl $0x3d, %eax
jne 0x452e08
movq -0x18(%rbp), %rax
movl $0x37, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
cmpl $0x3e, -0x20(%rbp)
jne 0x452e24
movq -0x18(%rbp), %rax
movl $0x34, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
cmpl $0x3c, -0x20(%rbp)
jne 0x452e40
movq -0x18(%rbp), %rax
movl $0x5e, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x38, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
movl %eax, -0x20(%rbp)
cmpl $0x3d, %eax
jne 0x452e7c
movq -0x18(%rbp), %rax
movl $0x39, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
cmpl $0x3e, -0x20(%rbp)
jne 0x452e98
movq -0x18(%rbp), %rax
movl $0x5f, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x36, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x3d, %eax
je 0x452ed1
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x34, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x7c, %eax
je 0x452f0a
movq -0x18(%rbp), %rax
movl $0x5d, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x65, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x1a, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x5c, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x67, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x24(%rbp)
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
je 0x452fc1
movl -0x20(%rbp), %eax
cmpl -0x24(%rbp), %eax
jne 0x452fb4
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
cmpl -0x24(%rbp), %eax
jne 0x452fb0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x452fb2
jmp 0x452fc1
jmp 0x452fb4
jmp 0x452fb6
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x452f73
cmpl $0x27, -0x20(%rbp)
jne 0x452fdf
movq -0x18(%rbp), %rax
movl $0x6a, (%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
cmpl $0x0, -0x20(%rbp)
je 0x452ffd
movq -0x18(%rbp), %rax
movl $0x3b, (%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
movl %eax, %ecx
leaq 0x12722d(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x453045
movq -0x18(%rbp), %rax
movl $0x82, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
jmp 0x453047
movq -0x18(%rbp), %rax
movl $0x8f, (%rax)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x30, %eax
jne 0x4530d4
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x78, %eax
je 0x453077
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x58, %eax
jne 0x4530d4
movq -0x10(%rbp), %rax
movzbl 0x2(%rax), %eax
movl %eax, %ecx
leaq 0x1271c8(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x4530d4
movl $0x3, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x1271a0(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x4530c9
jmp 0x4530be
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x45309b
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x127160(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x453109
jmp 0x4530fe
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4530db
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
jne 0x453159
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x127118(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x45314f
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453123
movq -0x18(%rbp), %rax
movl $0x8d, (%rax)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x65, %eax
je 0x45317f
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x45, %eax
jne 0x453236
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x1270b7(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x4531f7
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x2b, %eax
je 0x4531d1
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x2d, %eax
jne 0x453236
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x127065(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x453236
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x12703b(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x45322c
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453200
movq -0x18(%rbp), %rax
movl $0x8d, (%rax)
jmp 0x453238
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x127003(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x46, %eax
cmpl $0x0, %eax
je 0x45326e
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453238
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x20(%rbp)
xorl %eax, %eax
cmpl $0x5d, -0x20(%rbp)
movb %al, -0x33(%rbp)
je 0x4532ad
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
setne %al
movb %al, -0x33(%rbp)
movb -0x33(%rbp), %al
testb $0x1, %al
jne 0x4532b6
jmp 0x4532c3
jmp 0x4532b8
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x45328a
movl -0x20(%rbp), %edx
movl $0xad, %ecx
movl $0x3b, %eax
cmpl $0x5d, %edx
cmovel %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0x90, (%rax)
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x126f43(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x453326
jmp 0x45331b
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4532f8
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movl $0x0, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl $0x90, (%rax)
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
je 0x453445
movl -0x20(%rbp), %eax
movzbl %al, %eax
movl %eax, %ecx
leaq 0x126ee0(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x46, %eax
cmpl $0x0, %eax
je 0x45338a
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x453435
cmpl $0x28, -0x20(%rbp)
jne 0x453408
cmpl $0x0, -0x28(%rbp)
jle 0x453408
jmp 0x453398
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %ecx
movl %ecx, -0x20(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x34(%rbp)
je 0x4533e4
movl -0x20(%rbp), %eax
movzbl %al, %eax
movl %eax, %ecx
leaq 0x126e87(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %ecx
andl $0x1, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x34(%rbp)
jne 0x4533e4
cmpl $0x29, -0x20(%rbp)
setne %al
movb %al, -0x34(%rbp)
movb -0x34(%rbp), %al
testb $0x1, %al
jne 0x453398
cmpl $0x29, -0x20(%rbp)
jne 0x4533fc
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453406
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
jmp 0x453445
cmpl $0x3a, -0x20(%rbp)
jne 0x45342f
movq -0x10(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x45342f
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453431
jmp 0x453445
jmp 0x453433
jmp 0x453435
jmp 0x453437
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453349
cmpl $0x0, -0x28(%rbp)
jne 0x453455
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
movl $0x1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x1275e4(%rip), %rax    # 0x57aa60
movzbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jg 0x453492
jmp 0x453487
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453467
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x126da9(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x46, %eax
cmpl $0x0, %eax
je 0x4534c1
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4535ef
movq -0x18(%rbp), %rax
movl $0x3b, (%rax)
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x453640
movl %eax, -0x4(%rbp)
jmp 0x45362d
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x27, %eax
jne 0x4535be
movq -0x18(%rbp), %rax
movl $0x8e, (%rax)
movl $0x2, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x126d36(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x453533
jmp 0x453528
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x453505
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x27, %eax
jne 0x453554
movl -0x1c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x45359f
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x35(%rbp)
je 0x453589
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x27, %eax
setne %al
movb %al, -0x35(%rbp)
movb -0x35(%rbp), %al
testb $0x1, %al
jne 0x453592
jmp 0x45359d
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x45355e
jmp 0x45359f
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x4535b6
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x45362d
jmp 0x4535c0
movl $0x1, -0x1c(%rbp)
jmp 0x4535ef
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x45362d
movq -0x18(%rbp), %rax
movl $0xad, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x45362d
jmp 0x4535f1
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x126c4a(%rip), %rax    # 0x57a250
movzbl (%rax,%rcx), %eax
andl $0x46, %eax
cmpl $0x0, %eax
je 0x45361d
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4535f1
movq -0x18(%rbp), %rax
movl $0x3b, (%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)