// File: /workspace/github_c_makefile_star2_O3/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, %r14
movl %ecx, %r12d
movl %edx, %r13d
movq %rsi, %r15
movq %rdi, %rbx
testl %r8d, %r8d
je 0x2dd0e4
movl 0x18(%rbx), %eax
leal 0x5(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd0d0
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x20, 0x4(%rcx,%rax)
movl $0x444e4120, (%rcx,%rax) # imm = 0x444E4120
jmp 0x2dd0e4
leaq 0xfb9b3(%rip), %rsi     # 0x3d8a8a
movq %rbx, %rdi
movl $0x5, %edx
callq 0x274968
cmpl $0x2, %r13d
jl 0x2dd102
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd10f
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x28, (%rcx,%rax)
jmp 0x2dd123
cmpl $0x1, %r13d
je 0x2dd123
xorl %ebp, %ebp
jmp 0x2dd1e8
leaq 0xe2bb7(%rip), %rsi     # 0x3bfccd
movq %rbx, %rdi
movl $0x1, %edx
callq 0x274968
movq %r14, 0x10(%rsp)
movl %r13d, %eax
movslq %r12d, %r13
movl %eax, 0xc(%rsp)
movl %eax, %r14d
addq %r13, %r13
xorl %r12d, %r12d
leaq 0xfb95b(%rip), %rbp     # 0x3d8a9d
testq %r12, %r12
je 0x2dd173
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd15f
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x2c, (%rcx,%rax)
jmp 0x2dd173
movq %rbx, %rdi
leaq 0xc3fd3(%rip), %rsi     # 0x3a113c
movl $0x1, %edx
callq 0x274968
movq 0x8(%r15), %rax
addq %r13, %rax
movzwl (%rax,%r12,2), %eax
movq %rbp, %rsi
cmpl $0xfffe, %eax           # imm = 0xFFFE
je 0x2dd1ad
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x2dd199
leaq 0xf93cf(%rip), %rsi     # 0x3d6566
jmp 0x2dd1ad
movswq %ax, %rax
movq 0x18(%r15), %rcx
movq 0x8(%rcx), %rcx
shlq $0x5, %rax
movq (%rcx,%rax), %rsi
movq %rbx, %rdi
callq 0x2747f8
incq %r12
cmpq %r12, %r14
jne 0x2dd142
movb $0x1, %bpl
movl 0xc(%rsp), %r13d
cmpl $0x2, %r13d
movq 0x10(%rsp), %r14
jl 0x2dd1e8
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd21c
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x29, (%rcx,%rax)
jmp 0x2dd230
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd202
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb (%r14), %dl
movb %dl, (%rcx,%rax)
jmp 0x2dd212
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x274968
testb %bpl, %bpl
jne 0x2dd286
jmp 0x2dd30d
leaq 0xfaebd(%rip), %rsi     # 0x3d80e0
movq %rbx, %rdi
movl $0x1, %edx
callq 0x274968
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd24a
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb (%r14), %dl
movb %dl, (%rcx,%rax)
jmp 0x2dd25a
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x274968
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd272
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x28, (%rcx,%rax)
jmp 0x2dd286
leaq 0xe2a54(%rip), %rsi     # 0x3bfccd
movq %rbx, %rdi
movl $0x1, %edx
callq 0x274968
xorl %ebp, %ebp
leaq 0x998ae(%rip), %r14     # 0x376b3d
leaq 0xc3ea6(%rip), %r15     # 0x3a113c
testl %ebp, %ebp
je 0x2dd2c2
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd2b2
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x2c, (%rcx,%rax)
jmp 0x2dd2c2
movq %rbx, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0x274968
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd2da
movl %ecx, 0x18(%rbx)
movq 0x8(%rbx), %rcx
movb $0x3f, (%rcx,%rax)
jmp 0x2dd2ea
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x274968
incl %ebp
cmpl %ebp, %r13d
jne 0x2dd296
cmpl $0x2, %r13d
jl 0x2dd30d
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jae 0x2dd31c
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 0xfadbd(%rip), %rsi     # 0x3d80e0
movq %rbx, %rdi
movl $0x1, %edx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x274968