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