	.file	"extr_fe_25_5fe.h_fe25519_reduce.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	fe25519_reduce, @function
fe25519_reduce:
.LFB0:
	.cfi_startproc
	endbr64
	mov	rax, rsi
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	ecx, DWORD PTR 28[rax]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR 36[rax]
	mov	r10d, DWORD PTR [rsi]
	mov	r9d, DWORD PTR 4[rsi]
	lea	ebx, [rax+rax*8]
	mov	r12d, DWORD PTR 8[rsi]
	mov	ebp, DWORD PTR 12[rsi]
	lea	ebx, 16777216[rax+rbx*2]
	mov	r11d, DWORD PTR 16[rsi]
	mov	r8d, DWORD PTR 20[rsi]
	sar	ebx, 25
	mov	esi, DWORD PTR 24[rsi]
	add	ebx, r10d
	sar	ebx, 26
	add	ebx, r9d
	sar	ebx, 25
	add	ebx, r12d
	sar	ebx, 26
	add	ebx, ebp
	sar	ebx, 25
	add	ebx, r11d
	sar	ebx, 26
	add	ebx, r8d
	sar	ebx, 25
	add	ebx, esi
	sar	ebx, 26
	add	ebx, ecx
	sar	ebx, 25
	add	ebx, edx
	sar	ebx, 26
	add	ebx, eax
	sar	ebx, 25
	lea	r13d, [rbx+rbx*8]
	lea	ebx, [rbx+r13*2]
	add	r10d, ebx
	mov	r15d, r10d
	sar	r15d, 26
	add	r9d, r15d
	mov	r14d, r9d
	sar	r14d, 25
	lea	ebx, [r12+r14]
	mov	r13d, ebx
	mov	DWORD PTR -20[rsp], ebx
	sar	r13d, 26
	lea	ebx, 0[rbp+r13]
	mov	DWORD PTR -16[rsp], ebx
	sar	ebx, 25
	add	r11d, ebx
	mov	DWORD PTR -12[rsp], ebx
	mov	ebx, r11d
	mov	DWORD PTR -8[rsp], r11d
	sar	ebx, 26
	add	r8d, ebx
	mov	DWORD PTR -4[rsp], ebx
	mov	r12d, r8d
	sar	r12d, 25
	add	esi, r12d
	mov	r11d, esi
	sar	r11d, 26
	sal	r15d, 26
	add	ecx, r11d
	sub	r10d, r15d
	mov	ebp, r11d
	mov	r15d, DWORD PTR -20[rsp]
	sal	r14d, 25
	mov	r11d, ecx
	sal	r13d, 26
	mov	DWORD PTR [rdi], r10d
	sar	r11d, 25
	sub	r9d, r14d
	sub	r15d, r13d
	mov	r10d, DWORD PTR -16[rsp]
	add	edx, r11d
	mov	DWORD PTR 4[rdi], r9d
	mov	ebx, r11d
	mov	r9d, DWORD PTR -4[rsp]
	mov	DWORD PTR 8[rdi], r15d
	mov	r11d, edx
	mov	r15d, DWORD PTR -12[rsp]
	sal	r12d, 25
	mov	r14d, DWORD PTR -8[rsp]
	sar	r11d, 26
	sal	ebp, 26
	sub	r8d, r12d
	add	eax, r11d
	sal	r15d, 25
	sub	esi, ebp
	mov	DWORD PTR 20[rdi], r8d
	sal	ebx, 25
	sal	r9d, 26
	sub	r10d, r15d
	and	eax, 33554431
	sal	r11d, 26
	sub	r14d, r9d
	sub	ecx, ebx
	mov	DWORD PTR 12[rdi], r10d
	sub	edx, r11d
	mov	DWORD PTR 16[rdi], r14d
	mov	DWORD PTR 24[rdi], esi
	pop	rbx
	.cfi_def_cfa_offset 48
	mov	DWORD PTR 28[rdi], ecx
	pop	rbp
	.cfi_def_cfa_offset 40
	mov	DWORD PTR 32[rdi], edx
	pop	r12
	.cfi_def_cfa_offset 32
	mov	DWORD PTR 36[rdi], eax
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	fe25519_reduce, .-fe25519_reduce
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.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, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_fe_25_5fe.h_fe25519_reduce.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fe25519_reduce, %function
fe25519_reduce:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldr	r2, [r1, #36]
	push	{r4, r5, r6, r7, r8, r9, r10, lr}
	add	r3, r2, r2, lsl #3
	ldr	r9, [r1]
	add	r3, r2, r3, lsl #1
	ldr	ip, [r1, #4]
	add	r3, r3, #16777216
	ldr	lr, [r1, #8]
	add	r3, r9, r3, asr #25
	ldr	r4, [r1, #12]
	add	r3, ip, r3, asr #26
	ldr	r5, [r1, #16]
	add	r3, lr, r3, asr #25
	ldr	r6, [r1, #20]
	add	r3, r4, r3, asr #26
	ldr	r7, [r1, #24]
	add	r3, r5, r3, asr #25
	ldr	r8, [r1, #28]
	add	r3, r6, r3, asr #26
	ldr	r1, [r1, #32]
	add	r3, r7, r3, asr #25
	add	r3, r8, r3, asr #26
	add	r3, r1, r3, asr #25
	add	r3, r2, r3, asr #26
	asr	r3, r3, #25
	add	r10, r3, r3, lsl #3
	add	r3, r3, r10, lsl #1
	add	r3, r3, r9
	add	ip, ip, r3, asr #26
	add	lr, lr, ip, asr #25
	add	r4, r4, lr, asr #26
	add	r5, r5, r4, asr #25
	add	r6, r6, r5, asr #26
	add	r7, r7, r6, asr #25
	add	r8, r8, r7, asr #26
	add	r1, r1, r8, asr #25
	add	r2, r2, r1, asr #26
	bic	r3, r3, #-67108864
	bic	r2, r2, #-33554432
	bic	r1, r1, #-67108864
	bic	r8, r8, #-33554432
	bic	r7, r7, #-67108864
	bic	r6, r6, #-33554432
	bic	r5, r5, #-67108864
	bic	r4, r4, #-33554432
	bic	lr, lr, #-67108864
	bic	ip, ip, #-33554432
	stmib	r0, {ip, lr}
	str	r3, [r0]
	str	r2, [r0, #36]
	str	r1, [r0, #32]
	str	r8, [r0, #28]
	str	r7, [r0, #24]
	str	r6, [r0, #20]
	str	r5, [r0, #16]
	str	r4, [r0, #12]
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
	.size	fe25519_reduce, .-fe25519_reduce
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
