RtlInternEntryDereference
INT64 __fastcall RtlInternEntryDereference(INT64 a1, INT64 a2){
INT64 result;
_QWORD *i;
__int64 v6;
result = _InterlockedDecrement64((volatile signed __int64 *)(a2 + 16));
if( result <= 0 )
{
if( result )
__fastfail(0xEu);
(*(void(__fastcall **)(INT64, _QWORD))(*(_QWORD *)(a1 + 16) + 16i64))(a1, 0i64);
v6 = *(_QWORD *)(a2 + 8) & (-1i64 << (*(_DWORD *)(a1 + 4) & 0x1F));
for( i = (_QWORD *)(*(_QWORD *)(a1 + 8)
+ 8i64
* ((37
* (BYTE6(v6)
+ 37
* (BYTE5(v6)
+ 37
* (BYTE4(v6)
+ 37
* (BYTE3(v6) + 37 * (BYTE2(v6) + 37 * (BYTE1(v6) + 37 * ((unsigned __int8)v6 + 11623883)))))))
+ HIBYTE(v6)) & (unsigned int)((*(_DWORD *)(a1 + 4) >> 5) - 1))); (*i & 1) == 0; i = (_QWORD *)*i )
{
if( *i == a2 )
{
*i = *(_QWORD *)a2;
--*(_DWORD *)a1;
*(_QWORD *)a2 |= 0x8000000000000002ui64;
break;
}
}
(*(void(__fastcall **)(INT64, _QWORD))(*(_QWORD *)(a1 + 16) + 24i64))(a1, 0i64);
return(*(__int64(__fastcall **)(INT64, INT64))(*(_QWORD *)(a1 + 16) + 8i64))(a1, a2);
}
return result;
}Referenced by:
PoEnergyContextCleanup
PopEtAggregateKeyCleanup
PopEtAppIdDereference
PopEtEnergyContextSetState
PopEtStringSet