// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: sqlite3ResolveExprListNames
SQLITE_PRIVATE int sqlite3ResolveExprListNames(
  NameContext *pNC,       /* Namespace to resolve expressions in. */
  ExprList *pList         /* The expression list to be analyzed. */
){
  int i;
  int savedHasAgg = 0;
  Walker w;
  if( pList==0 ) return WRC_Continue;
  w.pParse = pNC->pParse;
  w.xExprCallback = resolveExprStep;
  w.xSelectCallback = resolveSelectStep;
  w.xSelectCallback2 = 0;
  w.u.pNC = pNC;
  savedHasAgg = pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg|NC_HasWin);
  pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin);
  for(i=0; i<pList->nExpr; i++){
    Expr *pExpr = pList->a[i].pExpr;
    if( pExpr==0 ) continue;
#if SQLITE_MAX_EXPR_DEPTH>0
    w.pParse->nHeight += pExpr->nHeight;
    if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){
      return WRC_Abort;
    }
#endif
    sqlite3WalkExpr(&w, pExpr);
#if SQLITE_MAX_EXPR_DEPTH>0
    w.pParse->nHeight -= pExpr->nHeight;
#endif
    assert( EP_Agg==NC_HasAgg );
    assert( EP_Win==NC_HasWin );
    testcase( pNC->ncFlags & NC_HasAgg );
    testcase( pNC->ncFlags & NC_HasWin );
    if( pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg|NC_HasWin) ){
      ExprSetProperty(pExpr, pNC->ncFlags & (NC_HasAgg|NC_HasWin) );
      savedHasAgg |= pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg|NC_HasWin);
      pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin);
    }
    if( pNC->nErr>0 || w.pParse->nErr>0 ) return WRC_Abort;
  }
  pNC->ncFlags |= savedHasAgg;
  return WRC_Continue;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x0, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x4354da
movl $0x0, -0x4(%rbp)
jmp 0x435652
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
leaq 0x174(%rip), %rax       # 0x435660
movq %rax, -0x48(%rbp)
leaq 0xd59(%rip), %rax       # 0x436250
movq %rax, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x9010, %eax           # imm = 0x9010
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0xffff6fef, %ecx       # imm = 0xFFFF6FEF
movl %ecx, 0x28(%rax)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x43563e
movq -0x18(%rbp), %rax
addq $0x8, %rax
movslq -0x1c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
jne 0x435566
jmp 0x435630
movq -0x58(%rbp), %rax
movl 0x28(%rax), %ecx
movq -0x50(%rbp), %rax
addl 0x124(%rax), %ecx
movl %ecx, 0x124(%rax)
movq -0x50(%rbp), %rdi
movq -0x50(%rbp), %rax
movl 0x124(%rax), %esi
callq 0x436980
cmpl $0x0, %eax
je 0x4355a1
movl $0x2, -0x4(%rbp)
jmp 0x435652
movq -0x58(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x42f650
movq -0x58(%rbp), %rax
movl 0x28(%rax), %edx
movq -0x50(%rbp), %rax
movl 0x124(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x124(%rax)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x9010, %eax           # imm = 0x9010
cmpl $0x0, %eax
je 0x435611
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0x8010, %ecx           # imm = 0x8010
movq -0x58(%rbp), %rax
orl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x9010, %eax           # imm = 0x9010
orl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0xffff6fef, %ecx       # imm = 0xFFFF6FEF
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x24(%rax)
jg 0x435625
movq -0x50(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jle 0x43562e
movl $0x2, -0x4(%rbp)
jmp 0x435652
jmp 0x435630
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x435531
movl -0x20(%rbp), %ecx
movq -0x10(%rbp), %rax
orl 0x28(%rax), %ecx
movl %ecx, 0x28(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)