KeSynchronizeSecurityDomain

__int64 __fastcall KeSynchronizeSecurityDomain(__int64 a1){
  unsigned __int8 CurrentIrql; 
  struct _KPRCB *CurrentPrcb; 
  int v4; 
  __int64 v5; 
  INT64 result[22]; 
  memset((INT64)result, 0i64);
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(0xCui64);
  CurrentPrcb = KeGetCurrentPrcb();
  KeCopyAffinityEx((__int64)result, (unsigned __int16 *)(a1 + 368));
  KeRemoveProcessorAffinityEx((unsigned __int16 *)result, *((_DWORD *)CurrentPrcb + 9));
  v4 = KeCountSetBitsAffinityEx((_KAFFINITY_EX *)result);
  if( a1 == *((_QWORD *)KeGetCurrentThread() + 23) )
    KiSynchronizeSecurityDomainTarget();
  if( v4 )
  {
    KiIpiSendPacket(0i64, (UINT16 *)result, (INT64)KiSynchronizeSecurityDomainTarget, 1i64, 0i64, 0i64);
    while( *((_DWORD *)CurrentPrcb + 2912) )
      _mm_pause();
  }
  v5 = CurrentIrql;
  __writecr8(CurrentIrql);
  return v5;
}

Referenced by:

NtSetInformationProcess
PspCombineSecurityDomains