HalpTscSynchronizationWorker

INT8 __stdcall HalpTscSynchronizationWorker(PVOID Argument){
  INT64 *v1; 
  INT8 result; 
  INT64 v3; 
  __int16 v4; 
  int v5; 
  __int64 v6; 
  int v7; 

  v1 = (INT64 *)((unsigned __int64)&v6 & 0xFFFFFFFFFFFFFFC0ui64);
  *(_QWORD *)((unsigned __int64)&v6 & 0xFFFFFFFFFFFFFFC0ui64) = Argument;
  result = (unsigned __int8)memset((VOID *)(((unsigned __int64)&v6 & 0xFFFFFFFFFFFFFFC0ui64) + 64), 0i64, 0x80u);
  v3 = *(_QWORD *)((unsigned __int64)&v6 & 0xFFFFFFFFFFFFFFC0ui64);
  if( *(_DWORD *)(v3 + 40) >= 2u )
  {
    if( *(_DWORD *)(HalpPerformanceCounter + 228) == 5 )
    {
      v4 = v7;
      *(_QWORD *)(((unsigned __int64)KeGetCurrentPrcb()->Number << 7) + qword_140C4A418 + 16) = v1 + 8;
      _disable();
      v5 = v4 & 0x200;
      if( _InterlockedExchangeAdd((volatile signed __int32 *)v3, 0xFFFFFFFF) != 1 )
      {
        do
          _mm_pause();
        while( *(_DWORD *)v3 );
      }
      if( KeGetCurrentPrcb()->Number == *(&stru_140CF2E80 + 1864) )
        HalpTscAdvSynchLeader(v3);
      else
        result = HalpTscAdvSynchTarget();
      if( v5 )
        _enable();
    }
    else
    {
      return HalpTscCompatibilitySynchronization(*v1);
    }
  }
  return result;
}

Referenced by:

HalpPostSleepMP