	.file	"78019.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
.LC0:
	.ascii	"#ifdef TFM_SMALL_SET\n/* computes x/R == x (mod N) via Montg"
	.ascii	"omery Reduction */\nvoid fp_montgomery_reduce_small(fp_int *"
	.ascii	"a, fp_int *m, fp_digit mp)\n{\n   fp_digit c[FP_SIZE], *_c, "
	.ascii	"*tmpm, mu, cy;\n   int      oldused, x, y, pa;\n\n#if define"
	.ascii	"d(USE_MEMSET)\n   /* now zero the buff */\n   memset(c, 0, s"
	.ascii	"izeo"
	.string	"f c);\n#endif\n   pa = m->used;\n\n   /* copy the input */\n   oldused = a->used;\n   for (x = 0; x < oldused; x++) {\n       c[x] = a->dp[x];\n   }\n#if !defined(USE_MEMSET)\n   for (; x < 2*pa+3; x++) {\n       c[x] = 0;\n   }\n#endif\n   MONT_START;\n\n   switch (pa) {"
.LC1:
	.string	"#ifdef TFM_HUGE"
.LC2:
	.string	"      case %d:\n"
	.align 8
.LC3:
	.string	"            x = %d; cy   = 0;\n            LOOP_START;\n            _c   = c + %d;\n            tmpm = m->dp;\n"
.LC4:
	.string	"#ifdef INNERMUL8"
	.align 8
.LC5:
	.string	"            INNERMUL8; _c += 8; tmpm += 8;"
.LC6:
	.string	"            INNERMUL; ++_c;"
.LC7:
	.string	"#else"
.LC8:
	.string	"#endif"
	.align 8
.LC9:
	.string	"            LOOP_END;\n            while (cy) {\n               PROPCARRY;\n               ++_c;\n            }"
.LC10:
	.string	"         break;"
.LC11:
	.string	"#endif /* TFM_HUGE */"
	.align 8
.LC12:
	.ascii	"  }\n  /* now copy out */\n  _c   = c + pa;\n  tmpm = a->dp;"
	.ascii	"\n  for (x ="
	.string	" 0; x < pa+1; x++) {\n     *tmpm++ = *_c++;\n  }\n\n  for (; x < oldused; x++)   {\n     *tmpm++ = 0;\n  }\n\n  MONT_FINI;\n\n  a->used = pa+1;\n  fp_clamp(a);\n\n  /* if A >= m then A = A - m */\n  if (fp_cmp_mag (a, m) != FP_LT) {\n    s_fp_sub (a, m, a);\n  }\n}\n\n#endif"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	lea	rdi, .LC0[rip]
	call	puts@PLT
	mov	DWORD PTR -12[rbp], 1
	jmp	.L2
.L14:
	cmp	DWORD PTR -12[rbp], 16
	jle	.L3
	cmp	DWORD PTR -12[rbp], 32
	je	.L3
	cmp	DWORD PTR -12[rbp], 48
	je	.L3
	cmp	DWORD PTR -12[rbp], 64
	jne	.L16
.L3:
	cmp	DWORD PTR -12[rbp], 16
	jle	.L5
	lea	rdi, .LC1[rip]
	call	puts@PLT
.L5:
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -8[rbp], 0
	jmp	.L6
.L13:
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L7
.L8:
	lea	rdi, .LC5[rip]
	call	puts@PLT
	add	DWORD PTR -4[rbp], 8
.L7:
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 7
	cmp	DWORD PTR -12[rbp], eax
	jg	.L8
	jmp	.L9
.L10:
	lea	rdi, .LC6[rip]
	call	puts@PLT
	add	DWORD PTR -4[rbp], 1
.L9:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L10
	lea	rdi, .LC7[rip]
	call	puts@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L11
.L12:
	lea	rdi, .LC6[rip]
	call	puts@PLT
	add	DWORD PTR -4[rbp], 1
.L11:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L12
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	add	DWORD PTR -8[rbp], 1
.L6:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L13
	lea	rdi, .LC10[rip]
	call	puts@PLT
	cmp	DWORD PTR -12[rbp], 16
	jle	.L4
	lea	rdi, .LC11[rip]
	call	puts@PLT
	jmp	.L4
.L16:
	nop
.L4:
	add	DWORD PTR -12[rbp], 1
