All pastes #952937 Raw Edit

Anonymous

public text v1 · immutable
#952937 ·published 2008-03-22 17:34 UTC
rendered paste body
ENTRY(copystr)
        pushl   %esi
        pushl   %edi

        movl    12(%esp),%esi                   /* %esi = from */
        movl    16(%esp),%edi                   /* %edi = to */
        movl    20(%esp),%edx                   /* %edx = maxlen */
        incl    %edx
        cld
1:
        decl    %edx
        jz      4f
        lodsb
        stosb
        orb     %al,%al
        jnz     1b

        /* Success -- 0 byte reached */
        decl    %edx
        xorl    %eax,%eax
        jmp     6f
4:
        /* edx is zero -- return ENAMETOOLONG */
        movl    $ENAMETOOLONG,%eax

6:
        /* set *lencopied and return %eax */
        movl    20(%esp),%ecx
        subl    %edx,%ecx
        movl    24(%esp),%edx
        testl   %edx,%edx
        jz      7f
        movl    %ecx,(%edx)
7:
        popl    %edi
        popl    %esi
        ret
END(copystr)