HvpApplyLogEntryDataToFileBackedHive

INT64 __fastcall HvpApplyLogEntryDataToFileBackedHive(
        UINT64 BugCheckParameter2,
        INT64 a2,
        INT64 a3,
        INT64 a4,
        INT64 a5,
        INT64 a6){
  int v6; 
  __int64 v7; 
  INT64 v12; 
  unsigned int v13; 
  INT64 result; 
  v6 = 0;
  v7 = 0i64;
  *(_DWORD *)(*(_QWORD *)(BugCheckParameter2 + 64) + 40i64) = *(_DWORD *)(a2 + 16);
  if( *(_DWORD *)(a2 + 20) )
  {
    while( 1 )
    {
      v12 = *(unsigned int *)(a3 + 8 * v7 + 4);
      v13 = *(_DWORD *)(a3 + 8 * v7);
      if( !(unsigned __int8)HvpSetRangeProtection((_HHIVE *)BugCheckParameter2, v13, v12, 4ui64) )
        return 3221225626i64;
      HvpCopyModifiedData(BugCheckParameter2, v13, a4, (unsigned int)v12);
      a4 += v12;
      v6 += v12;
      v7 = (unsigned int)(v7 + 1);
      if( (unsigned int)v7 >= *(_DWORD *)(a2 + 20) )
        goto LABEL_4;
    }
  }
  else
  {
LABEL_4:
    result = 1073741833i64;
    *(_DWORD *)a6 = v6;
  }
  return result;
}

Referenced by:

HvpApplyIncrementalLogFile
HvpApplyLegacyLogFile