SepIdAssignableAsGroup
UINT8 __stdcall SepIdAssignableAsGroup(VOID *AToken, VOID *Group){
UINT8 v2;
_ETHREAD *CurrentThread;
unsigned int v7;
unsigned int v8;
__int64 v9;
v2 = 0;
if( !Group )
return 0;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v7 = 0;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceSharedLite(*((_QWORD *)AToken + 6), 1);
v8 = *((_DWORD *)AToken + 31);
if( v8 )
{
v9 = *((_QWORD *)AToken + 19);
do
{
v2 = RtlEqualSid(Group, *(PVOID *)(v9 + 16i64 * v7));
if( v2 )
break;
++v7;
}
while( v7 < v8 );
}
ExReleaseResourceLite(*((PERESOURCE *)AToken + 6));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v2;
}Referenced by:
NtSetInformationToken