CmpRemoveFromSecurityCache
void __fastcall CmpRemoveFromSecurityCache(__int64 a1, unsigned int a2){
unsigned int v3;
__int64 v4;
__int64 v5;
__int64 v6;
_QWORD *v7;
unsigned int v8;
v8 = 0;
if( CmpFindSecurityCellCacheIndex(a1, a2, &v8) )
{
v3 = v8;
v4 = 16i64 * v8;
v5 = *(_QWORD *)(*(_QWORD *)(a1 + 1880) + v4 + 8);
v6 = *(_QWORD *)(v5 + 8);
if( *(_QWORD *)(v6 + 8) != v5 + 8 || (v7 = *(_QWORD **)(v5 + 16), *v7 != v5 + 8) )
__fastfail(3u);
*v7 = v6;
*(_QWORD *)(v6 + 8) = v7;
(*(void(__fastcall **)(__int64, _QWORD))(a1 + 32))(v5, (unsigned int)(*(_DWORD *)(v5 + 24) + 32));
memmove(
(UINT8 *)(v4 + *(_QWORD *)(a1 + 1880)),
(UINT8 *)(*(_QWORD *)(a1 + 1880) + 16i64 * (v3 + 1)),
16i64 * (*(_DWORD *)(a1 + 1864) - v3 - 1));
--*(_DWORD *)(a1 + 1864);
}
}Referenced by:
CmpRemoveSecurityCellList