HalpBlkAllocatePageTablePage

UINT64 __stdcall HalpBlkAllocatePageTablePage(CHAR a1){
  int v1; 
  UINT64 v2; 
  UINT64 v3; 
  VOID *v4; 
  UINT64 Protection; 
  __int64 v7; 

  v7 = 0i64;
  v1 = 0;
  if( a1 )
    v1 = -1;
  LODWORD(v7) = v1;
  v2 = HalpAllocPhysicalMemory(
         LoaderBlock,
         (_LARGE_INTEGER *)((unsigned __int64)&v7 & -(__int64)(a1 != 0)),
         1ui64,
         0i64);
  v3 = v2;
  if( v2 )
  {
    LODWORD(Protection) = 4;
    v4 = (VOID *)HalpMap((_LARGE_INTEGER)v2, MmCached, MmCached, 1u, Protection);
    if( v4 )
      memset(v4, 0i64, 0x1000u);
    else
      return 0i64;
  }
  return v3;
}

Referenced by:

HalpBlkAddVirtualMapping
HalpBlkInitializeVirtualAddressSpace