EtwpCovSampStrideSamplerInitialize
INT64 __fastcall EtwpCovSampStrideSamplerInitialize(INT64 a1, UINT64 a2, UINT64 a3){
__int64 v3;
unsigned int v5;
ULONG v6;
bool v7;
unsigned __int64 v8;
INT64 result;
v3 = (unsigned int)a3;
*(_OWORD *)a1 = 0i64;
*(_OWORD *)(a1 + 16) = 0i64;
*(_QWORD *)(a1 + 32) = 0i64;
v5 = a2;
*(_DWORD *)(a1 + 36) = ExGenRandom(0i64);
v6 = 10 * v5 / KeMaximumIncrement;
*(_DWORD *)(a1 + 8) = v6;
v7 = *(_DWORD *)(a1 + 8) == 0;
*(_DWORD *)(a1 + 4) = KUSER_SHARED_DATA.TickCount.LowPart + ~v6;
if( v7 )
{
if( v5 )
{
v8 = v3 * (KeMaximumIncrement / 0xA / v5);
LODWORD(v3) = 0x10000000;
if( v8 < 0x10000000 )
LODWORD(v3) = v8;
}
}
result = (unsigned int)(4 * v3);
*(_DWORD *)a1 = v3;
*(_DWORD *)(a1 + 12) = result;
return result;
}Referenced by:
EtwpCovSampCaptureContextStart