Der Rückgabewert liegt im eax Register, in seltenen Fällen (fremdDlls) werden Rückgabewerte auch auf den Stack gepackt - sehr unempfohlen wenn Du mich fragst...
Denke auch dran das Du von ausgehen musst das Dir nach dem Invoke die Registerwerte zerschossen sind - pushe sie deshalb vorm Invoke wenn Du sie nachher noch brauchen solltest.