	.file	"198581385.c"
	.intel_syntax noprefix
	.text
	.globl	P_MINUS_1_OVER_2
	.section	.rodata
	.align 32
	.type	P_MINUS_1_OVER_2, @object
	.size	P_MINUS_1_OVER_2, 254
P_MINUS_1_OVER_2:
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.globl	P_MINUS_1_OVER_2_LEN
	.align 8
	.type	P_MINUS_1_OVER_2_LEN, @object
	.size	P_MINUS_1_OVER_2_LEN, 8
P_MINUS_1_OVER_2_LEN:
	.quad	254
	.text
	.globl	fiat_pasta_fp_addcarryx_u64
	.type	fiat_pasta_fp_addcarryx_u64, @function
fiat_pasta_fp_addcarryx_u64:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	BYTE PTR -36[rbp], al
	movzx	edx, BYTE PTR -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -48[rbp], rax
	seta	dl
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	seta	al
	or	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	fiat_pasta_fp_addcarryx_u64, .-fiat_pasta_fp_addcarryx_u64
	.globl	fiat_pasta_fp_subborrowx_u64
	.type	fiat_pasta_fp_subborrowx_u64, @function
fiat_pasta_fp_subborrowx_u64:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	BYTE PTR -36[rbp], al
	movzx	edx, BYTE PTR -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -48[rbp], rax
	setb	dl
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	seta	al
	or	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	fiat_pasta_fp_subborrowx_u64, .-fiat_pasta_fp_subborrowx_u64
	.globl	fiat_pasta_fp_mulx_u64
	.type	fiat_pasta_fp_mulx_u64, @function
