MmAllocateIsrStack

UINT8 __stdcall MmAllocateIsrStack(VOID **IsrStack, UINT16 NodeNumber){
  __int64 IndependentPages; 
  char *v4; 
  _MMPTE *PteAddress; 
  char *v7; 

  if( *IsrStack )
  {
    v7 = (char *)*IsrStack - 24576;
    if( MmSetPageProtection(v7, 0x6000ui64, 4ui64) )
    {
      v4 = v7 - 4096;
      goto LABEL_4;
    }
  }
  else
  {
    IndependentPages = MmAllocateIndependentPagesEx(0x7000ui64, NodeNumber, 0i64, 0);
    v4 = (char *)IndependentPages;
    if( IndependentPages )
    {
      *IsrStack = (VOID *)(IndependentPages + 28672);
LABEL_4:
      PteAddress = MiGetPteAddress(v4);
      MiMarkBootGuardPage((UINT64)PteAddress);
      return 1;
    }
  }
  return 0;
}

Referenced by:

KeStartAllProcessors
KiStartDynamicProcessor