LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: groupConcatInverse
static void groupConcatInverse(
  sqlite3_context *context,
  int argc,
  sqlite3_value **argv
){
  int n;
  StrAccum *pAccum;
  assert( argc==1 || argc==2 );
  if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
  pAccum = (StrAccum*)sqlite3_aggregate_context(context, sizeof(*pAccum));
  /* pAccum is always non-NULL since groupConcatStep() will have always
  ** run frist to initialize it */
  if( ALWAYS(pAccum) ){
    n = sqlite3_value_bytes(argv[0]);
    if( argc==2 ){
      n += sqlite3_value_bytes(argv[1]);
    }else{
      n++;
    }
    if( n>=(int)pAccum->nChar ){
      pAccum->nChar = 0;
    }else{
      pAccum->nChar -= n;
      memmove(pAccum->zText, &pAccum->zText[n], pAccum->nChar);
    }
    if( pAccum->nChar==0 ) pAccum->mxAlloc = 0;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq (%rdx), %rax
movl 0x8(%rax), %eax
movabsq $-0x5555555555555556, %rcx # imm = 0xAAAAAAAAAAAAAAAA
btq %rax, %rcx
jb 0x2f52e2
movq %rdx, %r14
movl %esi, %ebp
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f527a
movl $0x20, %esi
callq 0x2833f3
movq %rax, %rbx
jmp 0x2f527e
movq 0x10(%rax), %rbx
testq %rbx, %rbx
je 0x2f52e2
movq (%r14), %rdi
movl $0x1, %r15d
movl $0x1, %esi
callq 0x281bba
movl %eax, %r12d
cmpl $0x2, %ebp
jne 0x2f52af
movq 0x8(%r14), %rdi
movl $0x1, %esi
callq 0x281bba
movl %eax, %r15d
addl %r12d, %r15d
movl 0x18(%rbx), %edx
subl %r15d, %edx
jle 0x2f52ce
movl %edx, 0x18(%rbx)
movq 0x8(%rbx), %rdi
movslq %r15d, %rsi
addq %rdi, %rsi
callq 0x17cd0
jmp 0x2f52d5
movl $0x0, 0x18(%rbx)
cmpl $0x0, 0x18(%rbx)
jne 0x2f52e2
movl $0x0, 0x14(%rbx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: sqlite3InsertBuiltinFuncs
SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(
  FuncDef *aDef,      /* List of global functions to be inserted */
  int nDef            /* Length of the apDef[] list */
){
  int i;
  for(i=0; i<nDef; i++){
    FuncDef *pOther;
    const char *zName = aDef[i].zName;
    int nName = sqlite3Strlen30(zName);
    int h = SQLITE_FUNC_HASH(zName[0], nName);
    assert( zName[0]>='a' && zName[0]<='z' );
    pOther = sqlite3FunctionSearch(h, zName);
    if( pOther ){
      assert( pOther!=&aDef[i] && pOther->pNext!=&aDef[i] );
      aDef[i].pNext = pOther->pNext;
      pOther->pNext = &aDef[i];
    }else{
      aDef[i].pNext = 0;
      aDef[i].u.pHash = sqlite3BuiltinFunctions.a[h];
      sqlite3BuiltinFunctions.a[h] = &aDef[i];
    }
  }
}

// Assembly:
testl %esi, %esi
jle 0x2f53aa
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
movl %esi, %r12d
leaq 0x1d49df(%rip), %r13    # 0x4c9ce8
movq 0x38(%rbx), %r14
testq %r14, %r14
je 0x2f5321
movq %r14, %rdi
callq 0x172f0
andl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
jmp 0x2f5323
xorl %eax, %eax
movsbl (%r14), %ecx
addl %eax, %ecx
movslq %ecx, %rax
imulq $-0x4de9bd37, %rax, %r15 # imm = 0xB21642C9
shrq $0x20, %r15
addl %eax, %r15d
movl %r15d, %ecx
shrl $0x1f, %ecx
sarl $0x4, %r15d
addl %ecx, %r15d
leal (%r15,%r15,2), %ecx
shll $0x3, %ecx
subl %ecx, %r15d
addl %eax, %r15d
movl %r15d, %edi
movq %r14, %rsi
callq 0x2f916a
testq %rax, %rax
je 0x2f536f
addq $0x10, %rax
movl $0x10, %ecx
jmp 0x2f538a
movq $0x0, 0x10(%rbx)
movslq %r15d, %rax
leaq (,%rax,8), %rax
addq %r13, %rax
movl $0x40, %ecx
movq (%rax), %rdx
movq %rdx, (%rbx,%rcx)
movq %rbx, (%rax)
addq $0x48, %rbx
decq %r12
jne 0x2f5309
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: contextMalloc
static void *contextMalloc(sqlite3_context *context, i64 nByte){
  char *z;
  sqlite3 *db = sqlite3_context_db_handle(context);
  assert( nByte>0 );
  testcase( nByte==db->aLimit[SQLITE_LIMIT_LENGTH] );
  testcase( nByte==db->aLimit[SQLITE_LIMIT_LENGTH]+1 );
  if( nByte>db->aLimit[SQLITE_LIMIT_LENGTH] ){
    sqlite3_result_error_toobig(context);
    z = 0;
  }else{
    z = sqlite3Malloc(nByte);
    if( !z ){
      sqlite3_result_error_nomem(context);
    }
  }
  return z;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movq (%rdi), %rdi
movq 0x28(%rdi), %rax
movslq 0x7c(%rax), %rax
cmpq %rsi, %rax
jge 0x2f53e7
movl $0x12, 0x24(%r14)
leaq 0xe9c7d(%rip), %rsi     # 0x3df04e
xorl %ebx, %ebx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x281f27
jmp 0x2f5401
movq %rsi, %rdi
callq 0x27c381
movq %rax, %rbx
testq %rax, %rax
jne 0x2f5401
movq %r14, %rdi
callq 0x282490
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: minMaxValueFinalize
static void minMaxValueFinalize(sqlite3_context *context, int bValue){
  sqlite3_value *pRes;
  pRes = (sqlite3_value *)sqlite3_aggregate_context(context, 0);
  if( pRes ){
    if( pRes->flags ){
      sqlite3_result_value(context, pRes);
    }
    if( bValue==0 ) sqlite3VdbeMemRelease(pRes);
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl %esi, %ebx
movq %rdi, %r15
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f542f
movq %r15, %rdi
xorl %esi, %esi
callq 0x2833f3
movq %rax, %r14
jmp 0x2f5433
movq 0x10(%rax), %r14
testq %r14, %r14
je 0x2f544f
cmpw $0x0, 0x8(%r14)
je 0x2f544b
movq (%r15), %rdi
movq %r14, %rsi
callq 0x282324
testl %ebx, %ebx
je 0x2f5455
popq %rbx
popq %r14
popq %r15
retq
testb $0x24, 0x9(%r14)
jne 0x2f5463
cmpl $0x0, 0x20(%r14)
je 0x2f544f
movq %r14, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x29b45b
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameParseSql
static int renameParseSql(
  Parse *p,                       /* Memory to use for Parse object */
  const char *zDb,                /* Name of schema SQL belongs to */
  sqlite3 *db,                    /* Database handle */
  const char *zSql,               /* SQL to parse */
  int bTemp                       /* True if SQL is from temp schema */
){
  int rc;
  char *zErr = 0;

  db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb);

  /* Parse the SQL statement passed as the first argument. If no error
  ** occurs and the parse does not result in a new table, index or
  ** trigger object, the database must be corrupt. */
  memset(p, 0, sizeof(Parse));
  p->eParseMode = PARSE_MODE_RENAME;
  p->db = db;
  p->nQueryLoop = 1;
  rc = sqlite3RunParser(p, zSql, &zErr);
  assert( p->zErrMsg==0 );
  assert( rc!=SQLITE_OK || zErr==0 );
  p->zErrMsg = zErr;
  if( db->mallocFailed ) rc = SQLITE_NOMEM;
  if( rc==SQLITE_OK
   && p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0
  ){
    rc = SQLITE_CORRUPT_BKPT;
  }

#ifdef SQLITE_DEBUG
  /* Ensure that all mappings in the Parse.pRename list really do map to
  ** a part of the input string.  */
  if( rc==SQLITE_OK ){
    int nSql = sqlite3Strlen30(zSql);
    RenameToken *pToken;
    for(pToken=p->pRename; pToken; pToken=pToken->pNext){
      assert( pToken->t.z>=zSql && &pToken->t.z[pToken->t.n]<=&zSql[nSql] );
    }
  }
#endif

  db->init.iDb = 0;
  return rc;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %r15
movq %rdx, %rbx
movq %rdi, %r14
movq $0x0, 0x8(%rsp)
movb $0x1, %al
testl %r8d, %r8d
jne 0x2f6448
movq %rbx, %rdi
callq 0x289cd9
movb %al, 0xb4(%rbx)
movl $0x1a8, %edx            # imm = 0x1A8
movq %r14, %rdi
xorl %esi, %esi
callq 0x173a0
movb $0x2, 0x11c(%r14)
movq %rbx, (%r14)
movl $0x1, 0xc4(%r14)
leaq 0x8(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x2874c0
movq (%r12), %rcx
movq %rcx, 0x8(%r14)
cmpb $0x0, 0x61(%rbx)
movl $0x7, %ebp
cmovel %eax, %ebp
testl %ebp, %ebp
jne 0x2f64b4
cmpq $0x0, 0x148(%r14)
jne 0x2f64b2
cmpq $0x0, 0x150(%r14)
je 0x2f64ca
xorl %ebp, %ebp
movb $0x0, 0xb4(%rbx)
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x158(%r14)
movl $0x0, %ebp
jne 0x2f64b4
leaq 0xe8e3f(%rip), %rsi     # 0x3df31f
leaq 0xe8f49(%rip), %rdx     # 0x3df430
leaq 0xe8c97(%rip), %r8      # 0x3df185
movl $0xb, %ebp
movl $0xb, %edi
movl $0x1a164, %ecx          # imm = 0x1A164
xorl %eax, %eax
callq 0x27e637
jmp 0x2f64b4
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameColumnExprCb
static int renameColumnExprCb(Walker *pWalker, Expr *pExpr){
  RenameCtx *p = pWalker->u.pRename;
  if( pExpr->op==TK_TRIGGER
   && pExpr->iColumn==p->iCol
   && pWalker->pParse->pTriggerTab==p->pTab
  ){
    renameTokenFind(pWalker->pParse, p, (void*)pExpr);
  }else if( pExpr->op==TK_COLUMN
   && pExpr->iColumn==p->iCol
   && p->pTab==pExpr->y.pTab
  ){
    renameTokenFind(pWalker->pParse, p, (void*)pExpr);
  }
  return WRC_Continue;
}

// Assembly:
movq 0x28(%rdi), %rax
movzbl (%rsi), %ecx
cmpl $0xa4, %ecx
je 0x2f653c
cmpl $0x4d, %ecx
jne 0x2f65b9
movswl 0x30(%rsi), %edx
cmpl %edx, 0xc(%rax)
jne 0x2f6537
movq (%rdi), %rdx
movq 0xa8(%rdx), %r8
cmpq 0x10(%rax), %r8
je 0x2f6576
cmpb $-0x5c, %cl
jne 0x2f65b9
movswl 0x30(%rsi), %ecx
cmpl %ecx, 0xc(%rax)
jne 0x2f65b9
movq 0x10(%rax), %rcx
cmpq 0x40(%rsi), %rcx
jne 0x2f65b9
movq (%rdi), %rdx
movq 0x1a0(%rdx), %rcx
testq %rcx, %rcx
je 0x2f65b9
cmpq %rsi, (%rcx)
je 0x2f659e
movq %rcx, %rdx
movq 0x18(%rcx), %rcx
testq %rcx, %rcx
je 0x2f65b9
cmpq %rsi, (%rcx)
jne 0x2f6563
jmp 0x2f6598
movq 0x1a0(%rdx), %rcx
testq %rcx, %rcx
je 0x2f65b9
cmpq %rsi, (%rcx)
je 0x2f659e
movq %rcx, %rdx
movq 0x18(%rcx), %rcx
testq %rcx, %rcx
je 0x2f65b9
cmpq %rsi, (%rcx)
jne 0x2f6587
addq $0x18, %rdx
jmp 0x2f65a5
addq $0x1a0, %rdx            # imm = 0x1A0
movq 0x18(%rcx), %rsi
movq %rsi, (%rdx)
movq (%rax), %rdx
movq %rdx, 0x18(%rcx)
movq %rcx, (%rax)
incl 0x8(%rax)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameColumnElistNames
static void renameColumnElistNames(
  Parse *pParse,
  RenameCtx *pCtx,
  ExprList *pEList,
  const char *zOld
){
  if( pEList ){
    int i;
    for(i=0; i<pEList->nExpr; i++){
      char *zName = pEList->a[i].zEName;
      if( ALWAYS(pEList->a[i].eEName==ENAME_NAME)
       && ALWAYS(zName!=0)
       && 0==sqlite3_stricmp(zName, zOld)
      ){
        renameTokenFind(pParse, pCtx, (void*)zName);
      }
    }
  }
}

// Assembly:
testq %rdx, %rdx
je 0x2f692a
movslq (%rdx), %rax
testq %rax, %rax
jle 0x2f692a
pushq %r14
pushq %rbx
addq $0x8, %rdx
addq $0x1a0, %rdi            # imm = 0x1A0
xorl %r8d, %r8d
leaq 0xe41c4(%rip), %r9      # 0x3daa60
testq %rcx, %rcx
je 0x2f691b
leaq (%r8,%r8,2), %r10
movb 0x11(%rdx,%r10,8), %r11b
andb $0x3, %r11b
jne 0x2f691b
movq 0x8(%rdx,%r10,8), %r10
testq %r10, %r10
je 0x2f691b
xorl %r11d, %r11d
movzbl (%r10,%r11), %ebx
movzbl (%rcx,%r11), %r14d
cmpb %r14b, %bl
jne 0x2f68d3
testq %rbx, %rbx
jne 0x2f68dd
jmp 0x2f68e2
movb (%rbx,%r9), %bl
cmpb (%r14,%r9), %bl
jne 0x2f691b
incq %r11
jmp 0x2f68bd
movq (%rdi), %r11
testq %r11, %r11
je 0x2f691b
movq %rdi, %rbx
cmpq %r10, (%r11)
je 0x2f6907
movq %r11, %rbx
movq 0x18(%r11), %r11
testq %r11, %r11
je 0x2f691b
cmpq %r10, (%r11)
jne 0x2f68f2
addq $0x18, %rbx
movq 0x18(%r11), %r10
movq %r10, (%rbx)
movq (%rsi), %r10
movq %r10, 0x18(%r11)
movq %r11, (%rsi)
incl 0x8(%rsi)
incq %r8
cmpq %rax, %r8
jne 0x2f689c
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameColumnIdlistNames
static void renameColumnIdlistNames(
  Parse *pParse,
  RenameCtx *pCtx,
  IdList *pIdList,
  const char *zOld
){
  if( pIdList ){
    int i;
    for(i=0; i<pIdList->nId; i++){
      char *zName = pIdList->a[i].zName;
      if( 0==sqlite3_stricmp(zName, zOld) ){
        renameTokenFind(pParse, pCtx, (void*)zName);
      }
    }
  }
}

// Assembly:
testq %rdx, %rdx
je 0x2f69e2
movslq 0x8(%rdx), %rax
testq %rax, %rax
jle 0x2f69e2
pushq %r14
pushq %rbx
addq $0x1a0, %rdi            # imm = 0x1A0
xorl %r8d, %r8d
leaq 0xe410b(%rip), %r9      # 0x3daa60
movq (%rdx), %r10
movq %r8, %r11
shlq $0x4, %r11
movq (%r10,%r11), %r10
testq %r10, %r10
je 0x2f6995
testq %rcx, %rcx
je 0x2f69d3
xorl %r11d, %r11d
movzbl (%r10,%r11), %ebx
movzbl (%rcx,%r11), %r14d
cmpb %r14b, %bl
jne 0x2f6986
testq %rbx, %rbx
jne 0x2f6990
jmp 0x2f699a
movb (%rbx,%r9), %bl
cmpb (%r14,%r9), %bl
jne 0x2f69d3
incq %r11
jmp 0x2f6970
testq %rcx, %rcx
jne 0x2f69d3
movq (%rdi), %r11
testq %r11, %r11
je 0x2f69d3
movq %rdi, %rbx
cmpq %r10, (%r11)
je 0x2f69bf
movq %r11, %rbx
movq 0x18(%r11), %r11
testq %r11, %r11
je 0x2f69d3
cmpq %r10, (%r11)
jne 0x2f69aa
addq $0x18, %rbx
movq 0x18(%r11), %r10
movq %r10, (%rbx)
movq (%rsi), %r10
movq %r10, 0x18(%r11)
movq %r11, (%rsi)
incl 0x8(%rsi)
incq %r8
cmpq %rax, %r8
jne 0x2f6955
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameWalkTrigger
static void renameWalkTrigger(Walker *pWalker, Trigger *pTrigger){
  TriggerStep *pStep;

  /* Find tokens to edit in WHEN clause */
  sqlite3WalkExpr(pWalker, pTrigger->pWhen);

  /* Find tokens to edit in trigger steps */
  for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){
    sqlite3WalkSelect(pWalker, pStep->pSelect);
    sqlite3WalkExpr(pWalker, pStep->pWhere);
    sqlite3WalkExprList(pWalker, pStep->pExprList);
    if( pStep->pUpsert ){
      Upsert *pUpsert = pStep->pUpsert;
      sqlite3WalkExprList(pWalker, pUpsert->pUpsertTarget);
      sqlite3WalkExprList(pWalker, pUpsert->pUpsertSet);
      sqlite3WalkExpr(pWalker, pUpsert->pUpsertWhere);
      sqlite3WalkExpr(pWalker, pUpsert->pUpsertTargetWhere);
    }
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rsi), %rsi
testq %rsi, %rsi
je 0x2f69ff
movq %rbx, %rdi
callq 0x2ca211
movq 0x38(%r14), %r14
testq %r14, %r14
je 0x2f6a79
movq 0x10(%r14), %rsi
movq %rbx, %rdi
callq 0x2ca2ea
movq 0x28(%r14), %rsi
testq %rsi, %rsi
je 0x2f6a25
movq %rbx, %rdi
callq 0x2ca211
movq 0x30(%r14), %rsi
movq %rbx, %rdi
callq 0x2ca44f
movq 0x40(%r14), %r15
testq %r15, %r15
je 0x2f6a73
movq (%r15), %rsi
movq %rbx, %rdi
callq 0x2ca44f
movq 0x10(%r15), %rsi
movq %rbx, %rdi
callq 0x2ca44f
movq 0x18(%r15), %rsi
testq %rsi, %rsi
je 0x2f6a62
movq %rbx, %rdi
callq 0x2ca211
movq 0x8(%r15), %rsi
testq %rsi, %rsi
je 0x2f6a73
movq %rbx, %rdi
callq 0x2ca211
movq 0x50(%r14), %r14
jmp 0x2f6a03
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameColumnParseError
static void renameColumnParseError(
  sqlite3_context *pCtx,
  int bPost,
  sqlite3_value *pType,
  sqlite3_value *pObject,
  Parse *pParse
){
  const char *zT = (const char*)sqlite3_value_text(pType);
  const char *zN = (const char*)sqlite3_value_text(pObject);
  char *zErr;

  zErr = sqlite3_mprintf("error in %s %s%s: %s",
      zT, zN, (bPost ? " after rename" : ""),
      pParse->zErrMsg
  );
  sqlite3_result_error(pCtx, zErr, -1);
  sqlite3_free(zErr);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %r8, %r14
movq %rcx, %r15
movl %esi, %ebp
movq %rdi, %rbx
movq %rdx, %rdi
movl $0x1, %esi
callq 0x281c96
movq %rax, %r12
movq %r15, %rdi
movl $0x1, %esi
callq 0x281c96
testl %ebp, %ebp
leaq 0xdcb87(%rip), %rdx     # 0x3d3890
leaq 0xecb4a(%rip), %rcx     # 0x3e385a
cmoveq %rdx, %rcx
movq 0x8(%r14), %r8
leaq 0xecb26(%rip), %rdi     # 0x3e3845
movq %r12, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x27e482
movq %rax, %r14
movl $0x1, 0x24(%rbx)
movq (%rbx), %rdi
movq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %ecx
movq $-0x1, %r8
callq 0x281f27
movq %r14, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x27c490
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameParseCleanup
static void renameParseCleanup(Parse *pParse){
  sqlite3 *db = pParse->db;
  Index *pIdx;
  if( pParse->pVdbe ){
    sqlite3VdbeFinalize(pParse->pVdbe);
  }
  sqlite3DeleteTable(db, pParse->pNewTable);
  while( (pIdx = pParse->pNewIndex)!=0 ){
    pParse->pNewIndex = pIdx->pNext;
    sqlite3FreeIndex(db, pIdx);
  }
  sqlite3DeleteTrigger(db, pParse->pNewTrigger);
  sqlite3DbFree(db, pParse->zErrMsg);
  renameTokenFree(db, pParse->pRename);
  sqlite3ParserReset(pParse);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %r14
movq 0x10(%rdi), %rdi
testq %rdi, %rdi
je 0x2f6d7b
callq 0x281916
movq 0x148(%rbx), %rsi
movq %r14, %rdi
callq 0x27bd74
movq 0x150(%rbx), %rsi
testq %rsi, %rsi
je 0x2f6dab
movq 0x28(%rsi), %rax
movq %rax, 0x150(%rbx)
movq %r14, %rdi
callq 0x2afce1
jmp 0x2f6d8a
movq 0x158(%rbx), %rsi
movq %r14, %rdi
callq 0x27bd0b
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x2f6dcb
movq %r14, %rdi
callq 0x28c3e7
movq 0x1a0(%rbx), %rsi
testq %rsi, %rsi
je 0x2f6deb
movq 0x18(%rsi), %r15
movq %r14, %rdi
callq 0x28c3e7
movq %r15, %rsi
testq %r15, %r15
jne 0x2f6dd7
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x285775
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameTableExprCb
static int renameTableExprCb(Walker *pWalker, Expr *pExpr){
  RenameCtx *p = pWalker->u.pRename;
  if( pExpr->op==TK_COLUMN && p->pTab==pExpr->y.pTab ){
    renameTokenFind(pWalker->pParse, p, (void*)&pExpr->y.pTab);
  }
  return WRC_Continue;
}

// Assembly:
cmpb $-0x5c, (%rsi)
jne 0x2f6e55
movq 0x28(%rdi), %rax
movq 0x10(%rax), %rcx
cmpq 0x40(%rsi), %rcx
jne 0x2f6e55
movq (%rdi), %rdx
movq 0x1a0(%rdx), %rcx
testq %rcx, %rcx
je 0x2f6e55
addq $0x40, %rsi
cmpq %rsi, (%rcx)
je 0x2f6e3a
movq %rcx, %rdx
movq 0x18(%rcx), %rcx
testq %rcx, %rcx
je 0x2f6e55
cmpq %rsi, (%rcx)
jne 0x2f6e23
addq $0x18, %rdx
jmp 0x2f6e41
addq $0x1a0, %rdx            # imm = 0x1A0
movq 0x18(%rcx), %rsi
movq %rsi, (%rdx)
movq (%rax), %rdx
movq %rdx, 0x18(%rcx)
movq %rcx, (%rax)
incl 0x8(%rax)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: renameTableSelectCb
static int renameTableSelectCb(Walker *pWalker, Select *pSelect){
  int i;
  RenameCtx *p = pWalker->u.pRename;
  SrcList *pSrc = pSelect->pSrc;
  if( pSelect->selFlags & SF_View ) return WRC_Prune;
  if( pSrc==0 ){
    assert( pWalker->pParse->db->mallocFailed );
    return WRC_Abort;
  }
  for(i=0; i<pSrc->nSrc; i++){
    struct SrcList_item *pItem = &pSrc->a[i];
    if( pItem->pTab==p->pTab ){
      renameTokenFind(pWalker->pParse, p, pItem->zName);
    }
  }
  renameWalkWith(pWalker, pSelect);

  return WRC_Continue;
}

// Assembly:
movl $0x1, %eax
testb $0x20, 0x6(%rsi)
jne 0x2f6ef7
movq 0x28(%rsi), %rax
testq %rax, %rax
je 0x2f6ef8
pushq %rax
movslq (%rax), %rcx
testq %rcx, %rcx
jle 0x2f6eec
movq 0x28(%rdi), %rdx
addq $0x8, %rax
xorl %r8d, %r8d
imulq $0x70, %r8, %r11
movq 0x20(%rax,%r11), %r9
cmpq 0x10(%rdx), %r9
jne 0x2f6ee4
movq (%rdi), %r10
movq 0x1a0(%r10), %r9
testq %r9, %r9
je 0x2f6ee4
addq %rax, %r11
movq 0x10(%r11), %r11
cmpq %r11, (%r9)
je 0x2f6ec9
movq %r9, %r10
movq 0x18(%r9), %r9
testq %r9, %r9
je 0x2f6ee4
cmpq %r11, (%r9)
jne 0x2f6eb2
addq $0x18, %r10
jmp 0x2f6ed0
addq $0x1a0, %r10            # imm = 0x1A0
movq 0x18(%r9), %r11
movq %r11, (%r10)
movq (%rdx), %r10
movq %r10, 0x18(%r9)
movq %r9, (%rdx)
incl 0x8(%rdx)
incq %r8
cmpq %rcx, %r8
jne 0x2f6e88
callq 0x2d3381
xorl %eax, %eax
addq $0x8, %rsp
retq
movl $0x2, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: row_numberStepFunc
static void row_numberStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  i64 *p = (i64*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ) (*p)++;
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f6f15
movl $0x8, %esi
callq 0x2833f3
jmp 0x2f6f19
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f6f21
incq (%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: dense_rankStepFunc
static void dense_rankStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ) p->nStep = 1;
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f6f81
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f6f85
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f6f92
movq $0x1, 0x8(%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: dense_rankValueFunc
static void dense_rankValueFunc(sqlite3_context *pCtx){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    if( p->nStep ){
      p->nValue++;
      p->nStep = 0;
    }
    sqlite3_result_int64(pCtx, p->nValue);
  }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f6fb1
movq %rbx, %rdi
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f6fb5
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f6fe7
cmpq $0x0, 0x8(%rax)
je 0x2f6fcc
incq (%rax)
movq $0x0, 0x8(%rax)
movq (%rax), %rsi
movq (%rbx), %rdi
testb $0x24, 0x9(%rdi)
je 0x2f6fde
popq %rbx
jmp 0x29c706
movq %rsi, (%rdi)
movw $0x4, 0x8(%rdi)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: rankStepFunc
static void rankStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    p->nStep++;
    if( p->nValue==0 ){
      p->nValue = p->nStep;
    }
  }
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7000
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f7004
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f701d
movq 0x8(%rax), %rcx
incq %rcx
movq %rcx, 0x8(%rax)
cmpq $0x0, (%rax)
jne 0x2f701d
movq %rcx, (%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: rankValueFunc
static void rankValueFunc(sqlite3_context *pCtx){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    sqlite3_result_int64(pCtx, p->nValue);
    p->nValue = 0;
  }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7042
movq %r14, %rdi
movl $0x18, %esi
callq 0x2833f3
movq %rax, %rbx
jmp 0x2f7046
movq 0x10(%rax), %rbx
testq %rbx, %rbx
je 0x2f706e
movq (%rbx), %rsi
movq (%r14), %rdi
testb $0x24, 0x9(%rdi)
je 0x2f705e
callq 0x29c706
jmp 0x2f7067
movq %rsi, (%rdi)
movw $0x4, 0x8(%rdi)
movq $0x0, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: percent_rankStepFunc
static void percent_rankStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct CallCount *p;
  UNUSED_PARAMETER(nArg); assert( nArg==0 );
  UNUSED_PARAMETER(apArg);
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    p->nTotal++;
  }
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f708d
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f7091
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f709a
incq 0x10(%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: percent_rankValueFunc
static void percent_rankValueFunc(sqlite3_context *pCtx){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    p->nValue = p->nStep;
    if( p->nTotal>1 ){
      double r = (double)p->nValue / (double)(p->nTotal-1);
      sqlite3_result_double(pCtx, r);
    }else{
      sqlite3_result_double(pCtx, 0.0);
    }
  }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f70b9
movq %rbx, %rdi
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f70bd
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f7113
movq 0x8(%rax), %rdx
movq 0x10(%rax), %rcx
movq %rdx, (%rax)
cmpq $0x2, %rcx
jl 0x2f70ed
cvtsi2sd %rdx, %xmm0
decq %rcx
cvtsi2sd %rcx, %xmm1
divsd %xmm1, %xmm0
movq (%rbx), %rdi
popq %rbx
jmp 0x281eaf
movq (%rbx), %rbx
testb $0x24, 0x9(%rbx)
je 0x2f7100
movq %rbx, %rdi
callq 0x29b491
jmp 0x2f7106
movw $0x1, 0x8(%rbx)
movq $0x0, (%rbx)
movw $0x8, 0x8(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: percent_rankInvFunc
static void percent_rankInvFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct CallCount *p;
  UNUSED_PARAMETER(nArg); assert( nArg==0 );
  UNUSED_PARAMETER(apArg);
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  p->nStep++;
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f712c
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f7130
movq 0x10(%rax), %rax
incq 0x8(%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: cume_distValueFunc
static void cume_distValueFunc(sqlite3_context *pCtx){
  struct CallCount *p;
  p = (struct CallCount*)sqlite3_aggregate_context(pCtx, 0);
  if( p ){
    double r = (double)(p->nStep) / (double)(p->nTotal);
    sqlite3_result_double(pCtx, r);
  }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7176
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2833f3
jmp 0x2f717a
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f7198
cvtsi2sdq 0x8(%rax), %xmm0
cvtsi2sdq 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movq (%rbx), %rdi
popq %rbx
jmp 0x281eaf
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: ntileStepFunc
static void ntileStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct NtileCtx *p;
  assert( nArg==1 ); UNUSED_PARAMETER(nArg);
  p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    if( p->nTotal==0 ){
      p->nParam = sqlite3_value_int64(apArg[0]);
      if( p->nParam<=0 ){
        sqlite3_result_error(
            pCtx, "argument of ntile must be a positive integer", -1
        );
      }
    }
    p->nTotal++;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r15
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f71e2
movq %rbx, %rdi
movl $0x18, %esi
callq 0x2833f3
movq %rax, %r14
jmp 0x2f71e6
movq 0x10(%rax), %r14
testq %r14, %r14
je 0x2f722c
cmpq $0x0, (%r14)
jne 0x2f7229
movq (%r15), %rdi
callq 0x281c1d
movq %rax, 0x8(%r14)
testq %rax, %rax
jg 0x2f7229
movl $0x1, 0x24(%rbx)
movq (%rbx), %rdi
leaq 0xec655(%rip), %rsi     # 0x3e3868
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %ecx
movq $-0x1, %r8
callq 0x281f27
incq (%r14)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: ntileValueFunc
static void ntileValueFunc(sqlite3_context *pCtx){
  struct NtileCtx *p;
  p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p && p->nParam>0 ){
    int nSize = (p->nTotal / p->nParam);
    if( nSize==0 ){
      sqlite3_result_int64(pCtx, p->iRow+1);
    }else{
      i64 nLarge = p->nTotal - p->nParam*nSize;
      i64 iSmall = nLarge*(nSize+1);
      i64 iRow = p->iRow;

      assert( (nLarge*(nSize+1) + (p->nParam-nLarge)*nSize)==p->nTotal );

      if( iRow<iSmall ){
        sqlite3_result_int64(pCtx, 1 + iRow/(nSize+1));
      }else{
        sqlite3_result_int64(pCtx, 1 + nLarge + (iRow-iSmall)/nSize);
      }
    }
  }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7252
movq %rbx, %rdi
movl $0x18, %esi
callq 0x2833f3
movq %rax, %rcx
jmp 0x2f7256
movq 0x10(%rax), %rcx
testq %rcx, %rcx
je 0x2f72e5
movq 0x8(%rcx), %rdi
testq %rdi, %rdi
jle 0x2f72e5
movq (%rcx), %rsi
movq %rsi, %rax
cqto
idivq %rdi
testl %eax, %eax
je 0x2f72b1
movslq %eax, %r8
imulq %r8, %rdi
subq %rdi, %rsi
leal 0x1(%r8), %eax
movslq %eax, %rdi
movq %rsi, %rdx
imulq %rdi, %rdx
movq 0x10(%rcx), %rax
movq %rax, %rcx
subq %rdx, %rcx
jge 0x2f72ba
cqto
idivq %rdi
incq %rax
movq (%rbx), %rdi
testb $0x24, 0x9(%rdi)
je 0x2f72dc
movq %rax, %rsi
jmp 0x2f72d1
movq 0x10(%rcx), %rsi
incq %rsi
jmp 0x2f72c8
movq %rcx, %rax
cqto
idivq %r8
addq %rax, %rsi
incq %rsi
movq (%rbx), %rdi
testb $0x24, 0x9(%rdi)
je 0x2f72d7
popq %rbx
jmp 0x29c706
movq %rsi, (%rdi)
jmp 0x2f72df
movq %rax, (%rdi)
movw $0x4, 0x8(%rdi)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: ntileInvFunc
static void ntileInvFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct NtileCtx *p;
  assert( nArg==1 ); UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
  p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  p->iRow++;
}

// Assembly:
pushq %rax
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f72fe
movl $0x18, %esi
callq 0x2833f3
jmp 0x2f7302
movq 0x10(%rax), %rax
incq 0x10(%rax)
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: last_valueStepFunc
static void last_valueStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct LastValueCtx *p;
  UNUSED_PARAMETER(nArg);
  p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    sqlite3_value_free(p->pVal);
    p->pVal = sqlite3_value_dup(apArg[0]);
    if( p->pVal==0 ){
      sqlite3_result_error_nomem(pCtx);
    }else{
      p->nVal++;
    }
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f732f
movq %rbx, %rdi
movl $0x10, %esi
callq 0x2833f3
movq %rax, %r15
jmp 0x2f7333
movq 0x10(%rax), %r15
testq %r15, %r15
je 0x2f7354
movq (%r15), %rdi
callq 0x281de6
movq (%r14), %rdi
callq 0x281d08
movq %rax, (%r15)
testq %rax, %rax
je 0x2f735a
incl 0x8(%r15)
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x282490
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: last_valueFinalizeFunc
static void last_valueFinalizeFunc(sqlite3_context *pCtx){
  struct LastValueCtx *p;
  p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p && p->pVal ){
    sqlite3_result_value(pCtx, p->pVal);
    sqlite3_value_free(p->pVal);
    p->pVal = 0;
  }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f738a
movq %rbx, %rdi
movl $0x10, %esi
callq 0x2833f3
movq %rax, %r14
jmp 0x2f738e
movq 0x10(%rax), %r14
testq %r14, %r14
je 0x2f73b2
movq (%r14), %rsi
testq %rsi, %rsi
je 0x2f73b2
movq (%rbx), %rdi
callq 0x282324
movq (%r14), %rdi
callq 0x281de6
movq $0x0, (%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: last_valueValueFunc
static void last_valueValueFunc(sqlite3_context *pCtx){
  struct LastValueCtx *p;
  p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, 0);
  if( p && p->pVal ){
    sqlite3_result_value(pCtx, p->pVal);
  }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f73d4
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2833f3
jmp 0x2f73d8
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x2f73ee
movq (%rax), %rsi
testq %rsi, %rsi
je 0x2f73ee
movq (%rbx), %rdi
popq %rbx
jmp 0x282324
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: last_valueInvFunc
static void last_valueInvFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct LastValueCtx *p;
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
  p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( ALWAYS(p) ){
    p->nVal--;
    if( p->nVal==0 ){
      sqlite3_value_free(p->pVal);
      p->pVal = 0;
    }
  }
}

// Assembly:
pushq %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f740a
movl $0x10, %esi
callq 0x2833f3
movq %rax, %rbx
jmp 0x2f740e
movq 0x10(%rax), %rbx
testq %rbx, %rbx
je 0x2f7427
decl 0x8(%rbx)
jne 0x2f7427
movq (%rbx), %rdi
callq 0x281de6
movq $0x0, (%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: nth_valueStepFunc
static void nth_valueStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct NthValueCtx *p;
  p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p ){
    i64 iVal;
    switch( sqlite3_value_numeric_type(apArg[1]) ){
      case SQLITE_INTEGER:
        iVal = sqlite3_value_int64(apArg[1]);
        break;
      case SQLITE_FLOAT: {
        double fVal = sqlite3_value_double(apArg[1]);
        if( ((i64)fVal)!=fVal ) goto error_out;
        iVal = (i64)fVal;
        break;
      }
      default:
        goto error_out;
    }
    if( iVal<=0 ) goto error_out;

    p->nStep++;
    if( iVal==p->nStep ){
      p->pValue = sqlite3_value_dup(apArg[0]);
      if( !p->pValue ){
        sqlite3_result_error_nomem(pCtx);
      }
    }
  }
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
  return;

 error_out:
  sqlite3_result_error(
      pCtx, "second argument to nth_value must be a positive integer", -1
  );
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7450
movq %rbx, %rdi
movl $0x10, %esi
callq 0x2833f3
movq %rax, %r15
jmp 0x2f7454
movq 0x10(%rax), %r15
testq %r15, %r15
je 0x2f74b6
movq 0x8(%r14), %rdi
callq 0x2844d5
cmpl $0x2, %eax
je 0x2f7477
cmpl $0x1, %eax
jne 0x2f74bc
movq 0x8(%r14), %rdi
callq 0x281c1d
jmp 0x2f7492
movq 0x8(%r14), %rdi
callq 0x281bf8
cvttsd2si %xmm0, %rax
cvtsi2sd %rax, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2f74bc
jp 0x2f74bc
testq %rax, %rax
jle 0x2f74bc
movq (%r15), %rcx
incq %rcx
movq %rcx, (%r15)
cmpq %rcx, %rax
jne 0x2f74b6
movq (%r14), %rdi
callq 0x281d08
movq %rax, 0x8(%r15)
testq %rax, %rax
je 0x2f74e8
popq %rbx
popq %r14
popq %r15
retq
movl $0x1, 0x24(%rbx)
movq (%rbx), %rdi
leaq 0xeadac(%rip), %rsi     # 0x3e2279
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %ecx
movq $-0x1, %r8
popq %rbx
popq %r14
popq %r15
jmp 0x281f27
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x282490
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: nth_valueFinalizeFunc
static void nth_valueFinalizeFunc(sqlite3_context *pCtx){
  struct NthValueCtx *p;
  p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, 0);
  if( p && p->pValue ){
    sqlite3_result_value(pCtx, p->pValue);
    sqlite3_value_free(p->pValue);
    p->pValue = 0;
  }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7515
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2833f3
movq %rax, %r14
jmp 0x2f7519
movq 0x10(%rax), %r14
testq %r14, %r14
je 0x2f7540
movq 0x8(%r14), %rsi
testq %rsi, %rsi
je 0x2f7540
movq (%rbx), %rdi
callq 0x282324
movq 0x8(%r14), %rdi
callq 0x281de6
movq $0x0, 0x8(%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: first_valueStepFunc
static void first_valueStepFunc(
  sqlite3_context *pCtx,
  int nArg,
  sqlite3_value **apArg
){
  struct NthValueCtx *p;
  p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p && p->pValue==0 ){
    p->pValue = sqlite3_value_dup(apArg[0]);
    if( !p->pValue ){
      sqlite3_result_error_nomem(pCtx);
    }
  }
  UNUSED_PARAMETER(nArg);
  UNUSED_PARAMETER(apArg);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f7570
movq %rbx, %rdi
movl $0x10, %esi
callq 0x2833f3
movq %rax, %r15
jmp 0x2f7574
movq 0x10(%rax), %r15
testq %r15, %r15
je 0x2f7591
cmpq $0x0, 0x8(%r15)
jne 0x2f7591
movq (%r14), %rdi
callq 0x281d08
movq %rax, 0x8(%r15)
testq %rax, %rax
je 0x2f7597
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x282490
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: first_valueFinalizeFunc
static void first_valueFinalizeFunc(sqlite3_context *pCtx){
  struct NthValueCtx *p;
  p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p));
  if( p && p->pValue ){
    sqlite3_result_value(pCtx, p->pValue);
    sqlite3_value_free(p->pValue);
    p->pValue = 0;
  }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testb $0x20, 0x9(%rax)
jne 0x2f75c7
movq %rbx, %rdi
movl $0x10, %esi
callq 0x2833f3
movq %rax, %r14
jmp 0x2f75cb
movq 0x10(%rax), %r14
testq %r14, %r14
je 0x2f75f2
movq 0x8(%r14), %rsi
testq %rsi, %rsi
je 0x2f75f2
movq (%rbx), %rdi
callq 0x282324
movq 0x8(%r14), %rdi
callq 0x281de6
movq $0x0, 0x8(%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: computeJD
static void computeJD(DateTime *p){
  int Y, M, D, A, B, X1, X2;

  if( p->validJD ) return;
  if( p->validYMD ){
    Y = p->Y;
    M = p->M;
    D = p->D;
  }else{
    Y = 2000;  /* If no YMD specified, assume 2000-Jan-01 */
    M = 1;
    D = 1;
  }
  if( Y<-4713 || Y>9999 || p->rawS ){
    datetimeError(p);
    return;
  }
  if( M<=2 ){
    Y--;
    M += 12;
  }
  A = Y/100;
  B = 2 - A + (A/4);
  X1 = 36525*(Y+4716)/100;
  X2 = 306001*(M+1)/10000;
  p->iJD = (sqlite3_int64)((X1 + X2 + D + B - 1524.5 ) * 86400000);
  p->validJD = 1;
  if( p->validHMS ){
    p->iJD += p->h*3600000 + p->m*60000 + (sqlite3_int64)(p->s*1000);
    if( p->validTZ ){
      p->iJD -= p->tz*60000;
      p->validYMD = 0;
      p->validHMS = 0;
      p->validTZ = 0;
    }
  }
}

// Assembly:
cmpb $0x0, 0x28(%rdi)
je 0x2f886e
retq
cmpb $0x0, 0x2a(%rdi)
je 0x2f8882
movl 0x8(%rdi), %edx
movl 0xc(%rdi), %esi
movl 0x10(%rdi), %eax
addl $0x2, %eax
jmp 0x2f8891
movl $0x7d0, %edx            # imm = 0x7D0
movl $0x1, %esi
movl $0x3, %eax
leal -0x2710(%rdx), %ecx
cmpl $0xffffc687, %ecx       # imm = 0xFFFFC687
jb 0x2f88a5
cmpb $0x0, 0x29(%rdi)
je 0x2f88b8
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
movb $0x1, 0x2e(%rdi)
retq
leal 0xc(%rsi), %ecx
xorl %r8d, %r8d
cmpl $0x3, %esi
setl %r8b
cmovgel %esi, %ecx
subl %r8d, %edx
movslq %edx, %rsi
imulq $-0x51eb851f, %rsi, %rdx # imm = 0xAE147AE1
movq %rdx, %r8
shrq $0x3f, %r8
sarq $0x25, %rdx
addl %r8d, %edx
addl %edx, %eax
imulq $0x51eb851f, %rsi, %rdx # imm = 0x51EB851F
movq %rdx, %r8
shrq $0x3f, %r8
sarq $0x27, %rdx
addl %r8d, %edx
addl %eax, %edx
imull $0x8ead, %esi, %eax     # imm = 0x8EAD
addl $0xa445afc, %eax        # imm = 0xA445AFC
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
shrq $0x25, %rax
imull $0x4ab51, %ecx, %ecx    # imm = 0x4AB51
addl $0x4ab51, %ecx          # imm = 0x4AB51
movslq %ecx, %rcx
imulq $0x68db8bad, %rcx, %rcx # imm = 0x68DB8BAD
movq %rcx, %rsi
shrq $0x3f, %rsi
sarq $0x2c, %rcx
addl %esi, %ecx
addl %edx, %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
addsd 0xe65cb(%rip), %xmm0    # 0x3def10
mulsd 0xe656b(%rip), %xmm0    # 0x3deeb8
cvttsd2si %xmm0, %rax
movq %rax, (%rdi)
movb $0x1, 0x28(%rdi)
cmpb $0x0, 0x2b(%rdi)
je 0x2f886d
movslq 0x14(%rdi), %rcx
imulq $0x36ee80, %rcx, %rcx   # imm = 0x36EE80
movslq 0x18(%rdi), %rdx
imulq $0xea60, %rdx, %rdx     # imm = 0xEA60
movsd 0x20(%rdi), %xmm0
mulsd 0x94cea(%rip), %xmm0    # 0x38d670
addq %rcx, %rdx
cvttsd2si %xmm0, %rcx
addq %rdx, %rcx
addq %rax, %rcx
movq %rcx, (%rdi)
cmpb $0x0, 0x2c(%rdi)
je 0x2f886d
movslq 0x1c(%rdi), %rax
imulq $0xea60, %rax, %rax     # imm = 0xEA60
subq %rax, %rcx
movq %rcx, (%rdi)
movw $0x0, 0x2a(%rdi)
movb $0x0, 0x2c(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: parseHhMmSs
static int parseHhMmSs(const char *zDate, DateTime *p){
  int h, m, s;
  double ms = 0.0;
  if( getDigits(zDate, "20c:20e", &h, &m)!=2 ){
    return 1;
  }
  zDate += 5;
  if( *zDate==':' ){
    zDate++;
    if( getDigits(zDate, "20e", &s)!=1 ){
      return 1;
    }
    zDate += 2;
    if( *zDate=='.' && sqlite3Isdigit(zDate[1]) ){
      double rScale = 1.0;
      zDate++;
      while( sqlite3Isdigit(*zDate) ){
        ms = ms*10.0 + *zDate - '0';
        rScale *= 10.0;
        zDate++;
      }
      ms /= rScale;
    }
  }else{
    s = 0;
  }
  p->validJD = 0;
  p->rawS = 0;
  p->validHMS = 1;
  p->h = h;
  p->m = m;
  p->s = s + ms;
  if( parseTimezone(zDate, p) ) return 1;
  p->validTZ = (p->tz!=0)?1:0;
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0xeaec4(%rip), %rsi     # 0x3e38ed
leaq 0x14(%rsp), %rdx
leaq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x2f8c7d
movl $0x1, %ebp
cmpl $0x2, %eax
jne 0x2f8b6d
cmpb $0x3a, 0x5(%r14)
jne 0x2f8a96
leaq 0x6(%r14), %rdi
leaq 0xeadab(%rip), %rsi     # 0x3e3805
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2f8c7d
cmpl $0x1, %eax
jne 0x2f8b6d
leaq 0x8(%r14), %rax
xorpd %xmm0, %xmm0
cmpb $0x2e, 0x8(%r14)
jne 0x2f8a91
movzbl 0x9(%r14), %ecx
addq $-0x3a, %rcx
cmpq $-0xa, %rcx
jae 0x2f8b7c
movq %rax, %r14
jmp 0x2f8aa6
addq $0x5, %r14
movl $0x0, 0xc(%rsp)
xorpd %xmm0, %xmm0
movw $0x0, 0x28(%rbx)
movb $0x1, 0x2b(%rbx)
movl 0x14(%rsp), %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rsp), %eax
movl %eax, 0x18(%rbx)
xorps %xmm1, %xmm1
cvtsi2sdl 0xc(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rbx)
leaq 0xe20e9(%rip), %r15     # 0x3dabc0
movzbl (%r14), %eax
incq %r14
testb $0x1, (%rax,%r15)
jne 0x2f8ad7
movl $0x0, 0x1c(%rbx)
movzbl -0x1(%r14), %eax
cmpl $0x2d, %eax
je 0x2f8b03
cmpl $0x2b, %eax
jne 0x2f8b3f
movl $0x1, %r12d
jmp 0x2f8b09
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
leaq 0xeade5(%rip), %rsi     # 0x3e38f5
leaq 0x1c(%rsp), %rdx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2f8c7d
cmpl $0x2, %eax
jne 0x2f8b6d
addq $0x5, %r14
imull $0x3c, 0x1c(%rsp), %eax
addl 0x18(%rsp), %eax
imull %r12d, %eax
movl %eax, 0x1c(%rbx)
jmp 0x2f8b49
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x5a, %cl
jne 0x2f8b5f
movzbl (%r14), %eax
incq %r14
testb $0x1, (%rax,%r15)
jne 0x2f8b49
movb $0x1, 0x2d(%rbx)
movb -0x1(%r14), %al
testb %al, %al
jne 0x2f8b6d
cmpl $0x0, 0x1c(%rbx)
setne 0x2c(%rbx)
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addq $0x9, %r14
movzbl (%r14), %eax
leaq -0x3a(%rax), %rcx
cmpq $-0xa, %rcx
jb 0x2f8aa6
movsd 0x5668e(%rip), %xmm1    # 0x34f228
movsd 0x65436(%rip), %xmm2    # 0x35dfd8
movsd 0xe636e(%rip), %xmm3    # 0x3def18
movsbl %al, %eax
xorps %xmm4, %xmm4
cvtsi2sd %eax, %xmm4
mulsd %xmm2, %xmm0
addsd %xmm4, %xmm0
addsd %xmm3, %xmm0
mulsd %xmm2, %xmm1
movzbl 0x1(%r14), %eax
incq %r14
movq %rax, %rcx
addq $-0x3a, %rcx
cmpq $-0xb, %rcx
ja 0x2f8baa
divsd %xmm1, %xmm0
jmp 0x2f8aa6
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: sqlite3NotPureFunc
SQLITE_PRIVATE int sqlite3NotPureFunc(sqlite3_context *pCtx){
  const VdbeOp *pOp;
#ifdef SQLITE_ENABLE_STAT4
  if( pCtx->pVdbe==0 ) return 1;
#endif
  pOp = pCtx->pVdbe->aOp + pCtx->iOp;
  if( pOp->opcode==OP_PureFunc ){
    const char *zContext;
    char *zMsg;
    if( pOp->p5 & NC_IsCheck ){
      zContext = "a CHECK constraint";
    }else if( pOp->p5 & NC_GenCol ){
      zContext = "a generated column";
    }else{
      zContext = "an index";
    }
    zMsg = sqlite3_mprintf("non-deterministic use of %s() in %s",
                           pCtx->pFunc->zName, zContext);
    sqlite3_result_error(pCtx, zMsg, -1);
    sqlite3_free(zMsg);
    return 0;
  }
  return 1;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq 0x18(%rdi), %rax
movq 0x88(%rax), %rax
movslq 0x20(%rdi), %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0x1, %ebp
cmpb $0x3f, (%rax,%rcx,8)
jne 0x2f8c76
movq %rdi, %rbx
leaq (%rax,%rcx,8), %rax
movzwl 0x2(%rax), %eax
testb $0x8, %al
leaq 0x6ce86(%rip), %rcx     # 0x365a9e
leaq 0xe8c99(%rip), %rsi     # 0x3e18b8
cmoveq %rcx, %rsi
testb $0x4, %al
leaq 0xeacd1(%rip), %rdx     # 0x3e38fd
cmoveq %rsi, %rdx
movq 0x8(%rdi), %rax
movq 0x38(%rax), %rsi
leaq 0xeacd1(%rip), %rdi     # 0x3e3910
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x27e482
movq %rax, %r14
movl $0x1, 0x24(%rbx)
movq (%rbx), %rdi
movq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %ecx
movq $-0x1, %r8
callq 0x281f27
movq %r14, %rdi
callq 0x27c490
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: getDigits
static int getDigits(const char *zDate, const char *zFormat, ...){
  /* The aMx[] array translates the 3rd character of each format
  ** spec into a max size:    a   b   c   d   e     f */
  static const u16 aMx[] = { 12, 14, 24, 31, 59, 9999 };
  va_list ap;
  int cnt = 0;
  char nextC;
  va_start(ap, zFormat);
  do{
    char N = zFormat[0] - '0';
    char min = zFormat[1] - '0';
    int val = 0;
    u16 max;

    assert( zFormat[2]>='a' && zFormat[2]<='f' );
    max = aMx[zFormat[2] - 'a'];
    nextC = zFormat[3];
    val = 0;
    while( N-- ){
      if( !sqlite3Isdigit(*zDate) ){
        goto end_getDigits;
      }
      val = val*10 + *zDate - '0';
      zDate++;
    }
    if( val<(int)min || val>(int)max || (nextC!=0 && nextC!=*zDate) ){
      goto end_getDigits;
    }
    *va_arg(ap,int*) = val;
    zDate++;
    cnt++;
    zFormat += 4;
  }while( nextC );
end_getDigits:
  va_end(ap);
  return cnt;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
leaq -0x60(%rsp), %r10
movq %rdx, 0x10(%r10)
movq %rcx, 0x18(%r10)
movq %r8, 0x20(%r10)
movq %r9, 0x28(%r10)
testb %al, %al
je 0x2f8cc6
movaps %xmm0, -0x30(%rsp)
movaps %xmm1, -0x20(%rsp)
movaps %xmm2, -0x10(%rsp)
movaps %xmm3, (%rsp)
movaps %xmm4, 0x10(%rsp)
movaps %xmm5, 0x20(%rsp)
movaps %xmm6, 0x30(%rsp)
movaps %xmm7, 0x40(%rsp)
movq %r10, -0x70(%rsp)
leaq 0x70(%rsp), %rax
movq %rax, -0x78(%rsp)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, -0x80(%rsp)
xorl %eax, %eax
leaq 0xe61a7(%rip), %rcx     # 0x3dee94
movb (%rsi), %r11b
movb 0x1(%rsi), %r10b
movsbq 0x2(%rsi), %rdx
movzwl -0xc2(%rcx,%rdx,2), %r9d
movb 0x3(%rsi), %dl
cmpb $0x30, %r11b
jne 0x2f8d10
xorl %r8d, %r8d
jmp 0x2f8d4f
leal -0x31(%r11), %r8d
movzbl %r8b, %r8d
leaq (%rdi,%r8), %rbx
incq %rbx
addb $-0x30, %r11b
xorl %r8d, %r8d
movzbl (%rdi), %r14d
leaq -0x3a(%r14), %r15
cmpq $-0xa, %r15
jb 0x2f8d8d
movsbl %r14b, %r14d
leal (%r8,%r8,4), %r8d
leal (%r14,%r8,2), %r8d
addl $-0x30, %r8d
incq %rdi
decb %r11b
jne 0x2f8d26
movq %rbx, %rdi
addb $-0x30, %r10b
movsbl %r10b, %r11d
movl $0x6, %r10d
cmpl %r11d, %r8d
jl 0x2f8db5
cmpl %r9d, %r8d
jg 0x2f8db5
testb %dl, %dl
je 0x2f8d6f
cmpb (%rdi), %dl
jne 0x2f8db5
movl -0x80(%rsp), %r10d
cmpq $0x28, %r10
ja 0x2f8d95
movq %r10, %r9
addq -0x70(%rsp), %r9
addl $0x8, %r10d
movl %r10d, -0x80(%rsp)
jmp 0x2f8da3
movl $0x6, %r10d
jmp 0x2f8db5
movq -0x78(%rsp), %r9
leaq 0x8(%r9), %r10
movq %r10, -0x78(%rsp)
movq (%r9), %r9
movl %r8d, (%r9)
incq %rdi
incl %eax
addq $0x4, %rsi
xorl %r10d, %r10d
testl %r10d, %r10d
jne 0x2f8dc4
testb %dl, %dl
jne 0x2f8ced
jmp 0x2f8dc8
cmpl $0x6, %r10d
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq