// File: /workspace/github_c_makefile_star2_O0/shifengbin[P]bishe/Output/../Persistence/sqlite3.c
// Function: sqlite3VtabEponymousTableInit
SQLITE_PRIVATE int sqlite3VtabEponymousTableInit(Parse *pParse, Module *pMod){
  const sqlite3_module *pModule = pMod->pModule;
  Table *pTab;
  char *zErr = 0;
  int nName;
  int rc;
  sqlite3 *db = pParse->db;
  if( pMod->pEpoTab ) return 1;
  if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0;
  nName = sqlite3Strlen30(pMod->zName) + 1;
  pTab = sqlite3DbMallocZero(db, sizeof(Table) + nName);
  if( pTab==0 ) return 0;
  pMod->pEpoTab = pTab;
  pTab->zName = (char*)&pTab[1];
  memcpy(pTab->zName, pMod->zName, nName);
  pTab->nRef = 1;
  pTab->pSchema = db->aDb[0].pSchema;
  pTab->tabFlags |= TF_Virtual;
  pTab->nModuleArg = 0;
  pTab->iPKey = -1;
  addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName));
  addModuleArgument(db, pTab, 0);
  addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName));
  rc = vtabCallConstructor(db, pTab, pMod, pModule->xConnect, &zErr);
  if( rc ){
    sqlite3ErrorMsg(pParse, "%s", zErr);
    sqlite3DbFree(db, zErr);
    sqlite3VtabEponymousTableClear(db, pMod);
    return 0;
  }
  return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x572e5
movl $0x1, -0x4(%rbp)
jmp 0x57494
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x5730e
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x5730e
movl $0x0, -0x4(%rbp)
jmp 0x57494
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc6c0
addl $0x1, %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rdi
movslq -0x34(%rbp), %rsi
addq $0x78, %rsi
callq 0x15b80
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x57349
movl $0x0, -0x4(%rbp)
jmp 0x57494
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rcx
addq $0x78, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movslq -0x34(%rbp), %rdx
callq 0xb420
movq -0x28(%rbp), %rax
movw $0x1, 0x40(%rax)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x28(%rbp), %rax
movzbl 0x46(%rax), %ecx
orl $0x10, %ecx
movb %cl, 0x46(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x4c(%rax)
movq -0x28(%rbp), %rax
movw $0xffff, 0x3c(%rax)     # imm = 0xFFFF
movq -0x40(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
callq 0x15800
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq %rax, %rdx
callq 0x574a0
movq -0x40(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x574a0
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
callq 0x15800
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq %rax, %rdx
callq 0x574a0
movq -0x40(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rcx
leaq -0x30(%rbp), %r8
callq 0x558e0
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x5748d
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4e859(%rip), %rsi     # 0xa5cbc
movb $0x0, %al
callq 0x17840
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xd260
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x57540
movl $0x0, -0x4(%rbp)
jmp 0x57494
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)