С чего начать изучение дизассемблирования и реверс-инжиниринга?
Держись подальше от этой затеи. Есть хозяева бизнеса - вот им и решать, писать новое или ломать старое. Ты просто прикинь, что будет, если ты накосячишь, "исправляя ошибки и внося изменения".
В целом сколь-нибудь значительного рынка "дизассемблирования и реверс-инжиниринга" нет, и карьерного потенциала эти навыки тебе не прибавят.
А уж если так припекает, что просто сил нет - научись писать на ассемблере, без этого - никак.
Добавочка к ответу @longclaps
Асемблер
+ устройство операционных систем в общем и целом
+ устройство конкретно той под которую написан комплекс
+ если комплекс юзает драйвера, навыки написания и реверса драйверов
+ умение пользоваться специальными прогами типа Olly, IDA, Gidra и тд(соответственно нужны знания из всех предыдущих пунктов)
+ знание какого-нибудь Python для автоматизации
Иногда что бы восстановить алгоритм нужно знать как компиляторы переваривают исходники. Т.к. то что пишет программист и то что потом получается на выходе не всегда одно и тоже :)Главное не проявляйте инициативу, иначе рискуете нажить большой комок проблем. Как уже было сказанно решать владельцам,а не вам.
Реверс качать стоит если манит эта сфера и хочеться работать в иб конторах типа каспера. А так рынок очень маленький и денег меньше, вкатится сложнее. 
*(по сравнению с разработкой)