MiInitializeSessionIds

INT64 __stdcall MiInitializeSessionIds(){
  struct _RTL_BITMAP *v0; 
  INT64 result; 
  UNICODE_STRING v2; 
  __int16 BugCheckParameter3; 
  char BugCheckParameter3_2; 
  int v5; 
  __int128 v6; 
  int v7; 
  int v8; 
  int v9; 
  VOID(__stdcall *v10)(PVOID); 
  qword_140C4DAF8 = 0i64;
  v2.Buffer = L"Session";
  *(_QWORD *)&v2.Length = 1048590i64;
  LODWORD(v0) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
  qword_140C4EC50 = v0;
  if( !v0 || (v0->SizeOfBitMap = 128, v0->Buffer = &v0[1].SizeOfBitMap, !qword_140C4EC50) )
    KeBugCheckEx(0x7Du, qword_140C525D0, qword_140C525C0, HighestPhysicalPage, 0x200ui64);
  memset((INT64)qword_140C4EC50->Buffer, 0i64);
  qword_140C4DB28 = 0i64;
  LOWORD(stru_140C4DB30.Header.Lock) = 0;
  stru_140C4DB30.Header.SignalState = 0;
  stru_140C4DB30.Header.WaitListHead.Blink = &stru_140C4DB30.Header.WaitListHead;
  stru_140C4DB30.Header.WaitListHead.Flink = &stru_140C4DB30.Header.WaitListHead;
  stru_140C4DB30.Header.Size = 6;
  memset((INT64)&BugCheckParameter3, 0i64);
  v5 = 0;
  BugCheckParameter3_2 |= 0xCu;
  BugCheckParameter3 = 120;
  v8 = 512;
  v9 = 40;
  v6 = MiSessionMapping;
  v7 = 983043;
  v10 = MiSessionObjectDelete;
  result = ObCreateObjectType(&v2, (__int64)&BugCheckParameter3, 0i64, (__int64)&MmSessionObjectType);
  if( (int)result < 0 )
    KeBugCheckEx(0x1Au, 0x1237ui64, (int)result, (ULONG_PTR)&BugCheckParameter3, 0i64);
  return result;
}

Referenced by:

MiInitSystem