EtwpCoverageHighIrqlCPWorkItemCallback
NTSTATUS __stdcall EtwpCoverageHighIrqlCPWorkItemCallback(INT64 **a1){
INT64 *v1;
__int64 **v2;
unsigned __int8 v3;
__int64 *v4;
unsigned __int64 v5;
__int64 v6;
int v7;
unsigned __int64 v8;
_BYTE *v9;
NTSTATUS result;
INT64 v11[11];
int v13;
v1 = *a1 + 3;
v13 = 0;
memset(v11, 0, 24);
v2 = (__int64 **)(v1 + 2);
while( 1 )
{
v3 = KeAcquireSpinLockRaiseToDpc((UINT64 *)v1);
v4 = *v2;
v5 = v3;
if( *v2 == (__int64 *)v2 )
break;
v6 = *v4;
if( (__int64 **)v4[1] != v2 || *(__int64 **)(v6 + 8) != v4 )
__fastfail(3u);
*v2 = (__int64 *)v6;
v7 = 1;
*(_QWORD *)(v6 + 8) = v2;
LABEL_8:
v8 = v4[3];
v9 = (_BYTE *)v4[4];
v4[4] = v8;
KxReleaseSpinLock((UINT64 *)v1);
__writecr8(v5);
if( (unsigned __int64)v9 < v8 )
{
do
{
*(INT64 *)((char *)&v11[1] + 4) = 0i64;
HIDWORD(v11[2]) = 0;
v11[0] = (INT64)v9;
LODWORD(v11[1]) = TelemetryCoverageStringHashInternal(v9, &v13);
EtwpCoverageRecord(a1, (INT64)v11);
v9 += (unsigned int)(v13 + 1);
}
while( (unsigned __int64)v9 < v8 );
v2 = (__int64 **)(v1 + 2);
}
if( v7 )
ExFreePoolWithTag(v4, 0x56777445u);
}
v4 = (__int64 *)v1[1];
if( v4[4] < (unsigned __int64)v4[3] )
{
v7 = 0;
goto LABEL_8;
}
v4[3] = (__int64)(v4 + 5);
v4[4] = (__int64)(v4 + 5);
*((_DWORD *)v1 + 18) = 0;
KxReleaseSpinLock((UINT64 *)v1);
result = KiIrqlFlags;
__writecr8(v5);
return result;
}Referenced by:
No references.