HalpTscAdvSynchComputeMinimumDelta

INT64 __fastcall HalpTscAdvSynchComputeMinimumDelta(UINT64 a1, INT64 a2){
  int v2; 
  INT64 v3; 
  int v4; 
  int v5; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  INT64 v10; 
  v2 = a2;
  v3 = 0x7FFFFFFFFFFFFFFFi64;
  v4 = 2;
  v5 = *((_DWORD *)KeGetCurrentPrcb() + 9) == a1;
  if( (_DWORD)a2 )
  {
    v6 = (unsigned __int64)(unsigned int)a1 << 7;
    do
    {
      --v2;
      while( *(_DWORD *)(v6 + TscRequest + 4) != v5 )
        _mm_pause();
      HalpProcessorFence();
      v7 = __rdtsc();
      v8 = *(_QWORD *)(v6 + TscRequest + 8);
      v9 = TscRequest;
      *(_QWORD *)(v6 + TscRequest + 8) = v7;
      _InterlockedXor((volatile signed __int32 *)(v6 + v9 + 4), 1u);
      if( v4 )
      {
        --v4;
      }
      else
      {
        v10 = v7 - v8;
        if( v10 < v3 )
          v3 = v10;
      }
    }
    while( v2 );
  }
  return v3;
}

Referenced by:

HalpTscAdvSynchCalculateRemoteDelta
HalpTscAdvSynchTarget