HvFreeDirtyData

VOID __stdcall HvFreeDirtyData(_HHIVE *Hive){
  void *v2; 
  __int64 v3; 
  void *v4; 

  v2 = *(void **)&Hive[1].HvUsedCellsUse;
  if( v2 )
  {
    ExFreePoolWithTag(v2, 0);
    Hive[1].HvBinHeadersUse = 0;
    v3 = 0i64;
    for( *(_QWORD *)&Hive[1].HvUsedCellsUse = 0i64;
          (unsigned int)v3 < Hive[1].CurrentLogOffset;
          v3 = (unsigned int)(v3 + 1) )
    {
      v4 = *(void **)(*(_QWORD *)&Hive[1].CurrentLogSequence + 24 * v3 + 8);
      if( v4 )
      {
        ExFreePoolWithTag(v4, 0);
        *(_QWORD *)(*(_QWORD *)&Hive[1].CurrentLogSequence + 24 * v3 + 8) = 0i64;
      }
    }
    ExFreePoolWithTag(*(PVOID *)&Hive[1].CurrentLogSequence, 0);
    *(_QWORD *)&Hive[1].CurrentLogSequence = 0i64;
    Hive[1].CurrentLogOffset = 0;
    Hive[1].MinimumLogSequence = 0;
  }
}

Referenced by:

CmpFlushHive
HvFoldBackDirtyData