	.file	"37639006.c"
	.intel_syntax noprefix
	.text
	.local	qcompar
	.comm	qcompar,8,8
	.globl	qsort
	.type	qsort, @function
qsort:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	cmp	QWORD PTR -16[rbp], 0
	je	.L4
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR qcompar[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 1
	imul	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	qsort1
	jmp	.L1
.L4:
	nop
.L1:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	qsort, .-qsort
	.type	qsort1, @function
qsort1:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 40
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rbx, rdx
.L19:
	mov	rax, QWORD PTR -80[rbp]
	cmp	rax, QWORD PTR -72[rbp]
	jbe	.L21
	mov	r12, QWORD PTR -72[rbp]
	mov	r15, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -80[rbp]
	sub	rax, QWORD PTR -72[rbp]
	add	rax, rbx
	lea	rcx, [rbx+rbx]
	mov	edx, 0
	div	rcx
	imul	rax, rbx
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	r13, [rdx+rax]
	mov	r14, r13
.L8:
	jmp	.L9
.L12:
	cmp	DWORD PTR -52[rbp], 0
	jns	.L10
	add	r12, rbx
	jmp	.L9
.L10:
	mov	rax, rbx
	neg	rax
	add	r14, rax
	mov	rdx, rbx
	mov	rsi, r14
	mov	rdi, r12
	call	qexchange
.L9:
	cmp	r12, r14
	jnb	.L13
	mov	rax, QWORD PTR qcompar[rip]
	mov	rsi, r14
	mov	rdi, r12
	call	rax
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jle	.L12
	jmp	.L13
.L17:
	mov	rax, QWORD PTR qcompar[rip]
	mov	rsi, r13
	mov	rdi, r15
	call	rax
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jns	.L14
	cmp	r12, r14
	jnb	.L15
	mov	rdx, rbx
	mov	rsi, r15
	mov	rdi, r12
	call	qexchange
	add	r12, rbx
	mov	rax, rbx
	neg	rax
	add	r15, rax
	jmp	.L8
.L15:
	add	r13, rbx
	mov	rcx, rbx
	mov	rdx, r15
	mov	rsi, r13
	mov	rdi, r12
	call	q3exchange
	add	r14, rbx
	mov	r12, r14
	jmp	.L13
.L14:
	cmp	DWORD PTR -52[rbp], 0
	jne	.L16
	add	r13, rbx
	mov	rdx, rbx
	mov	rsi, r13
	mov	rdi, r15
	call	qexchange
	jmp	.L13
.L16:
	mov	rax, rbx
	neg	rax
	add	r15, rax
.L13:
	cmp	r15, r13
	ja	.L17
	cmp	r12, r14
	jnb	.L18
	mov	rax, rbx
	neg	rax
	add	r14, rax
	mov	rcx, rbx
	mov	rdx, r12
	mov	rsi, r14
	mov	rdi, r15
	call	q3exchange
	mov	rax, rbx
	neg	rax
	add	r13, rax
	mov	r15, r13
	jmp	.L8
.L18:
	mov	rax, rbx
	neg	rax
	lea	rcx, [r14+rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	qsort1
	lea	rax, 0[r13+rbx]
	mov	QWORD PTR -72[rbp], rax
	jmp	.L19
.L21:
	nop
	add	rsp, 40
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	qsort1, .-qsort1
	.type	qexchange, @function
qexchange:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	rax, rdi
	mov	rcx, rsi
	jmp	.L23
.L24:
	movzx	esi, BYTE PTR [rax]
	movsx	ebx, sil
	mov	rsi, rax
	lea	rax, 1[rsi]
	movzx	edi, BYTE PTR [rcx]
	mov	BYTE PTR [rsi], dil
	mov	rsi, rcx
	lea	rcx, 1[rsi]
	mov	edi, ebx
	mov	BYTE PTR [rsi], dil
.L23:
	mov	rsi, rdx
	lea	rdx, -1[rsi]
	test	rsi, rsi
	jne	.L24
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	qexchange, .-qexchange
	.type	q3exchange, @function
q3exchange:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	rax, rdi
	jmp	.L26
.L27:
	movzx	edi, BYTE PTR [rax]
	movsx	ebx, dil
	mov	rdi, rax
	lea	rax, 1[rdi]
	movzx	r8d, BYTE PTR [rdx]
	mov	BYTE PTR [rdi], r8b
	mov	rdi, rdx
	lea	rdx, 1[rdi]
	movzx	r8d, BYTE PTR [rsi]
	mov	BYTE PTR [rdi], r8b
	mov	rdi, rsi
	lea	rsi, 1[rdi]
	mov	r8d, ebx
	mov	BYTE PTR [rdi], r8b
.L26:
	mov	rdi, rcx
	lea	rcx, -1[rdi]
	test	rdi, rdi
	jne	.L27
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	q3exchange, .-q3exchange
	.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	"37639006.c"
	.text
	.local	qcompar
	.comm	qcompar,4,4
	.align	2
	.global	qsort
	.syntax unified
	.arm
	.fpu softvfp
	.type	qsort, %function
qsort:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L4
	ldr	r2, .L5
	ldr	r3, [fp, #-20]
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	mul	r3, r2, r3
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	qsort1
	b	.L1
.L4:
	nop
.L1:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L6:
	.align	2
.L5:
	.word	qcompar
	.size	qsort, .-qsort
	.global	__aeabi_uidiv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	qsort1, %function
qsort1:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #20
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r4, r2
.L21:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bls	.L23
	ldr	r6, [fp, #-40]
	ldr	r8, [fp, #-44]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	add	r3, r4, r3
	lsl	r2, r4, #1
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mul	r3, r4, r3
	ldr	r2, [fp, #-40]
	add	r7, r2, r3
	mov	r5, r7
.L10:
	b	.L11
.L14:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L12
	add	r6, r6, r4
	b	.L11
.L12:
	rsb	r3, r4, #0
	add	r5, r5, r3
	mov	r2, r4
	mov	r1, r5
	mov	r0, r6
	bl	qexchange
.L11:
	cmp	r6, r5
	bcs	.L15
	ldr	r3, .L24
	ldr	r3, [r3]
	mov	r1, r5
	mov	r0, r6
	blx	r3
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	ble	.L14
	b	.L15
.L19:
	ldr	r3, .L24
	ldr	r3, [r3]
	mov	r1, r7
	mov	r0, r8
	blx	r3
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L16
	cmp	r6, r5
	bcs	.L17
	mov	r2, r4
	mov	r1, r8
	mov	r0, r6
	bl	qexchange
	add	r6, r6, r4
	rsb	r3, r4, #0
	add	r8, r8, r3
	b	.L10
.L17:
	add	r7, r7, r4
	mov	r3, r4
	mov	r2, r8
	mov	r1, r7
	mov	r0, r6
	bl	q3exchange
	add	r5, r5, r4
	mov	r6, r5
	b	.L15
.L16:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L18
	add	r7, r7, r4
	mov	r2, r4
	mov	r1, r7
	mov	r0, r8
	bl	qexchange
	b	.L15
.L18:
	rsb	r3, r4, #0
	add	r8, r8, r3
.L15:
	cmp	r8, r7
	bhi	.L19
	cmp	r6, r5
	bcs	.L20
	rsb	r3, r4, #0
	add	r5, r5, r3
	mov	r3, r4
	mov	r2, r6
	mov	r1, r5
	mov	r0, r8
	bl	q3exchange
	rsb	r3, r4, #0
	add	r7, r7, r3
	mov	r8, r7
	b	.L10
.L20:
	rsb	r3, r4, #0
	add	r3, r5, r3
	mov	r2, r4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	qsort1
	add	r3, r7, r4
	str	r3, [fp, #-40]
	b	.L21
.L23:
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L25:
	.align	2
.L24:
	.word	qcompar
	.size	qsort1, .-qsort1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	qexchange, %function
qexchange:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, fp}
	add	fp, sp, #4
	mov	r3, r0
	mov	r0, r2
	b	.L27
.L28:
	ldrb	r2, [r3]	@ zero_extendqisi2
	mov	r4, r2
	mov	r2, r3
	add	r3, r2, #1
	ldrb	ip, [r1]	@ zero_extendqisi2
	strb	ip, [r2]
	mov	r2, r1
	add	r1, r2, #1
	and	ip, r4, #255
	strb	ip, [r2]
.L27:
	mov	r2, r0
	sub	r0, r2, #1
	cmp	r2, #0
	bne	.L28
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{r4, fp}
	bx	lr
	.size	qexchange, .-qexchange
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	q3exchange, %function
q3exchange:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	mov	ip, r3
	b	.L30
.L31:
	ldrb	r3, [r0]	@ zero_extendqisi2
	mov	r4, r3
	mov	r3, r0
	add	r0, r3, #1
	ldrb	lr, [r2]	@ zero_extendqisi2
	strb	lr, [r3]
	mov	r3, r2
	add	r2, r3, #1
	ldrb	lr, [r1]	@ zero_extendqisi2
	strb	lr, [r3]
	mov	r3, r1
	add	r1, r3, #1
	and	lr, r4, #255
	strb	lr, [r3]
.L30:
	mov	r3, ip
	sub	ip, r3, #1
	cmp	r3, #0
	bne	.L31
	nop
	nop
	pop	{r4, fp, pc}
	.size	q3exchange, .-q3exchange
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
