HalpDeleteSecondaryIcEntry
NTSTATUS __stdcall HalpDeleteSecondaryIcEntry(PVOID P){
NTSTATUS v1;
_QWORD *v3;
PVOID *v4;
BYTE v5;
BYTE a2;
v1 = 0;
a2 = 0;
if( _InterlockedCompareExchange((volatile signed __int32 *)P + 29, 0, 0) > 0 )
return -1073741823;
HalpAcquireSecondaryIcEntryExclusive((volatile INT32 *)P, &a2);
v3 = *(_QWORD **)P;
if( *(PVOID *)(*(_QWORD *)P + 8i64) != P || (v4 = (PVOID *)*((_QWORD *)P + 1), *v4 != P) )
__fastfail(3u);
v5 = a2;
*v4 = v3;
v3[1] = v4;
HalpReleaseSecondaryIcEntryExclusive((INT64)P, v5);
ObfDereferenceObjectWithTag(*((PVOID *)P + 6), 0x746C6644ui64);
ExFreePoolWithTag(P, 0x536C6148u);
return v1;
}Referenced by:
HalpUnregisterSecondaryIcInterface