; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

    .486
    .model flat, stdcall  ; 32 bit memory model
    option casemap :none  ; case sensitive

    .code

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

align 4

szLeft proc src:DWORD,dst:DWORD,ln:DWORD

    push edi

    mov ecx, ln             ; length in ECX
    mov edx, src            ; source address
    add edx, ecx            ; add required length
    mov edi, dst            ; destination address
    add edi, ecx            ; this also sets the terminator position
    neg ecx                 ; invert sign

  @@:
    mov al, [edx+ecx]
    mov [edi+ecx], al
    add ecx, 1
    jnz @B

    mov BYTE PTR [edi], 0   ; write terminator

    pop edi
    mov eax, dst

    ret

szLeft endp

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

end

