Are you using a lot of pushes/pops? If not, you can use esp for local vars and ebp for passed in parameters, like:
%define LocalVar1 [esp] ; 128bit value for SSE
%define LocalVar2 [esp + 16] ; A second value for SSE
%define Param1 [ebp + 4] ; Passed in 32bit var1
%define Param2 [ebp + 8] ; Passed in 32bit var2
MyFunction:
push ebp
mov ebp, esp
sub esp, BytesOfLocalVars ; Make sure we have the space we need (32 for this sample)
and esp, ~0x0F ; Align to 16
; Access your local vars with LocalVar1, LocalVar2 (esp relative)
; Access your parameters with Param1 and Param2
mov esp, ebp
pop ebp
ret
Sorry for any typos, I'm just doing this off the top of my head...