EtwpCoverageFreeStringBuffers
VOID __fastcall EtwpCoverageFreeStringBuffers(INT64 a1, INT64 a2){
INT64 v2;
int v3;
_QWORD *v4;
_QWORD *v6;
_QWORD *v7;
v2 = a1 + 48;
v3 = a2;
v4 = *(_QWORD **)(a1 + 48);
while( v4 != (_QWORD *)v2 )
{
v6 = v4;
v4 = (_QWORD *)*v4;
if( v3 && v6 == *(_QWORD **)(a1 + 40) )
{
memset((INT64)(v6 + 5), 0i64);
v6[3] = v6 + 5;
v6[4] = v6 + 5;
}
else
{
if( (_QWORD *)v4[1] != v6 || (v7 = (_QWORD *)v6[1], (_QWORD *)*v7 != v6) )
__fastfail(3u);
*v7 = v4;
v4[1] = v7;
ExFreePoolWithTag(v6, 0x56777445u);
}
}
}Referenced by:
EtwpCoverageEnsureContext
EtwpCoverageReset