EtwpCovSampContextRemoveAndFreeModule
VOID __stdcall EtwpCovSampContextRemoveAndFreeModule(INT64 a1, INT64 *a2){
INT64 v2;
INT64 *i;
INT64 *v6;
INT64 *j;
INT64 *v8;
INT64 v9;
INT64 *v10;
INT64 v11;
INT64 v12;
v2 = *a2;
a2[8] = 0i64;
if( v2 )
{
v11 = a2[1] & (-1i64 << (*(_DWORD *)(a1 + 684) & 0x1F));
for( i = (INT64 *)(*(_QWORD *)(a1 + 688)
+ 8i64
* ((37
* (BYTE6(v11)
+ 37
* (BYTE5(v11)
+ 37
* (BYTE4(v11)
+ 37
* (BYTE3(v11) + 37
* (BYTE2(v11) + 37 * (BYTE1(v11) + 37 * ((unsigned __int8)v11 + 11623883)))))))
+ HIBYTE(v11)) & (unsigned int)((*(_DWORD *)(a1 + 684) >> 5) - 1))); (*i & 1) == 0; i = (INT64 *)*i )
{
if( (INT64 *)*i == a2 )
{
*i = *a2;
--*(_DWORD *)(a1 + 680);
break;
}
}
*a2 = 0i64;
}
v6 = a2 + 2;
if( a2[2] )
{
v12 = a2[3] & (-1i64 << (*(_DWORD *)(a1 + 700) & 0x1F));
for( j = (INT64 *)(*(_QWORD *)(a1 + 704)
+ 8i64
* ((37
* (BYTE6(v12)
+ 37
* (BYTE5(v12)
+ 37
* (BYTE4(v12)
+ 37
* (BYTE3(v12) + 37
* (BYTE2(v12) + 37 * (BYTE1(v12) + 37 * ((unsigned __int8)v12 + 11623883)))))))
+ HIBYTE(v12)) & (unsigned int)((*(_DWORD *)(a1 + 700) >> 5) - 1))); (*j & 1) == 0; j = (INT64 *)*j )
{
if( (INT64 *)*j == v6 )
{
*j = *v6;
--*(_DWORD *)(a1 + 696);
break;
}
}
*v6 = 0i64;
}
v8 = a2 + 9;
v9 = a2[9];
if( *(INT64 **)(v9 + 8) != a2 + 9 || (v10 = (INT64 *)a2[10], (INT64 *)*v10 != v8) )
__fastfail(3u);
*v10 = v9;
*(_QWORD *)(v9 + 8) = v10;
a2[10] = (INT64)(a2 + 9);
*v8 = (INT64)v8;
--*(_DWORD *)(a1 + 728);
EtwpCovSampModuleCleanup((INT64)a2);
ExFreePoolWithTag(a2, 0x56777445u);
}Referenced by:
EtwpCovSampContextCleanup