HalpAllocPhysicalMemory

UINT64 __stdcall HalpAllocPhysicalMemory(_LOADER_PARAMETER_BLOCK *LoaderBlock, LARGE_INTEGER *MaxPhysicalAddress){
  unsigned int v2; 
  char v3; 
  char v4; 
  unsigned int v5; 
  unsigned __int64 v9; 
  INT64 v10; 
  __int64(*v11)[320]; 
  v4 = v3;
  v5 = v2;
  if( (unsigned int)(HalpAllocationDescriptorArraySize - HalpUsedAllocDescriptors) <= 3 )
  {
    v9 = HalpAllocPhysicalMemoryInternal((__int64)LoaderBlock, 0i64, 1u, 0);
    if( v9 )
    {
      v10 = HalpMapPhysicalMemory64((LARGE_INTEGER)v9, MmCached);
      v11 = (__int64(*)[320])v10;
      if( v10 )
      {
        memset(v10, 0i64);
        HalpUsedAllocDescriptors = 0;
        HalpAllocationDescriptorArray = v11;
        HalpAllocationDescriptorArraySize = 102;
      }
    }
  }
  return HalpAllocPhysicalMemoryInternal((__int64)LoaderBlock, MaxPhysicalAddress, v5, v4);
}

Referenced by:

ExtEnvAllocatePhysicalMemory
HalpAcpiAllocateMemory
HalpAllocateEarlyPages
HalpAllocateNumaConfigData
HalpAllocateScratchMemory
HalpBlkAllocateAndShadowMemory
HalpBlkAllocatePageTablePage
HalpDmaInitMemory
HalpIommuAllocateAndZeroPageTable
HalpMmAllocateAndInsertPageTablePage
HalpMmAllocateMemoryInternal
HalpSetupAcpiPhase0
HalpSocApiAllocatePhysicalMemory