HvFreeDirtyData

VOID __fastcall HvFreeDirtyData(INT64 a1){
  void *v2; 
  __int64 v3; 
  void *v4; 
  v2 = *(void **)(a1 + 1688);
  if( v2 )
  {
    ExFreePoolWithTag(v2, 0);
    *(_DWORD *)(a1 + 1680) = 0;
    v3 = 0i64;
    for( *(_QWORD *)(a1 + 1688) = 0i64; (unsigned int)v3 < *(_DWORD *)(a1 + 1712); v3 = (unsigned int)(v3 + 1) )
    {
      v4 = *(void **)(*(_QWORD *)(a1 + 1704) + 24 * v3 + 8);
      if( v4 )
      {
        ExFreePoolWithTag(v4, 0);
        *(_QWORD *)(*(_QWORD *)(a1 + 1704) + 24 * v3 + 8) = 0i64;
      }
    }
    ExFreePoolWithTag(*(PVOID *)(a1 + 1704), 0);
    *(_QWORD *)(a1 + 1704) = 0i64;
    *(_DWORD *)(a1 + 1712) = 0;
    *(_DWORD *)(a1 + 1716) = 0;
  }
}

Referenced by:

CmpFlushHive
HvFoldBackDirtyData