RtlpHpVaMgrRangeCleanup
NTSTATUS __stdcall RtlpHpVaMgrRangeCleanup(INT64 a1, CHAR *a2){
CHAR v2;
CHAR *v3;
__int64 v5;
__int64 v6;
CHAR *v7;
NTSTATUS result;
__int64 v9;
v2 = *a2;
v3 = a2;
if( (*a2 & 4) != 0 )
v5 = *((_QWORD *)a2 + 3);
else
v5 = *((unsigned __int16 *)a2 + 12);
v6 = *(_QWORD *)(a1 + 24);
v7 = &a2[32 * v5];
result = RtlCSparseBitmapBitsClear(
v6 + 32,
8 * ((unsigned __int64)&a2[-*(_QWORD *)(v6 + 40)] >> *(_DWORD *)(v6 + 24) << *(_DWORD *)(v6 + 24)),
8 * (1i64 << *(_DWORD *)(v6 + 24)));
if( (v2 & 4) == 0 )
{
while( 1 )
{
v3 += 32;
if( v3 >= v7 )
break;
v9 = *(_QWORD *)(a1 + 24);
result = RtlCSparseBitmapBitsClear(
v9 + 32,
8 * ((unsigned __int64)&v3[-*(_QWORD *)(v9 + 40)] >> *(_DWORD *)(v9 + 24) << *(_DWORD *)(v9 + 24)),
8 * (1i64 << *(_DWORD *)(v9 + 24)));
}
}
return result;
}Referenced by:
RtlpHpVaMgrRangeFree