MiConvertStaticSubsections

NTSTATUS __stdcall MiConvertStaticSubsections(_CONTROL_AREA *ControlArea){
  NTSTATUS v1; 
  _CONTROL_AREA *v2; 
  __int16 v3; 
  UINT64 NumberOfMappedViews_high; 

  v1 = 0;
  v2 = ControlArea + 1;
  do
  {
    v3 = WORD1(v2->NumberOfPfnReferences);
    if( (v3 & 8) == 0 )
    {
      if( (v3 & 1) != 0 )
      {
        if( (v2->NumberOfUserReferences & 0x3FFFFFFF) != 0 )
        {
          MiUpdateSubsectionCrossPartitionRefs(v2, 0x3FFFFFFF);
          v3 = WORD1(v2->NumberOfPfnReferences);
        }
        NumberOfMappedViews_high = HIDWORD(v2->NumberOfMappedViews);
        v2->u2.SeImageStub = (_MI_IMAGE_SECURITY_REFERENCE *)1;
        WORD1(v2->NumberOfPfnReferences) = v3 & 0xFFFE;
        v1 += MiRemoveViewsFromSection((_SUBSECTION *)v2, NumberOfMappedViews_high);
      }
      else if( *(_QWORD *)v2->gap8 && !v2->u2.SeImageStub )
      {
        KeBugCheckEx(0x1Au, (PVOID)0x42003, v2, 0i64, 0i64);
      }
    }
    v2 = *(_CONTROL_AREA **)&v2->gap8[8];
  }
  while( v2 );
  return v1;
}

Referenced by:

MiInsertUnusedSegment