KsepSdbBootInitialize

NTSTATUS __stdcall KsepSdbBootInitialize(VOID *Src, size_t Size){
  __int64 v2; 
  __int64 v5; 
  VOID *Paged; 
  NTSTATUS v7; 
  VOID *v8; 
  INT64 v9; 
  _DB **inited; 
  __int64 v12; 
  __int64 v13; 

  v5 = v2;
  Paged = KsepPoolAllocatePaged(Size);
  v7 = 0;
  v8 = Paged;
  if( Paged )
  {
    memmove(Paged, Src, Size);
    inited = (_DB **)SdbInitDatabaseInMemory(v8, Size, v9);
    if( inited )
    {
      *(_QWORD *)(v5 + 8) = v8;
      *(_QWORD *)v5 = inited;
      *(_DWORD *)(v5 + 48) = SdbGetDatabaseEdition(inited[1]);
    }
    else
    {
      v7 = -1073741823;
      v13 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
      KsepHistoryErrors[2 * v13 + 1] = -1073741823;
      KsepHistoryErrors[2 * v13] = 590004;
      if( (KsepDebugFlag & 2) != 0 )
        KsepDebugPrint(1i64, "KSE: SdbInitDatabaseInMemory failed during boot!\n");
      KsepLogError(1, "KSE: SdbInitDatabaseInMemory failed during boot!\n");
      KsepPoolFreePaged(v8);
    }
  }
  else
  {
    v7 = -1073741670;
    v12 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
    KsepHistoryErrors[2 * v12 + 1] = -1073741670;
    KsepHistoryErrors[2 * v12] = 589988;
    if( (KsepDebugFlag & 2) != 0 )
      KsepDebugPrint(0i64, "KSE: Failed to allocate memory for shim database during boot!\n");
    KsepLogError(0, "KSE: Failed to allocate memory for shim database during boot!\n");
  }
  return v7;
}

Referenced by:

KseShimDatabaseBootInitialize