HvpPointMapEntriesToBuffer

VOID __fastcall HvpPointMapEntriesToBuffer(UINT64 P2, INT64 a2, INT64 a3, INT64 a4, CHAR a5, INT64 a6){
  int v6; 
  unsigned int v9; 
  INT64 CellMap; 
  unsigned int v11; 
  unsigned int v12; 
  unsigned int v13; 
  unsigned int v14; 
  INT64 v15; 
  if( (_DWORD)a3 )
  {
    v6 = a4;
    v9 = 0;
    do
    {
      CellMap = HvpGetCellMap(P2, v9 + v6);
      if( !CellMap )
        KeBugCheckEx(0x51u, 1ui64, P2, v11, 0x20Aui64);
      *(_QWORD *)(CellMap + 8) = a2;
      if( v12 )
      {
        v14 = 0;
      }
      else
      {
        *(_QWORD *)(CellMap + 8) = a2 | 1;
        v14 = v13;
      }
      *(_DWORD *)(CellMap + 16) = v14;
      if( a6 )
      {
        *(_QWORD *)(CellMap + 8) |= 2ui64;
        v15 = a6;
      }
      else
      {
        v15 = v12;
      }
      *(_QWORD *)CellMap = v15;
      if( a5 )
        *(_QWORD *)(CellMap + 8) |= 8ui64;
      v9 = v12 + 4096;
    }
    while( v9 < v13 );
  }
}

Referenced by:

HvpAddBin
HvpAddDummyBinToHive
HvpBuildMapForMemoryBackedHive
HvpDropPagedBins
HvpMapHiveImage
HvpRemapAndEnlistHiveBins