SeTokenSetNoChildProcessRestricted

VOID __stdcall SeTokenSetNoChildProcessRestricted(PACCESS_TOKEN Token, BOOL UnlessSecure, BOOL AuditOnly){
  _ETHREAD *CurrentThread; 
  int v7; 
  int v8; 
  int v9; 
  unsigned int v10; 
  unsigned int v11; 
  signed __int32 v12[10]; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireResourceExclusiveLite(*((_QWORD *)Token + 6), 1, AuditOnly);
  _InterlockedOr(v12, 0);
  v7 = *((_DWORD *)Token + 50);
  if( AuditOnly )
  {
    if( (v7 & 0x80000) != 0 )
      goto LABEL_6;
    v11 = v7 | 0x200000;
  }
  else
  {
    v8 = v7 | 0x80000;
    v9 = v7 | 0x180000;
    v10 = v8 & 0xFFEFFFFF;
    if( !UnlessSecure )
      v9 = v10;
    v11 = v9 & 0xFFDFFFFF;
  }
  *((_DWORD *)Token + 50) = v11;
LABEL_6:
  *((_QWORD *)Token + 7) = ExpLuidIncrement + _InterlockedExchangeAdd64(&ExpLuid, ExpLuidIncrement);
  _InterlockedOr(v12, 0);
  ExReleaseResourceLite(*((PERESOURCE *)Token + 6));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
}

Referenced by:

PspSetNoChildProcessRestrictedPolicy