MiUpdateProcessSharedCommit
VOID __stdcall MiUpdateProcessSharedCommit(_CONTROL_AREA *ControlArea, UINT64 NumberOfPages){
__int64 v2;
unsigned __int64 v3;
_QWORD *v4;
_QWORD *i;
_QWORD *v6;
__int64 v7;
volatile signed __int64 *v8;
_QWORD *v9;
_QWORD *v10;
if( MiIncludeSharedCommit(ControlArea) )
{
v4 = 0i64;
for( i = *(_QWORD **)(*(_QWORD *)v2 + 72i64); i; i = (_QWORD *)*i )
v4 = i;
while( v4 )
{
v7 = v4[3];
if( (v7 & 1) != 0 )
v8 = (volatile signed __int64 *)((v7 & 0xFFFFFFFFFFFFFFFEui64) + 1336);
else
v8 = (volatile signed __int64 *)(v7 + 2344);
_InterlockedExchangeAdd64(v8, v3);
v9 = (_QWORD *)v4[1];
v10 = v4;
if( v9 )
{
v6 = (_QWORD *)*v9;
v4 = (_QWORD *)v4[1];
if( *v9 )
{
do
{
v4 = v6;
v6 = (_QWORD *)*v6;
}
while( v6 );
}
}
else
{
while( 1 )
{
v4 = (_QWORD *)(v4[2] & 0xFFFFFFFFFFFFFFFCui64);
if( !v4 || (_QWORD *)*v4 == v10 )
break;
v10 = v4;
}
}
}
}
}Referenced by:
MiChargeSegmentCommit