	.file	"148579072.c"
	.intel_syntax noprefix
	.text
	.globl	memmove
	.type	memmove, @function
memmove:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -32[rbp], rdi
	mov	QWORD PTR -40[rbp], rsi
	mov	eax, edx
	mov	r12, QWORD PTR -32[rbp]
	mov	r13, QWORD PTR -40[rbp]
	test	eax, eax
	je	.L23
	cmp	r12, r13
	je	.L23
	mov	rcx, r12
	mov	rdx, r13
	cmp	rcx, rdx
	jnb	.L5
	mov	rdx, r13
	mov	ebx, edx
	mov	rdx, r12
	or	edx, ebx
	mov	edx, edx
	and	edx, 3
	test	rdx, rdx
	je	.L6
	mov	rdx, r12
	xor	edx, ebx
	mov	edx, edx
	and	edx, 3
	test	rdx, rdx
	jne	.L7
	cmp	eax, 3
	ja	.L8
.L7:
	mov	ebx, eax
	jmp	.L9
.L8:
	and	ebx, 3
	mov	edx, ebx
	mov	ecx, 4
	sub	ecx, edx
	mov	ebx, ecx
.L9:
	sub	eax, ebx
.L10:
	mov	rcx, r13
	lea	r13, 1[rcx]
	mov	rdx, r12
	lea	r12, 1[rdx]
	movzx	ecx, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], cl
	sub	ebx, 1
	test	ebx, ebx
	jne	.L10
.L6:
	mov	ebx, eax
	shr	ebx, 2
	test	ebx, ebx
	je	.L11
.L12:
	mov	edx, DWORD PTR 0[r13]
	mov	DWORD PTR [r12], edx
	add	r13, 4
	add	r12, 4
	sub	ebx, 1
	test	ebx, ebx
	jne	.L12
.L11:
	and	eax, 3
	mov	ebx, eax
	test	ebx, ebx
	je	.L4
.L13:
	mov	rdx, r13
	lea	r13, 1[rdx]
	mov	rax, r12
	lea	r12, 1[rax]
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	sub	ebx, 1
	test	ebx, ebx
	jne	.L13
	jmp	.L4
.L5:
	mov	edx, eax
	add	r13, rdx
	mov	edx, eax
	add	r12, rdx
	mov	rdx, r13
	mov	ebx, edx
	mov	rdx, r12
	or	edx, ebx
	mov	edx, edx
	and	edx, 3
	test	rdx, rdx
	je	.L14
	mov	rdx, r12
	xor	edx, ebx
	mov	edx, edx
	and	edx, 3
	test	rdx, rdx
	jne	.L15
	cmp	eax, 4
	ja	.L16
.L15:
	mov	ebx, eax
	jmp	.L17
.L16:
	and	ebx, 3
.L17:
	sub	eax, ebx
.L18:
	sub	r13, 1
	sub	r12, 1
	movzx	edx, BYTE PTR 0[r13]
	mov	BYTE PTR [r12], dl
	sub	ebx, 1
	test	ebx, ebx
	jne	.L18
.L14:
	mov	ebx, eax
	shr	ebx, 2
	test	ebx, ebx
	je	.L19
.L20:
	sub	r13, 4
	sub	r12, 4
	mov	edx, DWORD PTR 0[r13]
	mov	DWORD PTR [r12], edx
	sub	ebx, 1
	test	ebx, ebx
	jne	.L20
.L19:
	and	eax, 3
	mov	ebx, eax
	test	ebx, ebx
	je	.L24
.L21:
	sub	r13, 1
	sub	r12, 1
	movzx	eax, BYTE PTR 0[r13]
	mov	BYTE PTR [r12], al
	sub	ebx, 1
	test	ebx, ebx
	jne	.L21
	jmp	.L24
.L23:
	nop
	jmp	.L4
.L24:
	nop
.L4:
	mov	rax, QWORD PTR -32[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	memmove, .-memmove
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"148579072.c"
	.text
	.align	2
	.global	memmove
	.syntax unified
	.arm
	.fpu softvfp
	.type	memmove, %function
memmove:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, fp}
	add	fp, sp, #12
	sub	sp, sp, #8
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, r2
	ldr	r5, [fp, #-16]
	ldr	r6, [fp, #-20]
	cmp	r3, #0
	beq	.L23
	cmp	r5, r6
	beq	.L23
	mov	r1, r5
	mov	r2, r6
	cmp	r1, r2
	bcs	.L5
	mov	r4, r6
	mov	r2, r5
	orr	r2, r4, r2
	and	r2, r2, #3
	cmp	r2, #0
	beq	.L6
	mov	r2, r5
	eor	r2, r2, r4
	and	r2, r2, #3
	cmp	r2, #0
	bne	.L7
	cmp	r3, #3
	bhi	.L8
.L7:
	mov	r4, r3
	b	.L9
.L8:
	and	r2, r4, #3
	rsb	r4, r2, #4
.L9:
	sub	r3, r3, r4
.L10:
	mov	r1, r6
	add	r6, r1, #1
	mov	r2, r5
	add	r5, r2, #1
	ldrb	r1, [r1]	@ zero_extendqisi2
	strb	r1, [r2]
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L10
.L6:
	lsr	r4, r3, #2
	cmp	r4, #0
	beq	.L11
.L12:
	ldr	r2, [r6]
	str	r2, [r5]
	add	r6, r6, #4
	add	r5, r5, #4
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L12
.L11:
	and	r4, r3, #3
	cmp	r4, #0
	beq	.L4
.L13:
	mov	r2, r6
	add	r6, r2, #1
	mov	r3, r5
	add	r5, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L13
	b	.L4
.L5:
	add	r6, r6, r3
	add	r5, r5, r3
	mov	r4, r6
	mov	r2, r5
	orr	r2, r4, r2
	and	r2, r2, #3
	cmp	r2, #0
	beq	.L14
	mov	r2, r5
	eor	r2, r2, r4
	and	r2, r2, #3
	cmp	r2, #0
	bne	.L15
	cmp	r3, #4
	bhi	.L16
.L15:
	mov	r4, r3
	b	.L17
.L16:
	and	r4, r4, #3
.L17:
	sub	r3, r3, r4
.L18:
	sub	r6, r6, #1
	sub	r5, r5, #1
	ldrb	r2, [r6]	@ zero_extendqisi2
	strb	r2, [r5]
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L18
.L14:
	lsr	r4, r3, #2
	cmp	r4, #0
	beq	.L19
.L20:
	sub	r6, r6, #4
	sub	r5, r5, #4
	ldr	r2, [r6]
	str	r2, [r5]
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L20
.L19:
	and	r4, r3, #3
	cmp	r4, #0
	beq	.L24
.L21:
	sub	r6, r6, #1
	sub	r5, r5, #1
	ldrb	r3, [r6]	@ zero_extendqisi2
	strb	r3, [r5]
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L21
	b	.L24
.L23:
	nop
	b	.L4
.L24:
	nop
.L4:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, r6, fp}
	bx	lr
	.size	memmove, .-memmove
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
