void __fastcall PnprMmFree(_QWORD **a1){
_QWORD *v2;
_QWORD *v3;
while( 1 )
{
v2 = *a1;
if( *a1 == a1 )
break;
if( (_QWORD **)v2[1] != a1 || (v3 = (_QWORD *)*v2, *(_QWORD **)(*v2 + 8i64) != v2) )
__fastfail(3u);
*a1 = v3;
v3[1] = a1;
ExFreePoolWithTag(v2, 0x52706E50u);
}
}