HvpFreeMap

VOID **__fastcall HvpFreeMap(INT64 a1, INT64 a2, UINT64 a3, UINT64 a4){
  VOID **result; 
  unsigned int v5; 
  unsigned int v6; 
  __int64 v9; 
  void *retaddr; 
  if( a2 )
  {
    result = &retaddr;
    v5 = 1023;
    v6 = a3;
    if( (unsigned int)a4 < 0x400 )
      v5 = a4;
    while( v6 <= v5 )
    {
      v9 = *(_QWORD *)(a2 + 8i64 * v6);
      if( v9 )
      {
        result = (VOID **)(*(__int64(__fastcall **)(__int64, __int64))(a1 + 32))(v9, 12288i64);
        *(_QWORD *)(a2 + 8i64 * v6) = 0i64;
      }
      ++v6;
    }
  }
  return result;
}

Referenced by:

HvFreeHivePartial
HvHiveCleanup
HvpExpandMap
HvpInitMap
HvpShrinkMap