KsepEngineInitialize

__int64 __fastcall KsepEngineInitialize(_QWORD *a1){
  INT64 v2; 
  void *v3; 
  INT64 v4; 
  __int64 result; 
  __int64 v6; 
  if( !a1 )
  {
    v6 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
    KsepHistoryErrors[2 * v6 + 1] = -1073740768;
    KsepHistoryErrors[2 * v6] = 131872;
    if( (KsepDebugFlag & 4) != 0 )
      RtlAssert("Engine != NULL", "minkernel\\ntos\\kshim\\ksecore.c", 0x320u, 0i64);
  }
  a1[3] = a1 + 2;
  a1[2] = a1 + 2;
  a1[5] = a1 + 4;
  a1[4] = a1 + 4;
  a1[6] = 0i64;
  v2 = KsepCacheInitialize(a1, (UINT64 *)KsepCacheDeviceEqual);
  a1[9] = v2;
  if( !v2 )
    return 3221225495i64;
  v4 = KsepCacheInitialize(v3, (UINT64 *)KsepCacheHwIdEqual);
  a1[10] = v4;
  if( !v4 )
    return 3221225495i64;
  a1[7] = KseGetIoCallbacks;
  a1[8] = KseSetCompletionHook;
  result = KsepEngineReadFlags((unsigned int *)KseEngine);
  if( (int)result >= 0 && (*(_BYTE *)KseEngine & 3) == 3 )
    return 3221225659i64;
  return result;
}

Referenced by:

KseInitialize