.386p
locals
public STRCAT
_TEXT segment byte public use32 'CODE'
assume cs:_TEXT
STRCAT:
push esi edi
cld
mov edi,[esp+4+8+04h]
mov edx,edi
or ecx,-1
xor al,al
repne scasb
lea esi,[edi-1]
mov edi,[esp+4+8+00h]
or ecx,-1
repne scasb
not ecx
sub edi,ecx
mov eax,edx
xchg edi,esi
mov edx,ecx
shr ecx,2
rep movsd
mov ecx,edx
and ecx,3
rep movsb
pop edi esi
ret 08h
_TEXT ends
end