copy_mem: pushl %ebp movl %esp, %ebp pushl %edi pushl %esi pushl %ebx subl $8, %esp movl 8(%ebp), %ecx movl 16(%ebp), %esi movl 12(%ebp), %eax addl %ecx, %esi cmpl %esi, %ecx jae .L7 movl %esi, %ebx subl %ecx, %ebx cmpl $9, %ebx leal 1(%ecx), %edx movl %ebx, -20(%ebp) jbe .L12 movl %eax, %ebx orl %ecx, %ebx andl $3, %ebx jne .L12 leal 4(%ecx), %ebx cmpl %ebx, %eax jbe .L20 .L8: movl -20(%ebp), %edi shrl $2, %edi leal 0(,%edi,4), %ebx testl %ebx, %ebx movl %ebx, -16(%ebp) je .L13 xorl %edx, %edx .p2align 4,,7 .p2align 3 .L6: movl (%ecx,%edx,4), %ebx movl %ebx, (%eax,%edx,4) addl $1, %edx cmpl %edi, %edx jb .L6 movl -16(%ebp), %edx addl -16(%ebp), %eax addl -16(%ebp), %ecx cmpl %edx, -20(%ebp) je .L7 leal 1(%ecx), %edx movzbl (%ecx), %ecx movb %cl, (%eax) addl $1, %eax cmpl %edx, %esi movl %edx, %ecx jbe .L7 .p2align 4,,7 .p2align 3 .L21: addl $1, %edx .L13: movzbl (%ecx), %ecx movb %cl, (%eax) addl $1, %eax cmpl %edx, %esi movl %edx, %ecx ja .L21 .L7: addl $8, %esp popl %ebx popl %esi popl %edi popl %ebp ret .p2align 4,,7 .p2align 3 .L22: addl $1, %edx .L12: movzbl (%ecx), %ecx movb %cl, (%eax) addl $1, %eax cmpl %edx, %esi movl %edx, %ecx ja .L22 addl $8, %esp popl %ebx popl %esi popl %edi popl %ebp ret .p2align 4,,7 .p2align 3 .L20: leal 4(%eax), %ebx cmpl %ebx, %ecx ja .L8 .p2align 4,,2 jmp .L12 .size copy_mem, .-copy_mem .p2align 4,,15