HvpMappedViewConvertLockedPagesToCOWByPolicy

INT64 __fastcall HvpMappedViewConvertLockedPagesToCOWByPolicy(UINT64 a1, _QWORD *a2){
  INT64 v4; 
  INT64 v5; 
  INT64 v6; 
  INT64 result; 
  if( !a2[8] )
    return 0i64;
  v4 = a2[5];
  v5 = v4;
  v6 = v4;
  if( v4 < a2[6] )
  {
    while( a2[8] )
    {
      if( (*((_BYTE *)a2 + ((unsigned __int64)(v6 - a2[3]) >> 12) + 72) & 0x10) == 0 )
      {
        if( v4 != v5 )
        {
          result = HvpMappedViewConvertRegionFromLockedToCOWByPolicy(a1, a2, v4, v5);
          if( (int)result < 0 )
            return result;
        }
        v4 = v6 + 4096;
        v5 = v6;
      }
      v5 += 4096i64;
      v6 += 4096i64;
      if( v6 >= a2[6] )
        goto LABEL_6;
    }
    return 0i64;
  }
LABEL_6:
  if( v4 == v5 )
    return 0i64;
  result = HvpMappedViewConvertRegionFromLockedToCOWByPolicy(a1, a2, v4, v5);
  if( (int)result >= 0 )
    return 0i64;
  return result;
}

Referenced by:

HvpViewMapConvertLockedPagesToCOWByPolicy