HvpGenerateLogEntryDirtyData

UINT16 __fastcall HvpGenerateLogEntryDirtyData(
        INT64 BugCheckParameter2,
        INT64 a2,
        INT64 a3,
        UINT64 *a4,
        UINT64 *a5,
        INT64 a6){
  RTL_BITMAP *v6; 
  INT64 v10; 
  UINT64 *v11; 
  ULONG v12; 
  unsigned int v13; 
  UINT16 result; 
  INT64 Allocate; 
  INT64 Allocatea; 
  UINT8 *Address[2]; 
  UINT64 Current; 
  UINT64 Length; 
  Address[0] = 0i64;
  LODWORD(Length) = 0;
  v6 = (RTL_BITMAP *)(BugCheckParameter2 + 88);
  LODWORD(a6) = 0;
  LODWORD(Current) = 0;
  LOBYTE(Allocate) = 0;
  if( (unsigned __int8)HvpFindNextDirtyBlock(
                          (_HHIVE *)BugCheckParameter2,
                          (_RTL_BITMAP *)(BugCheckParameter2 + 88),
                          &Current,
                          Address,
                          &Length,
                          (UINT64 *)&a6,
                          Allocate) )
  {
    v11 = a5;
    do
    {
      HvpCopyDataToOffsetArray((INT64)Address[0], (unsigned int)Length, a2, v10, a4, v11);
      LOBYTE(Allocatea) = 0;
    }
    while( (unsigned __int8)HvpFindNextDirtyBlock(
                               (_HHIVE *)BugCheckParameter2,
                               v6,
                               &Current,
                               Address,
                               &Length,
                               (UINT64 *)&a6,
                               Allocatea) );
  }
  v12 = RtlNumberOfSetBits(v6);
  v13 = HvpCountSetRangesInVector(v6);
  CmpLogDirtyVectorUse((_CMHIVE *)BugCheckParameter2, DirtyDataCaptureEnd, v13, v12);
  return result;
}

Referenced by:

HvpGenerateLogEntry