	.file	"66396.c"
	.intel_syntax noprefix
	.text
	.type	fiat_25519_value_barrier_u32, @function
fiat_25519_value_barrier_u32:
.LFB0:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	fiat_25519_value_barrier_u32, .-fiat_25519_value_barrier_u32
	.type	fiat_25519_addcarryx_u26, @function
fiat_25519_addcarryx_u26:
.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
	movzx	edx, BYTE PTR -36[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 67108863
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	shr	eax, 26
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	movzx	edx, BYTE PTR -9[rbp]
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	fiat_25519_addcarryx_u26, .-fiat_25519_addcarryx_u26
	.type	fiat_25519_subborrowx_u26, @function
fiat_25519_subborrowx_u26:
.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	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]
	sub	eax, edx
	mov	edx, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	sar	eax, 26
	mov	BYTE PTR -9[rbp], al
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 67108863
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, BYTE PTR -9[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
.LFE2:
	.size	fiat_25519_subborrowx_u26, .-fiat_25519_subborrowx_u26
	.type	fiat_25519_addcarryx_u25, @function
fiat_25519_addcarryx_u25:
.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	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	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 33554431
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	shr	eax, 25
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	movzx	edx, BYTE PTR -9[rbp]
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	fiat_25519_addcarryx_u25, .-fiat_25519_addcarryx_u25
	.type	fiat_25519_subborrowx_u25, @function
fiat_25519_subborrowx_u25:
.LFB4:
	.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]
	sub	eax, edx
	mov	edx, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	sar	eax, 25
	mov	BYTE PTR -9[rbp], al
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 33554431
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, BYTE PTR -9[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
.LFE4:
	.size	fiat_25519_subborrowx_u25, .-fiat_25519_subborrowx_u25
	.type	fiat_25519_cmovznz_u32, @function
fiat_25519_cmovznz_u32:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -32[rbp], rdi
	mov	eax, esi
	mov	DWORD PTR -40[rbp], edx
	mov	DWORD PTR -44[rbp], ecx
	mov	BYTE PTR -36[rbp], al
	cmp	BYTE PTR -36[rbp], 0
	setne	al
	mov	BYTE PTR -17[rbp], al
	movzx	eax, BYTE PTR -17[rbp]
	neg	eax
	movsx	eax, al
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	fiat_25519_value_barrier_u32
	and	eax, DWORD PTR -44[rbp]
	mov	ebx, eax
	mov	eax, DWORD PTR -16[rbp]
	not	eax
	mov	edi, eax
	call	fiat_25519_value_barrier_u32
	and	eax, DWORD PTR -40[rbp]
	or	eax, ebx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	fiat_25519_cmovznz_u32, .-fiat_25519_cmovznz_u32
	.type	fiat_25519_carry_mul, @function
fiat_25519_carry_mul:
.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, 1024
	mov	QWORD PTR -1128[rbp], rdi
	mov	QWORD PTR -1136[rbp], rsi
	mov	QWORD PTR -1144[rbp], rdx
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -1032[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -1016[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -1008[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -1000[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -944[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -928[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -912[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	imul	rax, rcx
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 38
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -256[rbp], rax
	mov	rdx, QWORD PTR -920[rbp]
	mov	rax, QWORD PTR -984[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -864[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -816[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -776[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -744[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -720[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -704[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -696[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	shr	rax, 26
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1108[rbp], eax
	mov	rdx, QWORD PTR -680[rbp]
	mov	rax, QWORD PTR -688[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -664[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -640[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -608[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -568[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -520[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -464[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR -1048[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -656[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -632[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -600[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -560[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -512[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -456[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	QWORD PTR -224[rbp], rax
	mov	rdx, QWORD PTR -976[rbp]
	mov	rax, QWORD PTR -1040[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -648[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -624[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -592[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -552[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -504[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -448[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -384[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rdx, QWORD PTR -968[rbp]
	mov	rax, QWORD PTR -1032[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -912[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -616[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -584[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -544[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -496[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -440[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -376[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1024[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -904[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -856[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -576[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -536[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -488[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -432[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -368[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	mov	rdx, QWORD PTR -952[rbp]
	mov	rax, QWORD PTR -1016[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -896[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -848[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -808[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -528[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -480[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -424[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -360[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -944[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -888[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -840[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -800[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -768[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -472[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -352[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -936[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -880[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -832[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -792[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -760[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -736[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -408[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -344[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR -992[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -872[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -824[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -784[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -752[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -728[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -712[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -336[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	shr	rax, 25
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1104[rbp], eax
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	shr	rax, 26
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1100[rbp], eax
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 25
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1096[rbp], eax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	shr	rax, 26
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1092[rbp], eax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	shr	rax, 25
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1088[rbp], eax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	shr	rax, 26
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1084[rbp], eax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	shr	rax, 25
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1080[rbp], eax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	shr	rax, 26
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1076[rbp], eax
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 25
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1072[rbp], eax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	edx, DWORD PTR -1108[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 26
	mov	DWORD PTR -1068[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 67108863
	mov	DWORD PTR -1064[rbp], eax
	mov	edx, DWORD PTR -1068[rbp]
	mov	eax, DWORD PTR -1104[rbp]
	add	eax, edx
	mov	DWORD PTR -1060[rbp], eax
	mov	eax, DWORD PTR -1060[rbp]
	shr	eax, 25
	mov	BYTE PTR -1109[rbp], al
	mov	eax, DWORD PTR -1060[rbp]
	and	eax, 33554431
	mov	DWORD PTR -1056[rbp], eax
	movzx	edx, BYTE PTR -1109[rbp]
	mov	eax, DWORD PTR -1100[rbp]
	add	eax, edx
	mov	DWORD PTR -1052[rbp], eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, DWORD PTR -1064[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -1056[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -1052[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -1096[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -1092[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -1088[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -1084[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -1080[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -1076[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1128[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -1072[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	fiat_25519_carry_mul, .-fiat_25519_carry_mul
	.type	fiat_25519_carry_square, @function
fiat_25519_carry_square:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 728
	mov	QWORD PTR -840[rbp], rdi
	mov	QWORD PTR -848[rbp], rsi
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -828[rbp], eax
	mov	eax, DWORD PTR -828[rbp]
	add	eax, eax
	mov	DWORD PTR -824[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -820[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -816[rbp], eax
	mov	eax, DWORD PTR -816[rbp]
	add	rax, rax
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -812[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -808[rbp], eax
	mov	eax, DWORD PTR -808[rbp]
	add	eax, eax
	mov	DWORD PTR -804[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -800[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -796[rbp], eax
	mov	eax, DWORD PTR -796[rbp]
	add	rax, rax
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -792[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -788[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -784[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -780[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -776[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -772[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -768[rbp], eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -828[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -824[rbp]
	imul	rax, rdx
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -816[rbp]
	imul	rax, rdx
	mov	QWORD PTR -672[rbp], rax
	mov	eax, DWORD PTR -824[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 28
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -808[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -824[rbp]
	imul	rax, rdx
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -804[rbp]
	imul	rax, rdx
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -796[rbp]
	imul	rax, rdx
	mov	QWORD PTR -616[rbp], rax
	mov	eax, DWORD PTR -824[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 20
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -804[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 20
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -696[rbp]
	imul	rax, rdx
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -788[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -824[rbp]
	imul	rax, rdx
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -804[rbp]
	imul	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -696[rbp]
	imul	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -784[rbp]
	imul	rax, rdx
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -528[rbp], rax
	mov	eax, DWORD PTR -824[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 12
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -512[rbp], rax
	mov	eax, DWORD PTR -804[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 12
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -792[rbp]
	imul	rax, rdx
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -784[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -780[rbp]
	imul	rax, rdx
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -824[rbp]
	imul	rax, rdx
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -704[rbp]
	imul	rax, rdx
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -800[rbp]
	imul	rax, rdx
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -792[rbp]
	imul	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -784[rbp]
	imul	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -780[rbp]
	imul	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -776[rbp]
	imul	rax, rdx
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -408[rbp], rax
	mov	eax, DWORD PTR -824[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	mov	edx, edx
	imul	rax, rdx
	add	rax, rax
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -812[rbp]
	imul	rax, rdx
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -800[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -792[rbp]
	imul	rax, rdx
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -784[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -780[rbp]
	imul	rax, rdx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -776[rbp]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -772[rbp]
	imul	rax, rdx
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -820[rbp]
	imul	rax, rdx
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -812[rbp]
	imul	rax, rdx
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -800[rbp]
	imul	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -792[rbp]
	imul	rax, rdx
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -784[rbp]
	imul	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -780[rbp]
	imul	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -776[rbp]
	imul	rax, rdx
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -772[rbp]
	imul	rax, rdx
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	eax, DWORD PTR -768[rbp]
	imul	rax, rdx
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rdx
	mov	QWORD PTR -256[rbp], rax
	mov	rdx, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR -576[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -504[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -456[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	shr	rax, 26
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	and	eax, 67108863
	mov	DWORD PTR -764[rbp], eax
	mov	rdx, QWORD PTR -496[rbp]
	mov	rax, QWORD PTR -536[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -448[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR -688[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -488[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -440[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -384[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	QWORD PTR -224[rbp], rax
	mov	rdx, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR -680[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -432[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -376[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rdx, QWORD PTR -664[rbp]
	mov	rax, QWORD PTR -672[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -472[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -424[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -368[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR -656[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -360[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	mov	rdx, QWORD PTR -632[rbp]
	mov	rax, QWORD PTR -648[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -608[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -408[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -352[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR -624[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -568[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -344[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -616[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -560[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -520[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -336[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -552[rbp]
	mov	rax, QWORD PTR -584[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -512[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -464[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	shr	rax, 25
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	and	eax, 33554431
	mov	DWORD PTR -760[rbp], eax
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	shr	rax, 26
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	and	eax, 67108863
	mov	DWORD PTR -756[rbp], eax
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 25
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	and	eax, 33554431
	mov	DWORD PTR -752[rbp], eax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	shr	rax, 26
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	and	eax, 67108863
	mov	DWORD PTR -748[rbp], eax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	shr	rax, 25
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	and	eax, 33554431
	mov	DWORD PTR -744[rbp], eax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	shr	rax, 26
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	and	eax, 67108863
	mov	DWORD PTR -740[rbp], eax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	shr	rax, 25
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	and	eax, 33554431
	mov	DWORD PTR -736[rbp], eax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	shr	rax, 26
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	and	eax, 67108863
	mov	DWORD PTR -732[rbp], eax
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 25
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	and	eax, 33554431
	mov	DWORD PTR -728[rbp], eax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	edx, DWORD PTR -764[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 26
	mov	DWORD PTR -724[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 67108863
	mov	DWORD PTR -720[rbp], eax
	mov	edx, DWORD PTR -724[rbp]
	mov	eax, DWORD PTR -760[rbp]
	add	eax, edx
	mov	DWORD PTR -716[rbp], eax
	mov	eax, DWORD PTR -716[rbp]
	shr	eax, 25
	mov	BYTE PTR -829[rbp], al
	mov	eax, DWORD PTR -716[rbp]
	and	eax, 33554431
	mov	DWORD PTR -712[rbp], eax
	movzx	edx, BYTE PTR -829[rbp]
	mov	eax, DWORD PTR -756[rbp]
	add	eax, edx
	mov	DWORD PTR -708[rbp], eax
	mov	rax, QWORD PTR -840[rbp]
	mov	edx, DWORD PTR -720[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -712[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -708[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -752[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -748[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -744[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -740[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -736[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -732[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -840[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -728[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fiat_25519_carry_square, .-fiat_25519_carry_square
	.type	fiat_25519_carry, @function
fiat_25519_carry:
.LFB8:
	.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 -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	shr	eax, 26
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 25
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	shr	eax, 26
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 25
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	shr	eax, 26
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	shr	eax, 25
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 26
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	shr	eax, 25
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	shr	eax, 26
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 67108863
	mov	ecx, eax
	mov	eax, DWORD PTR -52[rbp]
	shr	eax, 25
	mov	edx, eax
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, ecx
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	shr	eax, 26
	movzx	edx, al
	mov	eax, DWORD PTR -84[rbp]
	and	eax, 33554431
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 67108863
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 33554431
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	shr	eax, 25
	movzx	edx, al
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 67108863
	add	eax, edx
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	and	eax, 33554431
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	and	eax, 67108863
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	and	eax, 33554431
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 67108863
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	and	eax, 33554431
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 67108863
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 33554431
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	fiat_25519_carry, .-fiat_25519_carry
	.type	fiat_25519_add, @function
fiat_25519_add:
.LFB9:
	.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	fiat_25519_add, .-fiat_25519_add
	.type	fiat_25519_sub, @function
fiat_25519_sub:
.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	eax, edx
	sub	eax, ecx
	add	eax, 134217690
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 67108862
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 8
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 134217726
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 12
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 67108862
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 16
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 134217726
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 20
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 67108862
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 24
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 134217726
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 28
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 67108862
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 32
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 134217726
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 36
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	add	eax, 67108862
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	fiat_25519_sub, .-fiat_25519_sub
	.type	fiat_25519_opp, @function
fiat_25519_opp:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, 134217690
	sub	eax, edx
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	eax, 67108862
	sub	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	eax, 134217726
	sub	eax, edx
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	eax, 67108862
	sub	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	eax, 134217726
	sub	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	eax, 67108862
	sub	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	eax, 134217726
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	eax, 67108862
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	mov	eax, 134217726
	sub	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	mov	eax, 67108862
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	fiat_25519_opp, .-fiat_25519_opp
	.type	fiat_25519_selectznz, @function
fiat_25519_selectznz:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	eax, esi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	BYTE PTR -60[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -44[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -40[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -36[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -32[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -28[rbp]
	mov	rdi, rax
	call	fiat_25519_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, -24[rbp]
	mov	rdi, rax
	call	fiat_25519_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 28
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -20[rbp]
	mov	rdi, rax
	call	fiat_25519_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 32
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	fiat_25519_cmovznz_u32
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 36
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 36
	mov	edx, DWORD PTR [rax]
	movzx	esi, BYTE PTR -60[rbp]
	lea	rax, -12[rbp]
	mov	rdi, rax
	call	fiat_25519_cmovznz_u32
	mov	edx, DWORD PTR -48[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 -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 36[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	.L15
	call	__stack_chk_fail@PLT
.L15:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	fiat_25519_selectznz, .-fiat_25519_selectznz
	.type	fiat_25519_to_bytes, @function
fiat_25519_to_bytes:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 320
	mov	QWORD PTR -312[rbp], rdi
	mov	QWORD PTR -320[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -320[rbp]
	mov	edx, DWORD PTR [rax]
	lea	rsi, -296[rbp]
	lea	rax, -236[rbp]
	mov	r8d, 67108845
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_25519_subborrowx_u26
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -296[rbp]
	movzx	edx, al
	lea	rsi, -295[rbp]
	lea	rax, -232[rbp]
	mov	r8d, 33554431
	mov	rdi, rax
	call	fiat_25519_subborrowx_u25
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -295[rbp]
	movzx	edx, al
	lea	rsi, -294[rbp]
	lea	rax, -228[rbp]
	mov	r8d, 67108863
	mov	rdi, rax
	call	fiat_25519_subborrowx_u26
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -294[rbp]
	movzx	edx, al
	lea	rsi, -293[rbp]
	lea	rax, -224[rbp]
	mov	r8d, 33554431
	mov	rdi, rax
	call	fiat_25519_subborrowx_u25
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 16
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -293[rbp]
	movzx	edx, al
	lea	rsi, -292[rbp]
	lea	rax, -220[rbp]
	mov	r8d, 67108863
	mov	rdi, rax
	call	fiat_25519_subborrowx_u26
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 20
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -292[rbp]
	movzx	edx, al
	lea	rsi, -291[rbp]
	lea	rax, -216[rbp]
	mov	r8d, 33554431
	mov	rdi, rax
	call	fiat_25519_subborrowx_u25
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 24
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -291[rbp]
	movzx	edx, al
	lea	rsi, -290[rbp]
	lea	rax, -212[rbp]
	mov	r8d, 67108863
	mov	rdi, rax
	call	fiat_25519_subborrowx_u26
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 28
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -290[rbp]
	movzx	edx, al
	lea	rsi, -289[rbp]
	lea	rax, -208[rbp]
	mov	r8d, 33554431
	mov	rdi, rax
	call	fiat_25519_subborrowx_u25
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 32
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -289[rbp]
	movzx	edx, al
	lea	rsi, -288[rbp]
	lea	rax, -204[rbp]
	mov	r8d, 67108863
	mov	rdi, rax
	call	fiat_25519_subborrowx_u26
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 36
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -288[rbp]
	movzx	edx, al
	lea	rsi, -287[rbp]
	lea	rax, -200[rbp]
	mov	r8d, 33554431
	mov	rdi, rax
	call	fiat_25519_subborrowx_u25
	movzx	eax, BYTE PTR -287[rbp]
	movzx	esi, al
	lea	rax, -196[rbp]
	mov	ecx, -1
	mov	edx, 0
	mov	rdi, rax
	call	fiat_25519_cmovznz_u32
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 67108845
	mov	ecx, eax
	mov	edx, DWORD PTR -236[rbp]
	lea	rsi, -286[rbp]
	lea	rax, -192[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	rdi, rax
	call	fiat_25519_addcarryx_u26
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 33554431
	mov	edi, eax
	mov	ecx, DWORD PTR -232[rbp]
	movzx	eax, BYTE PTR -286[rbp]
	movzx	edx, al
	lea	rsi, -285[rbp]
	lea	rax, -188[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u25
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 67108863
	mov	edi, eax
	mov	ecx, DWORD PTR -228[rbp]
	movzx	eax, BYTE PTR -285[rbp]
	movzx	edx, al
	lea	rsi, -284[rbp]
	lea	rax, -184[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u26
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 33554431
	mov	edi, eax
	mov	ecx, DWORD PTR -224[rbp]
	movzx	eax, BYTE PTR -284[rbp]
	movzx	edx, al
	lea	rsi, -283[rbp]
	lea	rax, -180[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u25
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 67108863
	mov	edi, eax
	mov	ecx, DWORD PTR -220[rbp]
	movzx	eax, BYTE PTR -283[rbp]
	movzx	edx, al
	lea	rsi, -282[rbp]
	lea	rax, -176[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u26
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 33554431
	mov	edi, eax
	mov	ecx, DWORD PTR -216[rbp]
	movzx	eax, BYTE PTR -282[rbp]
	movzx	edx, al
	lea	rsi, -281[rbp]
	lea	rax, -172[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u25
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 67108863
	mov	edi, eax
	mov	ecx, DWORD PTR -212[rbp]
	movzx	eax, BYTE PTR -281[rbp]
	movzx	edx, al
	lea	rsi, -280[rbp]
	lea	rax, -168[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u26
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 33554431
	mov	edi, eax
	mov	ecx, DWORD PTR -208[rbp]
	movzx	eax, BYTE PTR -280[rbp]
	movzx	edx, al
	lea	rsi, -279[rbp]
	lea	rax, -164[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u25
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 67108863
	mov	edi, eax
	mov	ecx, DWORD PTR -204[rbp]
	movzx	eax, BYTE PTR -279[rbp]
	movzx	edx, al
	lea	rsi, -278[rbp]
	lea	rax, -160[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u26
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 33554431
	mov	edi, eax
	mov	ecx, DWORD PTR -200[rbp]
	movzx	eax, BYTE PTR -278[rbp]
	movzx	edx, al
	lea	rsi, -277[rbp]
	lea	rax, -156[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	fiat_25519_addcarryx_u25
	mov	eax, DWORD PTR -156[rbp]
	sal	eax, 6
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	sal	eax, 4
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	sal	eax, 3
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	add	eax, eax
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -176[rbp]
	sal	eax, 6
	mov	DWORD PTR -136[rbp], eax
	mov	eax, DWORD PTR -180[rbp]
	sal	eax, 5
	mov	DWORD PTR -132[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	sal	eax, 3
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	sal	eax, 2
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	mov	BYTE PTR -276[rbp], al
	mov	eax, DWORD PTR -192[rbp]
	shr	eax, 8
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	mov	BYTE PTR -275[rbp], al
	mov	eax, DWORD PTR -120[rbp]
	shr	eax, 8
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	mov	BYTE PTR -274[rbp], al
	mov	eax, DWORD PTR -116[rbp]
	shr	eax, 8
	mov	BYTE PTR -273[rbp], al
	movzx	edx, BYTE PTR -273[rbp]
	mov	eax, DWORD PTR -124[rbp]
	add	eax, edx
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	mov	BYTE PTR -272[rbp], al
	mov	eax, DWORD PTR -112[rbp]
	shr	eax, 8
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	mov	BYTE PTR -271[rbp], al
	mov	eax, DWORD PTR -108[rbp]
	shr	eax, 8
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	mov	BYTE PTR -270[rbp], al
	mov	eax, DWORD PTR -104[rbp]
	shr	eax, 8
	mov	BYTE PTR -269[rbp], al
	movzx	edx, BYTE PTR -269[rbp]
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	mov	BYTE PTR -268[rbp], al
	mov	eax, DWORD PTR -100[rbp]
	shr	eax, 8
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	mov	BYTE PTR -267[rbp], al
	mov	eax, DWORD PTR -96[rbp]
	shr	eax, 8
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	BYTE PTR -266[rbp], al
	mov	eax, DWORD PTR -92[rbp]
	shr	eax, 8
	mov	BYTE PTR -265[rbp], al
	movzx	edx, BYTE PTR -265[rbp]
	mov	eax, DWORD PTR -132[rbp]
	add	eax, edx
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	mov	BYTE PTR -264[rbp], al
	mov	eax, DWORD PTR -88[rbp]
	shr	eax, 8
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	BYTE PTR -263[rbp], al
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	BYTE PTR -262[rbp], al
	mov	eax, DWORD PTR -80[rbp]
	shr	eax, 8
	mov	BYTE PTR -261[rbp], al
	movzx	edx, BYTE PTR -261[rbp]
	mov	eax, DWORD PTR -136[rbp]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR -260[rbp], al
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	BYTE PTR -259[rbp], al
	mov	eax, DWORD PTR -72[rbp]
	shr	eax, 8
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	BYTE PTR -258[rbp], al
	mov	eax, DWORD PTR -68[rbp]
	shr	eax, 8
	mov	BYTE PTR -257[rbp], al
	mov	eax, DWORD PTR -172[rbp]
	mov	BYTE PTR -256[rbp], al
	mov	eax, DWORD PTR -172[rbp]
	shr	eax, 8
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	mov	BYTE PTR -255[rbp], al
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 8
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	BYTE PTR -254[rbp], al
	mov	eax, DWORD PTR -60[rbp]
	shr	eax, 8
	mov	BYTE PTR -253[rbp], al
	movzx	edx, BYTE PTR -253[rbp]
	mov	eax, DWORD PTR -140[rbp]
	add	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	mov	BYTE PTR -252[rbp], al
	mov	eax, DWORD PTR -56[rbp]
	shr	eax, 8
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	BYTE PTR -251[rbp], al
	mov	eax, DWORD PTR -52[rbp]
	shr	eax, 8
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	BYTE PTR -250[rbp], al
	mov	eax, DWORD PTR -48[rbp]
	shr	eax, 8
	mov	BYTE PTR -249[rbp], al
	movzx	edx, BYTE PTR -249[rbp]
	mov	eax, DWORD PTR -144[rbp]
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	BYTE PTR -248[rbp], al
	mov	eax, DWORD PTR -44[rbp]
	shr	eax, 8
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	BYTE PTR -247[rbp], al
	mov	eax, DWORD PTR -40[rbp]
	shr	eax, 8
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	BYTE PTR -246[rbp], al
	mov	eax, DWORD PTR -36[rbp]
	shr	eax, 8
	mov	BYTE PTR -245[rbp], al
	movzx	edx, BYTE PTR -245[rbp]
	mov	eax, DWORD PTR -148[rbp]
	add	eax, edx
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	BYTE PTR -244[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	shr	eax, 8
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	BYTE PTR -243[rbp], al
	mov	eax, DWORD PTR -28[rbp]
	shr	eax, 8
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	BYTE PTR -242[rbp], al
	mov	eax, DWORD PTR -24[rbp]
	shr	eax, 8
	mov	BYTE PTR -241[rbp], al
	movzx	edx, BYTE PTR -241[rbp]
	mov	eax, DWORD PTR -152[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	BYTE PTR -240[rbp], al
	mov	eax, DWORD PTR -20[rbp]
	shr	eax, 8
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	BYTE PTR -239[rbp], al
	mov	eax, DWORD PTR -16[rbp]
	shr	eax, 8
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	BYTE PTR -238[rbp], al
	mov	eax, DWORD PTR -12[rbp]
	shr	eax, 8
	mov	BYTE PTR -237[rbp], al
	mov	rax, QWORD PTR -312[rbp]
	movzx	edx, BYTE PTR -276[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 1[rax]
	movzx	eax, BYTE PTR -275[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -274[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 3[rax]
	movzx	eax, BYTE PTR -272[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -271[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 5[rax]
	movzx	eax, BYTE PTR -270[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 6[rax]
	movzx	eax, BYTE PTR -268[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 7[rax]
	movzx	eax, BYTE PTR -267[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -266[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 9[rax]
	movzx	eax, BYTE PTR -264[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 10[rax]
	movzx	eax, BYTE PTR -263[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 11[rax]
	movzx	eax, BYTE PTR -262[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 12[rax]
	movzx	eax, BYTE PTR -260[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 13[rax]
	movzx	eax, BYTE PTR -259[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 14[rax]
	movzx	eax, BYTE PTR -258[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 15[rax]
	movzx	eax, BYTE PTR -257[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 16[rax]
	movzx	eax, BYTE PTR -256[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 17[rax]
	movzx	eax, BYTE PTR -255[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 18[rax]
	movzx	eax, BYTE PTR -254[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 19[rax]
	movzx	eax, BYTE PTR -252[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 20[rax]
	movzx	eax, BYTE PTR -251[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 21[rax]
	movzx	eax, BYTE PTR -250[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 22[rax]
	movzx	eax, BYTE PTR -248[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 23[rax]
	movzx	eax, BYTE PTR -247[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 24[rax]
	movzx	eax, BYTE PTR -246[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 25[rax]
	movzx	eax, BYTE PTR -244[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 26[rax]
	movzx	eax, BYTE PTR -243[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 27[rax]
	movzx	eax, BYTE PTR -242[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 28[rax]
	movzx	eax, BYTE PTR -240[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 29[rax]
	movzx	eax, BYTE PTR -239[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 30[rax]
	movzx	eax, BYTE PTR -238[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 31[rax]
	movzx	eax, BYTE PTR -237[rbp]
	mov	BYTE PTR [rdx], al
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L17
	call	__stack_chk_fail@PLT
.L17:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	fiat_25519_to_bytes, .-fiat_25519_to_bytes
	.type	fiat_25519_from_bytes, @function
fiat_25519_from_bytes:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 184
	mov	QWORD PTR -296[rbp], rdi
	mov	QWORD PTR -304[rbp], rsi
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 31
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 18
	mov	DWORD PTR -272[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 30
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 10
	mov	DWORD PTR -268[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 29
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 2
	mov	DWORD PTR -264[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 28
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 20
	mov	DWORD PTR -260[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 27
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 12
	mov	DWORD PTR -256[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 26
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 4
	mov	DWORD PTR -252[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 25
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 21
	mov	DWORD PTR -248[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 24
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 13
	mov	DWORD PTR -244[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 23
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 5
	mov	DWORD PTR -240[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 22
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 23
	mov	DWORD PTR -236[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 21
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 15
	mov	DWORD PTR -232[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 20
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 7
	mov	DWORD PTR -228[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 19
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -224[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 18
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -220[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 17
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -216[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	movzx	eax, BYTE PTR 16[rax]
	mov	BYTE PTR -282[rbp], al
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 15
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 18
	mov	DWORD PTR -212[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 14
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 10
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 13
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 2
	mov	DWORD PTR -204[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 19
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 11
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 11
	mov	DWORD PTR -196[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 10
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 3
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 9
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 21
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 13
	mov	DWORD PTR -184[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 7
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 5
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 6
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 22
	mov	DWORD PTR -176[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 14
	mov	DWORD PTR -172[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 6
	mov	DWORD PTR -168[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	DWORD PTR -164[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	DWORD PTR -156[rbp], eax
	mov	rax, QWORD PTR -304[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -281[rbp], al
	movzx	edx, BYTE PTR -281[rbp]
	mov	eax, DWORD PTR -156[rbp]
	add	eax, edx
	mov	DWORD PTR -152[rbp], eax
	mov	edx, DWORD PTR -160[rbp]
	mov	eax, DWORD PTR -152[rbp]
	add	eax, edx
	mov	DWORD PTR -148[rbp], eax
	mov	edx, DWORD PTR -164[rbp]
	mov	eax, DWORD PTR -148[rbp]
	add	eax, edx
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	and	eax, 67108863
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	shr	eax, 26
	mov	BYTE PTR -280[rbp], al
	movzx	edx, BYTE PTR -280[rbp]
	mov	eax, DWORD PTR -168[rbp]
	add	eax, edx
	mov	DWORD PTR -136[rbp], eax
	mov	edx, DWORD PTR -172[rbp]
	mov	eax, DWORD PTR -136[rbp]
	add	eax, edx
	mov	DWORD PTR -132[rbp], eax
	mov	edx, DWORD PTR -176[rbp]
	mov	eax, DWORD PTR -132[rbp]
	add	eax, edx
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 33554431
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	shr	eax, 25
	mov	BYTE PTR -279[rbp], al
	movzx	edx, BYTE PTR -279[rbp]
	mov	eax, DWORD PTR -180[rbp]
	add	eax, edx
	mov	DWORD PTR -120[rbp], eax
	mov	edx, DWORD PTR -184[rbp]
	mov	eax, DWORD PTR -120[rbp]
	add	eax, edx
	mov	DWORD PTR -116[rbp], eax
	mov	edx, DWORD PTR -188[rbp]
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	and	eax, 67108863
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	shr	eax, 26
	mov	BYTE PTR -278[rbp], al
	movzx	edx, BYTE PTR -278[rbp]
	mov	eax, DWORD PTR -192[rbp]
	add	eax, edx
	mov	DWORD PTR -104[rbp], eax
	mov	edx, DWORD PTR -196[rbp]
	mov	eax, DWORD PTR -104[rbp]
	add	eax, edx
	mov	DWORD PTR -100[rbp], eax
	mov	edx, DWORD PTR -200[rbp]
	mov	eax, DWORD PTR -100[rbp]
	add	eax, edx
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 33554431
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	shr	eax, 25
	mov	BYTE PTR -277[rbp], al
	movzx	edx, BYTE PTR -277[rbp]
	mov	eax, DWORD PTR -204[rbp]
	add	eax, edx
	mov	DWORD PTR -88[rbp], eax
	mov	edx, DWORD PTR -208[rbp]
	mov	eax, DWORD PTR -88[rbp]
	add	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	edx, DWORD PTR -212[rbp]
	mov	eax, DWORD PTR -84[rbp]
	add	eax, edx
	mov	DWORD PTR -80[rbp], eax
	movzx	edx, BYTE PTR -282[rbp]
	mov	eax, DWORD PTR -216[rbp]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	edx, DWORD PTR -220[rbp]
	mov	eax, DWORD PTR -76[rbp]
	add	eax, edx
	mov	DWORD PTR -72[rbp], eax
	mov	edx, DWORD PTR -224[rbp]
	mov	eax, DWORD PTR -72[rbp]
	add	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	and	eax, 33554431
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	shr	eax, 25
	mov	BYTE PTR -276[rbp], al
	movzx	edx, BYTE PTR -276[rbp]
	mov	eax, DWORD PTR -228[rbp]
	add	eax, edx
	mov	DWORD PTR -60[rbp], eax
	mov	edx, DWORD PTR -232[rbp]
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	edx, DWORD PTR -236[rbp]
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 67108863
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	shr	eax, 26
	mov	BYTE PTR -275[rbp], al
	movzx	edx, BYTE PTR -275[rbp]
	mov	eax, DWORD PTR -240[rbp]
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	edx, DWORD PTR -244[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	mov	DWORD PTR -40[rbp], eax
	mov	edx, DWORD PTR -248[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 33554431
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	shr	eax, 25
	mov	BYTE PTR -274[rbp], al
	movzx	edx, BYTE PTR -274[rbp]
	mov	eax, DWORD PTR -252[rbp]
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -256[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -260[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 67108863
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	shr	eax, 26
	mov	BYTE PTR -273[rbp], al
	movzx	edx, BYTE PTR -273[rbp]
	mov	eax, DWORD PTR -264[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -268[rbp]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR -272[rbp]
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR -140[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -108[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	fiat_25519_from_bytes, .-fiat_25519_from_bytes
	.type	fiat_25519_relax, @function
fiat_25519_relax:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 36[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	fiat_25519_relax, .-fiat_25519_relax
	.type	fiat_25519_carry_scmul_121666, @function
fiat_25519_carry_scmul_121666:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 168
	mov	QWORD PTR -280[rbp], rdi
	mov	QWORD PTR -288[rbp], rsi
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 36
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 20
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	imul	rax, rax, 121666
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	shr	rax, 26
	mov	DWORD PTR -256[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	and	eax, 67108863
	mov	DWORD PTR -252[rbp], eax
	mov	edx, DWORD PTR -256[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	shr	rax, 25
	mov	DWORD PTR -248[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	and	eax, 33554431
	mov	DWORD PTR -244[rbp], eax
	mov	edx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	shr	rax, 26
	mov	DWORD PTR -240[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	and	eax, 67108863
	mov	DWORD PTR -236[rbp], eax
	mov	edx, DWORD PTR -240[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	shr	rax, 25
	mov	DWORD PTR -232[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	and	eax, 33554431
	mov	DWORD PTR -228[rbp], eax
	mov	edx, DWORD PTR -232[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	shr	rax, 26
	mov	DWORD PTR -224[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	and	eax, 67108863
	mov	DWORD PTR -220[rbp], eax
	mov	edx, DWORD PTR -224[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	shr	rax, 25
	mov	DWORD PTR -216[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	and	eax, 33554431
	mov	DWORD PTR -212[rbp], eax
	mov	edx, DWORD PTR -216[rbp]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 26
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	and	eax, 67108863
	mov	DWORD PTR -204[rbp], eax
	mov	edx, DWORD PTR -208[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 25
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 33554431
	mov	DWORD PTR -196[rbp], eax
	mov	edx, DWORD PTR -200[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 26
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	and	eax, 67108863
	mov	DWORD PTR -188[rbp], eax
	mov	edx, DWORD PTR -192[rbp]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 25
	mov	DWORD PTR -184[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 33554431
	mov	DWORD PTR -180[rbp], eax
	mov	edx, DWORD PTR -184[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -176[rbp], eax
	mov	edx, DWORD PTR -252[rbp]
	mov	eax, DWORD PTR -176[rbp]
	add	eax, edx
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	shr	eax, 26
	mov	BYTE PTR -258[rbp], al
	mov	eax, DWORD PTR -172[rbp]
	and	eax, 67108863
	mov	DWORD PTR -168[rbp], eax
	movzx	edx, BYTE PTR -258[rbp]
	mov	eax, DWORD PTR -244[rbp]
	add	eax, edx
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	shr	eax, 25
	mov	BYTE PTR -257[rbp], al
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 33554431
	mov	DWORD PTR -160[rbp], eax
	movzx	edx, BYTE PTR -257[rbp]
	mov	eax, DWORD PTR -236[rbp]
	add	eax, edx
	mov	DWORD PTR -156[rbp], eax
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR -168[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -160[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -156[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -228[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -220[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 20[rax]
	mov	eax, DWORD PTR -212[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 24[rax]
	mov	eax, DWORD PTR -204[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 28[rax]
	mov	eax, DWORD PTR -196[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 32[rax]
	mov	eax, DWORD PTR -188[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdx, 36[rax]
	mov	eax, DWORD PTR -180[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	fiat_25519_carry_scmul_121666, .-fiat_25519_carry_scmul_121666
	.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	"66396.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_value_barrier_u32, %function
fiat_25519_value_barrier_u32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_value_barrier_u32, .-fiat_25519_value_barrier_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_addcarryx_u26, %function
fiat_25519_addcarryx_u26:
	@ args = 4, 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	r1, [fp, #-28]
	str	r3, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-29]
	ldrb	r2, [fp, #-29]	@ zero_extendqisi2
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #26
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldrb	r2, [fp, #-13]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_addcarryx_u26, .-fiat_25519_addcarryx_u26
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_subborrowx_u26, %function
fiat_25519_subborrowx_u26:
	@ args = 4, 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	r1, [fp, #-28]
	str	r3, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-29]
	ldrb	r3, [fp, #-29]	@ zero_extendqisi2
	ldr	r2, [fp, #-36]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #4]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	asr	r3, r3, #26
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-12]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	rsb	r3, r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_subborrowx_u26, .-fiat_25519_subborrowx_u26
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_addcarryx_u25, %function
fiat_25519_addcarryx_u25:
	@ args = 4, 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	r1, [fp, #-28]
	str	r3, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-29]
	ldrb	r2, [fp, #-29]	@ zero_extendqisi2
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #25
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldrb	r2, [fp, #-13]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_addcarryx_u25, .-fiat_25519_addcarryx_u25
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_subborrowx_u25, %function
fiat_25519_subborrowx_u25:
	@ args = 4, 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	r1, [fp, #-28]
	str	r3, [fp, #-36]
	mov	r3, r2
	strb	r3, [fp, #-29]
	ldrb	r3, [fp, #-29]	@ zero_extendqisi2
	ldr	r2, [fp, #-36]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #4]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	asr	r3, r3, #25
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-12]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	rsb	r3, r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_subborrowx_u25, .-fiat_25519_subborrowx_u25
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_cmovznz_u32, %function
fiat_25519_cmovznz_u32:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	mov	r3, r1
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]
	rsb	r3, r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	fiat_25519_value_barrier_u32
	mov	r2, r0
	ldr	r3, [fp, #-44]
	and	r4, r2, r3
	ldr	r3, [fp, #-20]
	mvn	r3, r3
	mov	r0, r3
	bl	fiat_25519_value_barrier_u32
	mov	r2, r0
	ldr	r3, [fp, #-40]
	and	r3, r3, r2
	orr	r3, r4, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fiat_25519_cmovznz_u32, .-fiat_25519_cmovznz_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_carry_mul, %function
fiat_25519_carry_mul:
	@ args = 0, pretend = 0, frame = 1936
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #1936
	sub	sp, sp, #4
	str	r0, [fp, #-1144]
	str	r1, [fp, #-1148]
	str	r2, [fp, #-1152]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1076]
	str	r7, [fp, #-1072]
	str	r6, [fp, #-1076]
	str	r7, [fp, #-1072]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1068]
	str	r7, [fp, #-1064]
	str	r6, [fp, #-1068]
	str	r7, [fp, #-1064]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1060]
	str	r7, [fp, #-1056]
	str	r6, [fp, #-1060]
	str	r7, [fp, #-1056]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1052]
	str	r7, [fp, #-1048]
	str	r6, [fp, #-1052]
	str	r7, [fp, #-1048]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1044]
	str	r7, [fp, #-1040]
	str	r6, [fp, #-1044]
	str	r7, [fp, #-1040]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1036]
	str	r7, [fp, #-1032]
	str	r6, [fp, #-1036]
	str	r7, [fp, #-1032]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1028]
	str	r7, [fp, #-1024]
	str	r6, [fp, #-1028]
	str	r7, [fp, #-1024]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1020]
	str	r7, [fp, #-1016]
	str	r6, [fp, #-1020]
	str	r7, [fp, #-1016]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1012]
	str	r7, [fp, #-1008]
	str	r6, [fp, #-1012]
	str	r7, [fp, #-1008]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-1004]
	str	r7, [fp, #-1000]
	str	r6, [fp, #-1004]
	str	r7, [fp, #-1000]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-996]
	str	r7, [fp, #-992]
	str	r6, [fp, #-996]
	str	r7, [fp, #-992]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-988]
	str	r7, [fp, #-984]
	str	r6, [fp, #-988]
	str	r7, [fp, #-984]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-980]
	str	r7, [fp, #-976]
	str	r6, [fp, #-980]
	str	r7, [fp, #-976]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-972]
	str	r7, [fp, #-968]
	str	r6, [fp, #-972]
	str	r7, [fp, #-968]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-964]
	str	r7, [fp, #-960]
	str	r6, [fp, #-964]
	str	r7, [fp, #-960]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-956]
	str	r7, [fp, #-952]
	str	r6, [fp, #-956]
	str	r7, [fp, #-952]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-948]
	str	r7, [fp, #-944]
	str	r6, [fp, #-948]
	str	r7, [fp, #-944]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-940]
	str	r7, [fp, #-936]
	str	r6, [fp, #-940]
	str	r7, [fp, #-936]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-932]
	str	r7, [fp, #-928]
	str	r6, [fp, #-932]
	str	r7, [fp, #-928]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-924]
	str	r7, [fp, #-920]
	str	r6, [fp, #-924]
	str	r7, [fp, #-920]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-916]
	str	r7, [fp, #-912]
	str	r6, [fp, #-916]
	str	r7, [fp, #-912]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-908]
	str	r7, [fp, #-904]
	str	r6, [fp, #-908]
	str	r7, [fp, #-904]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-900]
	str	r7, [fp, #-896]
	str	r6, [fp, #-900]
	str	r7, [fp, #-896]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-892]
	str	r7, [fp, #-888]
	str	r6, [fp, #-892]
	str	r7, [fp, #-888]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-884]
	str	r7, [fp, #-880]
	str	r6, [fp, #-884]
	str	r7, [fp, #-880]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-876]
	str	r7, [fp, #-872]
	str	r6, [fp, #-876]
	str	r7, [fp, #-872]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-868]
	str	r7, [fp, #-864]
	str	r6, [fp, #-868]
	str	r7, [fp, #-864]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-860]
	str	r7, [fp, #-856]
	str	r6, [fp, #-860]
	str	r7, [fp, #-856]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-852]
	str	r7, [fp, #-848]
	str	r6, [fp, #-852]
	str	r7, [fp, #-848]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-844]
	str	r7, [fp, #-840]
	str	r6, [fp, #-844]
	str	r7, [fp, #-840]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-836]
	str	r7, [fp, #-832]
	str	r6, [fp, #-836]
	str	r7, [fp, #-832]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-828]
	str	r7, [fp, #-824]
	str	r6, [fp, #-828]
	str	r7, [fp, #-824]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-820]
	str	r7, [fp, #-816]
	str	r6, [fp, #-820]
	str	r7, [fp, #-816]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-812]
	str	r7, [fp, #-808]
	str	r6, [fp, #-812]
	str	r7, [fp, #-808]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-804]
	str	r7, [fp, #-800]
	str	r6, [fp, #-804]
	str	r7, [fp, #-800]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-796]
	str	r7, [fp, #-792]
	str	r6, [fp, #-796]
	str	r7, [fp, #-792]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-788]
	str	r7, [fp, #-784]
	str	r6, [fp, #-788]
	str	r7, [fp, #-784]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-780]
	str	r7, [fp, #-776]
	str	r6, [fp, #-780]
	str	r7, [fp, #-776]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-772]
	str	r7, [fp, #-768]
	str	r6, [fp, #-772]
	str	r7, [fp, #-768]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-764]
	str	r7, [fp, #-760]
	str	r6, [fp, #-764]
	str	r7, [fp, #-760]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-756]
	str	r7, [fp, #-752]
	str	r6, [fp, #-756]
	str	r7, [fp, #-752]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-748]
	str	r7, [fp, #-744]
	str	r6, [fp, #-748]
	str	r7, [fp, #-744]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-740]
	str	r7, [fp, #-736]
	str	r6, [fp, #-740]
	str	r7, [fp, #-736]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-732]
	str	r7, [fp, #-728]
	str	r6, [fp, #-732]
	str	r7, [fp, #-728]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-724]
	str	r7, [fp, #-720]
	str	r6, [fp, #-724]
	str	r7, [fp, #-720]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-716]
	str	r7, [fp, #-712]
	str	r6, [fp, #-716]
	str	r7, [fp, #-712]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-708]
	str	r7, [fp, #-704]
	str	r6, [fp, #-708]
	str	r7, [fp, #-704]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-700]
	str	r7, [fp, #-696]
	str	r6, [fp, #-700]
	str	r7, [fp, #-696]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-692]
	str	r7, [fp, #-688]
	str	r6, [fp, #-692]
	str	r7, [fp, #-688]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-684]
	str	r7, [fp, #-680]
	str	r6, [fp, #-684]
	str	r7, [fp, #-680]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-676]
	str	r7, [fp, #-672]
	str	r6, [fp, #-676]
	str	r7, [fp, #-672]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-668]
	str	r7, [fp, #-664]
	str	r6, [fp, #-668]
	str	r7, [fp, #-664]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-660]
	str	r7, [fp, #-656]
	str	r6, [fp, #-660]
	str	r7, [fp, #-656]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-652]
	str	r7, [fp, #-648]
	str	r6, [fp, #-652]
	str	r7, [fp, #-648]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-644]
	str	r7, [fp, #-640]
	str	r6, [fp, #-644]
	str	r7, [fp, #-640]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-636]
	str	r7, [fp, #-632]
	str	r6, [fp, #-636]
	str	r7, [fp, #-632]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-628]
	str	r7, [fp, #-624]
	str	r6, [fp, #-628]
	str	r7, [fp, #-624]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-620]
	str	r7, [fp, #-616]
	str	r6, [fp, #-620]
	str	r7, [fp, #-616]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-612]
	str	r7, [fp, #-608]
	str	r6, [fp, #-612]
	str	r7, [fp, #-608]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-604]
	str	r7, [fp, #-600]
	str	r6, [fp, #-604]
	str	r7, [fp, #-600]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-596]
	str	r7, [fp, #-592]
	str	r6, [fp, #-596]
	str	r7, [fp, #-592]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-588]
	str	r7, [fp, #-584]
	str	r6, [fp, #-588]
	str	r7, [fp, #-584]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-580]
	str	r7, [fp, #-576]
	str	r6, [fp, #-580]
	str	r7, [fp, #-576]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-572]
	str	r7, [fp, #-568]
	str	r6, [fp, #-572]
	str	r7, [fp, #-568]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-564]
	str	r7, [fp, #-560]
	str	r6, [fp, #-564]
	str	r7, [fp, #-560]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-556]
	str	r7, [fp, #-552]
	str	r6, [fp, #-556]
	str	r7, [fp, #-552]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-548]
	str	r7, [fp, #-544]
	str	r6, [fp, #-548]
	str	r7, [fp, #-544]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-540]
	str	r7, [fp, #-536]
	str	r6, [fp, #-540]
	str	r7, [fp, #-536]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-532]
	str	r7, [fp, #-528]
	str	r6, [fp, #-532]
	str	r7, [fp, #-528]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-524]
	str	r7, [fp, #-520]
	str	r6, [fp, #-524]
	str	r7, [fp, #-520]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-516]
	str	r7, [fp, #-512]
	str	r6, [fp, #-516]
	str	r7, [fp, #-512]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-508]
	str	r7, [fp, #-504]
	str	r6, [fp, #-508]
	str	r7, [fp, #-504]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-500]
	str	r7, [fp, #-496]
	str	r6, [fp, #-500]
	str	r7, [fp, #-496]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-492]
	str	r7, [fp, #-488]
	str	r6, [fp, #-492]
	str	r7, [fp, #-488]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-484]
	str	r7, [fp, #-480]
	str	r6, [fp, #-484]
	str	r7, [fp, #-480]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-476]
	str	r7, [fp, #-472]
	str	r6, [fp, #-476]
	str	r7, [fp, #-472]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-468]
	str	r7, [fp, #-464]
	str	r6, [fp, #-468]
	str	r7, [fp, #-464]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-460]
	str	r7, [fp, #-456]
	str	r6, [fp, #-460]
	str	r7, [fp, #-456]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-452]
	str	r7, [fp, #-448]
	str	r6, [fp, #-452]
	str	r7, [fp, #-448]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-444]
	str	r7, [fp, #-440]
	str	r6, [fp, #-444]
	str	r7, [fp, #-440]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-436]
	str	r7, [fp, #-432]
	str	r6, [fp, #-436]
	str	r7, [fp, #-432]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-428]
	str	r7, [fp, #-424]
	str	r6, [fp, #-428]
	str	r7, [fp, #-424]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-420]
	str	r7, [fp, #-416]
	str	r6, [fp, #-420]
	str	r7, [fp, #-416]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-412]
	str	r7, [fp, #-408]
	str	r6, [fp, #-412]
	str	r7, [fp, #-408]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-404]
	str	r7, [fp, #-400]
	str	r6, [fp, #-404]
	str	r7, [fp, #-400]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-396]
	str	r7, [fp, #-392]
	str	r6, [fp, #-396]
	str	r7, [fp, #-392]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-388]
	str	r7, [fp, #-384]
	str	r6, [fp, #-388]
	str	r7, [fp, #-384]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-380]
	str	r7, [fp, #-376]
	str	r6, [fp, #-380]
	str	r7, [fp, #-376]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-372]
	str	r7, [fp, #-368]
	str	r6, [fp, #-372]
	str	r7, [fp, #-368]
	ldr	r3, [fp, #-1148]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-364]
	str	r7, [fp, #-360]
	str	r6, [fp, #-364]
	str	r7, [fp, #-360]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-356]
	str	r7, [fp, #-352]
	str	r6, [fp, #-356]
	str	r7, [fp, #-352]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-348]
	str	r7, [fp, #-344]
	str	r6, [fp, #-348]
	str	r7, [fp, #-344]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-340]
	str	r7, [fp, #-336]
	str	r6, [fp, #-340]
	str	r7, [fp, #-336]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-332]
	str	r7, [fp, #-328]
	str	r6, [fp, #-332]
	str	r7, [fp, #-328]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-324]
	str	r7, [fp, #-320]
	str	r6, [fp, #-324]
	str	r7, [fp, #-320]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-316]
	str	r7, [fp, #-312]
	str	r6, [fp, #-316]
	str	r7, [fp, #-312]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-308]
	str	r7, [fp, #-304]
	str	r6, [fp, #-308]
	str	r7, [fp, #-304]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-300]
	str	r7, [fp, #-296]
	str	r6, [fp, #-300]
	str	r7, [fp, #-296]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-292]
	str	r7, [fp, #-288]
	str	r6, [fp, #-292]
	str	r7, [fp, #-288]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-1152]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-284]
	str	r7, [fp, #-280]
	str	r6, [fp, #-284]
	str	r7, [fp, #-280]
	sub	r1, fp, #948
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1012
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	sub	r3, fp, #892
	ldmia	r3, {r2-r3}
	adds	r1, r8, r2
	str	r1, [fp, #-1164]
	adc	r3, r9, r3
	str	r3, [fp, #-1160]
	sub	r3, fp, #844
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1164]
	ldr	r1, [fp, #-1160]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1172]
	adc	r3, r1, r3
	str	r3, [fp, #-1168]
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1172]
	ldr	r1, [fp, #-1168]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1180]
	adc	r3, r1, r3
	str	r3, [fp, #-1176]
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1180]
	ldr	r1, [fp, #-1176]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1188]
	adc	r3, r1, r3
	str	r3, [fp, #-1184]
	sub	r3, fp, #748
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1188]
	ldr	r1, [fp, #-1184]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1196]
	adc	r3, r1, r3
	str	r3, [fp, #-1192]
	sub	r3, fp, #732
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1196]
	ldr	r1, [fp, #-1192]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1204]
	adc	r3, r1, r3
	str	r3, [fp, #-1200]
	sub	r3, fp, #724
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1204]
	ldr	r1, [fp, #-1200]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1212]
	adc	r3, r1, r3
	str	r3, [fp, #-1208]
	sub	r3, fp, #284
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1212]
	ldr	r1, [fp, #-1208]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1796]
	adc	r3, r3, r1
	str	r3, [fp, #-1792]
	ldr	r3, [fp, #-1796]
	ldr	r4, [fp, #-1792]
	str	r3, [fp, #-276]
	str	r4, [fp, #-272]
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-268]
	str	r1, [fp, #-264]
	ldr	r3, [fp, #-276]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1136]
	sub	r1, fp, #708
	ldmia	r1, {r0-r1}
	sub	r3, fp, #716
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1220]
	adc	r3, r1, r3
	str	r3, [fp, #-1216]
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1220]
	ldr	r1, [fp, #-1216]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1228]
	adc	r3, r1, r3
	str	r3, [fp, #-1224]
	sub	r3, fp, #668
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1228]
	ldr	r1, [fp, #-1224]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1236]
	adc	r3, r1, r3
	str	r3, [fp, #-1232]
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1236]
	ldr	r1, [fp, #-1232]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1244]
	adc	r3, r1, r3
	str	r3, [fp, #-1240]
	sub	r3, fp, #596
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1244]
	ldr	r1, [fp, #-1240]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1252]
	adc	r3, r1, r3
	str	r3, [fp, #-1248]
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1252]
	ldr	r1, [fp, #-1248]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1260]
	adc	r3, r1, r3
	str	r3, [fp, #-1256]
	sub	r3, fp, #492
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1260]
	ldr	r1, [fp, #-1256]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1268]
	adc	r3, r1, r3
	str	r3, [fp, #-1264]
	sub	r3, fp, #428
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1268]
	ldr	r1, [fp, #-1264]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1276]
	adc	r3, r1, r3
	str	r3, [fp, #-1272]
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1276]
	ldr	r1, [fp, #-1272]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1804]
	adc	r3, r3, r1
	str	r3, [fp, #-1800]
	ldr	r3, [fp, #-1804]
	ldr	r4, [fp, #-1800]
	str	r3, [fp, #-260]
	str	r4, [fp, #-256]
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1076]
	ldr	r3, [fp, #-1072]
	adds	ip, r0, r2
	str	ip, [fp, #-1284]
	adc	r3, r1, r3
	str	r3, [fp, #-1280]
	sub	r3, fp, #684
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1284]
	ldr	r1, [fp, #-1280]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1292]
	adc	r3, r1, r3
	str	r3, [fp, #-1288]
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1292]
	ldr	r1, [fp, #-1288]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1300]
	adc	r3, r1, r3
	str	r3, [fp, #-1296]
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1300]
	ldr	r1, [fp, #-1296]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1308]
	adc	r3, r1, r3
	str	r3, [fp, #-1304]
	sub	r3, fp, #588
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1308]
	ldr	r1, [fp, #-1304]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1316]
	adc	r3, r1, r3
	str	r3, [fp, #-1312]
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1316]
	ldr	r1, [fp, #-1312]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1324]
	adc	r3, r1, r3
	str	r3, [fp, #-1320]
	sub	r3, fp, #484
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1324]
	ldr	r1, [fp, #-1320]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1332]
	adc	r3, r1, r3
	str	r3, [fp, #-1328]
	sub	r3, fp, #420
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1332]
	ldr	r1, [fp, #-1328]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1340]
	adc	r3, r1, r3
	str	r3, [fp, #-1336]
	sub	r3, fp, #348
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1340]
	ldr	r1, [fp, #-1336]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1812]
	adc	r3, r3, r1
	str	r3, [fp, #-1808]
	ldr	r3, [fp, #-1812]
	ldr	r4, [fp, #-1808]
	str	r3, [fp, #-252]
	str	r4, [fp, #-248]
	sub	r1, fp, #1004
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1068]
	ldr	r3, [fp, #-1064]
	adds	ip, r0, r2
	str	ip, [fp, #-1348]
	adc	r3, r1, r3
	str	r3, [fp, #-1344]
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1348]
	ldr	r1, [fp, #-1344]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1356]
	adc	r3, r1, r3
	str	r3, [fp, #-1352]
	sub	r3, fp, #652
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1356]
	ldr	r1, [fp, #-1352]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1364]
	adc	r3, r1, r3
	str	r3, [fp, #-1360]
	sub	r3, fp, #620
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1364]
	ldr	r1, [fp, #-1360]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1372]
	adc	r3, r1, r3
	str	r3, [fp, #-1368]
	sub	r3, fp, #580
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1372]
	ldr	r1, [fp, #-1368]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1380]
	adc	r3, r1, r3
	str	r3, [fp, #-1376]
	sub	r3, fp, #532
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1380]
	ldr	r1, [fp, #-1376]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1388]
	adc	r3, r1, r3
	str	r3, [fp, #-1384]
	sub	r3, fp, #476
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1388]
	ldr	r1, [fp, #-1384]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1396]
	adc	r3, r1, r3
	str	r3, [fp, #-1392]
	sub	r3, fp, #412
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1396]
	ldr	r1, [fp, #-1392]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1404]
	adc	r3, r1, r3
	str	r3, [fp, #-1400]
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1404]
	ldr	r1, [fp, #-1400]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1820]
	adc	r3, r3, r1
	str	r3, [fp, #-1816]
	ldr	r3, [fp, #-1820]
	ldr	r4, [fp, #-1816]
	str	r3, [fp, #-244]
	str	r4, [fp, #-240]
	sub	r1, fp, #996
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1056]
	adds	ip, r0, r2
	str	ip, [fp, #-1412]
	adc	r3, r1, r3
	str	r3, [fp, #-1408]
	sub	r3, fp, #940
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1412]
	ldr	r1, [fp, #-1408]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1420]
	adc	r3, r1, r3
	str	r3, [fp, #-1416]
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1420]
	ldr	r1, [fp, #-1416]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1428]
	adc	r3, r1, r3
	str	r3, [fp, #-1424]
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1428]
	ldr	r1, [fp, #-1424]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1436]
	adc	r3, r1, r3
	str	r3, [fp, #-1432]
	sub	r3, fp, #572
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1436]
	ldr	r1, [fp, #-1432]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1444]
	adc	r3, r1, r3
	str	r3, [fp, #-1440]
	sub	r3, fp, #524
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1444]
	ldr	r1, [fp, #-1440]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1452]
	adc	r3, r1, r3
	str	r3, [fp, #-1448]
	sub	r3, fp, #468
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1452]
	ldr	r1, [fp, #-1448]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1460]
	adc	r3, r1, r3
	str	r3, [fp, #-1456]
	sub	r3, fp, #404
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1460]
	ldr	r1, [fp, #-1456]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1468]
	adc	r3, r1, r3
	str	r3, [fp, #-1464]
	sub	r3, fp, #332
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1468]
	ldr	r1, [fp, #-1464]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1828]
	adc	r3, r3, r1
	str	r3, [fp, #-1824]
	ldr	r3, [fp, #-1828]
	ldr	r4, [fp, #-1824]
	str	r3, [fp, #-236]
	str	r4, [fp, #-232]
	sub	r1, fp, #988
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1052]
	ldr	r3, [fp, #-1048]
	adds	ip, r0, r2
	str	ip, [fp, #-1476]
	adc	r3, r1, r3
	str	r3, [fp, #-1472]
	sub	r3, fp, #932
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1476]
	ldr	r1, [fp, #-1472]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1484]
	adc	r3, r1, r3
	str	r3, [fp, #-1480]
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1484]
	ldr	r1, [fp, #-1480]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1492]
	adc	r3, r1, r3
	str	r3, [fp, #-1488]
	sub	r3, fp, #604
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1492]
	ldr	r1, [fp, #-1488]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1500]
	adc	r3, r1, r3
	str	r3, [fp, #-1496]
	sub	r3, fp, #564
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1500]
	ldr	r1, [fp, #-1496]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1508]
	adc	r3, r1, r3
	str	r3, [fp, #-1504]
	sub	r3, fp, #516
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1508]
	ldr	r1, [fp, #-1504]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1516]
	adc	r3, r1, r3
	str	r3, [fp, #-1512]
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1516]
	ldr	r1, [fp, #-1512]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1524]
	adc	r3, r1, r3
	str	r3, [fp, #-1520]
	sub	r3, fp, #396
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1524]
	ldr	r1, [fp, #-1520]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1532]
	adc	r3, r1, r3
	str	r3, [fp, #-1528]
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1532]
	ldr	r1, [fp, #-1528]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1836]
	adc	r3, r3, r1
	str	r3, [fp, #-1832]
	ldr	r3, [fp, #-1836]
	ldr	r4, [fp, #-1832]
	str	r3, [fp, #-228]
	str	r4, [fp, #-224]
	sub	r1, fp, #980
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1044]
	ldr	r3, [fp, #-1040]
	adds	ip, r0, r2
	str	ip, [fp, #-1540]
	adc	r3, r1, r3
	str	r3, [fp, #-1536]
	sub	r3, fp, #924
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1540]
	ldr	r1, [fp, #-1536]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1548]
	adc	r3, r1, r3
	str	r3, [fp, #-1544]
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1548]
	ldr	r1, [fp, #-1544]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1556]
	adc	r3, r1, r3
	str	r3, [fp, #-1552]
	sub	r3, fp, #836
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1556]
	ldr	r1, [fp, #-1552]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1564]
	adc	r3, r1, r3
	str	r3, [fp, #-1560]
	sub	r3, fp, #556
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1564]
	ldr	r1, [fp, #-1560]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1572]
	adc	r3, r1, r3
	str	r3, [fp, #-1568]
	sub	r3, fp, #508
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1572]
	ldr	r1, [fp, #-1568]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1580]
	adc	r3, r1, r3
	str	r3, [fp, #-1576]
	sub	r3, fp, #452
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1580]
	ldr	r1, [fp, #-1576]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1588]
	adc	r3, r1, r3
	str	r3, [fp, #-1584]
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1588]
	ldr	r1, [fp, #-1584]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1596]
	adc	r3, r1, r3
	str	r3, [fp, #-1592]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1596]
	ldr	r1, [fp, #-1592]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1844]
	adc	r3, r3, r1
	str	r3, [fp, #-1840]
	ldr	r3, [fp, #-1844]
	ldr	r4, [fp, #-1840]
	str	r3, [fp, #-220]
	str	r4, [fp, #-216]
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1036]
	ldr	r3, [fp, #-1032]
	adds	ip, r0, r2
	str	ip, [fp, #-1604]
	adc	r3, r1, r3
	str	r3, [fp, #-1600]
	sub	r3, fp, #916
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1604]
	ldr	r1, [fp, #-1600]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1612]
	adc	r3, r1, r3
	str	r3, [fp, #-1608]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1612]
	ldr	r1, [fp, #-1608]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1620]
	adc	r3, r1, r3
	str	r3, [fp, #-1616]
	sub	r3, fp, #828
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1620]
	ldr	r1, [fp, #-1616]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1628]
	adc	r3, r1, r3
	str	r3, [fp, #-1624]
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1628]
	ldr	r1, [fp, #-1624]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1636]
	adc	r3, r1, r3
	str	r3, [fp, #-1632]
	sub	r3, fp, #500
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1636]
	ldr	r1, [fp, #-1632]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1644]
	adc	r3, r1, r3
	str	r3, [fp, #-1640]
	sub	r3, fp, #444
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1644]
	ldr	r1, [fp, #-1640]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1652]
	adc	r3, r1, r3
	str	r3, [fp, #-1648]
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1652]
	ldr	r1, [fp, #-1648]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1660]
	adc	r3, r1, r3
	str	r3, [fp, #-1656]
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1660]
	ldr	r1, [fp, #-1656]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1852]
	adc	r3, r3, r1
	str	r3, [fp, #-1848]
	ldr	r3, [fp, #-1852]
	ldr	r4, [fp, #-1848]
	str	r3, [fp, #-212]
	str	r4, [fp, #-208]
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	ldr	r2, [fp, #-1028]
	ldr	r3, [fp, #-1024]
	adds	ip, r0, r2
	str	ip, [fp, #-1668]
	adc	r3, r1, r3
	str	r3, [fp, #-1664]
	sub	r3, fp, #908
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1668]
	ldr	r1, [fp, #-1664]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1676]
	adc	r3, r1, r3
	str	r3, [fp, #-1672]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1676]
	ldr	r1, [fp, #-1672]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1684]
	adc	r3, r1, r3
	str	r3, [fp, #-1680]
	sub	r3, fp, #820
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1684]
	ldr	r1, [fp, #-1680]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1692]
	adc	r3, r1, r3
	str	r3, [fp, #-1688]
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1692]
	ldr	r1, [fp, #-1688]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1700]
	adc	r3, r1, r3
	str	r3, [fp, #-1696]
	sub	r3, fp, #764
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1700]
	ldr	r1, [fp, #-1696]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1708]
	adc	r3, r1, r3
	str	r3, [fp, #-1704]
	sub	r3, fp, #436
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1708]
	ldr	r1, [fp, #-1704]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1716]
	adc	r3, r1, r3
	str	r3, [fp, #-1712]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1716]
	ldr	r1, [fp, #-1712]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1724]
	adc	r3, r1, r3
	str	r3, [fp, #-1720]
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1724]
	ldr	r1, [fp, #-1720]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1860]
	adc	r3, r3, r1
	str	r3, [fp, #-1856]
	ldr	r3, [fp, #-1860]
	ldr	r4, [fp, #-1856]
	str	r3, [fp, #-204]
	str	r4, [fp, #-200]
	sub	r1, fp, #956
	ldmia	r1, {r0-r1}
	sub	r3, fp, #1020
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1732]
	adc	r3, r1, r3
	str	r3, [fp, #-1728]
	sub	r3, fp, #900
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1732]
	ldr	r1, [fp, #-1728]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1740]
	adc	r3, r1, r3
	str	r3, [fp, #-1736]
	sub	r3, fp, #852
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1740]
	ldr	r1, [fp, #-1736]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1748]
	adc	r3, r1, r3
	str	r3, [fp, #-1744]
	sub	r3, fp, #812
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1748]
	ldr	r1, [fp, #-1744]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1756]
	adc	r3, r1, r3
	str	r3, [fp, #-1752]
	sub	r3, fp, #780
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1756]
	ldr	r1, [fp, #-1752]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1764]
	adc	r3, r1, r3
	str	r3, [fp, #-1760]
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1764]
	ldr	r1, [fp, #-1760]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1772]
	adc	r3, r1, r3
	str	r3, [fp, #-1768]
	sub	r3, fp, #740
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1772]
	ldr	r1, [fp, #-1768]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1780]
	adc	r3, r1, r3
	str	r3, [fp, #-1776]
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1780]
	ldr	r1, [fp, #-1776]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1788]
	adc	r3, r1, r3
	str	r3, [fp, #-1784]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1788]
	ldr	r1, [fp, #-1784]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1868]
	adc	r3, r3, r1
	str	r3, [fp, #-1864]
	ldr	r3, [fp, #-1868]
	ldr	r4, [fp, #-1864]
	str	r3, [fp, #-196]
	str	r4, [fp, #-192]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1876]
	adc	r3, r1, r3
	str	r3, [fp, #-1872]
	ldr	r3, [fp, #-1876]
	ldr	r4, [fp, #-1872]
	str	r3, [fp, #-188]
	str	r4, [fp, #-184]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-180]
	str	r1, [fp, #-176]
	ldr	r3, [fp, #-188]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1132]
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1884]
	adc	r3, r1, r3
	str	r3, [fp, #-1880]
	ldr	r3, [fp, #-1884]
	ldr	r4, [fp, #-1880]
	str	r3, [fp, #-172]
	str	r4, [fp, #-168]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-164]
	str	r1, [fp, #-160]
	ldr	r3, [fp, #-172]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1128]
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1892]
	adc	r3, r1, r3
	str	r3, [fp, #-1888]
	ldr	r3, [fp, #-1892]
	ldr	r4, [fp, #-1888]
	str	r3, [fp, #-156]
	str	r4, [fp, #-152]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-148]
	str	r1, [fp, #-144]
	ldr	r3, [fp, #-156]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1124]
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1900]
	adc	r3, r1, r3
	str	r3, [fp, #-1896]
	ldr	r3, [fp, #-1900]
	ldr	r4, [fp, #-1896]
	str	r3, [fp, #-140]
	str	r4, [fp, #-136]
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-132]
	str	r1, [fp, #-128]
	ldr	r3, [fp, #-140]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1120]
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1908]
	adc	r3, r1, r3
	str	r3, [fp, #-1904]
	ldr	r3, [fp, #-1908]
	ldr	r4, [fp, #-1904]
	str	r3, [fp, #-124]
	str	r4, [fp, #-120]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-116]
	str	r1, [fp, #-112]
	ldr	r3, [fp, #-124]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1116]
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1916]
	adc	r3, r1, r3
	str	r3, [fp, #-1912]
	ldr	r3, [fp, #-1916]
	ldr	r4, [fp, #-1912]
	str	r3, [fp, #-108]
	str	r4, [fp, #-104]
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-100]
	str	r1, [fp, #-96]
	ldr	r3, [fp, #-108]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1112]
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1924]
	adc	r3, r1, r3
	str	r3, [fp, #-1920]
	ldr	r3, [fp, #-1924]
	ldr	r4, [fp, #-1920]
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-92]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1108]
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1932]
	adc	r3, r1, r3
	str	r3, [fp, #-1928]
	ldr	r3, [fp, #-1932]
	ldr	r4, [fp, #-1928]
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1104]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1940]
	adc	r3, r1, r3
	str	r3, [fp, #-1936]
	ldr	r3, [fp, #-1940]
	ldr	r4, [fp, #-1936]
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-60]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1100]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r3, #3
	orr	r5, r5, r2, lsr #29
	lsl	r4, r2, #3
	mov	r2, r4
	mov	r3, r5
	adds	r2, r2, r0
	adc	r3, r3, r1
	adds	ip, r2, r2
	str	ip, [fp, #-1948]
	adc	r3, r3, r3
	str	r3, [fp, #-1944]
	ldr	r2, [fp, #-1948]
	ldr	r3, [fp, #-1944]
	adds	ip, r2, r0
	str	ip, [fp, #-1956]
	adc	r3, r3, r1
	str	r3, [fp, #-1952]
	ldr	r3, [fp, #-1956]
	ldr	r4, [fp, #-1952]
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	ldr	r3, [fp, #-1136]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-1964]
	adc	r3, r1, r3
	str	r3, [fp, #-1960]
	ldr	r3, [fp, #-1964]
	ldr	r4, [fp, #-1960]
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	mov	r3, r2
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-36]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-1092]
	ldr	r2, [fp, #-1096]
	ldr	r3, [fp, #-1132]
	add	r3, r2, r3
	str	r3, [fp, #-1088]
	ldr	r3, [fp, #-1088]
	lsr	r3, r3, #25
	strb	r3, [fp, #-1137]
	ldr	r3, [fp, #-1088]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-1084]
	ldrb	r3, [fp, #-1137]	@ zero_extendqisi2
	ldr	r2, [fp, #-1128]
	add	r3, r2, r3
	str	r3, [fp, #-1080]
	ldr	r3, [fp, #-1144]
	ldr	r2, [fp, #-1092]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #4
	ldr	r2, [fp, #-1084]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #8
	ldr	r2, [fp, #-1080]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #12
	ldr	r2, [fp, #-1124]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #16
	ldr	r2, [fp, #-1120]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #20
	ldr	r2, [fp, #-1116]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #24
	ldr	r2, [fp, #-1112]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #28
	ldr	r2, [fp, #-1108]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #32
	ldr	r2, [fp, #-1104]
	str	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #36
	ldr	r2, [fp, #-1100]
	str	r2, [r3]
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_25519_carry_mul, .-fiat_25519_carry_mul
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_carry_square, %function
fiat_25519_carry_square:
	@ args = 0, pretend = 0, frame = 1336
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #1328
	sub	sp, sp, #12
	str	r0, [fp, #-864]
	str	r1, [fp, #-868]
	ldr	r3, [fp, #-868]
	add	r3, r3, #36
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-856]
	ldr	r3, [fp, #-856]
	lsl	r3, r3, #1
	str	r3, [fp, #-852]
	ldr	r3, [fp, #-868]
	add	r3, r3, #36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-848]
	ldr	r3, [fp, #-868]
	add	r3, r3, #32
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-844]
	ldr	r3, [fp, #-844]
	mov	r2, r3
	mov	r3, #0
	adds	r4, r2, r2
	adc	r5, r3, r3
	str	r4, [fp, #-732]
	str	r5, [fp, #-728]
	ldr	r3, [fp, #-868]
	add	r3, r3, #32
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-840]
	ldr	r3, [fp, #-868]
	add	r3, r3, #28
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-836]
	ldr	r3, [fp, #-836]
	lsl	r3, r3, #1
	str	r3, [fp, #-832]
	ldr	r3, [fp, #-868]
	add	r3, r3, #28
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-828]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-824]
	ldr	r3, [fp, #-824]
	mov	r2, r3
	mov	r3, #0
	adds	r6, r2, r2
	adc	r7, r3, r3
	str	r6, [fp, #-724]
	str	r7, [fp, #-720]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-820]
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-816]
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-812]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-808]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-804]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-800]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-796]
	ldr	r3, [fp, #-868]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-856]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-716]
	str	r7, [fp, #-712]
	str	r6, [fp, #-716]
	str	r7, [fp, #-712]
	ldr	r3, [fp, #-868]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-852]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-708]
	str	r7, [fp, #-704]
	str	r6, [fp, #-708]
	str	r7, [fp, #-704]
	ldr	r3, [fp, #-868]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-844]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-700]
	str	r7, [fp, #-696]
	str	r6, [fp, #-700]
	str	r7, [fp, #-696]
	ldr	r3, [fp, #-852]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #28
	ldr	r3, [r3]
	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
	adds	r8, r2, r2
	adc	r9, r3, r3
	str	r8, [fp, #-692]
	str	r9, [fp, #-688]
	ldr	r3, [fp, #-868]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-684]
	str	r5, [fp, #-680]
	str	r4, [fp, #-684]
	str	r5, [fp, #-680]
	ldr	r3, [fp, #-868]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-836]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-676]
	str	r7, [fp, #-672]
	str	r6, [fp, #-676]
	str	r7, [fp, #-672]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-852]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-668]
	str	r7, [fp, #-664]
	str	r6, [fp, #-668]
	str	r7, [fp, #-664]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-660]
	str	r5, [fp, #-656]
	str	r4, [fp, #-660]
	str	r5, [fp, #-656]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-832]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-652]
	str	r7, [fp, #-648]
	str	r6, [fp, #-652]
	str	r7, [fp, #-648]
	ldr	r3, [fp, #-868]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-824]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-644]
	str	r7, [fp, #-640]
	str	r6, [fp, #-644]
	str	r7, [fp, #-640]
	ldr	r3, [fp, #-852]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	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
	adds	r1, r2, r2
	str	r1, [fp, #-1156]
	adc	r3, r3, r3
	str	r3, [fp, #-1152]
	ldr	r3, [fp, #-1156]
	ldr	r4, [fp, #-1152]
	str	r3, [fp, #-636]
	str	r4, [fp, #-632]
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-628]
	str	r5, [fp, #-624]
	str	r4, [fp, #-628]
	str	r5, [fp, #-624]
	ldr	r3, [fp, #-832]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	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
	adds	r1, r2, r2
	str	r1, [fp, #-1164]
	adc	r3, r3, r3
	str	r3, [fp, #-1160]
	ldr	r3, [fp, #-1164]
	ldr	r4, [fp, #-1160]
	str	r3, [fp, #-620]
	str	r4, [fp, #-616]
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-720]
	mul	r2, r0, r3
	ldr	r3, [fp, #-724]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-724]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-612]
	str	r5, [fp, #-608]
	str	r4, [fp, #-612]
	str	r5, [fp, #-608]
	ldr	r3, [fp, #-868]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-816]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-604]
	str	r7, [fp, #-600]
	str	r6, [fp, #-604]
	str	r7, [fp, #-600]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-852]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-596]
	str	r7, [fp, #-592]
	str	r6, [fp, #-596]
	str	r7, [fp, #-592]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-588]
	str	r5, [fp, #-584]
	str	r4, [fp, #-588]
	str	r5, [fp, #-584]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-832]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-580]
	str	r7, [fp, #-576]
	str	r6, [fp, #-580]
	str	r7, [fp, #-576]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-720]
	mul	r2, r0, r3
	ldr	r3, [fp, #-724]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-724]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-572]
	str	r5, [fp, #-568]
	str	r4, [fp, #-572]
	str	r5, [fp, #-568]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-812]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-564]
	str	r7, [fp, #-560]
	str	r6, [fp, #-564]
	str	r7, [fp, #-560]
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-556]
	str	r7, [fp, #-552]
	str	r6, [fp, #-556]
	str	r7, [fp, #-552]
	ldr	r3, [fp, #-852]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	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
	adds	r1, r2, r2
	str	r1, [fp, #-1172]
	adc	r3, r3, r3
	str	r3, [fp, #-1168]
	ldr	r3, [fp, #-1172]
	ldr	r4, [fp, #-1168]
	str	r3, [fp, #-548]
	str	r4, [fp, #-544]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-540]
	str	r5, [fp, #-536]
	str	r4, [fp, #-540]
	str	r5, [fp, #-536]
	ldr	r3, [fp, #-832]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	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
	adds	r1, r2, r2
	str	r1, [fp, #-1180]
	adc	r3, r3, r3
	str	r3, [fp, #-1176]
	ldr	r3, [fp, #-1180]
	ldr	r4, [fp, #-1176]
	str	r3, [fp, #-532]
	str	r4, [fp, #-528]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-820]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-524]
	str	r7, [fp, #-520]
	str	r6, [fp, #-524]
	str	r7, [fp, #-520]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-812]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-516]
	str	r7, [fp, #-512]
	str	r6, [fp, #-516]
	str	r7, [fp, #-512]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-808]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-508]
	str	r7, [fp, #-504]
	str	r6, [fp, #-508]
	str	r7, [fp, #-504]
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-500]
	str	r7, [fp, #-496]
	str	r6, [fp, #-500]
	str	r7, [fp, #-496]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-852]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-492]
	str	r7, [fp, #-488]
	str	r6, [fp, #-492]
	str	r7, [fp, #-488]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	ldr	r3, [fp, #-728]
	mul	r2, r0, r3
	ldr	r3, [fp, #-732]
	mul	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-732]
	umull	r4, r5, r3, r0
	add	r3, r2, r5
	mov	r5, r3
	str	r4, [fp, #-484]
	str	r5, [fp, #-480]
	str	r4, [fp, #-484]
	str	r5, [fp, #-480]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-828]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-476]
	str	r7, [fp, #-472]
	str	r6, [fp, #-476]
	str	r7, [fp, #-472]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-820]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-468]
	str	r7, [fp, #-464]
	str	r6, [fp, #-468]
	str	r7, [fp, #-464]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-812]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-460]
	str	r7, [fp, #-456]
	str	r6, [fp, #-460]
	str	r7, [fp, #-456]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-808]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-452]
	str	r7, [fp, #-448]
	str	r6, [fp, #-452]
	str	r7, [fp, #-448]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-804]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-444]
	str	r7, [fp, #-440]
	str	r6, [fp, #-444]
	str	r7, [fp, #-440]
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-436]
	str	r7, [fp, #-432]
	str	r6, [fp, #-436]
	str	r7, [fp, #-432]
	ldr	r3, [fp, #-852]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	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
	adds	r1, r2, r2
	str	r1, [fp, #-1188]
	adc	r3, r3, r3
	str	r3, [fp, #-1184]
	ldr	r3, [fp, #-1188]
	ldr	r4, [fp, #-1184]
	str	r3, [fp, #-428]
	str	r4, [fp, #-424]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-840]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-420]
	str	r7, [fp, #-416]
	str	r6, [fp, #-420]
	str	r7, [fp, #-416]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-828]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-412]
	str	r7, [fp, #-408]
	str	r6, [fp, #-412]
	str	r7, [fp, #-408]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-820]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-404]
	str	r7, [fp, #-400]
	str	r6, [fp, #-404]
	str	r7, [fp, #-400]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-812]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-396]
	str	r7, [fp, #-392]
	str	r6, [fp, #-396]
	str	r7, [fp, #-392]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-808]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-388]
	str	r7, [fp, #-384]
	str	r6, [fp, #-388]
	str	r7, [fp, #-384]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-804]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-380]
	str	r7, [fp, #-376]
	str	r6, [fp, #-380]
	str	r7, [fp, #-376]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-800]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-372]
	str	r7, [fp, #-368]
	str	r6, [fp, #-372]
	str	r7, [fp, #-368]
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-364]
	str	r7, [fp, #-360]
	str	r6, [fp, #-364]
	str	r7, [fp, #-360]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-848]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-356]
	str	r7, [fp, #-352]
	str	r6, [fp, #-356]
	str	r7, [fp, #-352]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-840]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-348]
	str	r7, [fp, #-344]
	str	r6, [fp, #-348]
	str	r7, [fp, #-344]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-828]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-340]
	str	r7, [fp, #-336]
	str	r6, [fp, #-340]
	str	r7, [fp, #-336]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-820]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-332]
	str	r7, [fp, #-328]
	str	r6, [fp, #-332]
	str	r7, [fp, #-328]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-812]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-324]
	str	r7, [fp, #-320]
	str	r6, [fp, #-324]
	str	r7, [fp, #-320]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-808]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-316]
	str	r7, [fp, #-312]
	str	r6, [fp, #-316]
	str	r7, [fp, #-312]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-804]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-308]
	str	r7, [fp, #-304]
	str	r6, [fp, #-308]
	str	r7, [fp, #-304]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-800]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-300]
	str	r7, [fp, #-296]
	str	r6, [fp, #-300]
	str	r7, [fp, #-296]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-796]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-292]
	str	r7, [fp, #-288]
	str	r6, [fp, #-292]
	str	r7, [fp, #-288]
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	str	r6, [fp, #-284]
	str	r7, [fp, #-280]
	str	r6, [fp, #-284]
	str	r7, [fp, #-280]
	sub	r1, fp, #572
	ldmia	r1, {r0-r1}
	sub	r3, fp, #604
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-876]
	adc	r3, r1, r3
	str	r3, [fp, #-872]
	sub	r3, fp, #532
	ldmia	r3, {r2-r3}
	sub	r1, fp, #876
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-884]
	adc	r3, r1, r3
	str	r3, [fp, #-880]
	sub	r3, fp, #484
	ldmia	r3, {r2-r3}
	sub	r1, fp, #884
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-892]
	adc	r3, r1, r3
	str	r3, [fp, #-888]
	sub	r3, fp, #428
	ldmia	r3, {r2-r3}
	sub	r1, fp, #892
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-900]
	adc	r3, r1, r3
	str	r3, [fp, #-896]
	sub	r3, fp, #284
	ldmia	r3, {r2-r3}
	sub	r1, fp, #900
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1196]
	adc	r3, r3, r1
	str	r3, [fp, #-1192]
	ldr	r3, [fp, #-1196]
	ldr	r4, [fp, #-1192]
	str	r3, [fp, #-276]
	str	r4, [fp, #-272]
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-268]
	str	r1, [fp, #-264]
	ldr	r3, [fp, #-276]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-792]
	sub	r1, fp, #524
	ldmia	r1, {r0-r1}
	sub	r3, fp, #564
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-908]
	adc	r3, r1, r3
	str	r3, [fp, #-904]
	sub	r3, fp, #476
	ldmia	r3, {r2-r3}
	sub	r1, fp, #908
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-916]
	adc	r3, r1, r3
	str	r3, [fp, #-912]
	sub	r3, fp, #420
	ldmia	r3, {r2-r3}
	sub	r1, fp, #916
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-924]
	adc	r3, r1, r3
	str	r3, [fp, #-920]
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	sub	r1, fp, #924
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1204]
	adc	r3, r3, r1
	str	r3, [fp, #-1200]
	ldr	r3, [fp, #-1204]
	ldr	r4, [fp, #-1200]
	str	r3, [fp, #-260]
	str	r4, [fp, #-256]
	sub	r1, fp, #556
	ldmia	r1, {r0-r1}
	sub	r3, fp, #716
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-932]
	adc	r3, r1, r3
	str	r3, [fp, #-928]
	sub	r3, fp, #516
	ldmia	r3, {r2-r3}
	sub	r1, fp, #932
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-940]
	adc	r3, r1, r3
	str	r3, [fp, #-936]
	sub	r3, fp, #468
	ldmia	r3, {r2-r3}
	sub	r1, fp, #940
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-948]
	adc	r3, r1, r3
	str	r3, [fp, #-944]
	sub	r3, fp, #412
	ldmia	r3, {r2-r3}
	sub	r1, fp, #948
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-956]
	adc	r3, r1, r3
	str	r3, [fp, #-952]
	sub	r3, fp, #348
	ldmia	r3, {r2-r3}
	sub	r1, fp, #956
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1212]
	adc	r3, r3, r1
	str	r3, [fp, #-1208]
	ldr	r3, [fp, #-1212]
	ldr	r4, [fp, #-1208]
	str	r3, [fp, #-252]
	str	r4, [fp, #-248]
	sub	r1, fp, #508
	ldmia	r1, {r0-r1}
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-964]
	adc	r3, r1, r3
	str	r3, [fp, #-960]
	sub	r3, fp, #460
	ldmia	r3, {r2-r3}
	sub	r1, fp, #964
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-972]
	adc	r3, r1, r3
	str	r3, [fp, #-968]
	sub	r3, fp, #404
	ldmia	r3, {r2-r3}
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-980]
	adc	r3, r1, r3
	str	r3, [fp, #-976]
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	sub	r1, fp, #980
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1220]
	adc	r3, r3, r1
	str	r3, [fp, #-1216]
	ldr	r3, [fp, #-1220]
	ldr	r4, [fp, #-1216]
	str	r3, [fp, #-244]
	str	r4, [fp, #-240]
	sub	r1, fp, #692
	ldmia	r1, {r0-r1}
	sub	r3, fp, #700
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-988]
	adc	r3, r1, r3
	str	r3, [fp, #-984]
	sub	r3, fp, #500
	ldmia	r3, {r2-r3}
	sub	r1, fp, #988
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-996]
	adc	r3, r1, r3
	str	r3, [fp, #-992]
	sub	r3, fp, #452
	ldmia	r3, {r2-r3}
	sub	r1, fp, #996
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1004]
	adc	r3, r1, r3
	str	r3, [fp, #-1000]
	sub	r3, fp, #396
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1004
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1012]
	adc	r3, r1, r3
	str	r3, [fp, #-1008]
	sub	r3, fp, #332
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1012
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1228]
	adc	r3, r3, r1
	str	r3, [fp, #-1224]
	ldr	r3, [fp, #-1228]
	ldr	r4, [fp, #-1224]
	str	r3, [fp, #-236]
	str	r4, [fp, #-232]
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r3, fp, #684
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1020]
	adc	r3, r1, r3
	str	r3, [fp, #-1016]
	sub	r3, fp, #444
	ldmia	r3, {r2-r3}
	sub	r1, fp, #1020
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1028]
	adc	r3, r1, r3
	str	r3, [fp, #-1024]
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1028]
	ldr	r1, [fp, #-1024]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1036]
	adc	r3, r1, r3
	str	r3, [fp, #-1032]
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1036]
	ldr	r1, [fp, #-1032]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1236]
	adc	r3, r3, r1
	str	r3, [fp, #-1232]
	ldr	r3, [fp, #-1236]
	ldr	r4, [fp, #-1232]
	str	r3, [fp, #-228]
	str	r4, [fp, #-224]
	sub	r1, fp, #660
	ldmia	r1, {r0-r1}
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1044]
	adc	r3, r1, r3
	str	r3, [fp, #-1040]
	sub	r3, fp, #636
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1044]
	ldr	r1, [fp, #-1040]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1052]
	adc	r3, r1, r3
	str	r3, [fp, #-1048]
	sub	r3, fp, #436
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1052]
	ldr	r1, [fp, #-1048]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1060]
	adc	r3, r1, r3
	str	r3, [fp, #-1056]
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1068]
	adc	r3, r1, r3
	str	r3, [fp, #-1064]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1068]
	ldr	r1, [fp, #-1064]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1244]
	adc	r3, r3, r1
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1244]
	ldr	r4, [fp, #-1240]
	str	r3, [fp, #-220]
	str	r4, [fp, #-216]
	sub	r1, fp, #628
	ldmia	r1, {r0-r1}
	sub	r3, fp, #652
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1076]
	adc	r3, r1, r3
	str	r3, [fp, #-1072]
	sub	r3, fp, #596
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1076]
	ldr	r1, [fp, #-1072]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1084]
	adc	r3, r1, r3
	str	r3, [fp, #-1080]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1084]
	ldr	r1, [fp, #-1080]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1092]
	adc	r3, r1, r3
	str	r3, [fp, #-1088]
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1092]
	ldr	r1, [fp, #-1088]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1252]
	adc	r3, r3, r1
	str	r3, [fp, #-1248]
	ldr	r3, [fp, #-1252]
	ldr	r4, [fp, #-1248]
	str	r3, [fp, #-212]
	str	r4, [fp, #-208]
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1100]
	adc	r3, r1, r3
	str	r3, [fp, #-1096]
	sub	r3, fp, #588
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1100]
	ldr	r1, [fp, #-1096]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1108]
	adc	r3, r1, r3
	str	r3, [fp, #-1104]
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1108]
	ldr	r1, [fp, #-1104]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1116]
	adc	r3, r1, r3
	str	r3, [fp, #-1112]
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1116]
	ldr	r1, [fp, #-1112]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1124]
	adc	r3, r1, r3
	str	r3, [fp, #-1120]
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1124]
	ldr	r1, [fp, #-1120]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1260]
	adc	r3, r3, r1
	str	r3, [fp, #-1256]
	ldr	r3, [fp, #-1260]
	ldr	r4, [fp, #-1256]
	str	r3, [fp, #-204]
	str	r4, [fp, #-200]
	sub	r1, fp, #580
	ldmia	r1, {r0-r1}
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1132]
	adc	r3, r1, r3
	str	r3, [fp, #-1128]
	sub	r3, fp, #540
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1132]
	ldr	r1, [fp, #-1128]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1140]
	adc	r3, r1, r3
	str	r3, [fp, #-1136]
	sub	r3, fp, #492
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1140]
	ldr	r1, [fp, #-1136]
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-1148]
	adc	r3, r1, r3
	str	r3, [fp, #-1144]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1148]
	ldr	r1, [fp, #-1144]
	mov	ip, r0
	adds	ip, r2, ip
	str	ip, [fp, #-1268]
	adc	r3, r3, r1
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1268]
	ldr	r4, [fp, #-1264]
	str	r3, [fp, #-196]
	str	r4, [fp, #-192]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1276]
	adc	r3, r1, r3
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1276]
	ldr	r4, [fp, #-1272]
	str	r3, [fp, #-188]
	str	r4, [fp, #-184]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-180]
	str	r1, [fp, #-176]
	ldr	r3, [fp, #-188]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-788]
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1284]
	adc	r3, r1, r3
	str	r3, [fp, #-1280]
	ldr	r3, [fp, #-1284]
	ldr	r4, [fp, #-1280]
	str	r3, [fp, #-172]
	str	r4, [fp, #-168]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-164]
	str	r1, [fp, #-160]
	ldr	r3, [fp, #-172]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-784]
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1292]
	adc	r3, r1, r3
	str	r3, [fp, #-1288]
	ldr	r3, [fp, #-1292]
	ldr	r4, [fp, #-1288]
	str	r3, [fp, #-156]
	str	r4, [fp, #-152]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-148]
	str	r1, [fp, #-144]
	ldr	r3, [fp, #-156]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-780]
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1300]
	adc	r3, r1, r3
	str	r3, [fp, #-1296]
	ldr	r3, [fp, #-1300]
	ldr	r4, [fp, #-1296]
	str	r3, [fp, #-140]
	str	r4, [fp, #-136]
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-132]
	str	r1, [fp, #-128]
	ldr	r3, [fp, #-140]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-776]
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1308]
	adc	r3, r1, r3
	str	r3, [fp, #-1304]
	ldr	r3, [fp, #-1308]
	ldr	r4, [fp, #-1304]
	str	r3, [fp, #-124]
	str	r4, [fp, #-120]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	str	r0, [fp, #-116]
	str	r1, [fp, #-112]
	ldr	r3, [fp, #-124]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-772]
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1316]
	adc	r3, r1, r3
	str	r3, [fp, #-1312]
	ldr	r3, [fp, #-1316]
	ldr	r4, [fp, #-1312]
	str	r3, [fp, #-108]
	str	r4, [fp, #-104]
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	str	r0, [fp, #-100]
	str	r1, [fp, #-96]
	ldr	r3, [fp, #-108]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-768]
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1324]
	adc	r3, r1, r3
	str	r3, [fp, #-1320]
	ldr	r3, [fp, #-1324]
	ldr	r4, [fp, #-1320]
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-92]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-764]
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1332]
	adc	r3, r1, r3
	str	r3, [fp, #-1328]
	ldr	r3, [fp, #-1332]
	ldr	r4, [fp, #-1328]
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-760]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-1340]
	adc	r3, r1, r3
	str	r3, [fp, #-1336]
	ldr	r3, [fp, #-1340]
	ldr	r4, [fp, #-1336]
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-60]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-756]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r3, #3
	orr	r5, r5, r2, lsr #29
	lsl	r4, r2, #3
	mov	r2, r4
	mov	r3, r5
	adds	r2, r2, r0
	adc	r3, r3, r1
	adds	ip, r2, r2
	str	ip, [fp, #-1348]
	adc	r3, r3, r3
	str	r3, [fp, #-1344]
	ldr	r2, [fp, #-1348]
	ldr	r3, [fp, #-1344]
	adds	ip, r2, r0
	str	ip, [fp, #-1356]
	adc	r3, r3, r1
	str	r3, [fp, #-1352]
	ldr	r3, [fp, #-1356]
	ldr	r4, [fp, #-1352]
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	ldr	r3, [fp, #-792]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-1364]
	adc	r3, r1, r3
	str	r3, [fp, #-1360]
	ldr	r3, [fp, #-1364]
	ldr	r4, [fp, #-1360]
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	mov	r3, r2
	str	r3, [fp, #-752]
	ldr	r3, [fp, #-36]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-748]
	ldr	r2, [fp, #-752]
	ldr	r3, [fp, #-788]
	add	r3, r2, r3
	str	r3, [fp, #-744]
	ldr	r3, [fp, #-744]
	lsr	r3, r3, #25
	strb	r3, [fp, #-857]
	ldr	r3, [fp, #-744]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-740]
	ldrb	r3, [fp, #-857]	@ zero_extendqisi2
	ldr	r2, [fp, #-784]
	add	r3, r2, r3
	str	r3, [fp, #-736]
	ldr	r3, [fp, #-864]
	ldr	r2, [fp, #-748]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #4
	ldr	r2, [fp, #-740]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #8
	ldr	r2, [fp, #-736]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #12
	ldr	r2, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #16
	ldr	r2, [fp, #-776]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #20
	ldr	r2, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #24
	ldr	r2, [fp, #-768]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #28
	ldr	r2, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #32
	ldr	r2, [fp, #-760]
	str	r2, [r3]
	ldr	r3, [fp, #-864]
	add	r3, r3, #36
	ldr	r2, [fp, #-756]
	str	r2, [r3]
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_25519_carry_square, .-fiat_25519_carry_square
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_carry, %function
fiat_25519_carry:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #100
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r2, r3, #26
	ldr	r3, [fp, #-100]
	add	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	lsr	r2, r3, #25
	ldr	r3, [fp, #-100]
	add	r3, r3, #8
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	lsr	r2, r3, #26
	ldr	r3, [fp, #-100]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	lsr	r2, r3, #25
	ldr	r3, [fp, #-100]
	add	r3, r3, #16
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r2, r3, #26
	ldr	r3, [fp, #-100]
	add	r3, r3, #20
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	lsr	r2, r3, #25
	ldr	r3, [fp, #-100]
	add	r3, r3, #24
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	lsr	r2, r3, #26
	ldr	r3, [fp, #-100]
	add	r3, r3, #28
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	lsr	r2, r3, #25
	ldr	r3, [fp, #-100]
	add	r3, r3, #32
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r2, r3, #26
	ldr	r3, [fp, #-100]
	add	r3, r3, #36
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-92]
	bic	r1, r3, #-67108864
	ldr	r3, [fp, #-56]
	lsr	r2, r3, #25
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	lsr	r3, r3, #26
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-88]
	bic	r3, r3, #-33554432
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-52]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-48]
	lsr	r3, r3, #25
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-84]
	bic	r3, r3, #-67108864
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-80]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-72]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-68]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-64]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-60]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-56]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #4
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #16
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #20
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #24
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #28
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_carry, .-fiat_25519_carry
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_add, %function
fiat_25519_add:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #60
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #20
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #24
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #28
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	add	r3, r3, #32
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #32
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-52]
	add	r3, r3, #36
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #36
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #16
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #20
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #24
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #28
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_add, .-fiat_25519_add
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_sub, %function
fiat_25519_sub:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #60
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	sub	r3, r2, r3
	add	r3, r3, #134217728
	sub	r3, r3, #38
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-67108862
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-134217726
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-67108862
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-134217726
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-67108862
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-134217726
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #28
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-67108862
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	add	r3, r3, #32
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #32
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-134217726
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-52]
	add	r3, r3, #36
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #36
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r3, r3, #-67108862
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #16
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #20
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #24
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #28
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_sub, .-fiat_25519_sub
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_opp, %function
fiat_25519_opp:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3]
	ldr	r3, .L14
	sub	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r2, [r3]
	mvn	r3, #-67108863
	sub	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r2, [r3]
	mvn	r3, #-134217727
	sub	r3, r3, r2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r2, [r3]
	mvn	r3, #-67108863
	sub	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r2, [r3]
	mvn	r3, #-134217727
	sub	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r2, [r3]
	mvn	r3, #-67108863
	sub	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r2, [r3]
	mvn	r3, #-134217727
	sub	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	ldr	r2, [r3]
	mvn	r3, #-67108863
	sub	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	add	r3, r3, #32
	ldr	r2, [r3]
	mvn	r3, #-134217727
	sub	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-52]
	add	r3, r3, #36
	ldr	r2, [r3]
	mvn	r3, #-67108863
	sub	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #16
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #20
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #24
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #28
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L15:
	.align	2
.L14:
	.word	134217690
	.size	fiat_25519_opp, .-fiat_25519_opp
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_selectznz, %function
fiat_25519_selectznz:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	mov	r3, r1
	strb	r3, [fp, #-57]
	ldr	r3, .L18
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #48
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #44
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #40
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #12
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #36
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #16
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #32
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #20
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #28
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #24
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #24
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #28
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #20
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #32
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #32
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #16
	bl	fiat_25519_cmovznz_u32
	ldr	r3, [fp, #-64]
	add	r3, r3, #36
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #36
	ldr	r3, [r3]
	ldrb	r1, [fp, #-57]	@ zero_extendqisi2
	sub	r0, fp, #12
	bl	fiat_25519_cmovznz_u32
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #20
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #24
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #28
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #32
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #36
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L18
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L17
	bl	__stack_chk_fail
.L17:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	.LC0
	.size	fiat_25519_selectznz, .-fiat_25519_selectznz
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_to_bytes, %function
fiat_25519_to_bytes:
	@ args = 0, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #312
	str	r0, [fp, #-304]
	str	r1, [fp, #-308]
	ldr	r3, .L22
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-308]
	ldr	r3, [r3]
	sub	r1, fp, #296
	sub	r0, fp, #236
	ldr	r2, .L22+4
	str	r2, [sp]
	mov	r2, #0
	bl	fiat_25519_subborrowx_u26
	ldrb	r2, [fp, #-296]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r1, r1, #3
	sub	r0, fp, #232
	mvn	ip, #-33554432
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u25
	ldrb	r2, [fp, #-295]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r1, r1, #2
	sub	r0, fp, #228
	mvn	ip, #-67108864
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u26
	ldrb	r2, [fp, #-294]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #12
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r1, r1, #1
	sub	r0, fp, #224
	mvn	ip, #-33554432
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u25
	ldrb	r2, [fp, #-293]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #16
	ldr	r3, [r3]
	sub	r1, fp, #292
	sub	r0, fp, #220
	mvn	ip, #-67108864
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u26
	ldrb	r2, [fp, #-292]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r1, fp, #288
	sub	r1, r1, #3
	sub	r0, fp, #216
	mvn	ip, #-33554432
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u25
	ldrb	r2, [fp, #-291]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #24
	ldr	r3, [r3]
	sub	r1, fp, #288
	sub	r1, r1, #2
	sub	r0, fp, #212
	mvn	ip, #-67108864
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u26
	ldrb	r2, [fp, #-290]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #28
	ldr	r3, [r3]
	sub	r1, fp, #288
	sub	r1, r1, #1
	sub	r0, fp, #208
	mvn	ip, #-33554432
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u25
	ldrb	r2, [fp, #-289]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #32
	ldr	r3, [r3]
	sub	r1, fp, #288
	sub	r0, fp, #204
	mvn	ip, #-67108864
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u26
	ldrb	r2, [fp, #-288]	@ zero_extendqisi2
	ldr	r3, [fp, #-308]
	add	r3, r3, #36
	ldr	r3, [r3]
	sub	r1, fp, #284
	sub	r1, r1, #3
	sub	r0, fp, #200
	mvn	ip, #-33554432
	str	ip, [sp]
	bl	fiat_25519_subborrowx_u25
	ldrb	r1, [fp, #-287]	@ zero_extendqisi2
	sub	r0, fp, #196
	mvn	r3, #0
	mov	r2, #0
	bl	fiat_25519_cmovznz_u32
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-67108864
	bic	r3, r3, #18
	sub	r1, fp, #284
	sub	r1, r1, #2
	sub	r0, fp, #192
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	bl	fiat_25519_addcarryx_u26
	ldrb	r2, [fp, #-286]	@ zero_extendqisi2
	ldr	ip, [fp, #-232]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-33554432
	sub	r1, fp, #284
	sub	r1, r1, #1
	sub	r0, fp, #188
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u25
	ldrb	r2, [fp, #-285]	@ zero_extendqisi2
	ldr	ip, [fp, #-228]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-67108864
	sub	r1, fp, #284
	sub	r0, fp, #184
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u26
	ldrb	r2, [fp, #-284]	@ zero_extendqisi2
	ldr	ip, [fp, #-224]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-33554432
	sub	r1, fp, #280
	sub	r1, r1, #3
	sub	r0, fp, #180
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u25
	ldrb	r2, [fp, #-283]	@ zero_extendqisi2
	ldr	ip, [fp, #-220]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-67108864
	sub	r1, fp, #280
	sub	r1, r1, #2
	sub	r0, fp, #176
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u26
	ldrb	r2, [fp, #-282]	@ zero_extendqisi2
	ldr	ip, [fp, #-216]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-33554432
	sub	r1, fp, #280
	sub	r1, r1, #1
	sub	r0, fp, #172
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u25
	ldrb	r2, [fp, #-281]	@ zero_extendqisi2
	ldr	ip, [fp, #-212]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-67108864
	sub	r1, fp, #280
	sub	r0, fp, #168
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u26
	ldrb	r2, [fp, #-280]	@ zero_extendqisi2
	ldr	ip, [fp, #-208]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-33554432
	sub	r1, fp, #276
	sub	r1, r1, #3
	sub	r0, fp, #164
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u25
	ldrb	r2, [fp, #-279]	@ zero_extendqisi2
	ldr	ip, [fp, #-204]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-67108864
	sub	r1, fp, #276
	sub	r1, r1, #2
	sub	r0, fp, #160
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u26
	ldrb	r2, [fp, #-278]	@ zero_extendqisi2
	ldr	ip, [fp, #-200]
	ldr	r3, [fp, #-196]
	bic	r3, r3, #-33554432
	sub	r1, fp, #276
	sub	r1, r1, #1
	sub	r0, fp, #156
	str	r3, [sp]
	mov	r3, ip
	bl	fiat_25519_addcarryx_u25
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #6
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #3
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #1
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #6
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #5
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-188]
	lsl	r3, r3, #2
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-192]
	strb	r3, [fp, #-276]
	ldr	r3, [fp, #-192]
	lsr	r3, r3, #8
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	strb	r3, [fp, #-275]
	ldr	r3, [fp, #-120]
	lsr	r3, r3, #8
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	strb	r3, [fp, #-274]
	ldr	r3, [fp, #-116]
	lsr	r3, r3, #8
	strb	r3, [fp, #-273]
	ldrb	r3, [fp, #-273]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	strb	r3, [fp, #-272]
	ldr	r3, [fp, #-112]
	lsr	r3, r3, #8
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	strb	r3, [fp, #-271]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	strb	r3, [fp, #-270]
	ldr	r3, [fp, #-104]
	lsr	r3, r3, #8
	strb	r3, [fp, #-269]
	ldrb	r3, [fp, #-269]	@ zero_extendqisi2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	strb	r3, [fp, #-268]
	ldr	r3, [fp, #-100]
	lsr	r3, r3, #8
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	strb	r3, [fp, #-267]
	ldr	r3, [fp, #-96]
	lsr	r3, r3, #8
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	strb	r3, [fp, #-266]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	strb	r3, [fp, #-265]
	ldrb	r3, [fp, #-265]	@ zero_extendqisi2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	strb	r3, [fp, #-264]
	ldr	r3, [fp, #-88]
	lsr	r3, r3, #8
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	strb	r3, [fp, #-263]
	ldr	r3, [fp, #-84]
	lsr	r3, r3, #8
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	strb	r3, [fp, #-262]
	ldr	r3, [fp, #-80]
	lsr	r3, r3, #8
	strb	r3, [fp, #-261]
	ldrb	r3, [fp, #-261]	@ zero_extendqisi2
	ldr	r2, [fp, #-136]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	strb	r3, [fp, #-260]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	strb	r3, [fp, #-259]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #8
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	strb	r3, [fp, #-258]
	ldr	r3, [fp, #-68]
	lsr	r3, r3, #8
	strb	r3, [fp, #-257]
	ldr	r3, [fp, #-172]
	strb	r3, [fp, #-256]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	strb	r3, [fp, #-255]
	ldr	r3, [fp, #-64]
	lsr	r3, r3, #8
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	strb	r3, [fp, #-254]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	strb	r3, [fp, #-253]
	ldrb	r3, [fp, #-253]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	strb	r3, [fp, #-252]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	strb	r3, [fp, #-251]
	ldr	r3, [fp, #-52]
	lsr	r3, r3, #8
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	strb	r3, [fp, #-250]
	ldr	r3, [fp, #-48]
	lsr	r3, r3, #8
	strb	r3, [fp, #-249]
	ldrb	r3, [fp, #-249]	@ zero_extendqisi2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	strb	r3, [fp, #-248]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	strb	r3, [fp, #-247]
	ldr	r3, [fp, #-40]
	lsr	r3, r3, #8
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	strb	r3, [fp, #-246]
	ldr	r3, [fp, #-36]
	lsr	r3, r3, #8
	strb	r3, [fp, #-245]
	ldrb	r3, [fp, #-245]	@ zero_extendqisi2
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	strb	r3, [fp, #-244]
	ldr	r3, [fp, #-32]
	lsr	r3, r3, #8
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	strb	r3, [fp, #-243]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	strb	r3, [fp, #-242]
	ldr	r3, [fp, #-24]
	lsr	r3, r3, #8
	strb	r3, [fp, #-241]
	ldrb	r3, [fp, #-241]	@ zero_extendqisi2
	ldr	r2, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	strb	r3, [fp, #-240]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	strb	r3, [fp, #-239]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	strb	r3, [fp, #-238]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #8
	strb	r3, [fp, #-237]
	ldr	r3, [fp, #-304]
	ldrb	r2, [fp, #-276]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	ldrb	r2, [fp, #-275]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #2
	ldrb	r2, [fp, #-274]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #3
	ldrb	r2, [fp, #-272]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #4
	ldrb	r2, [fp, #-271]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #5
	ldrb	r2, [fp, #-270]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #6
	ldrb	r2, [fp, #-268]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #7
	ldrb	r2, [fp, #-267]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #8
	ldrb	r2, [fp, #-266]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #9
	ldrb	r2, [fp, #-264]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #10
	ldrb	r2, [fp, #-263]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #11
	ldrb	r2, [fp, #-262]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #12
	ldrb	r2, [fp, #-260]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #13
	ldrb	r2, [fp, #-259]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #14
	ldrb	r2, [fp, #-258]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #15
	ldrb	r2, [fp, #-257]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #16
	ldrb	r2, [fp, #-256]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #17
	ldrb	r2, [fp, #-255]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #18
	ldrb	r2, [fp, #-254]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #19
	ldrb	r2, [fp, #-252]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #20
	ldrb	r2, [fp, #-251]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #21
	ldrb	r2, [fp, #-250]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #22
	ldrb	r2, [fp, #-248]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #23
	ldrb	r2, [fp, #-247]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #24
	ldrb	r2, [fp, #-246]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #25
	ldrb	r2, [fp, #-244]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #26
	ldrb	r2, [fp, #-243]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #27
	ldrb	r2, [fp, #-242]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #28
	ldrb	r2, [fp, #-240]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #29
	ldrb	r2, [fp, #-239]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #30
	ldrb	r2, [fp, #-238]
	strb	r2, [r3]
	ldr	r3, [fp, #-304]
	add	r3, r3, #31
	ldrb	r2, [fp, #-237]
	strb	r2, [r3]
	nop
	ldr	r3, .L22
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L21
	bl	__stack_chk_fail
.L21:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L23:
	.align	2
.L22:
	.word	.LC1
	.word	67108845
	.size	fiat_25519_to_bytes, .-fiat_25519_to_bytes
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_from_bytes, %function
fiat_25519_from_bytes:
	@ args = 0, pretend = 0, frame = 296
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #300
	str	r0, [fp, #-296]
	str	r1, [fp, #-300]
	ldr	r3, [fp, #-300]
	add	r3, r3, #31
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #18
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-300]
	add	r3, r3, #30
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #10
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-300]
	add	r3, r3, #29
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-300]
	add	r3, r3, #28
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #20
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-300]
	add	r3, r3, #27
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #12
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-300]
	add	r3, r3, #26
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #4
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-300]
	add	r3, r3, #25
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #21
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-300]
	add	r3, r3, #24
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #13
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-300]
	add	r3, r3, #23
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #5
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-300]
	add	r3, r3, #22
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #23
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-300]
	add	r3, r3, #21
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #15
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-300]
	add	r3, r3, #20
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #7
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-300]
	add	r3, r3, #19
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-300]
	add	r3, r3, #18
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-300]
	add	r3, r3, #17
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-300]
	ldrb	r3, [r3, #16]
	strb	r3, [fp, #-286]
	ldr	r3, [fp, #-300]
	add	r3, r3, #15
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #18
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-300]
	add	r3, r3, #14
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #10
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-300]
	add	r3, r3, #13
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-300]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #19
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-300]
	add	r3, r3, #11
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #11
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-300]
	add	r3, r3, #10
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #3
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-300]
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #21
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-300]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #13
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-300]
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #5
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-300]
	add	r3, r3, #6
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #22
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-300]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #14
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-300]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #6
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-300]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-300]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-300]
	ldrb	r3, [r3]
	strb	r3, [fp, #-285]
	ldrb	r3, [fp, #-285]	@ zero_extendqisi2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	str	r3, [fp, #-152]
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-148]
	lsr	r3, r3, #26
	strb	r3, [fp, #-284]
	ldrb	r3, [fp, #-284]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-140]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-136]
	add	r3, r2, r3
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-132]
	lsr	r3, r3, #25
	strb	r3, [fp, #-283]
	ldrb	r3, [fp, #-283]	@ zero_extendqisi2
	ldr	r2, [fp, #-184]
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-116]
	lsr	r3, r3, #26
	strb	r3, [fp, #-282]
	ldrb	r3, [fp, #-282]	@ zero_extendqisi2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-104]
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-104]
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-100]
	lsr	r3, r3, #25
	strb	r3, [fp, #-281]
	ldrb	r3, [fp, #-281]	@ zero_extendqisi2
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldrb	r3, [fp, #-286]	@ zero_extendqisi2
	ldr	r2, [fp, #-220]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-224]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r2, [fp, #-228]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #25
	strb	r3, [fp, #-280]
	ldrb	r3, [fp, #-280]	@ zero_extendqisi2
	ldr	r2, [fp, #-232]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #26
	strb	r3, [fp, #-279]
	ldrb	r3, [fp, #-279]	@ zero_extendqisi2
	ldr	r2, [fp, #-244]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-248]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-252]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	lsr	r3, r3, #25
	strb	r3, [fp, #-278]
	ldrb	r3, [fp, #-278]	@ zero_extendqisi2
	ldr	r2, [fp, #-256]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-260]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	lsr	r3, r3, #26
	strb	r3, [fp, #-277]
	ldrb	r3, [fp, #-277]	@ zero_extendqisi2
	ldr	r2, [fp, #-268]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-272]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-276]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-296]
	ldr	r2, [fp, #-144]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #4
	ldr	r2, [fp, #-128]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #8
	ldr	r2, [fp, #-112]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #12
	ldr	r2, [fp, #-96]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #16
	ldr	r2, [fp, #-84]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #20
	ldr	r2, [fp, #-68]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #24
	ldr	r2, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #28
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #32
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_from_bytes, .-fiat_25519_from_bytes
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_relax, %function
fiat_25519_relax:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #32]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #36]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #16
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #20
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #24
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #28
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #36
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fiat_25519_relax, .-fiat_25519_relax
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fiat_25519_carry_scmul_121666, %function
fiat_25519_carry_scmul_121666:
	@ args = 0, pretend = 0, frame = 408
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #412
	str	r0, [fp, #-296]
	str	r1, [fp, #-300]
	ldr	r3, [fp, #-300]
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r6, r2, r2
	adc	r7, r3, r3
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-300]
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r8, r2, r2
	adc	r9, r3, r3
	mov	r2, r8
	mov	r3, r9
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-300]
	add	r3, r3, #28
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-308]
	adc	r3, r3, r3
	str	r3, [fp, #-304]
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-300]
	add	r3, r3, #24
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-316]
	adc	r3, r3, r3
	str	r3, [fp, #-312]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-300]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-324]
	adc	r3, r3, r3
	str	r3, [fp, #-320]
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-300]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-332]
	adc	r3, r3, r3
	str	r3, [fp, #-328]
	sub	r3, fp, #332
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-300]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-340]
	adc	r3, r3, r3
	str	r3, [fp, #-336]
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-300]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-348]
	adc	r3, r3, r3
	str	r3, [fp, #-344]
	sub	r3, fp, #348
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-300]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-356]
	adc	r3, r3, r3
	str	r3, [fp, #-352]
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-300]
	ldr	r3, [r3]
	mov	r4, r3
	mov	r5, #0
	mov	r0, r4
	mov	r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	mov	r0, r2
	mov	r1, r3
	subs	r0, r0, r4
	sbc	r1, r1, r5
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #7
	orr	r3, r3, r0, lsr #25
	lsl	r2, r0, #7
	subs	r2, r2, r0
	sbc	r3, r3, r1
	adds	r1, r2, r2
	str	r1, [fp, #-364]
	adc	r3, r3, r3
	str	r3, [fp, #-360]
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	mov	r3, r0
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-108]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-284]
	mov	r0, r3
	mov	r1, #0
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-372]
	adc	r3, r3, r1
	str	r3, [fp, #-368]
	sub	r4, fp, #372
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-100]
	str	r4, [fp, #-96]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	mov	r3, r0
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-100]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-276]
	mov	r0, r3
	mov	r1, #0
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-380]
	adc	r3, r3, r1
	str	r3, [fp, #-376]
	sub	r4, fp, #380
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-92]
	str	r4, [fp, #-88]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #26
	orr	r0, r0, r3, lsl #6
	lsr	r1, r3, #26
	mov	r3, r0
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-92]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-268]
	mov	r0, r3
	mov	r1, #0
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-388]
	adc	r3, r3, r1
	str	r3, [fp, #-384]
	sub	r4, fp, #388
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-84]
	str	r4, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #25
	orr	r0, r0, r3, lsl #7
	lsr	r1, r3, #25
	mov	r3, r0
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-84]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-260]
	mov	r0, r3
	mov	r1, #0
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	adds	ip, r2, r0
	str	ip, [fp, #-396]
	adc	r3, r3, r1
	str	r3, [fp, #-392]
	sub	r4, fp, #396
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-76]
	str	r4, [fp, #-72]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	mov	r3, r2
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-252]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-404]
	adc	r3, r1, r3
	str	r3, [fp, #-400]
	sub	r4, fp, #404
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	mov	r3, r2
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-68]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-244]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-412]
	adc	r3, r1, r3
	str	r3, [fp, #-408]
	sub	r4, fp, #412
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	mov	r3, r2
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-60]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-236]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-420]
	adc	r3, r1, r3
	str	r3, [fp, #-416]
	sub	r4, fp, #420
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	mov	r3, r2
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-52]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-228]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-428]
	adc	r3, r1, r3
	str	r3, [fp, #-424]
	sub	r4, fp, #428
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #26
	orr	r2, r2, r1, lsl #6
	lsr	r3, r1, #26
	mov	r3, r2
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-44]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-220]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-436]
	adc	r3, r1, r3
	str	r3, [fp, #-432]
	sub	r4, fp, #436
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #25
	orr	r2, r2, r1, lsl #7
	lsr	r3, r1, #25
	mov	r3, r2
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-36]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-208]
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-204]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-204]
	add	r3, r2, r3
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	lsr	r3, r3, #26
	strb	r3, [fp, #-286]
	ldr	r3, [fp, #-200]
	bic	r3, r3, #-67108864
	str	r3, [fp, #-196]
	ldrb	r3, [fp, #-286]	@ zero_extendqisi2
	ldr	r2, [fp, #-272]
	add	r3, r2, r3
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	lsr	r3, r3, #25
	strb	r3, [fp, #-285]
	ldr	r3, [fp, #-192]
	bic	r3, r3, #-33554432
	str	r3, [fp, #-188]
	ldrb	r3, [fp, #-285]	@ zero_extendqisi2
	ldr	r2, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-296]
	ldr	r2, [fp, #-196]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #4
	ldr	r2, [fp, #-188]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #8
	ldr	r2, [fp, #-184]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #12
	ldr	r2, [fp, #-256]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #16
	ldr	r2, [fp, #-248]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #20
	ldr	r2, [fp, #-240]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #24
	ldr	r2, [fp, #-232]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #28
	ldr	r2, [fp, #-224]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #32
	ldr	r2, [fp, #-216]
	str	r2, [r3]
	ldr	r3, [fp, #-296]
	add	r3, r3, #36
	ldr	r2, [fp, #-208]
	str	r2, [r3]
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	fiat_25519_carry_scmul_121666, .-fiat_25519_carry_scmul_121666
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
