	.file	"705669.c"
	.intel_syntax noprefix
	.text
	.type	fiat_p224_addcarryx_u32, @function
fiat_p224_addcarryx_u32:
.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	DWORD PTR -40[rbp], ecx
	mov	DWORD PTR -44[rbp], r8d
	mov	BYTE PTR -36[rbp], al
	movzx	edx, BYTE PTR -36[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -44[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	mov	BYTE PTR -13[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	movzx	edx, BYTE PTR -13[rbp]
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	fiat_p224_addcarryx_u32, .-fiat_p224_addcarryx_u32
	.type	fiat_p224_subborrowx_u32, @function
fiat_p224_subborrowx_u32:
.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	DWORD PTR -40[rbp], ecx
	mov	DWORD PTR -44[rbp], r8d
	mov	BYTE PTR -36[rbp], al
	mov	eax, DWORD PTR -40[rbp]
	movzx	edx, BYTE PTR -36[rbp]
	sub	rax, rdx
	mov	edx, DWORD PTR -44[rbp]
	sub	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	mov	BYTE PTR -13[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, BYTE PTR -13[rbp]
	neg	eax
	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_p224_subborrowx_u32, .-fiat_p224_subborrowx_u32
	.type	fiat_p224_mulx_u32, @function
fiat_p224_mulx_u32:
.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -40[rbp], ecx
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -40[rbp]
	imul	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	fiat_p224_mulx_u32, .-fiat_p224_mulx_u32
	.type	fiat_p224_cmovznz_u32, @function
fiat_p224_cmovznz_u32:
.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 -24[rbp], rdi
	mov	eax, esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	BYTE PTR -28[rbp], al
	cmp	BYTE PTR -28[rbp], 0
	setne	al
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -9[rbp]
	neg	eax
	movsx	eax, al
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	and	eax, DWORD PTR -36[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	not	eax
	and	eax, DWORD PTR -32[rbp]
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	fiat_p224_cmovznz_u32, .-fiat_p224_cmovznz_u32
	.type	fiat_p224_mul, @function
fiat_p224_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, 1760
	mov	QWORD PTR -1736[rbp], rdi
	mov	QWORD PTR -1744[rbp], rsi
	mov	QWORD PTR -1752[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1516[rbp]
	lea	rax, -1520[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1508[rbp]
	lea	rax, -1512[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1500[rbp]
	lea	rax, -1504[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1492[rbp]
	lea	rax, -1496[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1484[rbp]
	lea	rax, -1488[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1476[rbp]
	lea	rax, -1480[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1468[rbp]
	lea	rax, -1472[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1468[rbp]
	mov	edx, DWORD PTR -1480[rbp]
	lea	rsi, -1716[rbp]
	lea	rax, -1464[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1476[rbp]
	mov	ecx, DWORD PTR -1488[rbp]
	movzx	eax, BYTE PTR -1716[rbp]
	movzx	edx, al
	lea	rsi, -1715[rbp]
	lea	rax, -1460[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1484[rbp]
	mov	ecx, DWORD PTR -1496[rbp]
	movzx	eax, BYTE PTR -1715[rbp]
	movzx	edx, al
	lea	rsi, -1714[rbp]
	lea	rax, -1456[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1492[rbp]
	mov	ecx, DWORD PTR -1504[rbp]
	movzx	eax, BYTE PTR -1714[rbp]
	movzx	edx, al
	lea	rsi, -1713[rbp]
	lea	rax, -1452[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1500[rbp]
	mov	ecx, DWORD PTR -1512[rbp]
	movzx	eax, BYTE PTR -1713[rbp]
	movzx	edx, al
	lea	rsi, -1712[rbp]
	lea	rax, -1448[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1508[rbp]
	mov	ecx, DWORD PTR -1520[rbp]
	movzx	eax, BYTE PTR -1712[rbp]
	movzx	edx, al
	lea	rsi, -1711[rbp]
	lea	rax, -1444[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1516[rbp]
	movzx	eax, BYTE PTR -1711[rbp]
	movzx	edx, al
	lea	rsi, -1710[rbp]
	lea	rax, -1440[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1472[rbp]
	lea	rsi, -1432[rbp]
	lea	rax, -1436[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1424[rbp]
	lea	rax, -1428[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1416[rbp]
	lea	rax, -1420[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1408[rbp]
	lea	rax, -1412[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1400[rbp]
	lea	rax, -1404[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1400[rbp]
	mov	edx, DWORD PTR -1412[rbp]
	lea	rsi, -1709[rbp]
	lea	rax, -1396[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1408[rbp]
	mov	ecx, DWORD PTR -1420[rbp]
	movzx	eax, BYTE PTR -1709[rbp]
	movzx	edx, al
	lea	rsi, -1708[rbp]
	lea	rax, -1392[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1416[rbp]
	mov	ecx, DWORD PTR -1428[rbp]
	movzx	eax, BYTE PTR -1708[rbp]
	movzx	edx, al
	lea	rsi, -1707[rbp]
	lea	rax, -1388[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1424[rbp]
	movzx	eax, BYTE PTR -1707[rbp]
	movzx	edx, al
	lea	rsi, -1706[rbp]
	lea	rax, -1384[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1472[rbp]
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1705[rbp]
	lea	rax, -1380[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1464[rbp]
	movzx	eax, BYTE PTR -1705[rbp]
	movzx	edx, al
	lea	rsi, -1704[rbp]
	lea	rax, -1376[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1460[rbp]
	movzx	eax, BYTE PTR -1704[rbp]
	movzx	edx, al
	lea	rsi, -1703[rbp]
	lea	rax, -1372[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1456[rbp]
	mov	ecx, DWORD PTR -1404[rbp]
	movzx	eax, BYTE PTR -1703[rbp]
	movzx	edx, al
	lea	rsi, -1702[rbp]
	lea	rax, -1368[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1452[rbp]
	mov	ecx, DWORD PTR -1396[rbp]
	movzx	eax, BYTE PTR -1702[rbp]
	movzx	edx, al
	lea	rsi, -1701[rbp]
	lea	rax, -1364[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1448[rbp]
	mov	ecx, DWORD PTR -1392[rbp]
	movzx	eax, BYTE PTR -1701[rbp]
	movzx	edx, al
	lea	rsi, -1700[rbp]
	lea	rax, -1360[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1444[rbp]
	mov	ecx, DWORD PTR -1388[rbp]
	movzx	eax, BYTE PTR -1700[rbp]
	movzx	edx, al
	lea	rsi, -1699[rbp]
	lea	rax, -1356[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1440[rbp]
	mov	ecx, DWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR -1699[rbp]
	movzx	edx, al
	lea	rsi, -1698[rbp]
	lea	rax, -1352[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1698[rbp]
	movzx	edx, al
	lea	rsi, -1697[rbp]
	lea	rax, -1348[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1340[rbp]
	lea	rax, -1344[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1332[rbp]
	lea	rax, -1336[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1324[rbp]
	lea	rax, -1328[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1316[rbp]
	lea	rax, -1320[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1308[rbp]
	lea	rax, -1312[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1300[rbp]
	lea	rax, -1304[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1292[rbp]
	lea	rax, -1296[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1292[rbp]
	mov	edx, DWORD PTR -1304[rbp]
	lea	rsi, -1696[rbp]
	lea	rax, -1288[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1300[rbp]
	mov	ecx, DWORD PTR -1312[rbp]
	movzx	eax, BYTE PTR -1696[rbp]
	movzx	edx, al
	lea	rsi, -1695[rbp]
	lea	rax, -1284[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1308[rbp]
	mov	ecx, DWORD PTR -1320[rbp]
	movzx	eax, BYTE PTR -1695[rbp]
	movzx	edx, al
	lea	rsi, -1694[rbp]
	lea	rax, -1280[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1316[rbp]
	mov	ecx, DWORD PTR -1328[rbp]
	movzx	eax, BYTE PTR -1694[rbp]
	movzx	edx, al
	lea	rsi, -1693[rbp]
	lea	rax, -1276[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1324[rbp]
	mov	ecx, DWORD PTR -1336[rbp]
	movzx	eax, BYTE PTR -1693[rbp]
	movzx	edx, al
	lea	rsi, -1692[rbp]
	lea	rax, -1272[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1332[rbp]
	mov	ecx, DWORD PTR -1344[rbp]
	movzx	eax, BYTE PTR -1692[rbp]
	movzx	edx, al
	lea	rsi, -1691[rbp]
	lea	rax, -1268[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1340[rbp]
	movzx	eax, BYTE PTR -1691[rbp]
	movzx	edx, al
	lea	rsi, -1690[rbp]
	lea	rax, -1264[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1376[rbp]
	mov	edx, DWORD PTR -1296[rbp]
	lea	rsi, -1689[rbp]
	lea	rax, -1260[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1372[rbp]
	mov	ecx, DWORD PTR -1288[rbp]
	movzx	eax, BYTE PTR -1689[rbp]
	movzx	edx, al
	lea	rsi, -1688[rbp]
	lea	rax, -1256[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1368[rbp]
	mov	ecx, DWORD PTR -1284[rbp]
	movzx	eax, BYTE PTR -1688[rbp]
	movzx	edx, al
	lea	rsi, -1687[rbp]
	lea	rax, -1252[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1364[rbp]
	mov	ecx, DWORD PTR -1280[rbp]
	movzx	eax, BYTE PTR -1687[rbp]
	movzx	edx, al
	lea	rsi, -1686[rbp]
	lea	rax, -1248[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1360[rbp]
	mov	ecx, DWORD PTR -1276[rbp]
	movzx	eax, BYTE PTR -1686[rbp]
	movzx	edx, al
	lea	rsi, -1685[rbp]
	lea	rax, -1244[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1356[rbp]
	mov	ecx, DWORD PTR -1272[rbp]
	movzx	eax, BYTE PTR -1685[rbp]
	movzx	edx, al
	lea	rsi, -1684[rbp]
	lea	rax, -1240[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1352[rbp]
	mov	ecx, DWORD PTR -1268[rbp]
	movzx	eax, BYTE PTR -1684[rbp]
	movzx	edx, al
	lea	rsi, -1683[rbp]
	lea	rax, -1236[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -1348[rbp]
	movzx	edi, al
	mov	ecx, DWORD PTR -1264[rbp]
	movzx	eax, BYTE PTR -1683[rbp]
	movzx	edx, al
	lea	rsi, -1682[rbp]
	lea	rax, -1232[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1260[rbp]
	lea	rsi, -1224[rbp]
	lea	rax, -1228[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1216[rbp]
	lea	rax, -1220[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1208[rbp]
	lea	rax, -1212[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1200[rbp]
	lea	rax, -1204[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1192[rbp]
	lea	rax, -1196[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1192[rbp]
	mov	edx, DWORD PTR -1204[rbp]
	lea	rsi, -1681[rbp]
	lea	rax, -1188[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1200[rbp]
	mov	ecx, DWORD PTR -1212[rbp]
	movzx	eax, BYTE PTR -1681[rbp]
	movzx	edx, al
	lea	rsi, -1680[rbp]
	lea	rax, -1184[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1208[rbp]
	mov	ecx, DWORD PTR -1220[rbp]
	movzx	eax, BYTE PTR -1680[rbp]
	movzx	edx, al
	lea	rsi, -1679[rbp]
	lea	rax, -1180[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1216[rbp]
	movzx	eax, BYTE PTR -1679[rbp]
	movzx	edx, al
	lea	rsi, -1678[rbp]
	lea	rax, -1176[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1260[rbp]
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1677[rbp]
	lea	rax, -1172[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1256[rbp]
	movzx	eax, BYTE PTR -1677[rbp]
	movzx	edx, al
	lea	rsi, -1676[rbp]
	lea	rax, -1168[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1252[rbp]
	movzx	eax, BYTE PTR -1676[rbp]
	movzx	edx, al
	lea	rsi, -1675[rbp]
	lea	rax, -1164[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1248[rbp]
	mov	ecx, DWORD PTR -1196[rbp]
	movzx	eax, BYTE PTR -1675[rbp]
	movzx	edx, al
	lea	rsi, -1674[rbp]
	lea	rax, -1160[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1244[rbp]
	mov	ecx, DWORD PTR -1188[rbp]
	movzx	eax, BYTE PTR -1674[rbp]
	movzx	edx, al
	lea	rsi, -1673[rbp]
	lea	rax, -1156[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1240[rbp]
	mov	ecx, DWORD PTR -1184[rbp]
	movzx	eax, BYTE PTR -1673[rbp]
	movzx	edx, al
	lea	rsi, -1672[rbp]
	lea	rax, -1152[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1236[rbp]
	mov	ecx, DWORD PTR -1180[rbp]
	movzx	eax, BYTE PTR -1672[rbp]
	movzx	edx, al
	lea	rsi, -1671[rbp]
	lea	rax, -1148[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1232[rbp]
	mov	ecx, DWORD PTR -1176[rbp]
	movzx	eax, BYTE PTR -1671[rbp]
	movzx	edx, al
	lea	rsi, -1670[rbp]
	lea	rax, -1144[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1682[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1670[rbp]
	movzx	edx, al
	lea	rsi, -1669[rbp]
	lea	rax, -1140[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1132[rbp]
	lea	rax, -1136[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1124[rbp]
	lea	rax, -1128[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1116[rbp]
	lea	rax, -1120[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1108[rbp]
	lea	rax, -1112[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1100[rbp]
	lea	rax, -1104[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1092[rbp]
	lea	rax, -1096[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1084[rbp]
	lea	rax, -1088[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1084[rbp]
	mov	edx, DWORD PTR -1096[rbp]
	lea	rsi, -1668[rbp]
	lea	rax, -1080[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1092[rbp]
	mov	ecx, DWORD PTR -1104[rbp]
	movzx	eax, BYTE PTR -1668[rbp]
	movzx	edx, al
	lea	rsi, -1667[rbp]
	lea	rax, -1076[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1100[rbp]
	mov	ecx, DWORD PTR -1112[rbp]
	movzx	eax, BYTE PTR -1667[rbp]
	movzx	edx, al
	lea	rsi, -1666[rbp]
	lea	rax, -1072[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1108[rbp]
	mov	ecx, DWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR -1666[rbp]
	movzx	edx, al
	lea	rsi, -1665[rbp]
	lea	rax, -1068[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1116[rbp]
	mov	ecx, DWORD PTR -1128[rbp]
	movzx	eax, BYTE PTR -1665[rbp]
	movzx	edx, al
	lea	rsi, -1664[rbp]
	lea	rax, -1064[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1124[rbp]
	mov	ecx, DWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR -1664[rbp]
	movzx	edx, al
	lea	rsi, -1663[rbp]
	lea	rax, -1060[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1132[rbp]
	movzx	eax, BYTE PTR -1663[rbp]
	movzx	edx, al
	lea	rsi, -1662[rbp]
	lea	rax, -1056[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1168[rbp]
	mov	edx, DWORD PTR -1088[rbp]
	lea	rsi, -1661[rbp]
	lea	rax, -1052[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1164[rbp]
	mov	ecx, DWORD PTR -1080[rbp]
	movzx	eax, BYTE PTR -1661[rbp]
	movzx	edx, al
	lea	rsi, -1660[rbp]
	lea	rax, -1048[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1160[rbp]
	mov	ecx, DWORD PTR -1076[rbp]
	movzx	eax, BYTE PTR -1660[rbp]
	movzx	edx, al
	lea	rsi, -1659[rbp]
	lea	rax, -1044[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1156[rbp]
	mov	ecx, DWORD PTR -1072[rbp]
	movzx	eax, BYTE PTR -1659[rbp]
	movzx	edx, al
	lea	rsi, -1658[rbp]
	lea	rax, -1040[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1152[rbp]
	mov	ecx, DWORD PTR -1068[rbp]
	movzx	eax, BYTE PTR -1658[rbp]
	movzx	edx, al
	lea	rsi, -1657[rbp]
	lea	rax, -1036[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1148[rbp]
	mov	ecx, DWORD PTR -1064[rbp]
	movzx	eax, BYTE PTR -1657[rbp]
	movzx	edx, al
	lea	rsi, -1656[rbp]
	lea	rax, -1032[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1144[rbp]
	mov	ecx, DWORD PTR -1060[rbp]
	movzx	eax, BYTE PTR -1656[rbp]
	movzx	edx, al
	lea	rsi, -1655[rbp]
	lea	rax, -1028[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1140[rbp]
	mov	ecx, DWORD PTR -1056[rbp]
	movzx	eax, BYTE PTR -1655[rbp]
	movzx	edx, al
	lea	rsi, -1654[rbp]
	lea	rax, -1024[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1052[rbp]
	lea	rsi, -1016[rbp]
	lea	rax, -1020[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1008[rbp]
	lea	rax, -1012[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1000[rbp]
	lea	rax, -1004[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -992[rbp]
	lea	rax, -996[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -984[rbp]
	lea	rax, -988[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -984[rbp]
	mov	edx, DWORD PTR -996[rbp]
	lea	rsi, -1653[rbp]
	lea	rax, -980[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -992[rbp]
	mov	ecx, DWORD PTR -1004[rbp]
	movzx	eax, BYTE PTR -1653[rbp]
	movzx	edx, al
	lea	rsi, -1652[rbp]
	lea	rax, -976[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1000[rbp]
	mov	ecx, DWORD PTR -1012[rbp]
	movzx	eax, BYTE PTR -1652[rbp]
	movzx	edx, al
	lea	rsi, -1651[rbp]
	lea	rax, -972[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR -1651[rbp]
	movzx	edx, al
	lea	rsi, -1650[rbp]
	lea	rax, -968[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1052[rbp]
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1649[rbp]
	lea	rax, -964[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR -1649[rbp]
	movzx	edx, al
	lea	rsi, -1648[rbp]
	lea	rax, -960[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1044[rbp]
	movzx	eax, BYTE PTR -1648[rbp]
	movzx	edx, al
	lea	rsi, -1647[rbp]
	lea	rax, -956[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1040[rbp]
	mov	ecx, DWORD PTR -988[rbp]
	movzx	eax, BYTE PTR -1647[rbp]
	movzx	edx, al
	lea	rsi, -1646[rbp]
	lea	rax, -952[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1036[rbp]
	mov	ecx, DWORD PTR -980[rbp]
	movzx	eax, BYTE PTR -1646[rbp]
	movzx	edx, al
	lea	rsi, -1645[rbp]
	lea	rax, -948[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1032[rbp]
	mov	ecx, DWORD PTR -976[rbp]
	movzx	eax, BYTE PTR -1645[rbp]
	movzx	edx, al
	lea	rsi, -1644[rbp]
	lea	rax, -944[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1028[rbp]
	mov	ecx, DWORD PTR -972[rbp]
	movzx	eax, BYTE PTR -1644[rbp]
	movzx	edx, al
	lea	rsi, -1643[rbp]
	lea	rax, -940[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1024[rbp]
	mov	ecx, DWORD PTR -968[rbp]
	movzx	eax, BYTE PTR -1643[rbp]
	movzx	edx, al
	lea	rsi, -1642[rbp]
	lea	rax, -936[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1654[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1642[rbp]
	movzx	edx, al
	lea	rsi, -1641[rbp]
	lea	rax, -932[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -924[rbp]
	lea	rax, -928[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -916[rbp]
	lea	rax, -920[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -908[rbp]
	lea	rax, -912[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -900[rbp]
	lea	rax, -904[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -892[rbp]
	lea	rax, -896[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -884[rbp]
	lea	rax, -888[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -876[rbp]
	lea	rax, -880[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -876[rbp]
	mov	edx, DWORD PTR -888[rbp]
	lea	rsi, -1640[rbp]
	lea	rax, -872[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -884[rbp]
	mov	ecx, DWORD PTR -896[rbp]
	movzx	eax, BYTE PTR -1640[rbp]
	movzx	edx, al
	lea	rsi, -1639[rbp]
	lea	rax, -868[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -892[rbp]
	mov	ecx, DWORD PTR -904[rbp]
	movzx	eax, BYTE PTR -1639[rbp]
	movzx	edx, al
	lea	rsi, -1638[rbp]
	lea	rax, -864[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -900[rbp]
	mov	ecx, DWORD PTR -912[rbp]
	movzx	eax, BYTE PTR -1638[rbp]
	movzx	edx, al
	lea	rsi, -1637[rbp]
	lea	rax, -860[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -908[rbp]
	mov	ecx, DWORD PTR -920[rbp]
	movzx	eax, BYTE PTR -1637[rbp]
	movzx	edx, al
	lea	rsi, -1636[rbp]
	lea	rax, -856[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -916[rbp]
	mov	ecx, DWORD PTR -928[rbp]
	movzx	eax, BYTE PTR -1636[rbp]
	movzx	edx, al
	lea	rsi, -1635[rbp]
	lea	rax, -852[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -924[rbp]
	movzx	eax, BYTE PTR -1635[rbp]
	movzx	edx, al
	lea	rsi, -1634[rbp]
	lea	rax, -848[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -960[rbp]
	mov	edx, DWORD PTR -880[rbp]
	lea	rsi, -1633[rbp]
	lea	rax, -844[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -956[rbp]
	mov	ecx, DWORD PTR -872[rbp]
	movzx	eax, BYTE PTR -1633[rbp]
	movzx	edx, al
	lea	rsi, -1632[rbp]
	lea	rax, -840[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -952[rbp]
	mov	ecx, DWORD PTR -868[rbp]
	movzx	eax, BYTE PTR -1632[rbp]
	movzx	edx, al
	lea	rsi, -1631[rbp]
	lea	rax, -836[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -948[rbp]
	mov	ecx, DWORD PTR -864[rbp]
	movzx	eax, BYTE PTR -1631[rbp]
	movzx	edx, al
	lea	rsi, -1630[rbp]
	lea	rax, -832[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -944[rbp]
	mov	ecx, DWORD PTR -860[rbp]
	movzx	eax, BYTE PTR -1630[rbp]
	movzx	edx, al
	lea	rsi, -1629[rbp]
	lea	rax, -828[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -940[rbp]
	mov	ecx, DWORD PTR -856[rbp]
	movzx	eax, BYTE PTR -1629[rbp]
	movzx	edx, al
	lea	rsi, -1628[rbp]
	lea	rax, -824[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -936[rbp]
	mov	ecx, DWORD PTR -852[rbp]
	movzx	eax, BYTE PTR -1628[rbp]
	movzx	edx, al
	lea	rsi, -1627[rbp]
	lea	rax, -820[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -932[rbp]
	mov	ecx, DWORD PTR -848[rbp]
	movzx	eax, BYTE PTR -1627[rbp]
	movzx	edx, al
	lea	rsi, -1626[rbp]
	lea	rax, -816[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -844[rbp]
	lea	rsi, -808[rbp]
	lea	rax, -812[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -800[rbp]
	lea	rax, -804[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -792[rbp]
	lea	rax, -796[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -784[rbp]
	lea	rax, -788[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -776[rbp]
	lea	rax, -780[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -776[rbp]
	mov	edx, DWORD PTR -788[rbp]
	lea	rsi, -1625[rbp]
	lea	rax, -772[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -784[rbp]
	mov	ecx, DWORD PTR -796[rbp]
	movzx	eax, BYTE PTR -1625[rbp]
	movzx	edx, al
	lea	rsi, -1624[rbp]
	lea	rax, -768[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -792[rbp]
	mov	ecx, DWORD PTR -804[rbp]
	movzx	eax, BYTE PTR -1624[rbp]
	movzx	edx, al
	lea	rsi, -1623[rbp]
	lea	rax, -764[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -800[rbp]
	movzx	eax, BYTE PTR -1623[rbp]
	movzx	edx, al
	lea	rsi, -1622[rbp]
	lea	rax, -760[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -844[rbp]
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -1621[rbp]
	lea	rax, -756[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -840[rbp]
	movzx	eax, BYTE PTR -1621[rbp]
	movzx	edx, al
	lea	rsi, -1620[rbp]
	lea	rax, -752[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -836[rbp]
	movzx	eax, BYTE PTR -1620[rbp]
	movzx	edx, al
	lea	rsi, -1619[rbp]
	lea	rax, -748[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -832[rbp]
	mov	ecx, DWORD PTR -780[rbp]
	movzx	eax, BYTE PTR -1619[rbp]
	movzx	edx, al
	lea	rsi, -1618[rbp]
	lea	rax, -744[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -828[rbp]
	mov	ecx, DWORD PTR -772[rbp]
	movzx	eax, BYTE PTR -1618[rbp]
	movzx	edx, al
	lea	rsi, -1617[rbp]
	lea	rax, -740[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -824[rbp]
	mov	ecx, DWORD PTR -768[rbp]
	movzx	eax, BYTE PTR -1617[rbp]
	movzx	edx, al
	lea	rsi, -1616[rbp]
	lea	rax, -736[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -820[rbp]
	mov	ecx, DWORD PTR -764[rbp]
	movzx	eax, BYTE PTR -1616[rbp]
	movzx	edx, al
	lea	rsi, -1615[rbp]
	lea	rax, -732[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -816[rbp]
	mov	ecx, DWORD PTR -760[rbp]
	movzx	eax, BYTE PTR -1615[rbp]
	movzx	edx, al
	lea	rsi, -1614[rbp]
	lea	rax, -728[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1626[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1614[rbp]
	movzx	edx, al
	lea	rsi, -1613[rbp]
	lea	rax, -724[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -716[rbp]
	lea	rax, -720[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -708[rbp]
	lea	rax, -712[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -700[rbp]
	lea	rax, -704[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -692[rbp]
	lea	rax, -696[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -684[rbp]
	lea	rax, -688[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -676[rbp]
	lea	rax, -680[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -668[rbp]
	lea	rax, -672[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -668[rbp]
	mov	edx, DWORD PTR -680[rbp]
	lea	rsi, -1612[rbp]
	lea	rax, -664[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -676[rbp]
	mov	ecx, DWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -1612[rbp]
	movzx	edx, al
	lea	rsi, -1611[rbp]
	lea	rax, -660[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -684[rbp]
	mov	ecx, DWORD PTR -696[rbp]
	movzx	eax, BYTE PTR -1611[rbp]
	movzx	edx, al
	lea	rsi, -1610[rbp]
	lea	rax, -656[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -692[rbp]
	mov	ecx, DWORD PTR -704[rbp]
	movzx	eax, BYTE PTR -1610[rbp]
	movzx	edx, al
	lea	rsi, -1609[rbp]
	lea	rax, -652[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -700[rbp]
	mov	ecx, DWORD PTR -712[rbp]
	movzx	eax, BYTE PTR -1609[rbp]
	movzx	edx, al
	lea	rsi, -1608[rbp]
	lea	rax, -648[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -708[rbp]
	mov	ecx, DWORD PTR -720[rbp]
	movzx	eax, BYTE PTR -1608[rbp]
	movzx	edx, al
	lea	rsi, -1607[rbp]
	lea	rax, -644[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -716[rbp]
	movzx	eax, BYTE PTR -1607[rbp]
	movzx	edx, al
	lea	rsi, -1606[rbp]
	lea	rax, -640[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -752[rbp]
	mov	edx, DWORD PTR -672[rbp]
	lea	rsi, -1605[rbp]
	lea	rax, -636[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -748[rbp]
	mov	ecx, DWORD PTR -664[rbp]
	movzx	eax, BYTE PTR -1605[rbp]
	movzx	edx, al
	lea	rsi, -1604[rbp]
	lea	rax, -632[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -744[rbp]
	mov	ecx, DWORD PTR -660[rbp]
	movzx	eax, BYTE PTR -1604[rbp]
	movzx	edx, al
	lea	rsi, -1603[rbp]
	lea	rax, -628[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -740[rbp]
	mov	ecx, DWORD PTR -656[rbp]
	movzx	eax, BYTE PTR -1603[rbp]
	movzx	edx, al
	lea	rsi, -1602[rbp]
	lea	rax, -624[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -736[rbp]
	mov	ecx, DWORD PTR -652[rbp]
	movzx	eax, BYTE PTR -1602[rbp]
	movzx	edx, al
	lea	rsi, -1601[rbp]
	lea	rax, -620[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -732[rbp]
	mov	ecx, DWORD PTR -648[rbp]
	movzx	eax, BYTE PTR -1601[rbp]
	movzx	edx, al
	lea	rsi, -1600[rbp]
	lea	rax, -616[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -728[rbp]
	mov	ecx, DWORD PTR -644[rbp]
	movzx	eax, BYTE PTR -1600[rbp]
	movzx	edx, al
	lea	rsi, -1599[rbp]
	lea	rax, -612[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -724[rbp]
	mov	ecx, DWORD PTR -640[rbp]
	movzx	eax, BYTE PTR -1599[rbp]
	movzx	edx, al
	lea	rsi, -1598[rbp]
	lea	rax, -608[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -636[rbp]
	lea	rsi, -600[rbp]
	lea	rax, -604[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -592[rbp]
	lea	rax, -596[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -584[rbp]
	lea	rax, -588[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -576[rbp]
	lea	rax, -580[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -568[rbp]
	lea	rax, -572[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -568[rbp]
	mov	edx, DWORD PTR -580[rbp]
	lea	rsi, -1597[rbp]
	lea	rax, -564[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -576[rbp]
	mov	ecx, DWORD PTR -588[rbp]
	movzx	eax, BYTE PTR -1597[rbp]
	movzx	edx, al
	lea	rsi, -1596[rbp]
	lea	rax, -560[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -584[rbp]
	mov	ecx, DWORD PTR -596[rbp]
	movzx	eax, BYTE PTR -1596[rbp]
	movzx	edx, al
	lea	rsi, -1595[rbp]
	lea	rax, -556[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -592[rbp]
	movzx	eax, BYTE PTR -1595[rbp]
	movzx	edx, al
	lea	rsi, -1594[rbp]
	lea	rax, -552[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -636[rbp]
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -1593[rbp]
	lea	rax, -548[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -632[rbp]
	movzx	eax, BYTE PTR -1593[rbp]
	movzx	edx, al
	lea	rsi, -1592[rbp]
	lea	rax, -544[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -628[rbp]
	movzx	eax, BYTE PTR -1592[rbp]
	movzx	edx, al
	lea	rsi, -1591[rbp]
	lea	rax, -540[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -624[rbp]
	mov	ecx, DWORD PTR -572[rbp]
	movzx	eax, BYTE PTR -1591[rbp]
	movzx	edx, al
	lea	rsi, -1590[rbp]
	lea	rax, -536[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -620[rbp]
	mov	ecx, DWORD PTR -564[rbp]
	movzx	eax, BYTE PTR -1590[rbp]
	movzx	edx, al
	lea	rsi, -1589[rbp]
	lea	rax, -532[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -616[rbp]
	mov	ecx, DWORD PTR -560[rbp]
	movzx	eax, BYTE PTR -1589[rbp]
	movzx	edx, al
	lea	rsi, -1588[rbp]
	lea	rax, -528[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -612[rbp]
	mov	ecx, DWORD PTR -556[rbp]
	movzx	eax, BYTE PTR -1588[rbp]
	movzx	edx, al
	lea	rsi, -1587[rbp]
	lea	rax, -524[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -608[rbp]
	mov	ecx, DWORD PTR -552[rbp]
	movzx	eax, BYTE PTR -1587[rbp]
	movzx	edx, al
	lea	rsi, -1586[rbp]
	lea	rax, -520[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1598[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1586[rbp]
	movzx	edx, al
	lea	rsi, -1585[rbp]
	lea	rax, -516[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -508[rbp]
	lea	rax, -512[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -500[rbp]
	lea	rax, -504[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -492[rbp]
	lea	rax, -496[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -484[rbp]
	lea	rax, -488[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -476[rbp]
	lea	rax, -480[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -468[rbp]
	lea	rax, -472[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -460[rbp]
	lea	rax, -464[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -460[rbp]
	mov	edx, DWORD PTR -472[rbp]
	lea	rsi, -1584[rbp]
	lea	rax, -456[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -468[rbp]
	mov	ecx, DWORD PTR -480[rbp]
	movzx	eax, BYTE PTR -1584[rbp]
	movzx	edx, al
	lea	rsi, -1583[rbp]
	lea	rax, -452[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -476[rbp]
	mov	ecx, DWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -1583[rbp]
	movzx	edx, al
	lea	rsi, -1582[rbp]
	lea	rax, -448[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -484[rbp]
	mov	ecx, DWORD PTR -496[rbp]
	movzx	eax, BYTE PTR -1582[rbp]
	movzx	edx, al
	lea	rsi, -1581[rbp]
	lea	rax, -444[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -492[rbp]
	mov	ecx, DWORD PTR -504[rbp]
	movzx	eax, BYTE PTR -1581[rbp]
	movzx	edx, al
	lea	rsi, -1580[rbp]
	lea	rax, -440[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -500[rbp]
	mov	ecx, DWORD PTR -512[rbp]
	movzx	eax, BYTE PTR -1580[rbp]
	movzx	edx, al
	lea	rsi, -1579[rbp]
	lea	rax, -436[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -508[rbp]
	movzx	eax, BYTE PTR -1579[rbp]
	movzx	edx, al
	lea	rsi, -1578[rbp]
	lea	rax, -432[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -544[rbp]
	mov	edx, DWORD PTR -464[rbp]
	lea	rsi, -1577[rbp]
	lea	rax, -428[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -540[rbp]
	mov	ecx, DWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -1577[rbp]
	movzx	edx, al
	lea	rsi, -1576[rbp]
	lea	rax, -424[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -536[rbp]
	mov	ecx, DWORD PTR -452[rbp]
	movzx	eax, BYTE PTR -1576[rbp]
	movzx	edx, al
	lea	rsi, -1575[rbp]
	lea	rax, -420[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -532[rbp]
	mov	ecx, DWORD PTR -448[rbp]
	movzx	eax, BYTE PTR -1575[rbp]
	movzx	edx, al
	lea	rsi, -1574[rbp]
	lea	rax, -416[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -528[rbp]
	mov	ecx, DWORD PTR -444[rbp]
	movzx	eax, BYTE PTR -1574[rbp]
	movzx	edx, al
	lea	rsi, -1573[rbp]
	lea	rax, -412[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -524[rbp]
	mov	ecx, DWORD PTR -440[rbp]
	movzx	eax, BYTE PTR -1573[rbp]
	movzx	edx, al
	lea	rsi, -1572[rbp]
	lea	rax, -408[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -520[rbp]
	mov	ecx, DWORD PTR -436[rbp]
	movzx	eax, BYTE PTR -1572[rbp]
	movzx	edx, al
	lea	rsi, -1571[rbp]
	lea	rax, -404[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -516[rbp]
	mov	ecx, DWORD PTR -432[rbp]
	movzx	eax, BYTE PTR -1571[rbp]
	movzx	edx, al
	lea	rsi, -1570[rbp]
	lea	rax, -400[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -428[rbp]
	lea	rsi, -392[rbp]
	lea	rax, -396[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -384[rbp]
	lea	rax, -388[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -376[rbp]
	lea	rax, -380[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -368[rbp]
	lea	rax, -372[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -360[rbp]
	lea	rax, -364[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -360[rbp]
	mov	edx, DWORD PTR -372[rbp]
	lea	rsi, -1569[rbp]
	lea	rax, -356[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -368[rbp]
	mov	ecx, DWORD PTR -380[rbp]
	movzx	eax, BYTE PTR -1569[rbp]
	movzx	edx, al
	lea	rsi, -1568[rbp]
	lea	rax, -352[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -376[rbp]
	mov	ecx, DWORD PTR -388[rbp]
	movzx	eax, BYTE PTR -1568[rbp]
	movzx	edx, al
	lea	rsi, -1567[rbp]
	lea	rax, -348[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -384[rbp]
	movzx	eax, BYTE PTR -1567[rbp]
	movzx	edx, al
	lea	rsi, -1566[rbp]
	lea	rax, -344[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -428[rbp]
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -1565[rbp]
	lea	rax, -340[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -424[rbp]
	movzx	eax, BYTE PTR -1565[rbp]
	movzx	edx, al
	lea	rsi, -1564[rbp]
	lea	rax, -336[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -420[rbp]
	movzx	eax, BYTE PTR -1564[rbp]
	movzx	edx, al
	lea	rsi, -1563[rbp]
	lea	rax, -332[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -416[rbp]
	mov	ecx, DWORD PTR -364[rbp]
	movzx	eax, BYTE PTR -1563[rbp]
	movzx	edx, al
	lea	rsi, -1562[rbp]
	lea	rax, -328[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -412[rbp]
	mov	ecx, DWORD PTR -356[rbp]
	movzx	eax, BYTE PTR -1562[rbp]
	movzx	edx, al
	lea	rsi, -1561[rbp]
	lea	rax, -324[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -408[rbp]
	mov	ecx, DWORD PTR -352[rbp]
	movzx	eax, BYTE PTR -1561[rbp]
	movzx	edx, al
	lea	rsi, -1560[rbp]
	lea	rax, -320[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -404[rbp]
	mov	ecx, DWORD PTR -348[rbp]
	movzx	eax, BYTE PTR -1560[rbp]
	movzx	edx, al
	lea	rsi, -1559[rbp]
	lea	rax, -316[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -400[rbp]
	mov	ecx, DWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -1559[rbp]
	movzx	edx, al
	lea	rsi, -1558[rbp]
	lea	rax, -312[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1570[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1558[rbp]
	movzx	edx, al
	lea	rsi, -1557[rbp]
	lea	rax, -308[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -300[rbp]
	lea	rax, -304[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -292[rbp]
	lea	rax, -296[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -284[rbp]
	lea	rax, -288[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -276[rbp]
	lea	rax, -280[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -268[rbp]
	lea	rax, -272[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -260[rbp]
	lea	rax, -264[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1752[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -252[rbp]
	lea	rax, -256[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -252[rbp]
	mov	edx, DWORD PTR -264[rbp]
	lea	rsi, -1556[rbp]
	lea	rax, -248[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -260[rbp]
	mov	ecx, DWORD PTR -272[rbp]
	movzx	eax, BYTE PTR -1556[rbp]
	movzx	edx, al
	lea	rsi, -1555[rbp]
	lea	rax, -244[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -268[rbp]
	mov	ecx, DWORD PTR -280[rbp]
	movzx	eax, BYTE PTR -1555[rbp]
	movzx	edx, al
	lea	rsi, -1554[rbp]
	lea	rax, -240[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -276[rbp]
	mov	ecx, DWORD PTR -288[rbp]
	movzx	eax, BYTE PTR -1554[rbp]
	movzx	edx, al
	lea	rsi, -1553[rbp]
	lea	rax, -236[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -284[rbp]
	mov	ecx, DWORD PTR -296[rbp]
	movzx	eax, BYTE PTR -1553[rbp]
	movzx	edx, al
	lea	rsi, -1552[rbp]
	lea	rax, -232[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -292[rbp]
	mov	ecx, DWORD PTR -304[rbp]
	movzx	eax, BYTE PTR -1552[rbp]
	movzx	edx, al
	lea	rsi, -1551[rbp]
	lea	rax, -228[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -300[rbp]
	movzx	eax, BYTE PTR -1551[rbp]
	movzx	edx, al
	lea	rsi, -1550[rbp]
	lea	rax, -224[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -336[rbp]
	mov	edx, DWORD PTR -256[rbp]
	lea	rsi, -1549[rbp]
	lea	rax, -220[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -332[rbp]
	mov	ecx, DWORD PTR -248[rbp]
	movzx	eax, BYTE PTR -1549[rbp]
	movzx	edx, al
	lea	rsi, -1548[rbp]
	lea	rax, -216[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -328[rbp]
	mov	ecx, DWORD PTR -244[rbp]
	movzx	eax, BYTE PTR -1548[rbp]
	movzx	edx, al
	lea	rsi, -1547[rbp]
	lea	rax, -212[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -324[rbp]
	mov	ecx, DWORD PTR -240[rbp]
	movzx	eax, BYTE PTR -1547[rbp]
	movzx	edx, al
	lea	rsi, -1546[rbp]
	lea	rax, -208[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -320[rbp]
	mov	ecx, DWORD PTR -236[rbp]
	movzx	eax, BYTE PTR -1546[rbp]
	movzx	edx, al
	lea	rsi, -1545[rbp]
	lea	rax, -204[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -316[rbp]
	mov	ecx, DWORD PTR -232[rbp]
	movzx	eax, BYTE PTR -1545[rbp]
	movzx	edx, al
	lea	rsi, -1544[rbp]
	lea	rax, -200[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -312[rbp]
	mov	ecx, DWORD PTR -228[rbp]
	movzx	eax, BYTE PTR -1544[rbp]
	movzx	edx, al
	lea	rsi, -1543[rbp]
	lea	rax, -196[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -308[rbp]
	mov	ecx, DWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -1543[rbp]
	movzx	edx, al
	lea	rsi, -1542[rbp]
	lea	rax, -192[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -220[rbp]
	lea	rsi, -184[rbp]
	lea	rax, -188[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -176[rbp]
	lea	rax, -180[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -168[rbp]
	lea	rax, -172[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -160[rbp]
	lea	rax, -164[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -152[rbp]
	lea	rax, -156[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -152[rbp]
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -1541[rbp]
	lea	rax, -148[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -160[rbp]
	mov	ecx, DWORD PTR -172[rbp]
	movzx	eax, BYTE PTR -1541[rbp]
	movzx	edx, al
	lea	rsi, -1540[rbp]
	lea	rax, -144[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -168[rbp]
	mov	ecx, DWORD PTR -180[rbp]
	movzx	eax, BYTE PTR -1540[rbp]
	movzx	edx, al
	lea	rsi, -1539[rbp]
	lea	rax, -140[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -176[rbp]
	movzx	eax, BYTE PTR -1539[rbp]
	movzx	edx, al
	lea	rsi, -1538[rbp]
	lea	rax, -136[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -220[rbp]
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -1537[rbp]
	lea	rax, -132[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -1537[rbp]
	movzx	edx, al
	lea	rsi, -1536[rbp]
	lea	rax, -128[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -212[rbp]
	movzx	eax, BYTE PTR -1536[rbp]
	movzx	edx, al
	lea	rsi, -1535[rbp]
	lea	rax, -124[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -208[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	movzx	eax, BYTE PTR -1535[rbp]
	movzx	edx, al
	lea	rsi, -1534[rbp]
	lea	rax, -120[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -204[rbp]
	mov	ecx, DWORD PTR -148[rbp]
	movzx	eax, BYTE PTR -1534[rbp]
	movzx	edx, al
	lea	rsi, -1533[rbp]
	lea	rax, -116[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -200[rbp]
	mov	ecx, DWORD PTR -144[rbp]
	movzx	eax, BYTE PTR -1533[rbp]
	movzx	edx, al
	lea	rsi, -1532[rbp]
	lea	rax, -112[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -196[rbp]
	mov	ecx, DWORD PTR -140[rbp]
	movzx	eax, BYTE PTR -1532[rbp]
	movzx	edx, al
	lea	rsi, -1531[rbp]
	lea	rax, -108[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -192[rbp]
	mov	ecx, DWORD PTR -136[rbp]
	movzx	eax, BYTE PTR -1531[rbp]
	movzx	edx, al
	lea	rsi, -1530[rbp]
	lea	rax, -104[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1542[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1530[rbp]
	movzx	edx, al
	lea	rsi, -1529[rbp]
	lea	rax, -100[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -128[rbp]
	lea	rsi, -1528[rbp]
	lea	rax, -96[rbp]
	mov	r8d, 1
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -124[rbp]
	movzx	eax, BYTE PTR -1528[rbp]
	movzx	edx, al
	lea	rsi, -1527[rbp]
	lea	rax, -92[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -120[rbp]
	movzx	eax, BYTE PTR -1527[rbp]
	movzx	edx, al
	lea	rsi, -1526[rbp]
	lea	rax, -88[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -116[rbp]
	movzx	eax, BYTE PTR -1526[rbp]
	movzx	edx, al
	lea	rsi, -1525[rbp]
	lea	rax, -84[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -112[rbp]
	movzx	eax, BYTE PTR -1525[rbp]
	movzx	edx, al
	lea	rsi, -1524[rbp]
	lea	rax, -80[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -108[rbp]
	movzx	eax, BYTE PTR -1524[rbp]
	movzx	edx, al
	lea	rsi, -1523[rbp]
	lea	rax, -76[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -1523[rbp]
	movzx	edx, al
	lea	rsi, -1522[rbp]
	lea	rax, -72[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -100[rbp]
	movzx	eax, BYTE PTR -1522[rbp]
	movzx	edx, al
	lea	rsi, -1521[rbp]
	lea	rax, -68[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -128[rbp]
	mov	edx, DWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -124[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -60[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -120[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -56[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -116[rbp]
	mov	edx, DWORD PTR -84[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -52[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -108[rbp]
	mov	edx, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -44[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -104[rbp]
	mov	edx, DWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	edx, DWORD PTR -64[rbp]
	mov	rax, QWORD PTR -1736[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_mul, .-fiat_p224_mul
	.type	fiat_p224_square, @function
fiat_p224_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, 1744
	mov	QWORD PTR -1736[rbp], rdi
	mov	QWORD PTR -1744[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1516[rbp]
	lea	rax, -1520[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1508[rbp]
	lea	rax, -1512[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1500[rbp]
	lea	rax, -1504[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1492[rbp]
	lea	rax, -1496[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1484[rbp]
	lea	rax, -1488[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1476[rbp]
	lea	rax, -1480[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -1468[rbp]
	lea	rax, -1472[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1468[rbp]
	mov	edx, DWORD PTR -1480[rbp]
	lea	rsi, -1716[rbp]
	lea	rax, -1464[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1476[rbp]
	mov	ecx, DWORD PTR -1488[rbp]
	movzx	eax, BYTE PTR -1716[rbp]
	movzx	edx, al
	lea	rsi, -1715[rbp]
	lea	rax, -1460[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1484[rbp]
	mov	ecx, DWORD PTR -1496[rbp]
	movzx	eax, BYTE PTR -1715[rbp]
	movzx	edx, al
	lea	rsi, -1714[rbp]
	lea	rax, -1456[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1492[rbp]
	mov	ecx, DWORD PTR -1504[rbp]
	movzx	eax, BYTE PTR -1714[rbp]
	movzx	edx, al
	lea	rsi, -1713[rbp]
	lea	rax, -1452[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1500[rbp]
	mov	ecx, DWORD PTR -1512[rbp]
	movzx	eax, BYTE PTR -1713[rbp]
	movzx	edx, al
	lea	rsi, -1712[rbp]
	lea	rax, -1448[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1508[rbp]
	mov	ecx, DWORD PTR -1520[rbp]
	movzx	eax, BYTE PTR -1712[rbp]
	movzx	edx, al
	lea	rsi, -1711[rbp]
	lea	rax, -1444[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1516[rbp]
	movzx	eax, BYTE PTR -1711[rbp]
	movzx	edx, al
	lea	rsi, -1710[rbp]
	lea	rax, -1440[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1472[rbp]
	lea	rsi, -1432[rbp]
	lea	rax, -1436[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1424[rbp]
	lea	rax, -1428[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1416[rbp]
	lea	rax, -1420[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1408[rbp]
	lea	rax, -1412[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1400[rbp]
	lea	rax, -1404[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1400[rbp]
	mov	edx, DWORD PTR -1412[rbp]
	lea	rsi, -1709[rbp]
	lea	rax, -1396[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1408[rbp]
	mov	ecx, DWORD PTR -1420[rbp]
	movzx	eax, BYTE PTR -1709[rbp]
	movzx	edx, al
	lea	rsi, -1708[rbp]
	lea	rax, -1392[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1416[rbp]
	mov	ecx, DWORD PTR -1428[rbp]
	movzx	eax, BYTE PTR -1708[rbp]
	movzx	edx, al
	lea	rsi, -1707[rbp]
	lea	rax, -1388[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1424[rbp]
	movzx	eax, BYTE PTR -1707[rbp]
	movzx	edx, al
	lea	rsi, -1706[rbp]
	lea	rax, -1384[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1472[rbp]
	mov	edx, DWORD PTR -1436[rbp]
	lea	rsi, -1705[rbp]
	lea	rax, -1380[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1464[rbp]
	movzx	eax, BYTE PTR -1705[rbp]
	movzx	edx, al
	lea	rsi, -1704[rbp]
	lea	rax, -1376[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1460[rbp]
	movzx	eax, BYTE PTR -1704[rbp]
	movzx	edx, al
	lea	rsi, -1703[rbp]
	lea	rax, -1372[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1456[rbp]
	mov	ecx, DWORD PTR -1404[rbp]
	movzx	eax, BYTE PTR -1703[rbp]
	movzx	edx, al
	lea	rsi, -1702[rbp]
	lea	rax, -1368[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1452[rbp]
	mov	ecx, DWORD PTR -1396[rbp]
	movzx	eax, BYTE PTR -1702[rbp]
	movzx	edx, al
	lea	rsi, -1701[rbp]
	lea	rax, -1364[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1448[rbp]
	mov	ecx, DWORD PTR -1392[rbp]
	movzx	eax, BYTE PTR -1701[rbp]
	movzx	edx, al
	lea	rsi, -1700[rbp]
	lea	rax, -1360[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1444[rbp]
	mov	ecx, DWORD PTR -1388[rbp]
	movzx	eax, BYTE PTR -1700[rbp]
	movzx	edx, al
	lea	rsi, -1699[rbp]
	lea	rax, -1356[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1440[rbp]
	mov	ecx, DWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR -1699[rbp]
	movzx	edx, al
	lea	rsi, -1698[rbp]
	lea	rax, -1352[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1698[rbp]
	movzx	edx, al
	lea	rsi, -1697[rbp]
	lea	rax, -1348[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1340[rbp]
	lea	rax, -1344[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1332[rbp]
	lea	rax, -1336[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1324[rbp]
	lea	rax, -1328[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1316[rbp]
	lea	rax, -1320[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1308[rbp]
	lea	rax, -1312[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1300[rbp]
	lea	rax, -1304[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	lea	rsi, -1292[rbp]
	lea	rax, -1296[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1292[rbp]
	mov	edx, DWORD PTR -1304[rbp]
	lea	rsi, -1696[rbp]
	lea	rax, -1288[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1300[rbp]
	mov	ecx, DWORD PTR -1312[rbp]
	movzx	eax, BYTE PTR -1696[rbp]
	movzx	edx, al
	lea	rsi, -1695[rbp]
	lea	rax, -1284[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1308[rbp]
	mov	ecx, DWORD PTR -1320[rbp]
	movzx	eax, BYTE PTR -1695[rbp]
	movzx	edx, al
	lea	rsi, -1694[rbp]
	lea	rax, -1280[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1316[rbp]
	mov	ecx, DWORD PTR -1328[rbp]
	movzx	eax, BYTE PTR -1694[rbp]
	movzx	edx, al
	lea	rsi, -1693[rbp]
	lea	rax, -1276[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1324[rbp]
	mov	ecx, DWORD PTR -1336[rbp]
	movzx	eax, BYTE PTR -1693[rbp]
	movzx	edx, al
	lea	rsi, -1692[rbp]
	lea	rax, -1272[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1332[rbp]
	mov	ecx, DWORD PTR -1344[rbp]
	movzx	eax, BYTE PTR -1692[rbp]
	movzx	edx, al
	lea	rsi, -1691[rbp]
	lea	rax, -1268[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1340[rbp]
	movzx	eax, BYTE PTR -1691[rbp]
	movzx	edx, al
	lea	rsi, -1690[rbp]
	lea	rax, -1264[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1376[rbp]
	mov	edx, DWORD PTR -1296[rbp]
	lea	rsi, -1689[rbp]
	lea	rax, -1260[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1372[rbp]
	mov	ecx, DWORD PTR -1288[rbp]
	movzx	eax, BYTE PTR -1689[rbp]
	movzx	edx, al
	lea	rsi, -1688[rbp]
	lea	rax, -1256[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1368[rbp]
	mov	ecx, DWORD PTR -1284[rbp]
	movzx	eax, BYTE PTR -1688[rbp]
	movzx	edx, al
	lea	rsi, -1687[rbp]
	lea	rax, -1252[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1364[rbp]
	mov	ecx, DWORD PTR -1280[rbp]
	movzx	eax, BYTE PTR -1687[rbp]
	movzx	edx, al
	lea	rsi, -1686[rbp]
	lea	rax, -1248[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1360[rbp]
	mov	ecx, DWORD PTR -1276[rbp]
	movzx	eax, BYTE PTR -1686[rbp]
	movzx	edx, al
	lea	rsi, -1685[rbp]
	lea	rax, -1244[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1356[rbp]
	mov	ecx, DWORD PTR -1272[rbp]
	movzx	eax, BYTE PTR -1685[rbp]
	movzx	edx, al
	lea	rsi, -1684[rbp]
	lea	rax, -1240[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1352[rbp]
	mov	ecx, DWORD PTR -1268[rbp]
	movzx	eax, BYTE PTR -1684[rbp]
	movzx	edx, al
	lea	rsi, -1683[rbp]
	lea	rax, -1236[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -1348[rbp]
	movzx	edi, al
	mov	ecx, DWORD PTR -1264[rbp]
	movzx	eax, BYTE PTR -1683[rbp]
	movzx	edx, al
	lea	rsi, -1682[rbp]
	lea	rax, -1232[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1260[rbp]
	lea	rsi, -1224[rbp]
	lea	rax, -1228[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1216[rbp]
	lea	rax, -1220[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1208[rbp]
	lea	rax, -1212[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1200[rbp]
	lea	rax, -1204[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1192[rbp]
	lea	rax, -1196[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1192[rbp]
	mov	edx, DWORD PTR -1204[rbp]
	lea	rsi, -1681[rbp]
	lea	rax, -1188[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1200[rbp]
	mov	ecx, DWORD PTR -1212[rbp]
	movzx	eax, BYTE PTR -1681[rbp]
	movzx	edx, al
	lea	rsi, -1680[rbp]
	lea	rax, -1184[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1208[rbp]
	mov	ecx, DWORD PTR -1220[rbp]
	movzx	eax, BYTE PTR -1680[rbp]
	movzx	edx, al
	lea	rsi, -1679[rbp]
	lea	rax, -1180[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1216[rbp]
	movzx	eax, BYTE PTR -1679[rbp]
	movzx	edx, al
	lea	rsi, -1678[rbp]
	lea	rax, -1176[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1260[rbp]
	mov	edx, DWORD PTR -1228[rbp]
	lea	rsi, -1677[rbp]
	lea	rax, -1172[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1256[rbp]
	movzx	eax, BYTE PTR -1677[rbp]
	movzx	edx, al
	lea	rsi, -1676[rbp]
	lea	rax, -1168[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1252[rbp]
	movzx	eax, BYTE PTR -1676[rbp]
	movzx	edx, al
	lea	rsi, -1675[rbp]
	lea	rax, -1164[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1248[rbp]
	mov	ecx, DWORD PTR -1196[rbp]
	movzx	eax, BYTE PTR -1675[rbp]
	movzx	edx, al
	lea	rsi, -1674[rbp]
	lea	rax, -1160[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1244[rbp]
	mov	ecx, DWORD PTR -1188[rbp]
	movzx	eax, BYTE PTR -1674[rbp]
	movzx	edx, al
	lea	rsi, -1673[rbp]
	lea	rax, -1156[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1240[rbp]
	mov	ecx, DWORD PTR -1184[rbp]
	movzx	eax, BYTE PTR -1673[rbp]
	movzx	edx, al
	lea	rsi, -1672[rbp]
	lea	rax, -1152[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1236[rbp]
	mov	ecx, DWORD PTR -1180[rbp]
	movzx	eax, BYTE PTR -1672[rbp]
	movzx	edx, al
	lea	rsi, -1671[rbp]
	lea	rax, -1148[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1232[rbp]
	mov	ecx, DWORD PTR -1176[rbp]
	movzx	eax, BYTE PTR -1671[rbp]
	movzx	edx, al
	lea	rsi, -1670[rbp]
	lea	rax, -1144[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1682[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1670[rbp]
	movzx	edx, al
	lea	rsi, -1669[rbp]
	lea	rax, -1140[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1132[rbp]
	lea	rax, -1136[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1124[rbp]
	lea	rax, -1128[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1116[rbp]
	lea	rax, -1120[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1108[rbp]
	lea	rax, -1112[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1100[rbp]
	lea	rax, -1104[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1092[rbp]
	lea	rax, -1096[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, -1084[rbp]
	lea	rax, -1088[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -1084[rbp]
	mov	edx, DWORD PTR -1096[rbp]
	lea	rsi, -1668[rbp]
	lea	rax, -1080[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1092[rbp]
	mov	ecx, DWORD PTR -1104[rbp]
	movzx	eax, BYTE PTR -1668[rbp]
	movzx	edx, al
	lea	rsi, -1667[rbp]
	lea	rax, -1076[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1100[rbp]
	mov	ecx, DWORD PTR -1112[rbp]
	movzx	eax, BYTE PTR -1667[rbp]
	movzx	edx, al
	lea	rsi, -1666[rbp]
	lea	rax, -1072[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1108[rbp]
	mov	ecx, DWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR -1666[rbp]
	movzx	edx, al
	lea	rsi, -1665[rbp]
	lea	rax, -1068[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1116[rbp]
	mov	ecx, DWORD PTR -1128[rbp]
	movzx	eax, BYTE PTR -1665[rbp]
	movzx	edx, al
	lea	rsi, -1664[rbp]
	lea	rax, -1064[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1124[rbp]
	mov	ecx, DWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR -1664[rbp]
	movzx	edx, al
	lea	rsi, -1663[rbp]
	lea	rax, -1060[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1132[rbp]
	movzx	eax, BYTE PTR -1663[rbp]
	movzx	edx, al
	lea	rsi, -1662[rbp]
	lea	rax, -1056[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1168[rbp]
	mov	edx, DWORD PTR -1088[rbp]
	lea	rsi, -1661[rbp]
	lea	rax, -1052[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1164[rbp]
	mov	ecx, DWORD PTR -1080[rbp]
	movzx	eax, BYTE PTR -1661[rbp]
	movzx	edx, al
	lea	rsi, -1660[rbp]
	lea	rax, -1048[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1160[rbp]
	mov	ecx, DWORD PTR -1076[rbp]
	movzx	eax, BYTE PTR -1660[rbp]
	movzx	edx, al
	lea	rsi, -1659[rbp]
	lea	rax, -1044[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1156[rbp]
	mov	ecx, DWORD PTR -1072[rbp]
	movzx	eax, BYTE PTR -1659[rbp]
	movzx	edx, al
	lea	rsi, -1658[rbp]
	lea	rax, -1040[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1152[rbp]
	mov	ecx, DWORD PTR -1068[rbp]
	movzx	eax, BYTE PTR -1658[rbp]
	movzx	edx, al
	lea	rsi, -1657[rbp]
	lea	rax, -1036[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1148[rbp]
	mov	ecx, DWORD PTR -1064[rbp]
	movzx	eax, BYTE PTR -1657[rbp]
	movzx	edx, al
	lea	rsi, -1656[rbp]
	lea	rax, -1032[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1144[rbp]
	mov	ecx, DWORD PTR -1060[rbp]
	movzx	eax, BYTE PTR -1656[rbp]
	movzx	edx, al
	lea	rsi, -1655[rbp]
	lea	rax, -1028[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1140[rbp]
	mov	ecx, DWORD PTR -1056[rbp]
	movzx	eax, BYTE PTR -1655[rbp]
	movzx	edx, al
	lea	rsi, -1654[rbp]
	lea	rax, -1024[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -1052[rbp]
	lea	rsi, -1016[rbp]
	lea	rax, -1020[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1008[rbp]
	lea	rax, -1012[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1000[rbp]
	lea	rax, -1004[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -992[rbp]
	lea	rax, -996[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -984[rbp]
	lea	rax, -988[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -984[rbp]
	mov	edx, DWORD PTR -996[rbp]
	lea	rsi, -1653[rbp]
	lea	rax, -980[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -992[rbp]
	mov	ecx, DWORD PTR -1004[rbp]
	movzx	eax, BYTE PTR -1653[rbp]
	movzx	edx, al
	lea	rsi, -1652[rbp]
	lea	rax, -976[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1000[rbp]
	mov	ecx, DWORD PTR -1012[rbp]
	movzx	eax, BYTE PTR -1652[rbp]
	movzx	edx, al
	lea	rsi, -1651[rbp]
	lea	rax, -972[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR -1651[rbp]
	movzx	edx, al
	lea	rsi, -1650[rbp]
	lea	rax, -968[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1052[rbp]
	mov	edx, DWORD PTR -1020[rbp]
	lea	rsi, -1649[rbp]
	lea	rax, -964[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR -1649[rbp]
	movzx	edx, al
	lea	rsi, -1648[rbp]
	lea	rax, -960[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -1044[rbp]
	movzx	eax, BYTE PTR -1648[rbp]
	movzx	edx, al
	lea	rsi, -1647[rbp]
	lea	rax, -956[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1040[rbp]
	mov	ecx, DWORD PTR -988[rbp]
	movzx	eax, BYTE PTR -1647[rbp]
	movzx	edx, al
	lea	rsi, -1646[rbp]
	lea	rax, -952[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1036[rbp]
	mov	ecx, DWORD PTR -980[rbp]
	movzx	eax, BYTE PTR -1646[rbp]
	movzx	edx, al
	lea	rsi, -1645[rbp]
	lea	rax, -948[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1032[rbp]
	mov	ecx, DWORD PTR -976[rbp]
	movzx	eax, BYTE PTR -1645[rbp]
	movzx	edx, al
	lea	rsi, -1644[rbp]
	lea	rax, -944[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1028[rbp]
	mov	ecx, DWORD PTR -972[rbp]
	movzx	eax, BYTE PTR -1644[rbp]
	movzx	edx, al
	lea	rsi, -1643[rbp]
	lea	rax, -940[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -1024[rbp]
	mov	ecx, DWORD PTR -968[rbp]
	movzx	eax, BYTE PTR -1643[rbp]
	movzx	edx, al
	lea	rsi, -1642[rbp]
	lea	rax, -936[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1654[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1642[rbp]
	movzx	edx, al
	lea	rsi, -1641[rbp]
	lea	rax, -932[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -924[rbp]
	lea	rax, -928[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -916[rbp]
	lea	rax, -920[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -908[rbp]
	lea	rax, -912[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -900[rbp]
	lea	rax, -904[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -892[rbp]
	lea	rax, -896[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -884[rbp]
	lea	rax, -888[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	lea	rsi, -876[rbp]
	lea	rax, -880[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -876[rbp]
	mov	edx, DWORD PTR -888[rbp]
	lea	rsi, -1640[rbp]
	lea	rax, -872[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -884[rbp]
	mov	ecx, DWORD PTR -896[rbp]
	movzx	eax, BYTE PTR -1640[rbp]
	movzx	edx, al
	lea	rsi, -1639[rbp]
	lea	rax, -868[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -892[rbp]
	mov	ecx, DWORD PTR -904[rbp]
	movzx	eax, BYTE PTR -1639[rbp]
	movzx	edx, al
	lea	rsi, -1638[rbp]
	lea	rax, -864[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -900[rbp]
	mov	ecx, DWORD PTR -912[rbp]
	movzx	eax, BYTE PTR -1638[rbp]
	movzx	edx, al
	lea	rsi, -1637[rbp]
	lea	rax, -860[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -908[rbp]
	mov	ecx, DWORD PTR -920[rbp]
	movzx	eax, BYTE PTR -1637[rbp]
	movzx	edx, al
	lea	rsi, -1636[rbp]
	lea	rax, -856[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -916[rbp]
	mov	ecx, DWORD PTR -928[rbp]
	movzx	eax, BYTE PTR -1636[rbp]
	movzx	edx, al
	lea	rsi, -1635[rbp]
	lea	rax, -852[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -924[rbp]
	movzx	eax, BYTE PTR -1635[rbp]
	movzx	edx, al
	lea	rsi, -1634[rbp]
	lea	rax, -848[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -960[rbp]
	mov	edx, DWORD PTR -880[rbp]
	lea	rsi, -1633[rbp]
	lea	rax, -844[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -956[rbp]
	mov	ecx, DWORD PTR -872[rbp]
	movzx	eax, BYTE PTR -1633[rbp]
	movzx	edx, al
	lea	rsi, -1632[rbp]
	lea	rax, -840[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -952[rbp]
	mov	ecx, DWORD PTR -868[rbp]
	movzx	eax, BYTE PTR -1632[rbp]
	movzx	edx, al
	lea	rsi, -1631[rbp]
	lea	rax, -836[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -948[rbp]
	mov	ecx, DWORD PTR -864[rbp]
	movzx	eax, BYTE PTR -1631[rbp]
	movzx	edx, al
	lea	rsi, -1630[rbp]
	lea	rax, -832[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -944[rbp]
	mov	ecx, DWORD PTR -860[rbp]
	movzx	eax, BYTE PTR -1630[rbp]
	movzx	edx, al
	lea	rsi, -1629[rbp]
	lea	rax, -828[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -940[rbp]
	mov	ecx, DWORD PTR -856[rbp]
	movzx	eax, BYTE PTR -1629[rbp]
	movzx	edx, al
	lea	rsi, -1628[rbp]
	lea	rax, -824[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -936[rbp]
	mov	ecx, DWORD PTR -852[rbp]
	movzx	eax, BYTE PTR -1628[rbp]
	movzx	edx, al
	lea	rsi, -1627[rbp]
	lea	rax, -820[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -932[rbp]
	mov	ecx, DWORD PTR -848[rbp]
	movzx	eax, BYTE PTR -1627[rbp]
	movzx	edx, al
	lea	rsi, -1626[rbp]
	lea	rax, -816[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -844[rbp]
	lea	rsi, -808[rbp]
	lea	rax, -812[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -800[rbp]
	lea	rax, -804[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -792[rbp]
	lea	rax, -796[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -784[rbp]
	lea	rax, -788[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -776[rbp]
	lea	rax, -780[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -776[rbp]
	mov	edx, DWORD PTR -788[rbp]
	lea	rsi, -1625[rbp]
	lea	rax, -772[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -784[rbp]
	mov	ecx, DWORD PTR -796[rbp]
	movzx	eax, BYTE PTR -1625[rbp]
	movzx	edx, al
	lea	rsi, -1624[rbp]
	lea	rax, -768[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -792[rbp]
	mov	ecx, DWORD PTR -804[rbp]
	movzx	eax, BYTE PTR -1624[rbp]
	movzx	edx, al
	lea	rsi, -1623[rbp]
	lea	rax, -764[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -800[rbp]
	movzx	eax, BYTE PTR -1623[rbp]
	movzx	edx, al
	lea	rsi, -1622[rbp]
	lea	rax, -760[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -844[rbp]
	mov	edx, DWORD PTR -812[rbp]
	lea	rsi, -1621[rbp]
	lea	rax, -756[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -840[rbp]
	movzx	eax, BYTE PTR -1621[rbp]
	movzx	edx, al
	lea	rsi, -1620[rbp]
	lea	rax, -752[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -836[rbp]
	movzx	eax, BYTE PTR -1620[rbp]
	movzx	edx, al
	lea	rsi, -1619[rbp]
	lea	rax, -748[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -832[rbp]
	mov	ecx, DWORD PTR -780[rbp]
	movzx	eax, BYTE PTR -1619[rbp]
	movzx	edx, al
	lea	rsi, -1618[rbp]
	lea	rax, -744[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -828[rbp]
	mov	ecx, DWORD PTR -772[rbp]
	movzx	eax, BYTE PTR -1618[rbp]
	movzx	edx, al
	lea	rsi, -1617[rbp]
	lea	rax, -740[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -824[rbp]
	mov	ecx, DWORD PTR -768[rbp]
	movzx	eax, BYTE PTR -1617[rbp]
	movzx	edx, al
	lea	rsi, -1616[rbp]
	lea	rax, -736[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -820[rbp]
	mov	ecx, DWORD PTR -764[rbp]
	movzx	eax, BYTE PTR -1616[rbp]
	movzx	edx, al
	lea	rsi, -1615[rbp]
	lea	rax, -732[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -816[rbp]
	mov	ecx, DWORD PTR -760[rbp]
	movzx	eax, BYTE PTR -1615[rbp]
	movzx	edx, al
	lea	rsi, -1614[rbp]
	lea	rax, -728[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1626[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1614[rbp]
	movzx	edx, al
	lea	rsi, -1613[rbp]
	lea	rax, -724[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -716[rbp]
	lea	rax, -720[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -708[rbp]
	lea	rax, -712[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -700[rbp]
	lea	rax, -704[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -692[rbp]
	lea	rax, -696[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -684[rbp]
	lea	rax, -688[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -676[rbp]
	lea	rax, -680[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -668[rbp]
	lea	rax, -672[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -668[rbp]
	mov	edx, DWORD PTR -680[rbp]
	lea	rsi, -1612[rbp]
	lea	rax, -664[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -676[rbp]
	mov	ecx, DWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -1612[rbp]
	movzx	edx, al
	lea	rsi, -1611[rbp]
	lea	rax, -660[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -684[rbp]
	mov	ecx, DWORD PTR -696[rbp]
	movzx	eax, BYTE PTR -1611[rbp]
	movzx	edx, al
	lea	rsi, -1610[rbp]
	lea	rax, -656[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -692[rbp]
	mov	ecx, DWORD PTR -704[rbp]
	movzx	eax, BYTE PTR -1610[rbp]
	movzx	edx, al
	lea	rsi, -1609[rbp]
	lea	rax, -652[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -700[rbp]
	mov	ecx, DWORD PTR -712[rbp]
	movzx	eax, BYTE PTR -1609[rbp]
	movzx	edx, al
	lea	rsi, -1608[rbp]
	lea	rax, -648[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -708[rbp]
	mov	ecx, DWORD PTR -720[rbp]
	movzx	eax, BYTE PTR -1608[rbp]
	movzx	edx, al
	lea	rsi, -1607[rbp]
	lea	rax, -644[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -716[rbp]
	movzx	eax, BYTE PTR -1607[rbp]
	movzx	edx, al
	lea	rsi, -1606[rbp]
	lea	rax, -640[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -752[rbp]
	mov	edx, DWORD PTR -672[rbp]
	lea	rsi, -1605[rbp]
	lea	rax, -636[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -748[rbp]
	mov	ecx, DWORD PTR -664[rbp]
	movzx	eax, BYTE PTR -1605[rbp]
	movzx	edx, al
	lea	rsi, -1604[rbp]
	lea	rax, -632[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -744[rbp]
	mov	ecx, DWORD PTR -660[rbp]
	movzx	eax, BYTE PTR -1604[rbp]
	movzx	edx, al
	lea	rsi, -1603[rbp]
	lea	rax, -628[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -740[rbp]
	mov	ecx, DWORD PTR -656[rbp]
	movzx	eax, BYTE PTR -1603[rbp]
	movzx	edx, al
	lea	rsi, -1602[rbp]
	lea	rax, -624[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -736[rbp]
	mov	ecx, DWORD PTR -652[rbp]
	movzx	eax, BYTE PTR -1602[rbp]
	movzx	edx, al
	lea	rsi, -1601[rbp]
	lea	rax, -620[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -732[rbp]
	mov	ecx, DWORD PTR -648[rbp]
	movzx	eax, BYTE PTR -1601[rbp]
	movzx	edx, al
	lea	rsi, -1600[rbp]
	lea	rax, -616[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -728[rbp]
	mov	ecx, DWORD PTR -644[rbp]
	movzx	eax, BYTE PTR -1600[rbp]
	movzx	edx, al
	lea	rsi, -1599[rbp]
	lea	rax, -612[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -724[rbp]
	mov	ecx, DWORD PTR -640[rbp]
	movzx	eax, BYTE PTR -1599[rbp]
	movzx	edx, al
	lea	rsi, -1598[rbp]
	lea	rax, -608[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -636[rbp]
	lea	rsi, -600[rbp]
	lea	rax, -604[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -592[rbp]
	lea	rax, -596[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -584[rbp]
	lea	rax, -588[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -576[rbp]
	lea	rax, -580[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -568[rbp]
	lea	rax, -572[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -568[rbp]
	mov	edx, DWORD PTR -580[rbp]
	lea	rsi, -1597[rbp]
	lea	rax, -564[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -576[rbp]
	mov	ecx, DWORD PTR -588[rbp]
	movzx	eax, BYTE PTR -1597[rbp]
	movzx	edx, al
	lea	rsi, -1596[rbp]
	lea	rax, -560[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -584[rbp]
	mov	ecx, DWORD PTR -596[rbp]
	movzx	eax, BYTE PTR -1596[rbp]
	movzx	edx, al
	lea	rsi, -1595[rbp]
	lea	rax, -556[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -592[rbp]
	movzx	eax, BYTE PTR -1595[rbp]
	movzx	edx, al
	lea	rsi, -1594[rbp]
	lea	rax, -552[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -636[rbp]
	mov	edx, DWORD PTR -604[rbp]
	lea	rsi, -1593[rbp]
	lea	rax, -548[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -632[rbp]
	movzx	eax, BYTE PTR -1593[rbp]
	movzx	edx, al
	lea	rsi, -1592[rbp]
	lea	rax, -544[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -628[rbp]
	movzx	eax, BYTE PTR -1592[rbp]
	movzx	edx, al
	lea	rsi, -1591[rbp]
	lea	rax, -540[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -624[rbp]
	mov	ecx, DWORD PTR -572[rbp]
	movzx	eax, BYTE PTR -1591[rbp]
	movzx	edx, al
	lea	rsi, -1590[rbp]
	lea	rax, -536[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -620[rbp]
	mov	ecx, DWORD PTR -564[rbp]
	movzx	eax, BYTE PTR -1590[rbp]
	movzx	edx, al
	lea	rsi, -1589[rbp]
	lea	rax, -532[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -616[rbp]
	mov	ecx, DWORD PTR -560[rbp]
	movzx	eax, BYTE PTR -1589[rbp]
	movzx	edx, al
	lea	rsi, -1588[rbp]
	lea	rax, -528[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -612[rbp]
	mov	ecx, DWORD PTR -556[rbp]
	movzx	eax, BYTE PTR -1588[rbp]
	movzx	edx, al
	lea	rsi, -1587[rbp]
	lea	rax, -524[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -608[rbp]
	mov	ecx, DWORD PTR -552[rbp]
	movzx	eax, BYTE PTR -1587[rbp]
	movzx	edx, al
	lea	rsi, -1586[rbp]
	lea	rax, -520[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1598[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1586[rbp]
	movzx	edx, al
	lea	rsi, -1585[rbp]
	lea	rax, -516[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -508[rbp]
	lea	rax, -512[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -500[rbp]
	lea	rax, -504[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -492[rbp]
	lea	rax, -496[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -484[rbp]
	lea	rax, -488[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -476[rbp]
	lea	rax, -480[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -468[rbp]
	lea	rax, -472[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, -460[rbp]
	lea	rax, -464[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -460[rbp]
	mov	edx, DWORD PTR -472[rbp]
	lea	rsi, -1584[rbp]
	lea	rax, -456[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -468[rbp]
	mov	ecx, DWORD PTR -480[rbp]
	movzx	eax, BYTE PTR -1584[rbp]
	movzx	edx, al
	lea	rsi, -1583[rbp]
	lea	rax, -452[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -476[rbp]
	mov	ecx, DWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -1583[rbp]
	movzx	edx, al
	lea	rsi, -1582[rbp]
	lea	rax, -448[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -484[rbp]
	mov	ecx, DWORD PTR -496[rbp]
	movzx	eax, BYTE PTR -1582[rbp]
	movzx	edx, al
	lea	rsi, -1581[rbp]
	lea	rax, -444[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -492[rbp]
	mov	ecx, DWORD PTR -504[rbp]
	movzx	eax, BYTE PTR -1581[rbp]
	movzx	edx, al
	lea	rsi, -1580[rbp]
	lea	rax, -440[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -500[rbp]
	mov	ecx, DWORD PTR -512[rbp]
	movzx	eax, BYTE PTR -1580[rbp]
	movzx	edx, al
	lea	rsi, -1579[rbp]
	lea	rax, -436[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -508[rbp]
	movzx	eax, BYTE PTR -1579[rbp]
	movzx	edx, al
	lea	rsi, -1578[rbp]
	lea	rax, -432[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -544[rbp]
	mov	edx, DWORD PTR -464[rbp]
	lea	rsi, -1577[rbp]
	lea	rax, -428[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -540[rbp]
	mov	ecx, DWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -1577[rbp]
	movzx	edx, al
	lea	rsi, -1576[rbp]
	lea	rax, -424[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -536[rbp]
	mov	ecx, DWORD PTR -452[rbp]
	movzx	eax, BYTE PTR -1576[rbp]
	movzx	edx, al
	lea	rsi, -1575[rbp]
	lea	rax, -420[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -532[rbp]
	mov	ecx, DWORD PTR -448[rbp]
	movzx	eax, BYTE PTR -1575[rbp]
	movzx	edx, al
	lea	rsi, -1574[rbp]
	lea	rax, -416[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -528[rbp]
	mov	ecx, DWORD PTR -444[rbp]
	movzx	eax, BYTE PTR -1574[rbp]
	movzx	edx, al
	lea	rsi, -1573[rbp]
	lea	rax, -412[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -524[rbp]
	mov	ecx, DWORD PTR -440[rbp]
	movzx	eax, BYTE PTR -1573[rbp]
	movzx	edx, al
	lea	rsi, -1572[rbp]
	lea	rax, -408[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -520[rbp]
	mov	ecx, DWORD PTR -436[rbp]
	movzx	eax, BYTE PTR -1572[rbp]
	movzx	edx, al
	lea	rsi, -1571[rbp]
	lea	rax, -404[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -516[rbp]
	mov	ecx, DWORD PTR -432[rbp]
	movzx	eax, BYTE PTR -1571[rbp]
	movzx	edx, al
	lea	rsi, -1570[rbp]
	lea	rax, -400[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -428[rbp]
	lea	rsi, -392[rbp]
	lea	rax, -396[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -384[rbp]
	lea	rax, -388[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -376[rbp]
	lea	rax, -380[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -368[rbp]
	lea	rax, -372[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -360[rbp]
	lea	rax, -364[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -360[rbp]
	mov	edx, DWORD PTR -372[rbp]
	lea	rsi, -1569[rbp]
	lea	rax, -356[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -368[rbp]
	mov	ecx, DWORD PTR -380[rbp]
	movzx	eax, BYTE PTR -1569[rbp]
	movzx	edx, al
	lea	rsi, -1568[rbp]
	lea	rax, -352[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -376[rbp]
	mov	ecx, DWORD PTR -388[rbp]
	movzx	eax, BYTE PTR -1568[rbp]
	movzx	edx, al
	lea	rsi, -1567[rbp]
	lea	rax, -348[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -384[rbp]
	movzx	eax, BYTE PTR -1567[rbp]
	movzx	edx, al
	lea	rsi, -1566[rbp]
	lea	rax, -344[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -428[rbp]
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, -1565[rbp]
	lea	rax, -340[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -424[rbp]
	movzx	eax, BYTE PTR -1565[rbp]
	movzx	edx, al
	lea	rsi, -1564[rbp]
	lea	rax, -336[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -420[rbp]
	movzx	eax, BYTE PTR -1564[rbp]
	movzx	edx, al
	lea	rsi, -1563[rbp]
	lea	rax, -332[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -416[rbp]
	mov	ecx, DWORD PTR -364[rbp]
	movzx	eax, BYTE PTR -1563[rbp]
	movzx	edx, al
	lea	rsi, -1562[rbp]
	lea	rax, -328[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -412[rbp]
	mov	ecx, DWORD PTR -356[rbp]
	movzx	eax, BYTE PTR -1562[rbp]
	movzx	edx, al
	lea	rsi, -1561[rbp]
	lea	rax, -324[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -408[rbp]
	mov	ecx, DWORD PTR -352[rbp]
	movzx	eax, BYTE PTR -1561[rbp]
	movzx	edx, al
	lea	rsi, -1560[rbp]
	lea	rax, -320[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -404[rbp]
	mov	ecx, DWORD PTR -348[rbp]
	movzx	eax, BYTE PTR -1560[rbp]
	movzx	edx, al
	lea	rsi, -1559[rbp]
	lea	rax, -316[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -400[rbp]
	mov	ecx, DWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -1559[rbp]
	movzx	edx, al
	lea	rsi, -1558[rbp]
	lea	rax, -312[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1570[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1558[rbp]
	movzx	edx, al
	lea	rsi, -1557[rbp]
	lea	rax, -308[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -300[rbp]
	lea	rax, -304[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -292[rbp]
	lea	rax, -296[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -284[rbp]
	lea	rax, -288[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -276[rbp]
	lea	rax, -280[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -268[rbp]
	lea	rax, -272[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -260[rbp]
	lea	rax, -264[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	rax, QWORD PTR -1744[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	lea	rsi, -252[rbp]
	lea	rax, -256[rbp]
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -252[rbp]
	mov	edx, DWORD PTR -264[rbp]
	lea	rsi, -1556[rbp]
	lea	rax, -248[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -260[rbp]
	mov	ecx, DWORD PTR -272[rbp]
	movzx	eax, BYTE PTR -1556[rbp]
	movzx	edx, al
	lea	rsi, -1555[rbp]
	lea	rax, -244[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -268[rbp]
	mov	ecx, DWORD PTR -280[rbp]
	movzx	eax, BYTE PTR -1555[rbp]
	movzx	edx, al
	lea	rsi, -1554[rbp]
	lea	rax, -240[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -276[rbp]
	mov	ecx, DWORD PTR -288[rbp]
	movzx	eax, BYTE PTR -1554[rbp]
	movzx	edx, al
	lea	rsi, -1553[rbp]
	lea	rax, -236[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -284[rbp]
	mov	ecx, DWORD PTR -296[rbp]
	movzx	eax, BYTE PTR -1553[rbp]
	movzx	edx, al
	lea	rsi, -1552[rbp]
	lea	rax, -232[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -292[rbp]
	mov	ecx, DWORD PTR -304[rbp]
	movzx	eax, BYTE PTR -1552[rbp]
	movzx	edx, al
	lea	rsi, -1551[rbp]
	lea	rax, -228[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -300[rbp]
	movzx	eax, BYTE PTR -1551[rbp]
	movzx	edx, al
	lea	rsi, -1550[rbp]
	lea	rax, -224[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -336[rbp]
	mov	edx, DWORD PTR -256[rbp]
	lea	rsi, -1549[rbp]
	lea	rax, -220[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -332[rbp]
	mov	ecx, DWORD PTR -248[rbp]
	movzx	eax, BYTE PTR -1549[rbp]
	movzx	edx, al
	lea	rsi, -1548[rbp]
	lea	rax, -216[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -328[rbp]
	mov	ecx, DWORD PTR -244[rbp]
	movzx	eax, BYTE PTR -1548[rbp]
	movzx	edx, al
	lea	rsi, -1547[rbp]
	lea	rax, -212[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -324[rbp]
	mov	ecx, DWORD PTR -240[rbp]
	movzx	eax, BYTE PTR -1547[rbp]
	movzx	edx, al
	lea	rsi, -1546[rbp]
	lea	rax, -208[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -320[rbp]
	mov	ecx, DWORD PTR -236[rbp]
	movzx	eax, BYTE PTR -1546[rbp]
	movzx	edx, al
	lea	rsi, -1545[rbp]
	lea	rax, -204[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -316[rbp]
	mov	ecx, DWORD PTR -232[rbp]
	movzx	eax, BYTE PTR -1545[rbp]
	movzx	edx, al
	lea	rsi, -1544[rbp]
	lea	rax, -200[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -312[rbp]
	mov	ecx, DWORD PTR -228[rbp]
	movzx	eax, BYTE PTR -1544[rbp]
	movzx	edx, al
	lea	rsi, -1543[rbp]
	lea	rax, -196[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -308[rbp]
	mov	ecx, DWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -1543[rbp]
	movzx	edx, al
	lea	rsi, -1542[rbp]
	lea	rax, -192[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -220[rbp]
	lea	rsi, -184[rbp]
	lea	rax, -188[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -176[rbp]
	lea	rax, -180[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -168[rbp]
	lea	rax, -172[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -160[rbp]
	lea	rax, -164[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -152[rbp]
	lea	rax, -156[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -152[rbp]
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -1541[rbp]
	lea	rax, -148[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -160[rbp]
	mov	ecx, DWORD PTR -172[rbp]
	movzx	eax, BYTE PTR -1541[rbp]
	movzx	edx, al
	lea	rsi, -1540[rbp]
	lea	rax, -144[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -168[rbp]
	mov	ecx, DWORD PTR -180[rbp]
	movzx	eax, BYTE PTR -1540[rbp]
	movzx	edx, al
	lea	rsi, -1539[rbp]
	lea	rax, -140[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -176[rbp]
	movzx	eax, BYTE PTR -1539[rbp]
	movzx	edx, al
	lea	rsi, -1538[rbp]
	lea	rax, -136[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -220[rbp]
	mov	edx, DWORD PTR -188[rbp]
	lea	rsi, -1537[rbp]
	lea	rax, -132[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -1537[rbp]
	movzx	edx, al
	lea	rsi, -1536[rbp]
	lea	rax, -128[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -212[rbp]
	movzx	eax, BYTE PTR -1536[rbp]
	movzx	edx, al
	lea	rsi, -1535[rbp]
	lea	rax, -124[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -208[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	movzx	eax, BYTE PTR -1535[rbp]
	movzx	edx, al
	lea	rsi, -1534[rbp]
	lea	rax, -120[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -204[rbp]
	mov	ecx, DWORD PTR -148[rbp]
	movzx	eax, BYTE PTR -1534[rbp]
	movzx	edx, al
	lea	rsi, -1533[rbp]
	lea	rax, -116[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -200[rbp]
	mov	ecx, DWORD PTR -144[rbp]
	movzx	eax, BYTE PTR -1533[rbp]
	movzx	edx, al
	lea	rsi, -1532[rbp]
	lea	rax, -112[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -196[rbp]
	mov	ecx, DWORD PTR -140[rbp]
	movzx	eax, BYTE PTR -1532[rbp]
	movzx	edx, al
	lea	rsi, -1531[rbp]
	lea	rax, -108[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -192[rbp]
	mov	ecx, DWORD PTR -136[rbp]
	movzx	eax, BYTE PTR -1531[rbp]
	movzx	edx, al
	lea	rsi, -1530[rbp]
	lea	rax, -104[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -1542[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -1530[rbp]
	movzx	edx, al
	lea	rsi, -1529[rbp]
	lea	rax, -100[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -128[rbp]
	lea	rsi, -1528[rbp]
	lea	rax, -96[rbp]
	mov	r8d, 1
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -124[rbp]
	movzx	eax, BYTE PTR -1528[rbp]
	movzx	edx, al
	lea	rsi, -1527[rbp]
	lea	rax, -92[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -120[rbp]
	movzx	eax, BYTE PTR -1527[rbp]
	movzx	edx, al
	lea	rsi, -1526[rbp]
	lea	rax, -88[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -116[rbp]
	movzx	eax, BYTE PTR -1526[rbp]
	movzx	edx, al
	lea	rsi, -1525[rbp]
	lea	rax, -84[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -112[rbp]
	movzx	eax, BYTE PTR -1525[rbp]
	movzx	edx, al
	lea	rsi, -1524[rbp]
	lea	rax, -80[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -108[rbp]
	movzx	eax, BYTE PTR -1524[rbp]
	movzx	edx, al
	lea	rsi, -1523[rbp]
	lea	rax, -76[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -1523[rbp]
	movzx	edx, al
	lea	rsi, -1522[rbp]
	lea	rax, -72[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -100[rbp]
	movzx	eax, BYTE PTR -1522[rbp]
	movzx	edx, al
	lea	rsi, -1521[rbp]
	lea	rax, -68[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -128[rbp]
	mov	edx, DWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -124[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -60[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -120[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -56[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -116[rbp]
	mov	edx, DWORD PTR -84[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -52[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -108[rbp]
	mov	edx, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -44[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -104[rbp]
	mov	edx, DWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -1521[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	edx, DWORD PTR -64[rbp]
	mov	rax, QWORD PTR -1736[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1736[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_square, .-fiat_p224_square
	.type	fiat_p224_add, @function
fiat_p224_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, 144
	mov	QWORD PTR -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	QWORD PTR -136[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR [rax]
	lea	rsi, -111[rbp]
	lea	rax, -96[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -111[rbp]
	movzx	edx, al
	lea	rsi, -110[rbp]
	lea	rax, -92[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -110[rbp]
	movzx	edx, al
	lea	rsi, -109[rbp]
	lea	rax, -88[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -109[rbp]
	movzx	edx, al
	lea	rsi, -108[rbp]
	lea	rax, -84[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 16
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -108[rbp]
	movzx	edx, al
	lea	rsi, -107[rbp]
	lea	rax, -80[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 20
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -107[rbp]
	movzx	edx, al
	lea	rsi, -106[rbp]
	lea	rax, -76[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 24
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -106[rbp]
	movzx	edx, al
	lea	rsi, -105[rbp]
	lea	rax, -72[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -96[rbp]
	lea	rsi, -104[rbp]
	lea	rax, -68[rbp]
	mov	r8d, 1
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -92[rbp]
	movzx	eax, BYTE PTR -104[rbp]
	movzx	edx, al
	lea	rsi, -103[rbp]
	lea	rax, -64[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -103[rbp]
	movzx	edx, al
	lea	rsi, -102[rbp]
	lea	rax, -60[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -84[rbp]
	movzx	eax, BYTE PTR -102[rbp]
	movzx	edx, al
	lea	rsi, -101[rbp]
	lea	rax, -56[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -101[rbp]
	movzx	edx, al
	lea	rsi, -100[rbp]
	lea	rax, -52[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR -100[rbp]
	movzx	edx, al
	lea	rsi, -99[rbp]
	lea	rax, -48[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -99[rbp]
	movzx	edx, al
	lea	rsi, -98[rbp]
	lea	rax, -44[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	movzx	eax, BYTE PTR -105[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -98[rbp]
	movzx	edx, al
	lea	rsi, -97[rbp]
	lea	rax, -40[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -96[rbp]
	mov	edx, DWORD PTR -68[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -36[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -92[rbp]
	mov	edx, DWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -88[rbp]
	mov	edx, DWORD PTR -60[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -28[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -84[rbp]
	mov	edx, DWORD PTR -56[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -24[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -80[rbp]
	mov	edx, DWORD PTR -52[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -20[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -76[rbp]
	mov	edx, DWORD PTR -48[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -72[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movzx	eax, BYTE PTR -97[rbp]
	movzx	esi, al
	lea	rax, -12[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_add, .-fiat_p224_add
	.type	fiat_p224_sub, @function
fiat_p224_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	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rax]
	lea	rsi, -82[rbp]
	lea	rax, -68[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 4
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -82[rbp]
	movzx	edx, al
	lea	rsi, -81[rbp]
	lea	rax, -64[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 8
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -81[rbp]
	movzx	edx, al
	lea	rsi, -80[rbp]
	lea	rax, -60[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 12
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -80[rbp]
	movzx	edx, al
	lea	rsi, -79[rbp]
	lea	rax, -56[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 16
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -79[rbp]
	movzx	edx, al
	lea	rsi, -78[rbp]
	lea	rax, -52[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 20
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -78[rbp]
	movzx	edx, al
	lea	rsi, -77[rbp]
	lea	rax, -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 24
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -77[rbp]
	movzx	edx, al
	lea	rsi, -76[rbp]
	lea	rax, -44[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	movzx	eax, BYTE PTR -76[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	ecx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -68[rbp]
	mov	eax, DWORD PTR -40[rbp]
	movzx	eax, al
	and	eax, 1
	mov	edx, eax
	lea	rsi, -75[rbp]
	lea	rax, -36[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -75[rbp]
	movzx	edx, al
	lea	rsi, -74[rbp]
	lea	rax, -32[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -60[rbp]
	movzx	eax, BYTE PTR -74[rbp]
	movzx	edx, al
	lea	rsi, -73[rbp]
	lea	rax, -28[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -56[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -73[rbp]
	movzx	edx, al
	lea	rsi, -72[rbp]
	lea	rax, -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -52[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -72[rbp]
	movzx	edx, al
	lea	rsi, -71[rbp]
	lea	rax, -20[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -48[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -71[rbp]
	movzx	edx, al
	lea	rsi, -70[rbp]
	lea	rax, -16[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -44[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -70[rbp]
	movzx	edx, al
	lea	rsi, -69[rbp]
	lea	rax, -12[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_sub, .-fiat_p224_sub
	.type	fiat_p224_opp, @function
fiat_p224_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	edx, DWORD PTR [rax]
	lea	rsi, -82[rbp]
	lea	rax, -68[rbp]
	mov	r8d, edx
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -82[rbp]
	movzx	edx, al
	lea	rsi, -81[rbp]
	lea	rax, -64[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -81[rbp]
	movzx	edx, al
	lea	rsi, -80[rbp]
	lea	rax, -60[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -80[rbp]
	movzx	edx, al
	lea	rsi, -79[rbp]
	lea	rax, -56[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -79[rbp]
	movzx	edx, al
	lea	rsi, -78[rbp]
	lea	rax, -52[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -78[rbp]
	movzx	edx, al
	lea	rsi, -77[rbp]
	lea	rax, -48[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -77[rbp]
	movzx	edx, al
	lea	rsi, -76[rbp]
	lea	rax, -44[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	movzx	eax, BYTE PTR -76[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	ecx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -68[rbp]
	mov	eax, DWORD PTR -40[rbp]
	movzx	eax, al
	and	eax, 1
	mov	edx, eax
	lea	rsi, -75[rbp]
	lea	rax, -36[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -75[rbp]
	movzx	edx, al
	lea	rsi, -74[rbp]
	lea	rax, -32[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -60[rbp]
	movzx	eax, BYTE PTR -74[rbp]
	movzx	edx, al
	lea	rsi, -73[rbp]
	lea	rax, -28[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -56[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -73[rbp]
	movzx	edx, al
	lea	rsi, -72[rbp]
	lea	rax, -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -52[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -72[rbp]
	movzx	edx, al
	lea	rsi, -71[rbp]
	lea	rax, -20[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -48[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -71[rbp]
	movzx	edx, al
	lea	rsi, -70[rbp]
	lea	rax, -16[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -44[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR -70[rbp]
	movzx	edx, al
	lea	rsi, -69[rbp]
	lea	rax, -12[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_opp, .-fiat_p224_opp
	.type	fiat_p224_from_montgomery, @function
fiat_p224_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, 1008
	mov	QWORD PTR -1000[rbp], rdi
	mov	QWORD PTR -1008[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1008[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -12[rbp]
	lea	rsi, -852[rbp]
	lea	rax, -856[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -856[rbp]
	lea	rsi, -844[rbp]
	lea	rax, -848[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -856[rbp]
	lea	rsi, -836[rbp]
	lea	rax, -840[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -856[rbp]
	lea	rsi, -828[rbp]
	lea	rax, -832[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -856[rbp]
	lea	rsi, -820[rbp]
	lea	rax, -824[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -820[rbp]
	mov	edx, DWORD PTR -832[rbp]
	lea	rsi, -990[rbp]
	lea	rax, -816[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -828[rbp]
	mov	ecx, DWORD PTR -840[rbp]
	movzx	eax, BYTE PTR -990[rbp]
	movzx	edx, al
	lea	rsi, -989[rbp]
	lea	rax, -812[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -836[rbp]
	mov	ecx, DWORD PTR -848[rbp]
	movzx	eax, BYTE PTR -989[rbp]
	movzx	edx, al
	lea	rsi, -988[rbp]
	lea	rax, -808[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -856[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	lea	rsi, -987[rbp]
	lea	rax, -804[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -987[rbp]
	movzx	edx, al
	lea	rsi, -986[rbp]
	lea	rax, -800[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -800[rbp]
	movzx	ecx, al
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	lea	rsi, -985[rbp]
	lea	rax, -796[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -796[rbp]
	lea	rsi, -788[rbp]
	lea	rax, -792[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -792[rbp]
	lea	rsi, -780[rbp]
	lea	rax, -784[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -792[rbp]
	lea	rsi, -772[rbp]
	lea	rax, -776[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -792[rbp]
	lea	rsi, -764[rbp]
	lea	rax, -768[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -792[rbp]
	lea	rsi, -756[rbp]
	lea	rax, -760[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -756[rbp]
	mov	edx, DWORD PTR -768[rbp]
	lea	rsi, -984[rbp]
	lea	rax, -752[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -764[rbp]
	mov	ecx, DWORD PTR -776[rbp]
	movzx	eax, BYTE PTR -984[rbp]
	movzx	edx, al
	lea	rsi, -983[rbp]
	lea	rax, -748[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -772[rbp]
	mov	ecx, DWORD PTR -784[rbp]
	movzx	eax, BYTE PTR -983[rbp]
	movzx	edx, al
	lea	rsi, -982[rbp]
	lea	rax, -744[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -985[rbp]
	movzx	edx, al
	lea	rsi, -981[rbp]
	lea	rax, -740[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -796[rbp]
	mov	edx, DWORD PTR -792[rbp]
	lea	rsi, -980[rbp]
	lea	rax, -736[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -740[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -980[rbp]
	movzx	edx, al
	lea	rsi, -979[rbp]
	lea	rax, -732[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -824[rbp]
	movzx	eax, BYTE PTR -979[rbp]
	movzx	edx, al
	lea	rsi, -978[rbp]
	lea	rax, -728[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -816[rbp]
	mov	ecx, DWORD PTR -760[rbp]
	movzx	eax, BYTE PTR -978[rbp]
	movzx	edx, al
	lea	rsi, -977[rbp]
	lea	rax, -724[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -812[rbp]
	mov	ecx, DWORD PTR -752[rbp]
	movzx	eax, BYTE PTR -977[rbp]
	movzx	edx, al
	lea	rsi, -976[rbp]
	lea	rax, -720[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -808[rbp]
	mov	ecx, DWORD PTR -748[rbp]
	movzx	eax, BYTE PTR -976[rbp]
	movzx	edx, al
	lea	rsi, -975[rbp]
	lea	rax, -716[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -844[rbp]
	movzx	eax, BYTE PTR -988[rbp]
	movzx	edx, al
	lea	rsi, -974[rbp]
	lea	rax, -712[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -712[rbp]
	mov	ecx, DWORD PTR -744[rbp]
	movzx	eax, BYTE PTR -975[rbp]
	movzx	edx, al
	lea	rsi, -973[rbp]
	lea	rax, -708[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -780[rbp]
	movzx	eax, BYTE PTR -982[rbp]
	movzx	edx, al
	lea	rsi, -972[rbp]
	lea	rax, -704[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -704[rbp]
	movzx	eax, BYTE PTR -973[rbp]
	movzx	edx, al
	lea	rsi, -971[rbp]
	lea	rax, -700[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -732[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	lea	rsi, -970[rbp]
	lea	rax, -696[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -728[rbp]
	movzx	eax, BYTE PTR -970[rbp]
	movzx	edx, al
	lea	rsi, -969[rbp]
	lea	rax, -692[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -724[rbp]
	movzx	eax, BYTE PTR -969[rbp]
	movzx	edx, al
	lea	rsi, -968[rbp]
	lea	rax, -688[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -720[rbp]
	movzx	eax, BYTE PTR -968[rbp]
	movzx	edx, al
	lea	rsi, -967[rbp]
	lea	rax, -684[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -716[rbp]
	movzx	eax, BYTE PTR -967[rbp]
	movzx	edx, al
	lea	rsi, -966[rbp]
	lea	rax, -680[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -708[rbp]
	movzx	eax, BYTE PTR -966[rbp]
	movzx	edx, al
	lea	rsi, -965[rbp]
	lea	rax, -676[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -700[rbp]
	movzx	eax, BYTE PTR -965[rbp]
	movzx	edx, al
	lea	rsi, -964[rbp]
	lea	rax, -672[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -971[rbp]
	movzx	edx, al
	lea	rsi, -963[rbp]
	lea	rax, -668[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -668[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -964[rbp]
	movzx	edx, al
	lea	rsi, -962[rbp]
	lea	rax, -664[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -696[rbp]
	lea	rsi, -656[rbp]
	lea	rax, -660[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -660[rbp]
	lea	rsi, -648[rbp]
	lea	rax, -652[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -660[rbp]
	lea	rsi, -640[rbp]
	lea	rax, -644[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -660[rbp]
	lea	rsi, -632[rbp]
	lea	rax, -636[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -660[rbp]
	lea	rsi, -624[rbp]
	lea	rax, -628[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -624[rbp]
	mov	edx, DWORD PTR -636[rbp]
	lea	rsi, -961[rbp]
	lea	rax, -620[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -632[rbp]
	mov	ecx, DWORD PTR -644[rbp]
	movzx	eax, BYTE PTR -961[rbp]
	movzx	edx, al
	lea	rsi, -960[rbp]
	lea	rax, -616[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -640[rbp]
	mov	ecx, DWORD PTR -652[rbp]
	movzx	eax, BYTE PTR -960[rbp]
	movzx	edx, al
	lea	rsi, -959[rbp]
	lea	rax, -612[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -696[rbp]
	mov	edx, DWORD PTR -660[rbp]
	lea	rsi, -958[rbp]
	lea	rax, -608[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -692[rbp]
	movzx	eax, BYTE PTR -958[rbp]
	movzx	edx, al
	lea	rsi, -957[rbp]
	lea	rax, -604[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -688[rbp]
	movzx	eax, BYTE PTR -957[rbp]
	movzx	edx, al
	lea	rsi, -956[rbp]
	lea	rax, -600[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -684[rbp]
	mov	ecx, DWORD PTR -628[rbp]
	movzx	eax, BYTE PTR -956[rbp]
	movzx	edx, al
	lea	rsi, -955[rbp]
	lea	rax, -596[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -680[rbp]
	mov	ecx, DWORD PTR -620[rbp]
	movzx	eax, BYTE PTR -955[rbp]
	movzx	edx, al
	lea	rsi, -954[rbp]
	lea	rax, -592[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -676[rbp]
	mov	ecx, DWORD PTR -616[rbp]
	movzx	eax, BYTE PTR -954[rbp]
	movzx	edx, al
	lea	rsi, -953[rbp]
	lea	rax, -588[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -672[rbp]
	mov	ecx, DWORD PTR -612[rbp]
	movzx	eax, BYTE PTR -953[rbp]
	movzx	edx, al
	lea	rsi, -952[rbp]
	lea	rax, -584[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -648[rbp]
	movzx	eax, BYTE PTR -959[rbp]
	movzx	edx, al
	lea	rsi, -951[rbp]
	lea	rax, -580[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -664[rbp]
	mov	ecx, DWORD PTR -580[rbp]
	movzx	eax, BYTE PTR -952[rbp]
	movzx	edx, al
	lea	rsi, -950[rbp]
	lea	rax, -576[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -604[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	lea	rsi, -949[rbp]
	lea	rax, -572[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -600[rbp]
	movzx	eax, BYTE PTR -949[rbp]
	movzx	edx, al
	lea	rsi, -948[rbp]
	lea	rax, -568[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -596[rbp]
	movzx	eax, BYTE PTR -948[rbp]
	movzx	edx, al
	lea	rsi, -947[rbp]
	lea	rax, -564[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -592[rbp]
	movzx	eax, BYTE PTR -947[rbp]
	movzx	edx, al
	lea	rsi, -946[rbp]
	lea	rax, -560[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -588[rbp]
	movzx	eax, BYTE PTR -946[rbp]
	movzx	edx, al
	lea	rsi, -945[rbp]
	lea	rax, -556[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -584[rbp]
	movzx	eax, BYTE PTR -945[rbp]
	movzx	edx, al
	lea	rsi, -944[rbp]
	lea	rax, -552[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -576[rbp]
	movzx	eax, BYTE PTR -944[rbp]
	movzx	edx, al
	lea	rsi, -943[rbp]
	lea	rax, -548[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -962[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -950[rbp]
	movzx	edx, al
	lea	rsi, -942[rbp]
	lea	rax, -544[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -544[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -943[rbp]
	movzx	edx, al
	lea	rsi, -941[rbp]
	lea	rax, -540[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -572[rbp]
	lea	rsi, -532[rbp]
	lea	rax, -536[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -536[rbp]
	lea	rsi, -524[rbp]
	lea	rax, -528[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -536[rbp]
	lea	rsi, -516[rbp]
	lea	rax, -520[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -536[rbp]
	lea	rsi, -508[rbp]
	lea	rax, -512[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -536[rbp]
	lea	rsi, -500[rbp]
	lea	rax, -504[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -500[rbp]
	mov	edx, DWORD PTR -512[rbp]
	lea	rsi, -940[rbp]
	lea	rax, -496[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -508[rbp]
	mov	ecx, DWORD PTR -520[rbp]
	movzx	eax, BYTE PTR -940[rbp]
	movzx	edx, al
	lea	rsi, -939[rbp]
	lea	rax, -492[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -516[rbp]
	mov	ecx, DWORD PTR -528[rbp]
	movzx	eax, BYTE PTR -939[rbp]
	movzx	edx, al
	lea	rsi, -938[rbp]
	lea	rax, -488[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -572[rbp]
	mov	edx, DWORD PTR -536[rbp]
	lea	rsi, -937[rbp]
	lea	rax, -484[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -568[rbp]
	movzx	eax, BYTE PTR -937[rbp]
	movzx	edx, al
	lea	rsi, -936[rbp]
	lea	rax, -480[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -564[rbp]
	movzx	eax, BYTE PTR -936[rbp]
	movzx	edx, al
	lea	rsi, -935[rbp]
	lea	rax, -476[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -560[rbp]
	mov	ecx, DWORD PTR -504[rbp]
	movzx	eax, BYTE PTR -935[rbp]
	movzx	edx, al
	lea	rsi, -934[rbp]
	lea	rax, -472[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -556[rbp]
	mov	ecx, DWORD PTR -496[rbp]
	movzx	eax, BYTE PTR -934[rbp]
	movzx	edx, al
	lea	rsi, -933[rbp]
	lea	rax, -468[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -552[rbp]
	mov	ecx, DWORD PTR -492[rbp]
	movzx	eax, BYTE PTR -933[rbp]
	movzx	edx, al
	lea	rsi, -932[rbp]
	lea	rax, -464[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -548[rbp]
	mov	ecx, DWORD PTR -488[rbp]
	movzx	eax, BYTE PTR -932[rbp]
	movzx	edx, al
	lea	rsi, -931[rbp]
	lea	rax, -460[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -524[rbp]
	movzx	eax, BYTE PTR -938[rbp]
	movzx	edx, al
	lea	rsi, -930[rbp]
	lea	rax, -456[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -540[rbp]
	mov	ecx, DWORD PTR -456[rbp]
	movzx	eax, BYTE PTR -931[rbp]
	movzx	edx, al
	lea	rsi, -929[rbp]
	lea	rax, -452[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -480[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	lea	rsi, -928[rbp]
	lea	rax, -448[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -476[rbp]
	movzx	eax, BYTE PTR -928[rbp]
	movzx	edx, al
	lea	rsi, -927[rbp]
	lea	rax, -444[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -472[rbp]
	movzx	eax, BYTE PTR -927[rbp]
	movzx	edx, al
	lea	rsi, -926[rbp]
	lea	rax, -440[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -468[rbp]
	movzx	eax, BYTE PTR -926[rbp]
	movzx	edx, al
	lea	rsi, -925[rbp]
	lea	rax, -436[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -464[rbp]
	movzx	eax, BYTE PTR -925[rbp]
	movzx	edx, al
	lea	rsi, -924[rbp]
	lea	rax, -432[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -460[rbp]
	movzx	eax, BYTE PTR -924[rbp]
	movzx	edx, al
	lea	rsi, -923[rbp]
	lea	rax, -428[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -452[rbp]
	movzx	eax, BYTE PTR -923[rbp]
	movzx	edx, al
	lea	rsi, -922[rbp]
	lea	rax, -424[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -941[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -929[rbp]
	movzx	edx, al
	lea	rsi, -921[rbp]
	lea	rax, -420[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -420[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -922[rbp]
	movzx	edx, al
	lea	rsi, -920[rbp]
	lea	rax, -416[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -448[rbp]
	lea	rsi, -408[rbp]
	lea	rax, -412[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -412[rbp]
	lea	rsi, -400[rbp]
	lea	rax, -404[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -412[rbp]
	lea	rsi, -392[rbp]
	lea	rax, -396[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -412[rbp]
	lea	rsi, -384[rbp]
	lea	rax, -388[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -412[rbp]
	lea	rsi, -376[rbp]
	lea	rax, -380[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -376[rbp]
	mov	edx, DWORD PTR -388[rbp]
	lea	rsi, -919[rbp]
	lea	rax, -372[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -384[rbp]
	mov	ecx, DWORD PTR -396[rbp]
	movzx	eax, BYTE PTR -919[rbp]
	movzx	edx, al
	lea	rsi, -918[rbp]
	lea	rax, -368[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -392[rbp]
	mov	ecx, DWORD PTR -404[rbp]
	movzx	eax, BYTE PTR -918[rbp]
	movzx	edx, al
	lea	rsi, -917[rbp]
	lea	rax, -364[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -448[rbp]
	mov	edx, DWORD PTR -412[rbp]
	lea	rsi, -916[rbp]
	lea	rax, -360[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -444[rbp]
	movzx	eax, BYTE PTR -916[rbp]
	movzx	edx, al
	lea	rsi, -915[rbp]
	lea	rax, -356[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -440[rbp]
	movzx	eax, BYTE PTR -915[rbp]
	movzx	edx, al
	lea	rsi, -914[rbp]
	lea	rax, -352[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -436[rbp]
	mov	ecx, DWORD PTR -380[rbp]
	movzx	eax, BYTE PTR -914[rbp]
	movzx	edx, al
	lea	rsi, -913[rbp]
	lea	rax, -348[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -432[rbp]
	mov	ecx, DWORD PTR -372[rbp]
	movzx	eax, BYTE PTR -913[rbp]
	movzx	edx, al
	lea	rsi, -912[rbp]
	lea	rax, -344[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -428[rbp]
	mov	ecx, DWORD PTR -368[rbp]
	movzx	eax, BYTE PTR -912[rbp]
	movzx	edx, al
	lea	rsi, -911[rbp]
	lea	rax, -340[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -424[rbp]
	mov	ecx, DWORD PTR -364[rbp]
	movzx	eax, BYTE PTR -911[rbp]
	movzx	edx, al
	lea	rsi, -910[rbp]
	lea	rax, -336[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -400[rbp]
	movzx	eax, BYTE PTR -917[rbp]
	movzx	edx, al
	lea	rsi, -909[rbp]
	lea	rax, -332[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -416[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	movzx	eax, BYTE PTR -910[rbp]
	movzx	edx, al
	lea	rsi, -908[rbp]
	lea	rax, -328[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -356[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	lea	rsi, -907[rbp]
	lea	rax, -324[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -352[rbp]
	movzx	eax, BYTE PTR -907[rbp]
	movzx	edx, al
	lea	rsi, -906[rbp]
	lea	rax, -320[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -348[rbp]
	movzx	eax, BYTE PTR -906[rbp]
	movzx	edx, al
	lea	rsi, -905[rbp]
	lea	rax, -316[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -344[rbp]
	movzx	eax, BYTE PTR -905[rbp]
	movzx	edx, al
	lea	rsi, -904[rbp]
	lea	rax, -312[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -340[rbp]
	movzx	eax, BYTE PTR -904[rbp]
	movzx	edx, al
	lea	rsi, -903[rbp]
	lea	rax, -308[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -336[rbp]
	movzx	eax, BYTE PTR -903[rbp]
	movzx	edx, al
	lea	rsi, -902[rbp]
	lea	rax, -304[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -328[rbp]
	movzx	eax, BYTE PTR -902[rbp]
	movzx	edx, al
	lea	rsi, -901[rbp]
	lea	rax, -300[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -920[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -908[rbp]
	movzx	edx, al
	lea	rsi, -900[rbp]
	lea	rax, -296[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -296[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -901[rbp]
	movzx	edx, al
	lea	rsi, -899[rbp]
	lea	rax, -292[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -324[rbp]
	lea	rsi, -284[rbp]
	lea	rax, -288[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -288[rbp]
	lea	rsi, -276[rbp]
	lea	rax, -280[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -288[rbp]
	lea	rsi, -268[rbp]
	lea	rax, -272[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -288[rbp]
	lea	rsi, -260[rbp]
	lea	rax, -264[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -288[rbp]
	lea	rsi, -252[rbp]
	lea	rax, -256[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -252[rbp]
	mov	edx, DWORD PTR -264[rbp]
	lea	rsi, -898[rbp]
	lea	rax, -248[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -260[rbp]
	mov	ecx, DWORD PTR -272[rbp]
	movzx	eax, BYTE PTR -898[rbp]
	movzx	edx, al
	lea	rsi, -897[rbp]
	lea	rax, -244[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -268[rbp]
	mov	ecx, DWORD PTR -280[rbp]
	movzx	eax, BYTE PTR -897[rbp]
	movzx	edx, al
	lea	rsi, -896[rbp]
	lea	rax, -240[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -324[rbp]
	mov	edx, DWORD PTR -288[rbp]
	lea	rsi, -895[rbp]
	lea	rax, -236[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -320[rbp]
	movzx	eax, BYTE PTR -895[rbp]
	movzx	edx, al
	lea	rsi, -894[rbp]
	lea	rax, -232[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -316[rbp]
	movzx	eax, BYTE PTR -894[rbp]
	movzx	edx, al
	lea	rsi, -893[rbp]
	lea	rax, -228[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -312[rbp]
	mov	ecx, DWORD PTR -256[rbp]
	movzx	eax, BYTE PTR -893[rbp]
	movzx	edx, al
	lea	rsi, -892[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -308[rbp]
	mov	ecx, DWORD PTR -248[rbp]
	movzx	eax, BYTE PTR -892[rbp]
	movzx	edx, al
	lea	rsi, -891[rbp]
	lea	rax, -220[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -304[rbp]
	mov	ecx, DWORD PTR -244[rbp]
	movzx	eax, BYTE PTR -891[rbp]
	movzx	edx, al
	lea	rsi, -890[rbp]
	lea	rax, -216[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -300[rbp]
	mov	ecx, DWORD PTR -240[rbp]
	movzx	eax, BYTE PTR -890[rbp]
	movzx	edx, al
	lea	rsi, -889[rbp]
	lea	rax, -212[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -276[rbp]
	movzx	eax, BYTE PTR -896[rbp]
	movzx	edx, al
	lea	rsi, -888[rbp]
	lea	rax, -208[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -292[rbp]
	mov	ecx, DWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -889[rbp]
	movzx	edx, al
	lea	rsi, -887[rbp]
	lea	rax, -204[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -232[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	lea	rsi, -886[rbp]
	lea	rax, -200[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -228[rbp]
	movzx	eax, BYTE PTR -886[rbp]
	movzx	edx, al
	lea	rsi, -885[rbp]
	lea	rax, -196[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -885[rbp]
	movzx	edx, al
	lea	rsi, -884[rbp]
	lea	rax, -192[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -220[rbp]
	movzx	eax, BYTE PTR -884[rbp]
	movzx	edx, al
	lea	rsi, -883[rbp]
	lea	rax, -188[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -883[rbp]
	movzx	edx, al
	lea	rsi, -882[rbp]
	lea	rax, -184[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -212[rbp]
	movzx	eax, BYTE PTR -882[rbp]
	movzx	edx, al
	lea	rsi, -881[rbp]
	lea	rax, -180[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -204[rbp]
	movzx	eax, BYTE PTR -881[rbp]
	movzx	edx, al
	lea	rsi, -880[rbp]
	lea	rax, -176[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	movzx	eax, BYTE PTR -899[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -887[rbp]
	movzx	edx, al
	lea	rsi, -879[rbp]
	lea	rax, -172[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -172[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -880[rbp]
	movzx	edx, al
	lea	rsi, -878[rbp]
	lea	rax, -168[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -200[rbp]
	lea	rsi, -160[rbp]
	lea	rax, -164[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -152[rbp]
	lea	rax, -156[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -144[rbp]
	lea	rax, -148[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -136[rbp]
	lea	rax, -140[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -128[rbp]
	lea	rax, -132[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	fiat_p224_mulx_u32
	mov	ecx, DWORD PTR -128[rbp]
	mov	edx, DWORD PTR -140[rbp]
	lea	rsi, -877[rbp]
	lea	rax, -124[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -136[rbp]
	mov	ecx, DWORD PTR -148[rbp]
	movzx	eax, BYTE PTR -877[rbp]
	movzx	edx, al
	lea	rsi, -876[rbp]
	lea	rax, -120[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -144[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	movzx	eax, BYTE PTR -876[rbp]
	movzx	edx, al
	lea	rsi, -875[rbp]
	lea	rax, -116[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -200[rbp]
	mov	edx, DWORD PTR -164[rbp]
	lea	rsi, -874[rbp]
	lea	rax, -112[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -196[rbp]
	movzx	eax, BYTE PTR -874[rbp]
	movzx	edx, al
	lea	rsi, -873[rbp]
	lea	rax, -108[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -192[rbp]
	movzx	eax, BYTE PTR -873[rbp]
	movzx	edx, al
	lea	rsi, -872[rbp]
	lea	rax, -104[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -188[rbp]
	mov	ecx, DWORD PTR -132[rbp]
	movzx	eax, BYTE PTR -872[rbp]
	movzx	edx, al
	lea	rsi, -871[rbp]
	lea	rax, -100[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -184[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	movzx	eax, BYTE PTR -871[rbp]
	movzx	edx, al
	lea	rsi, -870[rbp]
	lea	rax, -96[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -180[rbp]
	mov	ecx, DWORD PTR -120[rbp]
	movzx	eax, BYTE PTR -870[rbp]
	movzx	edx, al
	lea	rsi, -869[rbp]
	lea	rax, -92[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -176[rbp]
	mov	ecx, DWORD PTR -116[rbp]
	movzx	eax, BYTE PTR -869[rbp]
	movzx	edx, al
	lea	rsi, -868[rbp]
	lea	rax, -88[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	ecx, DWORD PTR -152[rbp]
	movzx	eax, BYTE PTR -875[rbp]
	movzx	edx, al
	lea	rsi, -867[rbp]
	lea	rax, -84[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edi, DWORD PTR -168[rbp]
	mov	ecx, DWORD PTR -84[rbp]
	movzx	eax, BYTE PTR -868[rbp]
	movzx	edx, al
	lea	rsi, -866[rbp]
	lea	rax, -80[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	edx, DWORD PTR -108[rbp]
	lea	rsi, -865[rbp]
	lea	rax, -76[rbp]
	mov	r8d, 1
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -104[rbp]
	movzx	eax, BYTE PTR -865[rbp]
	movzx	edx, al
	lea	rsi, -864[rbp]
	lea	rax, -72[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -100[rbp]
	movzx	eax, BYTE PTR -864[rbp]
	movzx	edx, al
	lea	rsi, -863[rbp]
	lea	rax, -68[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -96[rbp]
	movzx	eax, BYTE PTR -863[rbp]
	movzx	edx, al
	lea	rsi, -862[rbp]
	lea	rax, -64[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -92[rbp]
	movzx	eax, BYTE PTR -862[rbp]
	movzx	edx, al
	lea	rsi, -861[rbp]
	lea	rax, -60[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -88[rbp]
	movzx	eax, BYTE PTR -861[rbp]
	movzx	edx, al
	lea	rsi, -860[rbp]
	lea	rax, -56[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -80[rbp]
	movzx	eax, BYTE PTR -860[rbp]
	movzx	edx, al
	lea	rsi, -859[rbp]
	lea	rax, -52[rbp]
	mov	r8d, -1
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	movzx	eax, BYTE PTR -878[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -866[rbp]
	movzx	edx, al
	lea	rsi, -858[rbp]
	lea	rax, -48[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	fiat_p224_addcarryx_u32
	mov	eax, DWORD PTR -48[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -859[rbp]
	movzx	edx, al
	lea	rsi, -857[rbp]
	lea	rax, -44[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	fiat_p224_subborrowx_u32
	mov	ecx, DWORD PTR -108[rbp]
	mov	edx, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -40[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -104[rbp]
	mov	edx, DWORD PTR -72[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -36[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -100[rbp]
	mov	edx, DWORD PTR -68[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -96[rbp]
	mov	edx, DWORD PTR -64[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -28[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -92[rbp]
	mov	edx, DWORD PTR -60[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -24[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -88[rbp]
	mov	edx, DWORD PTR -56[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -20[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	ecx, DWORD PTR -80[rbp]
	mov	edx, DWORD PTR -52[rbp]
	movzx	eax, BYTE PTR -857[rbp]
	movzx	esi, al
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1000[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	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_p224_from_montgomery, .-fiat_p224_from_montgomery
	.type	fiat_p224_nonzero, @function
fiat_p224_nonzero:
.LFB10:
	.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	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 12
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 20
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	or	eax, r9d
	or	eax, r8d
	or	eax, edi
	or	eax, esi
	or	eax, ecx
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	fiat_p224_nonzero, .-fiat_p224_nonzero
	.type	fiat_p224_selectznz, @function
fiat_p224_selectznz:
.LFB11:
	.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	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -36[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -28[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -24[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -20[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -12[rbp]
	mov	rdi, rax
	call	fiat_p224_cmovznz_u32
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L19
	call	__stack_chk_fail@PLT
.L19:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	fiat_p224_selectznz, .-fiat_p224_selectznz
	.type	fiat_p224_to_bytes, @function
fiat_p224_to_bytes:
.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, 56
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -108[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -88[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	BYTE PTR -148[rbp], al
	mov	eax, DWORD PTR -80[rbp]
	shr	eax, 8
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	BYTE PTR -147[rbp], al
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	mov	BYTE PTR -146[rbp], al
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR -145[rbp], al
	movzx	eax, BYTE PTR -146[rbp]
	sar	eax, 8
	mov	BYTE PTR -144[rbp], al
	movzx	eax, BYTE PTR -146[rbp]
	mov	BYTE PTR -143[rbp], al
	movzx	edx, BYTE PTR -144[rbp]
	mov	eax, DWORD PTR -88[rbp]
	add	eax, edx
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	shr	eax, 8
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	BYTE PTR -142[rbp], al
	mov	eax, DWORD PTR -68[rbp]
	shr	eax, 8
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	BYTE PTR -141[rbp], al
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 8
	mov	BYTE PTR -140[rbp], al
	mov	eax, DWORD PTR -64[rbp]
	mov	BYTE PTR -139[rbp], al
	movzx	eax, BYTE PTR -140[rbp]
	sar	eax, 8
	mov	BYTE PTR -138[rbp], al
	movzx	eax, BYTE PTR -140[rbp]
	mov	BYTE PTR -137[rbp], al
	movzx	edx, BYTE PTR -138[rbp]
	mov	eax, DWORD PTR -92[rbp]
	add	eax, edx
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	shr	eax, 8
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	BYTE PTR -136[rbp], al
	mov	eax, DWORD PTR -56[rbp]
	shr	eax, 8
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	mov	BYTE PTR -135[rbp], al
	mov	eax, DWORD PTR -52[rbp]
	shr	eax, 8
	mov	BYTE PTR -134[rbp], al
	mov	eax, DWORD PTR -52[rbp]
	mov	BYTE PTR -133[rbp], al
	movzx	eax, BYTE PTR -134[rbp]
	sar	eax, 8
	mov	BYTE PTR -132[rbp], al
	movzx	eax, BYTE PTR -134[rbp]
	mov	BYTE PTR -131[rbp], al
	movzx	edx, BYTE PTR -132[rbp]
	mov	eax, DWORD PTR -96[rbp]
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	shr	eax, 8
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	BYTE PTR -130[rbp], al
	mov	eax, DWORD PTR -44[rbp]
	shr	eax, 8
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	BYTE PTR -129[rbp], al
	mov	eax, DWORD PTR -40[rbp]
	shr	eax, 8
	mov	BYTE PTR -128[rbp], al
	mov	eax, DWORD PTR -40[rbp]
	mov	BYTE PTR -127[rbp], al
	movzx	eax, BYTE PTR -128[rbp]
	sar	eax, 8
	mov	BYTE PTR -126[rbp], al
	movzx	eax, BYTE PTR -128[rbp]
	mov	BYTE PTR -125[rbp], al
	movzx	edx, BYTE PTR -126[rbp]
	mov	eax, DWORD PTR -100[rbp]
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	shr	eax, 8
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	BYTE PTR -124[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	shr	eax, 8
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	BYTE PTR -123[rbp], al
	mov	eax, DWORD PTR -28[rbp]
	shr	eax, 8
	mov	BYTE PTR -122[rbp], al
	mov	eax, DWORD PTR -28[rbp]
	mov	BYTE PTR -121[rbp], al
	movzx	eax, BYTE PTR -122[rbp]
	sar	eax, 8
	mov	BYTE PTR -120[rbp], al
	movzx	eax, BYTE PTR -122[rbp]
	mov	BYTE PTR -119[rbp], al
	movzx	edx, BYTE PTR -120[rbp]
	mov	eax, DWORD PTR -104[rbp]
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	shr	eax, 8
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	BYTE PTR -118[rbp], al
	mov	eax, DWORD PTR -20[rbp]
	shr	eax, 8
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	BYTE PTR -117[rbp], al
	mov	eax, DWORD PTR -16[rbp]
	shr	eax, 8
	mov	BYTE PTR -116[rbp], al
	mov	eax, DWORD PTR -16[rbp]
	mov	BYTE PTR -115[rbp], al
	movzx	eax, BYTE PTR -116[rbp]
	sar	eax, 8
	mov	BYTE PTR -114[rbp], al
	movzx	eax, BYTE PTR -116[rbp]
	mov	BYTE PTR -113[rbp], al
	movzx	edx, BYTE PTR -114[rbp]
	mov	eax, DWORD PTR -108[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	shr	eax, 8
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	BYTE PTR -112[rbp], al
	mov	eax, DWORD PTR -8[rbp]
	shr	eax, 8
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	BYTE PTR -111[rbp], al
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 8
	mov	BYTE PTR -110[rbp], al
	mov	eax, DWORD PTR -4[rbp]
	mov	BYTE PTR -109[rbp], al
	mov	rax, QWORD PTR -168[rbp]
	movzx	edx, BYTE PTR -148[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 1[rax]
	movzx	eax, BYTE PTR -147[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -145[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 3[rax]
	movzx	eax, BYTE PTR -143[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -142[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 5[rax]
	movzx	eax, BYTE PTR -141[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 6[rax]
	movzx	eax, BYTE PTR -139[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 7[rax]
	movzx	eax, BYTE PTR -137[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -136[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 9[rax]
	movzx	eax, BYTE PTR -135[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 10[rax]
	movzx	eax, BYTE PTR -133[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 11[rax]
	movzx	eax, BYTE PTR -131[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 12[rax]
	movzx	eax, BYTE PTR -130[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 13[rax]
	movzx	eax, BYTE PTR -129[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 14[rax]
	movzx	eax, BYTE PTR -127[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 15[rax]
	movzx	eax, BYTE PTR -125[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 16[rax]
	movzx	eax, BYTE PTR -124[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 17[rax]
	movzx	eax, BYTE PTR -123[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 18[rax]
	movzx	eax, BYTE PTR -121[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 19[rax]
	movzx	eax, BYTE PTR -119[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 20[rax]
	movzx	eax, BYTE PTR -118[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 21[rax]
	movzx	eax, BYTE PTR -117[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 22[rax]
	movzx	eax, BYTE PTR -115[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 23[rax]
	movzx	eax, BYTE PTR -113[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 24[rax]
	movzx	eax, BYTE PTR -112[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 25[rax]
	movzx	eax, BYTE PTR -111[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 26[rax]
	movzx	eax, BYTE PTR -109[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 27[rax]
	movzx	eax, BYTE PTR -110[rbp]
	mov	BYTE PTR [rdx], al
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	fiat_p224_to_bytes, .-fiat_p224_to_bytes
	.type	fiat_p224_from_bytes, @function
fiat_p224_from_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, 72
	mov	QWORD PTR -184[rbp], rdi
	mov	QWORD PTR -192[rbp], rsi
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 27
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 26
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -156[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 25
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -152[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 24[rax]
	mov	BYTE PTR -173[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 23
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -148[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 22
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -144[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 21
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -140[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 20[rax]
	mov	BYTE PTR -172[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 19
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -136[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 18
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -132[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 17
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 16[rax]
	mov	BYTE PTR -171[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 15
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -124[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 14
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -120[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 13
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 12[rax]
	mov	BYTE PTR -170[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 11
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -112[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 10
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -108[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 9
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 8[rax]
	mov	BYTE PTR -169[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 7
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 6
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR 4[rax]
	mov	BYTE PTR -168[rbp], al
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -88[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -80[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -167[rbp], al
	movzx	eax, BYTE PTR -167[rbp]
	mov	ecx, DWORD PTR -84[rbp]
	mov	edx, DWORD PTR -88[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -80[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	rax, 32
	mov	BYTE PTR -166[rbp], al
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -72[rbp], eax
	movzx	eax, BYTE PTR -173[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	mov	edx, DWORD PTR -160[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -152[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -68[rbp], eax
	movzx	eax, BYTE PTR -172[rbp]
	mov	ecx, DWORD PTR -144[rbp]
	mov	edx, DWORD PTR -148[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -140[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -64[rbp], eax
	movzx	eax, BYTE PTR -171[rbp]
	mov	ecx, DWORD PTR -132[rbp]
	mov	edx, DWORD PTR -136[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -128[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -60[rbp], eax
	movzx	eax, BYTE PTR -170[rbp]
	mov	ecx, DWORD PTR -120[rbp]
	mov	edx, DWORD PTR -124[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -116[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -56[rbp], eax
	movzx	eax, BYTE PTR -169[rbp]
	mov	ecx, DWORD PTR -108[rbp]
	mov	edx, DWORD PTR -112[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -104[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -168[rbp]
	mov	ecx, DWORD PTR -96[rbp]
	mov	edx, DWORD PTR -100[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -92[rbp]
	add	edx, ecx
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	movzx	edx, BYTE PTR -166[rbp]
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	shr	rax, 32
	mov	BYTE PTR -165[rbp], al
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -40[rbp], eax
	movzx	edx, BYTE PTR -165[rbp]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	shr	rax, 32
	mov	BYTE PTR -164[rbp], al
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -32[rbp], eax
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	shr	rax, 32
	mov	BYTE PTR -163[rbp], al
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -163[rbp]
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	shr	rax, 32
	mov	BYTE PTR -162[rbp], al
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -16[rbp], eax
	movzx	edx, BYTE PTR -162[rbp]
	mov	eax, DWORD PTR -64[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	shr	rax, 32
	mov	BYTE PTR -161[rbp], al
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -8[rbp], eax
	movzx	edx, BYTE PTR -161[rbp]
	mov	eax, DWORD PTR -68[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	fiat_p224_from_bytes, .-fiat_p224_from_bytes
	.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	"705669.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_addcarryx_u32, %function
fiat_p224_addcarryx_u32:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r3, [fp, #-52]
	mov	r3, r2
	strb	r3, [fp, #-45]
	ldrb	r0, [fp, #-45]	@ zero_extendqisi2
	mov	r1, #0
	ldr	r3, [fp, #-52]
	mov	r2, r3
	mov	r3, #0
	adds	r4, r0, r2
	adc	r5, r1, r3
	ldr	r3, [fp, #4]
	mov	r2, r3
	mov	r3, #0
	adds	r6, r4, r2
	adc	r7, r5, r3
	str	r6, [fp, #-28]
	str	r7, [fp, #-24]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-32]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-33]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	ldrb	r2, [fp, #-33]
	strb	r2, [r3]
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	fiat_p224_addcarryx_u32, .-fiat_p224_addcarryx_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_subborrowx_u32, %function
fiat_p224_subborrowx_u32:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r3, [fp, #-52]
	mov	r3, r2
	strb	r3, [fp, #-45]
	ldr	r3, [fp, #-52]
	mov	r0, r3
	mov	r1, #0
	ldrb	r2, [fp, #-45]	@ zero_extendqisi2
	mov	r3, #0
	subs	r4, r0, r2
	sbc	r5, r1, r3
	ldr	r3, [fp, #4]
	mov	r2, r3
	mov	r3, #0
	subs	r6, r4, r2
	sbc	r7, r5, r3
	str	r6, [fp, #-28]
	str	r7, [fp, #-24]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-33]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	rsb	r3, r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-44]
	strb	r2, [r3]
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	fiat_p224_subborrowx_u32, .-fiat_p224_subborrowx_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_mulx_u32, %function
fiat_p224_mulx_u32:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-40]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-44]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	ip, r2, r3
	umull	r2, r3, r4, r0
	add	r1, ip, r3
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-28]
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	fiat_p224_mulx_u32, .-fiat_p224_mulx_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_cmovznz_u32, %function
fiat_p224_cmovznz_u32:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, r1
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	strb	r3, [fp, #-13]
	ldrb	r3, [fp, #-13]
	rsb	r3, r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	and	r2, r2, r3
	ldr	r3, [fp, #-12]
	mvn	r1, r3
	ldr	r3, [fp, #-32]
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_p224_cmovznz_u32, .-fiat_p224_cmovznz_u32
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_mul, %function
fiat_p224_mul:
	@ args = 0, pretend = 0, frame = 1728
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1728
	sub	sp, sp, #8
	str	r0, [fp, #-1720]
	str	r1, [fp, #-1724]
	str	r2, [fp, #-1728]
	ldr	r3, .L7
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1504
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r0, fp, #1504
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1488
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1488
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1488
	sub	r1, r1, #4
	sub	r0, fp, #1488
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1472
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1472
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1472
	sub	r1, r1, #4
	sub	r0, fp, #1472
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #1456
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1456
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1480]
	ldr	r3, [fp, #-1468]
	sub	r1, fp, #1712
	sub	r1, r1, #4
	sub	r0, fp, #1456
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1716]	@ zero_extendqisi2
	ldr	ip, [fp, #-1488]
	ldr	r3, [fp, #-1476]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1456
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1715]	@ zero_extendqisi2
	ldr	ip, [fp, #-1496]
	ldr	r3, [fp, #-1484]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1714]	@ zero_extendqisi2
	ldr	ip, [fp, #-1504]
	ldr	r3, [fp, #-1492]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1713]	@ zero_extendqisi2
	ldr	ip, [fp, #-1512]
	ldr	r3, [fp, #-1500]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1712]	@ zero_extendqisi2
	ldr	ip, [fp, #-1520]
	ldr	r3, [fp, #-1508]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1440
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1711]	@ zero_extendqisi2
	ldr	r3, [fp, #-1516]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1424
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1472]
	sub	r1, fp, #1424
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1424
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1408
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1424
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1408
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1408
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1392
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1408
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1392
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1392
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1412]
	ldr	r3, [fp, #-1400]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1392
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1709]	@ zero_extendqisi2
	ldr	ip, [fp, #-1420]
	ldr	r3, [fp, #-1408]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1708]	@ zero_extendqisi2
	ldr	ip, [fp, #-1428]
	ldr	r3, [fp, #-1416]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1707]	@ zero_extendqisi2
	ldr	r3, [fp, #-1424]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1436]
	ldr	r3, [fp, #-1472]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1376
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1705]	@ zero_extendqisi2
	ldr	r3, [fp, #-1464]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1704]	@ zero_extendqisi2
	ldr	r3, [fp, #-1460]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1703]	@ zero_extendqisi2
	ldr	ip, [fp, #-1404]
	ldr	r3, [fp, #-1456]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1702]	@ zero_extendqisi2
	ldr	ip, [fp, #-1396]
	ldr	r3, [fp, #-1452]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1360
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1701]	@ zero_extendqisi2
	ldr	ip, [fp, #-1392]
	ldr	r3, [fp, #-1448]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1700]	@ zero_extendqisi2
	ldr	ip, [fp, #-1388]
	ldr	r3, [fp, #-1444]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1699]	@ zero_extendqisi2
	ldr	ip, [fp, #-1384]
	ldr	r3, [fp, #-1440]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1698]	@ zero_extendqisi2
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1344
	sub	r0, r0, #4
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1328
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1328
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1328
	sub	r1, r1, #4
	sub	r0, fp, #1328
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1312
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1312
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1312
	sub	r1, r1, #4
	sub	r0, fp, #1312
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1296
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1296
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1296
	sub	r1, r1, #4
	sub	r0, fp, #1296
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #1280
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1280
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1304]
	ldr	r3, [fp, #-1292]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1280
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1696]	@ zero_extendqisi2
	ldr	ip, [fp, #-1312]
	ldr	r3, [fp, #-1300]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1280
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1695]	@ zero_extendqisi2
	ldr	ip, [fp, #-1320]
	ldr	r3, [fp, #-1308]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1694]	@ zero_extendqisi2
	ldr	ip, [fp, #-1328]
	ldr	r3, [fp, #-1316]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1693]	@ zero_extendqisi2
	ldr	ip, [fp, #-1336]
	ldr	r3, [fp, #-1324]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1692]	@ zero_extendqisi2
	ldr	ip, [fp, #-1344]
	ldr	r3, [fp, #-1332]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1264
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1691]	@ zero_extendqisi2
	ldr	r3, [fp, #-1340]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1296]
	ldr	r3, [fp, #-1376]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1689]	@ zero_extendqisi2
	ldr	ip, [fp, #-1288]
	ldr	r3, [fp, #-1372]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1688]	@ zero_extendqisi2
	ldr	ip, [fp, #-1284]
	ldr	r3, [fp, #-1368]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1248
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1687]	@ zero_extendqisi2
	ldr	ip, [fp, #-1280]
	ldr	r3, [fp, #-1364]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1686]	@ zero_extendqisi2
	ldr	ip, [fp, #-1276]
	ldr	r3, [fp, #-1360]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1685]	@ zero_extendqisi2
	ldr	ip, [fp, #-1272]
	ldr	r3, [fp, #-1356]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1684]	@ zero_extendqisi2
	ldr	ip, [fp, #-1268]
	ldr	r3, [fp, #-1352]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1232
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1683]	@ zero_extendqisi2
	ldr	ip, [fp, #-1264]
	ldr	r3, [fp, #-1348]
	and	r3, r3, #255
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1216
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1260]
	sub	r1, fp, #1216
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1216
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1200
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1216
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1200
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1200
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1184
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1200
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1184
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1184
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1204]
	ldr	r3, [fp, #-1192]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1184
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1681]	@ zero_extendqisi2
	ldr	ip, [fp, #-1212]
	ldr	r3, [fp, #-1200]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1680]	@ zero_extendqisi2
	ldr	ip, [fp, #-1220]
	ldr	r3, [fp, #-1208]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1679]	@ zero_extendqisi2
	ldr	r3, [fp, #-1216]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1228]
	ldr	r3, [fp, #-1260]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1168
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1677]	@ zero_extendqisi2
	ldr	r3, [fp, #-1256]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1676]	@ zero_extendqisi2
	ldr	r3, [fp, #-1252]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1675]	@ zero_extendqisi2
	ldr	ip, [fp, #-1196]
	ldr	r3, [fp, #-1248]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1674]	@ zero_extendqisi2
	ldr	ip, [fp, #-1188]
	ldr	r3, [fp, #-1244]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1152
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1673]	@ zero_extendqisi2
	ldr	ip, [fp, #-1184]
	ldr	r3, [fp, #-1240]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1672]	@ zero_extendqisi2
	ldr	ip, [fp, #-1180]
	ldr	r3, [fp, #-1236]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1671]	@ zero_extendqisi2
	ldr	ip, [fp, #-1176]
	ldr	r3, [fp, #-1232]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1670]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1682]	@ zero_extendqisi2
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1136
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1120
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1120
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1120
	sub	r1, r1, #4
	sub	r0, fp, #1120
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1104
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1104
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1104
	sub	r1, r1, #4
	sub	r0, fp, #1104
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1088
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1088
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1088
	sub	r1, r1, #4
	sub	r0, fp, #1088
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #1072
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1072
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1096]
	ldr	r3, [fp, #-1084]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r0, fp, #1072
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1668]	@ zero_extendqisi2
	ldr	ip, [fp, #-1104]
	ldr	r3, [fp, #-1092]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1072
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1667]	@ zero_extendqisi2
	ldr	ip, [fp, #-1112]
	ldr	r3, [fp, #-1100]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1666]	@ zero_extendqisi2
	ldr	ip, [fp, #-1120]
	ldr	r3, [fp, #-1108]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1665]	@ zero_extendqisi2
	ldr	ip, [fp, #-1128]
	ldr	r3, [fp, #-1116]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1664]	@ zero_extendqisi2
	ldr	ip, [fp, #-1136]
	ldr	r3, [fp, #-1124]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1056
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1663]	@ zero_extendqisi2
	ldr	r3, [fp, #-1132]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1088]
	ldr	r3, [fp, #-1168]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1661]	@ zero_extendqisi2
	ldr	ip, [fp, #-1080]
	ldr	r3, [fp, #-1164]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1660]	@ zero_extendqisi2
	ldr	ip, [fp, #-1076]
	ldr	r3, [fp, #-1160]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1040
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1659]	@ zero_extendqisi2
	ldr	ip, [fp, #-1072]
	ldr	r3, [fp, #-1156]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1658]	@ zero_extendqisi2
	ldr	ip, [fp, #-1068]
	ldr	r3, [fp, #-1152]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1657]	@ zero_extendqisi2
	ldr	ip, [fp, #-1064]
	ldr	r3, [fp, #-1148]
	sub	r1, fp, #1648
	b	.L8
.L9:
	.align	2
.L7:
	.word	.LC0
.L8:
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1656]	@ zero_extendqisi2
	ldr	ip, [fp, #-1060]
	ldr	r3, [fp, #-1144]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1024
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1655]	@ zero_extendqisi2
	ldr	ip, [fp, #-1056]
	ldr	r3, [fp, #-1140]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1024
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1052]
	sub	r1, fp, #1016
	sub	r0, fp, #1020
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #1008
	sub	r0, fp, #1012
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #1000
	sub	r0, fp, #1004
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #992
	sub	r0, fp, #996
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #984
	sub	r0, fp, #988
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-996]
	ldr	r3, [fp, #-984]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #980
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1653]	@ zero_extendqisi2
	ldr	ip, [fp, #-1004]
	ldr	r3, [fp, #-992]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r0, fp, #976
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1652]	@ zero_extendqisi2
	ldr	ip, [fp, #-1012]
	ldr	r3, [fp, #-1000]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #972
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1651]	@ zero_extendqisi2
	ldr	r3, [fp, #-1008]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #968
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1020]
	ldr	r3, [fp, #-1052]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #964
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1649]	@ zero_extendqisi2
	ldr	r3, [fp, #-1048]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #960
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1648]	@ zero_extendqisi2
	ldr	r3, [fp, #-1044]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #956
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1647]	@ zero_extendqisi2
	ldr	ip, [fp, #-988]
	ldr	r3, [fp, #-1040]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #952
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1646]	@ zero_extendqisi2
	ldr	ip, [fp, #-980]
	ldr	r3, [fp, #-1036]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #948
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1645]	@ zero_extendqisi2
	ldr	ip, [fp, #-976]
	ldr	r3, [fp, #-1032]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #944
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1644]	@ zero_extendqisi2
	ldr	ip, [fp, #-972]
	ldr	r3, [fp, #-1028]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #940
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1643]	@ zero_extendqisi2
	ldr	ip, [fp, #-968]
	ldr	r3, [fp, #-1024]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #936
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1642]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1654]	@ zero_extendqisi2
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #932
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #924
	sub	r0, fp, #928
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #916
	sub	r0, fp, #920
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #908
	sub	r0, fp, #912
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #900
	sub	r0, fp, #904
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #892
	sub	r0, fp, #896
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #884
	sub	r0, fp, #888
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #876
	sub	r0, fp, #880
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-888]
	ldr	r3, [fp, #-876]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #872
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1640]	@ zero_extendqisi2
	ldr	ip, [fp, #-896]
	ldr	r3, [fp, #-884]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #868
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1639]	@ zero_extendqisi2
	ldr	ip, [fp, #-904]
	ldr	r3, [fp, #-892]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #864
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1638]	@ zero_extendqisi2
	ldr	ip, [fp, #-912]
	ldr	r3, [fp, #-900]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #860
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1637]	@ zero_extendqisi2
	ldr	ip, [fp, #-920]
	ldr	r3, [fp, #-908]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r0, fp, #856
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1636]	@ zero_extendqisi2
	ldr	ip, [fp, #-928]
	ldr	r3, [fp, #-916]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #852
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1635]	@ zero_extendqisi2
	ldr	r3, [fp, #-924]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #848
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-880]
	ldr	r3, [fp, #-960]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #844
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1633]	@ zero_extendqisi2
	ldr	ip, [fp, #-872]
	ldr	r3, [fp, #-956]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #840
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1632]	@ zero_extendqisi2
	ldr	ip, [fp, #-868]
	ldr	r3, [fp, #-952]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #836
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1631]	@ zero_extendqisi2
	ldr	ip, [fp, #-864]
	ldr	r3, [fp, #-948]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #832
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1630]	@ zero_extendqisi2
	ldr	ip, [fp, #-860]
	ldr	r3, [fp, #-944]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #828
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1629]	@ zero_extendqisi2
	ldr	ip, [fp, #-856]
	ldr	r3, [fp, #-940]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #824
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1628]	@ zero_extendqisi2
	ldr	ip, [fp, #-852]
	ldr	r3, [fp, #-936]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #820
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1627]	@ zero_extendqisi2
	ldr	ip, [fp, #-848]
	ldr	r3, [fp, #-932]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #816
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-844]
	sub	r1, fp, #808
	sub	r0, fp, #812
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #800
	sub	r0, fp, #804
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #792
	sub	r0, fp, #796
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #784
	sub	r0, fp, #788
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #776
	sub	r0, fp, #780
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-788]
	ldr	r3, [fp, #-776]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #772
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1625]	@ zero_extendqisi2
	ldr	ip, [fp, #-796]
	ldr	r3, [fp, #-784]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #768
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1624]	@ zero_extendqisi2
	ldr	ip, [fp, #-804]
	ldr	r3, [fp, #-792]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #764
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1623]	@ zero_extendqisi2
	ldr	r3, [fp, #-800]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #760
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-812]
	ldr	r3, [fp, #-844]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #756
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1621]	@ zero_extendqisi2
	ldr	r3, [fp, #-840]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r0, fp, #752
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1620]	@ zero_extendqisi2
	ldr	r3, [fp, #-836]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #748
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1619]	@ zero_extendqisi2
	ldr	ip, [fp, #-780]
	ldr	r3, [fp, #-832]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #744
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1618]	@ zero_extendqisi2
	ldr	ip, [fp, #-772]
	ldr	r3, [fp, #-828]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #740
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1617]	@ zero_extendqisi2
	ldr	ip, [fp, #-768]
	ldr	r3, [fp, #-824]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #736
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1616]	@ zero_extendqisi2
	ldr	ip, [fp, #-764]
	ldr	r3, [fp, #-820]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #732
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1615]	@ zero_extendqisi2
	ldr	ip, [fp, #-760]
	ldr	r3, [fp, #-816]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #728
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1614]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1626]	@ zero_extendqisi2
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #724
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #716
	sub	r0, fp, #720
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #708
	sub	r0, fp, #712
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #700
	sub	r0, fp, #704
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #692
	sub	r0, fp, #696
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #684
	sub	r0, fp, #688
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #676
	sub	r0, fp, #680
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #668
	sub	r0, fp, #672
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-680]
	ldr	r3, [fp, #-668]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #664
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1612]	@ zero_extendqisi2
	ldr	ip, [fp, #-688]
	ldr	r3, [fp, #-676]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #660
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1611]	@ zero_extendqisi2
	ldr	ip, [fp, #-696]
	ldr	r3, [fp, #-684]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #656
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1610]	@ zero_extendqisi2
	ldr	ip, [fp, #-704]
	ldr	r3, [fp, #-692]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #652
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1609]	@ zero_extendqisi2
	ldr	ip, [fp, #-712]
	ldr	r3, [fp, #-700]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #648
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1608]	@ zero_extendqisi2
	ldr	ip, [fp, #-720]
	ldr	r3, [fp, #-708]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #644
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1607]	@ zero_extendqisi2
	ldr	r3, [fp, #-716]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #640
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-672]
	ldr	r3, [fp, #-752]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #636
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1605]	@ zero_extendqisi2
	ldr	ip, [fp, #-664]
	ldr	r3, [fp, #-748]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r0, fp, #632
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1604]	@ zero_extendqisi2
	ldr	ip, [fp, #-660]
	ldr	r3, [fp, #-744]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #628
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1603]	@ zero_extendqisi2
	ldr	ip, [fp, #-656]
	ldr	r3, [fp, #-740]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #624
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1602]	@ zero_extendqisi2
	ldr	ip, [fp, #-652]
	ldr	r3, [fp, #-736]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #620
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1601]	@ zero_extendqisi2
	ldr	ip, [fp, #-648]
	ldr	r3, [fp, #-732]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #616
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1600]	@ zero_extendqisi2
	ldr	ip, [fp, #-644]
	ldr	r3, [fp, #-728]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #612
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1599]	@ zero_extendqisi2
	ldr	ip, [fp, #-640]
	ldr	r3, [fp, #-724]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #608
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-636]
	sub	r1, fp, #600
	sub	r0, fp, #604
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #592
	sub	r0, fp, #596
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #584
	sub	r0, fp, #588
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #576
	sub	r0, fp, #580
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #568
	sub	r0, fp, #572
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-580]
	ldr	r3, [fp, #-568]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #564
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1597]	@ zero_extendqisi2
	ldr	ip, [fp, #-588]
	ldr	r3, [fp, #-576]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #560
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1596]	@ zero_extendqisi2
	ldr	ip, [fp, #-596]
	ldr	r3, [fp, #-584]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #556
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1595]	@ zero_extendqisi2
	ldr	r3, [fp, #-592]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #552
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-604]
	ldr	r3, [fp, #-636]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #548
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1593]	@ zero_extendqisi2
	ldr	r3, [fp, #-632]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #544
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1592]	@ zero_extendqisi2
	ldr	r3, [fp, #-628]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #540
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1591]	@ zero_extendqisi2
	ldr	ip, [fp, #-572]
	ldr	r3, [fp, #-624]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #536
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1590]	@ zero_extendqisi2
	ldr	ip, [fp, #-564]
	ldr	r3, [fp, #-620]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #532
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1589]	@ zero_extendqisi2
	ldr	ip, [fp, #-560]
	ldr	r3, [fp, #-616]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r0, fp, #528
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1588]	@ zero_extendqisi2
	ldr	ip, [fp, #-556]
	ldr	r3, [fp, #-612]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #524
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1587]	@ zero_extendqisi2
	ldr	ip, [fp, #-552]
	ldr	r3, [fp, #-608]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #520
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1586]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1598]	@ zero_extendqisi2
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #516
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #508
	sub	r0, fp, #512
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #500
	sub	r0, fp, #504
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #492
	sub	r0, fp, #496
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #484
	sub	r0, fp, #488
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #476
	sub	r0, fp, #480
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #468
	sub	r0, fp, #472
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #460
	sub	r0, fp, #464
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-472]
	ldr	r3, [fp, #-460]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #456
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1584]	@ zero_extendqisi2
	ldr	ip, [fp, #-480]
	ldr	r3, [fp, #-468]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #452
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1583]	@ zero_extendqisi2
	ldr	ip, [fp, #-488]
	ldr	r3, [fp, #-476]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #448
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1582]	@ zero_extendqisi2
	ldr	ip, [fp, #-496]
	ldr	r3, [fp, #-484]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #444
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1581]	@ zero_extendqisi2
	ldr	ip, [fp, #-504]
	ldr	r3, [fp, #-492]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #440
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1580]	@ zero_extendqisi2
	ldr	ip, [fp, #-512]
	ldr	r3, [fp, #-500]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #436
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1579]	@ zero_extendqisi2
	ldr	r3, [fp, #-508]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #432
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-464]
	ldr	r3, [fp, #-544]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #428
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1577]	@ zero_extendqisi2
	ldr	ip, [fp, #-456]
	ldr	r3, [fp, #-540]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #424
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1576]	@ zero_extendqisi2
	ldr	ip, [fp, #-452]
	ldr	r3, [fp, #-536]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #420
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1575]	@ zero_extendqisi2
	ldr	ip, [fp, #-448]
	ldr	r3, [fp, #-532]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #416
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1574]	@ zero_extendqisi2
	ldr	ip, [fp, #-444]
	ldr	r3, [fp, #-528]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #412
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1573]	@ zero_extendqisi2
	ldr	ip, [fp, #-440]
	ldr	r3, [fp, #-524]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r0, fp, #408
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1572]	@ zero_extendqisi2
	ldr	ip, [fp, #-436]
	ldr	r3, [fp, #-520]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #404
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1571]	@ zero_extendqisi2
	ldr	ip, [fp, #-432]
	ldr	r3, [fp, #-516]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #400
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-428]
	sub	r1, fp, #392
	sub	r0, fp, #396
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #384
	sub	r0, fp, #388
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #376
	sub	r0, fp, #380
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #368
	sub	r0, fp, #372
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #360
	sub	r0, fp, #364
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-360]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #356
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1569]	@ zero_extendqisi2
	ldr	ip, [fp, #-380]
	ldr	r3, [fp, #-368]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #352
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1568]	@ zero_extendqisi2
	ldr	ip, [fp, #-388]
	ldr	r3, [fp, #-376]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #348
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1567]	@ zero_extendqisi2
	ldr	r3, [fp, #-384]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #344
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-396]
	ldr	r3, [fp, #-428]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #340
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1565]	@ zero_extendqisi2
	ldr	r3, [fp, #-424]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #336
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1564]	@ zero_extendqisi2
	ldr	r3, [fp, #-420]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #332
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1563]	@ zero_extendqisi2
	ldr	ip, [fp, #-364]
	ldr	r3, [fp, #-416]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #328
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1562]	@ zero_extendqisi2
	ldr	ip, [fp, #-356]
	ldr	r3, [fp, #-412]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #324
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1561]	@ zero_extendqisi2
	ldr	ip, [fp, #-352]
	ldr	r3, [fp, #-408]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #320
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1560]	@ zero_extendqisi2
	ldr	ip, [fp, #-348]
	ldr	r3, [fp, #-404]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #316
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1559]	@ zero_extendqisi2
	ldr	ip, [fp, #-344]
	ldr	r3, [fp, #-400]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #312
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1558]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1570]	@ zero_extendqisi2
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #308
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #300
	sub	r0, fp, #304
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r0, fp, #296
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #284
	sub	r0, fp, #288
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #276
	sub	r0, fp, #280
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #268
	sub	r0, fp, #272
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #260
	sub	r0, fp, #264
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1728]
	ldr	r3, [r3]
	sub	r1, fp, #252
	sub	r0, fp, #256
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-252]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r0, fp, #248
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1556]	@ zero_extendqisi2
	ldr	ip, [fp, #-272]
	ldr	r3, [fp, #-260]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #244
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1555]	@ zero_extendqisi2
	ldr	ip, [fp, #-280]
	ldr	r3, [fp, #-268]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #240
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1554]	@ zero_extendqisi2
	ldr	ip, [fp, #-288]
	ldr	r3, [fp, #-276]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #236
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1553]	@ zero_extendqisi2
	ldr	ip, [fp, #-296]
	ldr	r3, [fp, #-284]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #232
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1552]	@ zero_extendqisi2
	ldr	ip, [fp, #-304]
	ldr	r3, [fp, #-292]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #228
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1551]	@ zero_extendqisi2
	ldr	r3, [fp, #-300]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #224
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-336]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #220
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1549]	@ zero_extendqisi2
	ldr	ip, [fp, #-248]
	ldr	r3, [fp, #-332]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #216
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1548]	@ zero_extendqisi2
	ldr	ip, [fp, #-244]
	ldr	r3, [fp, #-328]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #212
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1547]	@ zero_extendqisi2
	ldr	ip, [fp, #-240]
	ldr	r3, [fp, #-324]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #208
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1546]	@ zero_extendqisi2
	ldr	ip, [fp, #-236]
	ldr	r3, [fp, #-320]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #204
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1545]	@ zero_extendqisi2
	ldr	ip, [fp, #-232]
	ldr	r3, [fp, #-316]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #200
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1544]	@ zero_extendqisi2
	ldr	ip, [fp, #-228]
	ldr	r3, [fp, #-312]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #196
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1543]	@ zero_extendqisi2
	ldr	ip, [fp, #-224]
	ldr	r3, [fp, #-308]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #192
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-220]
	sub	r1, fp, #184
	sub	r0, fp, #188
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #176
	sub	r0, fp, #180
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #168
	sub	r0, fp, #172
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #160
	sub	r0, fp, #164
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #152
	sub	r0, fp, #156
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-152]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #148
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1541]	@ zero_extendqisi2
	ldr	ip, [fp, #-172]
	ldr	r3, [fp, #-160]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r0, fp, #144
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1540]	@ zero_extendqisi2
	ldr	ip, [fp, #-180]
	ldr	r3, [fp, #-168]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #140
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1539]	@ zero_extendqisi2
	ldr	r3, [fp, #-176]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #136
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-220]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #132
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1537]	@ zero_extendqisi2
	ldr	r3, [fp, #-216]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #128
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1536]	@ zero_extendqisi2
	ldr	r3, [fp, #-212]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #124
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1535]	@ zero_extendqisi2
	ldr	ip, [fp, #-156]
	ldr	r3, [fp, #-208]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #120
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1534]	@ zero_extendqisi2
	ldr	ip, [fp, #-148]
	ldr	r3, [fp, #-204]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #116
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1533]	@ zero_extendqisi2
	ldr	ip, [fp, #-144]
	ldr	r3, [fp, #-200]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #112
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1532]	@ zero_extendqisi2
	ldr	ip, [fp, #-140]
	ldr	r3, [fp, #-196]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #108
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1531]	@ zero_extendqisi2
	ldr	ip, [fp, #-136]
	ldr	r3, [fp, #-192]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #104
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1530]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1542]	@ zero_extendqisi2
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #100
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-128]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #96
	mov	r2, #1
	str	r2, [sp]
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1528]	@ zero_extendqisi2
	ldr	r3, [fp, #-124]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #92
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1527]	@ zero_extendqisi2
	ldr	r3, [fp, #-120]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #88
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1526]	@ zero_extendqisi2
	ldr	r3, [fp, #-116]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #84
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1525]	@ zero_extendqisi2
	ldr	r3, [fp, #-112]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r0, fp, #80
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1524]	@ zero_extendqisi2
	ldr	r3, [fp, #-108]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #76
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1523]	@ zero_extendqisi2
	ldr	r3, [fp, #-104]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #72
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1522]	@ zero_extendqisi2
	ldr	r3, [fp, #-100]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #68
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-128]
	sub	r0, fp, #64
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-124]
	sub	r0, fp, #60
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-120]
	sub	r0, fp, #56
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-116]
	sub	r0, fp, #52
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-112]
	sub	r0, fp, #48
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-108]
	sub	r0, fp, #44
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-104]
	sub	r0, fp, #40
	bl	fiat_p224_cmovznz_u32
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-1720]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #4
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #8
	ldr	r2, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #12
	ldr	r2, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #16
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #20
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #24
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	nop
	ldr	r3, .L10
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L6
	bl	__stack_chk_fail
.L6:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L11:
	.align	2
.L10:
	.word	.LC0
	.size	fiat_p224_mul, .-fiat_p224_mul
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_square, %function
fiat_p224_square:
	@ args = 0, pretend = 0, frame = 1720
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1728
	str	r0, [fp, #-1720]
	str	r1, [fp, #-1724]
	ldr	r3, .L14
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1504
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r0, fp, #1504
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1488
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1488
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1488
	sub	r1, r1, #4
	sub	r0, fp, #1488
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1472
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1472
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1472
	sub	r1, r1, #4
	sub	r0, fp, #1472
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #1456
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1456
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1480]
	ldr	r3, [fp, #-1468]
	sub	r1, fp, #1712
	sub	r1, r1, #4
	sub	r0, fp, #1456
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1716]	@ zero_extendqisi2
	ldr	ip, [fp, #-1488]
	ldr	r3, [fp, #-1476]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1456
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1715]	@ zero_extendqisi2
	ldr	ip, [fp, #-1496]
	ldr	r3, [fp, #-1484]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1714]	@ zero_extendqisi2
	ldr	ip, [fp, #-1504]
	ldr	r3, [fp, #-1492]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1713]	@ zero_extendqisi2
	ldr	ip, [fp, #-1512]
	ldr	r3, [fp, #-1500]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1440
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1712]	@ zero_extendqisi2
	ldr	ip, [fp, #-1520]
	ldr	r3, [fp, #-1508]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1440
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1711]	@ zero_extendqisi2
	ldr	r3, [fp, #-1516]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1424
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1472]
	sub	r1, fp, #1424
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1424
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1408
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1424
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1408
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1408
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1392
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1408
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1436]
	sub	r1, fp, #1392
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1392
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1412]
	ldr	r3, [fp, #-1400]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1392
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1709]	@ zero_extendqisi2
	ldr	ip, [fp, #-1420]
	ldr	r3, [fp, #-1408]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1708]	@ zero_extendqisi2
	ldr	ip, [fp, #-1428]
	ldr	r3, [fp, #-1416]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1707]	@ zero_extendqisi2
	ldr	r3, [fp, #-1424]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1376
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1436]
	ldr	r3, [fp, #-1472]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1376
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1705]	@ zero_extendqisi2
	ldr	r3, [fp, #-1464]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1704]	@ zero_extendqisi2
	ldr	r3, [fp, #-1460]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1703]	@ zero_extendqisi2
	ldr	ip, [fp, #-1404]
	ldr	r3, [fp, #-1456]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1360
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1702]	@ zero_extendqisi2
	ldr	ip, [fp, #-1396]
	ldr	r3, [fp, #-1452]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1360
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1701]	@ zero_extendqisi2
	ldr	ip, [fp, #-1392]
	ldr	r3, [fp, #-1448]
	sub	r1, fp, #1696
	sub	r1, r1, #4
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1700]	@ zero_extendqisi2
	ldr	ip, [fp, #-1388]
	ldr	r3, [fp, #-1444]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1699]	@ zero_extendqisi2
	ldr	ip, [fp, #-1384]
	ldr	r3, [fp, #-1440]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1344
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1698]	@ zero_extendqisi2
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1344
	sub	r0, r0, #4
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1328
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1328
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1328
	sub	r1, r1, #4
	sub	r0, fp, #1328
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1312
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1312
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1312
	sub	r1, r1, #4
	sub	r0, fp, #1312
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1296
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1296
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1296
	sub	r1, r1, #4
	sub	r0, fp, #1296
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #1280
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1280
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-36]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1304]
	ldr	r3, [fp, #-1292]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1280
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1696]	@ zero_extendqisi2
	ldr	ip, [fp, #-1312]
	ldr	r3, [fp, #-1300]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1280
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1695]	@ zero_extendqisi2
	ldr	ip, [fp, #-1320]
	ldr	r3, [fp, #-1308]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1694]	@ zero_extendqisi2
	ldr	ip, [fp, #-1328]
	ldr	r3, [fp, #-1316]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1693]	@ zero_extendqisi2
	ldr	ip, [fp, #-1336]
	ldr	r3, [fp, #-1324]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1264
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1692]	@ zero_extendqisi2
	ldr	ip, [fp, #-1344]
	ldr	r3, [fp, #-1332]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1264
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1691]	@ zero_extendqisi2
	ldr	r3, [fp, #-1340]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1296]
	ldr	r3, [fp, #-1376]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1689]	@ zero_extendqisi2
	ldr	ip, [fp, #-1288]
	ldr	r3, [fp, #-1372]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1248
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1688]	@ zero_extendqisi2
	ldr	ip, [fp, #-1284]
	ldr	r3, [fp, #-1368]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1248
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1687]	@ zero_extendqisi2
	ldr	ip, [fp, #-1280]
	ldr	r3, [fp, #-1364]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1686]	@ zero_extendqisi2
	ldr	ip, [fp, #-1276]
	ldr	r3, [fp, #-1360]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1685]	@ zero_extendqisi2
	ldr	ip, [fp, #-1272]
	ldr	r3, [fp, #-1356]
	sub	r1, fp, #1680
	sub	r1, r1, #4
	sub	r0, fp, #1232
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1684]	@ zero_extendqisi2
	ldr	ip, [fp, #-1268]
	ldr	r3, [fp, #-1352]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1232
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1683]	@ zero_extendqisi2
	ldr	ip, [fp, #-1264]
	ldr	r3, [fp, #-1348]
	and	r3, r3, #255
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1216
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1260]
	sub	r1, fp, #1216
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1216
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1200
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1216
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1200
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1200
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1184
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1200
	sub	r0, r0, #4
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1228]
	sub	r1, fp, #1184
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1184
	sub	r0, r0, #4
	sub	r0, r0, #8
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1204]
	ldr	r3, [fp, #-1192]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1184
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1681]	@ zero_extendqisi2
	ldr	ip, [fp, #-1212]
	ldr	r3, [fp, #-1200]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1680]	@ zero_extendqisi2
	ldr	ip, [fp, #-1220]
	ldr	r3, [fp, #-1208]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1679]	@ zero_extendqisi2
	ldr	r3, [fp, #-1216]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1168
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1228]
	ldr	r3, [fp, #-1260]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1168
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1677]	@ zero_extendqisi2
	ldr	r3, [fp, #-1256]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1676]	@ zero_extendqisi2
	ldr	r3, [fp, #-1252]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1675]	@ zero_extendqisi2
	ldr	ip, [fp, #-1196]
	ldr	r3, [fp, #-1248]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1152
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1674]	@ zero_extendqisi2
	ldr	ip, [fp, #-1188]
	ldr	r3, [fp, #-1244]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1152
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1673]	@ zero_extendqisi2
	ldr	ip, [fp, #-1184]
	ldr	r3, [fp, #-1240]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1672]	@ zero_extendqisi2
	ldr	ip, [fp, #-1180]
	ldr	r3, [fp, #-1236]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1671]	@ zero_extendqisi2
	ldr	ip, [fp, #-1176]
	ldr	r3, [fp, #-1232]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1136
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1670]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1682]	@ zero_extendqisi2
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #1136
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #1120
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1120
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #1120
	sub	r1, r1, #4
	sub	r0, fp, #1120
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #1104
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1104
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #1104
	sub	r1, r1, #4
	sub	r0, fp, #1104
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #1088
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1088
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #1088
	sub	r1, r1, #4
	sub	r0, fp, #1088
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #1072
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1072
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r2, [fp, #-32]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1096]
	ldr	r3, [fp, #-1084]
	sub	r1, fp, #1664
	sub	r1, r1, #4
	sub	r0, fp, #1072
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1668]	@ zero_extendqisi2
	ldr	ip, [fp, #-1104]
	ldr	r3, [fp, #-1092]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #1072
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1667]	@ zero_extendqisi2
	ldr	ip, [fp, #-1112]
	ldr	r3, [fp, #-1100]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1666]	@ zero_extendqisi2
	ldr	ip, [fp, #-1120]
	ldr	r3, [fp, #-1108]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1665]	@ zero_extendqisi2
	ldr	ip, [fp, #-1128]
	ldr	r3, [fp, #-1116]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #1056
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1664]	@ zero_extendqisi2
	ldr	ip, [fp, #-1136]
	ldr	r3, [fp, #-1124]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #1056
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1663]	@ zero_extendqisi2
	ldr	r3, [fp, #-1132]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1088]
	ldr	r3, [fp, #-1168]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1661]	@ zero_extendqisi2
	ldr	ip, [fp, #-1080]
	ldr	r3, [fp, #-1164]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #1040
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1660]	@ zero_extendqisi2
	ldr	ip, [fp, #-1076]
	ldr	r3, [fp, #-1160]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #1040
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1659]	@ zero_extendqisi2
	ldr	ip, [fp, #-1072]
	ldr	r3, [fp, #-1156]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1658]	@ zero_extendqisi2
	ldr	ip, [fp, #-1068]
	ldr	r3, [fp, #-1152]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #8
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1657]	@ zero_extendqisi2
	ldr	ip, [fp, #-1064]
	ldr	r3, [fp, #-1148]
	sub	r1, fp, #1648
	b	.L15
.L16:
	.align	2
.L14:
	.word	.LC1
.L15:
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1656]	@ zero_extendqisi2
	ldr	ip, [fp, #-1060]
	ldr	r3, [fp, #-1144]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #1024
	sub	r0, r0, #4
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1655]	@ zero_extendqisi2
	ldr	ip, [fp, #-1056]
	ldr	r3, [fp, #-1140]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #1024
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1052]
	sub	r1, fp, #1016
	sub	r0, fp, #1020
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #1008
	sub	r0, fp, #1012
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #1000
	sub	r0, fp, #1004
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #992
	sub	r0, fp, #996
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-1020]
	sub	r1, fp, #984
	sub	r0, fp, #988
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-996]
	ldr	r3, [fp, #-984]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #980
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1653]	@ zero_extendqisi2
	ldr	ip, [fp, #-1004]
	ldr	r3, [fp, #-992]
	sub	r1, fp, #1648
	sub	r1, r1, #4
	sub	r0, fp, #976
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1652]	@ zero_extendqisi2
	ldr	ip, [fp, #-1012]
	ldr	r3, [fp, #-1000]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #972
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1651]	@ zero_extendqisi2
	ldr	r3, [fp, #-1008]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #968
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-1020]
	ldr	r3, [fp, #-1052]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #964
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1649]	@ zero_extendqisi2
	ldr	r3, [fp, #-1048]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #960
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1648]	@ zero_extendqisi2
	ldr	r3, [fp, #-1044]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #956
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1647]	@ zero_extendqisi2
	ldr	ip, [fp, #-988]
	ldr	r3, [fp, #-1040]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #952
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1646]	@ zero_extendqisi2
	ldr	ip, [fp, #-980]
	ldr	r3, [fp, #-1036]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #948
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1645]	@ zero_extendqisi2
	ldr	ip, [fp, #-976]
	ldr	r3, [fp, #-1032]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #944
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1644]	@ zero_extendqisi2
	ldr	ip, [fp, #-972]
	ldr	r3, [fp, #-1028]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #940
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1643]	@ zero_extendqisi2
	ldr	ip, [fp, #-968]
	ldr	r3, [fp, #-1024]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #936
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1642]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1654]	@ zero_extendqisi2
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #932
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #924
	sub	r0, fp, #928
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #916
	sub	r0, fp, #920
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #908
	sub	r0, fp, #912
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #900
	sub	r0, fp, #904
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #892
	sub	r0, fp, #896
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #884
	sub	r0, fp, #888
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #876
	sub	r0, fp, #880
	ldr	r2, [fp, #-28]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-888]
	ldr	r3, [fp, #-876]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #872
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1640]	@ zero_extendqisi2
	ldr	ip, [fp, #-896]
	ldr	r3, [fp, #-884]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #868
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1639]	@ zero_extendqisi2
	ldr	ip, [fp, #-904]
	ldr	r3, [fp, #-892]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #864
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1638]	@ zero_extendqisi2
	ldr	ip, [fp, #-912]
	ldr	r3, [fp, #-900]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #860
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1637]	@ zero_extendqisi2
	ldr	ip, [fp, #-920]
	ldr	r3, [fp, #-908]
	sub	r1, fp, #1632
	sub	r1, r1, #4
	sub	r0, fp, #856
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1636]	@ zero_extendqisi2
	ldr	ip, [fp, #-928]
	ldr	r3, [fp, #-916]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #852
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1635]	@ zero_extendqisi2
	ldr	r3, [fp, #-924]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #848
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-880]
	ldr	r3, [fp, #-960]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #844
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1633]	@ zero_extendqisi2
	ldr	ip, [fp, #-872]
	ldr	r3, [fp, #-956]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #840
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1632]	@ zero_extendqisi2
	ldr	ip, [fp, #-868]
	ldr	r3, [fp, #-952]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #836
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1631]	@ zero_extendqisi2
	ldr	ip, [fp, #-864]
	ldr	r3, [fp, #-948]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #832
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1630]	@ zero_extendqisi2
	ldr	ip, [fp, #-860]
	ldr	r3, [fp, #-944]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #828
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1629]	@ zero_extendqisi2
	ldr	ip, [fp, #-856]
	ldr	r3, [fp, #-940]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #824
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1628]	@ zero_extendqisi2
	ldr	ip, [fp, #-852]
	ldr	r3, [fp, #-936]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #820
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1627]	@ zero_extendqisi2
	ldr	ip, [fp, #-848]
	ldr	r3, [fp, #-932]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #816
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-844]
	sub	r1, fp, #808
	sub	r0, fp, #812
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #800
	sub	r0, fp, #804
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #792
	sub	r0, fp, #796
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #784
	sub	r0, fp, #788
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-812]
	sub	r1, fp, #776
	sub	r0, fp, #780
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-788]
	ldr	r3, [fp, #-776]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #772
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1625]	@ zero_extendqisi2
	ldr	ip, [fp, #-796]
	ldr	r3, [fp, #-784]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #768
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1624]	@ zero_extendqisi2
	ldr	ip, [fp, #-804]
	ldr	r3, [fp, #-792]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #764
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1623]	@ zero_extendqisi2
	ldr	r3, [fp, #-800]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #760
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-812]
	ldr	r3, [fp, #-844]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #756
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1621]	@ zero_extendqisi2
	ldr	r3, [fp, #-840]
	sub	r1, fp, #1616
	sub	r1, r1, #4
	sub	r0, fp, #752
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1620]	@ zero_extendqisi2
	ldr	r3, [fp, #-836]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #748
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1619]	@ zero_extendqisi2
	ldr	ip, [fp, #-780]
	ldr	r3, [fp, #-832]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #744
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1618]	@ zero_extendqisi2
	ldr	ip, [fp, #-772]
	ldr	r3, [fp, #-828]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #740
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1617]	@ zero_extendqisi2
	ldr	ip, [fp, #-768]
	ldr	r3, [fp, #-824]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #736
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1616]	@ zero_extendqisi2
	ldr	ip, [fp, #-764]
	ldr	r3, [fp, #-820]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #732
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1615]	@ zero_extendqisi2
	ldr	ip, [fp, #-760]
	ldr	r3, [fp, #-816]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #728
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1614]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1626]	@ zero_extendqisi2
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #724
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #716
	sub	r0, fp, #720
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #708
	sub	r0, fp, #712
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #700
	sub	r0, fp, #704
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #692
	sub	r0, fp, #696
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #684
	sub	r0, fp, #688
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #676
	sub	r0, fp, #680
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #668
	sub	r0, fp, #672
	ldr	r2, [fp, #-24]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-680]
	ldr	r3, [fp, #-668]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #664
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1612]	@ zero_extendqisi2
	ldr	ip, [fp, #-688]
	ldr	r3, [fp, #-676]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #660
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1611]	@ zero_extendqisi2
	ldr	ip, [fp, #-696]
	ldr	r3, [fp, #-684]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #656
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1610]	@ zero_extendqisi2
	ldr	ip, [fp, #-704]
	ldr	r3, [fp, #-692]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #652
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1609]	@ zero_extendqisi2
	ldr	ip, [fp, #-712]
	ldr	r3, [fp, #-700]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #648
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1608]	@ zero_extendqisi2
	ldr	ip, [fp, #-720]
	ldr	r3, [fp, #-708]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #644
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1607]	@ zero_extendqisi2
	ldr	r3, [fp, #-716]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #640
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-672]
	ldr	r3, [fp, #-752]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #636
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1605]	@ zero_extendqisi2
	ldr	ip, [fp, #-664]
	ldr	r3, [fp, #-748]
	sub	r1, fp, #1600
	sub	r1, r1, #4
	sub	r0, fp, #632
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1604]	@ zero_extendqisi2
	ldr	ip, [fp, #-660]
	ldr	r3, [fp, #-744]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #628
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1603]	@ zero_extendqisi2
	ldr	ip, [fp, #-656]
	ldr	r3, [fp, #-740]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #624
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1602]	@ zero_extendqisi2
	ldr	ip, [fp, #-652]
	ldr	r3, [fp, #-736]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #620
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1601]	@ zero_extendqisi2
	ldr	ip, [fp, #-648]
	ldr	r3, [fp, #-732]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #616
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1600]	@ zero_extendqisi2
	ldr	ip, [fp, #-644]
	ldr	r3, [fp, #-728]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #612
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1599]	@ zero_extendqisi2
	ldr	ip, [fp, #-640]
	ldr	r3, [fp, #-724]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #608
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-636]
	sub	r1, fp, #600
	sub	r0, fp, #604
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #592
	sub	r0, fp, #596
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #584
	sub	r0, fp, #588
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #576
	sub	r0, fp, #580
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-604]
	sub	r1, fp, #568
	sub	r0, fp, #572
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-580]
	ldr	r3, [fp, #-568]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #564
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1597]	@ zero_extendqisi2
	ldr	ip, [fp, #-588]
	ldr	r3, [fp, #-576]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #560
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1596]	@ zero_extendqisi2
	ldr	ip, [fp, #-596]
	ldr	r3, [fp, #-584]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #556
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1595]	@ zero_extendqisi2
	ldr	r3, [fp, #-592]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #552
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-604]
	ldr	r3, [fp, #-636]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #548
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1593]	@ zero_extendqisi2
	ldr	r3, [fp, #-632]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #544
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1592]	@ zero_extendqisi2
	ldr	r3, [fp, #-628]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #540
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1591]	@ zero_extendqisi2
	ldr	ip, [fp, #-572]
	ldr	r3, [fp, #-624]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #536
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1590]	@ zero_extendqisi2
	ldr	ip, [fp, #-564]
	ldr	r3, [fp, #-620]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #532
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1589]	@ zero_extendqisi2
	ldr	ip, [fp, #-560]
	ldr	r3, [fp, #-616]
	sub	r1, fp, #1584
	sub	r1, r1, #4
	sub	r0, fp, #528
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1588]	@ zero_extendqisi2
	ldr	ip, [fp, #-556]
	ldr	r3, [fp, #-612]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #524
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1587]	@ zero_extendqisi2
	ldr	ip, [fp, #-552]
	ldr	r3, [fp, #-608]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #520
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1586]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1598]	@ zero_extendqisi2
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #516
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #508
	sub	r0, fp, #512
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #500
	sub	r0, fp, #504
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #492
	sub	r0, fp, #496
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #484
	sub	r0, fp, #488
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #476
	sub	r0, fp, #480
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #468
	sub	r0, fp, #472
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #460
	sub	r0, fp, #464
	ldr	r2, [fp, #-20]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-472]
	ldr	r3, [fp, #-460]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #456
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1584]	@ zero_extendqisi2
	ldr	ip, [fp, #-480]
	ldr	r3, [fp, #-468]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #452
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1583]	@ zero_extendqisi2
	ldr	ip, [fp, #-488]
	ldr	r3, [fp, #-476]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #448
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1582]	@ zero_extendqisi2
	ldr	ip, [fp, #-496]
	ldr	r3, [fp, #-484]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #444
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1581]	@ zero_extendqisi2
	ldr	ip, [fp, #-504]
	ldr	r3, [fp, #-492]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #440
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1580]	@ zero_extendqisi2
	ldr	ip, [fp, #-512]
	ldr	r3, [fp, #-500]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #436
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1579]	@ zero_extendqisi2
	ldr	r3, [fp, #-508]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #432
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-464]
	ldr	r3, [fp, #-544]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #428
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1577]	@ zero_extendqisi2
	ldr	ip, [fp, #-456]
	ldr	r3, [fp, #-540]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #424
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1576]	@ zero_extendqisi2
	ldr	ip, [fp, #-452]
	ldr	r3, [fp, #-536]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #420
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1575]	@ zero_extendqisi2
	ldr	ip, [fp, #-448]
	ldr	r3, [fp, #-532]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #416
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1574]	@ zero_extendqisi2
	ldr	ip, [fp, #-444]
	ldr	r3, [fp, #-528]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #412
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1573]	@ zero_extendqisi2
	ldr	ip, [fp, #-440]
	ldr	r3, [fp, #-524]
	sub	r1, fp, #1568
	sub	r1, r1, #4
	sub	r0, fp, #408
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1572]	@ zero_extendqisi2
	ldr	ip, [fp, #-436]
	ldr	r3, [fp, #-520]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #404
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1571]	@ zero_extendqisi2
	ldr	ip, [fp, #-432]
	ldr	r3, [fp, #-516]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #400
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-428]
	sub	r1, fp, #392
	sub	r0, fp, #396
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #384
	sub	r0, fp, #388
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #376
	sub	r0, fp, #380
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #368
	sub	r0, fp, #372
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-396]
	sub	r1, fp, #360
	sub	r0, fp, #364
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-360]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #356
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1569]	@ zero_extendqisi2
	ldr	ip, [fp, #-380]
	ldr	r3, [fp, #-368]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #352
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1568]	@ zero_extendqisi2
	ldr	ip, [fp, #-388]
	ldr	r3, [fp, #-376]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #348
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1567]	@ zero_extendqisi2
	ldr	r3, [fp, #-384]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #344
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-396]
	ldr	r3, [fp, #-428]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #340
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1565]	@ zero_extendqisi2
	ldr	r3, [fp, #-424]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #336
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1564]	@ zero_extendqisi2
	ldr	r3, [fp, #-420]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #332
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1563]	@ zero_extendqisi2
	ldr	ip, [fp, #-364]
	ldr	r3, [fp, #-416]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #328
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1562]	@ zero_extendqisi2
	ldr	ip, [fp, #-356]
	ldr	r3, [fp, #-412]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #324
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1561]	@ zero_extendqisi2
	ldr	ip, [fp, #-352]
	ldr	r3, [fp, #-408]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #320
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1560]	@ zero_extendqisi2
	ldr	ip, [fp, #-348]
	ldr	r3, [fp, #-404]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #316
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1559]	@ zero_extendqisi2
	ldr	ip, [fp, #-344]
	ldr	r3, [fp, #-400]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #312
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1558]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1570]	@ zero_extendqisi2
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #308
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #300
	sub	r0, fp, #304
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r0, fp, #296
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #284
	sub	r0, fp, #288
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #276
	sub	r0, fp, #280
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #268
	sub	r0, fp, #272
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #260
	sub	r0, fp, #264
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r3, [fp, #-1724]
	ldr	r3, [r3]
	sub	r1, fp, #252
	sub	r0, fp, #256
	ldr	r2, [fp, #-16]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-252]
	sub	r1, fp, #1552
	sub	r1, r1, #4
	sub	r0, fp, #248
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1556]	@ zero_extendqisi2
	ldr	ip, [fp, #-272]
	ldr	r3, [fp, #-260]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #244
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1555]	@ zero_extendqisi2
	ldr	ip, [fp, #-280]
	ldr	r3, [fp, #-268]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #240
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1554]	@ zero_extendqisi2
	ldr	ip, [fp, #-288]
	ldr	r3, [fp, #-276]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #236
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1553]	@ zero_extendqisi2
	ldr	ip, [fp, #-296]
	ldr	r3, [fp, #-284]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #232
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1552]	@ zero_extendqisi2
	ldr	ip, [fp, #-304]
	ldr	r3, [fp, #-292]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #228
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1551]	@ zero_extendqisi2
	ldr	r3, [fp, #-300]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #224
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-336]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #220
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1549]	@ zero_extendqisi2
	ldr	ip, [fp, #-248]
	ldr	r3, [fp, #-332]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #216
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1548]	@ zero_extendqisi2
	ldr	ip, [fp, #-244]
	ldr	r3, [fp, #-328]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #212
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1547]	@ zero_extendqisi2
	ldr	ip, [fp, #-240]
	ldr	r3, [fp, #-324]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #208
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1546]	@ zero_extendqisi2
	ldr	ip, [fp, #-236]
	ldr	r3, [fp, #-320]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #204
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1545]	@ zero_extendqisi2
	ldr	ip, [fp, #-232]
	ldr	r3, [fp, #-316]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #200
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1544]	@ zero_extendqisi2
	ldr	ip, [fp, #-228]
	ldr	r3, [fp, #-312]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #196
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1543]	@ zero_extendqisi2
	ldr	ip, [fp, #-224]
	ldr	r3, [fp, #-308]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #192
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-220]
	sub	r1, fp, #184
	sub	r0, fp, #188
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #176
	sub	r0, fp, #180
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #168
	sub	r0, fp, #172
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #160
	sub	r0, fp, #164
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-188]
	sub	r1, fp, #152
	sub	r0, fp, #156
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-152]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #148
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1541]	@ zero_extendqisi2
	ldr	ip, [fp, #-172]
	ldr	r3, [fp, #-160]
	sub	r1, fp, #1536
	sub	r1, r1, #4
	sub	r0, fp, #144
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1540]	@ zero_extendqisi2
	ldr	ip, [fp, #-180]
	ldr	r3, [fp, #-168]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #140
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1539]	@ zero_extendqisi2
	ldr	r3, [fp, #-176]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #136
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-220]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #132
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1537]	@ zero_extendqisi2
	ldr	r3, [fp, #-216]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #12
	sub	r0, fp, #128
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1536]	@ zero_extendqisi2
	ldr	r3, [fp, #-212]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #11
	sub	r0, fp, #124
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1535]	@ zero_extendqisi2
	ldr	ip, [fp, #-156]
	ldr	r3, [fp, #-208]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #10
	sub	r0, fp, #120
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1534]	@ zero_extendqisi2
	ldr	ip, [fp, #-148]
	ldr	r3, [fp, #-204]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #9
	sub	r0, fp, #116
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1533]	@ zero_extendqisi2
	ldr	ip, [fp, #-144]
	ldr	r3, [fp, #-200]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r0, fp, #112
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1532]	@ zero_extendqisi2
	ldr	ip, [fp, #-140]
	ldr	r3, [fp, #-196]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #7
	sub	r0, fp, #108
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1531]	@ zero_extendqisi2
	ldr	ip, [fp, #-136]
	ldr	r3, [fp, #-192]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #6
	sub	r0, fp, #104
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-1530]	@ zero_extendqisi2
	ldrb	r3, [fp, #-1542]	@ zero_extendqisi2
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #5
	sub	r0, fp, #100
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-128]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r0, fp, #96
	mov	r2, #1
	str	r2, [sp]
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1528]	@ zero_extendqisi2
	ldr	r3, [fp, #-124]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #3
	sub	r0, fp, #92
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1527]	@ zero_extendqisi2
	ldr	r3, [fp, #-120]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #2
	sub	r0, fp, #88
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1526]	@ zero_extendqisi2
	ldr	r3, [fp, #-116]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r1, r1, #1
	sub	r0, fp, #84
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1525]	@ zero_extendqisi2
	ldr	r3, [fp, #-112]
	sub	r1, fp, #1520
	sub	r1, r1, #4
	sub	r0, fp, #80
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1524]	@ zero_extendqisi2
	ldr	r3, [fp, #-108]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #15
	sub	r0, fp, #76
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1523]	@ zero_extendqisi2
	ldr	r3, [fp, #-104]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #14
	sub	r0, fp, #72
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-1522]	@ zero_extendqisi2
	ldr	r3, [fp, #-100]
	sub	r1, fp, #1504
	sub	r1, r1, #4
	sub	r1, r1, #13
	sub	r0, fp, #68
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-128]
	sub	r0, fp, #64
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-124]
	sub	r0, fp, #60
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-120]
	sub	r0, fp, #56
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-116]
	sub	r0, fp, #52
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-112]
	sub	r0, fp, #48
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-108]
	sub	r0, fp, #44
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-1521]	@ zero_extendqisi2
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-104]
	sub	r0, fp, #40
	bl	fiat_p224_cmovznz_u32
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-1720]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #4
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #8
	ldr	r2, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #12
	ldr	r2, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #16
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #20
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-1720]
	add	r3, r3, #24
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	nop
	ldr	r3, .L17
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L13
	bl	__stack_chk_fail
.L13:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	.LC1
	.size	fiat_p224_square, .-fiat_p224_square
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_add, %function
fiat_p224_add:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #136
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	str	r2, [fp, #-128]
	ldr	r3, .L21
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-124]
	ldr	r3, [r3]
	sub	r1, fp, #111
	sub	r0, fp, #96
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-111]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #4
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #110
	sub	r0, fp, #92
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-110]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #8
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #109
	sub	r0, fp, #88
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-109]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #12
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #108
	sub	r0, fp, #84
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-108]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #16
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #107
	sub	r0, fp, #80
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-107]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #20
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #106
	sub	r0, fp, #76
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-106]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	add	r3, r3, #24
	ldr	ip, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #105
	sub	r0, fp, #72
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-96]
	sub	r1, fp, #104
	sub	r0, fp, #68
	mov	r2, #1
	str	r2, [sp]
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-104]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	sub	r1, fp, #103
	sub	r0, fp, #64
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-103]	@ zero_extendqisi2
	ldr	r3, [fp, #-88]
	sub	r1, fp, #102
	sub	r0, fp, #60
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-102]	@ zero_extendqisi2
	ldr	r3, [fp, #-84]
	sub	r1, fp, #101
	sub	r0, fp, #56
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-101]	@ zero_extendqisi2
	ldr	r3, [fp, #-80]
	sub	r1, fp, #100
	sub	r0, fp, #52
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-100]	@ zero_extendqisi2
	ldr	r3, [fp, #-76]
	sub	r1, fp, #99
	sub	r0, fp, #48
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-99]	@ zero_extendqisi2
	ldr	r3, [fp, #-72]
	sub	r1, fp, #98
	sub	r0, fp, #44
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-98]	@ zero_extendqisi2
	ldrb	r3, [fp, #-105]	@ zero_extendqisi2
	mov	ip, r3
	sub	r1, fp, #97
	sub	r0, fp, #40
	mov	r3, #0
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-96]
	sub	r0, fp, #36
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-92]
	sub	r0, fp, #32
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-88]
	sub	r0, fp, #28
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-84]
	sub	r0, fp, #24
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-80]
	sub	r0, fp, #20
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-76]
	sub	r0, fp, #16
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-97]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-72]
	sub	r0, fp, #12
	bl	fiat_p224_cmovznz_u32
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-120]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #16
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #20
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #24
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L21
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L20
	bl	__stack_chk_fail
.L20:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L22:
	.align	2
.L21:
	.word	.LC2
	.size	fiat_p224_add, .-fiat_p224_add
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_sub, %function
fiat_p224_sub:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	str	r2, [fp, #-96]
	ldr	r3, .L25
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	sub	r1, fp, #82
	sub	r0, fp, #68
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-82]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #4
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #81
	sub	r0, fp, #64
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-81]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #8
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #80
	sub	r0, fp, #60
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-80]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #12
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #79
	sub	r0, fp, #56
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-79]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #16
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #78
	sub	r0, fp, #52
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-78]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #20
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #77
	sub	r0, fp, #48
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-77]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #24
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #76
	sub	r0, fp, #44
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-76]	@ zero_extendqisi2
	sub	r0, fp, #40
	mvn	r3, #0
	mov	r2, #0
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	and	r2, r3, #1
	ldr	r3, [fp, #-68]
	sub	r1, fp, #75
	sub	r0, fp, #36
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, [fp, #-64]
	sub	r1, fp, #74
	sub	r0, fp, #32
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-74]	@ zero_extendqisi2
	ldr	r3, [fp, #-60]
	sub	r1, fp, #73
	sub	r0, fp, #28
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-73]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-56]
	sub	r1, fp, #72
	sub	r0, fp, #24
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-72]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-52]
	sub	r1, fp, #71
	sub	r0, fp, #20
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-71]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-48]
	sub	r1, fp, #70
	sub	r0, fp, #16
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-70]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-44]
	sub	r1, fp, #69
	sub	r0, fp, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #16
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #20
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #24
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L25
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L24
	bl	__stack_chk_fail
.L24:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	.LC3
	.size	fiat_p224_sub, .-fiat_p224_sub
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_opp, %function
fiat_p224_opp:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	ldr	r3, .L29
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	sub	r1, fp, #82
	sub	r0, fp, #68
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-82]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #81
	sub	r0, fp, #64
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-81]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #80
	sub	r0, fp, #60
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-80]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #79
	sub	r0, fp, #56
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-79]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #78
	sub	r0, fp, #52
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-78]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #77
	sub	r0, fp, #48
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-77]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #76
	sub	r0, fp, #44
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-76]	@ zero_extendqisi2
	sub	r0, fp, #40
	mvn	r3, #0
	mov	r2, #0
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	and	r2, r3, #1
	ldr	r3, [fp, #-68]
	sub	r1, fp, #75
	sub	r0, fp, #36
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, [fp, #-64]
	sub	r1, fp, #74
	sub	r0, fp, #32
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-74]	@ zero_extendqisi2
	ldr	r3, [fp, #-60]
	sub	r1, fp, #73
	sub	r0, fp, #28
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-73]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-56]
	sub	r1, fp, #72
	sub	r0, fp, #24
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-72]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-52]
	sub	r1, fp, #71
	sub	r0, fp, #20
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-71]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-48]
	sub	r1, fp, #70
	sub	r0, fp, #16
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-70]	@ zero_extendqisi2
	ldr	ip, [fp, #-40]
	ldr	r3, [fp, #-44]
	sub	r1, fp, #69
	sub	r0, fp, #12
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #16
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #20
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #24
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L29
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L28
	bl	__stack_chk_fail
.L28:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L30:
	.align	2
.L29:
	.word	.LC4
	.size	fiat_p224_opp, .-fiat_p224_opp
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_from_montgomery, %function
fiat_p224_from_montgomery:
	@ args = 0, pretend = 0, frame = 1000
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1008
	str	r0, [fp, #-1000]
	str	r1, [fp, #-1004]
	ldr	r3, .L33
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1004]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	sub	r1, fp, #852
	sub	r0, fp, #856
	mvn	r3, #0
	ldr	r2, [fp, #-12]
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-856]
	sub	r1, fp, #844
	sub	r0, fp, #848
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-856]
	sub	r1, fp, #836
	sub	r0, fp, #840
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-856]
	sub	r1, fp, #828
	sub	r0, fp, #832
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-856]
	sub	r1, fp, #820
	sub	r0, fp, #824
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-832]
	ldr	r3, [fp, #-820]
	sub	r1, fp, #988
	sub	r1, r1, #2
	sub	r0, fp, #816
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-990]	@ zero_extendqisi2
	ldr	ip, [fp, #-840]
	ldr	r3, [fp, #-828]
	sub	r1, fp, #988
	sub	r1, r1, #1
	sub	r0, fp, #812
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-989]	@ zero_extendqisi2
	ldr	ip, [fp, #-848]
	ldr	r3, [fp, #-836]
	sub	r1, fp, #988
	sub	r0, fp, #808
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-856]
	sub	r1, fp, #984
	sub	r1, r1, #3
	sub	r0, fp, #804
	ldr	r3, [fp, #-12]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-987]	@ zero_extendqisi2
	sub	r1, fp, #984
	sub	r1, r1, #2
	sub	r0, fp, #800
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-800]
	and	r3, r3, #255
	sub	r1, fp, #984
	sub	r1, r1, #1
	sub	r0, fp, #796
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-796]
	sub	r1, fp, #788
	sub	r0, fp, #792
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-792]
	sub	r1, fp, #780
	sub	r0, fp, #784
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-792]
	sub	r1, fp, #772
	sub	r0, fp, #776
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-792]
	sub	r1, fp, #764
	sub	r0, fp, #768
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-792]
	sub	r1, fp, #756
	sub	r0, fp, #760
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-768]
	ldr	r3, [fp, #-756]
	sub	r1, fp, #984
	sub	r0, fp, #752
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-984]	@ zero_extendqisi2
	ldr	ip, [fp, #-776]
	ldr	r3, [fp, #-764]
	sub	r1, fp, #980
	sub	r1, r1, #3
	sub	r0, fp, #748
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-983]	@ zero_extendqisi2
	ldr	ip, [fp, #-784]
	ldr	r3, [fp, #-772]
	sub	r1, fp, #980
	sub	r1, r1, #2
	sub	r0, fp, #744
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-985]	@ zero_extendqisi2
	sub	r1, fp, #980
	sub	r1, r1, #1
	sub	r0, fp, #740
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-792]
	ldr	r3, [fp, #-796]
	sub	r1, fp, #980
	sub	r0, fp, #736
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-980]	@ zero_extendqisi2
	ldr	r3, [fp, #-740]
	and	r3, r3, #255
	sub	r1, fp, #976
	sub	r1, r1, #3
	sub	r0, fp, #732
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-979]	@ zero_extendqisi2
	ldr	r3, [fp, #-824]
	sub	r1, fp, #976
	sub	r1, r1, #2
	sub	r0, fp, #728
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-978]	@ zero_extendqisi2
	ldr	ip, [fp, #-760]
	ldr	r3, [fp, #-816]
	sub	r1, fp, #976
	sub	r1, r1, #1
	sub	r0, fp, #724
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-977]	@ zero_extendqisi2
	ldr	ip, [fp, #-752]
	ldr	r3, [fp, #-812]
	sub	r1, fp, #976
	sub	r0, fp, #720
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-976]	@ zero_extendqisi2
	ldr	ip, [fp, #-748]
	ldr	r3, [fp, #-808]
	sub	r1, fp, #972
	sub	r1, r1, #3
	sub	r0, fp, #716
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-988]	@ zero_extendqisi2
	ldr	r3, [fp, #-844]
	sub	r1, fp, #972
	sub	r1, r1, #2
	sub	r0, fp, #712
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-975]	@ zero_extendqisi2
	ldr	ip, [fp, #-744]
	ldr	r3, [fp, #-712]
	sub	r1, fp, #972
	sub	r1, r1, #1
	sub	r0, fp, #708
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-982]	@ zero_extendqisi2
	ldr	r3, [fp, #-780]
	sub	r1, fp, #972
	sub	r0, fp, #704
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-973]	@ zero_extendqisi2
	ldr	r3, [fp, #-704]
	sub	r1, fp, #968
	sub	r1, r1, #3
	sub	r0, fp, #700
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-732]
	sub	r1, fp, #968
	sub	r1, r1, #2
	sub	r0, fp, #696
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-970]	@ zero_extendqisi2
	ldr	r3, [fp, #-728]
	sub	r1, fp, #968
	sub	r1, r1, #1
	sub	r0, fp, #692
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-969]	@ zero_extendqisi2
	ldr	r3, [fp, #-724]
	sub	r1, fp, #968
	sub	r0, fp, #688
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-968]	@ zero_extendqisi2
	ldr	r3, [fp, #-720]
	sub	r1, fp, #964
	sub	r1, r1, #3
	sub	r0, fp, #684
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-967]	@ zero_extendqisi2
	ldr	r3, [fp, #-716]
	sub	r1, fp, #964
	sub	r1, r1, #2
	sub	r0, fp, #680
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-966]	@ zero_extendqisi2
	ldr	r3, [fp, #-708]
	sub	r1, fp, #964
	sub	r1, r1, #1
	sub	r0, fp, #676
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-965]	@ zero_extendqisi2
	ldr	r3, [fp, #-700]
	sub	r1, fp, #964
	sub	r0, fp, #672
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-971]	@ zero_extendqisi2
	sub	r1, fp, #960
	sub	r1, r1, #3
	sub	r0, fp, #668
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-964]	@ zero_extendqisi2
	ldr	r3, [fp, #-668]
	and	r3, r3, #255
	sub	r1, fp, #960
	sub	r1, r1, #2
	sub	r0, fp, #664
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-696]
	sub	r1, fp, #656
	sub	r0, fp, #660
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-660]
	sub	r1, fp, #648
	sub	r0, fp, #652
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-660]
	sub	r1, fp, #640
	sub	r0, fp, #644
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-660]
	sub	r1, fp, #632
	sub	r0, fp, #636
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-660]
	sub	r1, fp, #624
	sub	r0, fp, #628
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-636]
	ldr	r3, [fp, #-624]
	sub	r1, fp, #960
	sub	r1, r1, #1
	sub	r0, fp, #620
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-961]	@ zero_extendqisi2
	ldr	ip, [fp, #-644]
	ldr	r3, [fp, #-632]
	sub	r1, fp, #960
	sub	r0, fp, #616
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-960]	@ zero_extendqisi2
	ldr	ip, [fp, #-652]
	ldr	r3, [fp, #-640]
	sub	r1, fp, #956
	sub	r1, r1, #3
	sub	r0, fp, #612
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-660]
	ldr	r3, [fp, #-696]
	sub	r1, fp, #956
	sub	r1, r1, #2
	sub	r0, fp, #608
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-958]	@ zero_extendqisi2
	ldr	r3, [fp, #-692]
	sub	r1, fp, #956
	sub	r1, r1, #1
	sub	r0, fp, #604
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-957]	@ zero_extendqisi2
	ldr	r3, [fp, #-688]
	sub	r1, fp, #956
	sub	r0, fp, #600
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-956]	@ zero_extendqisi2
	ldr	ip, [fp, #-628]
	ldr	r3, [fp, #-684]
	sub	r1, fp, #952
	sub	r1, r1, #3
	sub	r0, fp, #596
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-955]	@ zero_extendqisi2
	ldr	ip, [fp, #-620]
	ldr	r3, [fp, #-680]
	sub	r1, fp, #952
	sub	r1, r1, #2
	sub	r0, fp, #592
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-954]	@ zero_extendqisi2
	ldr	ip, [fp, #-616]
	ldr	r3, [fp, #-676]
	sub	r1, fp, #952
	sub	r1, r1, #1
	sub	r0, fp, #588
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-953]	@ zero_extendqisi2
	ldr	ip, [fp, #-612]
	ldr	r3, [fp, #-672]
	sub	r1, fp, #952
	sub	r0, fp, #584
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-959]	@ zero_extendqisi2
	ldr	r3, [fp, #-648]
	sub	r1, fp, #948
	sub	r1, r1, #3
	sub	r0, fp, #580
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-952]	@ zero_extendqisi2
	ldr	ip, [fp, #-580]
	ldr	r3, [fp, #-664]
	sub	r1, fp, #948
	sub	r1, r1, #2
	sub	r0, fp, #576
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-604]
	sub	r1, fp, #948
	sub	r1, r1, #1
	sub	r0, fp, #572
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-949]	@ zero_extendqisi2
	ldr	r3, [fp, #-600]
	sub	r1, fp, #948
	sub	r0, fp, #568
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-948]	@ zero_extendqisi2
	ldr	r3, [fp, #-596]
	sub	r1, fp, #944
	sub	r1, r1, #3
	sub	r0, fp, #564
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-947]	@ zero_extendqisi2
	ldr	r3, [fp, #-592]
	sub	r1, fp, #944
	sub	r1, r1, #2
	sub	r0, fp, #560
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-946]	@ zero_extendqisi2
	ldr	r3, [fp, #-588]
	sub	r1, fp, #944
	sub	r1, r1, #1
	sub	r0, fp, #556
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-945]	@ zero_extendqisi2
	ldr	r3, [fp, #-584]
	sub	r1, fp, #944
	sub	r0, fp, #552
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-944]	@ zero_extendqisi2
	ldr	r3, [fp, #-576]
	sub	r1, fp, #940
	sub	r1, r1, #3
	sub	r0, fp, #548
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-950]	@ zero_extendqisi2
	ldrb	r3, [fp, #-962]	@ zero_extendqisi2
	sub	r1, fp, #940
	sub	r1, r1, #2
	sub	r0, fp, #544
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-943]	@ zero_extendqisi2
	ldr	r3, [fp, #-544]
	and	r3, r3, #255
	sub	r1, fp, #940
	sub	r1, r1, #1
	sub	r0, fp, #540
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-572]
	sub	r1, fp, #532
	sub	r0, fp, #536
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-536]
	sub	r1, fp, #524
	sub	r0, fp, #528
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-536]
	sub	r1, fp, #516
	sub	r0, fp, #520
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-536]
	sub	r1, fp, #508
	sub	r0, fp, #512
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-536]
	sub	r1, fp, #500
	sub	r0, fp, #504
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-512]
	ldr	r3, [fp, #-500]
	sub	r1, fp, #940
	sub	r0, fp, #496
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-940]	@ zero_extendqisi2
	ldr	ip, [fp, #-520]
	ldr	r3, [fp, #-508]
	sub	r1, fp, #936
	sub	r1, r1, #3
	sub	r0, fp, #492
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-939]	@ zero_extendqisi2
	ldr	ip, [fp, #-528]
	ldr	r3, [fp, #-516]
	sub	r1, fp, #936
	sub	r1, r1, #2
	sub	r0, fp, #488
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-536]
	ldr	r3, [fp, #-572]
	sub	r1, fp, #936
	sub	r1, r1, #1
	sub	r0, fp, #484
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-937]	@ zero_extendqisi2
	ldr	r3, [fp, #-568]
	sub	r1, fp, #936
	sub	r0, fp, #480
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-936]	@ zero_extendqisi2
	ldr	r3, [fp, #-564]
	sub	r1, fp, #932
	sub	r1, r1, #3
	sub	r0, fp, #476
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-935]	@ zero_extendqisi2
	ldr	ip, [fp, #-504]
	ldr	r3, [fp, #-560]
	sub	r1, fp, #932
	sub	r1, r1, #2
	sub	r0, fp, #472
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-934]	@ zero_extendqisi2
	ldr	ip, [fp, #-496]
	ldr	r3, [fp, #-556]
	sub	r1, fp, #932
	sub	r1, r1, #1
	sub	r0, fp, #468
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-933]	@ zero_extendqisi2
	ldr	ip, [fp, #-492]
	ldr	r3, [fp, #-552]
	sub	r1, fp, #932
	sub	r0, fp, #464
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-932]	@ zero_extendqisi2
	ldr	ip, [fp, #-488]
	ldr	r3, [fp, #-548]
	sub	r1, fp, #928
	sub	r1, r1, #3
	sub	r0, fp, #460
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-938]	@ zero_extendqisi2
	ldr	r3, [fp, #-524]
	sub	r1, fp, #928
	sub	r1, r1, #2
	sub	r0, fp, #456
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-931]	@ zero_extendqisi2
	ldr	ip, [fp, #-456]
	ldr	r3, [fp, #-540]
	sub	r1, fp, #928
	sub	r1, r1, #1
	sub	r0, fp, #452
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-480]
	sub	r1, fp, #928
	sub	r0, fp, #448
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-928]	@ zero_extendqisi2
	ldr	r3, [fp, #-476]
	sub	r1, fp, #924
	sub	r1, r1, #3
	sub	r0, fp, #444
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-927]	@ zero_extendqisi2
	ldr	r3, [fp, #-472]
	sub	r1, fp, #924
	sub	r1, r1, #2
	sub	r0, fp, #440
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-926]	@ zero_extendqisi2
	ldr	r3, [fp, #-468]
	sub	r1, fp, #924
	sub	r1, r1, #1
	sub	r0, fp, #436
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-925]	@ zero_extendqisi2
	ldr	r3, [fp, #-464]
	sub	r1, fp, #924
	sub	r0, fp, #432
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-924]	@ zero_extendqisi2
	ldr	r3, [fp, #-460]
	sub	r1, fp, #920
	sub	r1, r1, #3
	sub	r0, fp, #428
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-923]	@ zero_extendqisi2
	ldr	r3, [fp, #-452]
	sub	r1, fp, #920
	sub	r1, r1, #2
	sub	r0, fp, #424
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-929]	@ zero_extendqisi2
	ldrb	r3, [fp, #-941]	@ zero_extendqisi2
	sub	r1, fp, #920
	sub	r1, r1, #1
	sub	r0, fp, #420
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-922]	@ zero_extendqisi2
	ldr	r3, [fp, #-420]
	and	r3, r3, #255
	sub	r1, fp, #920
	sub	r0, fp, #416
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-448]
	sub	r1, fp, #408
	sub	r0, fp, #412
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-412]
	sub	r1, fp, #400
	sub	r0, fp, #404
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-412]
	sub	r1, fp, #392
	sub	r0, fp, #396
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-412]
	sub	r1, fp, #384
	sub	r0, fp, #388
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-412]
	sub	r1, fp, #376
	sub	r0, fp, #380
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-376]
	sub	r1, fp, #916
	sub	r1, r1, #3
	sub	r0, fp, #372
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-919]	@ zero_extendqisi2
	ldr	ip, [fp, #-396]
	ldr	r3, [fp, #-384]
	sub	r1, fp, #916
	sub	r1, r1, #2
	sub	r0, fp, #368
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-918]	@ zero_extendqisi2
	ldr	ip, [fp, #-404]
	ldr	r3, [fp, #-392]
	sub	r1, fp, #916
	sub	r1, r1, #1
	sub	r0, fp, #364
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-412]
	ldr	r3, [fp, #-448]
	sub	r1, fp, #916
	sub	r0, fp, #360
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-916]	@ zero_extendqisi2
	ldr	r3, [fp, #-444]
	sub	r1, fp, #912
	sub	r1, r1, #3
	sub	r0, fp, #356
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-915]	@ zero_extendqisi2
	ldr	r3, [fp, #-440]
	sub	r1, fp, #912
	sub	r1, r1, #2
	sub	r0, fp, #352
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-914]	@ zero_extendqisi2
	ldr	ip, [fp, #-380]
	ldr	r3, [fp, #-436]
	sub	r1, fp, #912
	sub	r1, r1, #1
	sub	r0, fp, #348
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-913]	@ zero_extendqisi2
	ldr	ip, [fp, #-372]
	ldr	r3, [fp, #-432]
	sub	r1, fp, #912
	sub	r0, fp, #344
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-912]	@ zero_extendqisi2
	ldr	ip, [fp, #-368]
	ldr	r3, [fp, #-428]
	sub	r1, fp, #908
	sub	r1, r1, #3
	sub	r0, fp, #340
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-911]	@ zero_extendqisi2
	ldr	ip, [fp, #-364]
	ldr	r3, [fp, #-424]
	sub	r1, fp, #908
	sub	r1, r1, #2
	sub	r0, fp, #336
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-917]	@ zero_extendqisi2
	ldr	r3, [fp, #-400]
	sub	r1, fp, #908
	sub	r1, r1, #1
	sub	r0, fp, #332
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-910]	@ zero_extendqisi2
	ldr	ip, [fp, #-332]
	ldr	r3, [fp, #-416]
	sub	r1, fp, #908
	sub	r0, fp, #328
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-356]
	sub	r1, fp, #904
	sub	r1, r1, #3
	sub	r0, fp, #324
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-907]	@ zero_extendqisi2
	ldr	r3, [fp, #-352]
	sub	r1, fp, #904
	sub	r1, r1, #2
	sub	r0, fp, #320
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-906]	@ zero_extendqisi2
	ldr	r3, [fp, #-348]
	sub	r1, fp, #904
	sub	r1, r1, #1
	sub	r0, fp, #316
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-905]	@ zero_extendqisi2
	ldr	r3, [fp, #-344]
	sub	r1, fp, #904
	sub	r0, fp, #312
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-904]	@ zero_extendqisi2
	ldr	r3, [fp, #-340]
	sub	r1, fp, #900
	sub	r1, r1, #3
	sub	r0, fp, #308
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-903]	@ zero_extendqisi2
	ldr	r3, [fp, #-336]
	sub	r1, fp, #900
	sub	r1, r1, #2
	sub	r0, fp, #304
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-902]	@ zero_extendqisi2
	ldr	r3, [fp, #-328]
	sub	r1, fp, #900
	sub	r1, r1, #1
	sub	r0, fp, #300
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-908]	@ zero_extendqisi2
	ldrb	r3, [fp, #-920]	@ zero_extendqisi2
	sub	r1, fp, #900
	sub	r0, fp, #296
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-901]	@ zero_extendqisi2
	ldr	r3, [fp, #-296]
	and	r3, r3, #255
	sub	r1, fp, #896
	sub	r1, r1, #3
	sub	r0, fp, #292
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-324]
	sub	r1, fp, #284
	sub	r0, fp, #288
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-288]
	sub	r1, fp, #276
	sub	r0, fp, #280
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-288]
	sub	r1, fp, #268
	sub	r0, fp, #272
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-288]
	sub	r1, fp, #260
	sub	r0, fp, #264
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-288]
	sub	r1, fp, #252
	sub	r0, fp, #256
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-252]
	sub	r1, fp, #896
	sub	r1, r1, #2
	sub	r0, fp, #248
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-898]	@ zero_extendqisi2
	ldr	ip, [fp, #-272]
	ldr	r3, [fp, #-260]
	sub	r1, fp, #896
	sub	r1, r1, #1
	sub	r0, fp, #244
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-897]	@ zero_extendqisi2
	ldr	ip, [fp, #-280]
	ldr	r3, [fp, #-268]
	sub	r1, fp, #896
	sub	r0, fp, #240
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-288]
	ldr	r3, [fp, #-324]
	sub	r1, fp, #892
	sub	r1, r1, #3
	sub	r0, fp, #236
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-895]	@ zero_extendqisi2
	ldr	r3, [fp, #-320]
	sub	r1, fp, #892
	sub	r1, r1, #2
	sub	r0, fp, #232
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-894]	@ zero_extendqisi2
	ldr	r3, [fp, #-316]
	sub	r1, fp, #892
	sub	r1, r1, #1
	sub	r0, fp, #228
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-893]	@ zero_extendqisi2
	ldr	ip, [fp, #-256]
	ldr	r3, [fp, #-312]
	sub	r1, fp, #892
	sub	r0, fp, #224
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-892]	@ zero_extendqisi2
	ldr	ip, [fp, #-248]
	ldr	r3, [fp, #-308]
	sub	r1, fp, #888
	sub	r1, r1, #3
	sub	r0, fp, #220
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-891]	@ zero_extendqisi2
	ldr	ip, [fp, #-244]
	ldr	r3, [fp, #-304]
	sub	r1, fp, #888
	sub	r1, r1, #2
	sub	r0, fp, #216
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-890]	@ zero_extendqisi2
	ldr	ip, [fp, #-240]
	ldr	r3, [fp, #-300]
	sub	r1, fp, #888
	sub	r1, r1, #1
	sub	r0, fp, #212
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-896]	@ zero_extendqisi2
	ldr	r3, [fp, #-276]
	sub	r1, fp, #888
	sub	r0, fp, #208
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	b	.L34
.L35:
	.align	2
.L33:
	.word	.LC5
	.word	.LC5
.L34:
	ldrb	r2, [fp, #-889]	@ zero_extendqisi2
	ldr	ip, [fp, #-208]
	ldr	r3, [fp, #-292]
	sub	r1, fp, #884
	sub	r1, r1, #3
	sub	r0, fp, #204
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-1004]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-232]
	sub	r1, fp, #884
	sub	r1, r1, #2
	sub	r0, fp, #200
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-886]	@ zero_extendqisi2
	ldr	r3, [fp, #-228]
	sub	r1, fp, #884
	sub	r1, r1, #1
	sub	r0, fp, #196
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-885]	@ zero_extendqisi2
	ldr	r3, [fp, #-224]
	sub	r1, fp, #884
	sub	r0, fp, #192
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-884]	@ zero_extendqisi2
	ldr	r3, [fp, #-220]
	sub	r1, fp, #880
	sub	r1, r1, #3
	sub	r0, fp, #188
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-883]	@ zero_extendqisi2
	ldr	r3, [fp, #-216]
	sub	r1, fp, #880
	sub	r1, r1, #2
	sub	r0, fp, #184
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-882]	@ zero_extendqisi2
	ldr	r3, [fp, #-212]
	sub	r1, fp, #880
	sub	r1, r1, #1
	sub	r0, fp, #180
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-881]	@ zero_extendqisi2
	ldr	r3, [fp, #-204]
	sub	r1, fp, #880
	sub	r0, fp, #176
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-887]	@ zero_extendqisi2
	ldrb	r3, [fp, #-899]	@ zero_extendqisi2
	sub	r1, fp, #876
	sub	r1, r1, #3
	sub	r0, fp, #172
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-880]	@ zero_extendqisi2
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	sub	r1, fp, #876
	sub	r1, r1, #2
	sub	r0, fp, #168
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-200]
	sub	r1, fp, #160
	sub	r0, fp, #164
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	sub	r1, fp, #152
	sub	r0, fp, #156
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	sub	r1, fp, #144
	sub	r0, fp, #148
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	sub	r1, fp, #136
	sub	r0, fp, #140
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-164]
	sub	r1, fp, #128
	sub	r0, fp, #132
	mvn	r3, #0
	bl	fiat_p224_mulx_u32
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-128]
	sub	r1, fp, #876
	sub	r1, r1, #1
	sub	r0, fp, #124
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-877]	@ zero_extendqisi2
	ldr	ip, [fp, #-148]
	ldr	r3, [fp, #-136]
	sub	r1, fp, #876
	sub	r0, fp, #120
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-876]	@ zero_extendqisi2
	ldr	ip, [fp, #-156]
	ldr	r3, [fp, #-144]
	sub	r1, fp, #872
	sub	r1, r1, #3
	sub	r0, fp, #116
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-200]
	sub	r1, fp, #872
	sub	r1, r1, #2
	sub	r0, fp, #112
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-874]	@ zero_extendqisi2
	ldr	r3, [fp, #-196]
	sub	r1, fp, #872
	sub	r1, r1, #1
	sub	r0, fp, #108
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-873]	@ zero_extendqisi2
	ldr	r3, [fp, #-192]
	sub	r1, fp, #872
	sub	r0, fp, #104
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-872]	@ zero_extendqisi2
	ldr	ip, [fp, #-132]
	ldr	r3, [fp, #-188]
	sub	r1, fp, #868
	sub	r1, r1, #3
	sub	r0, fp, #100
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-871]	@ zero_extendqisi2
	ldr	ip, [fp, #-124]
	ldr	r3, [fp, #-184]
	sub	r1, fp, #868
	sub	r1, r1, #2
	sub	r0, fp, #96
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-870]	@ zero_extendqisi2
	ldr	ip, [fp, #-120]
	ldr	r3, [fp, #-180]
	sub	r1, fp, #868
	sub	r1, r1, #1
	sub	r0, fp, #92
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-869]	@ zero_extendqisi2
	ldr	ip, [fp, #-116]
	ldr	r3, [fp, #-176]
	sub	r1, fp, #868
	sub	r0, fp, #88
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-875]	@ zero_extendqisi2
	ldr	r3, [fp, #-152]
	sub	r1, fp, #864
	sub	r1, r1, #3
	sub	r0, fp, #84
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-868]	@ zero_extendqisi2
	ldr	ip, [fp, #-84]
	ldr	r3, [fp, #-168]
	sub	r1, fp, #864
	sub	r1, r1, #2
	sub	r0, fp, #80
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_addcarryx_u32
	ldr	r3, [fp, #-108]
	sub	r1, fp, #864
	sub	r1, r1, #1
	sub	r0, fp, #76
	mov	r2, #1
	str	r2, [sp]
	mov	r2, #0
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-865]	@ zero_extendqisi2
	ldr	r3, [fp, #-104]
	sub	r1, fp, #864
	sub	r0, fp, #72
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-864]	@ zero_extendqisi2
	ldr	r3, [fp, #-100]
	sub	r1, fp, #860
	sub	r1, r1, #3
	sub	r0, fp, #68
	mov	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-863]	@ zero_extendqisi2
	ldr	r3, [fp, #-96]
	sub	r1, fp, #860
	sub	r1, r1, #2
	sub	r0, fp, #64
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-862]	@ zero_extendqisi2
	ldr	r3, [fp, #-92]
	sub	r1, fp, #860
	sub	r1, r1, #1
	sub	r0, fp, #60
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-861]	@ zero_extendqisi2
	ldr	r3, [fp, #-88]
	sub	r1, fp, #860
	sub	r0, fp, #56
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-860]	@ zero_extendqisi2
	ldr	r3, [fp, #-80]
	sub	r1, fp, #856
	sub	r1, r1, #3
	sub	r0, fp, #52
	mvn	ip, #0
	str	ip, [sp]
	bl	fiat_p224_subborrowx_u32
	ldrb	r2, [fp, #-866]	@ zero_extendqisi2
	ldrb	r3, [fp, #-878]	@ zero_extendqisi2
	sub	r1, fp, #856
	sub	r1, r1, #2
	sub	r0, fp, #48
	str	r3, [sp]
	mov	r3, #0
	bl	fiat_p224_addcarryx_u32
	ldrb	r2, [fp, #-859]	@ zero_extendqisi2
	ldr	r3, [fp, #-48]
	and	r3, r3, #255
	mov	ip, r3
	sub	r1, fp, #856
	sub	r1, r1, #1
	sub	r0, fp, #44
	mov	r3, #0
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_p224_subborrowx_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-108]
	sub	r0, fp, #40
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-104]
	sub	r0, fp, #36
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-100]
	sub	r0, fp, #32
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-96]
	sub	r0, fp, #28
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-92]
	sub	r0, fp, #24
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-88]
	sub	r0, fp, #20
	bl	fiat_p224_cmovznz_u32
	ldrb	r1, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-80]
	sub	r0, fp, #16
	bl	fiat_p224_cmovznz_u32
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-1000]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #4
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #8
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #12
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #16
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #20
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #24
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	nop
	ldr	r3, .L33+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L32
	bl	__stack_chk_fail
.L32:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fiat_p224_from_montgomery, .-fiat_p224_from_montgomery
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_nonzero, %function
fiat_p224_nonzero:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	ldr	r0, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #12
	ldr	ip, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldr	lr, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #20
	ldr	r4, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #24
	ldr	r3, [r3]
	orr	r3, r4, r3
	orr	r3, lr, r3
	orr	r3, ip, r3
	orr	r3, r0, r3
	orr	r3, r1, r3
	orr	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fiat_p224_nonzero, .-fiat_p224_nonzero
	.section	.rodata
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_selectznz, %function
fiat_p224_selectznz:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	mov	r3, r1
	strb	r3, [fp, #-41]
	ldr	r3, .L39
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #36
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #32
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #28
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #24
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #20
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #16
	bl	fiat_p224_cmovznz_u32
	ldr	r3, [fp, #-48]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r3, [r3]
	ldrb	r1, [fp, #-41]	@ zero_extendqisi2
	sub	r0, fp, #12
	bl	fiat_p224_cmovznz_u32
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #16
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #20
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #24
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L39
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L38
	bl	__stack_chk_fail
.L38:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L40:
	.align	2
.L39:
	.word	.LC6
	.size	fiat_p224_selectznz, .-fiat_p224_selectznz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_to_bytes, %function
fiat_p224_to_bytes:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #164
	str	r0, [fp, #-160]
	str	r1, [fp, #-164]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	lsr	r3, r3, #8
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	strb	r3, [fp, #-152]
	ldr	r3, [fp, #-84]
	lsr	r3, r3, #8
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-84]
	strb	r3, [fp, #-151]
	ldr	r3, [fp, #-80]
	lsr	r3, r3, #8
	strb	r3, [fp, #-150]
	ldr	r3, [fp, #-80]
	strb	r3, [fp, #-149]
	ldrb	r3, [fp, #-150]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-148]
	ldrb	r3, [fp, #-150]
	strb	r3, [fp, #-147]
	ldrb	r3, [fp, #-148]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	strb	r3, [fp, #-146]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #8
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-72]
	strb	r3, [fp, #-145]
	ldr	r3, [fp, #-68]
	lsr	r3, r3, #8
	strb	r3, [fp, #-144]
	ldr	r3, [fp, #-68]
	strb	r3, [fp, #-143]
	ldrb	r3, [fp, #-144]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-142]
	ldrb	r3, [fp, #-144]
	strb	r3, [fp, #-141]
	ldrb	r3, [fp, #-142]	@ zero_extendqisi2
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	lsr	r3, r3, #8
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	strb	r3, [fp, #-140]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	strb	r3, [fp, #-139]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	strb	r3, [fp, #-138]
	ldr	r3, [fp, #-56]
	strb	r3, [fp, #-137]
	ldrb	r3, [fp, #-138]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-136]
	ldrb	r3, [fp, #-138]
	strb	r3, [fp, #-135]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	lsr	r3, r3, #8
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-52]
	strb	r3, [fp, #-134]
	ldr	r3, [fp, #-48]
	lsr	r3, r3, #8
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	strb	r3, [fp, #-133]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	strb	r3, [fp, #-132]
	ldr	r3, [fp, #-44]
	strb	r3, [fp, #-131]
	ldrb	r3, [fp, #-132]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-130]
	ldrb	r3, [fp, #-132]
	strb	r3, [fp, #-129]
	ldrb	r3, [fp, #-130]	@ zero_extendqisi2
	ldr	r2, [fp, #-104]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	lsr	r3, r3, #8
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	strb	r3, [fp, #-128]
	ldr	r3, [fp, #-36]
	lsr	r3, r3, #8
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	strb	r3, [fp, #-127]
	ldr	r3, [fp, #-32]
	lsr	r3, r3, #8
	strb	r3, [fp, #-126]
	ldr	r3, [fp, #-32]
	strb	r3, [fp, #-125]
	ldrb	r3, [fp, #-126]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-124]
	ldrb	r3, [fp, #-126]
	strb	r3, [fp, #-123]
	ldrb	r3, [fp, #-124]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	strb	r3, [fp, #-122]
	ldr	r3, [fp, #-24]
	lsr	r3, r3, #8
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	strb	r3, [fp, #-121]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #8
	strb	r3, [fp, #-120]
	ldr	r3, [fp, #-20]
	strb	r3, [fp, #-119]
	ldrb	r3, [fp, #-120]	@ zero_extendqisi2
	asr	r3, r3, #8
	strb	r3, [fp, #-118]
	ldrb	r3, [fp, #-120]
	strb	r3, [fp, #-117]
	ldrb	r3, [fp, #-118]	@ zero_extendqisi2
	ldr	r2, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	strb	r3, [fp, #-116]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	strb	r3, [fp, #-115]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	strb	r3, [fp, #-114]
	ldr	r3, [fp, #-8]
	strb	r3, [fp, #-113]
	ldr	r3, [fp, #-160]
	ldrb	r2, [fp, #-152]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #1
	ldrb	r2, [fp, #-151]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #2
	ldrb	r2, [fp, #-149]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #3
	ldrb	r2, [fp, #-147]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #4
	ldrb	r2, [fp, #-146]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #5
	ldrb	r2, [fp, #-145]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #6
	ldrb	r2, [fp, #-143]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #7
	ldrb	r2, [fp, #-141]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #8
	ldrb	r2, [fp, #-140]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #9
	ldrb	r2, [fp, #-139]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #10
	ldrb	r2, [fp, #-137]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #11
	ldrb	r2, [fp, #-135]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #12
	ldrb	r2, [fp, #-134]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #13
	ldrb	r2, [fp, #-133]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #14
	ldrb	r2, [fp, #-131]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #15
	ldrb	r2, [fp, #-129]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #16
	ldrb	r2, [fp, #-128]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #17
	ldrb	r2, [fp, #-127]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #18
	ldrb	r2, [fp, #-125]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #19
	ldrb	r2, [fp, #-123]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #20
	ldrb	r2, [fp, #-122]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #21
	ldrb	r2, [fp, #-121]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #22
	ldrb	r2, [fp, #-119]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #23
	ldrb	r2, [fp, #-117]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #24
	ldrb	r2, [fp, #-116]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #25
	ldrb	r2, [fp, #-115]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #26
	ldrb	r2, [fp, #-113]
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #27
	ldrb	r2, [fp, #-114]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_p224_to_bytes, .-fiat_p224_to_bytes
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_p224_from_bytes, %function
fiat_p224_from_bytes:
	@ args = 0, pretend = 0, frame = 184
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #188
	str	r0, [fp, #-184]
	str	r1, [fp, #-188]
	ldr	r3, [fp, #-188]
	add	r3, r3, #27
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-188]
	add	r3, r3, #26
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-188]
	add	r3, r3, #25
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #24]
	strb	r3, [fp, #-177]
	ldr	r3, [fp, #-188]
	add	r3, r3, #23
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-188]
	add	r3, r3, #22
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-188]
	add	r3, r3, #21
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #20]
	strb	r3, [fp, #-176]
	ldr	r3, [fp, #-188]
	add	r3, r3, #19
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-188]
	add	r3, r3, #18
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-188]
	add	r3, r3, #17
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #16]
	strb	r3, [fp, #-175]
	ldr	r3, [fp, #-188]
	add	r3, r3, #15
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-188]
	add	r3, r3, #14
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-188]
	add	r3, r3, #13
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #12]
	strb	r3, [fp, #-174]
	ldr	r3, [fp, #-188]
	add	r3, r3, #11
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-188]
	add	r3, r3, #10
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-188]
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #8]
	strb	r3, [fp, #-173]
	ldr	r3, [fp, #-188]
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-188]
	add	r3, r3, #6
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-188]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3, #4]
	strb	r3, [fp, #-172]
	ldr	r3, [fp, #-188]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-188]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-188]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-188]
	ldrb	r3, [r3]
	strb	r3, [fp, #-171]
	ldrb	r2, [fp, #-171]	@ zero_extendqisi2
	ldr	r1, [fp, #-88]
	ldr	r3, [fp, #-92]
	add	r1, r1, r3
	ldr	r3, [fp, #-84]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-170]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
	ldrb	r2, [fp, #-177]	@ zero_extendqisi2
	ldr	r1, [fp, #-160]
	ldr	r3, [fp, #-164]
	add	r1, r1, r3
	ldr	r3, [fp, #-156]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldrb	r2, [fp, #-176]	@ zero_extendqisi2
	ldr	r1, [fp, #-148]
	ldr	r3, [fp, #-152]
	add	r1, r1, r3
	ldr	r3, [fp, #-144]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldrb	r2, [fp, #-175]	@ zero_extendqisi2
	ldr	r1, [fp, #-136]
	ldr	r3, [fp, #-140]
	add	r1, r1, r3
	ldr	r3, [fp, #-132]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldrb	r2, [fp, #-174]	@ zero_extendqisi2
	ldr	r1, [fp, #-124]
	ldr	r3, [fp, #-128]
	add	r1, r1, r3
	ldr	r3, [fp, #-120]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldrb	r2, [fp, #-173]	@ zero_extendqisi2
	ldr	r1, [fp, #-112]
	ldr	r3, [fp, #-116]
	add	r1, r1, r3
	ldr	r3, [fp, #-108]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldrb	r2, [fp, #-172]	@ zero_extendqisi2
	ldr	r1, [fp, #-100]
	ldr	r3, [fp, #-104]
	add	r1, r1, r3
	ldr	r3, [fp, #-96]
	add	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldrb	r3, [fp, #-170]	@ zero_extendqisi2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-169]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-169]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-168]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldrb	r3, [fp, #-168]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-167]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldrb	r3, [fp, #-167]	@ zero_extendqisi2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-166]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-166]	@ zero_extendqisi2
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	strb	r3, [fp, #-165]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldrb	r3, [fp, #-165]	@ zero_extendqisi2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-184]
	ldr	r2, [fp, #-76]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #16
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #20
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #24
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_p224_from_bytes, .-fiat_p224_from_bytes
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
