HalpTscAdvSynchComputeMinimumDelta
NTSTATUS __stdcall 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 = KeGetCurrentPrcb()->Number == a1;
if( (_DWORD)a2 )
{
v6 = (unsigned __int64)(unsigned int)a1 << 7;
do
{
--v2;
while( *(_DWORD *)(v6 + qword_140C4A418 + 4) != v5 )
_mm_pause();
HalpProcessorFence();
v7 = __rdtsc();
v8 = *(_QWORD *)(v6 + qword_140C4A418 + 8);
v9 = qword_140C4A418;
*(_QWORD *)(v6 + qword_140C4A418 + 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