IopCheckHandleForRevocation
char __fastcall IopCheckHandleForRevocation(__int64 a1, volatile signed __int64 *a2, __int64 a3, _QWORD *a4){
int v7[10];
if( (POBJECT_TYPE *)ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ *(unsigned __int8 *)(((*(__int64 *)a2 >> 16) & 0xFFFFFFFFFFFFFFF0ui64)
+ 0x18) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)(WORD1(*a2) & 0xFFF0) >> 8)] == IoFileObjectType
&& *(_QWORD *)(((*(__int64 *)a2 >> 16) & 0xFFFFFFFFFFFFFFF0ui64) + 0x38) == *a4 )
{
IopRevokeFileObjectForProcess(((*(__int64 *)a2 >> 16) & 0xFFFFFFFFFFFFFFF0ui64) + 48, a4[1]);
}
_InterlockedExchangeAdd64(a2, 1ui64);
_InterlockedOr(v7, 0);
if( *(_QWORD *)(a1 + 48) )
ExpUnblockPushLock((_EX_PUSH_LOCK *)(a1 + 48), 0i64, 0i64);
return 0;
}Referenced by:
No references.