// File: /workspace/github_c_makefile_star2_O0/barabo[P]advanced-shell-history/src/sqlite3.c
// Function: sqlite3SrcListDup
SQLITE_PRIVATE SrcList *sqlite3SrcListDup(sqlite3 *db, SrcList *p, int flags){
  SrcList *pNew;
  int i;
  int nByte;
  if( p==0 ) return 0;
  nByte = sizeof(*p) + (p->nSrc>0 ? sizeof(p->a[0]) * (p->nSrc-1) : 0);
  pNew = sqlite3DbMallocRaw(db, nByte );
  if( pNew==0 ) return 0;
  pNew->nSrc = pNew->nAlloc = p->nSrc;
  for(i=0; i<p->nSrc; i++){
    struct SrcList_item *pNewItem = &pNew->a[i];
    struct SrcList_item *pOldItem = &p->a[i];
    Table *pTab;
    pNewItem->pSchema = pOldItem->pSchema;
    pNewItem->zDatabase = sqlite3DbStrDup(db, pOldItem->zDatabase);
    pNewItem->zName = sqlite3DbStrDup(db, pOldItem->zName);
    pNewItem->zAlias = sqlite3DbStrDup(db, pOldItem->zAlias);
    pNewItem->jointype = pOldItem->jointype;
    pNewItem->iCursor = pOldItem->iCursor;
    pNewItem->addrFillSub = pOldItem->addrFillSub;
    pNewItem->regReturn = pOldItem->regReturn;
    pNewItem->isCorrelated = pOldItem->isCorrelated;
    pNewItem->viaCoroutine = pOldItem->viaCoroutine;
    pNewItem->zIndex = sqlite3DbStrDup(db, pOldItem->zIndex);
    pNewItem->notIndexed = pOldItem->notIndexed;
    pNewItem->pIndex = pOldItem->pIndex;
    pTab = pNewItem->pTab = pOldItem->pTab;
    if( pTab ){
      pTab->nRef++;
    }
    pNewItem->pSelect = sqlite3SelectDup(db, pOldItem->pSelect, flags);
    pNewItem->pOn = sqlite3ExprDup(db, pOldItem->pOn, flags);
    pNewItem->pUsing = sqlite3IdListDup(db, pOldItem->pUsing);
    pNewItem->colUsed = pOldItem->colUsed;
  }
  return pNew;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x62027
movq $0x0, -0x8(%rbp)
jmp 0x622b5
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
jle 0x62049
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
subl $0x1, %eax
cltq
imulq $0x68, %rax, %rax
movq %rax, -0x50(%rbp)
jmp 0x62051
xorl %eax, %eax
movq %rax, -0x50(%rbp)
jmp 0x62051
movq -0x50(%rbp), %rax
addq $0x70, %rax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x134e0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x62080
movq $0x0, -0x8(%rbp)
jmp 0x622b5
movq -0x18(%rbp), %rax
movb (%rax), %cl
movq -0x28(%rbp), %rax
movb %cl, 0x1(%rax)
movq -0x28(%rbp), %rax
movb %cl, (%rax)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x18(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x622ad
movq -0x28(%rbp), %rax
addq $0x8, %rax
movslq -0x2c(%rbp), %rcx
imulq $0x68, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
addq $0x8, %rax
movslq -0x2c(%rbp), %rcx
imulq $0x68, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq (%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x11720
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x11720
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x11720
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x40(%rbp), %rax
movb 0x38(%rax), %cl
movq -0x38(%rbp), %rax
movb %cl, 0x38(%rax)
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x40(%rbp), %rax
movl 0x30(%rax), %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x40(%rbp), %rax
movl 0x34(%rax), %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x34(%rax)
movq -0x40(%rbp), %rax
movb 0x39(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x38(%rbp), %rax
movb %cl, %dl
movb 0x39(%rax), %cl
andb $0x1, %dl
shlb %dl
andb $-0x3, %cl
orb %dl, %cl
movb %cl, 0x39(%rax)
movq -0x40(%rbp), %rax
movb 0x39(%rax), %al
shrb $0x2, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x38(%rbp), %rax
movb %cl, %dl
movb 0x39(%rax), %cl
andb $0x1, %dl
shlb $0x2, %dl
andb $-0x5, %cl
orb %dl, %cl
movb %cl, 0x39(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x58(%rax), %rsi
callq 0x11720
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x40(%rbp), %rax
movb 0x39(%rax), %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x38(%rbp), %rax
movb %cl, %dl
movb 0x39(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x39(%rax)
movq -0x40(%rbp), %rax
movq 0x60(%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x60(%rax)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x38(%rbp), %rcx
movq %rax, 0x20(%rcx)
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x62235
movq -0x48(%rbp), %rax
movw 0x44(%rax), %cx
addw $0x1, %cx
movw %cx, 0x44(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x28(%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x61ba0
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x40(%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x61690
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x622c0
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x40(%rbp), %rax
movq 0x50(%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x50(%rax)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x6209a
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nop