PipDeleteBindingIds

VOID __fastcall PipDeleteBindingIds(INT8 *a1, INT64 a2, UINT64 a3){
  INT8 *v3; 
  UNICODE_STRING *v4; 
  UNICODE_STRING **Buffer; 
  v3 = a1 + 56;
  while( *(INT8 **)v3 != v3 )
  {
    v4 = (UNICODE_STRING *)*((_QWORD *)v3 + 1);
    if( *(INT8 **)&v4->Length != v3 || (Buffer = (UNICODE_STRING **)v4->Buffer, *Buffer != v4) )
      __fastfail(3u);
    *((_QWORD *)v3 + 1) = Buffer;
    *Buffer = (UNICODE_STRING *)v3;
    PipFreeBindingId(v4);
  }
}

Referenced by:

PipConvertResolutionsToReservations
PipDeleteDependencyNode