MiClearFilePointer

VOID __stdcall MiClearFilePointer(_CONTROL_AREA *ControlArea){
  union {unsigned int LongFlags;_MMSECTION_FLAGS Flags;} v1; 
  unsigned __int64 Value; 
  _QWORD *v4; 

  v1.LongFlags = (unsigned int)ControlArea->u;
  if( (v1.LongFlags & 0x80000) == 0 )
  {
    Value = ControlArea->FilePointer.Value;
    ControlArea->u.LongFlags = v1.LongFlags | 0x80000;
    ExAcquireSpinLockExclusiveAtDpcLevel(&SpinLock);
    v4 = *(_QWORD **)((Value & 0xFFFFFFFFFFFFFFF0ui64) + 0x28);
    if( (ControlArea->u.LongFlags & 0x20) != 0 )
      v4[2] = 0i64;
    else
      *v4 = 0i64;
    ExReleaseSpinLockExclusiveFromDpcLevel(&SpinLock);
  }
}

Referenced by:

MiCheckControlArea
MiDestroySection