// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: yy_find_shift_action
static YYACTIONTYPE yy_find_shift_action(
  YYCODETYPE iLookAhead,    /* The look-ahead token */
  YYACTIONTYPE stateno      /* Current state number */
){
  int i;

  if( stateno>YY_MAX_SHIFT ) return stateno;
  assert( stateno <= YY_SHIFT_COUNT );
#if defined(YYCOVERAGE)
  yycoverage[stateno][iLookAhead] = 1;
#endif
  do{
    i = yy_shift_ofst[stateno];
    assert( i>=0 );
    assert( i<=YY_ACTTAB_COUNT );
    assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD );
    assert( iLookAhead!=YYNOCODE );
    assert( iLookAhead < YYNTOKEN );
    i += iLookAhead;
    assert( i<(int)YY_NLOOKAHEAD );
    if( yy_lookahead[i]!=iLookAhead ){
#ifdef YYFALLBACK
      YYCODETYPE iFallback;            /* Fallback token */
      assert( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) );
      iFallback = yyFallback[iLookAhead];
      if( iFallback!=0 ){
#ifndef NDEBUG
        if( yyTraceFILE ){
          fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
             yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
        }
#endif
        assert( yyFallback[iFallback]==0 ); /* Fallback loop must terminate */
        iLookAhead = iFallback;
        continue;
      }
#endif
#ifdef YYWILDCARD
      {
        int j = i - iLookAhead + YYWILDCARD;
        assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) );
        if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
#ifndef NDEBUG
          if( yyTraceFILE ){
            fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
               yyTracePrompt, yyTokenName[iLookAhead],
               yyTokenName[YYWILDCARD]);
          }
#endif /* NDEBUG */
          return yy_action[j];
        }
      }
#endif /* YYWILDCARD */
      return yy_default[stateno];
    }else{
      assert( i>=0 && i<sizeof(yy_action)/sizeof(yy_action[0]) );
      return yy_action[i];
    }
  }while(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movw %si, %ax
movw %di, %cx
movw %cx, -0x4(%rbp)
movw %ax, -0x6(%rbp)
movzwl -0x6(%rbp), %eax
cmpl $0x228, %eax            # imm = 0x228
jle 0x412dba
movw -0x6(%rbp), %ax
movw %ax, -0x2(%rbp)
jmp 0x412e96
jmp 0x412dbc
movzwl -0x6(%rbp), %eax
movl %eax, %ecx
leaq 0x194b97(%rip), %rax    # 0x5a7960
movzwl (%rax,%rcx,2), %eax
movl %eax, -0xc(%rbp)
movzwl -0x4(%rbp), %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x194fdb(%rip), %rax    # 0x5a7dc0
movzwl (%rax,%rcx,2), %eax
movzwl -0x4(%rbp), %ecx
cmpl %ecx, %eax
je 0x412e75
movzwl -0x4(%rbp), %eax
movl %eax, %ecx
leaq 0x1949ee(%rip), %rax    # 0x5a77f0
movw (%rax,%rcx,2), %ax
movw %ax, -0xe(%rbp)
movzwl -0xe(%rbp), %eax
cmpl $0x0, %eax
je 0x412e1d
movw -0xe(%rbp), %ax
movw %ax, -0x4(%rbp)
jmp 0x412e8a
movl -0xc(%rbp), %eax
movzwl -0x4(%rbp), %ecx
subl %ecx, %eax
addl $0x64, %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x194f89(%rip), %rax    # 0x5a7dc0
movzwl (%rax,%rcx,2), %eax
cmpl $0x64, %eax
jne 0x412e5e
movzwl -0x4(%rbp), %eax
cmpl $0x0, %eax
jle 0x412e5e
movslq -0x14(%rbp), %rcx
leaq 0x19602c(%rip), %rax    # 0x5a8e80
movw (%rax,%rcx,2), %ax
movw %ax, -0x2(%rbp)
jmp 0x412e96
movzwl -0x6(%rbp), %eax
movl %eax, %ecx
leaq 0x196f75(%rip), %rax    # 0x5a9de0
movw (%rax,%rcx,2), %ax
movw %ax, -0x2(%rbp)
jmp 0x412e96
movslq -0xc(%rbp), %rcx
leaq 0x196000(%rip), %rax    # 0x5a8e80
movw (%rax,%rcx,2), %ax
movw %ax, -0x2(%rbp)
jmp 0x412e96
movb $0x1, %al
testb $0x1, %al
jne 0x412dbc
jmp 0x412e96
movw -0x2(%rbp), %ax
popq %rbp
retq
nopl (%rax)