// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: explainAppendTerm
static void explainAppendTerm(
  StrAccum *pStr,             /* The text expression being built */
  Index *pIdx,                /* Index to read column names from */
  int nTerm,                  /* Number of terms */
  int iTerm,                  /* Zero-based index of first term. */
  int bAnd,                   /* Non-zero to append " AND " */
  const char *zOp             /* Name of the operator */
){
  int i;

  assert( nTerm>=1 );
  if( bAnd ) sqlite3_str_append(pStr, " AND ", 5);

  if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);
  for(i=0; i<nTerm; i++){
    if( i ) sqlite3_str_append(pStr, ",", 1);
    sqlite3_str_appendall(pStr, explainIndexColumnName(pIdx, iTerm+i));
  }
  if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);

  sqlite3_str_append(pStr, zOp, 1);

  if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);
  for(i=0; i<nTerm; i++){
    if( i ) sqlite3_str_append(pStr, ",", 1);
    sqlite3_str_append(pStr, "?", 1);
  }
  if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, 0x10(%rsp)
movl %ecx, %r12d
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %rbx
testl %r8d, %r8d
je 0x2e6621
movl 0x18(%rbx), %eax
leal 0x5(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e660d
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x20, 0x4(%rcx,%rax)
movl $0x444e4120, (%rcx,%rax) # imm = 0x444E4120
jmp 0x2e6621
leaq 0xfbbcb(%rip), %rsi     # 0x3e21df
movq %rbx, %rdi
movl $0x5, %edx
callq 0x27e2ca
cmpl $0x2, %ebp
jl 0x2e6652
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e663e
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x28, (%rcx,%rax)
jmp 0x2e6652
leaq 0xe2d08(%rip), %rsi     # 0x3c934d
movq %rbx, %rdi
movl $0x1, %edx
callq 0x27e2ca
movl %ebp, 0xc(%rsp)
testl %ebp, %ebp
jle 0x2e66ee
movslq %r12d, %r13
movl 0xc(%rsp), %r14d
addq %r13, %r13
xorl %r12d, %r12d
leaq 0xfbb7f(%rip), %rbp     # 0x3e21f2
testq %r12, %r12
je 0x2e66a4
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e6690
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x2c, (%rcx,%rax)
jmp 0x2e66a4
movq %rbx, %rdi
leaq 0xc3fff(%rip), %rsi     # 0x3aa699
movl $0x1, %edx
callq 0x27e2ca
movq 0x8(%r15), %rax
addq %r13, %rax
movzwl (%rax,%r12,2), %eax
movq %rbp, %rsi
cmpl $0xfffe, %eax           # imm = 0xFFFE
je 0x2e66de
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x2e66ca
leaq 0xf95eb(%rip), %rsi     # 0x3dfcb3
jmp 0x2e66de
movswq %ax, %rax
movq 0x18(%r15), %rcx
movq 0x8(%rcx), %rcx
shlq $0x5, %rax
movq (%rcx,%rax), %rsi
movq %rbx, %rdi
callq 0x27e15a
incq %r12
cmpq %r12, %r14
jne 0x2e6673
movl 0x10(%rbx), %edx
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
movl 0xc(%rsp), %r12d
cmpl $0x2, %r12d
jl 0x2e6713
cmpl %edx, %ecx
jae 0x2e672a
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x29, (%rcx,%rax)
jmp 0x2e673e
cmpl %edx, %ecx
jae 0x2e675c
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movq 0x10(%rsp), %rdx
movb (%rdx), %dl
movb %dl, (%rcx,%rax)
jmp 0x2e67a4
leaq 0xfb104(%rip), %rsi     # 0x3e1835
movq %rbx, %rdi
movl $0x1, %edx
callq 0x27e2ca
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e6766
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movq 0x10(%rsp), %rdx
movb (%rdx), %dl
movb %dl, (%rcx,%rax)
jmp 0x2e6778
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
jmp 0x2e679a
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movl $0x1, %edx
callq 0x27e2ca
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e6790
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x28, (%rcx,%rax)
jmp 0x2e67a4
leaq 0xe2bb6(%rip), %rsi     # 0x3c934d
movq %rbx, %rdi
movl $0x1, %edx
callq 0x27e2ca
testl %r12d, %r12d
jle 0x2e6814
xorl %ebp, %ebp
leaq 0x9961d(%rip), %r14     # 0x37fdcf
leaq 0xc3ee0(%rip), %r15     # 0x3aa699
testl %ebp, %ebp
je 0x2e67e5
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e67d5
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x2c, (%rcx,%rax)
jmp 0x2e67e5
movq %rbx, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x27e2ca
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e67fd
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x3f, (%rcx,%rax)
jmp 0x2e680d
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x27e2ca
incl %ebp
cmpl %ebp, %r12d
jne 0x2e67b9
cmpl $0x2, %r12d
jl 0x2e6830
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2e683f
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x29, (%rcx,%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xfafef(%rip), %rsi     # 0x3e1835
movq %rbx, %rdi
movl $0x1, %edx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x27e2ca