// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: sqlite3_step
SQLITE_API int sqlite3_step(sqlite3_stmt *pStmt){
  int rc = SQLITE_OK;      /* Result from sqlite3Step() */
  Vdbe *v = (Vdbe*)pStmt;  /* the prepared statement */
  int cnt = 0;             /* Counter to prevent infinite loop of reprepares */
  sqlite3 *db;             /* The database connection */

  if( vdbeSafetyNotNull(v) ){
    return SQLITE_MISUSE_BKPT;
  }
  db = v->db;
  sqlite3_mutex_enter(db->mutex);
  v->doingRerun = 0;
  while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
         && cnt++ < SQLITE_MAX_SCHEMA_RETRY ){
    int savedPc = v->pc;
    rc = sqlite3Reprepare(v);
    if( rc!=SQLITE_OK ){
      /* This case occurs after failing to recompile an sql statement.
      ** The error message from the SQL compiler has already been loaded
      ** into the database handle. This block copies the error message
      ** from the database handle into the statement and sets the statement
      ** program counter to 0 to ensure that when the statement is
      ** finalized or reset the parser error message is available via
      ** sqlite3_errmsg() and sqlite3_errcode().
      */
      const char *zErr = (const char *)sqlite3_value_text(db->pErr);
      sqlite3DbFree(db, v->zErrMsg);
      if( !db->mallocFailed ){
        v->zErrMsg = sqlite3DbStrDup(db, zErr);
        v->rc = rc = sqlite3ApiExit(db, rc);
      } else {
        v->zErrMsg = 0;
        v->rc = rc = SQLITE_NOMEM_BKPT;
      }
      break;
    }
    sqlite3_reset(pStmt);
    if( savedPc>=0 ) v->doingRerun = 1;
    assert( v->expired==0 );
  }
  sqlite3_mutex_leave(db->mutex);
  return rc;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, %rbx
