; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

    .486
    .model flat, stdcall  ; 32 bit memory model
    option casemap :none  ; case sensitive

    szLen PROTO :DWORD

    .code

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

align 4

szRight proc src:DWORD,dst:DWORD,ln:DWORD

    push edi

    invoke szLen,src        ; get source length
    sub eax, ln             ; sub required length from it
    mov edx, src            ; source address in EDX
    add edx, eax            ; add difference to source address
    mov edi, dst            ; destination address in EDI
    xor ecx, ecx            ; zero index

  @@:
    mov al, [edx+ecx]       ; copy bytes
    mov [edi+ecx], al
    add ecx, 1
    test al, al             ; exit after zero written
    jne @B

    pop edi
    mov eax, dst

    ret

szRight endp

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

end