HvpApplyLogEntryDataToFileBackedHive

NTSTATUS __stdcall HvpApplyLogEntryDataToFileBackedHive(ULONG_PTR BugCheckParameter2, INT64 a2, INT64 a3){
  UINT8 *v3; 
  int v4; 
  __int64 v5; 
  UINT8 *v6; 
  _HHIVE *v9; 
  UINT64 v10; 
  ULONG_PTR v11; 
  NTSTATUS result; 
  _DWORD *v13; 

  v4 = 0;
  v5 = 0i64;
  v6 = v3;
  v9 = *(_HHIVE **)&BugCheckParameter2;
  *(_DWORD *)(*(_QWORD *)(*(_QWORD *)&BugCheckParameter2 + 64i64) + 40i64) = *(_DWORD *)(a2 + 16);
  if( *(_DWORD *)(a2 + 20) )
  {
    while( 1 )
    {
      v10 = *(unsigned int *)(a3 + 8 * v5 + 4);
      v11 = *(_DWORD *)(a3 + 8 * v5);
      if( !HvpSetRangeProtection((ULONG_PTR)v9, v11, v10, 4ui64) )
        return -1073741670;
      HvpCopyModifiedData(v9, v11, v6, (unsigned int)v10);
      v6 += v10;
      v4 += v10;
      v5 = (unsigned int)(v5 + 1);
      if( (unsigned int)v5 >= *(_DWORD *)(a2 + 20) )
        goto LABEL_4;
    }
  }
  else
  {
LABEL_4:
    result = 1073741833;
    *v13 = v4;
  }
  return result;
}

Referenced by:

HvpApplyIncrementalLogFile
HvpApplyLegacyLogFile