MiInitializeHugePfnDatabase

NTSTATUS __stdcall MiInitializeHugePfnDatabase(){
  unsigned __int64 OldIrql; 
  void *Pool; 
  NTSTATUS result; 
  VOID *v3; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 274, &LockHandle);
  if( *(&stru_140C4DB30 + 272) )
  {
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    OldIrql = LockHandle.OldIrql;
LABEL_8:
    result = 1;
    goto LABEL_9;
  }
  Pool = MiAllocatePool(64i64, 0x8000ui64, 0x7048694Dui64);
  if( Pool )
  {
    v3 = MiAllocatePool(64i64, 0x200000ui64, 0x7048694Dui64);
    if( !v3 )
    {
      KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
      __writecr8(LockHandle.OldIrql);
      ExFreePoolWithTag(Pool, 0);
      return 0;
    }
    *(&stru_140C4DB30 + 270) = 0x40000i64;
    *(&stru_140C4DB30 + 271) = Pool;
    *(&stru_140C4DB30 + 272) = v3;
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    OldIrql = LockHandle.OldIrql;
    goto LABEL_8;
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  OldIrql = LockHandle.OldIrql;
  result = 0;
LABEL_9:
  __writecr8(OldIrql);
  return result;
}

Referenced by:

MiHotAddHugeRange