// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/external/sqlite-3.33.0/sqlite3.c
// Function: sqlite3CheckObjectName
SQLITE_PRIVATE int sqlite3CheckObjectName(
  Parse *pParse,            /* Parsing context */
  const char *zName,        /* Name of the object to check */
  const char *zType,        /* Type of this object */
  const char *zTblName      /* Parent table name for triggers and indexes */
){
  sqlite3 *db = pParse->db;
  if( sqlite3WritableSchema(db)
   || db->init.imposterTable
   || !sqlite3Config.bExtraSchemaChecks
  ){
    /* Skip these error checks for writable_schema=ON */
    return SQLITE_OK;
  }
  if( db->init.busy ){
    if( sqlite3_stricmp(zType, db->init.azInit[0])
     || sqlite3_stricmp(zName, db->init.azInit[1])
     || sqlite3_stricmp(zTblName, db->init.azInit[2])
    ){
      sqlite3ErrorMsg(pParse, ""); /* corruptSchema() will supply the error */
      return SQLITE_ERROR;
    }
  }else{
    if( (pParse->nested==0 && 0==sqlite3StrNICmp(zName, "sqlite_", 7))
     || (sqlite3ReadOnlyShadowTables(db) && sqlite3ShadowTableName(db, zName))
    ){
      sqlite3ErrorMsg(pParse, "object name reserved for internal use: %s",
                      zName);
      return SQLITE_ERROR;
    }

  }
  return SQLITE_OK;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r15
movq %rdi, %r14
movq (%rdi), %rdi
movq 0x30(%rdi), %rax
movl %eax, %esi
andl $0x10000001, %esi       # imm = 0x10000001
xorl %ebx, %ebx
cmpl $0x1, %esi
je 0x2c39f9
testb $0x2, 0xb6(%rdi)
jne 0x2c39f9
cmpb $0x0, 0x1f7d90(%rip)    # 0x4bb669
je 0x2c39f9
cmpb $0x0, 0xb5(%rdi)
je 0x2c3936
movq 0xb8(%rdi), %rax
movq (%rax), %rsi
testq %rdx, %rdx
je 0x2c398d
testq %rsi, %rsi
je 0x2c39e3
xorl %edi, %edi
leaq 0x10d9d3(%rip), %r8     # 0x3d12e0
movzbl (%rdx,%rdi), %r9d
movzbl (%rsi,%rdi), %r10d
cmpb %r10b, %r9b
jne 0x2c3923
testq %r9, %r9
jne 0x2c3931
jmp 0x2c3992
movb (%r9,%r8), %r9b
cmpb (%r10,%r8), %r9b
jne 0x2c39e3
incq %rdi
jmp 0x2c390d
testq %r15, %r15
je 0x2c3a2b
cmpb $0x0, 0x1e(%r14)
jne 0x2c3a2b
xorl %edx, %edx
leaq 0x10d98d(%rip), %rcx    # 0x3d12e0
leaq 0x113e79(%rip), %rsi    # 0x3d77d3
movzbl (%r15,%rdx), %r8d
testq %r8, %r8
je 0x2c3a01
movzbl (%r8,%rcx), %r8d
movzbl (%rdx,%rsi), %r9d
movb (%r9,%rcx), %r9b
cmpb %r9b, %r8b
jne 0x2c3a0c
incq %rdx
cmpq $0x7, %rdx
jne 0x2c395a
jmp 0x2c3a15
testq %rsi, %rsi
jne 0x2c39e3
movq 0x8(%rax), %rdx
testq %r15, %r15
je 0x2c39ce
testq %rdx, %rdx
je 0x2c39e3
xorl %esi, %esi
leaq 0x10d937(%rip), %rdi    # 0x3d12e0
movzbl (%r15,%rsi), %r8d
movzbl (%rdx,%rsi), %r9d
cmpb %r9b, %r8b
jne 0x2c39bf
testq %r8, %r8
jne 0x2c39c9
jmp 0x2c39d3
movb (%r8,%rdi), %r8b
cmpb (%r9,%rdi), %r8b
jne 0x2c39e3
incq %rsi
jmp 0x2c39a9
testq %rdx, %rdx
jne 0x2c39e3
movq 0x10(%rax), %rsi
movq %rcx, %rdi
callq 0x274fe7
testl %eax, %eax
je 0x2c39f9
leaq 0x106786(%rip), %rsi    # 0x3ca170
movq %r14, %rdi
xorl %eax, %eax
callq 0x27b48d
movl $0x1, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %r15
retq
movzbl (%rdx,%rsi), %edx
movb (%rdx,%rcx), %r9b
xorl %r8d, %r8d
movzbl %r9b, %ecx
cmpl %ecx, %r8d
jne 0x2c3a2b
leaq 0x113dbf(%rip), %rsi    # 0x3d77db
movq %r14, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x27b48d
jmp 0x2c39f4
btl $0x1c, %eax
jae 0x2c39f9
cmpq $0x0, 0x208(%rdi)
jne 0x2c39f9
cmpl $0x0, 0xcc(%rdi)
jne 0x2c39f9
movq %r15, %rsi
callq 0x2c3b30
testl %eax, %eax
jne 0x2c3a15
jmp 0x2c39f9