MiInitializeSessionGlobals

INT64 __stdcall MiInitializeSessionGlobals(){
  _ETHREAD *CurrentThread; 
  _EPROCESS *v1; 
  char v3; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v1 = (_EPROCESS *)*((_QWORD *)CurrentThread + 68);
  if( (*(_DWORD *)(*((_QWORD *)CurrentThread + 23) + 1124i64) & 0x10000) != 0 )
    return 3221225505i64;
  if( (unsigned int)MmIsSessionLeaderProcess(*((PEPROCESS *)CurrentThread + 68)) )
    return 0i64;
  if( qword_140C4DB00 )
  {
    if( PsIsCurrentThreadInServerSilo() )
    {
      --*((_WORD *)CurrentThread + 243);
      ExAcquirePushLockExclusiveEx((UINT64)&P2, 0i64);
      if( !PsGetCurrentServerSiloGlobals()[109] )
      {
        PsGetCurrentServerSiloGlobals()[109] = (__int64)v1;
        ObfReferenceObject(v1);
      }
      if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&P2, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
        ExfTryToWakePushLock((volatile INT64 *)&P2);
      KeAbPostRelease(&P2);
      KiLeaveGuardedRegionUnsafe((__int64)CurrentThread);
    }
    if( (unsigned int)MmIsSessionLeaderProcess((PEPROCESS)v1) )
      return 0i64;
  }
  else
  {
    --*((_WORD *)CurrentThread + 243);
    ExAcquirePushLockExclusiveEx((UINT64)&P2, 0i64);
    if( !qword_140C4DB00 )
    {
      qword_140C4DB00 = (__int64)v1;
      qword_140C4CAD0 = (PVOID)(qword_140C4DB20 + 20480);
      BitmapStart = (PVOID)(qword_140C4DB20 + 28672);
      qword_140C4DB10 = qword_140C4DB20 + 576;
      PsGetServerSiloGlobals(0i64)[109] = (__int64)v1;
      v3 = _InterlockedExchangeAdd64((volatile signed __int64 *)&P2, 0xFFFFFFFFFFFFFFFFui64);
      if( (v3 & 2) != 0 && (v3 & 4) == 0 )
        ExfTryToWakePushLock((volatile INT64 *)&P2);
      KeAbPostRelease(&P2);
      KiLeaveGuardedRegionUnsafe((__int64)CurrentThread);
      ObfReferenceObject(v1);
      return 0i64;
    }
    if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&P2, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
      ExfTryToWakePushLock((volatile INT64 *)&P2);
    KeAbPostRelease(&P2);
    KiLeaveGuardedRegionUnsafe((__int64)CurrentThread);
    if( (_EPROCESS *)qword_140C4DB00 == v1 )
      return 0i64;
  }
  return 3221225500i64;
}

Referenced by:

MiSessionCreate