los ejecutables nativos en general no son descompilables más alla de lenguaje ensamblador, más aún de C/C++, el codigo no se guarda en formato texto dentro del lenguaje ensamblador, solo queda es lo que el compilador convirtió del texto a binario... y esto tampoco se puede traducir 1 a 1, porque los ensambladores usualmente llevan a cabo tareas de optimización... es decir
int q=0;
int b = 10;
for(int i = 0; i < b; i++){
q += sin(b-i)
}
puede en ensablador ser casi identico a
int sumatoria_coseno_inverso;
int manejador = 10
while(manejador){
sumatoria_coseno_inverso += sin(manejador)
manejador--;
}
ya que la optimización dará el camino más optimo para hacerlo
sin contar que las funciones y variables tampoco tendrán nombre, eso no se guarda cuando se compila, eso es de uso meramente humano...
así que probablemente el código si lo intenta armar un programa sea básicamente ilegible y con secciones en opcode
lo más normal y racional es modificar el binario en ensamblador y listo