fiat_pasta_fp_mulx_u64:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	QWORD PTR -112[rbp], rcx
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, eax
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	shr	rax, 32
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, eax
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	shr	rax, 32
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	imul	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	imul	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	imul	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	imul	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, eax
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 32
	add	rax, rdx
	shr	rax, 32
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	shr	rax, 32
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 32
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -104[rbp]
	imul	rax, QWORD PTR -112[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	fiat_pasta_fp_mulx_u64, .-fiat_pasta_fp_mulx_u64
	.globl	fiat_pasta_fp_cmovznz_u64
	.type	fiat_pasta_fp_cmovznz_u64, @function
fiat_pasta_fp_cmovznz_u64:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, esi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	BYTE PTR -44[rbp], al
	cmp	BYTE PTR -44[rbp], 0
	setne	al
	mov	BYTE PTR -17[rbp], al
	movzx	eax, BYTE PTR -17[rbp]
	neg	eax
	movsx	rax, al
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	and	rax, QWORD PTR -64[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	not	rax
	and	rax, QWORD PTR -56[rbp]
	or	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	fiat_pasta_fp_cmovznz_u64, .-fiat_pasta_fp_cmovznz_u64
	.globl	fiat_pasta_fp_mul
	.type	fiat_pasta_fp_mul, @function
fiat_pasta_fp_mul:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1216
	mov	QWORD PTR -1192[rbp], rdi
	mov	QWORD PTR -1200[rbp], rsi
	mov	QWORD PTR -1208[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1112[rbp]
	lea	rax, -1120[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1096[rbp]
	lea	rax, -1104[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1080[rbp]
	lea	rax, -1088[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1064[rbp]
	lea	rax, -1072[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -1088[rbp]
	mov	rdx, QWORD PTR -1064[rbp]
	lea	rsi, -1176[rbp]
	lea	rax, -1056[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1104[rbp]
	mov	rcx, QWORD PTR -1080[rbp]
	movzx	eax, BYTE PTR -1176[rbp]
	movzx	edx, al
	lea	rsi, -1175[rbp]
	lea	rax, -1048[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1120[rbp]
	mov	rcx, QWORD PTR -1096[rbp]
	movzx	eax, BYTE PTR -1175[rbp]
	movzx	edx, al
	lea	rsi, -1174[rbp]
	lea	rax, -1040[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1174[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rsi, -1024[rbp]
	lea	rax, -1032[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -1008[rbp]
	lea	rax, -1016[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -992[rbp]
	lea	rax, -1000[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -976[rbp]
	lea	rax, -984[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -1000[rbp]
	mov	rdx, QWORD PTR -976[rbp]
	lea	rsi, -1173[rbp]
	lea	rax, -968[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1173[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -992[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rcx, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rsi, -1172[rbp]
	lea	rax, -960[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -968[rbp]
	mov	rcx, QWORD PTR -1056[rbp]
	movzx	eax, BYTE PTR -1172[rbp]
	movzx	edx, al
	lea	rsi, -1171[rbp]
	lea	rax, -952[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR -1171[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -88[rbp]
	lea	rsi, -1170[rbp]
	lea	rax, -944[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1016[rbp]
	mov	rcx, QWORD PTR -1040[rbp]
	movzx	eax, BYTE PTR -1170[rbp]
	movzx	edx, al
	lea	rsi, -1169[rbp]
	lea	rax, -936[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR -1169[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -96[rbp]
	lea	rsi, -1168[rbp]
	lea	rax, -928[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -912[rbp]
	lea	rax, -920[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -896[rbp]
	lea	rax, -904[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -880[rbp]
	lea	rax, -888[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -864[rbp]
	lea	rax, -872[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -888[rbp]
	mov	rdx, QWORD PTR -864[rbp]
	lea	rsi, -1167[rbp]
	lea	rax, -856[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -904[rbp]
	mov	rcx, QWORD PTR -880[rbp]
	movzx	eax, BYTE PTR -1167[rbp]
	movzx	edx, al
	lea	rsi, -1166[rbp]
	lea	rax, -848[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -920[rbp]
	mov	rcx, QWORD PTR -896[rbp]
	movzx	eax, BYTE PTR -1166[rbp]
	movzx	edx, al
	lea	rsi, -1165[rbp]
	lea	rax, -840[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1165[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -912[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rcx, QWORD PTR -872[rbp]
	mov	rdx, QWORD PTR -952[rbp]
	lea	rsi, -1164[rbp]
	lea	rax, -832[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -856[rbp]
	mov	rcx, QWORD PTR -944[rbp]
	movzx	eax, BYTE PTR -1164[rbp]
	movzx	edx, al
	lea	rsi, -1163[rbp]
	lea	rax, -824[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -848[rbp]
	mov	rcx, QWORD PTR -936[rbp]
	movzx	eax, BYTE PTR -1163[rbp]
	movzx	edx, al
	lea	rsi, -1162[rbp]
	lea	rax, -816[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -840[rbp]
	mov	rcx, QWORD PTR -928[rbp]
	movzx	eax, BYTE PTR -1162[rbp]
	movzx	edx, al
	lea	rsi, -1161[rbp]
	lea	rax, -808[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1168[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1161[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -80[rbp]
	lea	rsi, -1160[rbp]
	lea	rax, -800[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -832[rbp]
	lea	rsi, -784[rbp]
	lea	rax, -792[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -768[rbp]
	lea	rax, -776[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -752[rbp]
	lea	rax, -760[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -736[rbp]
	lea	rax, -744[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR -736[rbp]
	lea	rsi, -1159[rbp]
	lea	rax, -728[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1159[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -752[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rcx, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -832[rbp]
	lea	rsi, -1158[rbp]
	lea	rax, -720[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -728[rbp]
	mov	rcx, QWORD PTR -824[rbp]
	movzx	eax, BYTE PTR -1158[rbp]
	movzx	edx, al
	lea	rsi, -1157[rbp]
	lea	rax, -712[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -816[rbp]
	movzx	eax, BYTE PTR -1157[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -72[rbp]
	lea	rsi, -1156[rbp]
	lea	rax, -704[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -776[rbp]
	mov	rcx, QWORD PTR -808[rbp]
	movzx	eax, BYTE PTR -1156[rbp]
	movzx	edx, al
	lea	rsi, -1155[rbp]
	lea	rax, -696[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -768[rbp]
	mov	rcx, QWORD PTR -800[rbp]
	movzx	eax, BYTE PTR -1155[rbp]
	movzx	edx, al
	lea	rsi, -1154[rbp]
	lea	rax, -688[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1154[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1160[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -672[rbp]
	lea	rax, -680[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -656[rbp]
	lea	rax, -664[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -640[rbp]
	lea	rax, -648[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -624[rbp]
	lea	rax, -632[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -648[rbp]
	mov	rdx, QWORD PTR -624[rbp]
	lea	rsi, -1153[rbp]
	lea	rax, -616[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -664[rbp]
	mov	rcx, QWORD PTR -640[rbp]
	movzx	eax, BYTE PTR -1153[rbp]
	movzx	edx, al
	lea	rsi, -1152[rbp]
	lea	rax, -608[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -680[rbp]
	mov	rcx, QWORD PTR -656[rbp]
	movzx	eax, BYTE PTR -1152[rbp]
	movzx	edx, al
	lea	rsi, -1151[rbp]
	lea	rax, -600[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1151[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -672[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rcx, QWORD PTR -632[rbp]
	mov	rdx, QWORD PTR -712[rbp]
	lea	rsi, -1150[rbp]
	lea	rax, -592[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -616[rbp]
	mov	rcx, QWORD PTR -704[rbp]
	movzx	eax, BYTE PTR -1150[rbp]
	movzx	edx, al
	lea	rsi, -1149[rbp]
	lea	rax, -584[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -608[rbp]
	mov	rcx, QWORD PTR -696[rbp]
	movzx	eax, BYTE PTR -1149[rbp]
	movzx	edx, al
	lea	rsi, -1148[rbp]
	lea	rax, -576[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -600[rbp]
	mov	rcx, QWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -1148[rbp]
	movzx	edx, al
	lea	rsi, -1147[rbp]
	lea	rax, -568[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1147[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	lea	rsi, -1146[rbp]
	lea	rax, -560[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -592[rbp]
	lea	rsi, -544[rbp]
	lea	rax, -552[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -528[rbp]
	lea	rax, -536[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -512[rbp]
	lea	rax, -520[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -496[rbp]
	lea	rax, -504[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	lea	rsi, -1145[rbp]
	lea	rax, -488[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1145[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -512[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rcx, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -592[rbp]
	lea	rsi, -1144[rbp]
	lea	rax, -480[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -488[rbp]
	mov	rcx, QWORD PTR -584[rbp]
	movzx	eax, BYTE PTR -1144[rbp]
	movzx	edx, al
	lea	rsi, -1143[rbp]
	lea	rax, -472[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -576[rbp]
	movzx	eax, BYTE PTR -1143[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -48[rbp]
	lea	rsi, -1142[rbp]
	lea	rax, -464[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -536[rbp]
	mov	rcx, QWORD PTR -568[rbp]
	movzx	eax, BYTE PTR -1142[rbp]
	movzx	edx, al
	lea	rsi, -1141[rbp]
	lea	rax, -456[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -528[rbp]
	mov	rcx, QWORD PTR -560[rbp]
	movzx	eax, BYTE PTR -1141[rbp]
	movzx	edx, al
	lea	rsi, -1140[rbp]
	lea	rax, -448[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1140[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1146[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -432[rbp]
	lea	rax, -440[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -416[rbp]
	lea	rax, -424[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -400[rbp]
	lea	rax, -408[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1208[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -384[rbp]
	lea	rax, -392[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR -384[rbp]
	lea	rsi, -1139[rbp]
	lea	rax, -376[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -424[rbp]
	mov	rcx, QWORD PTR -400[rbp]
	movzx	eax, BYTE PTR -1139[rbp]
	movzx	edx, al
	lea	rsi, -1138[rbp]
	lea	rax, -368[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -416[rbp]
	movzx	eax, BYTE PTR -1138[rbp]
	movzx	edx, al
	lea	rsi, -1137[rbp]
	lea	rax, -360[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1137[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rcx, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR -472[rbp]
	lea	rsi, -1136[rbp]
	lea	rax, -352[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -376[rbp]
	mov	rcx, QWORD PTR -464[rbp]
	movzx	eax, BYTE PTR -1136[rbp]
	movzx	edx, al
	lea	rsi, -1135[rbp]
	lea	rax, -344[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -368[rbp]
	mov	rcx, QWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -1135[rbp]
	movzx	edx, al
	lea	rsi, -1134[rbp]
	lea	rax, -336[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -360[rbp]
	mov	rcx, QWORD PTR -448[rbp]
	movzx	eax, BYTE PTR -1134[rbp]
	movzx	edx, al
	lea	rsi, -1133[rbp]
	lea	rax, -328[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1133[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	lea	rsi, -1132[rbp]
	lea	rax, -320[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -304[rbp]
	lea	rax, -312[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -288[rbp]
	lea	rax, -296[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -272[rbp]
	lea	rax, -280[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -256[rbp]
	lea	rax, -264[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	lea	rsi, -1131[rbp]
	lea	rax, -248[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1131[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -1130[rbp]
	lea	rax, -240[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -248[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -1130[rbp]
	movzx	edx, al
	lea	rsi, -1129[rbp]
	lea	rax, -232[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -336[rbp]
	movzx	eax, BYTE PTR -1129[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -24[rbp]
	lea	rsi, -1128[rbp]
	lea	rax, -224[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -296[rbp]
	mov	rcx, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR -1128[rbp]
	movzx	edx, al
	lea	rsi, -1127[rbp]
	lea	rax, -216[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -288[rbp]
	mov	rcx, QWORD PTR -320[rbp]
	movzx	eax, BYTE PTR -1127[rbp]
	movzx	edx, al
	lea	rsi, -1126[rbp]
	lea	rax, -208[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1126[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1132[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -232[rbp]
	lea	rsi, -1125[rbp]
	lea	rax, -200[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -1125[rbp]
	movzx	edx, al
	lea	rsi, -1124[rbp]
	lea	rax, -192[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -1124[rbp]
	movzx	edx, al
	lea	rsi, -1123[rbp]
	lea	rax, -184[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -1123[rbp]
	movzx	edx, al
	lea	rsi, -1122[rbp]
	lea	rax, -176[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -1122[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rsi, -1121[rbp]
	lea	rax, -168[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR -200[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -160[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -152[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR -184[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -208[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -136[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -1192[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L6
	call	__stack_chk_fail@PLT
.L6:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	fiat_pasta_fp_mul, .-fiat_pasta_fp_mul
	.globl	fiat_pasta_fp_square
	.type	fiat_pasta_fp_square, @function
fiat_pasta_fp_square:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1200
	mov	QWORD PTR -1192[rbp], rdi
	mov	QWORD PTR -1200[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1112[rbp]
	lea	rax, -1120[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1096[rbp]
	lea	rax, -1104[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1080[rbp]
	lea	rax, -1088[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -1064[rbp]
	lea	rax, -1072[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -1088[rbp]
	mov	rdx, QWORD PTR -1064[rbp]
	lea	rsi, -1176[rbp]
	lea	rax, -1056[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1104[rbp]
	mov	rcx, QWORD PTR -1080[rbp]
	movzx	eax, BYTE PTR -1176[rbp]
	movzx	edx, al
	lea	rsi, -1175[rbp]
	lea	rax, -1048[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1120[rbp]
	mov	rcx, QWORD PTR -1096[rbp]
	movzx	eax, BYTE PTR -1175[rbp]
	movzx	edx, al
	lea	rsi, -1174[rbp]
	lea	rax, -1040[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1174[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rsi, -1024[rbp]
	lea	rax, -1032[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -1008[rbp]
	lea	rax, -1016[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -992[rbp]
	lea	rax, -1000[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rsi, -976[rbp]
	lea	rax, -984[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -1000[rbp]
	mov	rdx, QWORD PTR -976[rbp]
	lea	rsi, -1173[rbp]
	lea	rax, -968[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1173[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -992[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rcx, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rsi, -1172[rbp]
	lea	rax, -960[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -968[rbp]
	mov	rcx, QWORD PTR -1056[rbp]
	movzx	eax, BYTE PTR -1172[rbp]
	movzx	edx, al
	lea	rsi, -1171[rbp]
	lea	rax, -952[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR -1171[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -88[rbp]
	lea	rsi, -1170[rbp]
	lea	rax, -944[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1016[rbp]
	mov	rcx, QWORD PTR -1040[rbp]
	movzx	eax, BYTE PTR -1170[rbp]
	movzx	edx, al
	lea	rsi, -1169[rbp]
	lea	rax, -936[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR -1169[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -96[rbp]
	lea	rsi, -1168[rbp]
	lea	rax, -928[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -912[rbp]
	lea	rax, -920[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -896[rbp]
	lea	rax, -904[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -880[rbp]
	lea	rax, -888[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rsi, -864[rbp]
	lea	rax, -872[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -888[rbp]
	mov	rdx, QWORD PTR -864[rbp]
	lea	rsi, -1167[rbp]
	lea	rax, -856[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -904[rbp]
	mov	rcx, QWORD PTR -880[rbp]
	movzx	eax, BYTE PTR -1167[rbp]
	movzx	edx, al
	lea	rsi, -1166[rbp]
	lea	rax, -848[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -920[rbp]
	mov	rcx, QWORD PTR -896[rbp]
	movzx	eax, BYTE PTR -1166[rbp]
	movzx	edx, al
	lea	rsi, -1165[rbp]
	lea	rax, -840[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1165[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -912[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rcx, QWORD PTR -872[rbp]
	mov	rdx, QWORD PTR -952[rbp]
	lea	rsi, -1164[rbp]
	lea	rax, -832[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -856[rbp]
	mov	rcx, QWORD PTR -944[rbp]
	movzx	eax, BYTE PTR -1164[rbp]
	movzx	edx, al
	lea	rsi, -1163[rbp]
	lea	rax, -824[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -848[rbp]
	mov	rcx, QWORD PTR -936[rbp]
	movzx	eax, BYTE PTR -1163[rbp]
	movzx	edx, al
	lea	rsi, -1162[rbp]
	lea	rax, -816[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -840[rbp]
	mov	rcx, QWORD PTR -928[rbp]
	movzx	eax, BYTE PTR -1162[rbp]
	movzx	edx, al
	lea	rsi, -1161[rbp]
	lea	rax, -808[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1168[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1161[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -80[rbp]
	lea	rsi, -1160[rbp]
	lea	rax, -800[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -832[rbp]
	lea	rsi, -784[rbp]
	lea	rax, -792[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -768[rbp]
	lea	rax, -776[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -752[rbp]
	lea	rax, -760[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -792[rbp]
	lea	rsi, -736[rbp]
	lea	rax, -744[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR -736[rbp]
	lea	rsi, -1159[rbp]
	lea	rax, -728[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1159[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -752[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rcx, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -832[rbp]
	lea	rsi, -1158[rbp]
	lea	rax, -720[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -728[rbp]
	mov	rcx, QWORD PTR -824[rbp]
	movzx	eax, BYTE PTR -1158[rbp]
	movzx	edx, al
	lea	rsi, -1157[rbp]
	lea	rax, -712[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -816[rbp]
	movzx	eax, BYTE PTR -1157[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -72[rbp]
	lea	rsi, -1156[rbp]
	lea	rax, -704[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -776[rbp]
	mov	rcx, QWORD PTR -808[rbp]
	movzx	eax, BYTE PTR -1156[rbp]
	movzx	edx, al
	lea	rsi, -1155[rbp]
	lea	rax, -696[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -768[rbp]
	mov	rcx, QWORD PTR -800[rbp]
	movzx	eax, BYTE PTR -1155[rbp]
	movzx	edx, al
	lea	rsi, -1154[rbp]
	lea	rax, -688[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1154[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1160[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -672[rbp]
	lea	rax, -680[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -656[rbp]
	lea	rax, -664[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -640[rbp]
	lea	rax, -648[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -624[rbp]
	lea	rax, -632[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -648[rbp]
	mov	rdx, QWORD PTR -624[rbp]
	lea	rsi, -1153[rbp]
	lea	rax, -616[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -664[rbp]
	mov	rcx, QWORD PTR -640[rbp]
	movzx	eax, BYTE PTR -1153[rbp]
	movzx	edx, al
	lea	rsi, -1152[rbp]
	lea	rax, -608[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -680[rbp]
	mov	rcx, QWORD PTR -656[rbp]
	movzx	eax, BYTE PTR -1152[rbp]
	movzx	edx, al
	lea	rsi, -1151[rbp]
	lea	rax, -600[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1151[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -672[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rcx, QWORD PTR -632[rbp]
	mov	rdx, QWORD PTR -712[rbp]
	lea	rsi, -1150[rbp]
	lea	rax, -592[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -616[rbp]
	mov	rcx, QWORD PTR -704[rbp]
	movzx	eax, BYTE PTR -1150[rbp]
	movzx	edx, al
	lea	rsi, -1149[rbp]
	lea	rax, -584[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -608[rbp]
	mov	rcx, QWORD PTR -696[rbp]
	movzx	eax, BYTE PTR -1149[rbp]
	movzx	edx, al
	lea	rsi, -1148[rbp]
	lea	rax, -576[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -600[rbp]
	mov	rcx, QWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -1148[rbp]
	movzx	edx, al
	lea	rsi, -1147[rbp]
	lea	rax, -568[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1147[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	lea	rsi, -1146[rbp]
	lea	rax, -560[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -592[rbp]
	lea	rsi, -544[rbp]
	lea	rax, -552[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -528[rbp]
	lea	rax, -536[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -512[rbp]
	lea	rax, -520[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -496[rbp]
	lea	rax, -504[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	lea	rsi, -1145[rbp]
	lea	rax, -488[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1145[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -512[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rcx, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -592[rbp]
	lea	rsi, -1144[rbp]
	lea	rax, -480[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -488[rbp]
	mov	rcx, QWORD PTR -584[rbp]
	movzx	eax, BYTE PTR -1144[rbp]
	movzx	edx, al
	lea	rsi, -1143[rbp]
	lea	rax, -472[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -576[rbp]
	movzx	eax, BYTE PTR -1143[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -48[rbp]
	lea	rsi, -1142[rbp]
	lea	rax, -464[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -536[rbp]
	mov	rcx, QWORD PTR -568[rbp]
	movzx	eax, BYTE PTR -1142[rbp]
	movzx	edx, al
	lea	rsi, -1141[rbp]
	lea	rax, -456[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -528[rbp]
	mov	rcx, QWORD PTR -560[rbp]
	movzx	eax, BYTE PTR -1141[rbp]
	movzx	edx, al
	lea	rsi, -1140[rbp]
	lea	rax, -448[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1140[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1146[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -432[rbp]
	lea	rax, -440[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -416[rbp]
	lea	rax, -424[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -400[rbp]
	lea	rax, -408[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -384[rbp]
	lea	rax, -392[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR -384[rbp]
	lea	rsi, -1139[rbp]
	lea	rax, -376[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -424[rbp]
	mov	rcx, QWORD PTR -400[rbp]
	movzx	eax, BYTE PTR -1139[rbp]
	movzx	edx, al
	lea	rsi, -1138[rbp]
	lea	rax, -368[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -416[rbp]
	movzx	eax, BYTE PTR -1138[rbp]
	movzx	edx, al
	lea	rsi, -1137[rbp]
	lea	rax, -360[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1137[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rcx, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR -472[rbp]
	lea	rsi, -1136[rbp]
	lea	rax, -352[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -376[rbp]
	mov	rcx, QWORD PTR -464[rbp]
	movzx	eax, BYTE PTR -1136[rbp]
	movzx	edx, al
	lea	rsi, -1135[rbp]
	lea	rax, -344[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -368[rbp]
	mov	rcx, QWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -1135[rbp]
	movzx	edx, al
	lea	rsi, -1134[rbp]
	lea	rax, -336[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -360[rbp]
	mov	rcx, QWORD PTR -448[rbp]
	movzx	eax, BYTE PTR -1134[rbp]
	movzx	edx, al
	lea	rsi, -1133[rbp]
	lea	rax, -328[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1133[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	lea	rsi, -1132[rbp]
	lea	rax, -320[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -304[rbp]
	lea	rax, -312[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -288[rbp]
	lea	rax, -296[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -272[rbp]
	lea	rax, -280[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -312[rbp]
	lea	rsi, -256[rbp]
	lea	rax, -264[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	lea	rsi, -1131[rbp]
	lea	rax, -248[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1131[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -1130[rbp]
	lea	rax, -240[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -248[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -1130[rbp]
	movzx	edx, al
	lea	rsi, -1129[rbp]
	lea	rax, -232[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -336[rbp]
	movzx	eax, BYTE PTR -1129[rbp]
	movzx	edx, al
	mov	rdi, QWORD PTR -24[rbp]
	lea	rsi, -1128[rbp]
	lea	rax, -224[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -296[rbp]
	mov	rcx, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR -1128[rbp]
	movzx	edx, al
	lea	rsi, -1127[rbp]
	lea	rax, -216[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -288[rbp]
	mov	rcx, QWORD PTR -320[rbp]
	movzx	eax, BYTE PTR -1127[rbp]
	movzx	edx, al
	lea	rsi, -1126[rbp]
	lea	rax, -208[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1126[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1132[rbp]
	movzx	eax, al
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -232[rbp]
	lea	rsi, -1125[rbp]
	lea	rax, -200[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -1125[rbp]
	movzx	edx, al
	lea	rsi, -1124[rbp]
	lea	rax, -192[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -1124[rbp]
	movzx	edx, al
	lea	rsi, -1123[rbp]
	lea	rax, -184[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -1123[rbp]
	movzx	edx, al
	lea	rsi, -1122[rbp]
	lea	rax, -176[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -1122[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rsi, -1121[rbp]
	lea	rax, -168[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR -200[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -160[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -152[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR -184[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -208[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	movzx	eax, BYTE PTR -1121[rbp]
	movzx	esi, al
	lea	rax, -136[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -1192[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1192[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L8
	call	__stack_chk_fail@PLT
.L8:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	fiat_pasta_fp_square, .-fiat_pasta_fp_square
	.globl	fiat_pasta_fp_add
	.type	fiat_pasta_fp_add, @function
fiat_pasta_fp_add:
.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, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	QWORD PTR -152[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR [rax]
	lea	rsi, -121[rbp]
	lea	rax, -112[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -121[rbp]
	movzx	edx, al
	lea	rsi, -120[rbp]
	lea	rax, -104[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 16
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -120[rbp]
	movzx	edx, al
	lea	rsi, -119[rbp]
	lea	rax, -96[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 24
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -119[rbp]
	movzx	edx, al
	lea	rsi, -118[rbp]
	lea	rax, -88[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -112[rbp]
	lea	rsi, -117[rbp]
	lea	rax, -80[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -117[rbp]
	movzx	edx, al
	lea	rsi, -116[rbp]
	lea	rax, -72[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -116[rbp]
	movzx	edx, al
	lea	rsi, -115[rbp]
	lea	rax, -64[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -115[rbp]
	movzx	edx, al
	lea	rsi, -114[rbp]
	lea	rax, -56[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -118[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -114[rbp]
	movzx	edx, al
	lea	rsi, -113[rbp]
	lea	rax, -48[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -113[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -113[rbp]
	movzx	esi, al
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -113[rbp]
	movzx	esi, al
	lea	rax, -24[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR -113[rbp]
	movzx	esi, al
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -136[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -136[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L10
	call	__stack_chk_fail@PLT
.L10:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	fiat_pasta_fp_add, .-fiat_pasta_fp_add
	.globl	fiat_pasta_fp_sub
	.type	fiat_pasta_fp_sub, @function
fiat_pasta_fp_sub:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	QWORD PTR -120[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	lea	rsi, -88[rbp]
	lea	rax, -80[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 8
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -88[rbp]
	movzx	edx, al
	lea	rsi, -87[rbp]
	lea	rax, -72[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 16
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -87[rbp]
	movzx	edx, al
	lea	rsi, -86[rbp]
	lea	rax, -64[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 24
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -86[rbp]
	movzx	edx, al
	lea	rsi, -85[rbp]
	lea	rax, -56[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -85[rbp]
	movzx	esi, al
	lea	rax, -48[rbp]
	mov	rcx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, -7409212017489215487
	and	rax, rdx
	mov	rcx, rax
	mov	rdx, QWORD PTR -80[rbp]
	lea	rsi, -84[rbp]
	lea	rax, -40[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, 2469829653914515739
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -84[rbp]
	movzx	edx, al
	lea	rsi, -83[rbp]
	lea	rax, -32[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -83[rbp]
	movzx	edx, al
	lea	rsi, -82[rbp]
	lea	rax, -24[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, 4611686018427387904
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR -82[rbp]
	movzx	edx, al
	lea	rsi, -81[rbp]
	lea	rax, -16[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L12
	call	__stack_chk_fail@PLT
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fiat_pasta_fp_sub, .-fiat_pasta_fp_sub
	.globl	fiat_pasta_fp_opp
	.type	fiat_pasta_fp_opp, @function
fiat_pasta_fp_opp:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	lea	rsi, -88[rbp]
	lea	rax, -80[rbp]
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -88[rbp]
	movzx	edx, al
	lea	rsi, -87[rbp]
	lea	rax, -72[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -87[rbp]
	movzx	edx, al
	lea	rsi, -86[rbp]
	lea	rax, -64[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -86[rbp]
	movzx	edx, al
	lea	rsi, -85[rbp]
	lea	rax, -56[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -85[rbp]
	movzx	esi, al
	lea	rax, -48[rbp]
	mov	rcx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, -7409212017489215487
	and	rax, rdx
	mov	rcx, rax
	mov	rdx, QWORD PTR -80[rbp]
	lea	rsi, -84[rbp]
	lea	rax, -40[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, 2469829653914515739
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -84[rbp]
	movzx	edx, al
	lea	rsi, -83[rbp]
	lea	rax, -32[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -83[rbp]
	movzx	edx, al
	lea	rsi, -82[rbp]
	lea	rax, -24[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -48[rbp]
	movabs	rdx, 4611686018427387904
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR -82[rbp]
	movzx	edx, al
	lea	rsi, -81[rbp]
	lea	rax, -16[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	fiat_pasta_fp_opp, .-fiat_pasta_fp_opp
	.globl	fiat_pasta_fp_from_montgomery
	.type	fiat_pasta_fp_from_montgomery, @function
fiat_pasta_fp_from_montgomery:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 608
	mov	QWORD PTR -600[rbp], rdi
	mov	QWORD PTR -608[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -608[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -544[rbp]
	lea	rax, -552[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -528[rbp]
	lea	rax, -536[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -512[rbp]
	lea	rax, -520[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -552[rbp]
	lea	rsi, -496[rbp]
	lea	rax, -504[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	lea	rsi, -582[rbp]
	lea	rax, -488[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -581[rbp]
	lea	rax, -480[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -581[rbp]
	movzx	edx, al
	lea	rsi, -580[rbp]
	lea	rax, -472[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -472[rbp]
	lea	rsi, -579[rbp]
	lea	rax, -464[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -464[rbp]
	lea	rsi, -448[rbp]
	lea	rax, -456[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -456[rbp]
	lea	rsi, -432[rbp]
	lea	rax, -440[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -456[rbp]
	lea	rsi, -416[rbp]
	lea	rax, -424[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -456[rbp]
	lea	rsi, -400[rbp]
	lea	rax, -408[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR -400[rbp]
	lea	rsi, -578[rbp]
	lea	rax, -392[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR -464[rbp]
	lea	rsi, -577[rbp]
	lea	rax, -384[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -392[rbp]
	movzx	eax, BYTE PTR -579[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -580[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -582[rbp]
	movzx	esi, al
	mov	rax, QWORD PTR -512[rbp]
	add	rax, rsi
	add	rax, rcx
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -577[rbp]
	movzx	edx, al
	lea	rsi, -576[rbp]
	lea	rax, -376[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -578[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -416[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -536[rbp]
	movzx	eax, BYTE PTR -576[rbp]
	movzx	edx, al
	lea	rsi, -575[rbp]
	lea	rax, -368[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -528[rbp]
	movzx	eax, BYTE PTR -575[rbp]
	movzx	edx, al
	lea	rsi, -574[rbp]
	lea	rax, -360[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -376[rbp]
	lea	rsi, -573[rbp]
	lea	rax, -352[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -368[rbp]
	movzx	eax, BYTE PTR -573[rbp]
	movzx	edx, al
	lea	rsi, -572[rbp]
	lea	rax, -344[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -360[rbp]
	movzx	eax, BYTE PTR -572[rbp]
	movzx	edx, al
	lea	rsi, -571[rbp]
	lea	rax, -336[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -320[rbp]
	lea	rax, -328[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -328[rbp]
	lea	rsi, -304[rbp]
	lea	rax, -312[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -328[rbp]
	lea	rsi, -288[rbp]
	lea	rax, -296[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -328[rbp]
	lea	rsi, -272[rbp]
	lea	rax, -280[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	lea	rsi, -570[rbp]
	lea	rax, -264[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	lea	rsi, -569[rbp]
	lea	rax, -256[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -569[rbp]
	movzx	edx, al
	lea	rsi, -568[rbp]
	lea	rax, -248[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -570[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -288[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -336[rbp]
	movzx	eax, BYTE PTR -568[rbp]
	movzx	edx, al
	lea	rsi, -567[rbp]
	lea	rax, -240[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR -571[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -574[rbp]
	movzx	ecx, al
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rcx
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -567[rbp]
	movzx	edx, al
	lea	rsi, -566[rbp]
	lea	rax, -232[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -248[rbp]
	lea	rsi, -565[rbp]
	lea	rax, -224[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR -565[rbp]
	movzx	edx, al
	lea	rsi, -564[rbp]
	lea	rax, -216[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -232[rbp]
	movzx	eax, BYTE PTR -564[rbp]
	movzx	edx, al
	lea	rsi, -563[rbp]
	lea	rax, -208[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -192[rbp]
	lea	rax, -200[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, -176[rbp]
	lea	rax, -184[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, -160[rbp]
	lea	rax, -168[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, -144[rbp]
	lea	rax, -152[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	lea	rsi, -562[rbp]
	lea	rax, -136[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -561[rbp]
	lea	rax, -128[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -561[rbp]
	movzx	edx, al
	lea	rsi, -560[rbp]
	lea	rax, -120[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -562[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -160[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -560[rbp]
	movzx	edx, al
	lea	rsi, -559[rbp]
	lea	rax, -112[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -184[rbp]
	movzx	eax, BYTE PTR -563[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -566[rbp]
	movzx	ecx, al
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rcx
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -559[rbp]
	movzx	edx, al
	lea	rsi, -558[rbp]
	lea	rax, -104[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -558[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, -557[rbp]
	lea	rax, -96[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR -557[rbp]
	movzx	edx, al
	lea	rsi, -556[rbp]
	lea	rax, -88[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -556[rbp]
	movzx	edx, al
	lea	rsi, -555[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -555[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rsi, -554[rbp]
	lea	rax, -72[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -554[rbp]
	movzx	edx, al
	lea	rsi, -553[rbp]
	lea	rax, -64[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -553[rbp]
	movzx	esi, al
	lea	rax, -56[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -553[rbp]
	movzx	esi, al
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -553[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -553[rbp]
	movzx	esi, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -600[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -600[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -600[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -600[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L16
	call	__stack_chk_fail@PLT
.L16:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	fiat_pasta_fp_from_montgomery, .-fiat_pasta_fp_from_montgomery
	.globl	fiat_pasta_fp_to_montgomery
	.type	fiat_pasta_fp_to_montgomery, @function
fiat_pasta_fp_to_montgomery:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1056
	mov	QWORD PTR -1048[rbp], rdi
	mov	QWORD PTR -1056[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -976[rbp]
	lea	rax, -984[rbp]
	movabs	rcx, 679271340751763220
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -960[rbp]
	lea	rax, -968[rbp]
	movabs	rcx, 8617542898466512152
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -944[rbp]
	lea	rax, -952[rbp]
	movabs	rcx, -2894955027736174361
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, -928[rbp]
	lea	rax, -936[rbp]
	movabs	rcx, -8324643657651060721
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -952[rbp]
	mov	rdx, QWORD PTR -928[rbp]
	lea	rsi, -1033[rbp]
	lea	rax, -920[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -968[rbp]
	mov	rcx, QWORD PTR -944[rbp]
	movzx	eax, BYTE PTR -1033[rbp]
	movzx	edx, al
	lea	rsi, -1032[rbp]
	lea	rax, -912[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -984[rbp]
	mov	rcx, QWORD PTR -960[rbp]
	movzx	eax, BYTE PTR -1032[rbp]
	movzx	edx, al
	lea	rsi, -1031[rbp]
	lea	rax, -904[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -936[rbp]
	lea	rsi, -888[rbp]
	lea	rax, -896[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -896[rbp]
	lea	rsi, -872[rbp]
	lea	rax, -880[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -896[rbp]
	lea	rsi, -856[rbp]
	lea	rax, -864[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -896[rbp]
	lea	rsi, -840[rbp]
	lea	rax, -848[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -864[rbp]
	mov	rdx, QWORD PTR -840[rbp]
	lea	rsi, -1030[rbp]
	lea	rax, -832[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -848[rbp]
	mov	rdx, QWORD PTR -936[rbp]
	lea	rsi, -1029[rbp]
	lea	rax, -824[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -832[rbp]
	mov	rcx, QWORD PTR -920[rbp]
	movzx	eax, BYTE PTR -1029[rbp]
	movzx	edx, al
	lea	rsi, -1028[rbp]
	lea	rax, -816[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1030[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -856[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -912[rbp]
	movzx	eax, BYTE PTR -1028[rbp]
	movzx	edx, al
	lea	rsi, -1027[rbp]
	lea	rax, -808[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -880[rbp]
	mov	rcx, QWORD PTR -904[rbp]
	movzx	eax, BYTE PTR -1027[rbp]
	movzx	edx, al
	lea	rsi, -1026[rbp]
	lea	rax, -800[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -48[rbp]
	lea	rsi, -784[rbp]
	lea	rax, -792[rbp]
	movabs	rcx, 679271340751763220
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -48[rbp]
	lea	rsi, -768[rbp]
	lea	rax, -776[rbp]
	movabs	rcx, 8617542898466512152
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -48[rbp]
	lea	rsi, -752[rbp]
	lea	rax, -760[rbp]
	movabs	rcx, -2894955027736174361
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -48[rbp]
	lea	rsi, -736[rbp]
	lea	rax, -744[rbp]
	movabs	rcx, -8324643657651060721
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR -736[rbp]
	lea	rsi, -1025[rbp]
	lea	rax, -728[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -776[rbp]
	mov	rcx, QWORD PTR -752[rbp]
	movzx	eax, BYTE PTR -1025[rbp]
	movzx	edx, al
	lea	rsi, -1024[rbp]
	lea	rax, -720[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -792[rbp]
	mov	rcx, QWORD PTR -768[rbp]
	movzx	eax, BYTE PTR -1024[rbp]
	movzx	edx, al
	lea	rsi, -1023[rbp]
	lea	rax, -712[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -816[rbp]
	lea	rsi, -1022[rbp]
	lea	rax, -704[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -728[rbp]
	mov	rcx, QWORD PTR -808[rbp]
	movzx	eax, BYTE PTR -1022[rbp]
	movzx	edx, al
	lea	rsi, -1021[rbp]
	lea	rax, -696[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -720[rbp]
	mov	rcx, QWORD PTR -800[rbp]
	movzx	eax, BYTE PTR -1021[rbp]
	movzx	edx, al
	lea	rsi, -1020[rbp]
	lea	rax, -688[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -712[rbp]
	movzx	eax, BYTE PTR -1026[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1031[rbp]
	movzx	ecx, al
	mov	rax, QWORD PTR -976[rbp]
	add	rax, rcx
	add	rdx, rax
	mov	rax, QWORD PTR -872[rbp]
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -1020[rbp]
	movzx	edx, al
	lea	rsi, -1019[rbp]
	lea	rax, -680[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -704[rbp]
	lea	rsi, -664[rbp]
	lea	rax, -672[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -672[rbp]
	lea	rsi, -648[rbp]
	lea	rax, -656[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -672[rbp]
	lea	rsi, -632[rbp]
	lea	rax, -640[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -672[rbp]
	lea	rsi, -616[rbp]
	lea	rax, -624[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -640[rbp]
	mov	rdx, QWORD PTR -616[rbp]
	lea	rsi, -1018[rbp]
	lea	rax, -608[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -624[rbp]
	mov	rdx, QWORD PTR -704[rbp]
	lea	rsi, -1017[rbp]
	lea	rax, -600[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -608[rbp]
	mov	rcx, QWORD PTR -696[rbp]
	movzx	eax, BYTE PTR -1017[rbp]
	movzx	edx, al
	lea	rsi, -1016[rbp]
	lea	rax, -592[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1018[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -632[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -1016[rbp]
	movzx	edx, al
	lea	rsi, -1015[rbp]
	lea	rax, -584[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -656[rbp]
	mov	rcx, QWORD PTR -680[rbp]
	movzx	eax, BYTE PTR -1015[rbp]
	movzx	edx, al
	lea	rsi, -1014[rbp]
	lea	rax, -576[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, -560[rbp]
	lea	rax, -568[rbp]
	movabs	rcx, 679271340751763220
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, -544[rbp]
	lea	rax, -552[rbp]
	movabs	rcx, 8617542898466512152
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, -528[rbp]
	lea	rax, -536[rbp]
	movabs	rcx, -2894955027736174361
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, -512[rbp]
	lea	rax, -520[rbp]
	movabs	rcx, -8324643657651060721
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -536[rbp]
	mov	rdx, QWORD PTR -512[rbp]
	lea	rsi, -1013[rbp]
	lea	rax, -504[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -552[rbp]
	mov	rcx, QWORD PTR -528[rbp]
	movzx	eax, BYTE PTR -1013[rbp]
	movzx	edx, al
	lea	rsi, -1012[rbp]
	lea	rax, -496[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -568[rbp]
	mov	rcx, QWORD PTR -544[rbp]
	movzx	eax, BYTE PTR -1012[rbp]
	movzx	edx, al
	lea	rsi, -1011[rbp]
	lea	rax, -488[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -592[rbp]
	lea	rsi, -1010[rbp]
	lea	rax, -480[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -504[rbp]
	mov	rcx, QWORD PTR -584[rbp]
	movzx	eax, BYTE PTR -1010[rbp]
	movzx	edx, al
	lea	rsi, -1009[rbp]
	lea	rax, -472[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -496[rbp]
	mov	rcx, QWORD PTR -576[rbp]
	movzx	eax, BYTE PTR -1009[rbp]
	movzx	edx, al
	lea	rsi, -1008[rbp]
	lea	rax, -464[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -1014[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1019[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1023[rbp]
	movzx	esi, al
	mov	rax, QWORD PTR -784[rbp]
	add	rax, rsi
	add	rax, rcx
	add	rdx, rax
	mov	rax, QWORD PTR -648[rbp]
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -1008[rbp]
	movzx	edx, al
	lea	rsi, -1007[rbp]
	lea	rax, -456[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -480[rbp]
	lea	rsi, -440[rbp]
	lea	rax, -448[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -448[rbp]
	lea	rsi, -424[rbp]
	lea	rax, -432[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -448[rbp]
	lea	rsi, -408[rbp]
	lea	rax, -416[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -448[rbp]
	lea	rsi, -392[rbp]
	lea	rax, -400[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR -392[rbp]
	lea	rsi, -1006[rbp]
	lea	rax, -384[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -400[rbp]
	mov	rdx, QWORD PTR -480[rbp]
	lea	rsi, -1005[rbp]
	lea	rax, -376[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -384[rbp]
	mov	rcx, QWORD PTR -472[rbp]
	movzx	eax, BYTE PTR -1005[rbp]
	movzx	edx, al
	lea	rsi, -1004[rbp]
	lea	rax, -368[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -1006[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -408[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -464[rbp]
	movzx	eax, BYTE PTR -1004[rbp]
	movzx	edx, al
	lea	rsi, -1003[rbp]
	lea	rax, -360[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -432[rbp]
	mov	rcx, QWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -1003[rbp]
	movzx	edx, al
	lea	rsi, -1002[rbp]
	lea	rax, -352[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, -336[rbp]
	lea	rax, -344[rbp]
	movabs	rcx, 679271340751763220
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, -320[rbp]
	lea	rax, -328[rbp]
	movabs	rcx, 8617542898466512152
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, -304[rbp]
	lea	rax, -312[rbp]
	movabs	rcx, -2894955027736174361
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, -288[rbp]
	lea	rax, -296[rbp]
	movabs	rcx, -8324643657651060721
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	lea	rsi, -1001[rbp]
	lea	rax, -280[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -328[rbp]
	mov	rcx, QWORD PTR -304[rbp]
	movzx	eax, BYTE PTR -1001[rbp]
	movzx	edx, al
	lea	rsi, -1000[rbp]
	lea	rax, -272[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -344[rbp]
	mov	rcx, QWORD PTR -320[rbp]
	movzx	eax, BYTE PTR -1000[rbp]
	movzx	edx, al
	lea	rsi, -999[rbp]
	lea	rax, -264[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR -368[rbp]
	lea	rsi, -998[rbp]
	lea	rax, -256[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -280[rbp]
	mov	rcx, QWORD PTR -360[rbp]
	movzx	eax, BYTE PTR -998[rbp]
	movzx	edx, al
	lea	rsi, -997[rbp]
	lea	rax, -248[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -272[rbp]
	mov	rcx, QWORD PTR -352[rbp]
	movzx	eax, BYTE PTR -997[rbp]
	movzx	edx, al
	lea	rsi, -996[rbp]
	lea	rax, -240[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -264[rbp]
	movzx	eax, BYTE PTR -1002[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -1007[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1011[rbp]
	movzx	esi, al
	mov	rax, QWORD PTR -560[rbp]
	add	rax, rsi
	add	rax, rcx
	add	rdx, rax
	mov	rax, QWORD PTR -424[rbp]
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -996[rbp]
	movzx	edx, al
	lea	rsi, -995[rbp]
	lea	rax, -232[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -256[rbp]
	lea	rsi, -216[rbp]
	lea	rax, -224[rbp]
	movabs	rcx, -7409212017489215489
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -200[rbp]
	lea	rax, -208[rbp]
	movabs	rcx, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -184[rbp]
	lea	rax, -192[rbp]
	movabs	rcx, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -168[rbp]
	lea	rax, -176[rbp]
	movabs	rcx, -7409212017489215487
	mov	rdi, rax
	call	fiat_pasta_fp_mulx_u64
	mov	rcx, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	lea	rsi, -994[rbp]
	lea	rax, -160[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	lea	rsi, -993[rbp]
	lea	rax, -152[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -160[rbp]
	mov	rcx, QWORD PTR -248[rbp]
	movzx	eax, BYTE PTR -993[rbp]
	movzx	edx, al
	lea	rsi, -992[rbp]
	lea	rax, -144[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -994[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -184[rbp]
	lea	rdi, [rdx+rax]
	mov	rcx, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR -992[rbp]
	movzx	edx, al
	lea	rsi, -991[rbp]
	lea	rax, -136[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	movzx	eax, BYTE PTR -991[rbp]
	movzx	edx, al
	lea	rsi, -990[rbp]
	lea	rax, -128[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	movzx	eax, BYTE PTR -990[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -995[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -999[rbp]
	movzx	esi, al
	mov	rax, QWORD PTR -336[rbp]
	add	rax, rsi
	add	rax, rcx
	add	rdx, rax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	lea	rsi, -989[rbp]
	lea	rax, -120[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -136[rbp]
	movzx	eax, BYTE PTR -989[rbp]
	movzx	edx, al
	lea	rsi, -988[rbp]
	lea	rax, -112[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -128[rbp]
	movzx	eax, BYTE PTR -988[rbp]
	movzx	edx, al
	lea	rsi, -987[rbp]
	lea	rax, -104[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -987[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rsi, -986[rbp]
	lea	rax, -96[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -986[rbp]
	movzx	edx, al
	lea	rsi, -985[rbp]
	lea	rax, -88[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR -985[rbp]
	movzx	esi, al
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR -985[rbp]
	movzx	esi, al
	lea	rax, -72[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -985[rbp]
	movzx	esi, al
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -985[rbp]
	movzx	esi, al
	mov	rcx, QWORD PTR -16[rbp]
	lea	rax, -56[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L18
	call	__stack_chk_fail@PLT
.L18:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	fiat_pasta_fp_to_montgomery, .-fiat_pasta_fp_to_montgomery
	.globl	fiat_pasta_fp_nonzero
	.type	fiat_pasta_fp_nonzero, @function
fiat_pasta_fp_nonzero:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	or	rax, rsi
	or	rax, rcx
	or	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	fiat_pasta_fp_nonzero, .-fiat_pasta_fp_nonzero
	.globl	fiat_pasta_fp_selectznz
	.type	fiat_pasta_fp_selectznz, @function
fiat_pasta_fp_selectznz:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	eax, esi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	BYTE PTR -60[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -24[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	fiat_pasta_fp_selectznz, .-fiat_pasta_fp_selectznz
	.globl	fiat_pasta_fp_to_bytes
	.type	fiat_pasta_fp_to_bytes, @function
fiat_pasta_fp_to_bytes:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 152
	mov	QWORD PTR -264[rbp], rdi
	mov	QWORD PTR -272[rbp], rsi
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	BYTE PTR -256[rbp], al
	mov	rax, QWORD PTR -200[rbp]
	shr	rax, 8
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	BYTE PTR -255[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	shr	rax, 8
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	BYTE PTR -254[rbp], al
	mov	rax, QWORD PTR -184[rbp]
	shr	rax, 8
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	BYTE PTR -253[rbp], al
	mov	rax, QWORD PTR -176[rbp]
	shr	rax, 8
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	BYTE PTR -252[rbp], al
	mov	rax, QWORD PTR -168[rbp]
	shr	rax, 8
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	BYTE PTR -251[rbp], al
	mov	rax, QWORD PTR -160[rbp]
	shr	rax, 8
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	BYTE PTR -250[rbp], al
	mov	rax, QWORD PTR -152[rbp]
	shr	rax, 8
	mov	BYTE PTR -249[rbp], al
	mov	rax, QWORD PTR -208[rbp]
	mov	BYTE PTR -248[rbp], al
	mov	rax, QWORD PTR -208[rbp]
	shr	rax, 8
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	BYTE PTR -247[rbp], al
	mov	rax, QWORD PTR -144[rbp]
	shr	rax, 8
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	BYTE PTR -246[rbp], al
	mov	rax, QWORD PTR -136[rbp]
	shr	rax, 8
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	BYTE PTR -245[rbp], al
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 8
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	BYTE PTR -244[rbp], al
	mov	rax, QWORD PTR -120[rbp]
	shr	rax, 8
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	BYTE PTR -243[rbp], al
	mov	rax, QWORD PTR -112[rbp]
	shr	rax, 8
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR -242[rbp], al
	mov	rax, QWORD PTR -104[rbp]
	shr	rax, 8
	mov	BYTE PTR -241[rbp], al
	mov	rax, QWORD PTR -216[rbp]
	mov	BYTE PTR -240[rbp], al
	mov	rax, QWORD PTR -216[rbp]
	shr	rax, 8
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	BYTE PTR -239[rbp], al
	mov	rax, QWORD PTR -96[rbp]
	shr	rax, 8
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR -238[rbp], al
	mov	rax, QWORD PTR -88[rbp]
	shr	rax, 8
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	BYTE PTR -237[rbp], al
	mov	rax, QWORD PTR -80[rbp]
	shr	rax, 8
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR -236[rbp], al
	mov	rax, QWORD PTR -72[rbp]
	shr	rax, 8
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR -235[rbp], al
	mov	rax, QWORD PTR -64[rbp]
	shr	rax, 8
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR -234[rbp], al
	mov	rax, QWORD PTR -56[rbp]
	shr	rax, 8
	mov	BYTE PTR -233[rbp], al
	mov	rax, QWORD PTR -224[rbp]
	mov	BYTE PTR -232[rbp], al
	mov	rax, QWORD PTR -224[rbp]
	shr	rax, 8
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR -231[rbp], al
	mov	rax, QWORD PTR -48[rbp]
	shr	rax, 8
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR -230[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	shr	rax, 8
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR -229[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 8
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR -228[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 8
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR -227[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 8
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR -226[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 8
	mov	BYTE PTR -225[rbp], al
	mov	rax, QWORD PTR -264[rbp]
	movzx	edx, BYTE PTR -256[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 1[rax]
	movzx	eax, BYTE PTR -255[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -254[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 3[rax]
	movzx	eax, BYTE PTR -253[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -252[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 5[rax]
	movzx	eax, BYTE PTR -251[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 6[rax]
	movzx	eax, BYTE PTR -250[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 7[rax]
	movzx	eax, BYTE PTR -249[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -248[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 9[rax]
	movzx	eax, BYTE PTR -247[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 10[rax]
	movzx	eax, BYTE PTR -246[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 11[rax]
	movzx	eax, BYTE PTR -245[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 12[rax]
	movzx	eax, BYTE PTR -244[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 13[rax]
	movzx	eax, BYTE PTR -243[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 14[rax]
	movzx	eax, BYTE PTR -242[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 15[rax]
	movzx	eax, BYTE PTR -241[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 16[rax]
	movzx	eax, BYTE PTR -240[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 17[rax]
	movzx	eax, BYTE PTR -239[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 18[rax]
	movzx	eax, BYTE PTR -238[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 19[rax]
	movzx	eax, BYTE PTR -237[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 20[rax]
	movzx	eax, BYTE PTR -236[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 21[rax]
	movzx	eax, BYTE PTR -235[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 22[rax]
	movzx	eax, BYTE PTR -234[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 23[rax]
	movzx	eax, BYTE PTR -233[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 24[rax]
	movzx	eax, BYTE PTR -232[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 25[rax]
	movzx	eax, BYTE PTR -231[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 26[rax]
	movzx	eax, BYTE PTR -230[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 27[rax]
	movzx	eax, BYTE PTR -229[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 28[rax]
	movzx	eax, BYTE PTR -228[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 29[rax]
	movzx	eax, BYTE PTR -227[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 30[rax]
	movzx	eax, BYTE PTR -226[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, 31[rax]
	movzx	eax, BYTE PTR -225[rbp]
	mov	BYTE PTR [rdx], al
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	fiat_pasta_fp_to_bytes, .-fiat_pasta_fp_to_bytes
	.globl	fiat_pasta_fp_from_bytes
	.type	fiat_pasta_fp_from_bytes, @function
fiat_pasta_fp_from_bytes:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 360
	mov	QWORD PTR -472[rbp], rdi
	mov	QWORD PTR -480[rbp], rsi
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 31
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 56
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 30
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 48
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 29
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 40
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 28
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 32
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 27
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 24
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 26
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 25
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	movzx	eax, BYTE PTR 24[rax]
	mov	BYTE PTR -452[rbp], al
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 23
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 56
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 22
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 48
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 21
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 40
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 20
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 32
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 19
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 24
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 18
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 17
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	movzx	eax, BYTE PTR 16[rax]
	mov	BYTE PTR -451[rbp], al
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 15
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 56
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 14
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 48
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 13
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 40
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 32
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 11
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 24
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 10
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 9
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	movzx	eax, BYTE PTR 8[rax]
	mov	BYTE PTR -450[rbp], al
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 7
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 56
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 6
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 48
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 40
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 32
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 24
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -449[rbp], al
	movzx	edx, BYTE PTR -449[rbp]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, rdx
	mov	QWORD PTR -224[rbp], rax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rdx, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	mov	rdx, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -176[rbp], rax
	movzx	edx, BYTE PTR -450[rbp]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rdx, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rdx, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	rdx, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -336[rbp]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	movzx	edx, BYTE PTR -451[rbp]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rdx, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rdx, QWORD PTR -360[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rdx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	movzx	edx, BYTE PTR -452[rbp]
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -416[rbp]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -472[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -472[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -472[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	fiat_pasta_fp_from_bytes, .-fiat_pasta_fp_from_bytes
	.globl	fiat_pasta_fp_set_one
	.type	fiat_pasta_fp_set_one, @function
fiat_pasta_fp_set_one:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movabs	rdx, 3780891978758094845
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movabs	rcx, -7409488961743547219
	mov	QWORD PTR [rax], rcx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 16
	mov	QWORD PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	movabs	rsi, 4611686018427387903
	mov	QWORD PTR [rax], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	fiat_pasta_fp_set_one, .-fiat_pasta_fp_set_one
	.globl	fiat_pasta_fp_msat
	.type	fiat_pasta_fp_msat, @function
fiat_pasta_fp_msat:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movabs	rdx, -7409212017489215487
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movabs	rcx, 2469829653914515739
	mov	QWORD PTR [rax], rcx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 16
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	movabs	rsi, 4611686018427387904
	mov	QWORD PTR [rax], rsi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	QWORD PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	fiat_pasta_fp_msat, .-fiat_pasta_fp_msat
	.globl	fiat_pasta_fp_divstep_precomp
	.type	fiat_pasta_fp_divstep_precomp, @function
fiat_pasta_fp_divstep_precomp:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movabs	rdx, -1468280417008786046
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movabs	rcx, 7049443369634575259
	mov	QWORD PTR [rax], rcx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 16
	movabs	rsi, 5471993705122918893
	mov	QWORD PTR [rax], rsi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	movabs	rdi, 2846881873628060198
	mov	QWORD PTR [rax], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	fiat_pasta_fp_divstep_precomp, .-fiat_pasta_fp_divstep_precomp
	.globl	fiat_pasta_fp_divstep
	.type	fiat_pasta_fp_divstep, @function
fiat_pasta_fp_divstep:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 816
	mov	QWORD PTR -744[rbp], rdi
	mov	QWORD PTR -752[rbp], rsi
	mov	QWORD PTR -760[rbp], rdx
	mov	QWORD PTR -768[rbp], rcx
	mov	QWORD PTR -776[rbp], r8
	mov	QWORD PTR -784[rbp], r9
	mov	rax, QWORD PTR 16[rbp]
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR 24[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR 32[rbp]
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR 40[rbp]
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -784[rbp]
	not	rax
	mov	rdx, rax
	lea	rsi, -729[rbp]
	lea	rax, -688[rbp]
	mov	r8d, 1
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -688[rbp]
	shr	rax, 63
	mov	edx, eax
	mov	rax, QWORD PTR -800[rbp]
	mov	rax, QWORD PTR [rax]
	and	eax, 1
	and	eax, edx
	mov	BYTE PTR -690[rbp], al
	mov	rax, QWORD PTR -784[rbp]
	not	rax
	mov	rdx, rax
	lea	rsi, -728[rbp]
	lea	rax, -680[rbp]
	mov	r8d, 1
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -680[rbp]
	movzx	esi, BYTE PTR -690[rbp]
	mov	rdx, QWORD PTR -784[rbp]
	lea	rax, -672[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -800[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -792[rbp]
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -664[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -656[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -648[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -640[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 32
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 32
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -632[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -792[rbp]
	mov	rax, QWORD PTR [rax]
	not	rax
	mov	rdx, rax
	lea	rsi, -727[rbp]
	lea	rax, -624[rbp]
	mov	r8, rdx
	mov	ecx, 1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	not	rax
	mov	rcx, rax
	movzx	eax, BYTE PTR -727[rbp]
	movzx	edx, al
	lea	rsi, -726[rbp]
	lea	rax, -616[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	not	rax
	mov	rcx, rax
	movzx	eax, BYTE PTR -726[rbp]
	movzx	edx, al
	lea	rsi, -725[rbp]
	lea	rax, -608[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	not	rax
	mov	rcx, rax
	movzx	eax, BYTE PTR -725[rbp]
	movzx	edx, al
	lea	rsi, -724[rbp]
	lea	rax, -600[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 32
	mov	rax, QWORD PTR [rax]
	not	rax
	mov	rcx, rax
	movzx	eax, BYTE PTR -724[rbp]
	movzx	edx, al
	lea	rsi, -723[rbp]
	lea	rax, -592[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR -800[rbp]
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -584[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -576[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -608[rbp]
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -568[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -560[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 32
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -552[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -816[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -808[rbp]
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -544[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -808[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -536[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -808[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -528[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -808[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -520[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -544[rbp]
	mov	rdx, QWORD PTR -544[rbp]
	lea	rsi, -722[rbp]
	lea	rax, -512[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -536[rbp]
	mov	rcx, QWORD PTR -536[rbp]
	movzx	eax, BYTE PTR -722[rbp]
	movzx	edx, al
	lea	rsi, -721[rbp]
	lea	rax, -504[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -528[rbp]
	mov	rcx, QWORD PTR -528[rbp]
	movzx	eax, BYTE PTR -721[rbp]
	movzx	edx, al
	lea	rsi, -720[rbp]
	lea	rax, -496[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -520[rbp]
	mov	rcx, QWORD PTR -520[rbp]
	movzx	eax, BYTE PTR -720[rbp]
	movzx	edx, al
	lea	rsi, -719[rbp]
	lea	rax, -488[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -512[rbp]
	lea	rsi, -718[rbp]
	lea	rax, -480[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -504[rbp]
	movzx	eax, BYTE PTR -718[rbp]
	movzx	edx, al
	lea	rsi, -717[rbp]
	lea	rax, -472[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -496[rbp]
	movzx	eax, BYTE PTR -717[rbp]
	movzx	edx, al
	lea	rsi, -716[rbp]
	lea	rax, -464[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -716[rbp]
	movzx	edx, al
	lea	rsi, -715[rbp]
	lea	rax, -456[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -719[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -715[rbp]
	movzx	edx, al
	lea	rsi, -714[rbp]
	lea	rax, -448[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	lea	rsi, -713[rbp]
	lea	rax, -440[rbp]
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -713[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -64[rbp]
	lea	rsi, -712[rbp]
	lea	rax, -432[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -712[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -72[rbp]
	lea	rsi, -711[rbp]
	lea	rax, -424[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -711[rbp]
	movzx	edx, al
	mov	rcx, QWORD PTR -80[rbp]
	lea	rsi, -710[rbp]
	lea	rax, -416[rbp]
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -710[rbp]
	movzx	esi, al
	lea	rax, -408[rbp]
	mov	rcx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -408[rbp]
	movabs	rdx, -7409212017489215487
	and	rax, rdx
	mov	rcx, rax
	mov	rdx, QWORD PTR -440[rbp]
	lea	rsi, -709[rbp]
	lea	rax, -400[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -408[rbp]
	movabs	rdx, 2469829653914515739
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -432[rbp]
	movzx	eax, BYTE PTR -709[rbp]
	movzx	edx, al
	lea	rsi, -708[rbp]
	lea	rax, -392[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -424[rbp]
	movzx	eax, BYTE PTR -708[rbp]
	movzx	edx, al
	lea	rsi, -707[rbp]
	lea	rax, -384[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -408[rbp]
	movabs	rdx, 4611686018427387904
	and	rax, rdx
	mov	rdi, rax
	mov	rcx, QWORD PTR -416[rbp]
	movzx	eax, BYTE PTR -707[rbp]
	movzx	edx, al
	lea	rsi, -706[rbp]
	lea	rax, -376[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rcx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -816[rbp]
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -368[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -360[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -352[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	movzx	esi, BYTE PTR -690[rbp]
	lea	rax, -344[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rax, QWORD PTR -584[rbp]
	and	eax, 1
	mov	BYTE PTR -689[rbp], al
	mov	rdx, QWORD PTR -664[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -336[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -656[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -328[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -648[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -320[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -640[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -312[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -632[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -304[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -336[rbp]
	mov	rdx, QWORD PTR -584[rbp]
	lea	rsi, -705[rbp]
	lea	rax, -296[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -328[rbp]
	mov	rcx, QWORD PTR -576[rbp]
	movzx	eax, BYTE PTR -705[rbp]
	movzx	edx, al
	lea	rsi, -704[rbp]
	lea	rax, -288[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR -568[rbp]
	movzx	eax, BYTE PTR -704[rbp]
	movzx	edx, al
	lea	rsi, -703[rbp]
	lea	rax, -280[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -312[rbp]
	mov	rcx, QWORD PTR -560[rbp]
	movzx	eax, BYTE PTR -703[rbp]
	movzx	edx, al
	lea	rsi, -702[rbp]
	lea	rax, -272[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -304[rbp]
	mov	rcx, QWORD PTR -552[rbp]
	movzx	eax, BYTE PTR -702[rbp]
	movzx	edx, al
	lea	rsi, -701[rbp]
	lea	rax, -264[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -544[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -256[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -536[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -248[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -528[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -240[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -520[rbp]
	movzx	esi, BYTE PTR -689[rbp]
	lea	rax, -232[rbp]
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -368[rbp]
	lea	rsi, -700[rbp]
	lea	rax, -224[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -248[rbp]
	mov	rcx, QWORD PTR -360[rbp]
	movzx	eax, BYTE PTR -700[rbp]
	movzx	edx, al
	lea	rsi, -699[rbp]
	lea	rax, -216[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -352[rbp]
	movzx	eax, BYTE PTR -699[rbp]
	movzx	edx, al
	lea	rsi, -698[rbp]
	lea	rax, -208[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdi, QWORD PTR -232[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -698[rbp]
	movzx	edx, al
	lea	rsi, -697[rbp]
	lea	rax, -200[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rdx, QWORD PTR -224[rbp]
	lea	rsi, -696[rbp]
	lea	rax, -192[rbp]
	movabs	r8, -7409212017489215487
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -696[rbp]
	movzx	edx, al
	lea	rsi, -695[rbp]
	lea	rax, -184[rbp]
	movabs	r8, 2469829653914515739
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -695[rbp]
	movzx	edx, al
	lea	rsi, -694[rbp]
	lea	rax, -176[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rcx, QWORD PTR -200[rbp]
	movzx	eax, BYTE PTR -694[rbp]
	movzx	edx, al
	lea	rsi, -693[rbp]
	lea	rax, -168[rbp]
	movabs	r8, 4611686018427387904
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	movzx	eax, BYTE PTR -697[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -693[rbp]
	movzx	edx, al
	lea	rsi, -692[rbp]
	lea	rax, -160[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_pasta_fp_subborrowx_u64
	mov	rdx, QWORD PTR -672[rbp]
	lea	rsi, -691[rbp]
	lea	rax, -152[rbp]
	mov	r8d, 1
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_pasta_fp_addcarryx_u64
	mov	rax, QWORD PTR -296[rbp]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -288[rbp]
	sal	rax, 63
	or	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -280[rbp]
	sal	rax, 63
	or	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -272[rbp]
	sal	rax, 63
	or	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -264[rbp]
	sal	rax, 63
	or	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	movabs	rdx, -9223372036854775808
	and	rdx, rax
	mov	rax, QWORD PTR -264[rbp]
	shr	rax
	or	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rcx, QWORD PTR -512[rbp]
	mov	rdx, QWORD PTR -480[rbp]
	movzx	eax, BYTE PTR -714[rbp]
	movzx	esi, al
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -472[rbp]
	movzx	eax, BYTE PTR -714[rbp]
	movzx	esi, al
	lea	rax, -136[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -496[rbp]
	mov	rdx, QWORD PTR -464[rbp]
	movzx	eax, BYTE PTR -714[rbp]
	movzx	esi, al
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -488[rbp]
	mov	rdx, QWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -714[rbp]
	movzx	esi, al
	lea	rax, -120[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR -692[rbp]
	movzx	esi, al
	lea	rax, -112[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR -184[rbp]
	movzx	eax, BYTE PTR -692[rbp]
	movzx	esi, al
	lea	rax, -104[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -208[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	movzx	eax, BYTE PTR -692[rbp]
	movzx	esi, al
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rcx, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR -692[rbp]
	movzx	esi, al
	lea	rax, -88[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_cmovznz_u64
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rdx, QWORD PTR -664[rbp]
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -752[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -752[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -648[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -752[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -640[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -752[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -632[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -760[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -760[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -760[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -760[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -768[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -768[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -768[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -768[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -776[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -776[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -776[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -776[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L28
	call	__stack_chk_fail@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	fiat_pasta_fp_divstep, .-fiat_pasta_fp_divstep
	.globl	fiat_pasta_fp_copy
	.type	fiat_pasta_fp_copy, @function
fiat_pasta_fp_copy:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -8[rbp], 0
	jmp	.L30
.L31:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	add	QWORD PTR -8[rbp], 1
.L30:
	cmp	QWORD PTR -8[rbp], 3
	jbe	.L31
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	fiat_pasta_fp_copy, .-fiat_pasta_fp_copy
	.globl	fiat_pasta_fp_pow
	.type	fiat_pasta_fp_pow, @function
fiat_pasta_fp_pow:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_set_one
	mov	QWORD PTR -56[rbp], 0
	jmp	.L33
.L35:
	mov	rdx, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_square
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L34
	mov	rdx, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	mov	rdx, QWORD PTR -80[rbp]
	lea	rcx, -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_mul
.L34:
	add	QWORD PTR -56[rbp], 1
.L33:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -96[rbp]
	jb	.L35
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L36
	call	__stack_chk_fail@PLT
.L36:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	fiat_pasta_fp_pow, .-fiat_pasta_fp_pow
	.section	.rodata
	.align 32
.LC0:
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.text
	.globl	fiat_pasta_fp_inv
	.type	fiat_pasta_fp_inv, @function
fiat_pasta_fp_inv:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 288
	mov	QWORD PTR -280[rbp], rdi
	mov	QWORD PTR -288[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -272[rbp]
	lea	rdx, .LC0[rip]
	mov	ecx, 31
	mov	rdi, rax
	mov	rsi, rdx
	rep movsq
	mov	rdx, rsi
	mov	rax, rdi
	mov	ecx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], ecx
	lea	rax, 4[rax]
	lea	rdx, 4[rdx]
	movzx	ecx, WORD PTR [rdx]
	mov	WORD PTR [rax], cx
	lea	rax, 2[rax]
	lea	rdx, 2[rdx]
	movzx	ecx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], cl
	lea	rdx, -272[rbp]
	mov	rsi, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	ecx, 255
	mov	rdi, rax
	call	fiat_pasta_fp_pow
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L38
	call	__stack_chk_fail@PLT
.L38:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	fiat_pasta_fp_inv, .-fiat_pasta_fp_inv
	.globl	fiat_pasta_fp_equals
	.type	fiat_pasta_fp_equals, @function
fiat_pasta_fp_equals:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_sub
	lea	rdx, -48[rbp]
	lea	rax, -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_nonzero
	mov	rax, QWORD PTR -56[rbp]
	test	rax, rax
	je	.L40
	mov	eax, 0
	jmp	.L42
.L40:
	mov	eax, 1
.L42:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L43
	call	__stack_chk_fail@PLT
.L43:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	fiat_pasta_fp_equals, .-fiat_pasta_fp_equals
	.globl	fiat_pasta_fp_equals_zero
	.type	fiat_pasta_fp_equals_zero, @function
fiat_pasta_fp_equals_zero:
.LFB23:
	.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 -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -24[rbp]
	lea	rax, -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_nonzero
	mov	rax, QWORD PTR -16[rbp]
	test	rax, rax
	je	.L45
	mov	eax, 0
	jmp	.L47
.L45:
	mov	eax, 1
.L47:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L48
	call	__stack_chk_fail@PLT
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	fiat_pasta_fp_equals_zero, .-fiat_pasta_fp_equals_zero
	.globl	fiat_pasta_fp_equals_one
	.type	fiat_pasta_fp_equals_one, @function
fiat_pasta_fp_equals_one:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_set_one
	lea	rdx, -80[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_sub
	lea	rdx, -48[rbp]
	lea	rax, -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_nonzero
	mov	rax, QWORD PTR -88[rbp]
	test	rax, rax
	je	.L50
	mov	eax, 0
	jmp	.L52
.L50:
	mov	eax, 1
.L52:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L53
	call	__stack_chk_fail@PLT
.L53:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	fiat_pasta_fp_equals_one, .-fiat_pasta_fp_equals_one
	.globl	fiat_pasta_fp_legendre
	.type	fiat_pasta_fp_legendre, @function
fiat_pasta_fp_legendre:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rsi, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	mov	ecx, 254
	lea	rdx, P_MINUS_1_OVER_2[rip]
	mov	rdi, rax
	call	fiat_pasta_fp_pow
	mov	rdx, QWORD PTR -72[rbp]
	lea	rax, -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_nonzero
	mov	rax, QWORD PTR -56[rbp]
	test	rax, rax
	je	.L55
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_equals_one
	test	al, al
	je	.L56
	mov	eax, 1
	jmp	.L58
.L56:
	mov	eax, -1
	jmp	.L58
.L55:
	mov	eax, 0
.L58:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L59
	call	__stack_chk_fail@PLT
.L59:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	fiat_pasta_fp_legendre, .-fiat_pasta_fp_legendre
	.section	.rodata
.LC1:
	.string	"[ "
.LC2:
	.string	"0x%lx, "
.LC3:
	.string	"] "
	.text
	.globl	fiat_pasta_fp_print
	.type	fiat_pasta_fp_print, @function
fiat_pasta_fp_print:
.LFB26:
	.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 -24[rbp], rdi
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	mov	QWORD PTR -8[rbp], 0
	jmp	.L61
.L62:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	add	QWORD PTR -8[rbp], 1
.L61:
	cmp	QWORD PTR -8[rbp], 3
	jbe	.L62
	lea	rdi, .LC3[rip]
	call	puts@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	fiat_pasta_fp_print, .-fiat_pasta_fp_print
	.globl	fiat_pasta_fp_sqrt
	.type	fiat_pasta_fp_sqrt, @function
fiat_pasta_fp_sqrt:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 528
	mov	QWORD PTR -520[rbp], rdi
	mov	QWORD PTR -528[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -528[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_equals_zero
	test	al, al
	je	.L64
	mov	QWORD PTR -496[rbp], 0
	jmp	.L65
.L66:
	mov	rax, QWORD PTR -496[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -520[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	add	QWORD PTR -496[rbp], 1
.L65:
	cmp	QWORD PTR -496[rbp], 3
	jbe	.L66
	mov	eax, 1
	jmp	.L75
.L64:
	mov	edx, 254
	mov	rsi, QWORD PTR -528[rbp]
	lea	rax, -464[rbp]
	mov	rcx, rdx
	lea	rdx, P_MINUS_1_OVER_2[rip]
	mov	rdi, rax
	call	fiat_pasta_fp_pow
	lea	rax, -464[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_equals_one
	xor	eax, 1
	test	al, al
	je	.L68
	mov	eax, 0
	jmp	.L75
.L68:
	lea	rax, -432[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_set_one
	mov	QWORD PTR -488[rbp], 32
	movabs	rax, -6733523241042256912
	mov	QWORD PTR -400[rbp], rax
	movabs	rax, -8033351893978367521
	mov	QWORD PTR -392[rbp], rax
	movabs	rax, -313358844173990770
	mov	QWORD PTR -384[rbp], rax
	movabs	rax, 4524191781424318170
	mov	QWORD PTR -376[rbp], rax
	lea	rdx, -240[rbp]
	mov	eax, 0
	mov	ecx, 27
	mov	rdi, rdx
	rep stosq
	mov	rdx, rdi
	mov	DWORD PTR [rdx], eax
	add	rdx, 4
	mov	WORD PTR [rdx], ax
	add	rdx, 2
	mov	BYTE PTR -240[rbp], 1
	mov	BYTE PTR -111[rbp], 1
	mov	BYTE PTR -107[rbp], 1
	mov	BYTE PTR -104[rbp], 1
	mov	BYTE PTR -100[rbp], 1
	mov	BYTE PTR -99[rbp], 1
	mov	BYTE PTR -97[rbp], 1
	mov	BYTE PTR -94[rbp], 1
	mov	BYTE PTR -93[rbp], 1
	mov	BYTE PTR -89[rbp], 1
	mov	BYTE PTR -88[rbp], 1
	mov	BYTE PTR -87[rbp], 1
	mov	BYTE PTR -86[rbp], 1
	mov	BYTE PTR -85[rbp], 1
	mov	BYTE PTR -84[rbp], 1
	mov	BYTE PTR -77[rbp], 1
	mov	BYTE PTR -74[rbp], 1
	mov	BYTE PTR -72[rbp], 1
	mov	BYTE PTR -69[rbp], 1
	mov	BYTE PTR -68[rbp], 1
	mov	BYTE PTR -65[rbp], 1
	mov	BYTE PTR -64[rbp], 1
	mov	BYTE PTR -63[rbp], 1
	mov	BYTE PTR -62[rbp], 1
	mov	BYTE PTR -61[rbp], 1
	mov	BYTE PTR -58[rbp], 1
	mov	BYTE PTR -54[rbp], 1
	mov	BYTE PTR -53[rbp], 1
	mov	BYTE PTR -51[rbp], 1
	mov	BYTE PTR -50[rbp], 1
	mov	BYTE PTR -49[rbp], 1
	mov	BYTE PTR -46[rbp], 1
	mov	BYTE PTR -45[rbp], 1
	mov	BYTE PTR -42[rbp], 1
	mov	BYTE PTR -39[rbp], 1
	mov	BYTE PTR -37[rbp], 1
	mov	BYTE PTR -36[rbp], 1
	mov	BYTE PTR -34[rbp], 1
	mov	BYTE PTR -31[rbp], 1
	mov	BYTE PTR -30[rbp], 1
	mov	BYTE PTR -25[rbp], 1
	mov	BYTE PTR -24[rbp], 1
	mov	BYTE PTR -23[rbp], 1
	mov	BYTE PTR -21[rbp], 1
	mov	BYTE PTR -20[rbp], 1
	mov	QWORD PTR -472[rbp], 222
	mov	rcx, QWORD PTR -472[rbp]
	lea	rdx, -240[rbp]
	mov	rsi, QWORD PTR -528[rbp]
	lea	rax, -368[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_pow
	lea	rdx, -368[rbp]
	mov	rcx, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR -520[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_mul
	lea	rdx, -368[rbp]
	mov	rcx, QWORD PTR -520[rbp]
	lea	rax, -336[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_mul
	jmp	.L69
.L74:
	mov	QWORD PTR -480[rbp], 0
	lea	rdx, -336[rbp]
	lea	rax, -304[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	jmp	.L70
.L71:
	lea	rdx, -304[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	lea	rdx, -272[rbp]
	lea	rax, -304[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_square
	add	QWORD PTR -480[rbp], 1
.L70:
	lea	rax, -304[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_equals_one
	xor	eax, 1
	test	al, al
	jne	.L71
	mov	rax, QWORD PTR -488[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -480[rbp]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	sub	eax, 1
	mov	DWORD PTR -500[rbp], eax
	lea	rdx, -400[rbp]
	lea	rax, -368[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	jmp	.L72
.L73:
	lea	rdx, -368[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	lea	rdx, -272[rbp]
	lea	rax, -368[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_square
	sub	DWORD PTR -500[rbp], 1
.L72:
	cmp	DWORD PTR -500[rbp], 0
	jg	.L73
	lea	rdx, -368[rbp]
	lea	rax, -400[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_square
	lea	rdx, -336[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	lea	rdx, -400[rbp]
	lea	rcx, -272[rbp]
	lea	rax, -336[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_mul
	mov	rdx, QWORD PTR -520[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fiat_pasta_fp_copy
	lea	rdx, -368[rbp]
	lea	rcx, -272[rbp]
	mov	rax, QWORD PTR -520[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	fiat_pasta_fp_mul
	mov	rax, QWORD PTR -480[rbp]
	mov	QWORD PTR -488[rbp], rax
.L69:
	lea	rax, -336[rbp]
	mov	rdi, rax
	call	fiat_pasta_fp_equals_one
	xor	eax, 1
	test	al, al
	jne	.L74
	mov	eax, 1
.L75:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L76
	call	__stack_chk_fail@PLT
.L76:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	fiat_pasta_fp_sqrt, .-fiat_pasta_fp_sqrt
	.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	"198581385.c"
	.text
	.global	P_MINUS_1_OVER_2
	.section	.rodata
	.align	2
	.type	P_MINUS_1_OVER_2, %object
	.size	P_MINUS_1_OVER_2, 254
P_MINUS_1_OVER_2:
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.global	P_MINUS_1_OVER_2_LEN
	.align	2
	.type	P_MINUS_1_OVER_2_LEN, %object
	.size	P_MINUS_1_OVER_2_LEN, 4
P_MINUS_1_OVER_2_LEN:
	.word	254
	.text
	.align	2
	.global	fiat_pasta_fp_addcarryx_u64
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_addcarryx_u64, %function
fiat_pasta_fp_addcarryx_u64:
	@ args = 16, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-37]
	ldrb	r2, [fp, #-37]	@ zero_extendqisi2
	mov	r3, #0
	add	r1, fp, #12
	ldmia	r1, {r0-r1}
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-28]
	str	r7, [fp, #-24]
	ldmib	fp, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	adds	r4, r0, r2
	adc	r5, r1, r3
	ldr	r3, [fp, #-32]
	stm	r3, {r4-r5}
	ldr	r3, [fp, #-32]
	ldmia	r3, {r2-r3}
	ldmib	fp, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	movhi	r3, #1
	movls	r3, #0
	and	ip, r3, #255
	add	r1, fp, #12
	ldmia	r1, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	orr	r3, ip, r3
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-36]
	strb	r2, [r3]
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	fiat_pasta_fp_addcarryx_u64, .-fiat_pasta_fp_addcarryx_u64
	.align	2
	.global	fiat_pasta_fp_subborrowx_u64
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_subborrowx_u64, %function
fiat_pasta_fp_subborrowx_u64:
	@ args = 16, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-37]
	ldrb	r2, [fp, #-37]	@ zero_extendqisi2
	mov	r3, #0
	add	r1, fp, #12
	ldmia	r1, {r0-r1}
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-28]
	str	r7, [fp, #-24]
	ldmib	fp, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	subs	r4, r0, r2
	sbc	r5, r1, r3
	ldr	r3, [fp, #-32]
	stm	r3, {r4-r5}
	ldr	r3, [fp, #-32]
	ldmia	r3, {r2-r3}
	ldmib	fp, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	movcc	r3, #1
	movcs	r3, #0
	and	ip, r3, #255
	add	r1, fp, #12
	ldmia	r1, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	orr	r3, ip, r3
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-36]
	strb	r2, [r3]
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	fiat_pasta_fp_subborrowx_u64, .-fiat_pasta_fp_subborrowx_u64
	.align	2
	.global	fiat_pasta_fp_mulx_u64
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_mulx_u64, %function
fiat_pasta_fp_mulx_u64:
	@ args = 8, pretend = 0, frame = 112
	@ 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, #116
	str	r0, [fp, #-112]
	str	r1, [fp, #-116]
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-124]
	mov	r2, r3
	mov	r3, #0
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #4]
	mov	r2, r3
	mov	r3, #0
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldmib	fp, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-84]
	mul	r2, r3, r2
	ldr	r3, [fp, #-80]
	ldr	r1, [fp, #-100]
	mul	r3, r1, r3
	add	ip, r2, r3
	ldr	r0, [fp, #-100]
	ldr	r1, [fp, #-84]
	umull	r2, r3, r0, r1
	add	r1, ip, r3
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-92]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	ldr	r1, [fp, #-100]
	mul	r3, r1, r3
	add	ip, r2, r3
	ldr	r0, [fp, #-100]
	ldr	r1, [fp, #-92]
	umull	r2, r3, r0, r1
	add	r1, ip, r3
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-108]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	ldr	r1, [fp, #-84]
	mul	r3, r1, r3
	add	ip, r2, r3
	ldr	r0, [fp, #-84]
	ldr	r1, [fp, #-108]
	umull	r2, r3, r0, r1
	add	r1, ip, r3
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #-92]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	ldr	r1, [fp, #-108]
	mul	r3, r1, r3
	add	ip, r2, r3
	ldr	r0, [fp, #-108]
	ldr	r1, [fp, #-92]
	umull	r2, r3, r0, r1
	add	r1, ip, r3
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-68]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-60]
	mov	r2, r3
	mov	r3, #0
	adds	r8, r0, r2
	adc	r9, r1, r3
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	adds	r1, r8, r2
	str	r1, [fp, #-132]
	adc	r3, r9, r3
	str	r3, [fp, #-128]
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-128]
	mov	r2, r1
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	adds	r6, r2, r0
	adc	r7, r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	adds	r4, r6, r2
	adc	r5, r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	adds	r1, r2, r4
	str	r1, [fp, #-140]
	adc	r3, r3, r5
	str	r3, [fp, #-136]
	sub	r4, fp, #140
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r1, [fp, #-116]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #8]
	ldr	r1, [fp, #-124]
	mul	r3, r1, r3
	add	r1, r2, r3
	ldr	ip, [fp, #-124]
	ldr	r0, [fp, #4]
	umull	r2, r3, ip, r0
	add	r1, r1, r3
	mov	r3, r1
	ldr	r1, [fp, #-112]
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_pasta_fp_mulx_u64, .-fiat_pasta_fp_mulx_u64
	.align	2
	.global	fiat_pasta_fp_cmovznz_u64
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_cmovznz_u64, %function
fiat_pasta_fp_cmovznz_u64:
	@ args = 8, pretend = 0, frame = 48
	@ 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, #52
	str	r0, [fp, #-56]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, r1
	strb	r3, [fp, #-57]
	ldrb	r3, [fp, #-57]	@ zero_extendqisi2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	strb	r3, [fp, #-45]
	ldrb	r3, [fp, #-45]
	rsb	r3, r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	asr	r3, r2, #31
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldmib	fp, {r2-r3}
	and	r6, r0, r2
	and	r7, r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mvn	r8, r2
	mvn	r9, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	and	r4, r8, r2
	and	r5, r9, r3
	orr	r3, r6, r4
	str	r3, [fp, #-76]
	orr	r3, r7, r5
	str	r3, [fp, #-72]
	sub	r4, fp, #76
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r1, [fp, #-56]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_pasta_fp_cmovznz_u64, .-fiat_pasta_fp_cmovznz_u64
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_mul
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_mul, %function
fiat_pasta_fp_mul:
	@ args = 0, pretend = 0, frame = 1264
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1280
	str	r0, [fp, #-1208]
	str	r1, [fp, #-1212]
	str	r2, [fp, #-1216]
	ldr	r3, .L7+24
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-1216]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1120
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1136
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1104
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1120
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1088
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1104
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1088
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1092]
	ldr	r1, [fp, #-1088]
	ldr	r2, [fp, #-1116]
	ldr	r3, [fp, #-1112]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #8
	sub	lr, fp, #1072
	sub	lr, lr, #12
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1204]	@ zero_extendqisi2
	ldr	r0, [fp, #-1108]
	ldr	r1, [fp, #-1104]
	ldr	r2, [fp, #-1132]
	ldr	r3, [fp, #-1128]
	sub	lr, fp, #1184
	sub	lr, lr, #12
	sub	lr, lr, #7
	sub	ip, fp, #1056
	sub	ip, ip, #12
	sub	ip, ip, #8
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1203]	@ zero_extendqisi2
	ldr	r0, [fp, #-1124]
	ldr	r1, [fp, #-1120]
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1144]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #6
	sub	lr, fp, #1056
	sub	lr, lr, #12
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1202]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldr	r2, [fp, #-1140]
	ldr	r3, [fp, #-1136]
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-124]
	str	r7, [fp, #-120]
	ldr	r0, [fp, #-1100]
	ldr	r1, [fp, #-1096]
	sub	lr, fp, #1040
	sub	lr, lr, #12
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #8
	adr	r3, .L7
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1024
	sub	lr, lr, #12
	sub	ip, fp, #1040
	sub	ip, ip, #4
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1020
	sub	ip, fp, #1024
	sub	ip, ip, #4
	adr	r3, .L7+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1004
	sub	ip, fp, #1012
	adr	r3, .L7+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #1004
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1028]
	ldr	r3, [fp, #-1024]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #5
	sub	lr, fp, #996
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1201]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #1020
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	str	r8, [fp, #-116]
	str	r9, [fp, #-112]
	ldr	r0, [fp, #-1100]
	ldr	r1, [fp, #-1096]
	sub	r3, fp, #1012
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #4
	sub	lr, fp, #988
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1200]	@ zero_extendqisi2
	ldr	r0, [fp, #-1084]
	ldr	r1, [fp, #-1080]
	sub	r3, fp, #996
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #3
	sub	lr, fp, #980
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1199]	@ zero_extendqisi2
	ldr	r0, [fp, #-1076]
	ldr	r1, [fp, #-1072]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #972
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1198]	@ zero_extendqisi2
	ldr	r0, [fp, #-1068]
	ldr	r1, [fp, #-1064]
	ldr	r2, [fp, #-1044]
	ldr	r3, [fp, #-1040]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #964
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1197]	@ zero_extendqisi2
	ldr	r2, [fp, #-1036]
	ldr	r3, [fp, #-1032]
	sub	r1, fp, #1184
	sub	r1, r1, #12
	sub	r0, fp, #956
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #940
	sub	r0, fp, #948
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #924
	sub	r0, fp, #932
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #908
	sub	r0, fp, #916
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #892
	sub	r0, fp, #900
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #892
	ldmia	r1, {r0-r1}
	sub	r3, fp, #916
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #15
	sub	lr, fp, #884
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1195]	@ zero_extendqisi2
	sub	r1, fp, #908
	ldmia	r1, {r0-r1}
	sub	r3, fp, #932
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #14
	sub	lr, fp, #876
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1194]	@ zero_extendqisi2
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	sub	r3, fp, #948
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #13
	sub	lr, fp, #868
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1193]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	b	.L8
.L9:
	.align	3
.L7:
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC2
.L8:
	sub	r3, fp, #940
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1228]
	adc	r3, r1, r3
	str	r3, [fp, #-1224]
	ldr	r3, [fp, #-1228]
	ldr	r4, [fp, #-1224]
	str	r3, [fp, #-108]
	str	r4, [fp, #-104]
	sub	r1, fp, #980
	ldmia	r1, {r0-r1}
	sub	r3, fp, #900
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #12
	sub	lr, fp, #860
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1192]	@ zero_extendqisi2
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #11
	sub	lr, fp, #852
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1191]	@ zero_extendqisi2
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #10
	sub	lr, fp, #844
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1190]	@ zero_extendqisi2
	sub	r1, fp, #956
	ldmia	r1, {r0-r1}
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #9
	sub	lr, fp, #836
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1189]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1196]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #8
	sub	lr, fp, #828
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	lr, fp, #812
	sub	ip, fp, #820
	adr	r3, .L10
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #796
	sub	ip, fp, #804
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #780
	sub	ip, fp, #788
	adr	r3, .L10+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #764
	sub	ip, fp, #772
	adr	r3, .L10+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #764
	ldmia	r1, {r0-r1}
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #7
	sub	lr, fp, #756
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1187]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #780
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1236]
	adc	r3, r1, r3
	str	r3, [fp, #-1232]
	ldr	r3, [fp, #-1236]
	ldr	r4, [fp, #-1232]
	str	r3, [fp, #-100]
	str	r4, [fp, #-96]
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #6
	sub	lr, fp, #748
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1186]	@ zero_extendqisi2
	sub	r1, fp, #852
	ldmia	r1, {r0-r1}
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #5
	sub	lr, fp, #740
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1185]	@ zero_extendqisi2
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #4
	sub	lr, fp, #732
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1184]	@ zero_extendqisi2
	sub	r1, fp, #836
	ldmia	r1, {r0-r1}
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #3
	sub	lr, fp, #724
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1183]	@ zero_extendqisi2
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #716
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1182]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1188]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1244]
	adc	r3, r1, r3
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1244]
	ldr	r4, [fp, #-1240]
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	ldr	r3, [fp, #-1216]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #700
	sub	r0, fp, #708
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #684
	sub	r0, fp, #692
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #668
	sub	r0, fp, #676
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #652
	sub	r0, fp, #660
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #652
	ldmia	r1, {r0-r1}
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #644
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1181]	@ zero_extendqisi2
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1168
	sub	lr, lr, #12
	sub	ip, fp, #636
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1180]	@ zero_extendqisi2
	sub	r1, fp, #684
	ldmia	r1, {r0-r1}
	b	.L11
.L12:
	.align	3
.L10:
	.word	-1
	.word	-1725091604
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
.L11:
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1152
	sub	ip, ip, #12
	sub	ip, ip, #15
	sub	lr, fp, #628
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1179]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #700
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1252]
	adc	r3, r1, r3
	str	r3, [fp, #-1248]
	ldr	r3, [fp, #-1252]
	ldr	r4, [fp, #-1248]
	str	r3, [fp, #-84]
	str	r4, [fp, #-80]
	sub	r5, fp, #740
	ldmia	r5, {r4-r5}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #14
	sub	r0, fp, #620
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1178]	@ zero_extendqisi2
	sub	r5, fp, #732
	ldmia	r5, {r4-r5}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #13
	sub	r0, fp, #612
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1177]	@ zero_extendqisi2
	sub	r5, fp, #724
	ldmia	r5, {r4-r5}
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #12
	sub	r0, fp, #604
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1176]	@ zero_extendqisi2
	sub	r5, fp, #716
	ldmia	r5, {r4-r5}
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #11
	sub	r0, fp, #596
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1175]	@ zero_extendqisi2
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #10
	sub	r0, fp, #588
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	ip, fp, #572
	sub	lr, fp, #580
	adr	r3, .L10+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #556
	sub	lr, fp, #564
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #540
	sub	lr, fp, #548
	adr	r3, .L10+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #524
	sub	lr, fp, #532
	adr	r3, .L10+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r5, fp, #524
	ldmia	r5, {r4-r5}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #9
	sub	r0, fp, #516
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1173]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1260]
	adc	r3, r1, r3
	str	r3, [fp, #-1256]
	ldr	r3, [fp, #-1260]
	ldr	r4, [fp, #-1256]
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r5, fp, #532
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	ip, fp, #508
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1172]	@ zero_extendqisi2
	sub	r5, fp, #612
	ldmia	r5, {r4-r5}
	sub	r7, fp, #516
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #7
	sub	r0, fp, #500
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1171]	@ zero_extendqisi2
	sub	r1, fp, #604
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #6
	sub	ip, fp, #492
	sub	r5, fp, #76
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1170]	@ zero_extendqisi2
	sub	r5, fp, #596
	ldmia	r5, {r4-r5}
	sub	r7, fp, #564
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #5
	sub	r0, fp, #484
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1169]	@ zero_extendqisi2
	sub	r5, fp, #588
	ldmia	r5, {r4-r5}
	sub	r7, fp, #556
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r0, fp, #476
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1168]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1174]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1268]
	adc	r3, r1, r3
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1268]
	ldr	r4, [fp, #-1264]
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	ldr	r3, [fp, #-1216]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #460
	sub	r0, fp, #468
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #444
	sub	r0, fp, #452
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #428
	sub	r0, fp, #436
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1216]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #412
	sub	r0, fp, #420
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	sub	r5, fp, #436
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #3
	sub	ip, fp, #404
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1167]	@ zero_extendqisi2
	sub	r1, fp, #428
	ldmia	r1, {r0-r1}
	sub	r5, fp, #452
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #2
	sub	ip, fp, #396
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1166]	@ zero_extendqisi2
	sub	r1, fp, #444
	ldmia	r1, {r0-r1}
	sub	r5, fp, #468
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #1
	sub	ip, fp, #388
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1165]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1276]
	adc	r3, r1, r3
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1276]
	ldr	r4, [fp, #-1272]
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r3, fp, #500
	ldmia	r3, {r2-r3}
	sub	r1, fp, #420
	ldmia	r1, {r0-r1}
	sub	lr, fp, #1152
	sub	lr, lr, #12
	sub	ip, fp, #380
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1164]	@ zero_extendqisi2
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	r5, fp, #404
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #15
	sub	ip, fp, #372
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1163]	@ zero_extendqisi2
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	r5, fp, #396
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #14
	sub	ip, fp, #364
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1162]	@ zero_extendqisi2
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	r5, fp, #388
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #13
	sub	ip, fp, #356
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1161]	@ zero_extendqisi2
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #12
	sub	ip, fp, #348
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	sub	lr, fp, #332
	sub	ip, fp, #340
	adr	r1, .L13
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #316
	sub	ip, fp, #324
	mov	r0, #0
	mov	r1, #1073741824
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #300
	sub	ip, fp, #308
	adr	r1, .L13+8
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #284
	sub	ip, fp, #292
	adr	r1, .L13+16
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	r5, fp, #308
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #11
	sub	ip, fp, #276
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1159]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1284]
	adc	r3, r1, r3
	str	r3, [fp, #-1280]
	ldr	r3, [fp, #-1284]
	ldr	r4, [fp, #-1280]
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r5, fp, #292
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #10
	sub	ip, fp, #268
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1158]	@ zero_extendqisi2
	sub	r1, fp, #372
	ldmia	r1, {r0-r1}
	sub	r5, fp, #276
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #9
	sub	ip, fp, #260
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1157]	@ zero_extendqisi2
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	ip, fp, #252
	sub	r5, fp, #52
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1156]	@ zero_extendqisi2
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	r5, fp, #324
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #7
	sub	ip, fp, #244
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1155]	@ zero_extendqisi2
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r5, fp, #316
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #6
	sub	ip, fp, #236
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1154]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1160]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1292]
	adc	r3, r1, r3
	str	r3, [fp, #-1288]
	ldr	r3, [fp, #-1292]
	ldr	r4, [fp, #-1288]
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #260
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #5
	sub	ip, fp, #228
	adr	r5, .L13+16
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1153]	@ zero_extendqisi2
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	ip, fp, #220
	adr	r5, .L13+8
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1152]	@ zero_extendqisi2
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #3
	sub	ip, fp, #212
	mov	r4, #0
	mov	r5, #0
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1151]	@ zero_extendqisi2
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #2
	sub	ip, fp, #204
	mov	r4, #0
	mov	r5, #1073741824
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1150]	@ zero_extendqisi2
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #1
	sub	ip, fp, #196
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	ip, fp, #188
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	b	.L14
.L15:
	.align	3
.L13:
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC2
.L14:
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	sub	ip, fp, #180
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	sub	ip, fp, #172
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	sub	ip, fp, #164
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1208]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #8
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #16
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #24
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L13+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L6
	bl	__stack_chk_fail
.L6:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	fiat_pasta_fp_mul, .-fiat_pasta_fp_mul
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_square
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_square, %function
fiat_pasta_fp_square:
	@ args = 0, pretend = 0, frame = 1256
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1264
	sub	sp, sp, #8
	str	r0, [fp, #-1208]
	str	r1, [fp, #-1212]
	ldr	r3, .L18+24
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1120
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1136
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1104
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1120
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1088
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1104
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r0, fp, #1088
	sub	r0, r0, #12
	stm	sp, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1092]
	ldr	r1, [fp, #-1088]
	ldr	r2, [fp, #-1116]
	ldr	r3, [fp, #-1112]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #8
	sub	lr, fp, #1072
	sub	lr, lr, #12
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1204]	@ zero_extendqisi2
	ldr	r0, [fp, #-1108]
	ldr	r1, [fp, #-1104]
	ldr	r2, [fp, #-1132]
	ldr	r3, [fp, #-1128]
	sub	lr, fp, #1184
	sub	lr, lr, #12
	sub	lr, lr, #7
	sub	ip, fp, #1056
	sub	ip, ip, #12
	sub	ip, ip, #8
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1203]	@ zero_extendqisi2
	ldr	r0, [fp, #-1124]
	ldr	r1, [fp, #-1120]
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1144]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #6
	sub	lr, fp, #1056
	sub	lr, lr, #12
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1202]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldr	r2, [fp, #-1140]
	ldr	r3, [fp, #-1136]
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-124]
	str	r7, [fp, #-120]
	ldr	r0, [fp, #-1100]
	ldr	r1, [fp, #-1096]
	sub	lr, fp, #1040
	sub	lr, lr, #12
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #8
	adr	r3, .L18
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1024
	sub	lr, lr, #12
	sub	ip, fp, #1040
	sub	ip, ip, #4
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1020
	sub	ip, fp, #1024
	sub	ip, ip, #4
	adr	r3, .L18+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	sub	lr, fp, #1004
	sub	ip, fp, #1012
	adr	r3, .L18+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #1004
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1028]
	ldr	r3, [fp, #-1024]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #5
	sub	lr, fp, #996
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1201]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #1020
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	str	r8, [fp, #-116]
	str	r9, [fp, #-112]
	ldr	r0, [fp, #-1100]
	ldr	r1, [fp, #-1096]
	sub	r3, fp, #1012
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #4
	sub	lr, fp, #988
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1200]	@ zero_extendqisi2
	ldr	r0, [fp, #-1084]
	ldr	r1, [fp, #-1080]
	sub	r3, fp, #996
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #3
	sub	lr, fp, #980
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1199]	@ zero_extendqisi2
	ldr	r0, [fp, #-1076]
	ldr	r1, [fp, #-1072]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #972
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1198]	@ zero_extendqisi2
	ldr	r0, [fp, #-1068]
	ldr	r1, [fp, #-1064]
	ldr	r2, [fp, #-1044]
	ldr	r3, [fp, #-1040]
	sub	ip, fp, #1184
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #964
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1197]	@ zero_extendqisi2
	ldr	r2, [fp, #-1036]
	ldr	r3, [fp, #-1032]
	sub	r1, fp, #1184
	sub	r1, r1, #12
	sub	r0, fp, #956
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #940
	sub	r0, fp, #948
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #924
	sub	r0, fp, #932
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #908
	sub	r0, fp, #916
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #892
	sub	r0, fp, #900
	stm	sp, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #892
	ldmia	r1, {r0-r1}
	sub	r3, fp, #916
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #15
	sub	lr, fp, #884
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1195]	@ zero_extendqisi2
	sub	r1, fp, #908
	ldmia	r1, {r0-r1}
	sub	r3, fp, #932
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #14
	sub	lr, fp, #876
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1194]	@ zero_extendqisi2
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	sub	r3, fp, #948
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #13
	sub	lr, fp, #868
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1193]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	b	.L19
.L20:
	.align	3
.L18:
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC3
.L19:
	sub	r3, fp, #940
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1220]
	adc	r3, r1, r3
	str	r3, [fp, #-1216]
	ldr	r3, [fp, #-1220]
	ldr	r4, [fp, #-1216]
	str	r3, [fp, #-108]
	str	r4, [fp, #-104]
	sub	r1, fp, #980
	ldmia	r1, {r0-r1}
	sub	r3, fp, #900
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #12
	sub	lr, fp, #860
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1192]	@ zero_extendqisi2
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #11
	sub	lr, fp, #852
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1191]	@ zero_extendqisi2
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #10
	sub	lr, fp, #844
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1190]	@ zero_extendqisi2
	sub	r1, fp, #956
	ldmia	r1, {r0-r1}
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #9
	sub	lr, fp, #836
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1189]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1196]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #8
	sub	lr, fp, #828
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	lr, fp, #812
	sub	ip, fp, #820
	adr	r3, .L21
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #796
	sub	ip, fp, #804
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #780
	sub	ip, fp, #788
	adr	r3, .L21+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #820
	ldmia	r1, {r0-r1}
	sub	lr, fp, #764
	sub	ip, fp, #772
	adr	r3, .L21+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #764
	ldmia	r1, {r0-r1}
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #7
	sub	lr, fp, #756
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1187]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #780
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1228]
	adc	r3, r1, r3
	str	r3, [fp, #-1224]
	ldr	r3, [fp, #-1228]
	ldr	r4, [fp, #-1224]
	str	r3, [fp, #-100]
	str	r4, [fp, #-96]
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #6
	sub	lr, fp, #748
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1186]	@ zero_extendqisi2
	sub	r1, fp, #852
	ldmia	r1, {r0-r1}
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #5
	sub	lr, fp, #740
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1185]	@ zero_extendqisi2
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #4
	sub	lr, fp, #732
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1184]	@ zero_extendqisi2
	sub	r1, fp, #836
	ldmia	r1, {r0-r1}
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #3
	sub	lr, fp, #724
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1183]	@ zero_extendqisi2
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #716
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1182]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1188]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1236]
	adc	r3, r1, r3
	str	r3, [fp, #-1232]
	ldr	r3, [fp, #-1236]
	ldr	r4, [fp, #-1232]
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #700
	sub	r0, fp, #708
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #684
	sub	r0, fp, #692
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #668
	sub	r0, fp, #676
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #652
	sub	r0, fp, #660
	stm	sp, {r2-r3}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #652
	ldmia	r1, {r0-r1}
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1168
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #644
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1181]	@ zero_extendqisi2
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1168
	sub	lr, lr, #12
	sub	ip, fp, #636
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1180]	@ zero_extendqisi2
	sub	r1, fp, #684
	ldmia	r1, {r0-r1}
	b	.L22
.L23:
	.align	3
.L21:
	.word	-1
	.word	-1725091604
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
.L22:
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1152
	sub	ip, ip, #12
	sub	ip, ip, #15
	sub	lr, fp, #628
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1179]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #700
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1244]
	adc	r3, r1, r3
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1244]
	ldr	r4, [fp, #-1240]
	str	r3, [fp, #-84]
	str	r4, [fp, #-80]
	sub	r5, fp, #740
	ldmia	r5, {r4-r5}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #14
	sub	r0, fp, #620
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1178]	@ zero_extendqisi2
	sub	r5, fp, #732
	ldmia	r5, {r4-r5}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #13
	sub	r0, fp, #612
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1177]	@ zero_extendqisi2
	sub	r5, fp, #724
	ldmia	r5, {r4-r5}
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #12
	sub	r0, fp, #604
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1176]	@ zero_extendqisi2
	sub	r5, fp, #716
	ldmia	r5, {r4-r5}
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #11
	sub	r0, fp, #596
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1175]	@ zero_extendqisi2
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #10
	sub	r0, fp, #588
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	ip, fp, #572
	sub	lr, fp, #580
	adr	r3, .L21+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #556
	sub	lr, fp, #564
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #540
	sub	lr, fp, #548
	adr	r3, .L21+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	ip, fp, #524
	sub	lr, fp, #532
	adr	r3, .L21+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r5, fp, #524
	ldmia	r5, {r4-r5}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1152
	sub	r1, r1, #12
	sub	r1, r1, #9
	sub	r0, fp, #516
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1173]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1252]
	adc	r3, r1, r3
	str	r3, [fp, #-1248]
	ldr	r3, [fp, #-1252]
	ldr	r4, [fp, #-1248]
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r5, fp, #532
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	ip, fp, #508
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1172]	@ zero_extendqisi2
	sub	r5, fp, #612
	ldmia	r5, {r4-r5}
	sub	r7, fp, #516
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #7
	sub	r0, fp, #500
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1171]	@ zero_extendqisi2
	sub	r1, fp, #604
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #6
	sub	ip, fp, #492
	sub	r5, fp, #76
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1170]	@ zero_extendqisi2
	sub	r5, fp, #596
	ldmia	r5, {r4-r5}
	sub	r7, fp, #564
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #5
	sub	r0, fp, #484
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1169]	@ zero_extendqisi2
	sub	r5, fp, #588
	ldmia	r5, {r4-r5}
	sub	r7, fp, #556
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r0, fp, #476
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1168]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1174]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1260]
	adc	r3, r1, r3
	str	r3, [fp, #-1256]
	ldr	r3, [fp, #-1260]
	ldr	r4, [fp, #-1256]
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	ldr	r3, [fp, #-1212]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #460
	sub	r0, fp, #468
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #444
	sub	r0, fp, #452
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #428
	sub	r0, fp, #436
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	ldr	r3, [fp, #-1212]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #412
	sub	r0, fp, #420
	stm	sp, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	sub	r5, fp, #436
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #3
	sub	ip, fp, #404
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1167]	@ zero_extendqisi2
	sub	r1, fp, #428
	ldmia	r1, {r0-r1}
	sub	r5, fp, #452
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #2
	sub	ip, fp, #396
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1166]	@ zero_extendqisi2
	sub	r1, fp, #444
	ldmia	r1, {r0-r1}
	sub	r5, fp, #468
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #1
	sub	ip, fp, #388
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1165]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1268]
	adc	r3, r1, r3
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1268]
	ldr	r4, [fp, #-1264]
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r3, fp, #500
	ldmia	r3, {r2-r3}
	sub	r1, fp, #420
	ldmia	r1, {r0-r1}
	sub	lr, fp, #1152
	sub	lr, lr, #12
	sub	ip, fp, #380
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1164]	@ zero_extendqisi2
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	r5, fp, #404
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #15
	sub	ip, fp, #372
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1163]	@ zero_extendqisi2
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	r5, fp, #396
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #14
	sub	ip, fp, #364
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1162]	@ zero_extendqisi2
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	r5, fp, #388
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #13
	sub	ip, fp, #356
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1161]	@ zero_extendqisi2
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #12
	sub	ip, fp, #348
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	sub	lr, fp, #332
	sub	ip, fp, #340
	adr	r1, .L24
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #316
	sub	ip, fp, #324
	mov	r0, #0
	mov	r1, #1073741824
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #300
	sub	ip, fp, #308
	adr	r1, .L24+8
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	lr, fp, #284
	sub	ip, fp, #292
	adr	r1, .L24+16
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	r5, fp, #308
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #11
	sub	ip, fp, #276
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1159]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1276]
	adc	r3, r1, r3
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1276]
	ldr	r4, [fp, #-1272]
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r5, fp, #292
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #10
	sub	ip, fp, #268
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1158]	@ zero_extendqisi2
	sub	r1, fp, #372
	ldmia	r1, {r0-r1}
	sub	r5, fp, #276
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #9
	sub	ip, fp, #260
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1157]	@ zero_extendqisi2
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	ip, fp, #252
	sub	r5, fp, #52
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1156]	@ zero_extendqisi2
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	r5, fp, #324
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #7
	sub	ip, fp, #244
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1155]	@ zero_extendqisi2
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r5, fp, #316
	ldmia	r5, {r4-r5}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #6
	sub	ip, fp, #236
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1154]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldrb	r3, [fp, #-1160]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-1284]
	adc	r3, r1, r3
	str	r3, [fp, #-1280]
	ldr	r3, [fp, #-1284]
	ldr	r4, [fp, #-1280]
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #260
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #5
	sub	ip, fp, #228
	adr	r5, .L24+16
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1153]	@ zero_extendqisi2
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	ip, fp, #220
	adr	r5, .L24+8
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1152]	@ zero_extendqisi2
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #3
	sub	ip, fp, #212
	mov	r4, #0
	mov	r5, #0
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1151]	@ zero_extendqisi2
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #2
	sub	ip, fp, #204
	mov	r4, #0
	mov	r5, #1073741824
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1150]	@ zero_extendqisi2
	sub	r3, fp, #1136
	sub	r3, r3, #12
	sub	r3, r3, #1
	sub	ip, fp, #196
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	ip, fp, #188
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	b	.L25
.L26:
	.align	3
.L24:
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC3
.L25:
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	sub	ip, fp, #180
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	sub	ip, fp, #172
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1149]	@ zero_extendqisi2
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	sub	ip, fp, #164
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1208]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #8
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #16
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1208]
	add	r1, r3, #24
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L24+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L17
	bl	__stack_chk_fail
.L17:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	fiat_pasta_fp_square, .-fiat_pasta_fp_square
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_add
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_add, %function
fiat_pasta_fp_add:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #164
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	str	r2, [fp, #-152]
	ldr	r3, .L29+16
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-148]
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-152]
	ldmia	r1, {r0-r1}
	sub	lr, fp, #133
	sub	ip, fp, #124
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-133]	@ zero_extendqisi2
	ldr	r3, [fp, #-148]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-152]
	add	r1, r1, #8
	ldmia	r1, {r0-r1}
	sub	lr, fp, #132
	sub	ip, fp, #116
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-132]	@ zero_extendqisi2
	ldr	r3, [fp, #-148]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-152]
	add	r1, r1, #16
	ldmia	r1, {r0-r1}
	sub	lr, fp, #131
	sub	ip, fp, #108
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-131]	@ zero_extendqisi2
	ldr	r3, [fp, #-148]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-152]
	add	r1, r1, #24
	ldmia	r1, {r0-r1}
	sub	lr, fp, #130
	sub	ip, fp, #100
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	sub	lr, fp, #129
	sub	ip, fp, #92
	adr	r1, .L29
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-129]	@ zero_extendqisi2
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	lr, fp, #128
	sub	ip, fp, #84
	adr	r1, .L29+8
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-128]	@ zero_extendqisi2
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	sub	lr, fp, #127
	sub	ip, fp, #76
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-127]	@ zero_extendqisi2
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	lr, fp, #126
	sub	ip, fp, #68
	mov	r0, #0
	mov	r1, #1073741824
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-126]	@ zero_extendqisi2
	ldrb	r3, [fp, #-130]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	sub	lr, fp, #125
	sub	ip, fp, #60
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	lr, [fp, #-125]	@ zero_extendqisi2
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	sub	ip, fp, #52
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-125]	@ zero_extendqisi2
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	ip, fp, #44
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-125]	@ zero_extendqisi2
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	sub	ip, fp, #36
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-125]	@ zero_extendqisi2
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	ip, fp, #28
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-144]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r1, r3, #8
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r1, r3, #16
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r1, r3, #24
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L29+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L28
	bl	__stack_chk_fail
.L28:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L30:
	.align	3
.L29:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC4
	.size	fiat_pasta_fp_add, .-fiat_pasta_fp_add
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_sub
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_sub, %function
fiat_pasta_fp_sub:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #132
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	ldr	r3, .L33+16
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r3, [fp, #-132]
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-136]
	ldmia	r1, {r0-r1}
	sub	lr, fp, #124
	sub	ip, fp, #116
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r10, [fp, #-124]	@ zero_extendqisi2
	ldr	r3, [fp, #-132]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-136]
	add	r1, r1, #8
	ldmia	r1, {r0-r1}
	sub	lr, fp, #123
	sub	ip, fp, #108
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r10
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r10, [fp, #-123]	@ zero_extendqisi2
	ldr	r3, [fp, #-132]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-136]
	add	r1, r1, #16
	ldmia	r1, {r0-r1}
	sub	lr, fp, #122
	sub	ip, fp, #100
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r10
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r10, [fp, #-122]	@ zero_extendqisi2
	ldr	r3, [fp, #-132]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-136]
	add	r1, r1, #24
	ldmia	r1, {r0-r1}
	sub	lr, fp, #121
	sub	ip, fp, #92
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r10
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r1, [fp, #-121]	@ zero_extendqisi2
	sub	r0, fp, #84
	mvn	r2, #0
	mvn	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	adr	r1, .L33
	ldmia	r1, {r0-r1}
	and	r8, r2, r0
	and	r9, r3, r1
	sub	r1, fp, #120
	sub	r3, fp, #76
	str	r8, [sp, #8]
	str	r9, [sp, #12]
	sub	r9, fp, #148
	ldmia	r9, {r8-r9}
	stm	sp, {r8-r9}
	mov	r2, #0
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-120]	@ zero_extendqisi2
	sub	r9, fp, #108
	ldmia	r9, {r8-r9}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	adr	r1, .L33+8
	ldmia	r1, {r0-r1}
	and	r6, r2, r0
	and	r7, r3, r1
	sub	r1, fp, #119
	sub	r3, fp, #68
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r8-r9}
	mov	r2, ip
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r6, [fp, #-119]	@ zero_extendqisi2
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	lr, fp, #118
	sub	ip, fp, #60
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-118]	@ zero_extendqisi2
	sub	r7, fp, #92
	ldmia	r7, {r6-r7}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #1073741824
	and	r4, r2, r0
	and	r5, r3, r1
	sub	r1, fp, #117
	sub	r3, fp, #52
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r6-r7}
	mov	r2, ip
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-128]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-128]
	add	r1, r3, #8
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-128]
	add	r1, r3, #16
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-128]
	add	r1, r3, #24
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L33+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L32
	bl	__stack_chk_fail
.L32:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L34:
	.align	3
.L33:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC5
	.size	fiat_pasta_fp_sub, .-fiat_pasta_fp_sub
	.section	.rodata
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_opp
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_opp, %function
fiat_pasta_fp_opp:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #120
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	ldr	r3, .L37+16
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-124]
	ldmia	r3, {r2-r3}
	sub	r1, fp, #116
	sub	r0, fp, #108
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-116]	@ zero_extendqisi2
	ldr	r3, [fp, #-124]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #115
	sub	r0, fp, #100
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-115]	@ zero_extendqisi2
	ldr	r3, [fp, #-124]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #114
	sub	r0, fp, #92
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-114]	@ zero_extendqisi2
	ldr	r3, [fp, #-124]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #113
	sub	r0, fp, #84
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r1, [fp, #-113]	@ zero_extendqisi2
	sub	r0, fp, #76
	mvn	r2, #0
	mvn	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	adr	r1, .L37
	ldmia	r1, {r0-r1}
	and	r8, r2, r0
	and	r9, r3, r1
	sub	r1, fp, #112
	sub	r3, fp, #68
	str	r8, [sp, #8]
	str	r9, [sp, #12]
	sub	r9, fp, #132
	ldmia	r9, {r8-r9}
	stm	sp, {r8-r9}
	mov	r2, #0
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-112]	@ zero_extendqisi2
	sub	r9, fp, #100
	ldmia	r9, {r8-r9}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	adr	r1, .L37+8
	ldmia	r1, {r0-r1}
	and	r6, r2, r0
	and	r7, r3, r1
	sub	r1, fp, #111
	sub	r3, fp, #60
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r8-r9}
	mov	r2, ip
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r6, [fp, #-111]	@ zero_extendqisi2
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	lr, fp, #110
	sub	ip, fp, #52
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-110]	@ zero_extendqisi2
	sub	r7, fp, #84
	ldmia	r7, {r6-r7}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #1073741824
	and	r4, r2, r0
	and	r5, r3, r1
	sub	r1, fp, #109
	sub	r3, fp, #44
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r6-r7}
	mov	r2, ip
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-120]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	add	r1, r3, #8
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	add	r1, r3, #16
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	add	r1, r3, #24
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L37+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L36
	bl	__stack_chk_fail
.L36:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L38:
	.align	3
.L37:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC6
	.size	fiat_pasta_fp_opp, .-fiat_pasta_fp_opp
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_from_montgomery
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_from_montgomery, %function
fiat_pasta_fp_from_montgomery:
	@ args = 0, pretend = 0, frame = 672
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #688
	str	r0, [fp, #-616]
	str	r1, [fp, #-620]
	ldr	r3, .L41+24
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-620]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r1, fp, #572
	sub	r0, fp, #580
	adr	r3, .L41
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	lr, fp, #556
	sub	ip, fp, #564
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	lr, fp, #540
	sub	ip, fp, #548
	adr	r3, .L41+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	lr, fp, #524
	sub	ip, fp, #532
	adr	r3, .L41+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #524
	ldmia	r1, {r0-r1}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	sub	ip, fp, #608
	sub	ip, ip, #2
	sub	lr, fp, #516
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #532
	ldmia	r3, {r2-r3}
	sub	r1, fp, #608
	sub	r1, r1, #1
	sub	r0, fp, #508
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-609]	@ zero_extendqisi2
	sub	r3, fp, #516
	ldmia	r3, {r2-r3}
	sub	r1, fp, #608
	sub	r0, fp, #500
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r5, fp, #500
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-620]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #604
	sub	r1, r1, #3
	sub	r0, fp, #492
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	lr, fp, #476
	sub	ip, fp, #484
	adr	r3, .L41
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	lr, fp, #460
	sub	ip, fp, #468
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	lr, fp, #444
	sub	ip, fp, #452
	adr	r3, .L41+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	lr, fp, #428
	sub	ip, fp, #436
	adr	r3, .L41+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #428
	ldmia	r1, {r0-r1}
	sub	r3, fp, #452
	ldmia	r3, {r2-r3}
	sub	ip, fp, #604
	sub	ip, ip, #2
	sub	lr, fp, #420
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	r3, fp, #436
	ldmia	r3, {r2-r3}
	sub	ip, fp, #604
	sub	ip, ip, #1
	sub	lr, fp, #412
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-605]	@ zero_extendqisi2
	ldrb	r3, [fp, #-607]	@ zero_extendqisi2
	and	r6, r3, #255
	mov	r7, #0
	ldrb	r3, [fp, #-608]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-610]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	adds	r3, r4, r8
	str	r3, [fp, #-628]
	adc	r3, r5, r9
	str	r3, [fp, #-624]
	sub	r4, fp, #628
	ldmia	r4, {r3-r4}
	mov	r2, r3
	adds	r2, r6, r2
	str	r2, [fp, #-636]
	mov	r3, r4
	adc	r3, r7, r3
	str	r3, [fp, #-632]
	sub	r3, fp, #420
	ldmia	r3, {r2-r3}
	sub	r1, fp, #604
	sub	r0, fp, #404
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r4, fp, #636
	ldmia	r4, {r3-r4}
	stm	sp, {r3-r4}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-604]	@ zero_extendqisi2
	sub	r5, fp, #564
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-606]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #444
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-644]
	adc	r3, r1, r3
	str	r3, [fp, #-640]
	sub	r3, fp, #600
	sub	r3, r3, #3
	sub	r0, fp, #396
	sub	r2, fp, #644
	ldmia	r2, {r1-r2}
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-603]	@ zero_extendqisi2
	sub	r1, fp, #556
	ldmia	r1, {r0-r1}
	sub	r3, fp, #468
	ldmia	r3, {r2-r3}
	sub	ip, fp, #600
	sub	ip, ip, #2
	b	.L42
.L43:
	.align	3
.L41:
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC7
.L42:
	sub	lr, fp, #388
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r5, fp, #404
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-620]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #600
	sub	r1, r1, #1
	sub	r0, fp, #380
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-601]	@ zero_extendqisi2
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	lr, fp, #600
	sub	ip, fp, #372
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-600]	@ zero_extendqisi2
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	sub	ip, fp, #596
	sub	ip, ip, #3
	sub	lr, fp, #364
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	lr, fp, #348
	sub	ip, fp, #356
	adr	r3, .L44
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	lr, fp, #332
	sub	ip, fp, #340
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	lr, fp, #316
	sub	ip, fp, #324
	adr	r3, .L44+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	lr, fp, #300
	sub	ip, fp, #308
	adr	r3, .L44+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	sub	ip, fp, #596
	sub	ip, ip, #2
	sub	lr, fp, #292
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	sub	ip, fp, #596
	sub	ip, ip, #1
	sub	lr, fp, #284
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-597]	@ zero_extendqisi2
	sub	r1, fp, #372
	ldmia	r1, {r0-r1}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	sub	lr, fp, #596
	sub	ip, fp, #276
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-596]	@ zero_extendqisi2
	sub	r5, fp, #364
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-598]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-652]
	adc	r3, r1, r3
	str	r3, [fp, #-648]
	sub	r3, fp, #592
	sub	r3, r3, #3
	sub	r0, fp, #268
	sub	r2, fp, #652
	ldmia	r2, {r1-r2}
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-595]	@ zero_extendqisi2
	ldrb	r3, [fp, #-599]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-602]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-660]
	adc	r3, r1, r3
	str	r3, [fp, #-656]
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	mov	r1, r2
	adds	r1, r4, r1
	str	r1, [fp, #-668]
	adc	r3, r5, r3
	str	r3, [fp, #-664]
	sub	r5, fp, #340
	ldmia	r5, {r4-r5}
	sub	r3, fp, #592
	sub	r3, r3, #2
	sub	r0, fp, #260
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	sub	r2, fp, #668
	ldmia	r2, {r1-r2}
	stm	sp, {r1-r2}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-620]
	add	r3, r3, #24
	ldmia	r3, {r4-r5}
	sub	r3, fp, #592
	sub	r3, r3, #1
	sub	ip, fp, #252
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-593]	@ zero_extendqisi2
	sub	r3, fp, #268
	ldmia	r3, {r2-r3}
	sub	lr, fp, #592
	sub	ip, fp, #244
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-592]	@ zero_extendqisi2
	sub	r1, fp, #260
	ldmia	r1, {r0-r1}
	sub	r3, fp, #588
	sub	r3, r3, #3
	sub	ip, fp, #236
	mov	r4, #0
	mov	r5, #0
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	sub	lr, fp, #220
	sub	ip, fp, #228
	adr	r1, .L44
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	lr, fp, #204
	sub	ip, fp, #212
	mov	r0, #0
	mov	r1, #1073741824
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	lr, fp, #188
	sub	ip, fp, #196
	adr	r1, .L44+16
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	lr, fp, #172
	sub	ip, fp, #180
	adr	r1, .L44+8
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	sub	r5, fp, #196
	ldmia	r5, {r4-r5}
	sub	r3, fp, #588
	sub	r3, r3, #2
	sub	ip, fp, #164
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	b	.L45
.L46:
	.align	3
.L44:
	.word	-1
	.word	-1725091604
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC7
.L45:
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	r5, fp, #180
	ldmia	r5, {r4-r5}
	sub	r3, fp, #588
	sub	r3, r3, #1
	sub	ip, fp, #156
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-589]	@ zero_extendqisi2
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	lr, fp, #588
	sub	ip, fp, #148
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-588]	@ zero_extendqisi2
	sub	r5, fp, #236
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-590]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-676]
	adc	r3, r1, r3
	str	r3, [fp, #-672]
	sub	r3, fp, #584
	sub	r3, r3, #3
	sub	r0, fp, #140
	sub	r2, fp, #676
	ldmia	r2, {r1-r2}
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	lr, [fp, #-587]	@ zero_extendqisi2
	ldrb	r3, [fp, #-591]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	ldrb	r1, [fp, #-594]	@ zero_extendqisi2
	and	r4, r1, #255
	mov	r5, #0
	sub	r1, fp, #332
	ldmia	r1, {r0-r1}
	adds	ip, r4, r0
	str	ip, [fp, #-684]
	adc	r1, r5, r1
	str	r1, [fp, #-680]
	sub	r1, fp, #684
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-692]
	adc	r3, r3, r1
	str	r3, [fp, #-688]
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	sub	r3, fp, #584
	sub	r3, r3, #2
	sub	ip, fp, #132
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r2, fp, #692
	ldmia	r2, {r1-r2}
	stm	sp, {r1-r2}
	mov	r2, lr
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-586]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-700]
	adc	r3, r1, r3
	str	r3, [fp, #-696]
	sub	r4, fp, #700
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	sub	r3, fp, #584
	sub	r3, r3, #1
	sub	ip, fp, #124
	adr	r5, .L44+8
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-585]	@ zero_extendqisi2
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	lr, fp, #584
	sub	ip, fp, #116
	adr	r1, .L44+16
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-584]	@ zero_extendqisi2
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	sub	r3, fp, #580
	sub	r3, r3, #3
	sub	ip, fp, #108
	mov	r4, #0
	mov	r5, #0
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-583]	@ zero_extendqisi2
	sub	r3, fp, #580
	sub	r3, r3, #2
	sub	ip, fp, #100
	mov	r0, #0
	mov	r1, #1073741824
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-582]	@ zero_extendqisi2
	sub	r3, fp, #580
	sub	r3, r3, #1
	sub	ip, fp, #92
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	mov	r0, #0
	mov	r1, #0
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	lr, [fp, #-581]	@ zero_extendqisi2
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	ip, fp, #84
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-581]	@ zero_extendqisi2
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	ip, fp, #76
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-581]	@ zero_extendqisi2
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	ip, fp, #68
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-581]	@ zero_extendqisi2
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	sub	ip, fp, #60
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-616]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-616]
	add	r1, r3, #8
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-616]
	add	r1, r3, #16
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-616]
	add	r1, r3, #24
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L44+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L40
	bl	__stack_chk_fail
.L40:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	fiat_pasta_fp_from_montgomery, .-fiat_pasta_fp_from_montgomery
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_to_montgomery
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_to_montgomery, %function
fiat_pasta_fp_to_montgomery:
	@ args = 0, pretend = 0, frame = 1184
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1200
	str	r0, [fp, #-1072]
	str	r1, [fp, #-1076]
	ldr	r3, .L49+56
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-1076]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-1076]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-1076]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-1076]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r1, fp, #1004
	sub	r0, fp, #1012
	adr	r3, .L49
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #988
	sub	r0, fp, #996
	adr	r3, .L49+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #972
	sub	r0, fp, #980
	adr	r3, .L49+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #956
	sub	r0, fp, #964
	adr	r3, .L49+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #956
	ldmia	r1, {r0-r1}
	sub	r3, fp, #980
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #9
	sub	lr, fp, #948
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1061]	@ zero_extendqisi2
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	sub	r3, fp, #996
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #8
	sub	lr, fp, #940
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1060]	@ zero_extendqisi2
	sub	r1, fp, #988
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1012
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #7
	sub	lr, fp, #932
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	sub	lr, fp, #916
	sub	ip, fp, #924
	adr	r3, .L49+32
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	sub	lr, fp, #900
	sub	ip, fp, #908
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	sub	lr, fp, #884
	sub	ip, fp, #892
	adr	r3, .L49+40
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	sub	lr, fp, #868
	sub	ip, fp, #876
	adr	r3, .L49+48
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #868
	ldmia	r1, {r0-r1}
	sub	r3, fp, #892
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #6
	sub	lr, fp, #860
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #5
	sub	lr, fp, #852
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1057]	@ zero_extendqisi2
	sub	r1, fp, #948
	ldmia	r1, {r0-r1}
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #4
	sub	lr, fp, #844
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1056]	@ zero_extendqisi2
	sub	r5, fp, #940
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-1058]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1084]
	adc	r3, r1, r3
	str	r3, [fp, #-1080]
	sub	r3, fp, #1040
	sub	r3, r3, #12
	sub	r3, r3, #3
	sub	r0, fp, #836
	ldr	r1, [fp, #-1084]
	ldr	r2, [fp, #-1080]
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1055]	@ zero_extendqisi2
	sub	r1, fp, #932
	ldmia	r1, {r0-r1}
	sub	r3, fp, #908
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #828
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #812
	sub	r0, fp, #820
	adr	r3, .L49
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #796
	sub	r0, fp, #804
	adr	r3, .L49+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #780
	sub	r0, fp, #788
	adr	r3, .L49+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	b	.L50
.L51:
	.align	3
.L49:
	.word	2073868052
	.word	158155183
	.word	-1010213608
	.word	2006428059
	.word	-1962024729
	.word	-674034243
	.word	15
	.word	-1938232141
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
	.word	1
	.word	-1725091603
	.word	.LC8
.L50:
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #764
	sub	r0, fp, #772
	adr	r3, .L52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #764
	ldmia	r1, {r0-r1}
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #756
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1053]	@ zero_extendqisi2
	sub	r1, fp, #780
	ldmia	r1, {r0-r1}
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1040
	sub	lr, lr, #12
	sub	ip, fp, #748
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1052]	@ zero_extendqisi2
	sub	r1, fp, #796
	ldmia	r1, {r0-r1}
	sub	r3, fp, #820
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #8
	sub	ip, ip, #3
	sub	lr, fp, #740
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #8
	sub	ip, ip, #2
	sub	lr, fp, #732
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1050]	@ zero_extendqisi2
	sub	r1, fp, #836
	ldmia	r1, {r0-r1}
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #8
	sub	ip, ip, #1
	sub	lr, fp, #724
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1049]	@ zero_extendqisi2
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	sub	r3, fp, #748
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1040
	sub	lr, lr, #8
	sub	ip, fp, #716
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1048]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1054]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-1059]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #1004
	ldmia	r3, {r2-r3}
	adds	r6, r0, r2
	adc	r7, r1, r3
	adds	r8, r4, r6
	adc	r9, r5, r7
	sub	r3, fp, #900
	ldmia	r3, {r2-r3}
	adds	r1, r8, r2
	str	r1, [fp, #-1092]
	adc	r3, r9, r3
	str	r3, [fp, #-1088]
	sub	r3, fp, #740
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1040
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #708
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-1092]
	ldr	r4, [fp, #-1088]
	stm	sp, {r3-r4}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #732
	ldmia	r1, {r0-r1}
	sub	lr, fp, #692
	sub	ip, fp, #700
	adr	r3, .L52+48
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	lr, fp, #676
	sub	ip, fp, #684
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	lr, fp, #660
	sub	ip, fp, #668
	adr	r3, .L52+56
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	lr, fp, #644
	sub	ip, fp, #652
	adr	r3, .L52+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #644
	ldmia	r1, {r0-r1}
	sub	r3, fp, #668
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #4
	sub	ip, ip, #2
	sub	lr, fp, #636
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #732
	ldmia	r1, {r0-r1}
	sub	r3, fp, #652
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #4
	sub	ip, ip, #1
	sub	lr, fp, #628
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1045]	@ zero_extendqisi2
	sub	r1, fp, #724
	ldmia	r1, {r0-r1}
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1040
	sub	lr, lr, #4
	sub	ip, fp, #620
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1044]	@ zero_extendqisi2
	sub	r5, fp, #716
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-1046]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1100]
	adc	r3, r1, r3
	str	r3, [fp, #-1096]
	sub	r3, fp, #1040
	sub	r3, r3, #3
	sub	r0, fp, #612
	b	.L53
.L54:
	.align	3
.L52:
	.word	15
	.word	-1938232141
	.word	1
	.word	-1725091603
	.word	2073868052
	.word	158155183
	.word	-1010213608
	.word	2006428059
	.word	-1962024729
	.word	-674034243
	.word	15
	.word	-1938232141
	.word	-1
	.word	-1725091604
	.word	156039451
	.word	575052028
.L53:
	ldr	r1, [fp, #-1100]
	ldr	r2, [fp, #-1096]
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1043]	@ zero_extendqisi2
	sub	r1, fp, #708
	ldmia	r1, {r0-r1}
	sub	r3, fp, #684
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #2
	sub	lr, fp, #604
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #588
	sub	r0, fp, #596
	adr	r3, .L52+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #572
	sub	r0, fp, #580
	adr	r3, .L52+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #556
	sub	r0, fp, #564
	adr	r3, .L52+32
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #540
	sub	r0, fp, #548
	adr	r3, .L52+40
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #540
	ldmia	r1, {r0-r1}
	sub	r3, fp, #564
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1040
	sub	ip, ip, #1
	sub	lr, fp, #532
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1041]	@ zero_extendqisi2
	sub	r1, fp, #556
	ldmia	r1, {r0-r1}
	sub	r3, fp, #580
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1040
	sub	ip, fp, #524
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1040]	@ zero_extendqisi2
	sub	r1, fp, #572
	ldmia	r1, {r0-r1}
	sub	r3, fp, #596
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #12
	sub	ip, ip, #3
	sub	lr, fp, #516
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #12
	sub	ip, ip, #2
	sub	lr, fp, #508
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1038]	@ zero_extendqisi2
	sub	r1, fp, #612
	ldmia	r1, {r0-r1}
	sub	r3, fp, #532
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #12
	sub	ip, ip, #1
	sub	lr, fp, #500
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1037]	@ zero_extendqisi2
	sub	r1, fp, #604
	ldmia	r1, {r0-r1}
	sub	r3, fp, #524
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1024
	sub	lr, lr, #12
	sub	ip, fp, #492
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1036]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1042]	@ zero_extendqisi2
	and	r6, r3, #255
	mov	r7, #0
	ldrb	r3, [fp, #-1047]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-1051]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #812
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1108]
	adc	r3, r1, r3
	str	r3, [fp, #-1104]
	ldr	r2, [fp, #-1108]
	ldr	r3, [fp, #-1104]
	mov	r1, r2
	adds	r1, r4, r1
	str	r1, [fp, #-1116]
	adc	r3, r5, r3
	str	r3, [fp, #-1112]
	ldr	r3, [fp, #-1116]
	ldr	r4, [fp, #-1112]
	mov	r2, r3
	adds	r2, r6, r2
	str	r2, [fp, #-1124]
	mov	r3, r4
	adc	r3, r7, r3
	str	r3, [fp, #-1120]
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1124]
	ldr	r1, [fp, #-1120]
	mov	lr, r0
	adds	lr, lr, r2
	str	lr, [fp, #-1132]
	adc	r3, r1, r3
	str	r3, [fp, #-1128]
	sub	r3, fp, #516
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1024
	sub	r1, r1, #8
	sub	r1, r1, #3
	sub	r0, fp, #484
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-1132]
	ldr	r4, [fp, #-1128]
	stm	sp, {r3-r4}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #508
	ldmia	r1, {r0-r1}
	sub	lr, fp, #468
	sub	ip, fp, #476
	adr	r3, .L52+48
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	lr, fp, #452
	sub	ip, fp, #460
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	lr, fp, #436
	sub	ip, fp, #444
	adr	r3, .L52+56
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	lr, fp, #420
	sub	ip, fp, #428
	adr	r3, .L55
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #420
	ldmia	r1, {r0-r1}
	sub	r3, fp, #444
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #8
	sub	ip, ip, #2
	sub	lr, fp, #412
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #508
	ldmia	r1, {r0-r1}
	sub	r3, fp, #428
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #8
	sub	ip, ip, #1
	sub	lr, fp, #404
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1033]	@ zero_extendqisi2
	sub	r1, fp, #500
	ldmia	r1, {r0-r1}
	sub	r3, fp, #412
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1024
	sub	lr, lr, #8
	sub	ip, fp, #396
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1032]	@ zero_extendqisi2
	sub	r5, fp, #492
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-1034]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #436
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1140]
	adc	r3, r1, r3
	str	r3, [fp, #-1136]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #3
	sub	r0, fp, #388
	ldr	r1, [fp, #-1140]
	ldr	r2, [fp, #-1136]
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1031]	@ zero_extendqisi2
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #4
	sub	ip, ip, #2
	sub	lr, fp, #380
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #364
	sub	r0, fp, #372
	adr	r3, .L55+8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #348
	sub	r0, fp, #356
	adr	r3, .L55+16
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #332
	sub	r0, fp, #340
	adr	r3, .L55+24
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #316
	sub	r0, fp, #324
	adr	r3, .L55+32
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #4
	sub	ip, ip, #1
	sub	lr, fp, #308
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1029]	@ zero_extendqisi2
	sub	r1, fp, #332
	ldmia	r1, {r0-r1}
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1024
	sub	lr, lr, #4
	sub	ip, fp, #300
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1028]	@ zero_extendqisi2
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #3
	sub	lr, fp, #292
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #2
	sub	lr, fp, #284
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1026]	@ zero_extendqisi2
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	sub	ip, fp, #1024
	sub	ip, ip, #1
	sub	lr, fp, #276
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1025]	@ zero_extendqisi2
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1024
	sub	ip, fp, #268
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1024]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1030]	@ zero_extendqisi2
	and	r6, r3, #255
	mov	r7, #0
	ldrb	r3, [fp, #-1035]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-1039]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #588
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1148]
	adc	r3, r1, r3
	str	r3, [fp, #-1144]
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1144]
	mov	r1, r2
	adds	r1, r4, r1
	str	r1, [fp, #-1156]
	adc	r3, r5, r3
	str	r3, [fp, #-1152]
	b	.L56
.L57:
	.align	3
.L55:
	.word	1
	.word	-1725091603
	.word	2073868052
	.word	158155183
	.word	-1010213608
	.word	2006428059
	.word	-1962024729
	.word	-674034243
	.word	15
	.word	-1938232141
	.word	-1
	.word	-1725091604
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC8
.L56:
	ldr	r3, [fp, #-1156]
	ldr	r4, [fp, #-1152]
	mov	r2, r3
	adds	r2, r6, r2
	str	r2, [fp, #-1164]
	mov	r3, r4
	adc	r3, r7, r3
	str	r3, [fp, #-1160]
	sub	r3, fp, #452
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1164]
	ldr	r1, [fp, #-1160]
	mov	lr, r0
	adds	lr, lr, r2
	str	lr, [fp, #-1172]
	adc	r3, r1, r3
	str	r3, [fp, #-1168]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1020
	sub	r1, r1, #3
	sub	r0, fp, #260
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-1172]
	ldr	r4, [fp, #-1168]
	stm	sp, {r3-r4}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	ip, fp, #244
	sub	lr, fp, #252
	adr	r3, .L55+40
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	ip, fp, #228
	sub	lr, fp, #236
	mov	r2, #0
	mov	r3, #1073741824
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	ip, fp, #212
	sub	lr, fp, #220
	adr	r3, .L55+56
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	ip, fp, #196
	sub	lr, fp, #204
	adr	r3, .L55+48
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_mulx_u64
	sub	r5, fp, #196
	ldmia	r5, {r4-r5}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1020
	sub	r1, r1, #2
	sub	r0, fp, #188
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r5, fp, #284
	ldmia	r5, {r4-r5}
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1020
	sub	r1, r1, #1
	sub	r0, fp, #180
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-1021]	@ zero_extendqisi2
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1020
	sub	ip, fp, #172
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-1020]	@ zero_extendqisi2
	sub	r5, fp, #268
	ldmia	r5, {r4-r5}
	ldrb	r3, [fp, #-1022]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-1180]
	adc	r3, r1, r3
	str	r3, [fp, #-1176]
	sub	r3, fp, #1016
	sub	r3, r3, #3
	sub	r0, fp, #164
	ldr	r1, [fp, #-1180]
	ldr	r2, [fp, #-1176]
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r2, [fp, #-1019]	@ zero_extendqisi2
	sub	r5, fp, #260
	ldmia	r5, {r4-r5}
	sub	r7, fp, #236
	ldmia	r7, {r6-r7}
	sub	r3, fp, #1016
	sub	r3, r3, #2
	sub	r0, fp, #156
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r3, [fp, #-1018]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldrb	r3, [fp, #-1023]	@ zero_extendqisi2
	and	r6, r3, #255
	mov	r7, #0
	ldrb	r3, [fp, #-1027]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1188]
	adc	r3, r1, r3
	str	r3, [fp, #-1184]
	ldr	r2, [fp, #-1188]
	ldr	r3, [fp, #-1184]
	mov	r1, r2
	adds	r1, r6, r1
	str	r1, [fp, #-1196]
	adc	r3, r7, r3
	str	r3, [fp, #-1192]
	ldr	r2, [fp, #-1196]
	ldr	r3, [fp, #-1192]
	mov	r1, r2
	adds	r1, r4, r1
	str	r1, [fp, #-1204]
	adc	r3, r5, r3
	str	r3, [fp, #-1200]
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1204]
	ldr	r1, [fp, #-1200]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1212]
	adc	r3, r1, r3
	str	r3, [fp, #-1208]
	ldr	r3, [fp, #-1212]
	ldr	r4, [fp, #-1208]
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1016
	sub	r3, r3, #1
	sub	ip, fp, #148
	adr	r5, .L55+48
	ldmia	r5, {r4-r5}
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-1017]	@ zero_extendqisi2
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	sub	lr, fp, #1016
	sub	ip, fp, #140
	adr	r1, .L55+56
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1016]	@ zero_extendqisi2
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1012
	sub	r3, r3, #3
	sub	ip, fp, #132
	mov	r4, #0
	mov	r5, #0
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1015]	@ zero_extendqisi2
	sub	r3, fp, #1012
	sub	r3, r3, #2
	sub	ip, fp, #124
	mov	r0, #0
	mov	r1, #1073741824
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r2, [fp, #-1014]	@ zero_extendqisi2
	sub	r3, fp, #1012
	sub	r3, r3, #1
	sub	ip, fp, #116
	mov	r0, #0
	mov	r1, #0
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	mov	r0, #0
	mov	r1, #0
	stm	sp, {r0-r1}
	mov	r1, r3
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	lr, [fp, #-1013]	@ zero_extendqisi2
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	ip, fp, #108
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1013]	@ zero_extendqisi2
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	sub	ip, fp, #100
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1013]	@ zero_extendqisi2
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	sub	ip, fp, #92
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-1013]	@ zero_extendqisi2
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	sub	ip, fp, #84
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1072]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1072]
	add	r1, r3, #8
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1072]
	add	r1, r3, #16
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1072]
	add	r1, r3, #24
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L55+64
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L48
	bl	__stack_chk_fail
.L48:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	fiat_pasta_fp_to_montgomery, .-fiat_pasta_fp_to_montgomery
	.align	2
	.global	fiat_pasta_fp_nonzero
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_nonzero, %function
fiat_pasta_fp_nonzero:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r1, [fp, #-52]
	ldmia	r1, {r0-r1}
	ldr	ip, [fp, #-52]
	add	ip, ip, #8
	ldmia	ip, {r9-r10}
	ldr	ip, [fp, #-52]
	add	ip, ip, #16
	ldmia	ip, {r6-r7}
	str	r6, [fp, #-60]
	str	r7, [fp, #-56]
	ldr	ip, [fp, #-52]
	add	ip, ip, #24
	ldmia	ip, {r7-r8}
	ldr	ip, [fp, #-60]
	mov	lr, r7
	orr	r4, ip, lr
	ldr	ip, [fp, #-56]
	mov	lr, r8
	orr	r5, ip, lr
	orr	r2, r9, r4
	orr	r3, r10, r5
	orr	ip, r0, r2
	str	ip, [fp, #-68]
	orr	r3, r1, r3
	str	r3, [fp, #-64]
	sub	r4, fp, #68
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	ldr	r1, [fp, #-48]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
	.size	fiat_pasta_fp_nonzero, .-fiat_pasta_fp_nonzero
	.section	.rodata
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_selectznz
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_selectznz, %function
fiat_pasta_fp_selectznz:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-48]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	mov	r3, r1
	strb	r3, [fp, #-49]
	ldr	r3, .L61
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-56]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-49]	@ zero_extendqisi2
	sub	ip, fp, #44
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-49]	@ zero_extendqisi2
	sub	ip, fp, #36
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-49]	@ zero_extendqisi2
	sub	ip, fp, #28
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-56]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-49]	@ zero_extendqisi2
	sub	ip, fp, #20
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-48]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-48]
	add	r1, r3, #8
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-48]
	add	r1, r3, #16
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-48]
	add	r1, r3, #24
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L61
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L60
	bl	__stack_chk_fail
.L60:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L62:
	.align	2
.L61:
	.word	.LC9
	.size	fiat_pasta_fp_selectznz, .-fiat_pasta_fp_selectznz
	.align	2
	.global	fiat_pasta_fp_to_bytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_to_bytes, %function
fiat_pasta_fp_to_bytes:
	@ args = 0, pretend = 0, frame = 264
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #268
	str	r0, [fp, #-264]
	str	r1, [fp, #-268]
	ldr	r3, [fp, #-268]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-268]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-268]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-212]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-268]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-204]
	strb	r3, [fp, #-260]
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-196]
	strb	r3, [fp, #-259]
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-188]
	strb	r3, [fp, #-258]
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-180]
	strb	r3, [fp, #-257]
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-172]
	strb	r3, [fp, #-256]
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-164]
	strb	r3, [fp, #-255]
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-156]
	strb	r3, [fp, #-254]
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	mov	r3, r2
	strb	r3, [fp, #-253]
	ldr	r3, [fp, #-212]
	strb	r3, [fp, #-252]
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-148]
	strb	r3, [fp, #-251]
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-140]
	strb	r3, [fp, #-250]
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-132]
	strb	r3, [fp, #-249]
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-124]
	strb	r3, [fp, #-248]
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-116]
	strb	r3, [fp, #-247]
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	strb	r3, [fp, #-246]
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	mov	r3, r2
	strb	r3, [fp, #-245]
	ldr	r3, [fp, #-220]
	strb	r3, [fp, #-244]
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-100]
	strb	r3, [fp, #-243]
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-92]
	strb	r3, [fp, #-242]
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-84]
	strb	r3, [fp, #-241]
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	strb	r3, [fp, #-240]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-68]
	strb	r3, [fp, #-239]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	strb	r3, [fp, #-238]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	mov	r3, r2
	strb	r3, [fp, #-237]
	ldr	r3, [fp, #-228]
	strb	r3, [fp, #-236]
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-52]
	strb	r3, [fp, #-235]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-44]
	strb	r3, [fp, #-234]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	strb	r3, [fp, #-233]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	strb	r3, [fp, #-232]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	strb	r3, [fp, #-231]
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	strb	r3, [fp, #-230]
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	mov	r3, r2
	strb	r3, [fp, #-229]
	ldr	r3, [fp, #-264]
	ldrb	r2, [fp, #-260]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #1
	ldrb	r2, [fp, #-259]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #2
	ldrb	r2, [fp, #-258]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #3
	ldrb	r2, [fp, #-257]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #4
	ldrb	r2, [fp, #-256]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #5
	ldrb	r2, [fp, #-255]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #6
	ldrb	r2, [fp, #-254]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #7
	ldrb	r2, [fp, #-253]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #8
	ldrb	r2, [fp, #-252]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #9
	ldrb	r2, [fp, #-251]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #10
	ldrb	r2, [fp, #-250]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #11
	ldrb	r2, [fp, #-249]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #12
	ldrb	r2, [fp, #-248]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #13
	ldrb	r2, [fp, #-247]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #14
	ldrb	r2, [fp, #-246]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #15
	ldrb	r2, [fp, #-245]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #16
	ldrb	r2, [fp, #-244]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #17
	ldrb	r2, [fp, #-243]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #18
	ldrb	r2, [fp, #-242]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #19
	ldrb	r2, [fp, #-241]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #20
	ldrb	r2, [fp, #-240]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #21
	ldrb	r2, [fp, #-239]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #22
	ldrb	r2, [fp, #-238]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #23
	ldrb	r2, [fp, #-237]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #24
	ldrb	r2, [fp, #-236]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #25
	ldrb	r2, [fp, #-235]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #26
	ldrb	r2, [fp, #-234]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #27
	ldrb	r2, [fp, #-233]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #28
	ldrb	r2, [fp, #-232]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #29
	ldrb	r2, [fp, #-231]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #30
	ldrb	r2, [fp, #-230]
	strb	r2, [r3]
	ldr	r3, [fp, #-264]
	add	r3, r3, #31
	ldrb	r2, [fp, #-229]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_pasta_fp_to_bytes, .-fiat_pasta_fp_to_bytes
	.align	2
	.global	fiat_pasta_fp_from_bytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_from_bytes, %function
fiat_pasta_fp_from_bytes:
	@ args = 0, pretend = 0, frame = 664
	@ 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, #668
	str	r0, [fp, #-488]
	str	r1, [fp, #-492]
	ldr	r3, [fp, #-492]
	add	r3, r3, #31
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	str	r0, [fp, #-476]
	str	r1, [fp, #-472]
	ldr	r3, [fp, #-492]
	add	r3, r3, #30
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	str	r0, [fp, #-468]
	str	r1, [fp, #-464]
	ldr	r3, [fp, #-492]
	add	r3, r3, #29
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	str	r0, [fp, #-460]
	str	r1, [fp, #-456]
	ldr	r3, [fp, #-492]
	add	r3, r3, #28
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	str	r0, [fp, #-452]
	str	r1, [fp, #-448]
	ldr	r3, [fp, #-492]
	add	r3, r3, #27
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #24
	orr	r1, r1, r2, lsr #8
	lsl	r0, r2, #24
	str	r0, [fp, #-444]
	str	r1, [fp, #-440]
	ldr	r3, [fp, #-492]
	add	r3, r3, #26
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	str	r0, [fp, #-436]
	str	r1, [fp, #-432]
	ldr	r3, [fp, #-492]
	add	r3, r3, #25
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	str	r0, [fp, #-428]
	str	r1, [fp, #-424]
	ldr	r3, [fp, #-492]
	ldrb	r3, [r3, #24]
	strb	r3, [fp, #-480]
	ldr	r3, [fp, #-492]
	add	r3, r3, #23
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	str	r0, [fp, #-420]
	str	r1, [fp, #-416]
	ldr	r3, [fp, #-492]
	add	r3, r3, #22
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	str	r0, [fp, #-412]
	str	r1, [fp, #-408]
	ldr	r3, [fp, #-492]
	add	r3, r3, #21
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	str	r0, [fp, #-404]
	str	r1, [fp, #-400]
	ldr	r3, [fp, #-492]
	add	r3, r3, #20
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	str	r0, [fp, #-396]
	str	r1, [fp, #-392]
	ldr	r3, [fp, #-492]
	add	r3, r3, #19
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #24
	orr	r1, r1, r2, lsr #8
	lsl	r0, r2, #24
	str	r0, [fp, #-388]
	str	r1, [fp, #-384]
	ldr	r3, [fp, #-492]
	add	r3, r3, #18
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	str	r0, [fp, #-380]
	str	r1, [fp, #-376]
	ldr	r3, [fp, #-492]
	add	r3, r3, #17
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	str	r0, [fp, #-372]
	str	r1, [fp, #-368]
	ldr	r3, [fp, #-492]
	ldrb	r3, [r3, #16]
	strb	r3, [fp, #-479]
	ldr	r3, [fp, #-492]
	add	r3, r3, #15
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	str	r0, [fp, #-364]
	str	r1, [fp, #-360]
	ldr	r3, [fp, #-492]
	add	r3, r3, #14
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	str	r0, [fp, #-356]
	str	r1, [fp, #-352]
	ldr	r3, [fp, #-492]
	add	r3, r3, #13
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	str	r0, [fp, #-348]
	str	r1, [fp, #-344]
	ldr	r3, [fp, #-492]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	str	r0, [fp, #-340]
	str	r1, [fp, #-336]
	ldr	r3, [fp, #-492]
	add	r3, r3, #11
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #24
	orr	r1, r1, r2, lsr #8
	lsl	r0, r2, #24
	str	r0, [fp, #-332]
	str	r1, [fp, #-328]
	ldr	r3, [fp, #-492]
	add	r3, r3, #10
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	str	r0, [fp, #-324]
	str	r1, [fp, #-320]
	ldr	r3, [fp, #-492]
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	str	r0, [fp, #-316]
	str	r1, [fp, #-312]
	ldr	r3, [fp, #-492]
	ldrb	r3, [r3, #8]
	strb	r3, [fp, #-478]
	ldr	r3, [fp, #-492]
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	str	r0, [fp, #-308]
	str	r1, [fp, #-304]
	ldr	r3, [fp, #-492]
	add	r3, r3, #6
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	str	r0, [fp, #-300]
	str	r1, [fp, #-296]
	ldr	r3, [fp, #-492]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	str	r0, [fp, #-292]
	str	r1, [fp, #-288]
	ldr	r3, [fp, #-492]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	str	r0, [fp, #-284]
	str	r1, [fp, #-280]
	ldr	r3, [fp, #-492]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #24
	orr	r1, r1, r2, lsr #8
	lsl	r0, r2, #24
	str	r0, [fp, #-276]
	str	r1, [fp, #-272]
	ldr	r3, [fp, #-492]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	str	r0, [fp, #-268]
	str	r1, [fp, #-264]
	ldr	r3, [fp, #-492]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	str	r0, [fp, #-260]
	str	r1, [fp, #-256]
	ldr	r3, [fp, #-492]
	ldrb	r3, [r3]
	strb	r3, [fp, #-477]
	ldrb	r0, [fp, #-477]	@ zero_extendqisi2
	mov	r1, #0
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	adds	r4, r2, r0
	adc	r5, r3, r1
	str	r4, [fp, #-252]
	str	r5, [fp, #-248]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-244]
	str	r7, [fp, #-240]
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	str	r8, [fp, #-236]
	str	r9, [fp, #-232]
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-500]
	adc	r3, r1, r3
	str	r3, [fp, #-496]
	sub	r4, fp, #500
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-228]
	str	r4, [fp, #-224]
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-508]
	adc	r3, r1, r3
	str	r3, [fp, #-504]
	sub	r4, fp, #508
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-220]
	str	r4, [fp, #-216]
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-516]
	adc	r3, r1, r3
	str	r3, [fp, #-512]
	sub	r4, fp, #516
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-212]
	str	r4, [fp, #-208]
	sub	r1, fp, #308
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-524]
	adc	r3, r1, r3
	str	r3, [fp, #-520]
	sub	r4, fp, #524
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-204]
	str	r4, [fp, #-200]
	ldrb	r0, [fp, #-478]	@ zero_extendqisi2
	mov	r1, #0
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-532]
	adc	r3, r3, r1
	str	r3, [fp, #-528]
	sub	r4, fp, #532
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-196]
	str	r4, [fp, #-192]
	sub	r1, fp, #324
	ldmia	r1, {r0-r1}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-540]
	adc	r3, r1, r3
	str	r3, [fp, #-536]
	sub	r4, fp, #540
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-188]
	str	r4, [fp, #-184]
	sub	r1, fp, #332
	ldmia	r1, {r0-r1}
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-548]
	adc	r3, r1, r3
	str	r3, [fp, #-544]
	sub	r4, fp, #548
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-180]
	str	r4, [fp, #-176]
	sub	r1, fp, #340
	ldmia	r1, {r0-r1}
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-556]
	adc	r3, r1, r3
	str	r3, [fp, #-552]
	sub	r4, fp, #556
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-172]
	str	r4, [fp, #-168]
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-564]
	adc	r3, r1, r3
	str	r3, [fp, #-560]
	sub	r4, fp, #564
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-164]
	str	r4, [fp, #-160]
	sub	r1, fp, #356
	ldmia	r1, {r0-r1}
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-572]
	adc	r3, r1, r3
	str	r3, [fp, #-568]
	sub	r4, fp, #572
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-156]
	str	r4, [fp, #-152]
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-580]
	adc	r3, r1, r3
	str	r3, [fp, #-576]
	sub	r4, fp, #580
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-148]
	str	r4, [fp, #-144]
	ldrb	r0, [fp, #-479]	@ zero_extendqisi2
	mov	r1, #0
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-588]
	adc	r3, r3, r1
	str	r3, [fp, #-584]
	sub	r4, fp, #588
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-140]
	str	r4, [fp, #-136]
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-596]
	adc	r3, r1, r3
	str	r3, [fp, #-592]
	sub	r4, fp, #596
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-132]
	str	r4, [fp, #-128]
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-604]
	adc	r3, r1, r3
	str	r3, [fp, #-600]
	sub	r4, fp, #604
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-124]
	str	r4, [fp, #-120]
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-612]
	adc	r3, r1, r3
	str	r3, [fp, #-608]
	sub	r4, fp, #612
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-116]
	str	r4, [fp, #-112]
	sub	r1, fp, #404
	ldmia	r1, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-620]
	adc	r3, r1, r3
	str	r3, [fp, #-616]
	sub	r4, fp, #620
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-108]
	str	r4, [fp, #-104]
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-628]
	adc	r3, r1, r3
	str	r3, [fp, #-624]
	sub	r4, fp, #628
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-100]
	str	r4, [fp, #-96]
	sub	r1, fp, #420
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-636]
	adc	r3, r1, r3
	str	r3, [fp, #-632]
	sub	r4, fp, #636
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	ldrb	r0, [fp, #-480]	@ zero_extendqisi2
	mov	r1, #0
	sub	r3, fp, #428
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-644]
	adc	r3, r3, r1
	str	r3, [fp, #-640]
	sub	r4, fp, #644
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-84]
	str	r4, [fp, #-80]
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-652]
	adc	r3, r1, r3
	str	r3, [fp, #-648]
	sub	r4, fp, #652
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #444
	ldmia	r1, {r0-r1}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-660]
	adc	r3, r1, r3
	str	r3, [fp, #-656]
	sub	r4, fp, #660
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	sub	r1, fp, #452
	ldmia	r1, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-668]
	adc	r3, r1, r3
	str	r3, [fp, #-664]
	sub	r4, fp, #668
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r1, fp, #460
	ldmia	r1, {r0-r1}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-676]
	adc	r3, r1, r3
	str	r3, [fp, #-672]
	sub	r4, fp, #676
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
	sub	r1, fp, #468
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-684]
	adc	r3, r1, r3
	str	r3, [fp, #-680]
	sub	r4, fp, #684
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-692]
	adc	r3, r1, r3
	str	r3, [fp, #-688]
	sub	r4, fp, #692
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r1, [fp, #-488]
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-488]
	add	r1, r3, #8
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-488]
	add	r1, r3, #16
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-488]
	add	r1, r3, #24
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_pasta_fp_from_bytes, .-fiat_pasta_fp_from_bytes
	.align	2
	.global	fiat_pasta_fp_set_one
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_set_one, %function
fiat_pasta_fp_set_one:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	adr	r3, .L66
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #8
	adr	r3, .L66+8
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #16
	mvn	r2, #0
	mvn	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #24
	mvn	r2, #0
	mvn	r3, #-1073741824
	stm	r1, {r2-r3}
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L67:
	.align	3
.L66:
	.word	-3
	.word	880307512
	.word	-468118355
	.word	-1725156085
	.size	fiat_pasta_fp_set_one, .-fiat_pasta_fp_set_one
	.align	2
	.global	fiat_pasta_fp_msat
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_msat, %function
fiat_pasta_fp_msat:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	adr	r3, .L69
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #8
	adr	r3, .L69+8
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #16
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #24
	mov	r2, #0
	mov	r3, #1073741824
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #32
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L70:
	.align	3
.L69:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.size	fiat_pasta_fp_msat, .-fiat_pasta_fp_msat
	.align	2
	.global	fiat_pasta_fp_divstep_precomp
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_divstep_precomp, %function
fiat_pasta_fp_divstep_precomp:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	adr	r3, .L72
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #8
	adr	r3, .L72+8
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #16
	adr	r3, .L72+16
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r1, r3, #24
	adr	r3, .L72+24
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L73:
	.align	3
.L72:
	.word	1904698754
	.word	-341860675
	.word	659370907
	.word	1641326437
	.word	1862693357
	.word	1274047816
	.word	186210854
	.word	662841339
	.size	fiat_pasta_fp_divstep_precomp, .-fiat_pasta_fp_divstep_precomp
	.section	.rodata
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_divstep
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_divstep, %function
fiat_pasta_fp_divstep:
	@ args = 32, pretend = 0, frame = 880
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #896
	str	r0, [fp, #-768]
	str	r1, [fp, #-772]
	str	r2, [fp, #-776]
	str	r3, [fp, #-780]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-784]
	ldr	r3, [fp, #20]
	str	r3, [fp, #-788]
	ldr	r3, [fp, #24]
	str	r3, [fp, #-792]
	ldr	r3, [fp, #28]
	str	r3, [fp, #-796]
	ldr	r3, [fp, #32]
	str	r3, [fp, #-800]
	ldr	r3, .L76+16
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	mvn	r4, r2
	mvn	r5, r3
	sub	r1, fp, #756
	sub	r1, r1, #1
	sub	r0, fp, #716
	mov	r2, #1
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #716
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #31
	mov	r1, #0
	lsl	r3, r0, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-792]
	ldmia	r3, {r2-r3}
	lsl	r3, r2, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, r1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-718]
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	mvn	r6, r2
	mvn	r7, r3
	sub	r1, fp, #756
	sub	r0, fp, #708
	mov	r2, #1
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r6-r7}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-718]	@ zero_extendqisi2
	sub	r0, fp, #700
	stm	sp, {r2-r3}
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-792]
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #692
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-792]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #684
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-792]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #676
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-792]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #668
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	add	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-792]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #660
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-788]
	ldmia	r3, {r2-r3}
	mvn	r8, r2
	mvn	r9, r3
	sub	r1, fp, #752
	sub	r1, r1, #3
	sub	r0, fp, #652
	str	r8, [sp, #8]
	str	r9, [sp, #12]
	mov	r2, #1
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-755]	@ zero_extendqisi2
	ldr	r3, [fp, #-788]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mvn	r1, r2
	str	r1, [fp, #-812]
	mvn	r3, r3
	str	r3, [fp, #-808]
	sub	r1, fp, #752
	sub	r1, r1, #2
	sub	r0, fp, #644
	sub	r4, fp, #812
	ldmia	r4, {r3-r4}
	str	r3, [sp, #8]
	str	r4, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-754]	@ zero_extendqisi2
	ldr	r3, [fp, #-788]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mvn	r1, r2
	str	r1, [fp, #-820]
	mvn	r3, r3
	str	r3, [fp, #-816]
	sub	r1, fp, #752
	sub	r1, r1, #1
	sub	r0, fp, #636
	sub	r4, fp, #820
	ldmia	r4, {r3-r4}
	str	r3, [sp, #8]
	str	r4, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-753]	@ zero_extendqisi2
	ldr	r3, [fp, #-788]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	mvn	r1, r2
	str	r1, [fp, #-828]
	mvn	r3, r3
	str	r3, [fp, #-824]
	sub	r1, fp, #752
	sub	r0, fp, #628
	sub	r4, fp, #828
	ldmia	r4, {r3-r4}
	str	r3, [sp, #8]
	str	r4, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-752]	@ zero_extendqisi2
	ldr	r3, [fp, #-788]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	mvn	r1, r2
	str	r1, [fp, #-836]
	mvn	r3, r3
	str	r3, [fp, #-832]
	sub	r1, fp, #748
	sub	r1, r1, #3
	sub	r0, fp, #620
	sub	r4, fp, #836
	ldmia	r4, {r3-r4}
	str	r3, [sp, #8]
	str	r4, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldr	r3, [fp, #-792]
	ldmia	r3, {r0-r1}
	sub	r3, fp, #652
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #612
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-792]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #604
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-792]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #596
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-792]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #588
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-792]
	add	r3, r3, #32
	ldmia	r3, {r0-r1}
	sub	r3, fp, #620
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #580
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-796]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-800]
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #572
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-796]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-800]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #564
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-796]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-800]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #556
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-796]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-800]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #548
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r1, fp, #572
	ldmia	r1, {r0-r1}
	sub	r3, fp, #572
	ldmia	r3, {r2-r3}
	sub	ip, fp, #748
	sub	ip, ip, #2
	sub	lr, fp, #540
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-750]	@ zero_extendqisi2
	sub	r1, fp, #564
	ldmia	r1, {r0-r1}
	sub	r3, fp, #564
	ldmia	r3, {r2-r3}
	sub	ip, fp, #748
	sub	ip, ip, #1
	sub	lr, fp, #532
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-749]	@ zero_extendqisi2
	sub	r1, fp, #556
	ldmia	r1, {r0-r1}
	sub	r3, fp, #556
	ldmia	r3, {r2-r3}
	sub	lr, fp, #748
	sub	ip, fp, #524
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-748]	@ zero_extendqisi2
	sub	r1, fp, #548
	ldmia	r1, {r0-r1}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	sub	ip, fp, #744
	sub	ip, ip, #3
	sub	lr, fp, #516
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #540
	ldmia	r1, {r0-r1}
	sub	ip, fp, #744
	sub	ip, ip, #2
	sub	lr, fp, #508
	adr	r3, .L76
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-746]	@ zero_extendqisi2
	sub	r1, fp, #532
	ldmia	r1, {r0-r1}
	sub	ip, fp, #744
	sub	ip, ip, #1
	sub	lr, fp, #500
	adr	r3, .L76+8
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-745]	@ zero_extendqisi2
	sub	r1, fp, #524
	ldmia	r1, {r0-r1}
	sub	lr, fp, #744
	sub	ip, fp, #492
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-744]	@ zero_extendqisi2
	sub	r1, fp, #516
	ldmia	r1, {r0-r1}
	sub	ip, fp, #740
	sub	ip, ip, #3
	sub	lr, fp, #484
	mov	r2, #0
	mov	r3, #1073741824
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-743]	@ zero_extendqisi2
	ldrb	r3, [fp, #-747]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	ip, fp, #740
	sub	ip, ip, #2
	sub	lr, fp, #476
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldr	r3, [fp, #-796]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-796]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-796]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-796]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r1, fp, #740
	sub	r1, r1, #1
	sub	r0, fp, #468
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-741]	@ zero_extendqisi2
	sub	r1, fp, #740
	sub	r0, fp, #460
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-740]	@ zero_extendqisi2
	sub	r1, fp, #736
	sub	r1, r1, #3
	sub	r0, fp, #452
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	ip, [fp, #-739]	@ zero_extendqisi2
	sub	r1, fp, #736
	sub	r1, r1, #2
	sub	r0, fp, #444
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	mov	r2, #0
	mov	r3, #0
	stm	sp, {r2-r3}
	mov	r2, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r1, [fp, #-738]	@ zero_extendqisi2
	sub	r0, fp, #436
	mvn	r2, #0
	mvn	r3, #0
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r5, fp, #468
	ldmia	r5, {r4-r5}
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	adr	r3, .L76
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-844]
	and	r3, r1, r3
	str	r3, [fp, #-840]
	sub	r3, fp, #736
	sub	r3, r3, #1
	sub	r0, fp, #428
	sub	r2, fp, #844
	ldmia	r2, {r1-r2}
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, #0
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-737]	@ zero_extendqisi2
	sub	r5, fp, #460
	ldmia	r5, {r4-r5}
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	adr	r3, .L76+8
	ldmia	r3, {r2-r3}
	and	lr, r0, r2
	str	lr, [fp, #-852]
	and	r3, r1, r3
	str	r3, [fp, #-848]
	sub	r1, fp, #736
	sub	r3, fp, #420
	sub	r7, fp, #852
	ldmia	r7, {r6-r7}
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r0, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-736]	@ zero_extendqisi2
	sub	r1, fp, #452
	ldmia	r1, {r0-r1}
	sub	ip, fp, #732
	sub	ip, ip, #3
	sub	lr, fp, #412
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	ip, [fp, #-735]	@ zero_extendqisi2
	sub	r5, fp, #444
	ldmia	r5, {r4-r5}
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #1073741824
	and	lr, r0, r2
	str	lr, [fp, #-860]
	and	r3, r1, r3
	str	r3, [fp, #-856]
	sub	r3, fp, #732
	sub	r3, r3, #2
	sub	r0, fp, #404
	sub	r2, fp, #860
	ldmia	r2, {r1-r2}
	str	r1, [sp, #8]
	str	r2, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, ip
	mov	r1, r3
	bl	fiat_pasta_fp_addcarryx_u64
	ldr	r3, [fp, #-800]
	ldmia	r3, {r0-r1}
	sub	r3, fp, #428
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #396
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	b	.L77
.L78:
	.align	3
.L76:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC10
.L77:
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-800]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #420
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #388
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-800]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	sub	r3, fp, #412
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #380
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldr	r3, [fp, #-800]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	sub	r3, fp, #404
	ldmia	r3, {r2-r3}
	ldrb	lr, [fp, #-718]	@ zero_extendqisi2
	sub	ip, fp, #372
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	and	r3, r2, #255
	and	r3, r3, #1
	strb	r3, [fp, #-717]
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #364
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #684
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #356
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #348
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #668
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #340
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #332
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r1, fp, #612
	ldmia	r1, {r0-r1}
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	sub	ip, fp, #732
	sub	ip, ip, #1
	sub	lr, fp, #324
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-733]	@ zero_extendqisi2
	sub	r1, fp, #604
	ldmia	r1, {r0-r1}
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	sub	lr, fp, #732
	sub	ip, fp, #316
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-732]	@ zero_extendqisi2
	sub	r1, fp, #596
	ldmia	r1, {r0-r1}
	sub	r3, fp, #348
	ldmia	r3, {r2-r3}
	sub	ip, fp, #728
	sub	ip, ip, #3
	sub	lr, fp, #308
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-731]	@ zero_extendqisi2
	sub	r1, fp, #588
	ldmia	r1, {r0-r1}
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	ip, fp, #728
	sub	ip, ip, #2
	sub	lr, fp, #300
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-730]	@ zero_extendqisi2
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	r3, fp, #332
	ldmia	r3, {r2-r3}
	sub	ip, fp, #728
	sub	ip, ip, #1
	sub	lr, fp, #292
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #572
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #284
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #564
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #276
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #556
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #268
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	ldrb	r1, [fp, #-717]	@ zero_extendqisi2
	sub	r0, fp, #260
	stm	sp, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	r3, fp, #284
	ldmia	r3, {r2-r3}
	sub	lr, fp, #728
	sub	ip, fp, #252
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-728]	@ zero_extendqisi2
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	sub	ip, fp, #724
	sub	ip, ip, #3
	sub	lr, fp, #244
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-727]	@ zero_extendqisi2
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #268
	ldmia	r3, {r2-r3}
	sub	ip, fp, #724
	sub	ip, ip, #2
	sub	lr, fp, #236
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	ldrb	r4, [fp, #-726]	@ zero_extendqisi2
	sub	r1, fp, #372
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	ip, fp, #724
	sub	ip, ip, #1
	sub	lr, fp, #228
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	lr, fp, #724
	sub	ip, fp, #220
	adr	r3, .L79
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-724]	@ zero_extendqisi2
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	sub	ip, fp, #720
	sub	ip, ip, #3
	sub	lr, fp, #212
	adr	r3, .L79+8
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-723]	@ zero_extendqisi2
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	ip, fp, #720
	sub	ip, ip, #2
	sub	lr, fp, #204
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-722]	@ zero_extendqisi2
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	ip, fp, #720
	sub	ip, ip, #1
	sub	lr, fp, #196
	mov	r2, #0
	mov	r3, #1073741824
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_subborrowx_u64
	ldrb	r4, [fp, #-721]	@ zero_extendqisi2
	ldrb	r3, [fp, #-725]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	sub	lr, fp, #720
	sub	ip, fp, #188
	mov	r2, #0
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_subborrowx_u64
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	ip, fp, #716
	sub	ip, ip, #3
	sub	lr, fp, #180
	mov	r2, #1
	mov	r3, #0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, #0
	mov	r1, ip
	mov	r0, lr
	bl	fiat_pasta_fp_addcarryx_u64
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	lsr	r4, r2, #1
	orr	r4, r4, r3, lsl #31
	lsr	r5, r3, #1
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #31
	mov	r0, #0
	orr	r3, r4, r0
	str	r3, [fp, #-876]
	orr	r3, r5, r1
	str	r3, [fp, #-872]
	sub	r4, fp, #876
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #1
	orr	r0, r0, r3, lsl #31
	lsr	r1, r3, #1
	sub	r5, fp, #308
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r4, #31
	mov	r2, #0
	orr	ip, r0, r2
	str	ip, [fp, #-884]
	orr	r3, r1, r3
	str	r3, [fp, #-880]
	sub	r4, fp, #884
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	sub	r1, fp, #308
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	sub	r5, fp, #300
	ldmia	r5, {r4-r5}
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r4, #31
	mov	r0, #0
	orr	ip, r2, r0
	str	ip, [fp, #-892]
	orr	r3, r3, r1
	str	r3, [fp, #-888]
	sub	r4, fp, #892
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	sub	r5, fp, #292
	ldmia	r5, {r4-r5}
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r4, #31
	mov	r0, #0
	orr	ip, r2, r0
	str	ip, [fp, #-900]
	orr	r3, r3, r1
	str	r3, [fp, #-896]
	sub	r4, fp, #900
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #-2147483648
	and	ip, r2, r0
	str	ip, [fp, #-868]
	and	r3, r3, r1
	str	r3, [fp, #-864]
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	sub	r1, fp, #868
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, ip, r2
	str	ip, [fp, #-908]
	orr	r3, r1, r3
	str	r3, [fp, #-904]
	sub	r4, fp, #908
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	ldrb	lr, [fp, #-742]	@ zero_extendqisi2
	sub	r1, fp, #508
	ldmia	r1, {r0-r1}
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	sub	ip, fp, #172
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-742]	@ zero_extendqisi2
	sub	r1, fp, #500
	ldmia	r1, {r0-r1}
	sub	r3, fp, #532
	ldmia	r3, {r2-r3}
	sub	ip, fp, #164
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-742]	@ zero_extendqisi2
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	r3, fp, #524
	ldmia	r3, {r2-r3}
	sub	ip, fp, #156
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-742]	@ zero_extendqisi2
	sub	r1, fp, #484
	ldmia	r1, {r0-r1}
	sub	r3, fp, #516
	ldmia	r3, {r2-r3}
	sub	ip, fp, #148
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-720]	@ zero_extendqisi2
	b	.L80
.L81:
	.align	3
.L79:
	.word	1
	.word	-1725091603
	.word	156039451
	.word	575052028
	.word	.LC10
.L80:
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	sub	ip, fp, #140
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-720]	@ zero_extendqisi2
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	sub	ip, fp, #132
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-720]	@ zero_extendqisi2
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	sub	ip, fp, #124
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	ldrb	lr, [fp, #-720]	@ zero_extendqisi2
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	ip, fp, #116
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r1, lr
	mov	r0, ip
	bl	fiat_pasta_fp_cmovznz_u64
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-768]
	stm	r1, {r2-r3}
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-772]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-772]
	add	r1, r3, #8
	sub	r3, fp, #684
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-772]
	add	r1, r3, #16
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-772]
	add	r1, r3, #24
	sub	r3, fp, #668
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-772]
	add	r1, r3, #32
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r1, [fp, #-776]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-776]
	add	r1, r3, #8
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-776]
	add	r1, r3, #16
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-776]
	add	r1, r3, #24
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-776]
	add	r1, r3, #32
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-780]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-780]
	add	r1, r3, #8
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-780]
	add	r1, r3, #16
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-780]
	add	r1, r3, #24
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-784]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-784]
	add	r1, r3, #8
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-784]
	add	r1, r3, #16
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-784]
	add	r1, r3, #24
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	ldr	r3, .L79+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L75
	bl	__stack_chk_fail
.L75:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	fiat_pasta_fp_divstep, .-fiat_pasta_fp_divstep
	.align	2
	.global	fiat_pasta_fp_copy
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_copy, %function
fiat_pasta_fp_copy:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L83
.L84:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-16]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L83:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bls	.L84
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_pasta_fp_copy, .-fiat_pasta_fp_copy
	.section	.rodata
	.align	2
.LC11:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_pow
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_pow, %function
fiat_pasta_fp_pow:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, .L90
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-56]
	bl	fiat_pasta_fp_set_one
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L86
.L88:
	sub	r3, fp, #44
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	fiat_pasta_fp_square
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L87
	sub	r3, fp, #44
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r3, fp, #44
	ldr	r2, [fp, #-60]
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	fiat_pasta_fp_mul
.L87:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L86:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bcc	.L88
	nop
	ldr	r3, .L90
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L89
	bl	__stack_chk_fail
.L89:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L91:
	.align	2
.L90:
	.word	.LC11
	.size	fiat_pasta_fp_pow, .-fiat_pasta_fp_pow
	.section	.rodata
	.align	2
.LC0:
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	0
	.byte	1
	.byte	1
	.byte	0
	.byte	0
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_inv
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_inv, %function
fiat_pasta_fp_inv:
	@ args = 0, pretend = 0, frame = 272
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #272
	str	r0, [fp, #-272]
	str	r1, [fp, #-276]
	ldr	r3, .L94
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, .L94+4
	sub	r3, fp, #264
	mov	r1, r2
	mov	r2, #255
	mov	r0, r3
	bl	memcpy
	sub	r2, fp, #264
	mov	r3, #255
	ldr	r1, [fp, #-276]
	ldr	r0, [fp, #-272]
	bl	fiat_pasta_fp_pow
	nop
	ldr	r3, .L94
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L93
	bl	__stack_chk_fail
.L93:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L95:
	.align	2
.L94:
	.word	.LC12
	.word	.LC0
	.size	fiat_pasta_fp_inv, .-fiat_pasta_fp_inv
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_equals
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_equals, %function
fiat_pasta_fp_equals:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, .L101
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #44
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	fiat_pasta_fp_sub
	sub	r2, fp, #44
	sub	r3, fp, #52
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_nonzero
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L97
	mov	r3, #0
	b	.L99
.L97:
	mov	r3, #1
.L99:
	ldr	r2, .L101
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L100
	bl	__stack_chk_fail
.L100:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	.LC13
	.size	fiat_pasta_fp_equals, .-fiat_pasta_fp_equals
	.section	.rodata
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_equals_zero
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_equals_zero, %function
fiat_pasta_fp_equals_zero:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L108
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #20
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	fiat_pasta_fp_nonzero
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L104
	mov	r3, #0
	b	.L106
.L104:
	mov	r3, #1
.L106:
	ldr	r2, .L108
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L107
	bl	__stack_chk_fail
.L107:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L109:
	.align	2
.L108:
	.word	.LC14
	.size	fiat_pasta_fp_equals_zero, .-fiat_pasta_fp_equals_zero
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_equals_one
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_equals_one, %function
fiat_pasta_fp_equals_one:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-88]
	ldr	r3, .L115
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #76
	mov	r0, r3
	bl	fiat_pasta_fp_set_one
	sub	r2, fp, #76
	sub	r3, fp, #44
	ldr	r1, [fp, #-88]
	mov	r0, r3
	bl	fiat_pasta_fp_sub
	sub	r2, fp, #44
	sub	r3, fp, #84
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_nonzero
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L111
	mov	r3, #0
	b	.L113
.L111:
	mov	r3, #1
.L113:
	ldr	r2, .L115
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L114
	bl	__stack_chk_fail
.L114:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L116:
	.align	2
.L115:
	.word	.LC15
	.size	fiat_pasta_fp_equals_one, .-fiat_pasta_fp_equals_one
	.section	.rodata
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_legendre
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_legendre, %function
fiat_pasta_fp_legendre:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	ldr	r3, .L123
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #44
	mov	r3, #254
	ldr	r2, .L123+4
	ldr	r1, [fp, #-56]
	bl	fiat_pasta_fp_pow
	sub	r3, fp, #52
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	fiat_pasta_fp_nonzero
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L118
	sub	r3, fp, #44
	mov	r0, r3
	bl	fiat_pasta_fp_equals_one
	mov	r3, r0
	cmp	r3, #0
	beq	.L119
	mov	r3, #1
	b	.L121
.L119:
	mvn	r3, #0
	b	.L121
.L118:
	mov	r3, #0
.L121:
	ldr	r2, .L123
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L122
	bl	__stack_chk_fail
.L122:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L124:
	.align	2
.L123:
	.word	.LC16
	.word	P_MINUS_1_OVER_2
	.size	fiat_pasta_fp_legendre, .-fiat_pasta_fp_legendre
	.section	.rodata
	.align	2
.LC17:
	.ascii	"[ \000"
	.align	2
.LC18:
	.ascii	"0x%llx, \000"
	.align	2
.LC19:
	.ascii	"] \000"
	.text
	.align	2
	.global	fiat_pasta_fp_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_print, %function
fiat_pasta_fp_print:
	@ 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, #-16]
	ldr	r0, .L128
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L126
.L127:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r0, .L128+4
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L126:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bls	.L127
	ldr	r0, .L128+8
	bl	puts
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L129:
	.align	2
.L128:
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.size	fiat_pasta_fp_print, .-fiat_pasta_fp_print
	.section	.rodata
	.align	3
.LC1:
	.word	-1160324112
	.word	-1567770551
	.word	-743097889
	.word	-1870410493
	.word	-1647819634
	.word	-72959542
	.word	2072626906
	.word	1053370484
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fiat_pasta_fp_sqrt
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_pasta_fp_sqrt, %function
fiat_pasta_fp_sqrt:
	@ args = 0, pretend = 0, frame = 488
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #488
	str	r0, [fp, #-488]
	str	r1, [fp, #-492]
	ldr	r3, .L144
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-492]
	bl	fiat_pasta_fp_equals_zero
	mov	r3, r0
	cmp	r3, #0
	beq	.L131
	mov	r3, #0
	str	r3, [fp, #-480]
	b	.L132
.L133:
	ldr	r3, [fp, #-480]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-488]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-480]
	add	r3, r3, #1
	str	r3, [fp, #-480]
.L132:
	ldr	r3, [fp, #-480]
	cmp	r3, #3
	bls	.L133
	mov	r3, #1
	b	.L142
.L131:
	mov	r3, #254
	sub	r0, fp, #460
	ldr	r2, .L144+4
	ldr	r1, [fp, #-492]
	bl	fiat_pasta_fp_pow
	sub	r3, fp, #460
	mov	r0, r3
	bl	fiat_pasta_fp_equals_one
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L135
	mov	r3, #0
	b	.L142
.L135:
	sub	r3, fp, #428
	mov	r0, r3
	bl	fiat_pasta_fp_set_one
	mov	r3, #32
	str	r3, [fp, #-476]
	ldr	r3, .L144+8
	sub	ip, fp, #396
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	sub	r3, fp, #232
	mov	r2, #222
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #1
	strb	r3, [fp, #-232]
	mov	r3, #1
	strb	r3, [fp, #-103]
	mov	r3, #1
	strb	r3, [fp, #-99]
	mov	r3, #1
	strb	r3, [fp, #-96]
	mov	r3, #1
	strb	r3, [fp, #-92]
	mov	r3, #1
	strb	r3, [fp, #-91]
	mov	r3, #1
	strb	r3, [fp, #-89]
	mov	r3, #1
	strb	r3, [fp, #-86]
	mov	r3, #1
	strb	r3, [fp, #-85]
	mov	r3, #1
	strb	r3, [fp, #-81]
	mov	r3, #1
	strb	r3, [fp, #-80]
	mov	r3, #1
	strb	r3, [fp, #-79]
	mov	r3, #1
	strb	r3, [fp, #-78]
	mov	r3, #1
	strb	r3, [fp, #-77]
	mov	r3, #1
	strb	r3, [fp, #-76]
	mov	r3, #1
	strb	r3, [fp, #-69]
	mov	r3, #1
	strb	r3, [fp, #-66]
	mov	r3, #1
	strb	r3, [fp, #-64]
	mov	r3, #1
	strb	r3, [fp, #-61]
	mov	r3, #1
	strb	r3, [fp, #-60]
	mov	r3, #1
	strb	r3, [fp, #-57]
	mov	r3, #1
	strb	r3, [fp, #-56]
	mov	r3, #1
	strb	r3, [fp, #-55]
	mov	r3, #1
	strb	r3, [fp, #-54]
	mov	r3, #1
	strb	r3, [fp, #-53]
	mov	r3, #1
	strb	r3, [fp, #-50]
	mov	r3, #1
	strb	r3, [fp, #-46]
	mov	r3, #1
	strb	r3, [fp, #-45]
	mov	r3, #1
	strb	r3, [fp, #-43]
	mov	r3, #1
	strb	r3, [fp, #-42]
	mov	r3, #1
	strb	r3, [fp, #-41]
	mov	r3, #1
	strb	r3, [fp, #-38]
	mov	r3, #1
	strb	r3, [fp, #-37]
	mov	r3, #1
	strb	r3, [fp, #-34]
	mov	r3, #1
	strb	r3, [fp, #-31]
	mov	r3, #1
	strb	r3, [fp, #-29]
	mov	r3, #1
	strb	r3, [fp, #-28]
	mov	r3, #1
	strb	r3, [fp, #-26]
	mov	r3, #1
	strb	r3, [fp, #-23]
	mov	r3, #1
	strb	r3, [fp, #-22]
	mov	r3, #1
	strb	r3, [fp, #-17]
	mov	r3, #1
	strb	r3, [fp, #-16]
	mov	r3, #1
	strb	r3, [fp, #-15]
	mov	r3, #1
	strb	r3, [fp, #-13]
	mov	r3, #1
	strb	r3, [fp, #-12]
	mov	r3, #222
	str	r3, [fp, #-464]
	sub	r2, fp, #232
	sub	r0, fp, #364
	ldr	r3, [fp, #-464]
	ldr	r1, [fp, #-492]
	bl	fiat_pasta_fp_pow
	sub	r3, fp, #364
	mov	r2, r3
	ldr	r1, [fp, #-492]
	ldr	r0, [fp, #-488]
	bl	fiat_pasta_fp_mul
	sub	r2, fp, #364
	sub	r3, fp, #332
	ldr	r1, [fp, #-488]
	mov	r0, r3
	bl	fiat_pasta_fp_mul
	b	.L136
.L141:
	mov	r3, #0
	str	r3, [fp, #-472]
	sub	r2, fp, #332
	sub	r3, fp, #300
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	b	.L137
.L138:
	sub	r2, fp, #300
	sub	r3, fp, #268
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r2, fp, #268
	sub	r3, fp, #300
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_square
	ldr	r3, [fp, #-472]
	add	r3, r3, #1
	str	r3, [fp, #-472]
.L137:
	sub	r3, fp, #300
	mov	r0, r3
	bl	fiat_pasta_fp_equals_one
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L138
	ldr	r2, [fp, #-476]
	ldr	r3, [fp, #-472]
	sub	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-468]
	sub	r2, fp, #396
	sub	r3, fp, #364
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	b	.L139
.L140:
	sub	r2, fp, #364
	sub	r3, fp, #268
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r2, fp, #268
	sub	r3, fp, #364
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_square
	ldr	r3, [fp, #-468]
	sub	r3, r3, #1
	str	r3, [fp, #-468]
.L139:
	ldr	r3, [fp, #-468]
	cmp	r3, #0
	bgt	.L140
	sub	r2, fp, #364
	sub	r3, fp, #396
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_square
	sub	r2, fp, #332
	sub	r3, fp, #268
	mov	r1, r2
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r2, fp, #396
	sub	r1, fp, #268
	sub	r3, fp, #332
	mov	r0, r3
	bl	fiat_pasta_fp_mul
	sub	r3, fp, #268
	ldr	r1, [fp, #-488]
	mov	r0, r3
	bl	fiat_pasta_fp_copy
	sub	r2, fp, #364
	sub	r3, fp, #268
	mov	r1, r3
	ldr	r0, [fp, #-488]
	bl	fiat_pasta_fp_mul
	ldr	r3, [fp, #-472]
	str	r3, [fp, #-476]
.L136:
	sub	r3, fp, #332
	mov	r0, r3
	bl	fiat_pasta_fp_equals_one
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L141
	mov	r3, #1
.L142:
	ldr	r2, .L144
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L143
	bl	__stack_chk_fail
.L143:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L145:
	.align	2
.L144:
	.word	.LC20
	.word	P_MINUS_1_OVER_2
	.word	.LC1
	.size	fiat_pasta_fp_sqrt, .-fiat_pasta_fp_sqrt
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