callq 0x22570a
testl %eax, %eax
je 0x224c2f
movl $0x1471f, %edi          # imm = 0x1471F
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x21ec3c
movq (%rbx), %r13
movb $0x0, 0xc5(%rbx)
leaq 0xb8(%rbx), %rax
movq %rax, 0x60(%rsp)
leaq 0x88(%rbx), %rax
movq %rax, 0x88(%rsp)
leaq 0xd0(%rbx), %rax
movq %rax, 0x80(%rsp)
pushq $0x7
popq %r12
movl $0x0, 0x24(%rsp)
movq %r13, 0x30(%rsp)
movq %rbx, 0x70(%rsp)
cmpl $0x2df20da3, 0x24(%rbx) # imm = 0x2DF20DA3
je 0x224c8a
movq %rbx, %rdi
callq 0x22419f
movq (%rbx), %rbp
cmpb $0x0, 0x61(%rbp)
jne 0x2256c1
cmpl $0x0, 0x34(%rbx)
movzwl 0xc6(%rbx), %eax
js 0x224cfc
andw $0xc, %ax
je 0x224d28
movq (%rbx), %rcx
movb $0x1, %r14b
cmpw $0x4, %ax
je 0x224cbe
movb 0x33(%rcx), %r14b
andb $0x1, %r14b
movq %rcx, 0x28(%rsp)
movq 0x68(%rbx), %rax
movq %rax, 0x58(%rsp)
leaq 0x38(%rax), %r15
movq %r15, %rdi
pushq $0x8
popq %rsi
callq 0x238689
andq $0x0, 0xa0(%rbx)
cmpl $0x7, 0x38(%rbx)
jne 0x224d51
movq 0x28(%rsp), %rdi
callq 0x224bb1
pushq $0x1
popq %r15
jmp 0x225093
testb $0x3, %al
je 0x224d70
movl $0x11, 0x38(%rbx)
cmpb $0x0, 0xc4(%rbx)
pushq $0x1
popq %r14
jns 0x225178
movq %rbx, %rdi
callq 0x239241
movl %eax, %r14d
jmp 0x225178
incl 0xcc(%rbp)
movq %rbx, %rdi
callq 0x23af69
decl 0xcc(%rbp)
movl %eax, %r15d
pushq $0x64
popq %r14
cmpl $0x64, %eax
jne 0x225093
jmp 0x225155
testb %r14b, %r14b
je 0x224ded
movq 0x68(%rbx), %rcx
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rcx
movq %rcx, 0x10(%rsp)
jmp 0x224df6
movl 0xc0(%rbp), %eax
testl %eax, %eax
jne 0x224d84
movl $0x0, 0x168(%rbp)
testb $-0x7e, 0x68(%rbp)
je 0x224db1
cmpb $0x0, 0xb5(%rbp)
jne 0x224db1
cmpq $0x0, 0xf0(%rbx)
je 0x224db1
movq (%rbp), %rdi
movq 0x60(%rsp), %rsi
callq 0x2388ad
movl 0xc0(%rbp), %eax
incl %eax
movl %eax, 0xc0(%rbp)
movzwl 0xc6(%rbx), %eax
testb %al, %al
js 0x224dd1
incl 0xc8(%rbp)
movzwl 0xc6(%rbx), %eax
btl $0x8, %eax
jae 0x224de4
incl 0xc4(%rbp)
movzwl 0xc6(%rbx), %eax
andl $0x0, 0x34(%rbx)
jmp 0x224ca4
movq $0x0, 0x10(%rsp)
movl 0x90(%rbx), %r13d
cmpq $0x0, 0x10(%rsp)
je 0x224e1e
movq 0x10(%rsp), %rax
testb $0x10, 0x8(%rax)
jne 0x224fcd
xorl %r10d, %r10d
xorl %eax, %eax
jmp 0x224fde
xorl %r10d, %r10d
xorl %eax, %eax
movzwl 0xc6(%rbx), %edi
andl $0xc, %edi
movl 0x34(%rbx), %r12d
movq %r15, 0x18(%rsp)
movq %rbp, 0x50(%rsp)
movl %edi, 0x44(%rsp)
leal 0x1(%r12), %r14d
cmpl %r13d, %r12d
jge 0x22507e
movl %r12d, %ecx
movl %r12d, %edx
movq 0x88(%rsp), %r8
subl 0x90(%rbx), %ecx
jge 0x224eba
movq (%r8), %r9
movslq %edx, %r8
cmpq $0x0, 0x10(%rsp)
je 0x224f6e
imulq $0x18, %r8, %r15
cmpb $-0x4, 0x1(%r9,%r15)
jne 0x224f69
addq %r9, %r15
leal 0x1(%r10), %ecx
movl %ecx, 0x4c(%rsp)
leal 0x8(,%r10,8), %r11d
testl %r10d, %r10d
movl $0x0, %ecx
cmovgl %r10d, %ecx
xorl %edx, %edx
cmpq %rdx, %rcx
je 0x224ed0
movq (%rax,%rdx,8), %rsi
cmpq 0x10(%r15), %rsi
je 0x224ece
incq %rdx
jmp 0x224ea6
movq %rax, %rsi
movl %ecx, %edx
movq (%rsi), %r8
subl 0x8(%r8), %ecx
jl 0x224e63
addq $0x8, %rsi
jmp 0x224ebd
movl %edx, %ecx
cmpl %r10d, %ecx
jne 0x224f69
movq %r8, 0x38(%rsp)
movq %r9, 0x78(%rsp)
xorl %edx, %edx
testl %r10d, %r10d
setne %dl
movq 0x10(%rsp), %rdi
movl %r11d, 0x48(%rsp)
movl %r11d, %esi
movq %rdi, %rbp
movq %r10, %rbx
callq 0x23a039
movq 0x70(%rsp), %rcx
movq %rcx, %rsi
movl %eax, 0x38(%rcx)
testl %eax, %eax
jne 0x2252aa
movq 0x10(%rbp), %rax
movq 0x10(%r15), %rcx
movslq %ebx, %rdx
movq %rcx, (%rax,%rdx,8)
movzwl 0x8(%rbp), %ecx
andl $0x3e40, %ecx           # imm = 0x3E40
orl $0x10, %ecx
movw %cx, 0x8(%rbp)
movl 0x48(%rsp), %ecx
movl %ecx, 0xc(%rbp)
movq 0x10(%r15), %rcx
addl 0x8(%rcx), %r13d
movl 0x4c(%rsp), %ecx
movl %ecx, %r10d
movq 0x18(%rsp), %r15
movq 0x78(%rsp), %r9
movq 0x38(%rsp), %r8
movq 0x50(%rsp), %rbp
movq %rsi, %rbx
movl 0x44(%rsp), %edi
jmp 0x224f6e
movq 0x18(%rsp), %r15
cmpw $0x8, %di
jne 0x224f99
imulq $0x18, %r8, %rcx
movb (%r9,%rcx), %cl
cmpb $-0x52, %cl
je 0x224f99
testl %r12d, %r12d
movl %r14d, %r12d
jle 0x224e3f
movl %r14d, %r12d
cmpb $0x3e, %cl
jne 0x224e3f
movl %r14d, 0x34(%rbx)
movq 0x28(%rsp), %rax
movl 0x168(%rax), %eax
testl %eax, %eax
je 0x225002
movl $0x9, 0x38(%rbx)
movq %rbx, %rdi
leaq 0x1557e8(%rip), %rsi    # 0x37a7a5
xorl %eax, %eax
callq 0x239bc2
pushq $0x1
popq %r15
jmp 0x22508a
movq 0x10(%rsp), %rax
movl 0xc(%rax), %r10d
sarl $0x3, %r10d
movq 0x10(%rax), %rax
testl %r10d, %r10d
movl $0x0, %ecx
cmovgl %r10d, %ecx
xorl %edx, %edx
cmpq %rdx, %rcx
je 0x224e23
movq (%rax,%rdx,8), %rsi
addl 0x8(%rsi), %r13d
incq %rdx
jmp 0x224fec
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movabsq $0x3b9aca0000000000, %rax # imm = 0x3B9ACA0000000000
movq %rax, 0xa0(%rsp)
andl $0x0, 0xa8(%rsp)
movq %r8, 0x38(%rsp)
imulq $0x18, %r8, %rax
andw $0x0, 0xac(%rsp)
addq %rax, %r9
movq %r9, %r13
movzbl 0x1(%r9), %eax
addl $0xffffff11, %eax       # imm = 0xFFFFFF11
cmpl $0xf, %eax
pushq $0x1
popq %r12
pushq $-0x1
popq %r14
ja 0x2254ee
leaq 0x14b47f(%rip), %rcx    # 0x3704e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x1529b6(%rip), %rsi    # 0x377a25
jmpq *%rax
movq 0x10(%r13), %rax
movq 0x8(%rax), %rax
jmp 0x2253d3
andl $0x0, 0x38(%rbx)
pushq $0x65
popq %r15
movl %r14d, 0x34(%rbx)
movq 0x30(%rsp), %r13
pushq $0x7
popq %r12
movq 0x60(%rsp), %rax
cmpq $0x0, (%rax)
jle 0x2250a9
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x2240c9
cmpl $0x65, %r15d
jne 0x22512c
cmpb $0x0, 0x5f(%rbp)
pushq $0x65
popq %r14
je 0x225155
xorl %r14d, %r14d
pushq $0x8
popq %r15
xorl %eax, %eax
movslq 0x28(%rbp), %rcx
cmpq %rcx, %r14
jge 0x225145
movq 0x20(%rbp), %rdx
movq (%rdx,%r15), %rcx
testq %rcx, %rcx
je 0x225123
movq (%rcx), %rsi
movq 0x8(%rcx), %rcx
movq %rsi, 0x8(%rcx)
movq (%rcx), %rcx
movq 0x120(%rcx), %rsi
testq %rsi, %rsi
je 0x225123
movl 0x18(%rsi), %ecx
andl $0x0, 0x18(%rsi)
testl %ecx, %ecx
jle 0x225123
movq 0x138(%rbp), %r8
testq %r8, %r8
je 0x225123
testl %eax, %eax
jne 0x225123
movq 0x140(%rbp), %rdi
movq -0x8(%rdx,%r15), %rdx
movq %rbp, %rsi
callq *%r8
incq %r14
addq $0x20, %r15
jmp 0x2250c6
cmpb $0x0, 0xc4(%rbx)
movl %r15d, %r14d
jns 0x225155
movq %rbx, %rdi
callq 0x239241
movl %eax, %r14d
jmp 0x225155
movl %eax, 0x38(%rbx)
testl %eax, %eax
pushq $0x1
popq %r14
pushq $0x65
popq %rax
cmovel %eax, %r14d
movl %r14d, 0x50(%rbp)
movq (%rbx), %rdi
movl 0x38(%rbx), %esi
callq 0x22417d
cmpl $0x7, %eax
jne 0x225178
movl %r12d, 0x38(%rbx)
cmpb $0x0, 0xc4(%rbx)
cmovsl %r12d, %r14d
andl 0x54(%rbp), %r14d
cmpl $0x11, %r14d
jne 0x2256f5
cmpl $0x32, 0x24(%rsp)
je 0x2256cd
movl 0x34(%rbx), %r15d
movq (%rbx), %r14
movq 0xf0(%rbx), %rsi
movzbl 0xc4(%rbx), %ecx
andq $0x0, (%rsp)
movq %r14, %rdi
pushq $-0x1
popq %rdx
movq %rbx, %r8
leaq 0x68(%rsp), %r9
callq 0x228600
testl %eax, %eax
jne 0x225685
incl 0x24(%rsp)
movq 0x68(%rsp), %r14
movl $0x128, %edx            # imm = 0x128
leaq 0x90(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0x17630
movl $0x128, %edx            # imm = 0x128
movq %r14, %rdi
movq %rbx, %rsi
callq 0x17630
movl $0x128, %edx            # imm = 0x128
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x17630
movups 0x8(%rbx), %xmm0
movups 0x8(%r14), %xmm1
movups %xmm0, 0x8(%r14)
movups %xmm1, 0x8(%rbx)
movq 0xf0(%r14), %rax
movq 0xf0(%rbx), %rcx
movq %rcx, 0xf0(%r14)
movq %rax, 0xf0(%rbx)
movl 0x114(%r14), %eax
movl %eax, 0x114(%rbx)
movb 0xc4(%r14), %al
movb %al, 0xc4(%rbx)
movups 0xd0(%r14), %xmm0
movups 0xdc(%r14), %xmm1
movq 0x80(%rsp), %rax
movups %xmm1, 0xc(%rax)
movups %xmm0, (%rax)
incl 0xe4(%rbx)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2260d3
movq 0x68(%rsp), %rdi
andl $0x0, 0x38(%rdi)
callq 0x224149
movq %rbx, %rdi
callq 0x22419f
testl %r15d, %r15d
js 0x224c79
movb $0x1, 0xc5(%rbx)
jmp 0x224c79
pushq $0x1
popq %r15
movq 0x50(%rsp), %rbp
movq %rsi, %rbx
jmp 0x225086
movq 0x10(%r13), %r15
movzwl 0x6(%r15), %edx
leaq 0x90(%rsp), %rdi
leaq 0x150f58(%rip), %rsi    # 0x37622b
xorl %eax, %eax
callq 0x221594
xorl %r12d, %r12d
movzwl 0x6(%r15), %eax
cmpq %rax, %r12
jae 0x225366
movq 0x20(%r15,%r12,8), %rax
leaq 0x14527d(%rip), %r14    # 0x36a570
testq %rax, %rax
je 0x2252fb
movq (%rax), %r14
movq %r14, %rdi
leaq 0x14cc6b(%rip), %rsi    # 0x371f70
callq 0x179e0
testl %eax, %eax
leaq 0x145636(%rip), %rax    # 0x36a949
cmoveq %rax, %r14
movq 0x18(%r15), %rax
movzbl (%rax,%r12), %eax
testb $0x1, %al
leaq 0x142e81(%rip), %rdx    # 0x3681aa
leaq 0x145240(%rip), %rsi    # 0x36a570
cmoveq %rsi, %rdx
testb $0x2, %al
leaq 0x13a9ad(%rip), %rcx    # 0x35fcea
cmoveq %rsi, %rcx
leaq 0x90(%rsp), %rdi
leaq 0x150ee0(%rip), %rsi    # 0x376230
movq %r14, %r8
xorl %eax, %eax
callq 0x221594
incq %r12
pushq $-0x1
popq %r14
jmp 0x2252dd
leaq 0x90(%rsp), %rdi
leaq 0x15318b(%rip), %rsi    # 0x378500
pushq $0x1
popq %rdx
callq 0x220f53
jmp 0x2254c5
movq 0x10(%r13), %rax
movq (%rax), %rdx
movzbl 0x8(%rax), %eax
leaq 0x14cbe4(%rip), %rsi    # 0x371f78
movslq (%rsi,%rax,4), %rcx
addq %rsi, %rcx
leaq 0x90(%rsp), %rdi
leaq 0x150e98(%rip), %rsi    # 0x376242
xorl %eax, %eax
callq 0x221594
jmp 0x22550d
movq 0x10(%r13), %rax
movq 0x10(%rax), %rdx
leaq 0x90(%rsp), %rdi
leaq 0x150e92(%rip), %rsi    # 0x37625f
jmp 0x225440
movq 0x10(%r13), %rax
movq 0x38(%rax), %rdx
movsbl (%rax), %ecx
leaq 0x90(%rsp), %rdi
leaq 0x150e62(%rip), %rsi    # 0x37624b
xorl %eax, %eax
callq 0x221594
jmp 0x22550d
movq 0x10(%r13), %rax
movzwl 0x8(%rax), %ecx
testb $0x2, %cl
jne 0x2254f4
testb $0x24, %cl
jne 0x22542e
testb $0x8, %cl
jne 0x225450
testb $0x1, %cl
leaq 0x141414(%rip), %rsi    # 0x36682e
leaq 0x150e37(%rip), %rax    # 0x376258
cmoveq %rax, %rsi
jmp 0x225500
movq 0x10(%r13), %rax
movq (%rax), %rdx
leaq 0x90(%rsp), %rdi
leaq 0x151e14(%rip), %rsi    # 0x377254
xorl %eax, %eax
callq 0x221594
jmp 0x22550d
movq 0x10(%r13), %rax
movsd (%rax), %xmm0
leaq 0x90(%rsp), %rdi
leaq 0x150def(%rip), %rsi    # 0x376252
movb $0x1, %al
callq 0x221594
jmp 0x22550d
movq 0x10(%r13), %r14
movl (%r14), %r15d
cmpl %r15d, %r12d
ja 0x2254aa
cmpl $0x1, %r12d
pushq $0x2c
popq %rdx
pushq $0x5b
popq %rax
cmovel %eax, %edx
movl %r12d, %eax
movl (%r14,%rax,4), %ecx
leaq 0x90(%rsp), %rdi
leaq 0x150dc9(%rip), %rsi    # 0x376267
xorl %eax, %eax
callq 0x221594
incl %r12d
jmp 0x225476
leaq 0x90(%rsp), %rdi
leaq 0x142d29(%rip), %rsi    # 0x3681e2
pushq $0x1
popq %rdx
callq 0x220f53
pushq $-0x1
popq %r14
movq 0x18(%rsp), %r15
jmp 0x22550d
movl 0x10(%r13), %edx
leaq 0x90(%rsp), %rdi
leaq 0x144eab(%rip), %rsi    # 0x36a38a
xorl %eax, %eax
callq 0x221594
jmp 0x22550d
movq 0x10(%r13), %rax
jmp 0x2254f8
leaq 0x10(%r13), %rax
jmp 0x2254f8
addq $0x10, %rax
movq (%rax), %rsi
testq %rsi, %rsi
je 0x22550d
leaq 0x90(%rsp), %rdi
callq 0x221073
testb $0x7, 0xac(%rsp)
je 0x225521
movq 0x28(%rsp), %rdi
callq 0x224bb1
leaq 0x90(%rsp), %rdi
callq 0x221200
movq %rax, 0x10(%rsp)
movzwl 0xc6(%rbx), %eax
andl $0xc, %eax
cmpw $0x8, %ax
jne 0x22558c
movslq 0x4(%r13), %rsi
movq %r15, %rdi
callq 0x224928
movq 0x58(%rsp), %r12
leaq 0x70(%r12), %rdi
movslq 0x8(%r13), %rsi
callq 0x224928
leaq 0xa8(%r12), %rdi
movslq 0xc(%r13), %rsi
callq 0x224928
movl %r14d, %edx
movw $0x4, %r14w
movl $0xe0, %eax
movq %r15, %r13
pushq $0x1
popq %r15
jmp 0x22562d
movq %r15, %rdi
movq 0x38(%rsp), %rsi
callq 0x224928
movq 0x58(%rsp), %r12
leaq 0x70(%r12), %rdi
movzbl (%r13), %eax
leaq 0x14c9d9(%rip), %rcx    # 0x371f88
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
movl %r14d, %edx
movq %r15, %r14
pushq $0x1
popq %r15
movl %r15d, %ecx
xorl %r8d, %r8d
callq 0x2246e6
leaq 0xa8(%r12), %rdi
movslq 0x4(%r13), %rsi
callq 0x224928
leaq 0xe0(%r12), %rdi
movslq 0x8(%r13), %rsi
callq 0x224928
leaq 0x118(%r12), %rdi
movslq 0xc(%r13), %rsi
callq 0x224928
leaq 0x188(%r12), %rdi
movzwl 0x2(%r13), %esi
movq %r14, %r13
callq 0x224928
leaq 0x1c0(%r12), %rdi
callq 0x224946
pushq $-0x1
popq %rdx
movw $0x8, %r14w
movl $0x150, %eax            # imm = 0x150
addq %rax, %r12
movq %r12, %rdi
movq 0x10(%rsp), %rsi
movl %r15d, %ecx
leaq -0x5e49(%rip), %r8      # 0x21f7f9
callq 0x2246e6
movw %r14w, 0xc0(%rbx)
movq %r13, 0xa0(%rbx)
movq 0x28(%rsp), %rax
cmpb $0x0, 0x61(%rax)
pushq $0x7
popq %r12
movl %r12d, %eax
movl $0x0, %ecx
cmovel %ecx, %eax
movl %eax, 0x38(%rbx)
pushq $0x64
popq %r14
movq 0x30(%rsp), %r13
jne 0x225093
jmp 0x225155
movl %eax, %ebp
cmpl $0x7, %eax
jne 0x225694
movq %r14, %rdi
callq 0x224bb1
movq 0x160(%r13), %rdi
callq 0x2243e3
movq %rax, %r14
movq 0xa8(%rbx), %rsi
movq %r13, %rdi
callq 0x21f26b
cmpb $0x0, 0x61(%r13)
je 0x2256d3
andq $0x0, 0xa8(%rbx)
movl $0x7, 0x38(%rbx)
movl %r12d, %r14d
jmp 0x2256f5
pushq $0x11
popq %r14
jmp 0x2256f5
movq %r13, %rdi
movq %r14, %rsi
callq 0x22572a
movq %rax, 0xa8(%rbx)
movq %r13, %rdi
movl %ebp, %esi
callq 0x22417d
movl %eax, %r14d
movl %eax, 0x38(%rbx)
movl %r14d, %eax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq