Создание инсталлятора

Здраствуйте, мне нужно создать инсталлятор, который будет распаковывать файлы в несколько папок, и есть несколько требований для этого.

1) чтобы можно было создавать папку в нужной директории

2) чтобы после выбора пользователем директории установки проверялось на наличие некоторого файла внутри этой папки

3) чтобы можно было создавать группы - компоненты, которые будут распаковываться

3) чтобы можно было легко редактировать шаги установки, т.е. например для начала показывался диалог с информацией, потом путь установки, выбор компонентов, сама установка, еще 1 диалог с информацией, завершающий диалог.

4) чтобы создавалась папка, внутри нее перемещались заданные файлы, а на их место распаковывались мои.

5) по возможности еще редактирование ini файла при установке

Помогите пожалуйста найти такую прогу, которая сможет делать эти действия. Понимаю что их куча в поисковике, но из-за этого не пойму какую скачивать.