.L2:
	cmp	DWORD PTR -12[rbp], 16
	jle	.L14
	lea	rdi, .LC12[rip]
	call	puts@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.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	"78019.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"#ifdef TFM_SMALL_SET\012/* computes x/R == x (mod N"
	.ascii	") via Montgomery Reduction */\012void fp_montgomery"
	.ascii	"_reduce_small(fp_int *a, fp_int *m, fp_digit mp)\012"
	.ascii	"{\012   fp_digit c[FP_SIZE], *_c, *tmpm, mu, cy;\012"
	.ascii	"   int      oldused, x, y, pa;\012\012#if defined(U"
	.ascii	"SE_MEMSET)\012   /* now zero the buff */\012   mems"
	.ascii	"et(c, 0, sizeof c);\012#endif\012   pa = m->used;\012"
	.ascii	"\012   /* copy the input */\012   oldused = a->used"
	.ascii	";\012   for (x = 0; x < oldused; x++) {\012       c"
	.ascii	"[x] = a->dp[x];\012   }\012#if !defined(USE_MEMSET)"
	.ascii	"\012   for (; x < 2*pa+3; x++) {\012       c[x] = 0"
	.ascii	";\012   }\012#endif\012   MONT_START;\012\012   swi"
	.ascii	"tch (pa) {\000"
	.align	2
.LC1:
	.ascii	"#ifdef TFM_HUGE\000"
	.align	2
.LC2:
	.ascii	"      case %d:\012\000"
	.align	2
.LC3:
	.ascii	"            x = %d; cy   = 0;\012            LOOP_S"
	.ascii	"TART;\012            _c   = c + %d;\012            "
	.ascii	"tmpm = m->dp;\012\000"
	.align	2
.LC4:
	.ascii	"#ifdef INNERMUL8\000"
	.align	2
.LC5:
	.ascii	"            INNERMUL8; _c += 8; tmpm += 8;\000"
	.align	2
.LC6:
	.ascii	"            INNERMUL; ++_c;\000"
	.align	2
.LC7:
	.ascii	"#else\000"
	.align	2
.LC8:
	.ascii	"#endif\000"
	.align	2
.LC9:
	.ascii	"            LOOP_END;\012            while (cy) {\012"
	.ascii	"               PROPCARRY;\012               ++_c;\012"
	.ascii	"            }\000"
	.align	2
.LC10:
	.ascii	"         break;\000"
	.align	2
.LC11:
	.ascii	"#endif /* TFM_HUGE */\000"
	.align	2
.LC12:
	.ascii	"  }\012  /* now copy out */\012  _c   = c + pa;\012"
	.ascii	"  tmpm = a->dp;\012  for (x = 0; x < pa+1; x++) {\012"
	.ascii	"     *tmpm++ = *_c++;\012  }\012\012  for (; x < ol"
	.ascii	"dused; x++)   {\012     *tmpm++ = 0;\012  }\012\012"
	.ascii	"  MONT_FINI;\012\012  a->used = pa+1;\012  fp_clamp"
	.ascii	"(a);\012\012  /* if A >= m then A = A - m */\012  i"
	.ascii	"f (fp_cmp_mag (a, m) != FP_LT) {\012    s_fp_sub (a"
	.ascii	", m, a);\012  }\012}\012\012#endif\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r0, .L17
	bl	puts
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L2
.L14:
	ldr	r3, [fp, #-16]
	cmp	r3, #16
	ble	.L3
	ldr	r3, [fp, #-16]
	cmp	r3, #32
	beq	.L3
	ldr	r3, [fp, #-16]
	cmp	r3, #48
	beq	.L3
	ldr	r3, [fp, #-16]
	cmp	r3, #64
	bne	.L16
.L3:
	ldr	r3, [fp, #-16]
	cmp	r3, #16
	ble	.L5
	ldr	r0, .L17+4
	bl	puts
.L5:
	ldr	r1, [fp, #-16]
	ldr	r0, .L17+8
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L6
.L13:
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, .L17+12
	bl	printf
	ldr	r0, .L17+16
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L7
.L8:
	ldr	r0, .L17+20
	bl	puts
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	str	r3, [fp, #-8]
.L7:
	ldr	r3, [fp, #-8]
	add	r3, r3, #7
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bgt	.L8
	b	.L9
.L10:
	ldr	r0, .L17+24
	bl	puts
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L9:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L10
	ldr	r0, .L17+28
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L11
.L12:
	ldr	r0, .L17+24
	bl	puts
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L11:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L12
	ldr	r0, .L17+32
	bl	puts
	ldr	r0, .L17+36
	bl	puts
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L6:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L13
	ldr	r0, .L17+40
	bl	puts
	ldr	r3, [fp, #-16]
	cmp	r3, #16
	ble	.L4
	ldr	r0, .L17+44
	bl	puts
	b	.L4
.L16:
	nop
.L4:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L2:
	ldr	r3, [fp, #-16]
	cmp	r3, #16
	ble	.L14
	ldr	r0, .L17+48
	bl	puts
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
