DbgkpInitializePhase0

INT64 __fastcall DbgkpInitializePhase0(){
  CHAR *ServerSiloState; 
  INT64 v1; 
  __int64 v2; 
  union _RTL_RUN_ONCE *v3; 
  union _RTL_RUN_ONCE *v4; 
  UNICODE_STRING v5; 
  __int16 result; 
  char result_2; 
  int v8; 
  int v9; 
  int v10; 
  int v11; 
  int v12; 
  int v13; 
  int v14; 
  int v15; 
  int v16; 
  void(__fastcall *v17)(__int64, __int64, __int64, unsigned __int64); 
  VOID(__stdcall *v18)(PVOID *); 
  *(_QWORD *)&v5.Length = 1572886i64;
  v5.Buffer = L"DebugObject";
  memset((INT64)&result, 0i64);
  DbgkpProcessDebugPortMutex.Owner = 0i64;
  DbgkpProcessDebugPortMutex.Contention = 0;
  DbgkpProcessDebugPortMutex.Event.Header.SignalState = 0;
  DbgkpProcessDebugPortMutex.Event.Header.WaitListHead.Blink = &DbgkpProcessDebugPortMutex.Event.Header.WaitListHead;
  DbgkpProcessDebugPortMutex.Event.Header.WaitListHead.Flink = &DbgkpProcessDebugPortMutex.Event.Header.WaitListHead;
  DbgkpProcessDebugPortMutex.Count = 1;
  LOWORD(DbgkpProcessDebugPortMutex.Event.Header.Lock) = 1;
  DbgkpProcessDebugPortMutex.Event.Header.Size = 6;
  ServerSiloState = DbgkpGetServerSiloState(0i64);
  v1 = DbgkpInitializePhase0SiloState(ServerSiloState);
  if( (int)v1 >= 0 )
  {
    v8 = 0;
    v15 = 0;
    v16 = 0;
    v18 = AlpcMessageDeleteProcedure;
    result = 120;
    v17 = DbgkpCloseObject;
    v2 = 8i64;
    result_2 |= 8u;
    v13 = 2031631;
    v12 = 2031631;
    v14 = 512;
    v9 = 131073;
    v10 = 131074;
    v11 = 1179648;
    v1 = ObCreateObjectType(&v5, (__int64)&result, 0i64, (__int64)&DbgkDebugObjectType);
    if( (int)v1 >= 0 )
    {
      if( !DbgkpMaxModuleMsgs )
        DbgkpMaxModuleMsgs = 500;
      v3 = (union _RTL_RUN_ONCE *)&stru_140C53C70;
      do
      {
        CmSiRWLockInitialize(v3);
        v3 = v4 + 2;
        --v2;
      }
      while( v2 );
    }
  }
  return v1;
}

Referenced by:

DbgkInitialize