CmDeleteInterfaceClass

NTSTATUS __stdcall CmDeleteInterfaceClass(HPNPCTX *hPnpCtx, WCHAR *ClassGuid, UINT64 Flags){
  int v4; 
  __int64(__fastcall *v6)(HPNPCTX *, WCHAR *, __int64); 
  int v7; 
  NTSTATUS v8; 
  NTSTATUS v9; 
  int v10; 
  int v11; 
  NTSTATUS v12; 
  UINT64 v14[11]; 

  v4 = Flags;
  memset(v14, 0i64, sizeof(v14));
  v6 = (__int64(__fastcall *)(HPNPCTX *, WCHAR *, __int64))*((_QWORD *)hPnpCtx + 63);
  LODWORD(v14[2]) = v4;
  if( v6 )
  {
    v7 = v6(hPnpCtx, ClassGuid, 4i64);
    if( v7 == -1073741822 )
    {
      v6 = 0i64;
    }
    else
    {
      if( v7 == -1073741536 )
        return v14[0];
      if( v7 )
        return -1073741595;
    }
  }
  v8 = CmDeleteInterfaceClassWorker(hPnpCtx, ClassGuid, LODWORD(v14[2]));
  v9 = v8;
  if( !v6 )
    return v9;
  LODWORD(v14[0]) = v8;
  v10 = v6(hPnpCtx, ClassGuid, 4i64);
  v11 = v10;
  if( v10 == -1073741822 )
    return v9;
  if( v10 == -1073741536 )
    return v14[0];
  v12 = v9;
  if( v11 )
    return -1073741595;
  return v12;
}

Referenced by:

PiCMDeleteClassKey
PnpDispatchInterfaceClass