HvpViewMapUnCOWAndSealRange

VOID __stdcall HvpViewMapUnCOWAndSealRange(INT64 a1, INT64 a2, UINT64 a3){
  INT64 v3; 
  INT64 v4; 
  INT64 v6; 
  INT64 v7; 
  INT64 v8; 
  INT64 v9; 

  v3 = (unsigned int)(a2 + 4096);
  v4 = v3 + (unsigned int)a3;
  if( v3 < (unsigned __int64)v4 )
  {
    v6 = a1 + 40;
    do
    {
      v7 = *(_QWORD *)v6;
      if( (*(_BYTE *)(v6 + 8) & 1) != 0 && v7 )
        v7 ^= v6;
      while( v7 )
      {
        if( v3 >= *(_QWORD *)(v7 + 40) )
        {
          if( v3 < *(_QWORD *)(v7 + 48) )
            break;
          v8 = *(_QWORD *)(v7 + 8);
        }
        else
        {
          v8 = *(_QWORD *)v7;
        }
        if( (*(_BYTE *)(v6 + 8) & 1) != 0 && v8 )
          v7 ^= v8;
        else
          v7 = v8;
      }
      v9 = v4;
      if( v4 >= *(_QWORD *)(v7 + 48) )
        v9 = *(_QWORD *)(v7 + 48);
      HvpViewMapMakeViewRangeUnCOWByCaller(a1, v7, v3, v9);
      v3 = v9;
    }
    while( v9 < v4 );
  }
}

Referenced by:

HvUnCOWReconciledPages