	.file	"563914.c"
	.intel_syntax noprefix
	.text
	.local	a0
	.comm	a0,8,8
	.local	ac
	.comm	ac,8,8
	.local	aa
	.comm	aa,8,8
	.local	v0
	.comm	v0,8,8
	.local	vc
	.comm	vc,8,8
	.local	va
	.comm	va,8,8
	.local	vv
	.comm	vv,8,8
	.data
	.align 8
	.type	polygon, @object
	.size	polygon, 8
polygon:
	.quad	4257300000
	.text
	.type	next_a, @function
next_a:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR aa[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR a0[rip]
	add	rax, 2
	mov	QWORD PTR a0[rip], rax
	mov	rdx, QWORD PTR ac[rip]
	mov	rax, QWORD PTR polygon[rip]
	add	rax, rdx
	mov	QWORD PTR ac[rip], rax
	mov	rax, QWORD PTR ac[rip]
	mov	rdx, QWORD PTR a0[rip]
	sub	rax, rdx
	mov	rcx, rax
	mov	rax, QWORD PTR aa[rip]
	add	rax, rcx
	mov	QWORD PTR aa[rip], rax
	mov	rax, QWORD PTR aa[rip]
	cmp	QWORD PTR -8[rbp], rax
	setb	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	next_a, .-next_a
	.type	next_v, @function
next_v:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vv[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR v0[rip]
	add	rax, 2
	mov	QWORD PTR v0[rip], rax
	mov	rdx, QWORD PTR vc[rip]
	mov	rax, QWORD PTR polygon[rip]
	add	rax, rdx
	mov	QWORD PTR vc[rip], rax
	mov	rax, QWORD PTR vc[rip]
	mov	rdx, QWORD PTR v0[rip]
	sub	rax, rdx
	mov	rcx, rax
	mov	rax, QWORD PTR va[rip]
	add	rax, rcx
	mov	QWORD PTR va[rip], rax
	mov	rdx, QWORD PTR vv[rip]
	mov	rax, QWORD PTR va[rip]
	add	rax, rdx
	mov	QWORD PTR vv[rip], rax
	mov	rax, QWORD PTR vv[rip]
	cmp	QWORD PTR -8[rbp], rax
	setb	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	next_v, .-next_v
	.section	.rodata
.LC0:
	.string	"CANNONBALL NUMBERS"
	.align 8
.LC1:
	.string	"List all N-polygon pyramidal numbers which are N-polygonal"
	.align 8
.LC2:
	.string	"where N >= 3 and any number <= %llu\n"
.LC3:
	.string	"[%llu]\n"
.LC4:
	.string	"%llu:"
.LC5:
	.string	" %llu"
.LC6:
	.string	" (%i)\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.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	rax, QWORD PTR polygon[rip]
	add	rax, 1
	mov	QWORD PTR -8[rbp], rax
	lea	rdi, .LC0[rip]
	call	puts@PLT
	lea	rdi, .LC1[rip]
	call	puts@PLT
	mov	rsi, -1
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	jmp	.L6
.L21:
	mov	rcx, QWORD PTR polygon[rip]
	mov	rax, rcx
	shr	rax, 5
	movabs	rdx, 755578637259143235
	mul	rdx
	mov	rax, rdx
	shr	rax, 7
	imul	rdx, rax, 100000
	mov	rax, rcx
	sub	rax, rdx
	test	rax, rax
	jne	.L7
	mov	rax, QWORD PTR polygon[rip]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
.L7:
	mov	QWORD PTR v0[rip], 1
	mov	rax, QWORD PTR v0[rip]
	mov	QWORD PTR a0[rip], rax
	mov	rax, QWORD PTR polygon[rip]
	mov	QWORD PTR va[rip], rax
	mov	rax, QWORD PTR va[rip]
	mov	QWORD PTR aa[rip], rax
	mov	rax, QWORD PTR aa[rip]
	mov	QWORD PTR vc[rip], rax
	mov	rax, QWORD PTR vc[rip]
	mov	QWORD PTR ac[rip], rax
	mov	rax, QWORD PTR polygon[rip]
	add	rax, 1
	mov	QWORD PTR vv[rip], rax
	mov	DWORD PTR -16[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L8
.L12:
	call	next_a
	mov	DWORD PTR -20[rbp], eax
.L10:
	mov	rdx, QWORD PTR aa[rip]
	mov	rax, QWORD PTR vv[rip]
	cmp	rdx, rax
	jnb	.L13
	cmp	DWORD PTR -20[rbp], 0
	je	.L13
	cmp	DWORD PTR -16[rbp], 0
	jne	.L12
	jmp	.L13
.L14:
	call	next_v
	mov	DWORD PTR -16[rbp], eax
.L13:
	mov	rdx, QWORD PTR vv[rip]
	mov	rax, QWORD PTR aa[rip]
	cmp	rdx, rax
	jnb	.L9
	cmp	DWORD PTR -16[rbp], 0
	je	.L9
	cmp	DWORD PTR -20[rbp], 0
	jne	.L14
.L9:
	mov	rdx, QWORD PTR aa[rip]
	mov	rax, QWORD PTR vv[rip]
	cmp	rdx, rax
	je	.L15
	cmp	DWORD PTR -16[rbp], 0
	je	.L15
	cmp	DWORD PTR -20[rbp], 0
	jne	.L10
.L15:
	mov	rdx, QWORD PTR aa[rip]
	mov	rax, QWORD PTR vv[rip]
	cmp	rdx, rax
	jne	.L8
	cmp	DWORD PTR -12[rbp], 0
	jne	.L17
	mov	rax, QWORD PTR polygon[rip]
	mov	rsi, rax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
.L17:
	mov	rax, QWORD PTR vv[rip]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	call	next_a
	mov	DWORD PTR -20[rbp], eax
	add	DWORD PTR -12[rbp], 1
.L8:
	cmp	DWORD PTR -16[rbp], 0
	je	.L18
	cmp	DWORD PTR -20[rbp], 0
	jne	.L9
.L18:
	cmp	DWORD PTR -12[rbp], 0
	je	.L20
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
.L20:
	mov	rax, QWORD PTR polygon[rip]
	lea	rdx, -1[rax]
	mov	QWORD PTR polygon[rip], rdx
	mov	QWORD PTR -8[rbp], rax
.L6:
	mov	rax, QWORD PTR polygon[rip]
	cmp	QWORD PTR -8[rbp], rax
	ja	.L21
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	main, .-main
	.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	"563914.c"
	.text
	.local	a0
	.comm	a0,8,8
	.local	ac
	.comm	ac,8,8
	.local	aa
	.comm	aa,8,8
	.local	v0
	.comm	v0,8,8
	.local	vc
	.comm	vc,8,8
	.local	va
	.comm	va,8,8
	.local	vv
	.comm	vv,8,8
	.data
	.align	3
	.type	polygon, %object
	.size	polygon, 8
polygon:
	.word	-37667296
	.word	0
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_a, %function
next_a:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #12
	ldr	r1, .L3
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r1, .L3+4
	ldmia	r1, {r0-r1}
	adds	r4, r0, #2
	adc	r5, r1, #0
	ldr	r1, .L3+4
	stm	r1, {r4-r5}
	ldr	r1, .L3+8
	ldmia	r1, {r4-r5}
	ldr	r1, .L3+12
	ldmia	r1, {r0-r1}
	adds	r8, r4, r0
	adc	r9, r5, r1
	ldr	r1, .L3+8
	stm	r1, {r8-r9}
	ldr	r1, .L3+8
	ldmia	r1, {r4-r5}
	ldr	r1, .L3+4
	ldmia	r1, {r0-r1}
	subs	r2, r4, r0
	sbc	r3, r5, r1
	ldr	r1, .L3
	ldmia	r1, {r0-r1}
	adds	r6, r2, r0
	adc	r7, r3, r1
	ldr	r3, .L3
	stm	r3, {r6-r7}
	ldr	r3, .L3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L4:
	.align	2
.L3:
	.word	aa
	.word	a0
	.word	ac
	.word	polygon
	.size	next_a, .-next_a
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_v, %function
next_v:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #20
	ldr	r1, .L7
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r1, .L7+4
	ldmia	r1, {r0-r1}
	adds	r4, r0, #2
	adc	r5, r1, #0
	ldr	r1, .L7+4
	stm	r1, {r4-r5}
	ldr	r1, .L7+8
	ldmia	r1, {r4-r5}
	ldr	r1, .L7+12
	ldmia	r1, {r0-r1}
	adds	ip, r4, r0
	str	ip, [fp, #-44]
	adc	r1, r5, r1
	str	r1, [fp, #-40]
	ldr	r1, .L7+8
	sub	r5, fp, #44
	ldmia	r5, {r4-r5}
	stm	r1, {r4-r5}
	ldr	r1, .L7+8
	ldmia	r1, {r4-r5}
	ldr	r1, .L7+4
	ldmia	r1, {r0-r1}
	subs	r2, r4, r0
	sbc	r3, r5, r1
	ldr	r1, .L7+16
	ldmia	r1, {r0-r1}
	adds	r8, r2, r0
	adc	r9, r3, r1
	ldr	r3, .L7+16
	stm	r3, {r8-r9}
	ldr	r3, .L7
	ldmia	r3, {r0-r1}
	ldr	r3, .L7+16
	ldmia	r3, {r2-r3}
	adds	r6, r0, r2
	adc	r7, r1, r3
	ldr	r3, .L7
	stm	r3, {r6-r7}
	ldr	r3, .L7
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L8:
	.align	2
.L7:
	.word	vv
	.word	v0
	.word	vc
	.word	polygon
	.word	va
	.size	next_v, .-next_v
	.section	.rodata
	.align	2
.LC0:
	.ascii	"CANNONBALL NUMBERS\000"
	.align	2
.LC1:
	.ascii	"List all N-polygon pyramidal numbers which are N-po"
	.ascii	"lygonal\000"
	.align	2
.LC2:
	.ascii	"where N >= 3 and any number <= %llu\012\000"
	.global	__aeabi_uldivmod
	.align	2
.LC3:
	.ascii	"[%llu]\012\000"
	.align	2
.LC4:
	.ascii	"%llu:\000"
	.align	2
.LC5:
	.ascii	" %llu\000"
	.align	2
.LC6:
	.ascii	" (%i)\012\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #24
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	adds	r0, r2, #1
	adc	r1, r3, #0
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	ldr	r0, .L27+4
	bl	puts
	ldr	r0, .L27+8
	bl	puts
	mvn	r2, #0
	mvn	r3, #0
	ldr	r0, .L27+12
	bl	printf
	mov	r0, #10
	bl	putchar
	b	.L10
.L25:
	ldr	r3, .L27
	ldmia	r3, {r0-r1}
	ldr	r2, .L27+16
	mov	r3, #0
	bl	__aeabi_uldivmod
	orrs	r3, r2, r3
	bne	.L11
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	ldr	r0, .L27+20
	bl	printf
.L11:
	ldr	r1, .L27+24
	mov	r2, #1
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, .L27+24
	ldmia	r3, {r2-r3}
	ldr	r1, .L27+28
	stm	r1, {r2-r3}
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	ldr	r1, .L27+32
	stm	r1, {r2-r3}
	ldr	r3, .L27+32
	ldmia	r3, {r2-r3}
	ldr	r1, .L27+36
	stm	r1, {r2-r3}
	ldr	r3, .L27+36
	ldmia	r3, {r2-r3}
	ldr	r1, .L27+40
	stm	r1, {r2-r3}
	ldr	r3, .L27+40
	ldmia	r3, {r2-r3}
	ldr	r1, .L27+44
	stm	r1, {r2-r3}
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	ldr	r3, .L27+48
	stm	r3, {r4-r5}
	mov	r3, #1
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L12
.L16:
	bl	next_a
	str	r0, [fp, #-40]
.L14:
	ldr	r3, .L27+36
	ldmia	r3, {r0-r1}
	ldr	r3, .L27+48
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	bcs	.L17
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L17
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L16
	b	.L17
.L18:
	bl	next_v
	str	r0, [fp, #-36]
.L17:
	ldr	r3, .L27+48
	ldmia	r3, {r0-r1}
	ldr	r3, .L27+36
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	bcs	.L13
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L13
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L18
.L13:
	ldr	r3, .L27+36
	ldmia	r3, {r0-r1}
	ldr	r3, .L27+48
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	beq	.L19
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L14
.L19:
	ldr	r3, .L27+36
	ldmia	r3, {r0-r1}
	ldr	r3, .L27+48
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	bne	.L12
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L21
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	ldr	r0, .L27+52
	bl	printf
.L21:
	ldr	r3, .L27+48
	ldmia	r3, {r2-r3}
	ldr	r0, .L27+56
	bl	printf
	bl	next_a
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L12:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L22
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L13
.L22:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L24
	ldr	r1, [fp, #-32]
	ldr	r0, .L27+60
	bl	printf
.L24:
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	subs	r6, r2, #1
	sbc	r7, r3, #0
	ldr	r1, .L27
	stm	r1, {r6-r7}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
.L10:
	ldr	r3, .L27
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L25
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L28:
	.align	2
.L27:
	.word	polygon
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	100000
	.word	.LC3
	.word	v0
	.word	a0
	.word	va
	.word	aa
	.word	vc
	.word	ac
	.word	vv
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
