HalpTscAdvSynchReadTimeStamp

UINT64 __fastcall HalpTscAdvSynchReadTimeStamp(UINT64 a1){
  unsigned __int64 v2; 
  int v3[10]; 
  if( (_DWORD)a1 == *((_DWORD *)KeGetCurrentPrcb() + 9) )
  {
    HalpProcessorFence();
    return __rdtsc();
  }
  else
  {
    v2 = (unsigned __int64)(unsigned int)a1 << 7;
    _InterlockedExchange((volatile __int32 *)(v2 + TscRequest), 7);
    while( *(_DWORD *)(v2 + TscRequest) == 7 )
      _mm_pause();
    while( *(_DWORD *)(v2 + TscRequest) )
      _mm_pause();
    _InterlockedOr(v3, 0);
    return *(_QWORD *)(v2 + TscRequest + 8);
  }
}

Referenced by:

HalpTscAdvSynchLeader