VOID __stdcall MiDeleteControlAreaList(_MI_PARTITION *Partition){
_MI_PARTITION_SEGMENTS *p_Segments;
unsigned __int8 v3;
_SINGLE_LIST_ENTRY *Next;
unsigned __int64 v5;
p_Segments = &Partition->Segments;
while( 1 )
{
v3 = ExAcquireSpinLockExclusive((INT64 *)&p_Segments->SegmentListLock);
Next = Partition->Segments.ControlAreaDeleteList.Next;
v5 = v3;
if( Next )
Partition->Segments.ControlAreaDeleteList = (_SINGLE_LIST_ENTRY)Next->Next;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&p_Segments->SegmentListLock);
__writecr8(v5);
if( !Next )
break;
MiDeleteControlArea((_CONTROL_AREA *)Next);
}
}