MiCreateZeroThreadContext

_QWORD *__fastcall MiCreateZeroThreadContext(INT64 a1, INT64 a2){
  int v2; 
  __int64 v4; 
  __int64 v5; 
  INT64 v6; 
  v2 = a2;
  LODWORD(v4) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
  v5 = v4;
  if( v4 )
  {
    if( v2 )
      *(_BYTE *)(v4 + 80) = 1;
    if( a1 )
      v6 = *(unsigned int *)(a1 + 80);
    else
      v6 = 0i64;
    MiInitializeColorTable((_DWORD *)(v4 + 248), v6);
    if( (unsigned int)MiCreateUltraThreadContext(v5 + 88, *(unsigned int *)(v5 + 260), 15i64) )
    {
      *(_QWORD *)(v5 + 232) = a1;
      return(_QWORD *)v5;
    }
    ExFreePoolWithTag((PVOID)v5, 0);
  }
  return 0i64;
}

Referenced by:

MiInitSystem
MiInitializePartitionThreads
MiZeroNodePages