LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VdbeSorterWrite
SQLITE_PRIVATE int sqlite3VdbeSorterWrite(
  sqlite3 *db,                    /* Database handle */
  const VdbeCursor *pCsr,               /* Sorter cursor */
  Mem *pVal                       /* Memory cell containing record */
){
  VdbeSorter *pSorter = pCsr->pSorter;
  int rc = SQLITE_OK;             /* Return Code */
  SorterRecord *pNew;             /* New list element */

  assert( pSorter );
  pSorter->nInMemory += sqlite3VarintLen(pVal->n) + pVal->n;

  pNew = (SorterRecord *)sqlite3DbMallocRaw(db, pVal->n + sizeof(SorterRecord));
  if( pNew==0 ){
    rc = SQLITE_NOMEM;
  }else{
    pNew->pVal = (void *)&pNew[1];
    memcpy(pNew->pVal, pVal->z, pVal->n);
    pNew->nVal = pVal->n;
    pNew->pNext = pSorter->pRecord;
    pSorter->pRecord = pNew;
  }

  /* See if the contents of the sorter should now be written out. They
  ** are written out when either of the following are true:
  **
  **   * The total memory allocated for the in-memory list is greater 
  **     than (page-size * cache-size), or
  **
  **   * The total memory allocated for the in-memory list is greater 
  **     than (page-size * 10) and sqlite3HeapNearlyFull() returns true.
  */
  if( rc==SQLITE_OK && pSorter->mxPmaSize>0 && (
        (pSorter->nInMemory>pSorter->mxPmaSize)
     || (pSorter->nInMemory>pSorter->mnPmaSize && sqlite3HeapNearlyFull())
  )){
#ifdef SQLITE_DEBUG
    i64 nExpect = pSorter->iWriteOff
                + sqlite3VarintLen(pSorter->nInMemory)
                + pSorter->nInMemory;
#endif
    rc = vdbeSorterListToPMA(db, pCsr);
    pSorter->nInMemory = 0;
    assert( rc!=SQLITE_OK || (nExpect==pSorter->iWriteOff) );
  }

  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movq 0x58(%rsi), %r13
movslq 0x20(%rdx), %rsi
xorl %edx, %edx
movq %rsi, %rcx
leal 0x1(%rdx), %eax
cmpq $0x80, %rcx
jb 0x2e0da
shrq $0x7, %rcx
cmpl $0x8, %edx
movl %eax, %edx
jb 0x2e0c3
movl 0x10(%r13), %ecx
addl %esi, %ecx
addl %eax, %ecx
movl %ecx, 0x10(%r13)
addl $0x18, %esi
movq %r14, %rdi
callq 0x115e9
movq %rax, %r12
testq %rax, %rax
je 0x2e129
leaq 0x18(%r12), %rdi
movq %rdi, (%r12)
movq 0x8(%r15), %rsi
movslq 0x20(%r15), %rdx
callq 0x82f0
movl 0x20(%r15), %eax
movl %eax, 0x8(%r12)
movq 0x40(%r13), %rax
movq %rax, 0x10(%r12)
movq %r12, 0x40(%r13)
xorl %eax, %eax
jmp 0x2e12e
movl $0x7, %eax
testq %r12, %r12
je 0x2e167
movl 0x20(%r13), %ecx
xorl %eax, %eax
testl %ecx, %ecx
jle 0x2e167
movl 0x10(%r13), %edx
cmpl %ecx, %edx
jg 0x2e154
cmpl 0x1c(%r13), %edx
jle 0x2e167
cmpl $0x0, 0x67c1a(%rip)     # 0x95d6c
je 0x2e167
movq %r14, %rdi
movq %rbx, %rsi
callq 0x32e5e
movl $0x0, 0x10(%r13)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3RootPageMoved
SQLITE_PRIVATE void sqlite3RootPageMoved(sqlite3 *db, int iDb, int iFrom, int iTo){
  HashElem *pElem;
  Hash *pHash;
  Db *pDb;

  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
  pDb = &db->aDb[iDb];
  pHash = &pDb->pSchema->tblHash;
  for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){
    Table *pTab = sqliteHashData(pElem);
    if( pTab->tnum==iFrom ){
      pTab->tnum = iTo;
    }
  }
  pHash = &pDb->pSchema->idxHash;
  for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){
    Index *pIdx = sqliteHashData(pElem);
    if( pIdx->tnum==iFrom ){
      pIdx->tnum = iTo;
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq 0x20(%rdi), %rax
movslq %esi, %rsi
shlq $0x5, %rsi
movq 0x18(%rax,%rsi), %rax
movq 0x10(%rax), %rsi
testq %rsi, %rsi
je 0x2e5bc
movq 0x10(%rsi), %rdi
cmpl %edx, 0x3c(%rdi)
jne 0x2e5b7
movl %ecx, 0x3c(%rdi)
movq (%rsi), %rsi
jmp 0x2e5a6
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x2e5d6
movq 0x10(%rax), %rsi
cmpl %edx, 0x50(%rsi)
jne 0x2e5d1
movl %ecx, 0x50(%rsi)
movq (%rax), %rax
jmp 0x2e5c0
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3BtreeClearTable
SQLITE_PRIVATE int sqlite3BtreeClearTable(Btree *p, int iTable, int *pnChange){
  int rc;
  BtShared *pBt = p->pBt;
  sqlite3BtreeEnter(p);
  assert( p->inTrans==TRANS_WRITE );

  rc = saveAllCursors(pBt, (Pgno)iTable, 0);

  if( SQLITE_OK==rc ){
    /* Invalidate all incrblob cursors open on table iTable (assuming iTable
    ** is the root of a table b-tree - if it is not, the following call is
    ** a no-op).  */
    invalidateIncrblobCursors(p, 0, 1);
    rc = clearDatabasePage(pBt, (Pgno)iTable, 0, pnChange);
  }
  sqlite3BtreeLeave(p);
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %rbx
movl %esi, %r14d
movq %rdi, %r12
movq (%rdi), %rax
movq 0x8(%rdi), %r15
movq %rax, 0x8(%r15)
movq %r15, %rdi
xorl %edx, %edx
callq 0x21124
testl %eax, %eax
je 0x2e60e
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r12), %rax
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2e628
cmpb $0x0, 0x78(%rax)
je 0x2e613
movb $0x0, 0x77(%rax)
jmp 0x2e613
movq %r15, %rdi
movl %r14d, %esi
xorl %edx, %edx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x3353a
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3AnalysisLoad
SQLITE_PRIVATE int sqlite3AnalysisLoad(sqlite3 *db, int iDb){
  analysisInfo sInfo;
  HashElem *i;
  char *zSql;
  int rc;

  assert( iDb>=0 && iDb<db->nDb );
  assert( db->aDb[iDb].pBt!=0 );

  /* Clear any prior statistics */
  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
  for(i=sqliteHashFirst(&db->aDb[iDb].pSchema->idxHash);i;i=sqliteHashNext(i)){
    Index *pIdx = sqliteHashData(i);
    sqlite3DefaultRowEst(pIdx);
#ifdef SQLITE_ENABLE_STAT3
    sqlite3DeleteIndexSamples(db, pIdx);
    pIdx->aSample = 0;
#endif
  }

  /* Check to make sure the sqlite_stat1 table exists */
  sInfo.db = db;
  sInfo.zDatabase = db->aDb[iDb].zName;
  if( sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase)==0 ){
    return SQLITE_ERROR;
  }

  /* Load new statistics out of the sqlite_stat1 table */
  zSql = sqlite3MPrintf(db, 
      "SELECT tbl,idx,stat FROM %Q.sqlite_stat1", sInfo.zDatabase);
  if( zSql==0 ){
    rc = SQLITE_NOMEM;
  }else{
    rc = sqlite3_exec(db, zSql, analysisLoader, &sInfo, 0);
    sqlite3DbFree(db, zSql);
  }


  /* Load the statistics from the sqlite_stat3 table. */
#ifdef SQLITE_ENABLE_STAT3
  if( rc==SQLITE_OK ){
    int lookasideEnabled = db->lookaside.bEnabled;
    db->lookaside.bEnabled = 0;
    rc = loadStat3(db, sInfo.zDatabase);
    db->lookaside.bEnabled = lookasideEnabled;
  }
#endif

  if( rc==SQLITE_NOMEM ){
    db->mallocFailed = 1;
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x20(%rdi), %rax
movslq %esi, %r14
shlq $0x5, %r14
movq 0x18(%rax,%r14), %rax
movq 0x28(%rax), %r15
testq %r15, %r15
je 0x2e81a
movq 0x10(%r15), %rdi
callq 0x33a63
movq (%r15), %r15
jmp 0x2e807
movq %rbx, -0x28(%rbp)
movq 0x20(%rbx), %rax
movq (%rax,%r14), %r14
movq %r14, -0x20(%rbp)
leaq 0x4b83f(%rip), %rsi     # 0x7a070
movq %rbx, %rdi
movq %r14, %rdx
callq 0x33aab
testq %rax, %rax
je 0x2e886
leaq 0x4b80c(%rip), %rsi     # 0x7a054
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x117e2
testq %rax, %rax
je 0x2e88e
movq %rax, %r15
leaq 0x5355(%rip), %rdx      # 0x33bb9
leaq -0x28(%rbp), %rcx
movq %rbx, %rdi
movq %rax, %rsi
xorl %r8d, %r8d
callq 0x12763
movl %eax, %r14d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9c3a
jmp 0x2e894
movl $0x1, %r14d
jmp 0x2e89e
movl $0x7, %r14d
cmpl $0x7, %r14d
jne 0x2e89e
movb $0x1, 0x50(%rbx)
movl %r14d, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3UnlinkAndDeleteTable
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName){
  Table *p;
  Db *pDb;

  assert( db!=0 );
  assert( iDb>=0 && iDb<db->nDb );
  assert( zTabName );
  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
  testcase( zTabName[0]==0 );  /* Zero-length table names are allowed */
  pDb = &db->aDb[iDb];
  p = sqlite3HashInsert(&pDb->pSchema->tblHash, zTabName,
                        sqlite3Strlen30(zTabName),0);
  sqlite3DeleteTable(db, p);
  db->flags |= SQLITE_InternChanges;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x20(%rdi), %rax
movslq %esi, %rcx
shlq $0x5, %rcx
movq 0x18(%rax,%rcx), %rdi
testq %rdx, %rdx
je 0x2e8e4
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rdx, %rcx
incl %eax
cmpb $0x0, (%rcx)
leaq 0x1(%rcx), %rcx
jne 0x2e8d2
andl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
jmp 0x2e8e6
xorl %eax, %eax
addq $0x8, %rdi
movq %rdx, %rsi
movl %eax, %edx
xorl %ecx, %ecx
callq 0x33cea
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9939
orb $0x2, 0x2c(%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3UnlinkAndDeleteIndex
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const char *zIdxName){
  Index *pIndex;
  int len;
  Hash *pHash;

  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
  pHash = &db->aDb[iDb].pSchema->idxHash;
  len = sqlite3Strlen30(zIdxName);
  pIndex = sqlite3HashInsert(pHash, zIdxName, len, 0);
  if( ALWAYS(pIndex) ){
    if( pIndex->pTable->pIndex==pIndex ){
      pIndex->pTable->pIndex = pIndex->pNext;
    }else{
      Index *p;
      /* Justification of ALWAYS();  The index must be on the list of
      ** indices. */
      p = pIndex->pTable->pIndex;
      while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
      if( ALWAYS(p && p->pNext==pIndex) ){
        p->pNext = pIndex->pNext;
      }
    }
    freeIndex(db, pIndex);
  }
  db->flags |= SQLITE_InternChanges;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x20(%rdi), %rax
movslq %esi, %rcx
shlq $0x5, %rcx
movq 0x18(%rax,%rcx), %rdi
addq $0x20, %rdi
testq %rdx, %rdx
je 0x2e948
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rdx, %rcx
incl %eax
cmpb $0x0, (%rcx)
leaq 0x1(%rcx), %rcx
jne 0x2e936
andl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
jmp 0x2e94a
xorl %eax, %eax
movq %rdx, %rsi
movl %eax, %edx
xorl %ecx, %ecx
callq 0x33cea
testq %rax, %rax
je 0x2e995
movq 0x18(%rax), %rcx
movq 0x10(%rcx), %rdx
cmpq %rax, %rdx
je 0x2e97f
testq %rdx, %rdx
je 0x2e98a
movq %rdx, %rcx
movq 0x28(%rdx), %rdx
cmpq %rax, %rdx
jne 0x2e968
addq $0x28, %rcx
jmp 0x2e983
addq $0x10, %rcx
movq 0x28(%rax), %rdx
movq %rdx, (%rcx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x34037
orb $0x2, 0x2c(%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3UnlinkAndDeleteTrigger
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb, const char *zName){
  Trigger *pTrigger;
  Hash *pHash;

  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
  pHash = &(db->aDb[iDb].pSchema->trigHash);
  pTrigger = sqlite3HashInsert(pHash, zName, sqlite3Strlen30(zName), 0);
  if( ALWAYS(pTrigger) ){
    if( pTrigger->pSchema==pTrigger->pTabSchema ){
      Table *pTab = tableOfTrigger(pTrigger);
      Trigger **pp;
      for(pp=&pTab->pTrigger; *pp!=pTrigger; pp=&((*pp)->pNext));
      *pp = (*pp)->pNext;
    }
    sqlite3DeleteTrigger(db, pTrigger);
    db->flags |= SQLITE_InternChanges;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x20(%rdi), %rax
movslq %esi, %rcx
shlq $0x5, %rcx
movq 0x18(%rax,%rcx), %rdi
addq $0x38, %rdi
testq %rdx, %rdx
je 0x2e9dd
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rdx, %rcx
incl %eax
cmpb $0x0, (%rcx)
leaq 0x1(%rcx), %rcx
jne 0x2e9cb
andl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
jmp 0x2e9df
xorl %eax, %eax
movq %rdx, %rsi
movl %eax, %edx
xorl %ecx, %ecx
callq 0x33cea
testq %rax, %rax
je 0x2ea2e
movq %rax, %r14
movq 0x28(%rax), %rax
cmpq 0x30(%r14), %rax
jne 0x2ea1f
movq %r14, %rdi
callq 0x342fd
addq $0x60, %rax
movq %rax, %rcx
movq (%rax), %rdx
leaq 0x40(%rdx), %rax
cmpq %r14, %rdx
jne 0x2ea09
movq 0x40(%rdx), %rax
movq %rax, (%rcx)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x98df
orb $0x2, 0x2c(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VdbeMemSetRowSet
SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet(Mem *pMem){
  sqlite3 *db = pMem->db;
  assert( db!=0 );
  assert( (pMem->flags & MEM_RowSet)==0 );
  sqlite3VdbeMemRelease(pMem);
  pMem->zMalloc = sqlite3DbMallocRaw(db, 64);
  if( db->mallocFailed ){
    pMem->flags = MEM_Null;
  }else{
    assert( pMem->zMalloc );
    pMem->u.pRowSet = sqlite3RowSetInit(db, pMem->zMalloc, 
                                       sqlite3DbMallocSize(db, pMem->zMalloc));
    assert( pMem->u.pRowSet!=0 );
    pMem->flags = MEM_RowSet;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %r15
callq 0xec23
movq %r15, %rdi
movl $0x40, %esi
callq 0x115e9
movq %rax, %r14
movq %rax, 0x30(%rbx)
movw $0x1, %ax
cmpb $0x0, 0x50(%r15)
jne 0x2ee2e
testq %r15, %r15
sete %al
testq %r14, %r14
sete %cl
orb %al, %cl
jne 0x2eddb
cmpq %r14, 0x170(%r15)
ja 0x2eddb
cmpq %r14, 0x178(%r15)
jbe 0x2eddb
movzwl 0x150(%r15), %eax
jmp 0x2ede4
movq %r14, %rdi
callq *0x65654(%rip)          # 0x94438
xorl %ecx, %ecx
movq %rcx, (%r14)
movq %r15, 0x8(%r14)
movq %rcx, 0x28(%r14)
movq %r14, %rcx
addq $0x38, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movq %rcx, 0x20(%r14)
movl %eax, %eax
addq $-0x38, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rcx
shrl $0x4, %edx
movw %dx, 0x30(%r14)
movw $0x1, 0x32(%r14)
movq %r14, 0x18(%rbx)
movw $0x20, %ax
movw %ax, 0x24(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3RowSetInsert
SQLITE_PRIVATE void sqlite3RowSetInsert(RowSet *p, i64 rowid){
  struct RowSetEntry *pEntry;  /* The new entry */
  struct RowSetEntry *pLast;   /* The last prior entry */

  /* This routine is never called after sqlite3RowSetNext() */
  assert( p!=0 && (p->rsFlags & ROWSET_NEXT)==0 );

  pEntry = rowSetEntryAlloc(p);
  if( pEntry==0 ) return;
  pEntry->v = rowid;
  pEntry->pRight = 0;
  pLast = p->pLast;
  if( pLast ){
    if( (p->rsFlags & ROWSET_SORTED)!=0 && rowid<=pLast->v ){
      p->rsFlags &= ~ROWSET_SORTED;
    }
    pLast->pRight = pEntry;
  }else{
    p->pEntry = pEntry;
  }
  p->pLast = pEntry;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
callq 0x34e53
testq %rax, %rax
je 0x2ee8c
movq %r14, (%rax)
movq $0x0, 0x8(%rax)
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
je 0x2ee81
movb 0x32(%rbx), %dl
testb $0x1, %dl
je 0x2ee7b
cmpq %r14, (%rcx)
jl 0x2ee7b
andb $-0x2, %dl
movb %dl, 0x32(%rbx)
addq $0x8, %rcx
jmp 0x2ee85
leaq 0x10(%rbx), %rcx
movq %rax, (%rcx)
movq %rax, 0x18(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3RowSetNext
SQLITE_PRIVATE int sqlite3RowSetNext(RowSet *p, i64 *pRowid){
  assert( p!=0 );

  /* Merge the forest into a single sorted list on first call */
  if( (p->rsFlags & ROWSET_NEXT)==0 ) rowSetToList(p);

  /* Return the next entry on the list */
  if( p->pEntry ){
    *pRowid = p->pEntry->v;
    p->pEntry = p->pEntry->pRight;
    if( p->pEntry==0 ){
      sqlite3RowSetClear(p);
    }
    return 1;
  }else{
    return 0;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movb 0x32(%rdi), %al
testb $0x2, %al
jne 0x2eeba
testb $0x1, %al
jne 0x2eeb6
movq 0x10(%rbx), %rdi
callq 0x34ea8
movq %rax, 0x10(%rbx)
orb $0x2, 0x32(%rbx)
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x2eee6
movq (%rax), %rcx
movq %rcx, (%r14)
movq 0x8(%rax), %rax
movq %rax, 0x10(%rbx)
movl $0x1, %r14d
testq %rax, %rax
jne 0x2eee9
movq %rbx, %rdi
callq 0x25543
jmp 0x2eee9
xorl %r14d, %r14d
movl %r14d, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VdbeMemFinalize
SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem *pMem, FuncDef *pFunc){
  int rc = SQLITE_OK;
  if( ALWAYS(pFunc && pFunc->xFinalize) ){
    sqlite3_context ctx;
    assert( (pMem->flags & MEM_Null)!=0 || pFunc==pMem->u.pDef );
    assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
    memset(&ctx, 0, sizeof(ctx));
    ctx.s.flags = MEM_Null;
    ctx.s.db = pMem->db;
    ctx.pMem = pMem;
    ctx.pFunc = pFunc;
    pFunc->xFinalize(&ctx); /* IMP: R-24505-23230 */
    assert( 0==(pMem->flags&MEM_Dyn) && !pMem->xDel );
    sqlite3DbFree(pMem->db, pMem->zMalloc);
    memcpy(pMem, &ctx.s, sizeof(ctx.s));
    rc = ctx.isError;
  }
  return rc;
}

// Assembly:
xorl %eax, %eax
testq %rsi, %rsi
je 0x2f0d9
movq 0x28(%rsi), %rcx
testq %rcx, %rcx
je 0x2f0d9
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x70, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %r14
movaps %xmm0, 0x20(%r14)
movaps %xmm0, 0x50(%r14)
movaps %xmm0, 0x40(%r14)
movaps %xmm0, 0x30(%r14)
movaps %xmm0, 0x10(%r14)
movaps %xmm0, (%r14)
movq $0x0, 0x60(%r14)
movw $0x1, 0x2c(%r14)
movq (%rdi), %rax
movq %rax, 0x8(%r14)
movq %rdi, 0x40(%r14)
movq %rsi, (%r14)
movq %r14, %rdi
callq *%rcx
movq (%rbx), %rdi
movq 0x30(%rbx), %rsi
callq 0x9c3a
movq 0x38(%r14), %rax
movq %rax, 0x30(%rbx)
movups 0x8(%r14), %xmm0
movups 0x18(%r14), %xmm1
movups 0x28(%r14), %xmm2
movups %xmm2, 0x20(%rbx)
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
movl 0x5c(%r14), %eax
addq $0x70, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3PagerCloseWal
SQLITE_PRIVATE int sqlite3PagerCloseWal(Pager *pPager){
  int rc = SQLITE_OK;

  assert( pPager->journalMode==PAGER_JOURNALMODE_WAL );

  /* If the log file is not already open, but does exist in the file-system,
  ** it may need to be checkpointed before the connection can switch to
  ** rollback mode. Open it now so this can happen.
  */
  if( !pPager->pWal ){
    int logexists = 0;
    rc = pagerLockDb(pPager, SHARED_LOCK);
    if( rc==SQLITE_OK ){
      rc = sqlite3OsAccess(
          pPager->pVfs, pPager->zWal, SQLITE_ACCESS_EXISTS, &logexists
      );
    }
    if( rc==SQLITE_OK && logexists ){
      rc = pagerOpenWal(pPager);
    }
  }
    
  /* Checkpoint and close the log. Because an EXCLUSIVE lock is held on
  ** the database file, the log and log-summary files will be deleted.
  */
  if( rc==SQLITE_OK && pPager->pWal ){
    rc = pagerExclusiveLock(pPager);
    if( rc==SQLITE_OK ){
      rc = sqlite3WalClose(pPager->pWal, pPager->ckptSyncFlags,
                           pPager->pageSize, (u8*)pPager->pTmpSpace);
      pPager->pWal = 0;
      pagerFixMaplimit(pPager);
    }
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
xorl %r14d, %r14d
cmpq $0x0, 0x118(%rdi)
jne 0x2f15d
movl $0x0, -0x14(%rbp)
movzbl 0x14(%rbx), %eax
cmpl $0x5, %eax
je 0x2f109
testl %eax, %eax
jne 0x2f129
movq 0x48(%rbx), %rdi
movq (%rdi), %rax
movl $0x1, %esi
callq *0x38(%rax)
movl %eax, %r14d
testl %eax, %eax
jne 0x2f12c
cmpb $0x5, 0x14(%rbx)
je 0x2f129
movb $0x1, 0x14(%rbx)
xorl %r14d, %r14d
testl %r14d, %r14d
jne 0x2f147
movq (%rbx), %rdi
movq 0x120(%rbx), %rsi
leaq -0x14(%rbp), %rcx
xorl %edx, %edx
callq *0x38(%rdi)
movl %eax, %r14d
testl %r14d, %r14d
jne 0x2f15d
cmpl $0x0, -0x14(%rbp)
je 0x2f15d
movq %rbx, %rdi
callq 0x20726
movl %eax, %r14d
testl %r14d, %r14d
je 0x2f16e
movl %r14d, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
cmpq $0x0, 0x118(%rbx)
je 0x2f1bc
movq %rbx, %rdi
callq 0x2089d
movl %eax, %r14d
testl %eax, %eax
jne 0x2f162
movq 0x118(%rbx), %rdi
movzbl 0xd(%rbx), %esi
movl 0xbc(%rbx), %edx
movq 0x108(%rbx), %rcx
callq 0x1d032
movl %eax, %r14d
movq $0x0, 0x118(%rbx)
movq %rbx, %rdi
callq 0x1cde1
jmp 0x2f162
xorl %r14d, %r14d
jmp 0x2f162
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3BtreeIncrVacuum
SQLITE_PRIVATE int sqlite3BtreeIncrVacuum(Btree *p){
  int rc;
  BtShared *pBt = p->pBt;

  sqlite3BtreeEnter(p);
  assert( pBt->inTransaction==TRANS_WRITE && p->inTrans==TRANS_WRITE );
  if( !pBt->autoVacuum ){
    rc = SQLITE_DONE;
  }else{
    Pgno nOrig = btreePagecount(pBt);
    Pgno nFree = get4byte(&pBt->pPage1->aData[36]);
    Pgno nFin = finalDbSize(pBt, nOrig, nFree);

    if( nOrig<nFin ){
      rc = SQLITE_CORRUPT_BKPT;
    }else if( nFree>0 ){
      rc = saveAllCursors(pBt, 0, 0);
      if( rc==SQLITE_OK ){
        invalidateAllOverflowCache(pBt);
        rc = incrVacuumStep(pBt, nFin, nOrig, 0);
      }
      if( rc==SQLITE_OK ){
        rc = sqlite3PagerWrite(pBt->pPage1->pDbPage);
        put4byte(&pBt->pPage1->aData[28], pBt->nPage);
      }
    }else{
      rc = SQLITE_DONE;
    }
  }
  sqlite3BtreeLeave(p);
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq (%rdi), %rax
movq 0x8(%rdi), %rbx
movq %rax, 0x8(%rbx)
movl $0x65, %r15d
cmpb $0x0, 0x21(%rbx)
je 0x2f7c4
movl 0x3c(%rbx), %r14d
movq 0x18(%rbx), %rax
movq 0x50(%rax), %rax
movl 0x24(%rax), %r13d
bswapl %r13d
movq %rbx, %rdi
movl %r14d, %esi
movl %r13d, %edx
callq 0x2104d
cmpl %eax, %r14d
jae 0x2f771
leaq 0x4a0c3(%rip), %rsi     # 0x79814
leaq 0x49de1(%rip), %rcx     # 0x79539
movl $0xb, %r15d
movl $0xb, %edi
movl $0xcdef, %edx           # imm = 0xCDEF
xorl %eax, %eax
callq 0xb8cc
jmp 0x2f7c4
testl %r13d, %r13d
je 0x2f7c4
movl %eax, %r12d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21124
movl %eax, %r15d
testl %eax, %eax
jne 0x2f7bf
movq 0x10(%rbx), %r15
testq %r15, %r15
je 0x2f7ac
movq 0x28(%r15), %rdi
callq 0xa2e8
movq $0x0, 0x28(%r15)
movq 0x10(%r15), %r15
jmp 0x2f790
movq %rbx, %rdi
movl %r12d, %esi
movl %r14d, %edx
xorl %ecx, %ecx
callq 0x21222
movl %eax, %r15d
testl %r15d, %r15d
je 0x2f7d6
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x18(%rbx), %rax
movq 0x68(%rax), %rdi
callq 0xdebf
movq 0x18(%rbx), %rcx
movq 0x50(%rcx), %rcx
movl 0x3c(%rbx), %edx
bswapl %edx
movl %edx, 0x1c(%rcx)
jmp 0x2f7c7
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3BtreeLockTable
SQLITE_PRIVATE int sqlite3BtreeLockTable(Btree *p, int iTab, u8 isWriteLock){
  int rc = SQLITE_OK;
  assert( p->inTrans!=TRANS_NONE );
  if( p->sharable ){
    u8 lockType = READ_LOCK + isWriteLock;
    assert( READ_LOCK+1==WRITE_LOCK );
    assert( isWriteLock==0 || isWriteLock==1 );

    sqlite3BtreeEnter(p);
    rc = querySharedCacheTableLock(p, iTab, lockType);
    if( rc==SQLITE_OK ){
      rc = setSharedCacheTableLock(p, iTab, lockType);
    }
    sqlite3BtreeLeave(p);
  }
  return rc;
}

// Assembly:
cmpb $0x0, 0x11(%rdi)
je 0x2f848
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edx, %ebx
movl %esi, %r15d
movq %rdi, %r14
incb %bl
movq (%rdi), %rax
movq 0x8(%rdi), %rcx
movq %rax, 0x8(%rcx)
movzbl %bl, %edx
callq 0x1fc86
movl %eax, %ecx
testl %eax, %eax
jne 0x2f896
movq 0x8(%r14), %r12
movq 0x70(%r12), %rax
testq %rax, %rax
je 0x2f84c
cmpl %r15d, 0x8(%rax)
jne 0x2f842
cmpq %r14, (%rax)
je 0x2f84e
movq 0x10(%rax), %rax
jmp 0x2f832
xorl %ecx, %ecx
jmp 0x2f89e
xorl %eax, %eax
testq %rax, %rax
jne 0x2f885
movl $0x18, %edi
callq 0xa2a2
testq %rax, %rax
je 0x2f891
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movl %r15d, 0x8(%rax)
movq %r14, (%rax)
movq 0x70(%r12), %rcx
movq %rcx, 0x10(%rax)
movq %rax, 0x70(%r12)
xorl %ecx, %ecx
cmpb %bl, 0xc(%rax)
jae 0x2f896
movb %bl, 0xc(%rax)
jmp 0x2f896
movl $0x7, %ecx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
movl %ecx, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VtabBegin
SQLITE_PRIVATE int sqlite3VtabBegin(sqlite3 *db, VTable *pVTab){
  int rc = SQLITE_OK;
  const sqlite3_module *pModule;

  /* Special case: If db->aVTrans is NULL and db->nVTrans is greater
  ** than zero, then this function is being called from within a
  ** virtual module xSync() callback. It is illegal to write to 
  ** virtual module tables in this case, so return SQLITE_LOCKED.
  */
  if( sqlite3VtabInSync(db) ){
    return SQLITE_LOCKED;
  }
  if( !pVTab ){
    return SQLITE_OK;
  } 
  pModule = pVTab->pVtab->pModule;

  if( pModule->xBegin ){
    int i;

    /* If pVtab is already in the aVTrans array, return early */
    for(i=0; i<db->nVTrans; i++){
      if( db->aVTrans[i]==pVTab ){
        return SQLITE_OK;
      }
    }

    /* Invoke the xBegin method. If successful, add the vtab to the 
    ** sqlite3.aVTrans[] array. */
    rc = growVTrans(db);
    if( rc==SQLITE_OK ){
      rc = pModule->xBegin(pVTab->pVtab);
      if( rc==SQLITE_OK ){
        addToVTrans(db, pVTab);
      }
    }
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %r15
movslq 0x1a4(%rdi), %rax
testq %rax, %rax
jle 0x2f8c8
cmpq $0x0, 0x1c8(%r15)
je 0x2f916
xorl %ebx, %ebx
testq %r14, %r14
je 0x2f941
movq 0x10(%r14), %rcx
movq (%rcx), %r12
cmpq $0x0, 0x70(%r12)
je 0x2f941
testl %eax, %eax
jle 0x2f8f9
movq 0x1c8(%r15), %rcx
xorl %edx, %edx
cmpq %r14, (%rcx,%rdx,8)
je 0x2f91d
incq %rdx
cmpq %rdx, %rax
jne 0x2f8eb
movq %r15, %rdi
callq 0x35410
testl %eax, %eax
jne 0x2f912
movq 0x10(%r14), %rdi
callq *0x70(%r12)
testl %eax, %eax
je 0x2f921
movl %eax, %ebx
jmp 0x2f941
movl $0x6, %ebx
jmp 0x2f941
xorl %ebx, %ebx
jmp 0x2f941
movq 0x1c8(%r15), %rax
movslq 0x1a4(%r15), %rcx
leal 0x1(%rcx), %edx
movl %edx, 0x1a4(%r15)
movq %r14, (%rax,%rcx,8)
incl 0x18(%r14)
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VtabCallCreate
SQLITE_PRIVATE int sqlite3VtabCallCreate(sqlite3 *db, int iDb, const char *zTab, char **pzErr){
  int rc = SQLITE_OK;
  Table *pTab;
  Module *pMod;
  const char *zMod;

  pTab = sqlite3FindTable(db, zTab, db->aDb[iDb].zName);
  assert( pTab && (pTab->tabFlags & TF_Virtual)!=0 && !pTab->pVTable );

  /* Locate the required virtual table module */
  zMod = pTab->azModuleArg[0];
  pMod = (Module*)sqlite3HashFind(&db->aModule, zMod, sqlite3Strlen30(zMod));

  /* If the module has been registered and includes a Create method, 
  ** invoke it now. If the module has not been registered, return an 
  ** error. Otherwise, do nothing.
  */
  if( !pMod ){
    *pzErr = sqlite3MPrintf(db, "no such module: %s", zMod);
    rc = SQLITE_ERROR;
  }else{
    rc = vtabCallConstructor(db, pTab, pMod, pMod->pModule->xCreate, pzErr);
  }

  /* Justification of ALWAYS():  The xConstructor method is required to
  ** create a valid sqlite3_vtab if it returns SQLITE_OK. */
  if( rc==SQLITE_OK && ALWAYS(sqlite3GetVTable(db, pTab)) ){
    rc = growVTrans(db);
    if( rc==SQLITE_OK ){
      addToVTrans(db, sqlite3GetVTable(db, pTab));
    }
  }

  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rcx, %r15
movq %rdi, %rbx
movq 0x20(%rdi), %rax
movslq %esi, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rax
movq %rdx, %rsi
movq %rax, %rdx
callq 0x33aab
movq %rax, %r14
movq 0x50(%rax), %rax
movq (%rax), %r12
leaq 0x1a8(%rbx), %rdi
testq %r12, %r12
je 0x2f9a8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq %r12, %rax
incl %edx
cmpb $0x0, (%rax)
leaq 0x1(%rax), %rax
jne 0x2f995
andl $0x3fffffff, %edx       # imm = 0x3FFFFFFF
jmp 0x2f9aa
xorl %edx, %edx
movq %r12, %rsi
callq 0x3396f
testq %rax, %rax
je 0x2f9d1
movq (%rax), %rcx
movq 0x8(%rcx), %rcx
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %r15, %r8
callq 0x3547f
jmp 0x2f9ed
leaq 0x4af2d(%rip), %rsi     # 0x7a905
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x117e2
movq %rax, (%r15)
movl $0x1, %eax
testl %eax, %eax
je 0x2f9fa
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x58(%r14), %rcx
xorl %eax, %eax
testq %rcx, %rcx
je 0x2f9f1
cmpq %rbx, (%rcx)
je 0x2fa10
movq 0x28(%rcx), %rcx
jmp 0x2fa00
movq %rbx, %rdi
callq 0x35410
testl %eax, %eax
jne 0x2f9f1
movq 0x58(%r14), %rax
testq %rax, %rax
je 0x2fa30
cmpq %rbx, (%rax)
je 0x2fa30
movq 0x28(%rax), %rax
jmp 0x2fa20
movq 0x1c8(%rbx), %rcx
movslq 0x1a4(%rbx), %rdx
leal 0x1(%rdx), %esi
movl %esi, 0x1a4(%rbx)
movq %rax, (%rcx,%rdx,8)
incl 0x18(%rax)
xorl %eax, %eax
jmp 0x2f9f1
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3VtabCallDestroy
SQLITE_PRIVATE int sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char *zTab){
  int rc = SQLITE_OK;
  Table *pTab;

  pTab = sqlite3FindTable(db, zTab, db->aDb[iDb].zName);
  if( ALWAYS(pTab!=0 && pTab->pVTable!=0) ){
    VTable *p = vtabDisconnectAll(db, pTab);

    assert( rc==SQLITE_OK );
    rc = p->pMod->pModule->xDestroy(p->pVtab);

    /* Remove the sqlite3_vtab* from the aVTrans[] array, if applicable */
    if( rc==SQLITE_OK ){
      assert( pTab->pVTable==p && p->pNext==0 );
      p->pVtab = 0;
      pTab->pVTable = 0;
      sqlite3VtabUnlock(p);
    }
  }

  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %r14
movq 0x20(%rdi), %rax
movslq %esi, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rax
movq %rdx, %rsi
movq %rax, %rdx
callq 0x33aab
xorl %r12d, %r12d
testq %rax, %rax
je 0x2faf7
movq %rax, %rbx
movq 0x58(%rax), %rax
testq %rax, %rax
je 0x2faf7
movq $0x0, 0x58(%rbx)
xorl %r15d, %r15d
movq (%rax), %rdx
movq 0x28(%rax), %rcx
cmpq %r14, %rdx
je 0x2fab9
movq 0x1d0(%rdx), %rsi
movq %rsi, 0x28(%rax)
movq %rax, 0x1d0(%rdx)
jmp 0x2fac8
movq %rax, 0x58(%rbx)
movq $0x0, 0x28(%rax)
movq %rax, %r15
movq %rcx, %rax
testq %rcx, %rcx
jne 0x2fa99
movq 0x8(%r15), %rax
movq 0x10(%r15), %rdi
movq (%rax), %rax
callq *0x28(%rax)
movl %eax, %r12d
testl %eax, %eax
jne 0x2faf7
xorl %eax, %eax
movq %rax, 0x10(%r15)
movq %rax, 0x58(%rbx)
movq %r15, %rdi
callq 0x23229
movl %r12d, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: btreeRestoreCursorPosition
static int btreeRestoreCursorPosition(BtCursor *pCur){
  int rc;
  assert( cursorHoldsMutex(pCur) );
  assert( pCur->eState>=CURSOR_REQUIRESEEK );
  if( pCur->eState==CURSOR_FAULT ){
    return pCur->skipNext;
  }
  pCur->eState = CURSOR_INVALID;
  rc = btreeMoveto(pCur, pCur->pKey, pCur->nKey, 0, &pCur->skipNext);
  if( rc==SQLITE_OK ){
    sqlite3_free(pCur->pKey);
    pCur->pKey = 0;
    assert( pCur->eState==CURSOR_VALID || pCur->eState==CURSOR_INVALID );
    if( pCur->skipNext && pCur->eState==CURSOR_VALID ){
      pCur->eState = CURSOR_SKIPNEXT;
    }
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpb $0x4, 0x77(%rdi)
jne 0x2fe60
movl 0x70(%rbx), %r14d
jmp 0x2fe81
movb $0x0, 0x77(%rbx)
movq 0x60(%rbx), %rdx
movq 0x68(%rbx), %rsi
leaq 0x70(%rbx), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x2feac
movl %eax, %r14d
testl %eax, %eax
je 0x2fe89
movl %r14d, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq 0x68(%rbx), %rdi
callq 0xa2e8
movq $0x0, 0x68(%rbx)
cmpl $0x0, 0x70(%rbx)
je 0x2fe81
cmpb $0x1, 0x77(%rbx)
jne 0x2fe81
movb $0x2, 0x77(%rbx)
jmp 0x2fe81
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: btreeMoveto
static int btreeMoveto(
  BtCursor *pCur,     /* Cursor open on the btree to be searched */
  const void *pKey,   /* Packed key if the btree is an index */
  i64 nKey,           /* Integer key for tables.  Size of pKey for indices */
  int bias,           /* Bias search to the high end */
  int *pRes           /* Write search results here */
){
  int rc;                    /* Status code */
  UnpackedRecord *pIdxKey;   /* Unpacked index key */
  char aSpace[150];          /* Temp space for pIdxKey - to avoid a malloc */
  char *pFree = 0;

  if( pKey ){
    assert( nKey==(i64)(int)nKey );
    pIdxKey = sqlite3VdbeAllocUnpackedRecord(
        pCur->pKeyInfo, aSpace, sizeof(aSpace), &pFree
    );
    if( pIdxKey==0 ) return SQLITE_NOMEM;
    sqlite3VdbeRecordUnpack(pCur->pKeyInfo, (int)nKey, pKey, pIdxKey);
  }else{
    pIdxKey = 0;
  }
  rc = sqlite3BtreeMovetoUnpacked(pCur, pIdxKey, nKey, bias, pRes);
  if( pFree ){
    sqlite3DbFree(pCur->pKeyInfo->db, pFree);
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movl %ecx, %r15d
movq %rdx, %r12
movq %rdi, %rbx
movq $0x0, -0x30(%rbp)
testq %rsi, %rsi
je 0x2ff16
movq %rsi, %r13
movq %r8, -0x38(%rbp)
movq 0x20(%rbx), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0x30(%rbp), %rcx
movl $0x96, %edx
callq 0x2d509
testq %rax, %rax
je 0x2ff44
movq %rax, %r14
movq 0x20(%rbx), %rdi
movl %r12d, %esi
movq %r13, %rdx
movq %rax, %rcx
callq 0x2d56a
movq -0x38(%rbp), %r8
jmp 0x2ff19
xorl %r14d, %r14d
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
movl %r15d, %ecx
callq 0x2ced9
movl %eax, %r14d
movq -0x30(%rbp), %rsi
testq %rsi, %rsi
je 0x2ff4a
movq 0x20(%rbx), %rax
movq (%rax), %rdi
callq 0x9c3a
jmp 0x2ff4a
movl $0x7, %r14d
movl %r14d, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: fetchPayload
static const unsigned char *fetchPayload(
  BtCursor *pCur,      /* Cursor pointing to entry to read from */
  int *pAmt,           /* Write the number of available bytes here */
  int skipKey          /* read beginning at data if this is true */
){
  unsigned char *aPayload;
  MemPage *pPage;
  u32 nKey;
  u32 nLocal;

  assert( pCur!=0 && pCur->iPage>=0 && pCur->apPage[pCur->iPage]);
  assert( pCur->eState==CURSOR_VALID );
  assert( cursorHoldsMutex(pCur) );
  pPage = pCur->apPage[pCur->iPage];
  assert( pCur->aiIdx[pCur->iPage]<pPage->nCell );
  if( NEVER(pCur->info.nSize==0) ){
    btreeParseCell(pCur->apPage[pCur->iPage], pCur->aiIdx[pCur->iPage],
                   &pCur->info);
  }
  aPayload = pCur->info.pCell;
  aPayload += pCur->info.nHeader;
  if( pPage->intKey ){
    nKey = 0;
  }else{
    nKey = (int)pCur->info.nKey;
  }
  if( skipKey ){
    aPayload += nKey;
    nLocal = pCur->info.nLocal - nKey;
  }else{
    nLocal = pCur->info.nLocal;
    assert( nLocal<=nKey );
  }
  *pAmt = nLocal;
  return aPayload;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, %r14
movswq 0x7a(%rdi), %rax
movq 0xa8(%rdi,%rax,8), %r13
leaq 0x40(%rdi), %r12
cmpw $0x0, 0x5e(%rdi)
jne 0x2ffbc
movzwl 0x7c(%r14,%rax,2), %eax
movzwl 0x12(%r13), %ecx
movq 0x60(%r13), %rdx
movzbl (%rdx,%rax,2), %edi
shll $0x8, %edi
movzbl 0x1(%rdx,%rax,2), %esi
orl %edi, %esi
andl %ecx, %esi
addq 0x50(%r13), %rsi
movq %r13, %rdi
movq %r12, %rdx
callq 0x21585
movzwl 0x58(%r14), %eax
xorl %ecx, %ecx
cmpb $0x0, 0x2(%r13)
jne 0x2ffce
movl (%r12), %ecx
addq 0x48(%r14), %rax
testl %r15d, %r15d
je 0x2ffe5
movl %ecx, %edx
addq %rdx, %rax
movzwl 0x5a(%r14), %edx
subl %ecx, %edx
jmp 0x2ffea
movzwl 0x5a(%r14), %edx
movl %edx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3PutVarint
SQLITE_PRIVATE int sqlite3PutVarint(unsigned char *p, u64 v){
  int i, j, n;
  u8 buf[10];
  if( v & (((u64)0xff000000)<<32) ){
    p[8] = (u8)v;
    v >>= 8;
    for(i=7; i>=0; i--){
      p[i] = (u8)((v & 0x7f) | 0x80);
      v >>= 7;
    }
    return 9;
  }    
  n = 0;
  do{
    buf[n++] = (u8)((v & 0x7f) | 0x80);
    v >>= 7;
  }while( v!=0 );
  buf[0] &= 0x7f;
  assert( n<=9 );
  for(i=0, j=n-1; j>=0; j--, i++){
    p[i] = buf[j];
  }
  return n;
}

// Assembly:
movq %rsi, %rax
shrq $0x38, %rax
jne 0x30046
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
movq %rsi, %rcx
movl %esi, %edx
orb $-0x80, %dl
movb %dl, -0xa(%rbp,%rax)
incq %rax
shrq $0x7, %rcx
cmpq $0x7f, %rsi
movq %rcx, %rsi
ja 0x3000d
andb $0x7f, -0xa(%rbp)
leaq 0x1(%rax), %rcx
movq %rax, %rdx
movb -0xc(%rbp,%rcx), %sil
movb %sil, (%rdi)
incq %rdi
decq %rcx
decq %rdx
jne 0x30031
popq %rbp
retq
movb %sil, 0x8(%rdi)
shrq $0x8, %rsi
movl $0x8, %eax
movl %esi, %ecx
orb $-0x80, %cl
movb %cl, -0x1(%rdi,%rax)
shrq $0x7, %rsi
decq %rax
jne 0x30053
movl $0x9, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: moveToChild
static int moveToChild(BtCursor *pCur, u32 newPgno){
  int rc;
  int i = pCur->iPage;
  MemPage *pNewPage;
  BtShared *pBt = pCur->pBt;

  assert( cursorHoldsMutex(pCur) );
  assert( pCur->eState==CURSOR_VALID );
  assert( pCur->iPage<BTCURSOR_MAX_DEPTH );
  assert( pCur->iPage>=0 );
  if( pCur->iPage>=(BTCURSOR_MAX_DEPTH-1) ){
    return SQLITE_CORRUPT_BKPT;
  }
  rc = getAndInitPage(pBt, newPgno, &pNewPage,
               pCur->wrFlag==0 ? PAGER_GET_READONLY : 0);
  if( rc ) return rc;
  pCur->apPage[i+1] = pNewPage;
  pCur->aiIdx[i+1] = 0;
  pCur->iPage++;

  pCur->info.nSize = 0;
  pCur->validNKey = 0;
  if( pNewPage->nCell<1 || pNewPage->intKey!=pCur->apPage[i]->intKey ){
    return SQLITE_CORRUPT_BKPT;
  }
  return SQLITE_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movswq 0x7a(%rdi), %r15
movl $0xd26b, %edx           # imm = 0xD26B
cmpq $0x12, %r15
jle 0x30254
leaq 0x495db(%rip), %rsi     # 0x79814
leaq 0x492f9(%rip), %rcx     # 0x79539
movl $0xb, %r14d
movl $0xb, %edi
xorl %eax, %eax
callq 0xb8cc
jmp 0x30276
movq %rdi, %rbx
movq 0x8(%rdi), %rdi
xorl %ecx, %ecx
cmpb $0x0, 0x74(%rbx)
sete %cl
addl %ecx, %ecx
leaq -0x20(%rbp), %rdx
callq 0x302c8
movl %eax, %r14d
testl %eax, %eax
je 0x30284
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq -0x20(%rbp), %rax
movq %rax, 0xb0(%rbx,%r15,8)
xorl %r14d, %r14d
movw %r14w, 0x7e(%rbx,%r15,2)
incw 0x7a(%rbx)
movw %r14w, 0x5e(%rbx)
movb $0x0, 0x76(%rbx)
movl $0xd277, %edx           # imm = 0xD277
cmpw %r14w, 0x10(%rax)
je 0x30232
movb 0x2(%rax), %al
movq 0xa8(%rbx,%r15,8), %rcx
cmpb 0x2(%rcx), %al
jne 0x30232
jmp 0x30276
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: getAndInitPage
static int getAndInitPage(
  BtShared *pBt,                  /* The database file */
  Pgno pgno,                      /* Number of the page to get */
  MemPage **ppPage,               /* Write the page pointer here */
  int bReadonly                   /* PAGER_GET_READONLY or 0 */
){
  int rc;
  assert( sqlite3_mutex_held(pBt->mutex) );
  assert( bReadonly==PAGER_GET_READONLY || bReadonly==0 );

  if( pgno>btreePagecount(pBt) ){
    rc = SQLITE_CORRUPT_BKPT;
  }else{
    rc = btreeGetPage(pBt, pgno, ppPage, bReadonly);
    if( rc==SQLITE_OK ){
      rc = btreeInitPage(*ppPage);
      if( rc!=SQLITE_OK ){
        releasePage(*ppPage);
      }
    }
  }

  testcase( pgno==0 );
  assert( pgno!=0 || rc==SQLITE_CORRUPT );
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
cmpl %esi, 0x3c(%rdi)
jae 0x302fa
leaq 0x49539(%rip), %rsi     # 0x79814
leaq 0x49257(%rip), %rcx     # 0x79539
movl $0xb, %ebx
movl $0xb, %edi
movl $0xc81c, %edx           # imm = 0xC81C
xorl %eax, %eax
callq 0xb8cc
jmp 0x30308
movq %rdx, %r14
callq 0x2035c
movl %eax, %ebx
testl %eax, %eax
je 0x3030f
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq (%r14), %rdi
callq 0x1cb41
testl %eax, %eax
je 0x30330
movl %eax, %ebx
movq (%r14), %rax
testq %rax, %rax
je 0x30308
movq 0x68(%rax), %rdi
callq 0xdcd4
jmp 0x30308
xorl %ebx, %ebx
jmp 0x30308
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3SchemaClear
SQLITE_PRIVATE void sqlite3SchemaClear(void *p){
  Hash temp1;
  Hash temp2;
  HashElem *pElem;
  Schema *pSchema = (Schema *)p;

  temp1 = pSchema->tblHash;
  temp2 = pSchema->trigHash;
  sqlite3HashInit(&pSchema->trigHash);
  sqlite3HashClear(&pSchema->idxHash);
  for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){
    sqlite3DeleteTrigger(0, (Trigger*)sqliteHashData(pElem));
  }
  sqlite3HashClear(&temp2);
  sqlite3HashInit(&pSchema->tblHash);
  for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){
    Table *pTab = sqliteHashData(pElem);
    sqlite3DeleteTable(0, pTab);
  }
  sqlite3HashClear(&temp1);
  sqlite3HashClear(&pSchema->fkeyHash);
  pSchema->pSeqTab = 0;
  if( pSchema->flags & DB_SchemaLoaded ){
    pSchema->iGeneration++;
    pSchema->flags &= ~DB_SchemaLoaded;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rdi), %r14
movups 0x8(%rdi), %xmm0
movaps %xmm0, -0x50(%rbp)
movq 0x18(%rdi), %rax
movq %rax, -0x40(%rbp)
movq 0x48(%rdi), %rax
movq %rax, -0x20(%rbp)
movups 0x38(%rdi), %xmm0
movaps %xmm0, -0x30(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%rdi)
movq $0x0, 0x48(%rdi)
addq $0x20, %rdi
callq 0x30403
movq -0x28(%rbp), %r15
testq %r15, %r15
je 0x30399
movq 0x10(%r15), %rsi
xorl %edi, %edi
callq 0x98df
movq (%r15), %r15
jmp 0x30384
leaq -0x30(%rbp), %rdi
callq 0x30403
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movq $0x0, 0x10(%r14)
movq -0x48(%rbp), %r14
testq %r14, %r14
je 0x303ca
movq 0x10(%r14), %rsi
xorl %edi, %edi
callq 0x9939
movq (%r14), %r14
jmp 0x303b5
leaq -0x50(%rbp), %rdi
callq 0x30403
leaq 0x50(%rbx), %rdi
callq 0x30403
movq $0x0, 0x68(%rbx)
movzwl 0x72(%rbx), %eax
testb $0x1, %al
je 0x303f8
incl 0x4(%rbx)
andl $0xfffe, %eax           # imm = 0xFFFE
movw %ax, 0x72(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3HashClear
SQLITE_PRIVATE void sqlite3HashClear(Hash *pH){
  HashElem *elem;         /* For looping over all elements of the table */

  assert( pH!=0 );
  elem = pH->first;
  pH->first = 0;
  sqlite3_free(pH->ht);
  pH->ht = 0;
  pH->htsize = 0;
  while( elem ){
    HashElem *next_elem = elem->next;
    sqlite3_free(elem);
    elem = next_elem;
  }
  pH->count = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %r14
movq 0x10(%rdi), %rdi
xorl %r15d, %r15d
movq %r15, 0x8(%rbx)
callq 0xa2e8
movq %r15, 0x10(%rbx)
movl $0x0, (%rbx)
testq %r14, %r14
je 0x30446
movq (%r14), %r15
movq %r14, %rdi
callq 0xa2e8
movq %r15, %r14
testq %r15, %r15
jne 0x30433
movl $0x0, 0x4(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: moveToLeftmost
static int moveToLeftmost(BtCursor *pCur){
  Pgno pgno;
  int rc = SQLITE_OK;
  MemPage *pPage;

  assert( cursorHoldsMutex(pCur) );
  assert( pCur->eState==CURSOR_VALID );
  while( rc==SQLITE_OK && !(pPage = pCur->apPage[pCur->iPage])->leaf ){
    assert( pCur->aiIdx[pCur->iPage]<pPage->nCell );
    pgno = get4byte(findCell(pPage, pCur->aiIdx[pCur->iPage]));
    rc = moveToChild(pCur, pgno);
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movswq 0x7a(%rdi), %rcx
movq 0xa8(%rdi,%rcx,8), %rdx
xorl %eax, %eax
cmpb $0x0, 0x3(%rdx)
jne 0x304bb
movq %rdi, %rbx
movzwl 0x12(%rdx), %eax
movq 0x50(%rdx), %rsi
movq 0x60(%rdx), %rdx
movzwl 0x7c(%rbx,%rcx,2), %ecx
movzbl (%rdx,%rcx,2), %edi
shll $0x8, %edi
movzbl 0x1(%rdx,%rcx,2), %ecx
orl %edi, %ecx
andl %eax, %ecx
movl (%rsi,%rcx), %esi
bswapl %esi
movq %rbx, %rdi
callq 0x30218
testl %eax, %eax
jne 0x304bb
movswq 0x7a(%rbx), %rcx
movq 0xa8(%rbx,%rcx,8), %rdx
cmpb $0x0, 0x3(%rdx)
je 0x30476
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: moveToRightmost
static int moveToRightmost(BtCursor *pCur){
  Pgno pgno;
  int rc = SQLITE_OK;
  MemPage *pPage = 0;

  assert( cursorHoldsMutex(pCur) );
  assert( pCur->eState==CURSOR_VALID );
  while( rc==SQLITE_OK && !(pPage = pCur->apPage[pCur->iPage])->leaf ){
    pgno = get4byte(&pPage->aData[pPage->hdrOffset+8]);
    pCur->aiIdx[pCur->iPage] = pPage->nCell;
    rc = moveToChild(pCur, pgno);
  }
  if( rc==SQLITE_OK ){
    pCur->aiIdx[pCur->iPage] = pPage->nCell-1;
    pCur->info.nSize = 0;
    pCur->validNKey = 0;
  }
  return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movswq 0x7a(%rdi), %rcx
movq 0xa8(%rdi,%rcx,8), %r14
cmpb $0x0, 0x3(%r14)
je 0x304fa
movb $0x1, %dl
xorl %eax, %eax
jmp 0x30522
movswq 0x7a(%rbx), %rcx
movq 0xa8(%rbx,%rcx,8), %r14
cmpb $0x0, 0x3(%r14)
jne 0x30522
movq 0x50(%r14), %rax
movzbl 0x5(%r14), %edx
movl 0x8(%rax,%rdx), %esi
bswapl %esi
movzwl 0x10(%r14), %eax
movw %ax, 0x7c(%rbx,%rcx,2)
movq %rbx, %rdi
callq 0x30218
testl %eax, %eax
sete %dl
je 0x304e6
testb %dl, %dl
je 0x30540
movl 0x10(%r14), %ecx
decl %ecx
movswq 0x7a(%rbx), %rdx
movw %cx, 0x7c(%rbx,%rdx,2)
movw $0x0, 0x5e(%rbx)
movb $0x0, 0x76(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: cellSizePtr
static u16 cellSizePtr(MemPage *pPage, u8 *pCell){
  u8 *pIter = &pCell[pPage->childPtrSize];
  u32 nSize;

#ifdef SQLITE_DEBUG
  /* The value returned by this function should always be the same as
  ** the (CellInfo.nSize) value found by doing a full parse of the
  ** cell. If SQLITE_DEBUG is defined, an assert() at the bottom of
  ** this function verifies that this invariant is not violated. */
  CellInfo debuginfo;
  btreeParseCellPtr(pPage, pCell, &debuginfo);
#endif

  if( pPage->intKey ){
    u8 *pEnd;
    if( pPage->hasData ){
      pIter += getVarint32(pIter, nSize);
    }else{
      nSize = 0;
    }

    /* pIter now points at the 64-bit integer key value, a variable length 
    ** integer. The following block moves pIter to point at the first byte
    ** past the end of the key value. */
    pEnd = &pIter[9];
    while( (*pIter++)&0x80 && pIter<pEnd );
  }else{
    pIter += getVarint32(pIter, nSize);
  }

  testcase( nSize==pPage->maxLocal );
  testcase( nSize==pPage->maxLocal+1 );
  if( nSize>pPage->maxLocal ){
    int minLocal = pPage->minLocal;
    nSize = minLocal + (nSize - minLocal) % (pPage->pBt->usableSize - 4);
    testcase( nSize==pPage->maxLocal );
    testcase( nSize==pPage->maxLocal+1 );
    if( nSize>pPage->maxLocal ){
      nSize = minLocal;
    }
    nSize += 4;
  }
  nSize += (u32)(pIter - pCell);

  /* The minimum size of any cell is 4 bytes. */
  if( nSize<4 ){
    nSize = 4;
  }

  assert( nSize==debuginfo.nSize );
  return (u16)nSize;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r15
movzbl 0x6(%rdi), %ebx
addq %rsi, %rbx
cmpb $0x0, 0x2(%rdi)
je 0x30760
cmpb $0x0, 0x4(%r15)
je 0x30771
movsbl (%rbx), %eax
testl %eax, %eax
js 0x3077a
movl %eax, -0x1c(%rbp)
movl $0x1, %eax
jmp 0x30789
movsbl (%rbx), %eax
testl %eax, %eax
js 0x307a6
movl %eax, -0x1c(%rbp)
movl $0x1, %eax
jmp 0x307b5
movl $0x0, -0x1c(%rbp)
jmp 0x3078c
leaq -0x1c(%rbp), %rsi
movq %rbx, %rdi
callq 0x216ad
movzbl %al, %eax
addq %rax, %rbx
xorl %eax, %eax
leaq 0x1(%rax), %rcx
cmpq $0x7, %rax
ja 0x307a1
cmpb $0x0, (%rbx,%rax)
movq %rcx, %rax
js 0x3078e
addq %rcx, %rbx
jmp 0x307b8
leaq -0x1c(%rbp), %rsi
movq %rbx, %rdi
callq 0x216ad
movzbl %al, %eax
addq %rax, %rbx
movl -0x1c(%rbp), %eax
movzwl 0x8(%r15), %ecx
cmpl %ecx, %eax
jbe 0x307e6
movzwl 0xa(%r15), %esi
subl %esi, %eax
movq 0x48(%r15), %rdx
movl 0x34(%rdx), %edi
addl $-0x4, %edi
xorl %edx, %edx
divl %edi
addl %esi, %edx
cmpl %ecx, %edx
cmoval %esi, %edx
addl $0x4, %edx
movl %edx, -0x1c(%rbp)
subl %r14d, %ebx
addl -0x1c(%rbp), %ebx
cmpl $0x5, %ebx
movl $0x4, %eax
cmovael %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq