PspValidateJobAssignmentSiloPolicy

BOOL __fastcall PspValidateJobAssignmentSiloPolicy(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
  __int64 ProcessServerSilo; 
  _EJOB *EffectiveServerSilo; 
  bool v8; 
  LODWORD(ProcessServerSilo) = a4 - 1;
  if( (((_DWORD)a4 - 1) & 0xFFFFFFF9) != 0 || (_DWORD)a4 == 7 )
  {
    if( (_DWORD)a4 != 4 )
      goto LABEL_4;
    PsIsServerSilo(a1, (volatile INT32 *)a2);
    v8 = (_BYTE)ProcessServerSilo == 0;
  }
  else
  {
    EffectiveServerSilo = PsGetEffectiveServerSilo((_EJOB *)a1);
    ProcessServerSilo = (__int64)PsGetEffectiveServerSilo((_EJOB *)a2);
    if( (_EJOB *)ProcessServerSilo == EffectiveServerSilo )
      goto LABEL_4;
    ProcessServerSilo = PsGetProcessServerSilo(a3);
    v8 = EffectiveServerSilo == (_EJOB *)ProcessServerSilo;
  }
  if( !v8 )
  {
    LOBYTE(ProcessServerSilo) = 0;
    return ProcessServerSilo;
  }
LABEL_4:
  LOBYTE(ProcessServerSilo) = 1;
  return ProcessServerSilo;
}

Referenced by:

PspAssignProcessToJob