HvFreeUnreconciledData

VOID __stdcall HvFreeUnreconciledData(_HHIVE *Hive){
  void *SectionEndFileOffset; 
  __int64 i; 
  void *v4; 

  SectionEndFileOffset = (void *)Hive[1].ViewMap.SectionEndFileOffset;
  if( SectionEndFileOffset )
  {
    ExFreePoolWithTag(SectionEndFileOffset, 0);
    Hive[1].ViewMap.SectionEndFileOffset = 0i64;
    Hive[1].LogDataPresent[0] = 0;
  }
  if( *(_QWORD *)&Hive[1]._bf_0 )
  {
    for( i = 0i64; (unsigned int)i < LODWORD(Hive[1].ViewMap.StorageEndFileOffset); i = (unsigned int)(i + 1) )
    {
      v4 = (void *)*((_QWORD *)Hive[1].ViewMap.SectionReference + 3 * i + 1);
      if( v4 )
        ExFreePoolWithTag(v4, 0);
    }
    ExFreePoolWithTag(Hive[1].ViewMap.SectionReference, 0);
    ExFreePoolWithTag(*(PVOID *)&Hive[1]._bf_0, 0);
    Hive[1].ViewMap.SectionReference = 0i64;
    LODWORD(Hive[1].ViewMap.StorageEndFileOffset) = 0;
    Hive[1].LastLogSwapTime.anonymous_0.LowPart = 0;
    *(_QWORD *)&Hive[1]._bf_0 = 0i64;
  }
}

Referenced by:

CmpFlushHive
HvFoldBackUnreconciledData