As I said before, you don't initialise parameters and it can be anything there.
Here is an example with initialised src and dest which works as expected:
.686
.MODEL FLAT, C
option casemap:none
OPTION STACKBASE:ESP
.data
src dd "ABCD"
dest dd 0
.code
sub2 proc private dest3, src3
mov ecx, src3
mov edx, dest3
mov eax, dword ptr [ecx]
mov dword ptr [edx], eax
ret
sub2 endp
proc1 proc public dest1 : ptr, src1 : ptr
local bob:DWORD
local dob:DWORD
lea eax,bob
mov dob,eax
invoke sub2, ADDR dest, ADDR src
ret
proc1 endp
end
it produces:
--- AW32.asm -------------------------------------------------------------------
14: mov ecx, src3
01331010 8B 4C 24 08 mov ecx,dword ptr [src3]
15: mov edx, dest3
01331014 8B 54 24 04 mov edx,dword ptr [dest3]
16: mov eax, dword ptr [ecx]
01331018 8B 01 mov eax,dword ptr [ecx]
17: mov dword ptr [edx], eax
0133101A 89 02 mov dword ptr [edx],eax
18:
19: ret
0133101C C3 ret
20: sub2 endp
21:
22: proc1 proc public dest1 : ptr, src1 : ptr
0133101D 83 EC 08 sub esp,8
23: local bob:DWORD
24: local dob:DWORD
25: lea eax,bob
01331020 8D 44 24 04 lea eax,[bob]
26: mov dob,eax
01331024 89 04 24 mov dword ptr [esp],eax
27: invoke sub2, ADDR dest, ADDR src
01331027 68 00 40 33 01 push 1334000h
0133102C 68 04 40 33 01 push 1334004h
01331031 E8 DA FF FF FF call sub2 (01331010h)
01331036 83 C4 08 add esp,8
28: ret
01331039 83 C4 08 add esp,8
0133103C C3 ret
--- No source file -------------------------------------------------------------