SdbpOpenDatabaseInMemory

_DB *__stdcall SdbpOpenDatabaseInMemory(VOID *pImageDatabase, UINT64 dwSize, INT64 a3){
  _KEXCEPTION_VERIFY v3; 
  _KEXCEPTION_VERIFY *v5; 
  _KEXCEPTION_VERIFY *v6; 
  int v7; 
  __int64 pBuffer; 
  int v10; 

  v3 = dwSize;
  pBuffer = 0i64;
  v10 = 0;
  v5 = (_KEXCEPTION_VERIFY *)AslAlloc(pImageDatabase, 1408, a3);
  v6 = v5;
  if( v5 )
  {
    v5[4] = 0;
    v5[6] |= 1u;
    *(_QWORD *)v5 = 0i64;
    *((_QWORD *)v5 + 1) = pImageDatabase;
    v5[5] = v3;
    if( SdbpReadMappedData(v5, 0i64, &pBuffer, 0xCui64) )
    {
      SdbpValidateAndApplyCompatFlags(v6);
      if( v7 )
        return v6;
    }
    else
    {
      AslLogCallPrintf(1ui64, (INT8 *)"SdbpOpenDatabaseInMemory", 0x458ui64, (INT8 *)"Can't read database header");
    }
    ExFreePoolWithTag(v6, 0x74705041u);
  }
  else
  {
    AslLogCallPrintf(1ui64, (INT8 *)"SdbpOpenDatabaseInMemory", 0x44Dui64, (INT8 *)"Failed to allocate DB structure");
  }
  return 0i64;
}

Referenced by:

SdbInitDatabaseInMemory
SdbpOpenCompressedDatabase