MiConvertStaticSubsections
__int64 __fastcall MiConvertStaticSubsections(__int64 a1){
__int64 v1;
ULONG_PTR v2;
__int16 v3;
unsigned int v5;
unsigned __int64 v6;
v1 = 0i64;
v2 = a1 + 128;
do
{
v3 = *(_WORD *)(v2 + 34);
if( (v3 & 8) == 0 )
{
if( (v3 & 1) != 0 )
{
if( (*(_DWORD *)(v2 + 48) & 0x3FFFFFFF) != 0 )
{
MiUpdateSubsectionCrossPartitionRefs((_DWORD *)v2, 0x3FFFFFFFi64);
v3 = *(_WORD *)(v2 + 34);
v5 = 24;
}
else
{
v5 = 4;
}
v6 = *(unsigned int *)(v2 + 44);
*(_QWORD *)(v2 + 96) = 1i64;
*(_WORD *)(v2 + 34) = v3 & 0xFFFE;
v1 += MiRemoveViewsFromSection(v2, v6, v5);
}
else if( *(_QWORD *)(v2 + 8) && !*(_QWORD *)(v2 + 96) )
{
KeBugCheckEx(0x1Au, 0x42003ui64, v2, 0i64, 0i64);
}
}
v2 = *(_QWORD *)(v2 + 16);
}
while( v2 );
return v1;
}Referenced by:
MiInsertUnusedSegment