As you rightfully notice, if this procedure is called using call, then [ebp+4]this is the return address. This does not mean that it is a bad idea.
, call. " ", , , call. x. x 32- , x x + 4. , eax. , x + 8 [ebp+4], , ret x + 8. , , :
call yourroutine
dd 56478634
dd 18943675
mov ebx, eax ; an example instruction
call mov, eax 37534959 (, 18943675 56478634).
, eax , ( ). , ( - ).
, jmp. [ebp+4] , . ( y), y y + 4, eax, y + 8 [ebp+4]. , ret , , . , call; , ret . :
push foobar
jmp yourroutine
... ; unreached code
foobar:
dd 56478634
dd 18943675
mov ebx, eax ; an example instruction
eax. . , , , , ( , ).