Относительно типа вызова, числа параметров считаем офсет у стека и в самом начале функции через ассемблер в стеке по просчитанному офсету определяем адрес возврата.