Банальный перехват до ret с несколькими командами на твою функцию в DLL, в которой реализуется двухуровневый обработчик:
1) Уровень асма
PUSHAD
PUSHFD
...получить параметры
...вызвать высокоуровневый обработчик
POPFD
POPAD
...выполнить затёртые команды, что были до RET
RET