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