	.file	"134291.c"
	.intel_syntax noprefix
	.text
	.globl	randombytes
	.type	randombytes, @function
randombytes:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	randombytes, .-randombytes
	.globl	_0
	.section	.rodata
	.align 16
	.type	_0, @object
	.size	_0, 16
_0:
	.zero	16
	.globl	_9
	.align 32
	.type	_9, @object
	.size	_9, 32
_9:
	.string	"\t"
	.zero	30
	.globl	gf0
	.align 32
	.type	gf0, @object
	.size	gf0, 128
gf0:
	.zero	128
	.globl	gf1
	.align 32
	.type	gf1, @object
	.size	gf1, 128
gf1:
	.quad	1
	.zero	120
	.globl	_121665
	.align 32
	.type	_121665, @object
	.size	_121665, 128
_121665:
	.quad	56129
	.quad	1
	.zero	112
	.globl	D
	.align 32
	.type	D, @object
	.size	D, 128
D:
	.quad	30883
	.quad	4953
	.quad	19914
	.quad	30187
	.quad	55467
	.quad	16705
	.quad	2637
	.quad	112
	.quad	59544
	.quad	30585
	.quad	16505
	.quad	36039
	.quad	65139
	.quad	11119
	.quad	27886
	.quad	20995
	.globl	D2
	.align 32
	.type	D2, @object
	.size	D2, 128
D2:
	.quad	61785
	.quad	9906
	.quad	39828
	.quad	60374
	.quad	45398
	.quad	33411
	.quad	5274
	.quad	224
	.quad	53552
	.quad	61171
	.quad	33010
	.quad	6542
	.quad	64743
	.quad	22239
	.quad	55772
	.quad	9222
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 128
X:
	.quad	54554
	.quad	36645
	.quad	11616
	.quad	51542
	.quad	42930
	.quad	38181
	.quad	51040
	.quad	26924
	.quad	56412
	.quad	64982
	.quad	57905
	.quad	49316
	.quad	21502
	.quad	52590
	.quad	14035
	.quad	8553
	.globl	Y
	.align 32
	.type	Y, @object
	.size	Y, 128
Y:
	.quad	26200
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.quad	26214
	.globl	I
	.align 32
	.type	I, @object
	.size	I, 128
I:
	.quad	41136
	.quad	18958
	.quad	6951
	.quad	50414
	.quad	58488
	.quad	44335
	.quad	6150
	.quad	12099
	.quad	55207
	.quad	15867
	.quad	153
	.quad	11085
	.quad	57099
	.quad	20417
	.quad	9344
	.quad	11139
	.text
	.globl	L32
	.type	L32, @function
L32:
.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	eax, DWORD PTR -12[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, eax
	mov	eax, 32
	sub	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	shr	rsi, cl
	mov	rax, rsi
	or	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	L32, .-L32
	.globl	ld32
	.type	ld32, @function
ld32:
.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	rax, QWORD PTR -24[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	ld32, .-ld32
	.globl	dl64
	.type	dl64, @function
dl64:
.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 -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L7
.L8:
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 8
	mov	rcx, rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	add	QWORD PTR -16[rbp], 1
.L7:
	cmp	QWORD PTR -16[rbp], 7
	jbe	.L8
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	dl64, .-dl64
	.globl	st32
	.type	st32, @function
st32:
.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	DWORD PTR -4[rbp], 0
	jmp	.L11
.L12:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	shr	QWORD PTR -32[rbp], 8
	add	DWORD PTR -4[rbp], 1
.L11:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L12
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	st32, .-st32
	.globl	ts64
	.type	ts64, @function
ts64:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 7
	jmp	.L14
.L15:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	shr	QWORD PTR -32[rbp], 8
	sub	DWORD PTR -4[rbp], 1
.L14:
	cmp	DWORD PTR -4[rbp], 0
	jns	.L15
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	ts64, .-ts64
	.globl	vn
	.type	vn, @function
vn:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L17
.L18:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	xor	eax, edx
	movzx	eax, al
	or	QWORD PTR -8[rbp], rax
	add	QWORD PTR -16[rbp], 1
.L17:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	cmp	QWORD PTR -16[rbp], rax
	jb	.L18
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 1
	shr	rax, 8
	and	eax, 1
	sub	eax, 1
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	vn, .-vn
	.globl	crypto_verify_16_tweet
	.type	crypto_verify_16_tweet, @function
crypto_verify_16_tweet:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 16
	mov	rsi, rcx
	mov	rdi, rax
	call	vn
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	crypto_verify_16_tweet, .-crypto_verify_16_tweet
	.globl	crypto_verify_32_tweet
	.type	crypto_verify_32_tweet, @function
crypto_verify_32_tweet:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	vn
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	crypto_verify_32_tweet, .-crypto_verify_32_tweet
	.globl	core
	.type	core, @function
core:
.LFB9:
	.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, 504
	.cfi_offset 3, -24
	mov	QWORD PTR -472[rbp], rdi
	mov	QWORD PTR -480[rbp], rsi
	mov	QWORD PTR -488[rbp], rdx
	mov	QWORD PTR -496[rbp], rcx
	mov	DWORD PTR -500[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -460[rbp], 0
	jmp	.L25
.L26:
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -496[rbp]
	add	rdx, rax
	mov	ecx, DWORD PTR -460[rbp]
	mov	eax, ecx
	sal	eax, 2
	lea	ebx, [rax+rcx]
	mov	rdi, rdx
	call	ld32
	movsx	rdx, ebx
	mov	QWORD PTR -288[rbp+rdx*8], rax
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -488[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -460[rbp]
	lea	ebx, 1[rdx]
	mov	rdi, rax
	call	ld32
	movsx	rdx, ebx
	mov	QWORD PTR -288[rbp+rdx*8], rax
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -460[rbp]
	lea	ebx, 6[rdx]
	mov	rdi, rax
	call	ld32
	movsx	rdx, ebx
	mov	QWORD PTR -288[rbp+rdx*8], rax
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	cdqe
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -488[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -460[rbp]
	lea	ebx, 11[rdx]
	mov	rdi, rax
	call	ld32
	movsx	rdx, ebx
	mov	QWORD PTR -288[rbp+rdx*8], rax
	add	DWORD PTR -460[rbp], 1
.L25:
	cmp	DWORD PTR -460[rbp], 3
	jle	.L26
	mov	DWORD PTR -460[rbp], 0
	jmp	.L27
.L28:
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	rdx, QWORD PTR -288[rbp+rax*8]
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	QWORD PTR -160[rbp+rax*8], rdx
	add	DWORD PTR -460[rbp], 1
.L27:
	cmp	DWORD PTR -460[rbp], 15
	jle	.L28
	mov	DWORD PTR -460[rbp], 0
	jmp	.L29
.L38:
	mov	DWORD PTR -456[rbp], 0
	jmp	.L30
.L35:
	mov	DWORD PTR -452[rbp], 0
	jmp	.L31
.L32:
	mov	edx, DWORD PTR -456[rbp]
	mov	eax, edx
	sal	eax, 2
	add	edx, eax
	mov	eax, DWORD PTR -452[rbp]
	sal	eax, 2
	add	eax, edx
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cdqe
	mov	rdx, QWORD PTR -288[rbp+rax*8]
	mov	eax, DWORD PTR -452[rbp]
	cdqe
	mov	QWORD PTR -448[rbp+rax*8], rdx
	add	DWORD PTR -452[rbp], 1
.L31:
	cmp	DWORD PTR -452[rbp], 3
	jle	.L32
	mov	rdx, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -424[rbp]
	add	rax, rdx
	mov	esi, 7
	mov	rdi, rax
	call	L32
	mov	rdx, QWORD PTR -440[rbp]
	xor	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rdx, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR -448[rbp]
	add	rax, rdx
	mov	esi, 9
	mov	rdi, rax
	call	L32
	mov	rdx, QWORD PTR -432[rbp]
	xor	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	mov	rdx, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	esi, 13
	mov	rdi, rax
	call	L32
	mov	rdx, QWORD PTR -424[rbp]
	xor	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rdx, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	esi, 18
	mov	rdi, rax
	call	L32
	mov	rdx, QWORD PTR -448[rbp]
	xor	rax, rdx
	mov	QWORD PTR -448[rbp], rax
	mov	DWORD PTR -452[rbp], 0
	jmp	.L33
.L34:
	mov	eax, DWORD PTR -456[rbp]
	lea	ecx, 0[0+rax*4]
	mov	edx, DWORD PTR -456[rbp]
	mov	eax, DWORD PTR -452[rbp]
	add	eax, edx
	cdq
	shr	edx, 30
	add	eax, edx
	and	eax, 3
	sub	eax, edx
	add	ecx, eax
	mov	eax, DWORD PTR -452[rbp]
	cdqe
	mov	rdx, QWORD PTR -448[rbp+rax*8]
	movsx	rax, ecx
	mov	QWORD PTR -416[rbp+rax*8], rdx
	add	DWORD PTR -452[rbp], 1
.L33:
	cmp	DWORD PTR -452[rbp], 3
	jle	.L34
	add	DWORD PTR -456[rbp], 1
.L30:
	cmp	DWORD PTR -456[rbp], 3
	jle	.L35
	mov	DWORD PTR -452[rbp], 0
	jmp	.L36
.L37:
	mov	eax, DWORD PTR -452[rbp]
	cdqe
	mov	rdx, QWORD PTR -416[rbp+rax*8]
	mov	eax, DWORD PTR -452[rbp]
	cdqe
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	DWORD PTR -452[rbp], 1
.L36:
	cmp	DWORD PTR -452[rbp], 15
	jle	.L37
	add	DWORD PTR -460[rbp], 1
.L29:
	cmp	DWORD PTR -460[rbp], 19
	jle	.L38
	cmp	DWORD PTR -500[rbp], 0
	je	.L39
	mov	DWORD PTR -460[rbp], 0
	jmp	.L40
.L41:
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	rdx, QWORD PTR -288[rbp+rax*8]
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	add	rdx, rax
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	DWORD PTR -460[rbp], 1
.L40:
	cmp	DWORD PTR -460[rbp], 15
	jle	.L41
	mov	DWORD PTR -460[rbp], 0
	jmp	.L42
.L43:
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -496[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	ld32
	mov	rsi, rax
	mov	edx, DWORD PTR -460[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	cdqe
	mov	rcx, QWORD PTR -288[rbp+rax*8]
	mov	edx, DWORD PTR -460[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sub	rcx, rsi
	mov	rdx, rcx
	cdqe
	mov	QWORD PTR -288[rbp+rax*8], rdx
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	ld32
	mov	rsi, rax
	mov	eax, DWORD PTR -460[rbp]
	add	eax, 6
	cdqe
	mov	rax, QWORD PTR -288[rbp+rax*8]
	mov	edx, DWORD PTR -460[rbp]
	lea	ecx, 6[rdx]
	sub	rax, rsi
	mov	rdx, rax
	movsx	rax, ecx
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	DWORD PTR -460[rbp], 1
.L42:
	cmp	DWORD PTR -460[rbp], 3
	jle	.L43
	mov	DWORD PTR -460[rbp], 0
	jmp	.L44
.L45:
	mov	edx, DWORD PTR -460[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	cdqe
	mov	rax, QWORD PTR -288[rbp+rax*8]
	mov	edx, DWORD PTR -460[rbp]
	sal	edx, 2
	movsx	rcx, edx
	mov	rdx, QWORD PTR -472[rbp]
	add	rdx, rcx
	mov	rsi, rax
	mov	rdi, rdx
	call	st32
	mov	eax, DWORD PTR -460[rbp]
	add	eax, 6
	cdqe
	mov	rax, QWORD PTR -288[rbp+rax*8]
	mov	edx, DWORD PTR -460[rbp]
	sal	edx, 2
	movsx	rdx, edx
	lea	rcx, 16[rdx]
	mov	rdx, QWORD PTR -472[rbp]
	add	rdx, rcx
	mov	rsi, rax
	mov	rdi, rdx
	call	st32
	add	DWORD PTR -460[rbp], 1
.L44:
	cmp	DWORD PTR -460[rbp], 3
	jle	.L45
	jmp	.L50
.L39:
	mov	DWORD PTR -460[rbp], 0
	jmp	.L47
.L48:
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	rdx, QWORD PTR -288[rbp+rax*8]
	mov	eax, DWORD PTR -460[rbp]
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	add	rdx, rax
	mov	eax, DWORD PTR -460[rbp]
	sal	eax, 2
	movsx	rcx, eax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	st32
	add	DWORD PTR -460[rbp], 1
.L47:
	cmp	DWORD PTR -460[rbp], 15
	jle	.L48
.L50:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	core, .-core
	.globl	crypto_core_salsa20_tweet
	.type	crypto_core_salsa20_tweet, @function
crypto_core_salsa20_tweet:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, 0
	mov	rdi, rax
	call	core
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	crypto_core_salsa20_tweet, .-crypto_core_salsa20_tweet
	.globl	crypto_core_hsalsa20_tweet
	.type	crypto_core_hsalsa20_tweet, @function
crypto_core_hsalsa20_tweet:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, 1
	mov	rdi, rax
	call	core
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	crypto_core_hsalsa20_tweet, .-crypto_core_hsalsa20_tweet
	.globl	sigma
	.section	.rodata
	.align 16
	.type	sigma, @object
	.size	sigma, 16
sigma:
	.ascii	"expand 32-byte k"
	.text
	.globl	crypto_stream_salsa20_tweet_xor
	.type	crypto_stream_salsa20_tweet_xor, @function
crypto_stream_salsa20_tweet_xor:
.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, 160
	mov	QWORD PTR -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	QWORD PTR -136[rbp], rdx
	mov	QWORD PTR -144[rbp], rcx
	mov	QWORD PTR -152[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -136[rbp], 0
	jne	.L56
	mov	eax, 0
	jmp	.L75
.L56:
	mov	QWORD PTR -104[rbp], 0
	jmp	.L58
.L59:
	lea	rdx, -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -104[rbp], 1
.L58:
	cmp	QWORD PTR -104[rbp], 15
	jbe	.L59
	mov	QWORD PTR -104[rbp], 0
	jmp	.L60
.L61:
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	lea	rcx, -96[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -104[rbp], 1
.L60:
	cmp	QWORD PTR -104[rbp], 7
	jbe	.L61
	jmp	.L62
.L69:
	mov	rdx, QWORD PTR -152[rbp]
	lea	rsi, -96[rbp]
	lea	rax, -80[rbp]
	lea	rcx, sigma[rip]
	mov	rdi, rax
	call	crypto_core_salsa20_tweet
	mov	QWORD PTR -104[rbp], 0
	jmp	.L63
.L66:
	cmp	QWORD PTR -128[rbp], 0
	je	.L64
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	ecx, eax
	jmp	.L65
.L64:
	mov	ecx, 0
.L65:
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	xor	ecx, eax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -104[rbp], 1
.L63:
	cmp	QWORD PTR -104[rbp], 63
	jbe	.L66
	mov	QWORD PTR -112[rbp], 1
	mov	QWORD PTR -104[rbp], 8
	jmp	.L67
.L68:
	lea	rdx, -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, eax
	lea	rcx, -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	shr	QWORD PTR -112[rbp], 8
	add	QWORD PTR -104[rbp], 1
.L67:
	cmp	QWORD PTR -104[rbp], 15
	jbe	.L68
	sub	QWORD PTR -136[rbp], 64
	add	QWORD PTR -120[rbp], 64
	cmp	QWORD PTR -128[rbp], 0
	je	.L62
	add	QWORD PTR -128[rbp], 64
.L62:
	cmp	QWORD PTR -136[rbp], 63
	ja	.L69
	cmp	QWORD PTR -136[rbp], 0
	je	.L70
	mov	rdx, QWORD PTR -152[rbp]
	lea	rsi, -96[rbp]
	lea	rax, -80[rbp]
	lea	rcx, sigma[rip]
	mov	rdi, rax
	call	crypto_core_salsa20_tweet
	mov	QWORD PTR -104[rbp], 0
	jmp	.L71
.L74:
	cmp	QWORD PTR -128[rbp], 0
	je	.L72
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	ecx, eax
	jmp	.L73
.L72:
	mov	ecx, 0
.L73:
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	xor	ecx, eax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -104[rbp], 1
.L71:
	mov	rax, QWORD PTR -104[rbp]
	cmp	rax, QWORD PTR -136[rbp]
	jb	.L74
.L70:
	mov	eax, 0
.L75:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L76
	call	__stack_chk_fail@PLT
.L76:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	crypto_stream_salsa20_tweet_xor, .-crypto_stream_salsa20_tweet_xor
	.globl	crypto_stream_salsa20_tweet
	.type	crypto_stream_salsa20_tweet, @function
crypto_stream_salsa20_tweet:
.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, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rsi, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, rsi
	mov	esi, 0
	mov	rdi, rax
	call	crypto_stream_salsa20_tweet_xor
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	crypto_stream_salsa20_tweet, .-crypto_stream_salsa20_tweet
	.globl	crypto_stream_xsalsa20_tweet
	.type	crypto_stream_xsalsa20_tweet, @function
crypto_stream_xsalsa20_tweet:
.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, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -80[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	lea	rcx, sigma[rip]
	mov	rdi, rax
	call	crypto_core_hsalsa20_tweet
	mov	rax, QWORD PTR -72[rbp]
	lea	rdi, 16[rax]
	lea	rdx, -48[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	crypto_stream_salsa20_tweet
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L81
	call	__stack_chk_fail@PLT
.L81:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	crypto_stream_xsalsa20_tweet, .-crypto_stream_xsalsa20_tweet
	.globl	crypto_stream_xsalsa20_tweet_xor
	.type	crypto_stream_xsalsa20_tweet_xor, @function
crypto_stream_xsalsa20_tweet_xor:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR -80[rbp]
	lea	rax, -48[rbp]
	lea	rcx, sigma[rip]
	mov	rdi, rax
	call	crypto_core_hsalsa20_tweet
	mov	rax, QWORD PTR -80[rbp]
	lea	rcx, 16[rax]
	lea	rdi, -48[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_stream_salsa20_tweet_xor
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L84
	call	__stack_chk_fail@PLT
.L84:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	crypto_stream_xsalsa20_tweet_xor, .-crypto_stream_xsalsa20_tweet_xor
	.globl	add1305
	.type	add1305, @function
add1305:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L86
.L87:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, al
	mov	QWORD PTR [rdx], rax
	shr	QWORD PTR -8[rbp], 8
	add	QWORD PTR -16[rbp], 1
.L86:
	cmp	QWORD PTR -16[rbp], 16
	jbe	.L87
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	add1305, .-add1305
	.globl	minusp
	.section	.rodata
	.align 32
	.type	minusp, @object
	.size	minusp, 136
minusp:
	.quad	5
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	252
	.text
	.globl	crypto_onetimeauth_poly1305_tweet
	.type	crypto_onetimeauth_poly1305_tweet, @function
crypto_onetimeauth_poly1305_tweet:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 784
	mov	QWORD PTR -760[rbp], rdi
	mov	QWORD PTR -768[rbp], rsi
	mov	QWORD PTR -776[rbp], rdx
	mov	QWORD PTR -784[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -744[rbp], 0
	jmp	.L89
.L90:
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -432[rbp+rax*8], 0
	mov	rax, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -432[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -576[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L89:
	cmp	QWORD PTR -744[rbp], 16
	jbe	.L90
	mov	QWORD PTR -744[rbp], 0
	jmp	.L91
.L92:
	mov	rdx, QWORD PTR -784[rbp]
	mov	rax, QWORD PTR -744[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -576[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L91:
	cmp	QWORD PTR -744[rbp], 15
	jbe	.L92
	mov	rax, QWORD PTR -552[rbp]
	and	eax, 15
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	and	eax, 252
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	and	eax, 15
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	and	eax, 252
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	and	eax, 15
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	and	eax, 252
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	and	eax, 15
	mov	QWORD PTR -456[rbp], rax
	jmp	.L93
.L111:
	mov	QWORD PTR -744[rbp], 0
	jmp	.L94
.L95:
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -288[rbp+rax*8], 0
	add	QWORD PTR -744[rbp], 1
.L94:
	cmp	QWORD PTR -744[rbp], 16
	jbe	.L95
	mov	QWORD PTR -744[rbp], 0
	jmp	.L96
.L98:
	mov	rdx, QWORD PTR -768[rbp]
	mov	rax, QWORD PTR -744[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L96:
	cmp	QWORD PTR -744[rbp], 15
	ja	.L97
	mov	rax, QWORD PTR -744[rbp]
	cmp	rax, QWORD PTR -776[rbp]
	jb	.L98
.L97:
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -288[rbp+rax*8], 1
	mov	rax, QWORD PTR -744[rbp]
	add	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	sub	QWORD PTR -776[rbp], rax
	lea	rdx, -288[rbp]
	lea	rax, -432[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	add1305
	mov	QWORD PTR -752[rbp], 0
	jmp	.L99
.L104:
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR -720[rbp+rax*8], 0
	mov	QWORD PTR -744[rbp], 0
	jmp	.L100
.L103:
	mov	rax, QWORD PTR -752[rbp]
	mov	rsi, QWORD PTR -720[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	mov	rcx, QWORD PTR -432[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	cmp	rax, QWORD PTR -752[rbp]
	ja	.L101
	mov	rax, QWORD PTR -752[rbp]
	sub	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR -576[rbp+rax*8]
	jmp	.L102
.L101:
	mov	rax, QWORD PTR -752[rbp]
	sub	rax, QWORD PTR -744[rbp]
	add	rax, 17
	mov	rdx, QWORD PTR -576[rbp+rax*8]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 6
.L102:
	imul	rax, rcx
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR -720[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L100:
	cmp	QWORD PTR -744[rbp], 16
	jbe	.L103
	add	QWORD PTR -752[rbp], 1
.L99:
	cmp	QWORD PTR -752[rbp], 16
	jbe	.L104
	mov	QWORD PTR -752[rbp], 0
	jmp	.L105
.L106:
	mov	rax, QWORD PTR -752[rbp]
	mov	rdx, QWORD PTR -720[rbp+rax*8]
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR -432[rbp+rax*8], rdx
	add	QWORD PTR -752[rbp], 1
.L105:
	cmp	QWORD PTR -752[rbp], 16
	jbe	.L106
	mov	QWORD PTR -736[rbp], 0
	mov	QWORD PTR -744[rbp], 0
	jmp	.L107
.L108:
	mov	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR -432[rbp+rax*8]
	add	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -432[rbp+rax*8], rdx
	shr	QWORD PTR -736[rbp], 8
	add	QWORD PTR -744[rbp], 1
.L107:
	cmp	QWORD PTR -744[rbp], 15
	jbe	.L108
	mov	rax, QWORD PTR -304[rbp]
	add	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	and	eax, 3
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	shr	rax, 2
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	QWORD PTR -736[rbp], rax
	mov	QWORD PTR -744[rbp], 0
	jmp	.L109
.L110:
	mov	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR -432[rbp+rax*8]
	add	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -432[rbp+rax*8], rdx
	shr	QWORD PTR -736[rbp], 8
	add	QWORD PTR -744[rbp], 1
.L109:
	cmp	QWORD PTR -744[rbp], 15
	jbe	.L110
	mov	rax, QWORD PTR -304[rbp]
	add	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	QWORD PTR -304[rbp], rax
.L93:
	cmp	QWORD PTR -776[rbp], 0
	jne	.L111
	mov	QWORD PTR -744[rbp], 0
	jmp	.L112
.L113:
	mov	rax, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -432[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -144[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L112:
	cmp	QWORD PTR -744[rbp], 16
	jbe	.L113
	lea	rax, -432[rbp]
	lea	rsi, minusp[rip]
	mov	rdi, rax
	call	add1305
	mov	rax, QWORD PTR -304[rbp]
	shr	rax, 7
	neg	rax
	mov	QWORD PTR -728[rbp], rax
	mov	QWORD PTR -744[rbp], 0
	jmp	.L114
.L115:
	mov	rax, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -432[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	mov	rcx, QWORD PTR -144[rbp+rax*8]
	mov	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR -432[rbp+rax*8]
	xor	rax, rcx
	and	rax, QWORD PTR -728[rbp]
	xor	rdx, rax
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -432[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L114:
	cmp	QWORD PTR -744[rbp], 16
	jbe	.L115
	mov	QWORD PTR -744[rbp], 0
	jmp	.L116
.L117:
	mov	rax, QWORD PTR -744[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -784[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	QWORD PTR -744[rbp], 1
.L116:
	cmp	QWORD PTR -744[rbp], 15
	jbe	.L117
	mov	QWORD PTR -160[rbp], 0
	lea	rdx, -288[rbp]
	lea	rax, -432[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	add1305
	mov	QWORD PTR -744[rbp], 0
	jmp	.L118
.L119:
	mov	rax, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -432[rbp+rax*8]
	mov	rcx, QWORD PTR -760[rbp]
	mov	rax, QWORD PTR -744[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -744[rbp], 1
.L118:
	cmp	QWORD PTR -744[rbp], 15
	jbe	.L119
	mov	eax, 0
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L121
	call	__stack_chk_fail@PLT
.L121:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	crypto_onetimeauth_poly1305_tweet, .-crypto_onetimeauth_poly1305_tweet
	.globl	crypto_onetimeauth_poly1305_tweet_verify
	.type	crypto_onetimeauth_poly1305_tweet_verify, @function
crypto_onetimeauth_poly1305_tweet_verify:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rcx, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	crypto_onetimeauth_poly1305_tweet
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crypto_verify_16_tweet
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L124
	call	__stack_chk_fail@PLT
.L124:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	crypto_onetimeauth_poly1305_tweet_verify, .-crypto_onetimeauth_poly1305_tweet_verify
	.globl	crypto_secretbox_xsalsa20poly1305_tweet
	.type	crypto_secretbox_xsalsa20poly1305_tweet, @function
crypto_secretbox_xsalsa20poly1305_tweet:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	cmp	QWORD PTR -40[rbp], 31
	ja	.L126
	mov	eax, -1
	jmp	.L127
.L126:
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_stream_xsalsa20_tweet_xor
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, -32[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdi, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, rax
	call	crypto_onetimeauth_poly1305_tweet
	mov	DWORD PTR -4[rbp], 0
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -4[rbp], 1
.L128:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L129
	mov	eax, 0
.L127:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	crypto_secretbox_xsalsa20poly1305_tweet, .-crypto_secretbox_xsalsa20poly1305_tweet
	.globl	crypto_secretbox_xsalsa20poly1305_tweet_open
	.type	crypto_secretbox_xsalsa20poly1305_tweet_open, @function
crypto_secretbox_xsalsa20poly1305_tweet_open:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -104[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -88[rbp], 31
	ja	.L131
	mov	eax, -1
	jmp	.L136
.L131:
	mov	rcx, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	lea	rax, -48[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	crypto_stream_xsalsa20_tweet
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, -32[rax]
	mov	rax, QWORD PTR -80[rbp]
	lea	rsi, 32[rax]
	mov	rax, QWORD PTR -80[rbp]
	lea	rdi, 16[rax]
	lea	rax, -48[rbp]
	mov	rcx, rax
	call	crypto_onetimeauth_poly1305_tweet_verify
	test	eax, eax
	je	.L133
	mov	eax, -1
	jmp	.L136
.L133:
	mov	rdi, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_stream_xsalsa20_tweet_xor
	mov	DWORD PTR -52[rbp], 0
	jmp	.L134
.L135:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -52[rbp], 1
.L134:
	cmp	DWORD PTR -52[rbp], 31
	jle	.L135
	mov	eax, 0
.L136:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L137
	call	__stack_chk_fail@PLT
.L137:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	crypto_secretbox_xsalsa20poly1305_tweet_open, .-crypto_secretbox_xsalsa20poly1305_tweet_open
	.globl	set25519
	.type	set25519, @function
set25519:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L139
.L140:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -4[rbp], 1
.L139:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L140
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	set25519, .-set25519
	.globl	car25519
	.type	car25519, @function
car25519:
.LFB22:
	.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	DWORD PTR -12[rbp], 0
	jmp	.L142
.L143:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	add	rdx, 65536
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	sar	rax, 16
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	cmp	DWORD PTR -12[rbp], 14
	setle	al
	movzx	eax, al
	imul	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, -1[rax]
	cmp	DWORD PTR -12[rbp], 15
	sete	al
	movzx	eax, al
	imul	rdx, rax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rsi, rax
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	cmp	DWORD PTR -12[rbp], 14
	setle	al
	movzx	eax, al
	imul	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	lea	rdx, [rcx+rsi]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 16
	mov	rcx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	sub	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -12[rbp], 1
.L142:
	cmp	DWORD PTR -12[rbp], 15
	jle	.L143
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	car25519, .-car25519
	.globl	sel25519
	.type	sel25519, @function
sel25519:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	eax, DWORD PTR -52[rbp]
	neg	eax
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	jmp	.L145
.L146:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	xor	rax, rdx
	and	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	xor	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	xor	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	add	QWORD PTR -24[rbp], 1
.L145:
	cmp	QWORD PTR -24[rbp], 15
	jle	.L146
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	sel25519, .-sel25519
	.globl	pack25519
	.type	pack25519, @function
pack25519:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 304
	mov	QWORD PTR -296[rbp], rdi
	mov	QWORD PTR -304[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -284[rbp], 0
	jmp	.L148
.L149:
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	mov	QWORD PTR -144[rbp+rax*8], rdx
	add	DWORD PTR -284[rbp], 1
.L148:
	cmp	DWORD PTR -284[rbp], 15
	jle	.L149
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	car25519
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	car25519
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	car25519
	mov	DWORD PTR -280[rbp], 0
	jmp	.L150
.L153:
	mov	rax, QWORD PTR -144[rbp]
	sub	rax, 65517
	mov	QWORD PTR -272[rbp], rax
	mov	DWORD PTR -284[rbp], 1
	jmp	.L151
.L152:
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	lea	rdx, -65535[rax]
	mov	eax, DWORD PTR -284[rbp]
	sub	eax, 1
	cdqe
	mov	rax, QWORD PTR -272[rbp+rax*8]
	sar	rax, 16
	and	eax, 1
	sub	rdx, rax
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	mov	QWORD PTR -272[rbp+rax*8], rdx
	mov	eax, DWORD PTR -284[rbp]
	sub	eax, 1
	cdqe
	mov	rax, QWORD PTR -272[rbp+rax*8]
	mov	edx, DWORD PTR -284[rbp]
	lea	ecx, -1[rdx]
	movzx	edx, ax
	movsx	rax, ecx
	mov	QWORD PTR -272[rbp+rax*8], rdx
	add	DWORD PTR -284[rbp], 1
.L151:
	cmp	DWORD PTR -284[rbp], 14
	jle	.L152
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, -32767[rax]
	mov	rax, QWORD PTR -160[rbp]
	sar	rax, 16
	and	eax, 1
	mov	rcx, rax
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	sar	rax, 16
	and	eax, 1
	mov	DWORD PTR -276[rbp], eax
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, ax
	mov	QWORD PTR -160[rbp], rax
	mov	eax, 1
	sub	eax, DWORD PTR -276[rbp]
	mov	edx, eax
	lea	rcx, -272[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sel25519
	add	DWORD PTR -280[rbp], 1
.L150:
	cmp	DWORD PTR -280[rbp], 1
	jle	.L153
	mov	DWORD PTR -284[rbp], 0
	jmp	.L154
.L155:
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	mov	rdx, QWORD PTR -144[rbp+rax*8]
	mov	eax, DWORD PTR -284[rbp]
	add	eax, eax
	movsx	rcx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	sar	rax, 8
	mov	rdx, rax
	mov	eax, DWORD PTR -284[rbp]
	add	eax, eax
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -284[rbp], 1
.L154:
	cmp	DWORD PTR -284[rbp], 15
	jle	.L155
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L156
	call	__stack_chk_fail@PLT
.L156:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	pack25519, .-pack25519
	.globl	neq25519
	.type	neq25519, @function
neq25519:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -88[rbp]
	lea	rax, -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack25519
	mov	rdx, QWORD PTR -96[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack25519
	lea	rdx, -48[rbp]
	lea	rax, -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crypto_verify_32_tweet
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L159
	call	__stack_chk_fail@PLT
.L159:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	neq25519, .-neq25519
	.globl	par25519
	.type	par25519, @function
par25519:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -56[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack25519
	movzx	eax, BYTE PTR -48[rbp]
	and	eax, 1
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L162
	call	__stack_chk_fail@PLT
.L162:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	par25519, .-par25519
	.globl	unpack25519
	.type	unpack25519, @function
unpack25519:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L164
.L165:
	mov	eax, DWORD PTR -4[rbp]
	add	eax, eax
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -4[rbp]
	add	eax, eax
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	mov	rcx, rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -4[rbp], 1
.L164:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L165
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 120
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 120
	and	edx, 32767
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	unpack25519, .-unpack25519
	.globl	A
	.type	A, @function
A:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L167
.L168:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -4[rbp], 1
.L167:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L168
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	A, .-A
	.globl	Z
	.type	Z, @function
Z:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L170
.L171:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	sub	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -4[rbp], 1
.L170:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L171
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	Z, .-Z
	.globl	M
	.type	M, @function
M:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 304
	mov	QWORD PTR -280[rbp], rdi
	mov	QWORD PTR -288[rbp], rsi
	mov	QWORD PTR -296[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -272[rbp], 0
	jmp	.L173
.L174:
	mov	rax, QWORD PTR -272[rbp]
	mov	QWORD PTR -256[rbp+rax*8], 0
	add	QWORD PTR -272[rbp], 1
.L173:
	cmp	QWORD PTR -272[rbp], 30
	jle	.L174
	mov	QWORD PTR -272[rbp], 0
	jmp	.L175
.L178:
	mov	QWORD PTR -264[rbp], 0
	jmp	.L176
.L177:
	mov	rdx, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR -256[rbp+rax*8]
	mov	rax, QWORD PTR -272[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -264[rbp]
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	imul	rdx, rax
	mov	rsi, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rsi
	add	rdx, rcx
	mov	QWORD PTR -256[rbp+rax*8], rdx
	add	QWORD PTR -264[rbp], 1
.L176:
	cmp	QWORD PTR -264[rbp], 15
	jle	.L177
	add	QWORD PTR -272[rbp], 1
.L175:
	cmp	QWORD PTR -272[rbp], 15
	jle	.L178
	mov	QWORD PTR -272[rbp], 0
	jmp	.L179
.L180:
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, QWORD PTR -256[rbp+rax*8]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR -256[rbp+rax*8]
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	lea	rdx, [rcx+rax]
	mov	rax, QWORD PTR -272[rbp]
	mov	QWORD PTR -256[rbp+rax*8], rdx
	add	QWORD PTR -272[rbp], 1
.L179:
	cmp	QWORD PTR -272[rbp], 14
	jle	.L180
	mov	QWORD PTR -272[rbp], 0
	jmp	.L181
.L182:
	mov	rax, QWORD PTR -272[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -280[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR -256[rbp+rax*8]
	mov	QWORD PTR [rdx], rax
	add	QWORD PTR -272[rbp], 1
.L181:
	cmp	QWORD PTR -272[rbp], 15
	jle	.L182
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	car25519
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	car25519
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L183
	call	__stack_chk_fail@PLT
.L183:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	M, .-M
	.globl	S
	.type	S, @function
S:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	S, .-S
	.globl	inv25519
	.type	inv25519, @function
inv25519:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -148[rbp], 0
	jmp	.L186
.L187:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	mov	QWORD PTR -144[rbp+rax*8], rdx
	add	DWORD PTR -148[rbp], 1
.L186:
	cmp	DWORD PTR -148[rbp], 15
	jle	.L187
	mov	DWORD PTR -148[rbp], 253
	jmp	.L188
.L190:
	lea	rdx, -144[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	cmp	DWORD PTR -148[rbp], 2
	je	.L189
	cmp	DWORD PTR -148[rbp], 4
	je	.L189
	mov	rdx, QWORD PTR -176[rbp]
	lea	rcx, -144[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
.L189:
	sub	DWORD PTR -148[rbp], 1
.L188:
	cmp	DWORD PTR -148[rbp], 0
	jns	.L190
	mov	DWORD PTR -148[rbp], 0
	jmp	.L191
.L192:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -148[rbp], 1
.L191:
	cmp	DWORD PTR -148[rbp], 15
	jle	.L192
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L193
	call	__stack_chk_fail@PLT
.L193:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	inv25519, .-inv25519
	.globl	pow2523
	.type	pow2523, @function
pow2523:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -148[rbp], 0
	jmp	.L195
.L196:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	mov	QWORD PTR -144[rbp+rax*8], rdx
	add	DWORD PTR -148[rbp], 1
.L195:
	cmp	DWORD PTR -148[rbp], 15
	jle	.L196
	mov	DWORD PTR -148[rbp], 250
	jmp	.L197
.L199:
	lea	rdx, -144[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	cmp	DWORD PTR -148[rbp], 1
	je	.L198
	mov	rdx, QWORD PTR -176[rbp]
	lea	rcx, -144[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
.L198:
	sub	DWORD PTR -148[rbp], 1
.L197:
	cmp	DWORD PTR -148[rbp], 0
	jns	.L199
	mov	DWORD PTR -148[rbp], 0
	jmp	.L200
.L201:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -148[rbp], 1
.L200:
	cmp	DWORD PTR -148[rbp], 15
	jle	.L201
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L202
	call	__stack_chk_fail@PLT
.L202:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	pow2523, .-pow2523
	.globl	crypto_scalarmult_curve25519_tweet
	.type	crypto_scalarmult_curve25519_tweet, @function
crypto_scalarmult_curve25519_tweet:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1504
	mov	QWORD PTR -1480[rbp], rdi
	mov	QWORD PTR -1488[rbp], rsi
	mov	QWORD PTR -1496[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -1472[rbp], 0
	jmp	.L204
.L205:
	mov	rdx, QWORD PTR -1472[rbp]
	mov	rax, QWORD PTR -1488[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	lea	rcx, -48[rbp]
	mov	rdx, QWORD PTR -1472[rbp]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -1472[rbp], 1
.L204:
	cmp	QWORD PTR -1472[rbp], 30
	jle	.L205
	mov	rax, QWORD PTR -1488[rbp]
	add	rax, 31
	movzx	eax, BYTE PTR [rax]
	and	eax, 63
	or	eax, 64
	mov	BYTE PTR -17[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	and	eax, -8
	mov	BYTE PTR -48[rbp], al
	mov	rdx, QWORD PTR -1496[rbp]
	lea	rax, -688[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	unpack25519
	mov	QWORD PTR -1472[rbp], 0
	jmp	.L206
.L207:
	mov	rax, QWORD PTR -1472[rbp]
	mov	rdx, QWORD PTR -688[rbp+rax*8]
	mov	rax, QWORD PTR -1472[rbp]
	mov	QWORD PTR -1328[rbp+rax*8], rdx
	mov	rax, QWORD PTR -1472[rbp]
	mov	QWORD PTR -1200[rbp+rax*8], 0
	mov	rax, QWORD PTR -1472[rbp]
	mov	rdx, QWORD PTR -1200[rbp+rax*8]
	mov	rax, QWORD PTR -1472[rbp]
	mov	QWORD PTR -1456[rbp+rax*8], rdx
	mov	rax, QWORD PTR -1472[rbp]
	mov	rdx, QWORD PTR -1456[rbp+rax*8]
	mov	rax, QWORD PTR -1472[rbp]
	mov	QWORD PTR -1072[rbp+rax*8], rdx
	add	QWORD PTR -1472[rbp], 1
.L206:
	cmp	QWORD PTR -1472[rbp], 15
	jle	.L207
	mov	QWORD PTR -1072[rbp], 1
	mov	rax, QWORD PTR -1072[rbp]
	mov	QWORD PTR -1456[rbp], rax
	mov	QWORD PTR -1472[rbp], 254
	jmp	.L208
.L209:
	mov	rax, QWORD PTR -1472[rbp]
	sar	rax, 3
	movzx	eax, BYTE PTR -48[rbp+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1472[rbp]
	and	eax, 7
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	cdqe
	and	eax, 1
	mov	QWORD PTR -1464[rbp], rax
	mov	rax, QWORD PTR -1464[rbp]
	mov	edx, eax
	lea	rcx, -1328[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sel25519
	mov	rax, QWORD PTR -1464[rbp]
	mov	edx, eax
	lea	rcx, -1072[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sel25519
	lea	rdx, -1200[rbp]
	lea	rcx, -1456[rbp]
	lea	rax, -944[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1200[rbp]
	lea	rcx, -1456[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -1072[rbp]
	lea	rcx, -1328[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1072[rbp]
	lea	rcx, -1328[rbp]
	lea	rax, -1328[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -944[rbp]
	lea	rax, -1072[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -1456[rbp]
	lea	rax, -816[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -1456[rbp]
	lea	rcx, -1200[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -944[rbp]
	lea	rcx, -1328[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -1200[rbp]
	lea	rcx, -1456[rbp]
	lea	rax, -944[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1200[rbp]
	lea	rcx, -1456[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -1456[rbp]
	lea	rax, -1328[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -816[rbp]
	lea	rcx, -1072[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rcx, -1200[rbp]
	lea	rax, -1456[rbp]
	lea	rdx, _121665[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -1072[rbp]
	lea	rcx, -1456[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1456[rbp]
	lea	rcx, -1200[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -816[rbp]
	lea	rcx, -1072[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -688[rbp]
	lea	rcx, -1328[rbp]
	lea	rax, -1072[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -944[rbp]
	lea	rax, -1328[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	mov	rax, QWORD PTR -1464[rbp]
	mov	edx, eax
	lea	rcx, -1328[rbp]
	lea	rax, -1456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sel25519
	mov	rax, QWORD PTR -1464[rbp]
	mov	edx, eax
	lea	rcx, -1072[rbp]
	lea	rax, -1200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sel25519
	sub	QWORD PTR -1472[rbp], 1
.L208:
	cmp	QWORD PTR -1472[rbp], 0
	jns	.L209
	mov	QWORD PTR -1472[rbp], 0
	jmp	.L210
.L211:
	mov	rax, QWORD PTR -1472[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -1472[rbp]
	mov	rax, QWORD PTR -1456[rbp+rax*8]
	mov	QWORD PTR -688[rbp+rdx*8], rax
	mov	rax, QWORD PTR -1472[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -1472[rbp]
	mov	rax, QWORD PTR -1200[rbp+rax*8]
	mov	QWORD PTR -688[rbp+rdx*8], rax
	mov	rax, QWORD PTR -1472[rbp]
	lea	rdx, 48[rax]
	mov	rax, QWORD PTR -1472[rbp]
	mov	rax, QWORD PTR -1328[rbp+rax*8]
	mov	QWORD PTR -688[rbp+rdx*8], rax
	mov	rax, QWORD PTR -1472[rbp]
	lea	rdx, 64[rax]
	mov	rax, QWORD PTR -1472[rbp]
	mov	rax, QWORD PTR -1072[rbp+rax*8]
	mov	QWORD PTR -688[rbp+rdx*8], rax
	add	QWORD PTR -1472[rbp], 1
.L210:
	cmp	QWORD PTR -1472[rbp], 15
	jle	.L211
	lea	rdx, -688[rbp]
	add	rdx, 256
	lea	rax, -688[rbp]
	add	rax, 256
	mov	rsi, rdx
	mov	rdi, rax
	call	inv25519
	lea	rdx, -688[rbp]
	add	rdx, 256
	lea	rcx, -688[rbp]
	sub	rcx, -128
	lea	rax, -688[rbp]
	sub	rax, -128
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rax, -688[rbp]
	sub	rax, -128
	mov	rdx, QWORD PTR -1480[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	pack25519
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L213
	call	__stack_chk_fail@PLT
.L213:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	crypto_scalarmult_curve25519_tweet, .-crypto_scalarmult_curve25519_tweet
	.globl	crypto_scalarmult_curve25519_tweet_base
	.type	crypto_scalarmult_curve25519_tweet_base, @function
crypto_scalarmult_curve25519_tweet_base:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, _9[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_scalarmult_curve25519_tweet
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	crypto_scalarmult_curve25519_tweet_base, .-crypto_scalarmult_curve25519_tweet_base
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet_keypair
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_keypair, @function
crypto_box_curve25519xsalsa20poly1305_tweet_keypair:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	randombytes
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crypto_scalarmult_curve25519_tweet_base
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_keypair, .-crypto_box_curve25519xsalsa20poly1305_tweet_keypair
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm, @function
crypto_box_curve25519xsalsa20poly1305_tweet_beforenm:
.LFB37:
	.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	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_scalarmult_curve25519_tweet
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, sigma[rip]
	lea	rsi, _0[rip]
	mov	rdi, rax
	call	crypto_core_hsalsa20_tweet
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L220
	call	__stack_chk_fail@PLT
.L220:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm, .-crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_afternm, @function
crypto_box_curve25519xsalsa20poly1305_tweet_afternm:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	QWORD PTR -40[rbp], r8
	mov	rdi, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_secretbox_xsalsa20poly1305_tweet
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_afternm, .-crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm, @function
crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	QWORD PTR -40[rbp], r8
	mov	rdi, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_secretbox_xsalsa20poly1305_tweet_open
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm, .-crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet
	.type	crypto_box_curve25519xsalsa20poly1305_tweet, @function
crypto_box_curve25519xsalsa20poly1305_tweet:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	QWORD PTR -96[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -88[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	lea	rdi, -48[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L227
	call	__stack_chk_fail@PLT
.L227:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet, .-crypto_box_curve25519xsalsa20poly1305_tweet
	.globl	crypto_box_curve25519xsalsa20poly1305_tweet_open
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_open, @function
crypto_box_curve25519xsalsa20poly1305_tweet_open:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	QWORD PTR -96[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -88[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	lea	rdi, -48[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L230
	call	__stack_chk_fail@PLT
.L230:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_open, .-crypto_box_curve25519xsalsa20poly1305_tweet_open
	.globl	R
	.type	R, @function
R:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	eax, DWORD PTR -12[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, eax
	ror	rdx, cl
	mov	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	R, .-R
	.globl	Ch
	.type	Ch, @function
Ch:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -8[rbp]
	and	rax, QWORD PTR -16[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	not	rax
	and	rax, QWORD PTR -24[rbp]
	xor	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	Ch, .-Ch
	.globl	Maj
	.type	Maj, @function
Maj:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -16[rbp]
	xor	rax, QWORD PTR -24[rbp]
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	and	rax, QWORD PTR -24[rbp]
	xor	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	Maj, .-Maj
	.globl	Sigma0
	.type	Sigma0, @function
Sigma0:
.LFB45:
	.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, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 28
	mov	rdi, rax
	call	R
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	R
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 39
	mov	rdi, rax
	call	R
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	Sigma0, .-Sigma0
	.globl	Sigma1
	.type	Sigma1, @function
Sigma1:
.LFB46:
	.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, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 14
	mov	rdi, rax
	call	R
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 18
	mov	rdi, rax
	call	R
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 41
	mov	rdi, rax
	call	R
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	Sigma1, .-Sigma1
	.globl	sigma0
	.type	sigma0, @function
sigma0:
.LFB47:
	.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, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	R
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	R
	mov	rdx, rbx
	xor	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 7
	xor	rax, rdx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	sigma0, .-sigma0
	.globl	sigma1
	.type	sigma1, @function
sigma1:
.LFB48:
	.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, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 19
	mov	rdi, rax
	call	R
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 61
	mov	rdi, rax
	call	R
	mov	rdx, rbx
	xor	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 6
	xor	rax, rdx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	sigma1, .-sigma1
	.globl	K
	.section	.rodata
	.align 32
	.type	K, @object
	.size	K, 640
K:
	.quad	4794697086780616226
	.quad	8158064640168781261
	.quad	-5349999486874862801
	.quad	-1606136188198331460
	.quad	4131703408338449720
	.quad	6480981068601479193
	.quad	-7908458776815382629
	.quad	-6116909921290321640
	.quad	-2880145864133508542
	.quad	1334009975649890238
	.quad	2608012711638119052
	.quad	6128411473006802146
	.quad	8268148722764581231
	.quad	-9160688886553864527
	.quad	-7215885187991268811
	.quad	-4495734319001033068
	.quad	-1973867731355612462
	.quad	-1171420211273849373
	.quad	1135362057144423861
	.quad	2597628984639134821
	.quad	3308224258029322869
	.quad	5365058923640841347
	.quad	6679025012923562964
	.quad	8573033837759648693
	.quad	-7476448914759557205
	.quad	-6327057829258317296
	.quad	-5763719355590565569
	.quad	-4658551843659510044
	.quad	-4116276920077217854
	.quad	-3051310485924567259
	.quad	489312712824947311
	.quad	1452737877330783856
	.quad	2861767655752347644
	.quad	3322285676063803686
	.quad	5560940570517711597
	.quad	5996557281743188959
	.quad	7280758554555802590
	.quad	8532644243296465576
	.quad	-9096487096722542874
	.quad	-7894198246740708037
	.quad	-6719396339535248540
	.quad	-6333637450476146687
	.quad	-4446306890439682159
	.quad	-4076793802049405392
	.quad	-3345356375505022440
	.quad	-2983346525034927856
	.quad	-860691631967231958
	.quad	1182934255886127544
	.quad	1847814050463011016
	.quad	2177327727835720531
	.quad	2830643537854262169
	.quad	3796741975233480872
	.quad	4115178125766777443
	.quad	5681478168544905931
	.quad	6601373596472566643
	.quad	7507060721942968483
	.quad	8399075790359081724
	.quad	8693463985226723168
	.quad	-8878714635349349518
	.quad	-8302665154208450068
	.quad	-8016688836872298968
	.quad	-6606660893046293015
	.quad	-4685533653050689259
	.quad	-4147400797238176981
	.quad	-3880063495543823972
	.quad	-3348786107499101689
	.quad	-1523767162380948706
	.quad	-757361751448694408
	.quad	500013540394364858
	.quad	748580250866718886
	.quad	1242879168328830382
	.quad	1977374033974150939
	.quad	2944078676154940804
	.quad	3659926193048069267
	.quad	4368137639120453308
	.quad	4836135668995329356
	.quad	5532061633213252278
	.quad	6448918945643986474
	.quad	6902733635092675308
	.quad	7801388544844847127
	.text
	.globl	crypto_hashblocks_sha512_tweet
	.type	crypto_hashblocks_sha512_tweet, @function
crypto_hashblocks_sha512_tweet:
.LFB49:
	.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, 392
	.cfi_offset 3, -24
	mov	QWORD PTR -376[rbp], rdi
	mov	QWORD PTR -384[rbp], rsi
	mov	QWORD PTR -392[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -368[rbp], 0
	jmp	.L246
.L247:
	mov	eax, DWORD PTR -368[rbp]
	sal	eax, 3
	movsx	rdx, eax
	mov	rax, QWORD PTR -376[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	dl64
	mov	edx, DWORD PTR -368[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -224[rbp+rdx*8], rax
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	rdx, QWORD PTR -224[rbp+rax*8]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	QWORD PTR -352[rbp+rax*8], rdx
	add	DWORD PTR -368[rbp], 1
.L246:
	cmp	DWORD PTR -368[rbp], 7
	jle	.L247
	jmp	.L248
.L262:
	mov	DWORD PTR -368[rbp], 0
	jmp	.L249
.L250:
	mov	eax, DWORD PTR -368[rbp]
	sal	eax, 3
	movsx	rdx, eax
	mov	rax, QWORD PTR -384[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	dl64
	mov	edx, DWORD PTR -368[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -160[rbp+rdx*8], rax
	add	DWORD PTR -368[rbp], 1
.L249:
	cmp	DWORD PTR -368[rbp], 15
	jle	.L250
	mov	DWORD PTR -368[rbp], 0
	jmp	.L251
.L259:
	mov	DWORD PTR -364[rbp], 0
	jmp	.L252
.L253:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	rdx, QWORD PTR -224[rbp+rax*8]
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	QWORD PTR -288[rbp+rax*8], rdx
	add	DWORD PTR -364[rbp], 1
.L252:
	cmp	DWORD PTR -364[rbp], 7
	jle	.L253
	mov	rbx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -192[rbp]
	mov	rdi, rax
	call	Sigma1
	add	rbx, rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rcx, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR -192[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Ch
	lea	rcx, [rbx+rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, K[rip]
	mov	rax, QWORD PTR [rdx+rax]
	add	rcx, rax
	mov	eax, DWORD PTR -368[rbp]
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	add	rax, rcx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	rdi, rax
	call	Sigma0
	mov	rdx, QWORD PTR -360[rbp]
	lea	rbx, [rax+rdx]
	mov	rdx, QWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Maj
	add	rax, rbx
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR -360[rbp]
	add	rax, rdx
	mov	QWORD PTR -264[rbp], rax
	mov	DWORD PTR -364[rbp], 0
	jmp	.L254
.L255:
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 1
	cdq
	shr	edx, 29
	add	eax, edx
	and	eax, 7
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	rdx, QWORD PTR -288[rbp+rax*8]
	movsx	rax, ecx
	mov	QWORD PTR -224[rbp+rax*8], rdx
	add	DWORD PTR -364[rbp], 1
.L254:
	cmp	DWORD PTR -364[rbp], 7
	jle	.L255
	mov	eax, DWORD PTR -368[rbp]
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cmp	eax, 15
	jne	.L256
	mov	DWORD PTR -364[rbp], 0
	jmp	.L257
.L258:
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 9
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cdqe
	mov	rbx, QWORD PTR -160[rbp+rax*8]
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 1
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	mov	rdi, rax
	call	sigma0
	add	rbx, rax
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 14
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	mov	rdi, rax
	call	sigma1
	lea	rdx, [rbx+rax]
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	rax, QWORD PTR -160[rbp+rax*8]
	add	rdx, rax
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	QWORD PTR -160[rbp+rax*8], rdx
	add	DWORD PTR -364[rbp], 1
.L257:
	cmp	DWORD PTR -364[rbp], 15
	jle	.L258
.L256:
	add	DWORD PTR -368[rbp], 1
.L251:
	cmp	DWORD PTR -368[rbp], 79
	jle	.L259
	mov	DWORD PTR -368[rbp], 0
	jmp	.L260
.L261:
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	rdx, QWORD PTR -224[rbp+rax*8]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	rax, QWORD PTR -352[rbp+rax*8]
	add	rdx, rax
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	QWORD PTR -224[rbp+rax*8], rdx
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	rdx, QWORD PTR -224[rbp+rax*8]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	QWORD PTR -352[rbp+rax*8], rdx
	add	DWORD PTR -368[rbp], 1
.L260:
	cmp	DWORD PTR -368[rbp], 7
	jle	.L261
	sub	QWORD PTR -384[rbp], -128
	add	QWORD PTR -392[rbp], -128
.L248:
	cmp	QWORD PTR -392[rbp], 127
	ja	.L262
	mov	DWORD PTR -368[rbp], 0
	jmp	.L263
.L264:
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	mov	rax, QWORD PTR -352[rbp+rax*8]
	mov	edx, DWORD PTR -368[rbp]
	sal	edx, 3
	movsx	rcx, edx
	mov	rdx, QWORD PTR -376[rbp]
	add	rdx, rcx
	mov	rsi, rax
	mov	rdi, rdx
	call	ts64
	add	DWORD PTR -368[rbp], 1
.L263:
	cmp	DWORD PTR -368[rbp], 7
	jle	.L264
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L266
	call	__stack_chk_fail@PLT
.L266:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	crypto_hashblocks_sha512_tweet, .-crypto_hashblocks_sha512_tweet
	.globl	iv
	.section	.rodata
	.align 32
	.type	iv, @object
	.size	iv, 64
iv:
	.ascii	"j\t\346g\363\274\311\b\273g\256\205\204\312\247;<n\363r\376\224"
	.ascii	"\370+\245O\365:_\0356\361Q\016R\177\255\346\202\321\233\005h"
	.ascii	"\214+>l\037\037\203\331\253\373A\275k[\340\315\031\023~!y"
	.text
	.globl	crypto_hash_sha512_tweet
	.type	crypto_hash_sha512_tweet, @function
crypto_hash_sha512_tweet:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 384
	mov	QWORD PTR -360[rbp], rdi
	mov	QWORD PTR -368[rbp], rsi
	mov	QWORD PTR -376[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	QWORD PTR -352[rbp], 0
	jmp	.L268
.L269:
	lea	rdx, iv[rip]
	mov	rax, QWORD PTR -352[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	lea	rcx, -336[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -352[rbp], 1
.L268:
	cmp	QWORD PTR -352[rbp], 63
	jbe	.L269
	mov	rdx, QWORD PTR -376[rbp]
	mov	rcx, QWORD PTR -368[rbp]
	lea	rax, -336[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hashblocks_sha512_tweet
	mov	rax, QWORD PTR -376[rbp]
	add	QWORD PTR -368[rbp], rax
	and	QWORD PTR -376[rbp], 127
	mov	rax, QWORD PTR -376[rbp]
	neg	rax
	add	QWORD PTR -368[rbp], rax
	mov	QWORD PTR -352[rbp], 0
	jmp	.L270
.L271:
	lea	rdx, -272[rbp]
	mov	rax, QWORD PTR -352[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -352[rbp], 1
.L270:
	cmp	QWORD PTR -352[rbp], 255
	jbe	.L271
	mov	QWORD PTR -352[rbp], 0
	jmp	.L272
.L273:
	mov	rdx, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR -352[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	lea	rcx, -272[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -352[rbp], 1
.L272:
	mov	rax, QWORD PTR -352[rbp]
	cmp	rax, QWORD PTR -376[rbp]
	jb	.L273
	lea	rdx, -272[rbp]
	mov	rax, QWORD PTR -376[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -128
	cmp	QWORD PTR -376[rbp], 111
	ja	.L274
	mov	eax, 128
	jmp	.L275
.L274:
	mov	eax, 256
.L275:
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	shr	rax, 61
	mov	rdx, rax
	mov	rax, QWORD PTR -376[rbp]
	sub	rax, 9
	mov	BYTE PTR -272[rbp+rax], dl
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -376[rbp]
	lea	rcx, -8[rax]
	lea	rax, -272[rbp]
	add	rax, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ts64
	mov	rdx, QWORD PTR -376[rbp]
	lea	rcx, -272[rbp]
	lea	rax, -336[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hashblocks_sha512_tweet
	mov	QWORD PTR -352[rbp], 0
	jmp	.L276
.L277:
	mov	rdx, QWORD PTR -360[rbp]
	mov	rax, QWORD PTR -352[rbp]
	add	rdx, rax
	lea	rcx, -336[rbp]
	mov	rax, QWORD PTR -352[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -352[rbp], 1
.L276:
	cmp	QWORD PTR -352[rbp], 63
	jbe	.L277
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L279
	call	__stack_chk_fail@PLT
.L279:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	crypto_hash_sha512_tweet, .-crypto_hash_sha512_tweet
	.globl	add
	.type	add, @function
add:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1184
	mov	QWORD PTR -1176[rbp], rdi
	mov	QWORD PTR -1184[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 128[rax]
	mov	rdx, QWORD PTR -1176[rbp]
	lea	rax, -1168[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	mov	rax, QWORD PTR -1184[rbp]
	lea	rcx, 128[rax]
	mov	rdx, QWORD PTR -1184[rbp]
	lea	rax, -656[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -656[rbp]
	lea	rcx, -1168[rbp]
	lea	rax, -1168[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -1176[rbp]
	lea	rdx, 128[rax]
	mov	rcx, QWORD PTR -1176[rbp]
	lea	rax, -1040[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	mov	rax, QWORD PTR -1184[rbp]
	lea	rdx, 128[rax]
	mov	rcx, QWORD PTR -1184[rbp]
	lea	rax, -656[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -656[rbp]
	lea	rcx, -1040[rbp]
	lea	rax, -1040[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -1184[rbp]
	lea	rdx, 384[rax]
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 384[rax]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rcx, -912[rbp]
	lea	rax, -912[rbp]
	lea	rdx, D2[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -1184[rbp]
	lea	rdx, 256[rax]
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 256[rax]
	lea	rax, -784[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -784[rbp]
	lea	rcx, -784[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1168[rbp]
	lea	rcx, -1040[rbp]
	lea	rax, -528[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -912[rbp]
	lea	rcx, -784[rbp]
	lea	rax, -400[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	lea	rdx, -912[rbp]
	lea	rcx, -784[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -1168[rbp]
	lea	rcx, -1040[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -400[rbp]
	lea	rcx, -528[rbp]
	mov	rax, QWORD PTR -1176[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 128[rax]
	lea	rdx, -272[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	M
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 256[rax]
	lea	rdx, -400[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	M
	mov	rax, QWORD PTR -1176[rbp]
	lea	rcx, 384[rax]
	lea	rdx, -144[rbp]
	lea	rax, -528[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	M
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L281
	call	__stack_chk_fail@PLT
.L281:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	add, .-add
	.globl	cswap
	.type	cswap, @function
cswap:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 40
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -36[rbp], al
	mov	DWORD PTR -4[rbp], 0
	jmp	.L283
.L284:
	movzx	eax, BYTE PTR -36[rbp]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	mov	rcx, rdx
	sal	rcx, 7
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, [rcx+rdx]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	mov	rcx, rdx
	sal	rcx, 7
	mov	rdx, QWORD PTR -24[rbp]
	add	rcx, rdx
	mov	edx, eax
	mov	rdi, rcx
	call	sel25519
	add	DWORD PTR -4[rbp], 1
.L283:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L284
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	cswap, .-cswap
	.globl	pack
	.type	pack, @function
pack:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 416
	mov	QWORD PTR -408[rbp], rdi
	mov	QWORD PTR -416[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -416[rbp]
	lea	rdx, 256[rax]
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	inv25519
	lea	rdx, -144[rbp]
	mov	rcx, QWORD PTR -416[rbp]
	lea	rax, -400[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -416[rbp]
	lea	rcx, 128[rax]
	lea	rdx, -144[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -272[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack25519
	lea	rax, -400[rbp]
	mov	rdi, rax
	call	par25519
	movzx	eax, al
	sal	eax, 7
	mov	edx, eax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 31
	movzx	eax, BYTE PTR [rax]
	mov	ecx, eax
	mov	eax, edx
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 31
	mov	BYTE PTR [rax], dl
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L286
	call	__stack_chk_fail@PLT
.L286:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	pack, .-pack
	.globl	scalarmult
	.type	scalarmult, @function
scalarmult:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, gf0[rip]
	mov	rdi, rax
	call	set25519
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, -128
	lea	rsi, gf1[rip]
	mov	rdi, rax
	call	set25519
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 256
	lea	rsi, gf1[rip]
	mov	rdi, rax
	call	set25519
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 384
	lea	rsi, gf0[rip]
	mov	rdi, rax
	call	set25519
	mov	DWORD PTR -4[rbp], 255
	jmp	.L288
.L289:
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 7
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 1
	mov	BYTE PTR -5[rbp], al
	movzx	edx, BYTE PTR -5[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	cswap
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	add
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	add
	movzx	edx, BYTE PTR -5[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	cswap
	sub	DWORD PTR -4[rbp], 1
.L288:
	cmp	DWORD PTR -4[rbp], 0
	jns	.L289
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	scalarmult, .-scalarmult
	.globl	scalarbase
	.type	scalarbase, @function
scalarbase:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 544
	mov	QWORD PTR -536[rbp], rdi
	mov	QWORD PTR -544[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -528[rbp]
	lea	rsi, X[rip]
	mov	rdi, rax
	call	set25519
	lea	rax, -528[rbp]
	sub	rax, -128
	lea	rsi, Y[rip]
	mov	rdi, rax
	call	set25519
	lea	rax, -528[rbp]
	add	rax, 256
	lea	rsi, gf1[rip]
	mov	rdi, rax
	call	set25519
	lea	rax, -528[rbp]
	add	rax, 384
	lea	rdx, Y[rip]
	lea	rsi, X[rip]
	mov	rdi, rax
	call	M
	mov	rdx, QWORD PTR -544[rbp]
	lea	rcx, -528[rbp]
	mov	rax, QWORD PTR -536[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	scalarmult
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L291
	call	__stack_chk_fail@PLT
.L291:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	scalarbase, .-scalarbase
	.globl	crypto_sign_ed25519_tweet_keypair
	.type	crypto_sign_ed25519_tweet_keypair, @function
crypto_sign_ed25519_tweet_keypair:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 624
	mov	QWORD PTR -616[rbp], rdi
	mov	QWORD PTR -624[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -624[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	randombytes
	mov	rcx, QWORD PTR -624[rbp]
	lea	rax, -80[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hash_sha512_tweet
	movzx	eax, BYTE PTR -80[rbp]
	and	eax, -8
	mov	BYTE PTR -80[rbp], al
	movzx	eax, BYTE PTR -49[rbp]
	and	eax, 127
	mov	BYTE PTR -49[rbp], al
	movzx	eax, BYTE PTR -49[rbp]
	or	eax, 64
	mov	BYTE PTR -49[rbp], al
	lea	rdx, -80[rbp]
	lea	rax, -592[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	scalarbase
	lea	rdx, -592[rbp]
	mov	rax, QWORD PTR -616[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack
	mov	DWORD PTR -596[rbp], 0
	jmp	.L293
.L294:
	mov	eax, DWORD PTR -596[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -616[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -596[rbp]
	add	edx, 32
	movsx	rcx, edx
	mov	rdx, QWORD PTR -624[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -596[rbp], 1
.L293:
	cmp	DWORD PTR -596[rbp], 31
	jle	.L294
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L296
	call	__stack_chk_fail@PLT
.L296:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	crypto_sign_ed25519_tweet_keypair, .-crypto_sign_ed25519_tweet_keypair
	.globl	L
	.section	.rodata
	.align 32
	.type	L, @object
	.size	L, 256
L:
	.quad	237
	.quad	211
	.quad	245
	.quad	92
	.quad	26
	.quad	99
	.quad	18
	.quad	88
	.quad	214
	.quad	156
	.quad	247
	.quad	162
	.quad	222
	.quad	249
	.quad	222
	.quad	20
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	16
	.text
	.globl	modL
	.type	modL, @function
modL:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -16[rbp], 63
	jmp	.L298
.L301:
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 32
	mov	QWORD PTR -8[rbp], rax
	jmp	.L299
.L300:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	mov	rdx, QWORD PTR [rdx]
	mov	rsi, rdx
	mov	rdx, QWORD PTR -16[rbp]
	lea	rcx, -32[rdx]
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, rcx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, L[rip]
	mov	rdx, QWORD PTR [rcx+rdx]
	imul	rdx, rsi
	sal	rdx, 4
	sub	rax, rdx
	lea	rdx, [rdi+rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	sub	rax, -128
	sar	rax, 8
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 8
	mov	rcx, rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rsi
	sub	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	QWORD PTR -8[rbp], 1
.L299:
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	cmp	QWORD PTR -8[rbp], rax
	jl	.L300
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	sub	QWORD PTR -16[rbp], 1
.L298:
	cmp	QWORD PTR -16[rbp], 31
	jg	.L301
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	jmp	.L302
.L303:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, 248
	mov	rdx, QWORD PTR [rdx]
	sar	rdx, 4
	mov	rsi, rdx
	mov	rdx, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rdx*8]
	lea	rdx, L[rip]
	mov	rdx, QWORD PTR [rcx+rdx]
	imul	rdx, rsi
	sub	rax, rdx
	lea	rdx, [rdi+rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	sar	rax, 8
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	movzx	eax, al
	mov	QWORD PTR [rdx], rax
	add	QWORD PTR -8[rbp], 1
.L302:
	cmp	QWORD PTR -8[rbp], 31
	jle	.L303
	mov	QWORD PTR -8[rbp], 0
	jmp	.L304
.L305:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, L[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	imul	rax, rdx
	sub	rcx, rax
	mov	rdx, rcx
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	QWORD PTR [rax], rdx
	add	QWORD PTR -8[rbp], 1
.L304:
	cmp	QWORD PTR -8[rbp], 31
	jle	.L305
	mov	QWORD PTR -16[rbp], 0
	jmp	.L306
.L307:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	sar	rax, 8
	mov	rcx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rsi
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -16[rbp], 1
.L306:
	cmp	QWORD PTR -16[rbp], 31
	jle	.L307
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	modL, .-modL
	.globl	reduce
	.type	reduce, @function
reduce:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 560
	mov	QWORD PTR -552[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -536[rbp], 0
	jmp	.L309
.L310:
	mov	rdx, QWORD PTR -536[rbp]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -536[rbp]
	mov	QWORD PTR -528[rbp+rax*8], rdx
	add	QWORD PTR -536[rbp], 1
.L309:
	cmp	QWORD PTR -536[rbp], 63
	jle	.L310
	mov	QWORD PTR -536[rbp], 0
	jmp	.L311
.L312:
	mov	rdx, QWORD PTR -536[rbp]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -536[rbp], 1
.L311:
	cmp	QWORD PTR -536[rbp], 63
	jle	.L312
	lea	rdx, -528[rbp]
	mov	rax, QWORD PTR -552[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	modL
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L313
	call	__stack_chk_fail@PLT
.L313:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	reduce, .-reduce
	.globl	crypto_sign_ed25519_tweet
	.type	crypto_sign_ed25519_tweet, @function
crypto_sign_ed25519_tweet:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1296
	mov	QWORD PTR -1256[rbp], rdi
	mov	QWORD PTR -1264[rbp], rsi
	mov	QWORD PTR -1272[rbp], rdx
	mov	QWORD PTR -1280[rbp], rcx
	mov	QWORD PTR -1288[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rcx, QWORD PTR -1288[rbp]
	lea	rax, -208[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hash_sha512_tweet
	movzx	eax, BYTE PTR -208[rbp]
	and	eax, -8
	mov	BYTE PTR -208[rbp], al
	movzx	eax, BYTE PTR -177[rbp]
	and	eax, 127
	mov	BYTE PTR -177[rbp], al
	movzx	eax, BYTE PTR -177[rbp]
	or	eax, 64
	mov	BYTE PTR -177[rbp], al
	mov	rax, QWORD PTR -1280[rbp]
	lea	rdx, 64[rax]
	mov	rax, QWORD PTR -1264[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L315
.L316:
	mov	rdx, QWORD PTR -1248[rbp]
	mov	rax, QWORD PTR -1272[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -1248[rbp]
	add	rdx, 64
	mov	rcx, rdx
	mov	rdx, QWORD PTR -1256[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -1248[rbp], 1
.L315:
	mov	rax, QWORD PTR -1248[rbp]
	cmp	QWORD PTR -1280[rbp], rax
	ja	.L316
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L317
.L318:
	mov	rax, QWORD PTR -1248[rbp]
	add	rax, 32
	mov	rdx, QWORD PTR -1248[rbp]
	add	rdx, 32
	mov	rcx, rdx
	mov	rdx, QWORD PTR -1256[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR -208[rbp+rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -1248[rbp], 1
.L317:
	cmp	QWORD PTR -1248[rbp], 31
	jle	.L318
	mov	rax, QWORD PTR -1280[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -1256[rbp]
	lea	rcx, 32[rax]
	lea	rax, -80[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hash_sha512_tweet
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	reduce
	lea	rdx, -80[rbp]
	lea	rax, -720[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	scalarbase
	lea	rdx, -720[rbp]
	mov	rax, QWORD PTR -1256[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L319
.L320:
	mov	rax, QWORD PTR -1248[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -1288[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -1248[rbp]
	lea	rcx, 32[rdx]
	mov	rdx, QWORD PTR -1256[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -1248[rbp], 1
.L319:
	cmp	QWORD PTR -1248[rbp], 31
	jle	.L320
	mov	rax, QWORD PTR -1280[rbp]
	lea	rdx, 64[rax]
	mov	rcx, QWORD PTR -1256[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hash_sha512_tweet
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	reduce
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L321
.L322:
	mov	rax, QWORD PTR -1248[rbp]
	mov	QWORD PTR -1232[rbp+rax*8], 0
	add	QWORD PTR -1248[rbp], 1
.L321:
	cmp	QWORD PTR -1248[rbp], 63
	jle	.L322
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L323
.L324:
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -1248[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1248[rbp]
	mov	QWORD PTR -1232[rbp+rax*8], rdx
	add	QWORD PTR -1248[rbp], 1
.L323:
	cmp	QWORD PTR -1248[rbp], 31
	jle	.L324
	mov	QWORD PTR -1248[rbp], 0
	jmp	.L325
.L328:
	mov	QWORD PTR -1240[rbp], 0
	jmp	.L326
.L327:
	mov	rdx, QWORD PTR -1248[rbp]
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR -1232[rbp+rax*8]
	mov	rsi, rax
	lea	rdx, -144[rbp]
	mov	rax, QWORD PTR -1248[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	rcx, -208[rbp]
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	rax, rdx
	lea	rdx, [rsi+rax]
	mov	rcx, QWORD PTR -1248[rbp]
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, rcx
	mov	QWORD PTR -1232[rbp+rax*8], rdx
	add	QWORD PTR -1240[rbp], 1
.L326:
	cmp	QWORD PTR -1240[rbp], 31
	jle	.L327
	add	QWORD PTR -1248[rbp], 1
.L325:
	cmp	QWORD PTR -1248[rbp], 31
	jle	.L328
	mov	rax, QWORD PTR -1256[rbp]
	lea	rdx, 32[rax]
	lea	rax, -1232[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	modL
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L330
	call	__stack_chk_fail@PLT
.L330:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	crypto_sign_ed25519_tweet, .-crypto_sign_ed25519_tweet
	.globl	unpackneg
	.type	unpackneg, @function
unpackneg:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 928
	mov	QWORD PTR -920[rbp], rdi
	mov	QWORD PTR -928[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -920[rbp]
	add	rax, 256
	lea	rsi, gf1[rip]
	mov	rdi, rax
	call	set25519
	mov	rax, QWORD PTR -920[rbp]
	lea	rdx, 128[rax]
	mov	rax, QWORD PTR -928[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	unpack25519
	mov	rax, QWORD PTR -920[rbp]
	lea	rdx, 128[rax]
	lea	rax, -656[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rcx, -656[rbp]
	lea	rax, -528[rbp]
	lea	rdx, D[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rax, QWORD PTR -920[rbp]
	lea	rdx, 256[rax]
	lea	rcx, -656[rbp]
	lea	rax, -656[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	Z
	mov	rax, QWORD PTR -920[rbp]
	lea	rcx, 256[rax]
	lea	rdx, -528[rbp]
	lea	rax, -528[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	A
	lea	rdx, -528[rbp]
	lea	rax, -400[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -400[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -400[rbp]
	lea	rcx, -272[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -656[rbp]
	lea	rcx, -144[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -528[rbp]
	lea	rcx, -912[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -912[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pow2523
	lea	rdx, -656[rbp]
	lea	rcx, -912[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -528[rbp]
	lea	rcx, -912[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -528[rbp]
	lea	rcx, -912[rbp]
	lea	rax, -912[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -528[rbp]
	lea	rcx, -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	mov	rdx, QWORD PTR -920[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -528[rbp]
	lea	rcx, -784[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -656[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	neq25519
	test	eax, eax
	je	.L332
	mov	rcx, QWORD PTR -920[rbp]
	mov	rax, QWORD PTR -920[rbp]
	lea	rdx, I[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
.L332:
	mov	rdx, QWORD PTR -920[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	S
	lea	rdx, -528[rbp]
	lea	rcx, -784[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	M
	lea	rdx, -656[rbp]
	lea	rax, -784[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	neq25519
	test	eax, eax
	je	.L333
	mov	eax, -1
	jmp	.L336
.L333:
	mov	rax, QWORD PTR -920[rbp]
	mov	rdi, rax
	call	par25519
	mov	rdx, QWORD PTR -928[rbp]
	add	rdx, 31
	movzx	edx, BYTE PTR [rdx]
	shr	dl, 7
	cmp	al, dl
	jne	.L335
	mov	rdx, QWORD PTR -920[rbp]
	mov	rax, QWORD PTR -920[rbp]
	lea	rsi, gf0[rip]
	mov	rdi, rax
	call	Z
.L335:
	mov	rax, QWORD PTR -920[rbp]
	lea	rdx, 128[rax]
	mov	rax, QWORD PTR -920[rbp]
	lea	rcx, 384[rax]
	mov	rax, QWORD PTR -920[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	M
	mov	eax, 0
.L336:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L337
	call	__stack_chk_fail@PLT
.L337:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	unpackneg, .-unpackneg
	.globl	crypto_sign_ed25519_tweet_open
	.type	crypto_sign_ed25519_tweet_open, @function
crypto_sign_ed25519_tweet_open:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1200
	mov	QWORD PTR -1160[rbp], rdi
	mov	QWORD PTR -1168[rbp], rsi
	mov	QWORD PTR -1176[rbp], rdx
	mov	QWORD PTR -1184[rbp], rcx
	mov	QWORD PTR -1192[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1168[rbp]
	mov	QWORD PTR [rax], -1
	cmp	QWORD PTR -1184[rbp], 63
	ja	.L339
	mov	eax, -1
	jmp	.L351
.L339:
	mov	rdx, QWORD PTR -1192[rbp]
	lea	rax, -624[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	unpackneg
	test	eax, eax
	je	.L341
	mov	eax, -1
	jmp	.L351
.L341:
	mov	DWORD PTR -1140[rbp], 0
	jmp	.L342
.L343:
	mov	eax, DWORD PTR -1140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1140[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -1160[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -1140[rbp], 1
.L342:
	mov	eax, DWORD PTR -1140[rbp]
	cdqe
	cmp	QWORD PTR -1184[rbp], rax
	ja	.L343
	mov	DWORD PTR -1140[rbp], 0
	jmp	.L344
.L345:
	mov	eax, DWORD PTR -1140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1192[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1140[rbp]
	movsx	rdx, edx
	lea	rcx, 32[rdx]
	mov	rdx, QWORD PTR -1160[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -1140[rbp], 1
.L344:
	cmp	DWORD PTR -1140[rbp], 31
	jle	.L345
	mov	rdx, QWORD PTR -1184[rbp]
	mov	rcx, QWORD PTR -1160[rbp]
	lea	rax, -80[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	crypto_hash_sha512_tweet
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	reduce
	lea	rdx, -80[rbp]
	lea	rcx, -624[rbp]
	lea	rax, -1136[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	scalarmult
	mov	rax, QWORD PTR -1176[rbp]
	lea	rdx, 32[rax]
	lea	rax, -624[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	scalarbase
	lea	rdx, -624[rbp]
	lea	rax, -1136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	add
	lea	rdx, -1136[rbp]
	lea	rax, -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pack
	sub	QWORD PTR -1184[rbp], 64
	lea	rdx, -112[rbp]
	mov	rax, QWORD PTR -1176[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	crypto_verify_32_tweet
	test	eax, eax
	je	.L346
	mov	DWORD PTR -1140[rbp], 0
	jmp	.L347
.L348:
	mov	eax, DWORD PTR -1140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -1140[rbp], 1
.L347:
	mov	eax, DWORD PTR -1140[rbp]
	cdqe
	cmp	QWORD PTR -1184[rbp], rax
	ja	.L348
	mov	eax, -1
	jmp	.L351
.L346:
	mov	DWORD PTR -1140[rbp], 0
	jmp	.L349
.L350:
	mov	eax, DWORD PTR -1140[rbp]
	cdqe
	lea	rdx, 64[rax]
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1140[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -1160[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -1140[rbp], 1
.L349:
	mov	eax, DWORD PTR -1140[rbp]
	cdqe
	cmp	QWORD PTR -1184[rbp], rax
	ja	.L350
	mov	rax, QWORD PTR -1168[rbp]
	mov	rdx, QWORD PTR -1184[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
.L351:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L352
	call	__stack_chk_fail@PLT
.L352:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	crypto_sign_ed25519_tweet_open, .-crypto_sign_ed25519_tweet_open
	.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	"134291.c"
	.text
	.align	2
	.global	randombytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	randombytes, %function
randombytes:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	randombytes, .-randombytes
	.comm	_0,16,4
	.global	_9
	.section	.rodata
	.align	2
	.type	_9, %object
	.size	_9, 32
_9:
	.ascii	"\011\000"
	.space	30
	.comm	gf0,128,8
	.global	gf1
	.align	3
	.type	gf1, %object
	.size	gf1, 128
gf1:
	.word	1
	.word	0
	.space	120
	.global	_121665
	.align	3
	.type	_121665, %object
	.size	_121665, 128
_121665:
	.word	56129
	.word	0
	.word	1
	.word	0
	.space	112
	.global	D
	.align	3
	.type	D, %object
	.size	D, 128
D:
	.word	30883
	.word	0
	.word	4953
	.word	0
	.word	19914
	.word	0
	.word	30187
	.word	0
	.word	55467
	.word	0
	.word	16705
	.word	0
	.word	2637
	.word	0
	.word	112
	.word	0
	.word	59544
	.word	0
	.word	30585
	.word	0
	.word	16505
	.word	0
	.word	36039
	.word	0
	.word	65139
	.word	0
	.word	11119
	.word	0
	.word	27886
	.word	0
	.word	20995
	.word	0
	.global	D2
	.align	3
	.type	D2, %object
	.size	D2, 128
D2:
	.word	61785
	.word	0
	.word	9906
	.word	0
	.word	39828
	.word	0
	.word	60374
	.word	0
	.word	45398
	.word	0
	.word	33411
	.word	0
	.word	5274
	.word	0
	.word	224
	.word	0
	.word	53552
	.word	0
	.word	61171
	.word	0
	.word	33010
	.word	0
	.word	6542
	.word	0
	.word	64743
	.word	0
	.word	22239
	.word	0
	.word	55772
	.word	0
	.word	9222
	.word	0
	.global	X
	.align	3
	.type	X, %object
	.size	X, 128
X:
	.word	54554
	.word	0
	.word	36645
	.word	0
	.word	11616
	.word	0
	.word	51542
	.word	0
	.word	42930
	.word	0
	.word	38181
	.word	0
	.word	51040
	.word	0
	.word	26924
	.word	0
	.word	56412
	.word	0
	.word	64982
	.word	0
	.word	57905
	.word	0
	.word	49316
	.word	0
	.word	21502
	.word	0
	.word	52590
	.word	0
	.word	14035
	.word	0
	.word	8553
	.word	0
	.global	Y
	.align	3
	.type	Y, %object
	.size	Y, 128
Y:
	.word	26200
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.word	26214
	.word	0
	.global	I
	.align	3
	.type	I, %object
	.size	I, 128
I:
	.word	41136
	.word	0
	.word	18958
	.word	0
	.word	6951
	.word	0
	.word	50414
	.word	0
	.word	58488
	.word	0
	.word	44335
	.word	0
	.word	6150
	.word	0
	.word	12099
	.word	0
	.word	55207
	.word	0
	.word	15867
	.word	0
	.word	153
	.word	0
	.word	11085
	.word	0
	.word	57099
	.word	0
	.word	20417
	.word	0
	.word	9344
	.word	0
	.word	11139
	.word	0
	.text
	.align	2
	.global	L32
	.syntax unified
	.arm
	.fpu softvfp
	.type	L32, %function
L32:
	@ 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]
	str	r1, [fp, #-12]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	L32, .-L32
	.align	2
	.global	ld32
	.syntax unified
	.arm
	.fpu softvfp
	.type	ld32, %function
ld32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	ldr	r2, [fp, #-16]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	ldr	r2, [fp, #-16]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ld32, .-ld32
	.align	2
	.global	dl64
	.syntax unified
	.arm
	.fpu softvfp
	.type	dl64, %function
dl64:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #28
	str	r0, [fp, #-40]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	b	.L7
.L8:
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #8
	orr	r3, r3, r0, lsr #24
	lsl	r2, r0, #8
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	and	r0, r1, #255
	mov	r1, #0
	orr	r4, r2, r0
	orr	r5, r3, r1
	str	r4, [fp, #-28]
	str	r5, [fp, #-24]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r6, r2, #1
	adc	r7, r3, #0
	str	r6, [fp, #-36]
	str	r7, [fp, #-32]
.L7:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #7
	bls	.L8
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	dl64, .-dl64
	.align	2
	.global	st32
	.syntax unified
	.arm
	.fpu softvfp
	.type	st32, %function
st32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L11
.L12:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #8
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L11:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L12
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	st32, .-st32
	.align	2
	.global	ts64
	.syntax unified
	.arm
	.fpu softvfp
	.type	ts64, %function
ts64:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #7
	str	r3, [fp, #-8]
	b	.L14
.L15:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r2, [fp, #-28]	@ zero_extendqisi2
	strb	r2, [r3]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L14:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L15
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ts64, .-ts64
	.align	2
	.global	vn
	.syntax unified
	.arm
	.fpu softvfp
	.type	vn, %function
vn:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L17
.L18:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r1, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	orr	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L17:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L18
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	lsr	r3, r3, #8
	and	r3, r3, #1
	sub	r3, r3, #1
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vn, .-vn
	.align	2
	.global	crypto_verify_16_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_verify_16_tweet, %function
crypto_verify_16_tweet:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r2, #16
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	vn
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_verify_16_tweet, .-crypto_verify_16_tweet
	.align	2
	.global	crypto_verify_32_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_verify_32_tweet, %function
crypto_verify_32_tweet:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r2, #32
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	vn
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_verify_32_tweet, .-crypto_verify_32_tweet
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core
	.syntax unified
	.arm
	.fpu softvfp
	.type	core, %function
core:
	@ args = 4, pretend = 0, frame = 240
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #244
	str	r0, [fp, #-240]
	str	r1, [fp, #-244]
	str	r2, [fp, #-248]
	str	r3, [fp, #-252]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L25
.L26:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-252]
	add	r1, r3, r2
	ldr	r2, [fp, #-236]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r4, r3, r2
	mov	r0, r1
	bl	ld32
	mov	r2, r0
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-248]
	add	r2, r3, r2
	ldr	r3, [fp, #-236]
	add	r4, r3, #1
	mov	r0, r2
	bl	ld32
	mov	r2, r0
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-244]
	add	r2, r3, r2
	ldr	r3, [fp, #-236]
	add	r4, r3, #6
	mov	r0, r2
	bl	ld32
	mov	r2, r0
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	add	r3, r3, #16
	ldr	r2, [fp, #-248]
	add	r2, r2, r3
	ldr	r3, [fp, #-236]
	add	r4, r3, #11
	mov	r0, r2
	bl	ld32
	mov	r2, r0
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L25:
	ldr	r3, [fp, #-236]
	cmp	r3, #3
	ble	.L26
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L27
.L28:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-68]
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L27:
	ldr	r3, [fp, #-236]
	cmp	r3, #15
	ble	.L28
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L29
.L38:
	mov	r3, #0
	str	r3, [fp, #-232]
	b	.L30
.L35:
	mov	r3, #0
	str	r3, [fp, #-228]
	b	.L31
.L32:
	ldr	r2, [fp, #-232]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r2, r3, r2
	ldr	r3, [fp, #-228]
	lsl	r3, r3, #2
	add	r3, r2, r3
	rsbs	r2, r3, #0
	and	r3, r3, #15
	and	r2, r2, #15
	rsbpl	r3, r2, #0
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-228]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-212]
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L31:
	ldr	r3, [fp, #-228]
	cmp	r3, #3
	ble	.L32
	ldr	r2, [fp, #-224]
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	mov	r1, #7
	mov	r0, r3
	bl	L32
	mov	r2, r0
	ldr	r3, [fp, #-220]
	eor	r3, r3, r2
	str	r3, [fp, #-220]
	ldr	r2, [fp, #-220]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	mov	r1, #9
	mov	r0, r3
	bl	L32
	mov	r2, r0
	ldr	r3, [fp, #-216]
	eor	r3, r3, r2
	str	r3, [fp, #-216]
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-220]
	add	r3, r2, r3
	mov	r1, #13
	mov	r0, r3
	bl	L32
	mov	r2, r0
	ldr	r3, [fp, #-212]
	eor	r3, r3, r2
	str	r3, [fp, #-212]
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-216]
	add	r3, r2, r3
	mov	r1, #18
	mov	r0, r3
	bl	L32
	mov	r2, r0
	ldr	r3, [fp, #-224]
	eor	r3, r3, r2
	str	r3, [fp, #-224]
	mov	r3, #0
	str	r3, [fp, #-228]
	b	.L33
.L34:
	ldr	r3, [fp, #-232]
	lsl	r2, r3, #2
	ldr	r1, [fp, #-232]
	ldr	r3, [fp, #-228]
	add	r3, r1, r3
	rsbs	r1, r3, #0
	and	r3, r3, #3
	and	r1, r1, #3
	rsbpl	r3, r1, #0
	add	r1, r2, r3
	ldr	r3, [fp, #-228]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-212]
	lsl	r3, r1, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-196]
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L33:
	ldr	r3, [fp, #-228]
	cmp	r3, #3
	ble	.L34
	ldr	r3, [fp, #-232]
	add	r3, r3, #1
	str	r3, [fp, #-232]
.L30:
	ldr	r3, [fp, #-232]
	cmp	r3, #3
	ble	.L35
	mov	r3, #0
	str	r3, [fp, #-228]
	b	.L36
.L37:
	ldr	r3, [fp, #-228]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-196]
	ldr	r3, [fp, #-228]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-228]
	add	r3, r3, #1
	str	r3, [fp, #-228]
.L36:
	ldr	r3, [fp, #-228]
	cmp	r3, #15
	ble	.L37
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L29:
	ldr	r3, [fp, #-236]
	cmp	r3, #19
	ble	.L38
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L39
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L40
.L41:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-68]
	add	r2, r2, r3
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L40:
	ldr	r3, [fp, #-236]
	cmp	r3, #15
	ble	.L41
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L42
.L43:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-252]
	add	r3, r3, r2
	mov	r0, r3
	bl	ld32
	ldr	r2, [fp, #-236]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r1, [r3, #-132]
	ldr	r2, [fp, #-236]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	sub	r2, r1, r0
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-244]
	add	r3, r3, r2
	mov	r0, r3
	bl	ld32
	mov	r1, r0
	ldr	r3, [fp, #-236]
	add	r3, r3, #6
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	add	r3, r3, #6
	sub	r2, r2, r1
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L42:
	ldr	r3, [fp, #-236]
	cmp	r3, #3
	ble	.L43
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L44
.L45:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-240]
	add	r0, r3, r2
	ldr	r2, [fp, #-236]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	mov	r1, r3
	bl	st32
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	add	r3, r3, #16
	ldr	r2, [fp, #-240]
	add	r2, r2, r3
	ldr	r3, [fp, #-236]
	add	r3, r3, #6
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-132]
	mov	r1, r3
	mov	r0, r2
	bl	st32
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L44:
	ldr	r3, [fp, #-236]
	cmp	r3, #3
	ble	.L45
	b	.L50
.L39:
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L47
.L48:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-240]
	add	r0, r3, r2
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-68]
	add	r3, r2, r3
	mov	r1, r3
	bl	st32
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L47:
	ldr	r3, [fp, #-236]
	cmp	r3, #15
	ble	.L48
.L50:
	nop
	ldr	r3, .L51
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L49
	bl	__stack_chk_fail
.L49:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC0
	.size	core, .-core
	.align	2
	.global	crypto_core_salsa20_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_core_salsa20_tweet, %function
crypto_core_salsa20_tweet:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	core
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_core_salsa20_tweet, .-crypto_core_salsa20_tweet
	.align	2
	.global	crypto_core_hsalsa20_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_core_hsalsa20_tweet, %function
crypto_core_hsalsa20_tweet:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, #1
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	core
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_core_hsalsa20_tweet, .-crypto_core_hsalsa20_tweet
	.global	sigma
	.section	.rodata
	.align	2
	.type	sigma, %object
	.size	sigma, 16
sigma:
	.ascii	"expand 32-byte k"
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_stream_salsa20_tweet_xor
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_stream_salsa20_tweet_xor, %function
crypto_stream_salsa20_tweet_xor:
	@ args = 8, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #120
	str	r0, [fp, #-112]
	str	r1, [fp, #-116]
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-132]
	ldr	r3, .L79
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L58
	mov	r3, #0
	b	.L77
.L58:
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L60
.L61:
	sub	r2, fp, #96
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L60:
	ldr	r3, [fp, #-100]
	cmp	r3, #15
	bls	.L61
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L62
.L63:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #96
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L62:
	ldr	r3, [fp, #-100]
	cmp	r3, #7
	bls	.L63
	b	.L64
.L71:
	sub	r1, fp, #96
	sub	r0, fp, #80
	ldr	r3, .L79+4
	ldr	r2, [fp, #-132]
	bl	crypto_core_salsa20_tweet
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L65
.L68:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L66
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	b	.L67
.L66:
	mov	r3, #0
.L67:
	sub	r1, fp, #80
	ldr	r2, [fp, #-100]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	lsl	r2, r2, #24
	asr	r2, r2, #24
	eor	r3, r3, r2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r1, [fp, #-112]
	ldr	r3, [fp, #-100]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L65:
	ldr	r3, [fp, #-100]
	cmp	r3, #63
	bls	.L68
	mov	r3, #1
	str	r3, [fp, #-104]
	mov	r3, #8
	str	r3, [fp, #-100]
	b	.L69
.L70:
	sub	r2, fp, #96
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, r2
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	and	r1, r3, #255
	sub	r2, fp, #96
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	lsr	r3, r3, #8
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L69:
	ldr	r3, [fp, #-100]
	cmp	r3, #15
	bls	.L70
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	subs	r4, r2, #64
	sbc	r5, r3, #0
	str	r4, [fp, #-124]
	str	r5, [fp, #-120]
	ldr	r3, [fp, #-112]
	add	r3, r3, #64
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L64
	ldr	r3, [fp, #-116]
	add	r3, r3, #64
	str	r3, [fp, #-116]
.L64:
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #63
	bhi	.L71
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L72
	sub	r1, fp, #96
	sub	r0, fp, #80
	ldr	r3, .L79+4
	ldr	r2, [fp, #-132]
	bl	crypto_core_salsa20_tweet
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L73
.L76:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L74
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	b	.L75
.L74:
	mov	r3, #0
.L75:
	sub	r1, fp, #80
	ldr	r2, [fp, #-100]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	lsl	r2, r2, #24
	asr	r2, r2, #24
	eor	r3, r3, r2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r1, [fp, #-112]
	ldr	r3, [fp, #-100]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L73:
	ldr	r3, [fp, #-100]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L76
.L72:
	mov	r3, #0
.L77:
	ldr	r2, .L79
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L78
	bl	__stack_chk_fail
.L78:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L80:
	.align	2
.L79:
	.word	.LC1
	.word	sigma
	.size	crypto_stream_salsa20_tweet_xor, .-crypto_stream_salsa20_tweet_xor
	.align	2
	.global	crypto_stream_salsa20_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_stream_salsa20_tweet, %function
crypto_stream_salsa20_tweet:
	@ args = 8, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	crypto_stream_salsa20_tweet_xor
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_stream_salsa20_tweet, .-crypto_stream_salsa20_tweet
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_stream_xsalsa20_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_stream_xsalsa20_tweet, %function
crypto_stream_xsalsa20_tweet:
	@ args = 8, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-48]
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-64]
	ldr	r3, .L86
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #40
	ldr	r3, .L86+4
	ldr	r2, [fp, #-64]
	ldr	r1, [fp, #-52]
	bl	crypto_core_hsalsa20_tweet
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	sub	r2, fp, #40
	str	r2, [sp, #4]
	str	r3, [sp]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-48]
	bl	crypto_stream_salsa20_tweet
	mov	r3, r0
	ldr	r2, .L86
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L85
	bl	__stack_chk_fail
.L85:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L87:
	.align	2
.L86:
	.word	.LC2
	.word	sigma
	.size	crypto_stream_xsalsa20_tweet, .-crypto_stream_xsalsa20_tweet
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_stream_xsalsa20_tweet_xor
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_stream_xsalsa20_tweet_xor, %function
crypto_stream_xsalsa20_tweet_xor:
	@ args = 8, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-68]
	ldr	r3, .L91
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #40
	ldr	r3, .L91+4
	ldr	r2, [fp, #-68]
	ldr	r1, [fp, #-64]
	bl	crypto_core_hsalsa20_tweet
	ldr	r3, [fp, #-64]
	add	r3, r3, #16
	sub	r2, fp, #40
	str	r2, [sp, #4]
	str	r3, [sp]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	crypto_stream_salsa20_tweet_xor
	mov	r3, r0
	ldr	r2, .L91
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L90
	bl	__stack_chk_fail
.L90:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L92:
	.align	2
.L91:
	.word	.LC3
	.word	sigma
	.size	crypto_stream_xsalsa20_tweet_xor, .-crypto_stream_xsalsa20_tweet_xor
	.align	2
	.global	add1305
	.syntax unified
	.arm
	.fpu softvfp
	.type	add1305, %function
add1305:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L94
.L95:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-20]
	add	r3, r1, r3
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L94:
	ldr	r3, [fp, #-12]
	cmp	r3, #16
	bls	.L95
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	add1305, .-add1305
	.global	minusp
	.section	.rodata
	.align	2
	.type	minusp, %object
	.size	minusp, 68
minusp:
	.word	5
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	252
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_onetimeauth_poly1305_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_onetimeauth_poly1305_tweet, %function
crypto_onetimeauth_poly1305_tweet:
	@ args = 4, pretend = 0, frame = 384
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #384
	str	r0, [fp, #-376]
	str	r1, [fp, #-380]
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-392]
	ldr	r3, .L130
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L97
.L98:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-208]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-208]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-276]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L97:
	ldr	r3, [fp, #-368]
	cmp	r3, #16
	bls	.L98
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L99
.L100:
	ldr	r2, [fp, #-392]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-276]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L99:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bls	.L100
	ldr	r3, [fp, #-276]
	and	r3, r3, #15
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-272]
	and	r3, r3, #252
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-260]
	and	r3, r3, #15
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-256]
	and	r3, r3, #252
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-244]
	and	r3, r3, #15
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-240]
	and	r3, r3, #252
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-228]
	and	r3, r3, #15
	str	r3, [fp, #-228]
	b	.L101
.L119:
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L102
.L103:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-140]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L102:
	ldr	r3, [fp, #-368]
	cmp	r3, #16
	bls	.L103
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L104
.L106:
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-140]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L104:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bhi	.L105
	ldr	r3, [fp, #-368]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L106
.L105:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-140]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-368]
	mov	r2, r3
	mov	r3, #0
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	subs	r4, r0, r2
	sbc	r5, r1, r3
	str	r4, [fp, #-388]
	str	r5, [fp, #-384]
	sub	r2, fp, #152
	sub	r3, fp, #220
	mov	r1, r2
	mov	r0, r3
	bl	add1305
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L107
.L112:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-344]
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L108
.L111:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r1, [r3, #-344]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r0, [r3, #-208]
	ldr	r2, [fp, #-368]
	ldr	r3, [fp, #-372]
	cmp	r2, r3
	bhi	.L109
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-368]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-276]
	b	.L110
.L109:
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-368]
	sub	r3, r2, r3
	add	r3, r3, #17
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-276]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #6
.L110:
	mul	r3, r0, r3
	add	r2, r1, r3
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-344]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L108:
	ldr	r3, [fp, #-368]
	cmp	r3, #16
	bls	.L111
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L107:
	ldr	r3, [fp, #-372]
	cmp	r3, #16
	bls	.L112
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L113
.L114:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-344]
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-208]
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L113:
	ldr	r3, [fp, #-372]
	cmp	r3, #16
	bls	.L114
	mov	r3, #0
	str	r3, [fp, #-364]
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L115
.L116:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-208]
	ldr	r2, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	and	r2, r3, #255
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-208]
	ldr	r3, [fp, #-364]
	lsr	r3, r3, #8
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L115:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bls	.L116
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	and	r3, r3, #3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-364]
	lsr	r2, r3, #2
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	str	r3, [fp, #-364]
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L117
.L118:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-208]
	ldr	r2, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	and	r2, r3, #255
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-208]
	ldr	r3, [fp, #-364]
	lsr	r3, r3, #8
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L117:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bls	.L118
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	str	r3, [fp, #-156]
.L101:
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L119
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L120
.L121:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-208]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-72]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L120:
	ldr	r3, [fp, #-368]
	cmp	r3, #16
	bls	.L121
	sub	r3, fp, #220
	ldr	r1, .L130+4
	mov	r0, r3
	bl	add1305
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #7
	rsb	r3, r3, #0
	str	r3, [fp, #-360]
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L122
.L123:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-208]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r1, [r3, #-72]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r0, fp, #12
	add	r3, r0, r3
	ldr	r3, [r3, #-208]
	eor	r1, r1, r3
	ldr	r3, [fp, #-360]
	and	r3, r3, r1
	eor	r2, r2, r3
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-208]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L122:
	ldr	r3, [fp, #-368]
	cmp	r3, #16
	bls	.L123
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L124
.L125:
	ldr	r3, [fp, #-368]
	add	r3, r3, #16
	ldr	r2, [fp, #-392]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-140]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L124:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bls	.L125
	mov	r3, #0
	str	r3, [fp, #-88]
	sub	r2, fp, #152
	sub	r3, fp, #220
	mov	r1, r2
	mov	r0, r3
	bl	add1305
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L126
.L127:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, [r3, #-208]
	ldr	r1, [fp, #-376]
	ldr	r3, [fp, #-368]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L126:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	bls	.L127
	mov	r3, #0
	ldr	r2, .L130
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L129
	bl	__stack_chk_fail
.L129:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L131:
	.align	2
.L130:
	.word	.LC4
	.word	minusp
	.size	crypto_onetimeauth_poly1305_tweet, .-crypto_onetimeauth_poly1305_tweet
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_onetimeauth_poly1305_tweet_verify
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_onetimeauth_poly1305_tweet_verify, %function
crypto_onetimeauth_poly1305_tweet_verify:
	@ args = 4, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-48]
	ldr	r3, .L135
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #24
	ldr	r3, [fp, #-48]
	str	r3, [sp]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-36]
	bl	crypto_onetimeauth_poly1305_tweet
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	crypto_verify_16_tweet
	mov	r3, r0
	ldr	r2, .L135
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L134
	bl	__stack_chk_fail
.L134:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L136:
	.align	2
.L135:
	.word	.LC5
	.size	crypto_onetimeauth_poly1305_tweet_verify, .-crypto_onetimeauth_poly1305_tweet_verify
	.align	2
	.global	crypto_secretbox_xsalsa20poly1305_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_secretbox_xsalsa20poly1305_tweet, %function
crypto_secretbox_xsalsa20poly1305_tweet:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #31
	bhi	.L138
	mvn	r3, #0
	b	.L139
.L138:
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	crypto_stream_xsalsa20_tweet_xor
	ldr	r3, [fp, #-24]
	add	r0, r3, #16
	ldr	r3, [fp, #-24]
	add	r1, r3, #32
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r4, r2, #32
	sbc	r5, r3, #0
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	mov	r2, r4
	mov	r3, r5
	bl	crypto_onetimeauth_poly1305_tweet
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L140
.L141:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L140:
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	ble	.L141
	mov	r3, #0
.L139:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	crypto_secretbox_xsalsa20poly1305_tweet, .-crypto_secretbox_xsalsa20poly1305_tweet
	.section	.rodata
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_secretbox_xsalsa20poly1305_tweet_open
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_secretbox_xsalsa20poly1305_tweet_open, %function
crypto_secretbox_xsalsa20poly1305_tweet_open:
	@ args = 8, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-76]
	ldr	r3, .L150
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #31
	bhi	.L143
	mvn	r3, #0
	b	.L148
.L143:
	sub	r1, fp, #48
	ldr	r3, [fp, #-76]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-72]
	str	r3, [sp]
	mov	r2, #32
	mov	r3, #0
	mov	r0, r1
	bl	crypto_stream_xsalsa20_tweet
	ldr	r3, [fp, #-60]
	add	r0, r3, #16
	ldr	r3, [fp, #-60]
	add	r1, r3, #32
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	subs	r4, r2, #32
	sbc	r5, r3, #0
	sub	r3, fp, #48
	str	r3, [sp]
	mov	r2, r4
	mov	r3, r5
	bl	crypto_onetimeauth_poly1305_tweet_verify
	mov	r3, r0
	cmp	r3, #0
	beq	.L145
	mvn	r3, #0
	b	.L148
.L145:
	ldr	r3, [fp, #-76]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-72]
	str	r3, [sp]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	crypto_stream_xsalsa20_tweet_xor
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L146
.L147:
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L146:
	ldr	r3, [fp, #-52]
	cmp	r3, #31
	ble	.L147
	mov	r3, #0
.L148:
	ldr	r2, .L150
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L149
	bl	__stack_chk_fail
.L149:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L151:
	.align	2
.L150:
	.word	.LC6
	.size	crypto_secretbox_xsalsa20poly1305_tweet_open, .-crypto_secretbox_xsalsa20poly1305_tweet_open
	.align	2
	.global	set25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	set25519, %function
set25519:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L153
.L154:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-16]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L153:
	ldr	r3, [fp, #-8]
	cmp	r3, #15
	ble	.L154
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	set25519, .-set25519
	.align	2
	.global	car25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	car25519, %function
car25519:
	@ args = 0, pretend = 0, frame = 72
	@ 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, #76
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L156
.L157:
	ldr	r3, [fp, #-40]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-40]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	adds	r2, r0, #65536
	str	r2, [fp, #-60]
	adc	r2, r1, #0
	str	r2, [fp, #-56]
	sub	r2, fp, #60
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-40]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	asr	r1, r3, #16
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r3, [fp, #-40]
	add	r2, r3, #1
	ldr	r3, [fp, #-40]
	cmp	r3, #14
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mul	r3, r2, r3
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldmia	r3, {r6-r7}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, #1
	str	r1, [fp, #-68]
	sbc	r3, r3, #0
	str	r3, [fp, #-64]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, #1
	str	r1, [fp, #-76]
	sbc	r3, r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-40]
	cmp	r3, #15
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	and	r0, r3, #255
	mov	r1, #0
	sub	r5, fp, #76
	ldmia	r5, {r4-r5}
	mov	r2, r5
	mul	r2, r0, r2
	mov	r3, r4
	mul	r3, r1, r3
	add	r3, r2, r3
	mov	r2, r4
	umull	r4, r5, r2, r0
	add	r3, r3, r5
	mov	r5, r3
	mov	r2, r4
	mov	r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r2, r0
	mov	r3, r1
	adds	r2, r2, r4
	adc	r3, r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #2
	orr	r1, r1, r2, lsr #30
	lsl	r0, r2, #2
	mov	r2, r0
	mov	r3, r1
	adds	r1, r2, r4
	str	r1, [fp, #-84]
	adc	r3, r3, r5
	str	r3, [fp, #-80]
	sub	r2, fp, #68
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #84
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r8, r0, ip
	mov	r3, r4
	adc	r9, r2, r3
	ldr	r3, [fp, #-40]
	add	r2, r3, #1
	ldr	r3, [fp, #-40]
	cmp	r3, #14
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mul	r3, r2, r3
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	adds	r2, r6, r8
	str	r2, [fp, #-92]
	adc	r2, r7, r9
	str	r2, [fp, #-88]
	sub	r2, fp, #92
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-40]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldmia	r3, {r4-r5}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	ldr	r3, [fp, #-40]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	subs	r2, r4, r0
	str	r2, [fp, #-100]
	sbc	r2, r5, r1
	str	r2, [fp, #-96]
	sub	r2, fp, #100
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L156:
	ldr	r3, [fp, #-40]
	cmp	r3, #15
	ble	.L157
	nop
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	car25519, .-car25519
	.align	2
	.global	sel25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	sel25519, %function
sel25519:
	@ args = 0, pretend = 0, frame = 56
	@ 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, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	ldr	r3, [fp, #-64]
	rsb	r3, r3, #0
	mov	r2, r3
	asr	r3, r2, #31
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	b	.L159
.L160:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	eor	r4, r0, r2
	eor	r5, r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	and	r1, r2, r4
	str	r1, [fp, #-76]
	and	r3, r3, r5
	str	r3, [fp, #-72]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	ip, r2, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	eor	r6, r0, r2
	eor	r7, r1, r3
	stm	ip, {r6-r7}
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	ip, r2, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	eor	r8, r0, r2
	eor	r9, r1, r3
	stm	ip, {r8-r9}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-84]
	adc	r3, r3, #0
	str	r3, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
.L159:
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L160
	nop
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	sel25519, .-sel25519
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	pack25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	pack25519, %function
pack25519:
	@ args = 0, pretend = 0, frame = 336
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #336
	str	r0, [fp, #-312]
	str	r1, [fp, #-316]
	ldr	r3, .L171
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-304]
	b	.L162
.L163:
	ldr	r3, [fp, #-304]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-316]
	add	r3, r3, r2
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	str	r3, [fp, #-304]
.L162:
	ldr	r3, [fp, #-304]
	cmp	r3, #15
	ble	.L163
	sub	r3, fp, #164
	mov	r0, r3
	bl	car25519
	sub	r3, fp, #164
	mov	r0, r3
	bl	car25519
	sub	r3, fp, #164
	mov	r0, r3
	bl	car25519
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L164
.L167:
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	ldr	r2, .L171+4
	mvn	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-324]
	adc	r3, r1, r3
	str	r3, [fp, #-320]
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	mov	r3, #1
	str	r3, [fp, #-304]
	b	.L165
.L166:
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r0-r1}
	ldr	r2, .L171+8
	mvn	r3, #0
	adds	ip, r0, r2
	str	ip, [fp, #-332]
	adc	r3, r1, r3
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-304]
	sub	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	asr	r1, r3, #16
	mov	r2, #1
	mov	r3, #0
	and	r4, r0, r2
	and	r5, r1, r3
	sub	r3, fp, #332
	ldmia	r3, {r2-r3}
	mov	r1, r2
	subs	r1, r1, r4
	str	r1, [fp, #-340]
	sbc	r3, r3, r5
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	sub	r2, fp, #340
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-304]
	sub	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-304]
	sub	ip, r3, #1
	ldr	r2, .L171+12
	mov	r3, #0
	and	lr, r0, r2
	str	lr, [fp, #-348]
	and	r3, r1, r3
	str	r3, [fp, #-344]
	lsl	r3, ip, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	sub	r2, fp, #348
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	str	r3, [fp, #-304]
.L165:
	ldr	r3, [fp, #-304]
	cmp	r3, #14
	ble	.L166
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldr	r2, .L171+16
	mvn	r3, #0
	adds	r8, r0, r2
	adc	r9, r1, r3
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	asr	r1, r3, #16
	mov	r2, #1
	mov	r3, #0
	and	r6, r0, r2
	and	r7, r1, r3
	subs	r3, r8, r6
	str	r3, [fp, #-356]
	sbc	r3, r9, r7
	str	r3, [fp, #-352]
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	asr	r1, r3, #16
	mov	r3, r0
	and	r3, r3, #1
	str	r3, [fp, #-296]
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	ldr	r2, .L171+12
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-364]
	and	r3, r1, r3
	str	r3, [fp, #-360]
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-296]
	rsb	r2, r3, #1
	sub	r1, fp, #292
	sub	r3, fp, #164
	mov	r0, r3
	bl	sel25519
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	str	r3, [fp, #-300]
.L164:
	ldr	r3, [fp, #-300]
	cmp	r3, #1
	ble	.L167
	mov	r3, #0
	str	r3, [fp, #-304]
	b	.L168
.L169:
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-304]
	lsl	r1, r1, #1
	mov	r0, r1
	ldr	r1, [fp, #-312]
	add	r1, r1, r0
	and	r3, r2, #255
	strb	r3, [r1]
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	asr	r3, r1, #8
	ldr	r1, [fp, #-304]
	lsl	r1, r1, #1
	add	r1, r1, #1
	ldr	r0, [fp, #-312]
	add	r1, r0, r1
	and	r3, r2, #255
	strb	r3, [r1]
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	str	r3, [fp, #-304]
.L168:
	ldr	r3, [fp, #-304]
	cmp	r3, #15
	ble	.L169
	nop
	ldr	r3, .L171
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L170
	bl	__stack_chk_fail
.L170:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L172:
	.align	2
.L171:
	.word	.LC7
	.word	-65517
	.word	-65535
	.word	65535
	.word	-32767
	.size	pack25519, .-pack25519
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	neq25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	neq25519, %function
neq25519:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	ldr	r3, .L176
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #72
	ldr	r1, [fp, #-80]
	mov	r0, r3
	bl	pack25519
	sub	r3, fp, #40
	ldr	r1, [fp, #-84]
	mov	r0, r3
	bl	pack25519
	sub	r2, fp, #40
	sub	r3, fp, #72
	mov	r1, r2
	mov	r0, r3
	bl	crypto_verify_32_tweet
	mov	r3, r0
	ldr	r2, .L176
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L175
	bl	__stack_chk_fail
.L175:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L177:
	.align	2
.L176:
	.word	.LC8
	.size	neq25519, .-neq25519
	.section	.rodata
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	par25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	par25519, %function
par25519:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L181
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	ldr	r1, [fp, #-48]
	mov	r0, r3
	bl	pack25519
	ldrb	r3, [fp, #-40]	@ zero_extendqisi2
	and	r3, r3, #1
	and	r3, r3, #255
	ldr	r2, .L181
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L180
	bl	__stack_chk_fail
.L180:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L182:
	.align	2
.L181:
	.word	.LC9
	.size	par25519, .-par25519
	.align	2
	.global	unpack25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	unpack25519, %function
unpack25519:
	@ args = 0, pretend = 0, frame = 16
	@ 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, #20
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L184
.L185:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #8
	orr	r3, r3, r0, lsr #24
	lsl	r2, r0, #8
	ldr	r1, [fp, #-32]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	adds	r8, r4, r2
	adc	r9, r5, r3
	stm	r1, {r8-r9}
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L184:
	ldr	r3, [fp, #-32]
	cmp	r3, #15
	ble	.L185
	ldr	r3, [fp, #-40]
	add	r3, r3, #120
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-40]
	add	ip, r1, #120
	ldr	r0, .L186
	mov	r1, #0
	and	r6, r2, r0
	and	r7, r3, r1
	stm	ip, {r6-r7}
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L187:
	.align	2
.L186:
	.word	32767
	.size	unpack25519, .-unpack25519
	.align	2
	.global	A
	.syntax unified
	.arm
	.fpu softvfp
	.type	A, %function
A:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L189
.L190:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-16]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-24]
	add	ip, lr, ip
	adds	r4, r0, r2
	adc	r5, r1, r3
	stm	ip, {r4-r5}
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L189:
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	ble	.L190
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	A, .-A
	.align	2
	.global	Z
	.syntax unified
	.arm
	.fpu softvfp
	.type	Z, %function
Z:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L192
.L193:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-16]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-24]
	add	ip, lr, ip
	subs	r4, r0, r2
	sbc	r5, r1, r3
	stm	ip, {r4-r5}
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L192:
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	ble	.L193
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	Z, .-Z
	.section	.rodata
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	M
	.syntax unified
	.arm
	.fpu softvfp
	.type	M, %function
M:
	@ args = 0, pretend = 0, frame = 368
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #368
	str	r0, [fp, #-304]
	str	r1, [fp, #-308]
	str	r2, [fp, #-312]
	ldr	r3, .L206
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	b	.L195
.L196:
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r1, r3, #256
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	str	r4, [fp, #-300]
	str	r5, [fp, #-296]
.L195:
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	cmp	r2, #31
	sbcs	r3, r3, #0
	blt	.L196
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	b	.L197
.L200:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	b	.L198
.L199:
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-324]
	adc	r3, r1, r3
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-300]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-308]
	add	r3, r3, r2
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-292]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-312]
	add	r3, r3, r2
	ldmia	r3, {r0-r1}
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r8, r9, r4, r0
	add	r3, r3, r9
	mov	r9, r3
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-332]
	adc	r3, r1, r3
	str	r3, [fp, #-328]
	adds	r3, r6, r8
	str	r3, [fp, #-340]
	adc	r3, r7, r9
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	sub	r2, fp, #340
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-364]
	adc	r3, r3, #0
	str	r3, [fp, #-360]
	sub	r4, fp, #364
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-292]
	str	r4, [fp, #-288]
.L198:
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L199
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-372]
	adc	r3, r3, #0
	str	r3, [fp, #-368]
	sub	r4, fp, #372
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-300]
	str	r4, [fp, #-296]
.L197:
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L200
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	b	.L201
.L202:
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	ldmia	r3, {r6-r7}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	r1, r2, #16
	str	r1, [fp, #-348]
	adc	r3, r3, #0
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-348]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	ldmia	r3, {r4-r5}
	mov	r2, r4
	mov	r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #2
	orr	r1, r1, r2, lsr #30
	lsl	r0, r2, #2
	mov	r2, r0
	mov	r3, r1
	adds	r2, r2, r4
	adc	r3, r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #2
	orr	r1, r1, r2, lsr #30
	lsl	r0, r2, #2
	mov	r2, r0
	mov	r3, r1
	subs	r2, r2, r4
	sbc	r3, r3, r5
	adds	r1, r2, r2
	str	r1, [fp, #-380]
	adc	r3, r3, r3
	str	r3, [fp, #-376]
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	adds	r1, r6, r2
	str	r1, [fp, #-356]
	adc	r3, r7, r3
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	sub	r2, fp, #356
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-388]
	adc	r3, r3, #0
	str	r3, [fp, #-384]
	sub	r4, fp, #388
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-300]
	str	r4, [fp, #-296]
.L201:
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	cmp	r2, #15
	sbcs	r3, r3, #0
	blt	.L202
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	b	.L203
.L204:
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-304]
	add	r1, r2, r3
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #256
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-396]
	adc	r3, r3, #0
	str	r3, [fp, #-392]
	sub	r4, fp, #396
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-300]
	str	r4, [fp, #-296]
.L203:
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L204
	ldr	r0, [fp, #-304]
	bl	car25519
	ldr	r0, [fp, #-304]
	bl	car25519
	nop
	ldr	r3, .L206
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L205
	bl	__stack_chk_fail
.L205:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L207:
	.align	2
.L206:
	.word	.LC10
	.size	M, .-M
	.align	2
	.global	S
	.syntax unified
	.arm
	.fpu softvfp
	.type	S, %function
S:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	M
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	S, .-S
	.section	.rodata
	.align	2
.LC11:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	inv25519
	.syntax unified
	.arm
	.fpu softvfp
	.type	inv25519, %function
inv25519:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #152
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	ldr	r3, .L218
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L210
.L211:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-156]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-144]
	lsl	r1, r1, #3
	sub	r0, fp, #4
	add	r1, r0, r1
	sub	r1, r1, #136
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L210:
	ldr	r3, [fp, #-144]
	cmp	r3, #15
	ble	.L211
	mov	r3, #253
	str	r3, [fp, #-144]
	b	.L212
.L214:
	sub	r2, fp, #140
	sub	r3, fp, #140
	mov	r1, r2
	mov	r0, r3
	bl	S
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	beq	.L213
	ldr	r3, [fp, #-144]
	cmp	r3, #4
	beq	.L213
	sub	r1, fp, #140
	sub	r3, fp, #140
	ldr	r2, [fp, #-156]
	mov	r0, r3
	bl	M
.L213:
	ldr	r3, [fp, #-144]
	sub	r3, r3, #1
	str	r3, [fp, #-144]
.L212:
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bge	.L214
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L215
.L216:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-152]
	add	r1, r2, r3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L215:
	ldr	r3, [fp, #-144]
	cmp	r3, #15
	ble	.L216
	nop
	ldr	r3, .L218
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L217
	bl	__stack_chk_fail
.L217:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L219:
	.align	2
.L218:
	.word	.LC11
	.size	inv25519, .-inv25519
	.section	.rodata
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	pow2523
	.syntax unified
	.arm
	.fpu softvfp
	.type	pow2523, %function
pow2523:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #152
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	ldr	r3, .L229
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L221
.L222:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-156]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-144]
	lsl	r1, r1, #3
	sub	r0, fp, #4
	add	r1, r0, r1
	sub	r1, r1, #136
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L221:
	ldr	r3, [fp, #-144]
	cmp	r3, #15
	ble	.L222
	mov	r3, #250
	str	r3, [fp, #-144]
	b	.L223
.L225:
	sub	r2, fp, #140
	sub	r3, fp, #140
	mov	r1, r2
	mov	r0, r3
	bl	S
	ldr	r3, [fp, #-144]
	cmp	r3, #1
	beq	.L224
	sub	r1, fp, #140
	sub	r3, fp, #140
	ldr	r2, [fp, #-156]
	mov	r0, r3
	bl	M
.L224:
	ldr	r3, [fp, #-144]
	sub	r3, r3, #1
	str	r3, [fp, #-144]
.L223:
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bge	.L225
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L226
.L227:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-152]
	add	r1, r2, r3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L226:
	ldr	r3, [fp, #-144]
	cmp	r3, #15
	ble	.L227
	nop
	ldr	r3, .L229
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L228
	bl	__stack_chk_fail
.L228:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L230:
	.align	2
.L229:
	.word	.LC12
	.size	pow2523, .-pow2523
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_scalarmult_curve25519_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_scalarmult_curve25519_tweet, %function
crypto_scalarmult_curve25519_tweet:
	@ args = 0, pretend = 0, frame = 1528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1520
	sub	sp, sp, #8
	str	r0, [fp, #-1496]
	str	r1, [fp, #-1500]
	str	r2, [fp, #-1504]
	ldr	r3, .L242
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1492]
	str	r3, [fp, #-1488]
	b	.L232
.L233:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1500]
	add	r3, r3, r2
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #64
	ldr	r3, [fp, #-1492]
	add	r2, r2, r3
	mov	r3, r1
	strb	r3, [r2]
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r4, r2, #1
	adc	r5, r3, #0
	str	r4, [fp, #-1492]
	str	r5, [fp, #-1488]
.L232:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	cmp	r2, #31
	sbcs	r3, r3, #0
	blt	.L233
	ldr	r3, [fp, #-1500]
	add	r3, r3, #31
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #63
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r3, #64
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-64]	@ zero_extendqisi2
	bic	r3, r3, #7
	and	r3, r3, #255
	strb	r3, [fp, #-64]
	sub	r3, fp, #708
	ldr	r1, [fp, #-1504]
	mov	r0, r3
	bl	unpack25519
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1492]
	str	r3, [fp, #-1488]
	b	.L234
.L235:
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r1, r3, #1184
	sub	r1, r1, #8
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1184
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1440
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1440
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1056
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r6, r2, #1
	adc	r7, r3, #0
	str	r6, [fp, #-1492]
	str	r7, [fp, #-1488]
.L234:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L235
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-1092]
	str	r3, [fp, #-1088]
	ldr	r2, [fp, #-1092]
	ldr	r3, [fp, #-1088]
	str	r2, [fp, #-1476]
	str	r3, [fp, #-1472]
	mov	r2, #254
	mov	r3, #0
	str	r2, [fp, #-1492]
	str	r3, [fp, #-1488]
	b	.L236
.L237:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #3
	orr	r0, r0, r3, lsl #29
	asr	r1, r3, #3
	sub	r3, fp, #64
	add	r3, r3, r0
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1492]
	and	r3, r3, #7
	asr	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	mov	r2, #1
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-1548]
	and	r3, r1, r3
	str	r3, [fp, #-1544]
	ldr	r3, [fp, #-1548]
	ldr	r4, [fp, #-1544]
	str	r3, [fp, #-1484]
	str	r4, [fp, #-1480]
	ldr	r2, [fp, #-1484]
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	sel25519
	ldr	r2, [fp, #-1484]
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	sel25519
	sub	r2, fp, #1200
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	r0, fp, #964
	mov	r1, r3
	bl	A
	sub	r2, fp, #1200
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1456
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	Z
	sub	r2, fp, #1072
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	A
	sub	r2, fp, #1072
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1328
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	Z
	sub	r2, fp, #964
	sub	r3, fp, #1072
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r2
	mov	r0, r3
	bl	S
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	r2, fp, #836
	mov	r1, r3
	mov	r0, r2
	bl	S
	sub	r2, fp, #1456
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1200
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	sub	r2, fp, #964
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	sub	r2, fp, #1200
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	r0, fp, #964
	mov	r1, r3
	bl	A
	sub	r2, fp, #1200
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1456
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	Z
	sub	r2, fp, #1456
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r3, fp, #1328
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r2
	mov	r0, r3
	bl	S
	sub	r2, fp, #836
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	Z
	sub	r1, fp, #1200
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldr	r2, .L242+4
	mov	r0, r3
	bl	M
	sub	r2, fp, #1072
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1456
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	A
	sub	r2, fp, #1456
	sub	r2, r2, #12
	sub	r2, r2, #8
	sub	r1, fp, #1200
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	sub	r2, fp, #836
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	sub	r2, fp, #708
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1072
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	sub	r2, fp, #964
	sub	r3, fp, #1328
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r2
	mov	r0, r3
	bl	S
	ldr	r2, [fp, #-1484]
	sub	r1, fp, #1328
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	sel25519
	ldr	r2, [fp, #-1484]
	sub	r1, fp, #1072
	sub	r1, r1, #12
	sub	r1, r1, #8
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	sel25519
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	subs	r1, r2, #1
	str	r1, [fp, #-1556]
	sbc	r3, r3, #0
	str	r3, [fp, #-1552]
	ldr	r3, [fp, #-1556]
	ldr	r4, [fp, #-1552]
	str	r3, [fp, #-1492]
	str	r4, [fp, #-1488]
.L236:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L237
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1492]
	str	r3, [fp, #-1488]
	b	.L238
.L239:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r1, r2, #16
	str	r1, [fp, #-1516]
	adc	r3, r3, #0
	str	r3, [fp, #-1512]
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1440
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1516]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r1, r2, #32
	str	r1, [fp, #-1524]
	adc	r3, r3, #0
	str	r3, [fp, #-1520]
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1184
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1524]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r1, r2, #48
	str	r1, [fp, #-1532]
	adc	r3, r3, #0
	str	r3, [fp, #-1528]
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1532]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r1, r2, #64
	str	r1, [fp, #-1540]
	adc	r3, r3, #0
	str	r3, [fp, #-1536]
	ldr	r3, [fp, #-1492]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1056
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-1540]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	adds	r8, r2, #1
	adc	r9, r3, #0
	str	r8, [fp, #-1492]
	str	r9, [fp, #-1488]
.L238:
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	cmp	r2, #16
	sbcs	r3, r3, #0
	blt	.L239
	sub	r3, fp, #708
	add	r3, r3, #256
	sub	r2, fp, #708
	add	r2, r2, #256
	mov	r1, r2
	mov	r0, r3
	bl	inv25519
	sub	r3, fp, #708
	add	r3, r3, #128
	sub	r1, fp, #708
	add	r1, r1, #128
	sub	r2, fp, #708
	add	r2, r2, #256
	mov	r0, r3
	bl	M
	sub	r3, fp, #708
	add	r3, r3, #128
	mov	r1, r3
	ldr	r0, [fp, #-1496]
	bl	pack25519
	mov	r3, #0
	ldr	r2, .L242
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L241
	bl	__stack_chk_fail
.L241:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L243:
	.align	2
.L242:
	.word	.LC13
	.word	_121665
	.size	crypto_scalarmult_curve25519_tweet, .-crypto_scalarmult_curve25519_tweet
	.align	2
	.global	crypto_scalarmult_curve25519_tweet_base
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_scalarmult_curve25519_tweet_base, %function
crypto_scalarmult_curve25519_tweet_base:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, .L246
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	crypto_scalarmult_curve25519_tweet
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L247:
	.align	2
.L246:
	.word	_9
	.size	crypto_scalarmult_curve25519_tweet_base, .-crypto_scalarmult_curve25519_tweet_base
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet_keypair
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_keypair, %function
crypto_box_curve25519xsalsa20poly1305_tweet_keypair:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r2, #32
	mov	r3, #0
	ldr	r0, [fp, #-12]
	bl	randombytes
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	crypto_scalarmult_curve25519_tweet_base
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_keypair, .-crypto_box_curve25519xsalsa20poly1305_tweet_keypair
	.section	.rodata
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm, %function
crypto_box_curve25519xsalsa20poly1305_tweet_beforenm:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, .L253
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	ldr	r2, [fp, #-52]
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	crypto_scalarmult_curve25519_tweet
	sub	r2, fp, #40
	ldr	r3, .L253+4
	ldr	r1, .L253+8
	ldr	r0, [fp, #-48]
	bl	crypto_core_hsalsa20_tweet
	mov	r3, r0
	ldr	r2, .L253
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L252
	bl	__stack_chk_fail
.L252:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L254:
	.align	2
.L253:
	.word	.LC14
	.word	sigma
	.word	_0
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm, .-crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_afternm, %function
crypto_box_curve25519xsalsa20poly1305_tweet_afternm:
	@ args = 8, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	crypto_secretbox_xsalsa20poly1305_tweet
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_afternm, .-crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm, %function
crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm:
	@ args = 8, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	crypto_secretbox_xsalsa20poly1305_tweet_open
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm, .-crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet, %function
crypto_box_curve25519xsalsa20poly1305_tweet:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-72]
	ldr	r3, .L262
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	ldr	r2, [fp, #-72]
	ldr	r1, [fp, #-68]
	mov	r0, r3
	bl	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	sub	r3, fp, #40
	str	r3, [sp, #4]
	ldr	r3, [fp, #-64]
	str	r3, [sp]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	crypto_box_curve25519xsalsa20poly1305_tweet_afternm
	mov	r3, r0
	ldr	r2, .L262
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L261
	bl	__stack_chk_fail
.L261:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L263:
	.align	2
.L262:
	.word	.LC15
	.size	crypto_box_curve25519xsalsa20poly1305_tweet, .-crypto_box_curve25519xsalsa20poly1305_tweet
	.section	.rodata
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_box_curve25519xsalsa20poly1305_tweet_open
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_box_curve25519xsalsa20poly1305_tweet_open, %function
crypto_box_curve25519xsalsa20poly1305_tweet_open:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-72]
	ldr	r3, .L267
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	ldr	r2, [fp, #-72]
	ldr	r1, [fp, #-68]
	mov	r0, r3
	bl	crypto_box_curve25519xsalsa20poly1305_tweet_beforenm
	sub	r3, fp, #40
	str	r3, [sp, #4]
	ldr	r3, [fp, #-64]
	str	r3, [sp]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	crypto_box_curve25519xsalsa20poly1305_tweet_open_afternm
	mov	r3, r0
	ldr	r2, .L267
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L266
	bl	__stack_chk_fail
.L266:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L268:
	.align	2
.L267:
	.word	.LC16
	.size	crypto_box_curve25519xsalsa20poly1305_tweet_open, .-crypto_box_curve25519xsalsa20poly1305_tweet_open
	.align	2
	.global	R
	.syntax unified
	.arm
	.fpu softvfp
	.type	R, %function
R:
	@ args = 0, pretend = 0, frame = 16
	@ 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, #20
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	str	r2, [fp, #-40]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-40]
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r6, r2, r1
	orr	r6, r6, r3, lsl ip
	orr	r6, r6, r3, lsr r0
	lsr	r7, r3, r1
	ldr	r1, [fp, #-40]
	rsb	r1, r1, #0
	and	r1, r1, #63
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r5, r3, r1
	orr	r5, r5, r2, lsl ip
	orr	r5, r5, r2, lsr r0
	lsl	r4, r2, r1
	orr	r8, r6, r4
	orr	r9, r7, r5
	mov	r4, r8
	mov	r5, r9
	mov	r2, r4
	mov	r3, r5
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	R, .-R
	.align	2
	.global	Ch
	.syntax unified
	.arm
	.fpu softvfp
	.type	Ch, %function
Ch:
	@ args = 8, pretend = 0, frame = 24
	@ 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, #28
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	and	r6, r0, r2
	and	r7, r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mvn	r8, r2
	mvn	r9, r3
	ldmib	fp, {r2-r3}
	and	r4, r8, r2
	and	r5, r9, r3
	eor	r3, r6, r4
	str	r3, [fp, #-52]
	eor	r3, r7, r5
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	Ch, .-Ch
	.align	2
	.global	Maj
	.syntax unified
	.arm
	.fpu softvfp
	.type	Maj, %function
Maj:
	@ args = 8, pretend = 0, frame = 24
	@ 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, #28
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldmib	fp, {r2-r3}
	eor	r8, r0, r2
	eor	r9, r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	r6, r8, r2
	and	r7, r9, r3
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldmib	fp, {r2-r3}
	and	r4, r0, r2
	and	r5, r1, r3
	eor	r3, r6, r4
	str	r3, [fp, #-52]
	eor	r3, r7, r5
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
	.size	Maj, .-Maj
	.align	2
	.global	Sigma0
	.syntax unified
	.arm
	.fpu softvfp
	.type	Sigma0, %function
Sigma0:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #8
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #28
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r6, r0
	mov	r7, r1
	mov	r2, #34
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r4, r6, r2
	eor	r5, r7, r3
	mov	r2, #39
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r8, r4, r2
	eor	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	Sigma0, .-Sigma0
	.align	2
	.global	Sigma1
	.syntax unified
	.arm
	.fpu softvfp
	.type	Sigma1, %function
Sigma1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #8
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #14
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r6, r0
	mov	r7, r1
	mov	r2, #18
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r4, r6, r2
	eor	r5, r7, r3
	mov	r2, #41
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r8, r4, r2
	eor	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	Sigma1, .-Sigma1
	.align	2
	.global	sigma0
	.syntax unified
	.arm
	.fpu softvfp
	.type	sigma0, %function
sigma0:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #8
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r6, r0
	mov	r7, r1
	mov	r2, #8
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r4, r6, r2
	eor	r5, r7, r3
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #7
	orr	r2, r2, r1, lsl #25
	lsr	r3, r1, #7
	eor	r8, r4, r2
	eor	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	sigma0, .-sigma0
	.align	2
	.global	sigma1
	.syntax unified
	.arm
	.fpu softvfp
	.type	sigma1, %function
sigma1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #8
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #19
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r6, r0
	mov	r7, r1
	mov	r2, #61
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	R
	mov	r2, r0
	mov	r3, r1
	eor	r4, r6, r2
	eor	r5, r7, r3
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #6
	orr	r2, r2, r1, lsl #26
	lsr	r3, r1, #6
	eor	r8, r4, r2
	eor	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	sigma1, .-sigma1
	.global	K
	.section	.rodata
	.align	3
	.type	K, %object
	.size	K, 640
K:
	.word	-685199838
	.word	1116352408
	.word	602891725
	.word	1899447441
	.word	-330482897
	.word	-1245643825
	.word	-2121671748
	.word	-373957723
	.word	-213338824
	.word	961987163
	.word	-1241133031
	.word	1508970993
	.word	-1357295717
	.word	-1841331548
	.word	-630357736
	.word	-1424204075
	.word	-1560083902
	.word	-670586216
	.word	1164996542
	.word	310598401
	.word	1323610764
	.word	607225278
	.word	-704662302
	.word	1426881987
	.word	-226784913
	.word	1925078388
	.word	991336113
	.word	-2132889090
	.word	633803317
	.word	-1680079193
	.word	-815192428
	.word	-1046744716
	.word	-1628353838
	.word	-459576895
	.word	944711139
	.word	-272742522
	.word	-1953704523
	.word	264347078
	.word	2007800933
	.word	604807628
	.word	1495990901
	.word	770255983
	.word	1856431235
	.word	1249150122
	.word	-1119749164
	.word	1555081692
	.word	-2096016459
	.word	1996064986
	.word	-295247957
	.word	-1740746414
	.word	766784016
	.word	-1473132947
	.word	-1728372417
	.word	-1341970488
	.word	-1091629340
	.word	-1084653625
	.word	1034457026
	.word	-958395405
	.word	-1828018395
	.word	-710438585
	.word	-536640913
	.word	113926993
	.word	168717936
	.word	338241895
	.word	1188179964
	.word	666307205
	.word	1546045734
	.word	773529912
	.word	1522805485
	.word	1294757372
	.word	-1651133473
	.word	1396182291
	.word	-1951439906
	.word	1695183700
	.word	1014477480
	.word	1986661051
	.word	1206759142
	.word	-2117940946
	.word	344077627
	.word	-1838011259
	.word	1290863460
	.word	-1564481375
	.word	-1136513023
	.word	-1474664885
	.word	-789014639
	.word	-1035236496
	.word	106217008
	.word	-949202525
	.word	-688958952
	.word	-778901479
	.word	1432725776
	.word	-694614492
	.word	1467031594
	.word	-200395387
	.word	851169720
	.word	275423344
	.word	-1194143544
	.word	430227734
	.word	1363258195
	.word	506948616
	.word	-544281703
	.word	659060556
	.word	-509917016
	.word	883997877
	.word	-976659869
	.word	958139571
	.word	-482243893
	.word	1322822218
	.word	2003034995
	.word	1537002063
	.word	-692930397
	.word	1747873779
	.word	1575990012
	.word	1955562222
	.word	1125592928
	.word	2024104815
	.word	-1578062990
	.word	-2067236844
	.word	442776044
	.word	-1933114872
	.word	593698344
	.word	-1866530822
	.word	-561857047
	.word	-1538233109
	.word	-1295615723
	.word	-1090935817
	.word	-479046869
	.word	-965641998
	.word	-366583396
	.word	-903397682
	.word	566280711
	.word	-779700025
	.word	-840897762
	.word	-354779690
	.word	-294727304
	.word	-176337025
	.word	1914138554
	.word	116418474
	.word	-1563912026
	.word	174292421
	.word	-1090974290
	.word	289380356
	.word	320620315
	.word	460393269
	.word	587496836
	.word	685471733
	.word	1086792851
	.word	852142971
	.word	365543100
	.word	1017036298
	.word	-1676669620
	.word	1126000580
	.word	-885112138
	.word	1288033470
	.word	-60457430
	.word	1501505948
	.word	987167468
	.word	1607167915
	.word	1246189591
	.word	1816402316
	.align	2
.LC17:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_hashblocks_sha512_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_hashblocks_sha512_tweet, %function
crypto_hashblocks_sha512_tweet:
	@ args = 0, pretend = 0, frame = 440
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #448
	str	r0, [fp, #-376]
	str	r1, [fp, #-380]
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	ldr	r3, .L305
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L284
.L285:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-376]
	add	r3, r3, r2
	mov	r0, r3
	bl	dl64
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #328
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L284:
	ldr	r3, [fp, #-372]
	cmp	r3, #7
	ble	.L285
	b	.L286
.L300:
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L287
.L288:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-380]
	add	r3, r3, r2
	mov	r0, r3
	bl	dl64
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L287:
	ldr	r3, [fp, #-372]
	cmp	r3, #15
	ble	.L288
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L289
.L297:
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L290
.L291:
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L290:
	ldr	r3, [fp, #-368]
	cmp	r3, #7
	ble	.L291
	sub	r5, fp, #172
	ldmia	r5, {r4-r5}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	Sigma1
	mov	r2, r0
	mov	r3, r1
	adds	r1, r4, r2
	str	r1, [fp, #-396]
	adc	r3, r5, r3
	str	r3, [fp, #-392]
	sub	r5, fp, #196
	ldmia	r5, {r4-r5}
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	Ch
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-404]
	adc	r3, r1, r3
	str	r3, [fp, #-400]
	ldr	r2, .L305+4
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #404
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-412]
	adc	r3, r1, r3
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-372]
	rsbs	r1, r3, #0
	and	r2, r3, #15
	and	r3, r1, #15
	rsbpl	r2, r3, #0
	lsl	r3, r2, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	ip, ip, r2
	str	ip, [fp, #-460]
	adc	r3, r1, r3
	str	r3, [fp, #-456]
	sub	r4, fp, #460
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-364]
	str	r4, [fp, #-360]
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	Sigma0
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	adds	r8, r0, r2
	adc	r9, r1, r3
	sub	r5, fp, #228
	ldmia	r5, {r4-r5}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	Maj
	mov	r2, r0
	mov	r3, r1
	adds	r1, r8, r2
	str	r1, [fp, #-420]
	adc	r3, r9, r3
	str	r3, [fp, #-416]
	sub	r4, fp, #420
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-236]
	str	r4, [fp, #-232]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #364
	ldmia	r3, {r2-r3}
	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, #-268]
	str	r4, [fp, #-264]
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L292
.L293:
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	rsbs	r2, r3, #0
	and	ip, r3, #7
	and	r3, r2, #7
	rsbpl	ip, r3, #0
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #264
	ldmia	r3, {r0-r1}
	lsl	r3, ip, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L292:
	ldr	r3, [fp, #-368]
	cmp	r3, #7
	ble	.L293
	ldr	r3, [fp, #-372]
	rsbs	r1, r3, #0
	and	r2, r3, #15
	and	r3, r1, #15
	rsbpl	r2, r3, #0
	cmp	r2, #15
	bne	.L294
	mov	r3, #0
	str	r3, [fp, #-368]
	b	.L295
.L296:
	ldr	r3, [fp, #-368]
	add	r3, r3, #9
	rsbs	r1, r3, #0
	and	r2, r3, #15
	and	r3, r1, #15
	rsbpl	r2, r3, #0
	lsl	r3, r2, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	rsbs	r1, r3, #0
	and	r2, r3, #15
	and	r3, r1, #15
	rsbpl	r2, r3, #0
	lsl	r3, r2, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sigma0
	mov	r2, r0
	mov	r3, r1
	adds	r1, r4, r2
	str	r1, [fp, #-436]
	adc	r3, r5, r3
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-368]
	add	r3, r3, #14
	rsbs	r1, r3, #0
	and	r2, r3, #15
	and	r3, r1, #15
	rsbpl	r2, r3, #0
	lsl	r3, r2, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sigma1
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	mov	ip, r0
	adds	r6, ip, r2
	adc	r7, r1, r3
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	ldmia	r3, {r2-r3}
	adds	r1, r6, r2
	str	r1, [fp, #-444]
	adc	r3, r7, r3
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-368]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #136
	sub	r2, fp, #444
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-368]
	add	r3, r3, #1
	str	r3, [fp, #-368]
.L295:
	ldr	r3, [fp, #-368]
	cmp	r3, #15
	ble	.L296
.L294:
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L289:
	ldr	r3, [fp, #-372]
	cmp	r3, #79
	ble	.L297
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L298
.L299:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #328
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-452]
	adc	r3, r1, r3
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	sub	r2, fp, #452
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #328
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L298:
	ldr	r3, [fp, #-372]
	cmp	r3, #7
	ble	.L299
	ldr	r3, [fp, #-380]
	add	r3, r3, #128
	str	r3, [fp, #-380]
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	subs	r1, r2, #128
	str	r1, [fp, #-468]
	sbc	r3, r3, #0
	str	r3, [fp, #-464]
	sub	r4, fp, #468
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-388]
	str	r4, [fp, #-384]
.L286:
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #127
	bhi	.L300
	mov	r3, #0
	str	r3, [fp, #-372]
	b	.L301
.L302:
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-376]
	add	r1, r3, r2
	ldr	r3, [fp, #-372]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #328
	ldmia	r3, {r2-r3}
	mov	r0, r1
	bl	ts64
	ldr	r3, [fp, #-372]
	add	r3, r3, #1
	str	r3, [fp, #-372]
.L301:
	ldr	r3, [fp, #-372]
	cmp	r3, #7
	ble	.L302
	ldr	r3, [fp, #-388]
	ldr	r2, .L305
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L304
	bl	__stack_chk_fail
.L304:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L306:
	.align	2
.L305:
	.word	.LC17
	.word	K
	.size	crypto_hashblocks_sha512_tweet, .-crypto_hashblocks_sha512_tweet
	.global	iv
	.section	.rodata
	.align	2
	.type	iv, %object
	.size	iv, 64
iv:
	.ascii	"j\011\346g\363\274\311\010\273g\256\205\204\312\247"
	.ascii	";<n\363r\376\224\370+\245O\365:_\0356\361Q\016R\177"
	.ascii	"\255\346\202\321\233\005h\214+>l\037\037\203\331\253"
	.ascii	"\373A\275k[\340\315\031\023~!y"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_hash_sha512_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_hash_sha512_tweet, %function
crypto_hash_sha512_tweet:
	@ args = 0, pretend = 0, frame = 384
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #384
	str	r0, [fp, #-376]
	str	r1, [fp, #-380]
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	ldr	r3, .L320
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-364]
	str	r3, [fp, #-360]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	b	.L308
.L309:
	ldr	r2, .L320+4
	ldr	r3, [fp, #-372]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #352
	ldr	r3, [fp, #-372]
	add	r2, r2, r3
	mov	r3, r1
	strb	r3, [r2]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	str	r4, [fp, #-372]
	str	r5, [fp, #-368]
.L308:
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #63
	bls	.L309
	sub	r0, fp, #352
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-380]
	bl	crypto_hashblocks_sha512_tweet
	ldr	r3, [fp, #-388]
	ldr	r2, [fp, #-380]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	mov	r0, #127
	mov	r1, #0
	and	ip, r2, r0
	str	ip, [fp, #-396]
	and	r3, r3, r1
	str	r3, [fp, #-392]
	sub	r4, fp, #396
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-388]
	str	r4, [fp, #-384]
	ldr	r3, [fp, #-388]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-380]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	b	.L310
.L311:
	sub	r2, fp, #288
	ldr	r3, [fp, #-372]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-404]
	adc	r3, r3, #0
	str	r3, [fp, #-400]
	sub	r4, fp, #404
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-372]
	str	r4, [fp, #-368]
.L310:
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #255
	bls	.L311
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	b	.L312
.L313:
	ldr	r3, [fp, #-372]
	ldr	r2, [fp, #-380]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #288
	ldr	r3, [fp, #-372]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-412]
	adc	r3, r3, #0
	str	r3, [fp, #-408]
	sub	r4, fp, #412
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-372]
	str	r4, [fp, #-368]
.L312:
	sub	r1, fp, #372
	ldmia	r1, {r0-r1}
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	bcc	.L313
	sub	r2, fp, #288
	ldr	r3, [fp, #-388]
	add	r3, r2, r3
	mvn	r2, #127
	strb	r2, [r3]
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #111
	bhi	.L314
	mov	r2, #128
	mov	r3, #0
	b	.L315
.L314:
	mov	r2, #256
	mov	r3, #0
.L315:
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #29
	mov	r3, #0
	sub	r1, fp, #388
	ldmia	r1, {r0-r1}
	subs	r8, r0, #9
	sbc	r9, r1, #0
	and	r2, r2, #255
	sub	r3, fp, #288
	add	r3, r3, r8
	strb	r2, [r3]
	ldr	r3, [fp, #-388]
	sub	r3, r3, #8
	sub	r2, fp, #288
	add	ip, r2, r3
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, ip
	bl	ts64
	sub	r1, fp, #288
	sub	r0, fp, #352
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	bl	crypto_hashblocks_sha512_tweet
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	b	.L316
.L317:
	ldr	r3, [fp, #-372]
	ldr	r2, [fp, #-376]
	add	r3, r2, r3
	sub	r1, fp, #352
	ldr	r2, [fp, #-372]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	r6, r2, #1
	adc	r7, r3, #0
	str	r6, [fp, #-372]
	str	r7, [fp, #-368]
.L316:
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #63
	bls	.L317
	mov	r3, #0
	ldr	r2, .L320
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L319
	bl	__stack_chk_fail
.L319:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L321:
	.align	2
.L320:
	.word	.LC18
	.word	iv
	.size	crypto_hash_sha512_tweet, .-crypto_hash_sha512_tweet
	.section	.rodata
	.align	2
.LC19:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	add
	.syntax unified
	.arm
	.fpu softvfp
	.type	add, %function
add:
	@ args = 0, pretend = 0, frame = 1168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1168
	str	r0, [fp, #-1168]
	str	r1, [fp, #-1172]
	ldr	r3, .L324
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1168]
	add	r1, r3, #128
	sub	r3, fp, #1152
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r2, [fp, #-1168]
	mov	r0, r3
	bl	Z
	ldr	r3, [fp, #-1172]
	add	r1, r3, #128
	sub	r3, fp, #652
	ldr	r2, [fp, #-1172]
	mov	r0, r3
	bl	Z
	sub	r2, fp, #652
	sub	r1, fp, #1152
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1152
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-1168]
	add	r2, r3, #128
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r1, [fp, #-1168]
	mov	r0, r3
	bl	A
	ldr	r3, [fp, #-1172]
	add	r2, r3, #128
	sub	r3, fp, #652
	ldr	r1, [fp, #-1172]
	mov	r0, r3
	bl	A
	sub	r2, fp, #652
	sub	r1, fp, #1024
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-1168]
	add	r1, r3, #384
	ldr	r3, [fp, #-1172]
	add	r2, r3, #384
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r1, fp, #908
	sub	r3, fp, #908
	ldr	r2, .L324+4
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-1168]
	add	r1, r3, #256
	ldr	r3, [fp, #-1172]
	add	r2, r3, #256
	sub	r3, fp, #780
	mov	r0, r3
	bl	M
	sub	r2, fp, #780
	sub	r1, fp, #780
	sub	r3, fp, #780
	mov	r0, r3
	bl	A
	sub	r2, fp, #1152
	sub	r2, r2, #4
	sub	r2, r2, #8
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #8
	sub	r0, fp, #524
	mov	r1, r3
	bl	Z
	sub	r2, fp, #908
	sub	r1, fp, #780
	sub	r3, fp, #396
	mov	r0, r3
	bl	Z
	sub	r2, fp, #908
	sub	r1, fp, #780
	sub	r3, fp, #268
	mov	r0, r3
	bl	A
	sub	r2, fp, #1152
	sub	r2, r2, #4
	sub	r2, r2, #8
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #8
	sub	r0, fp, #140
	mov	r1, r3
	bl	A
	sub	r2, fp, #396
	sub	r3, fp, #524
	mov	r1, r3
	ldr	r0, [fp, #-1168]
	bl	M
	ldr	r3, [fp, #-1168]
	add	r3, r3, #128
	sub	r2, fp, #268
	sub	r1, fp, #140
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-1168]
	add	r3, r3, #256
	sub	r2, fp, #396
	sub	r1, fp, #268
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-1168]
	add	r3, r3, #384
	sub	r2, fp, #140
	sub	r1, fp, #524
	mov	r0, r3
	bl	M
	nop
	ldr	r3, .L324
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L323
	bl	__stack_chk_fail
.L323:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L325:
	.align	2
.L324:
	.word	.LC19
	.word	D2
	.size	add, .-add
	.align	2
	.global	cswap
	.syntax unified
	.arm
	.fpu softvfp
	.type	cswap, %function
cswap:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, r2
	strb	r3, [fp, #-21]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L327
.L328:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #7
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #7
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldrb	r2, [fp, #-21]	@ zero_extendqisi2
	mov	r1, r3
	bl	sel25519
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L327:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L328
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cswap, .-cswap
	.section	.rodata
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	pack
	.syntax unified
	.arm
	.fpu softvfp
	.type	pack, %function
pack:
	@ args = 0, pretend = 0, frame = 400
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #400
	str	r0, [fp, #-400]
	str	r1, [fp, #-404]
	ldr	r3, .L331
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-404]
	add	r2, r3, #256
	sub	r3, fp, #140
	mov	r1, r2
	mov	r0, r3
	bl	inv25519
	sub	r2, fp, #140
	sub	r3, fp, #396
	ldr	r1, [fp, #-404]
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-404]
	add	r1, r3, #128
	sub	r2, fp, #140
	sub	r3, fp, #268
	mov	r0, r3
	bl	M
	sub	r3, fp, #268
	mov	r1, r3
	ldr	r0, [fp, #-400]
	bl	pack25519
	sub	r3, fp, #396
	mov	r0, r3
	bl	par25519
	mov	r3, r0
	lsl	r3, r3, #7
	ldr	r2, [fp, #-400]
	add	r2, r2, #31
	ldrb	r2, [r2]	@ zero_extendqisi2
	lsl	r2, r2, #24
	asr	r2, r2, #24
	lsl	r3, r3, #24
	asr	r3, r3, #24
	eor	r3, r3, r2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-400]
	add	r3, r3, #31
	and	r2, r2, #255
	strb	r2, [r3]
	nop
	ldr	r3, .L331
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L330
	bl	__stack_chk_fail
.L330:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L332:
	.align	2
.L331:
	.word	.LC20
	.size	pack, .-pack
	.align	2
	.global	scalarmult
	.syntax unified
	.arm
	.fpu softvfp
	.type	scalarmult, %function
scalarmult:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r1, .L336
	ldr	r0, [fp, #-16]
	bl	set25519
	ldr	r3, [fp, #-16]
	add	r3, r3, #128
	ldr	r1, .L336+4
	mov	r0, r3
	bl	set25519
	ldr	r3, [fp, #-16]
	add	r3, r3, #256
	ldr	r1, .L336+4
	mov	r0, r3
	bl	set25519
	ldr	r3, [fp, #-16]
	add	r3, r3, #384
	ldr	r1, .L336
	mov	r0, r3
	bl	set25519
	mov	r3, #255
	str	r3, [fp, #-8]
	b	.L334
.L335:
	ldr	r3, [fp, #-8]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	and	r3, r3, #7
	asr	r3, r2, r3
	and	r3, r3, #255
	and	r3, r3, #1
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	cswap
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	add
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	add
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	cswap
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L334:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L335
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L337:
	.align	2
.L336:
	.word	gf0
	.word	gf1
	.size	scalarmult, .-scalarmult
	.section	.rodata
	.align	2
.LC21:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	scalarbase
	.syntax unified
	.arm
	.fpu softvfp
	.type	scalarbase, %function
scalarbase:
	@ args = 0, pretend = 0, frame = 528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #528
	str	r0, [fp, #-528]
	str	r1, [fp, #-532]
	ldr	r3, .L340
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #524
	ldr	r1, .L340+4
	mov	r0, r3
	bl	set25519
	sub	r3, fp, #524
	add	r3, r3, #128
	ldr	r1, .L340+8
	mov	r0, r3
	bl	set25519
	sub	r3, fp, #524
	add	r3, r3, #256
	ldr	r1, .L340+12
	mov	r0, r3
	bl	set25519
	sub	r3, fp, #524
	add	r3, r3, #384
	ldr	r2, .L340+8
	ldr	r1, .L340+4
	mov	r0, r3
	bl	M
	sub	r3, fp, #524
	ldr	r2, [fp, #-532]
	mov	r1, r3
	ldr	r0, [fp, #-528]
	bl	scalarmult
	nop
	ldr	r3, .L340
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L339
	bl	__stack_chk_fail
.L339:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L341:
	.align	2
.L340:
	.word	.LC21
	.word	X
	.word	Y
	.word	gf1
	.size	scalarbase, .-scalarbase
	.section	.rodata
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_sign_ed25519_tweet_keypair
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_sign_ed25519_tweet_keypair, %function
crypto_sign_ed25519_tweet_keypair:
	@ args = 0, pretend = 0, frame = 600
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #600
	str	r0, [fp, #-600]
	str	r1, [fp, #-604]
	ldr	r3, .L347
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #32
	mov	r3, #0
	ldr	r0, [fp, #-604]
	bl	randombytes
	sub	r0, fp, #72
	mov	r2, #32
	mov	r3, #0
	ldr	r1, [fp, #-604]
	bl	crypto_hash_sha512_tweet
	ldrb	r3, [fp, #-72]	@ zero_extendqisi2
	bic	r3, r3, #7
	and	r3, r3, #255
	strb	r3, [fp, #-72]
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	and	r3, r3, #127
	and	r3, r3, #255
	strb	r3, [fp, #-41]
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	orr	r3, r3, #64
	and	r3, r3, #255
	strb	r3, [fp, #-41]
	sub	r2, fp, #72
	sub	r3, fp, #588
	mov	r1, r2
	mov	r0, r3
	bl	scalarbase
	sub	r3, fp, #588
	mov	r1, r3
	ldr	r0, [fp, #-600]
	bl	pack
	mov	r3, #0
	str	r3, [fp, #-592]
	b	.L343
.L344:
	ldr	r3, [fp, #-592]
	ldr	r2, [fp, #-600]
	add	r2, r2, r3
	ldr	r3, [fp, #-592]
	add	r3, r3, #32
	mov	r1, r3
	ldr	r3, [fp, #-604]
	add	r3, r3, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-592]
	add	r3, r3, #1
	str	r3, [fp, #-592]
.L343:
	ldr	r3, [fp, #-592]
	cmp	r3, #31
	ble	.L344
	mov	r3, #0
	ldr	r2, .L347
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L346
	bl	__stack_chk_fail
.L346:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L348:
	.align	2
.L347:
	.word	.LC22
	.size	crypto_sign_ed25519_tweet_keypair, .-crypto_sign_ed25519_tweet_keypair
	.global	L
	.section	.rodata
	.align	3
	.type	L, %object
	.size	L, 256
L:
	.word	237
	.word	0
	.word	211
	.word	0
	.word	245
	.word	0
	.word	92
	.word	0
	.word	26
	.word	0
	.word	99
	.word	0
	.word	18
	.word	0
	.word	88
	.word	0
	.word	214
	.word	0
	.word	156
	.word	0
	.word	247
	.word	0
	.word	162
	.word	0
	.word	222
	.word	0
	.word	249
	.word	0
	.word	222
	.word	0
	.word	20
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	16
	.word	0
	.text
	.align	2
	.global	modL
	.syntax unified
	.arm
	.fpu softvfp
	.type	modL, %function
modL:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #192
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	mov	r2, #63
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	b	.L350
.L353:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	subs	r1, r2, #32
	str	r1, [fp, #-172]
	sbc	r3, r3, #0
	str	r3, [fp, #-168]
	sub	r4, fp, #172
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	b	.L351
.L352:
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	sub	r9, fp, #52
	ldmia	r9, {r8-r9}
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	subs	r0, r2, #32
	str	r0, [fp, #-68]
	sbc	r3, r3, #0
	str	r3, [fp, #-64]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	ip, r0
	subs	ip, r2, ip
	str	ip, [fp, #-76]
	mov	r0, r1
	sbc	r3, r3, r0
	str	r3, [fp, #-72]
	ldr	r2, .L360
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r7, #4
	orr	r3, r3, r6, lsr #28
	lsl	r2, r6, #4
	subs	r0, r8, r2
	str	r0, [fp, #-84]
	sbc	r3, r9, r3
	str	r3, [fp, #-80]
	sub	r2, fp, #220
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #84
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-92]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r1, r3, r2
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	adds	r1, r2, #128
	str	r1, [fp, #-100]
	adc	r3, r3, #0
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	mov	ip, r0
	lsr	r2, ip, #8
	mov	ip, r1
	orr	r2, r2, ip, lsl #24
	asr	r3, r1, #8
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r4-r5}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	subs	r2, r4, r0
	str	r2, [fp, #-108]
	sbc	r2, r5, r1
	str	r2, [fp, #-104]
	sub	r2, fp, #108
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-180]
	adc	r3, r3, #0
	str	r3, [fp, #-176]
	sub	r4, fp, #180
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
.L351:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	subs	r1, r2, #12
	str	r1, [fp, #-116]
	sbc	r3, r3, #0
	str	r3, [fp, #-112]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	cmp	r2, r0
	sbcs	r3, r3, r1
	blt	.L352
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	ip, r3, r2
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	adds	lr, r0, r2
	str	lr, [fp, #-124]
	adc	r3, r1, r3
	str	r3, [fp, #-120]
	sub	r4, fp, #124
	ldmia	r4, {r3-r4}
	stm	ip, {r3-r4}
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r1, r3, r2
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	subs	r1, r2, #1
	str	r1, [fp, #-188]
	sbc	r3, r3, #0
	str	r3, [fp, #-184]
	sub	r4, fp, #188
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
.L350:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r2, #32
	sbcs	r3, r3, #0
	bge	.L353
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	b	.L354
.L355:
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r9, fp, #52
	ldmia	r9, {r8-r9}
	ldr	r3, [fp, #-60]
	add	r3, r3, #248
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #4
	orr	r0, r0, r3, lsl #28
	asr	r1, r3, #4
	mov	r4, r0
	mov	r5, r1
	ldr	r2, .L360
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r3, r2, r3
	umull	r6, r7, r4, r0
	add	r3, r3, r7
	mov	r7, r3
	subs	r3, r8, r6
	str	r3, [fp, #-132]
	sbc	r3, r9, r7
	str	r3, [fp, #-128]
	sub	r2, fp, #68
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #132
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-140]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r1, r3, r2
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #8
	orr	r0, r0, r3, lsl #24
	asr	r1, r3, #8
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-60]
	add	ip, r3, r2
	mov	r2, #255
	mov	r3, #0
	and	lr, r0, r2
	str	lr, [fp, #-148]
	and	r3, r1, r3
	str	r3, [fp, #-144]
	sub	r4, fp, #148
	ldmia	r4, {r3-r4}
	stm	ip, {r3-r4}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-196]
	adc	r3, r3, #0
	str	r3, [fp, #-192]
	sub	r4, fp, #196
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
.L354:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L355
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	b	.L356
.L357:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r6, r2
	mov	r7, r3
	ldr	r2, .L360
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r5, fp, #52
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	ip, r2, r3
	umull	r2, r3, r0, r4
	add	r1, ip, r3
	mov	r3, r1
	subs	r1, r6, r2
	str	r1, [fp, #-156]
	sbc	r3, r7, r3
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r1, r2, r3
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-204]
	adc	r3, r3, #0
	str	r3, [fp, #-200]
	sub	r4, fp, #204
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
.L356:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L357
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	b	.L358
.L359:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	asr	r3, r1, #8
	ldr	r1, [fp, #-44]
	add	r1, r1, #1
	lsl	r1, r1, #3
	ldr	r0, [fp, #-60]
	add	r1, r0, r1
	adds	r0, r4, r2
	str	r0, [fp, #-164]
	adc	r3, r5, r3
	str	r3, [fp, #-160]
	sub	r4, fp, #164
	ldmia	r4, {r3-r4}
	stm	r1, {r3-r4}
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-56]
	add	r1, r0, r1
	and	r3, r2, #255
	strb	r3, [r1]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-212]
	adc	r3, r3, #0
	str	r3, [fp, #-208]
	sub	r4, fp, #212
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-44]
	str	r4, [fp, #-40]
.L358:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L359
	nop
	nop
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L361:
	.align	2
.L360:
	.word	L
	.size	modL, .-modL
	.section	.rodata
	.align	2
.LC23:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	reduce
	.syntax unified
	.arm
	.fpu softvfp
	.type	reduce, %function
reduce:
	@ args = 0, pretend = 0, frame = 536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #536
	str	r0, [fp, #-552]
	ldr	r3, .L368
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-548]
	str	r3, [fp, #-544]
	b	.L363
.L364:
	ldr	r3, [fp, #-548]
	ldr	r2, [fp, #-552]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	ldr	r1, [fp, #-548]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #520
	stm	r1, {r2-r3}
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	adds	r6, r2, #1
	adc	r7, r3, #0
	str	r6, [fp, #-548]
	str	r7, [fp, #-544]
.L363:
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	cmp	r2, #64
	sbcs	r3, r3, #0
	blt	.L364
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-548]
	str	r3, [fp, #-544]
	b	.L365
.L366:
	ldr	r3, [fp, #-548]
	ldr	r2, [fp, #-552]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	str	r4, [fp, #-548]
	str	r5, [fp, #-544]
.L365:
	sub	r3, fp, #548
	ldmia	r3, {r2-r3}
	cmp	r2, #64
	sbcs	r3, r3, #0
	blt	.L366
	sub	r3, fp, #540
	mov	r1, r3
	ldr	r0, [fp, #-552]
	bl	modL
	nop
	ldr	r3, .L368
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L367
	bl	__stack_chk_fail
.L367:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L369:
	.align	2
.L368:
	.word	.LC23
	.size	reduce, .-reduce
	.section	.rodata
	.align	2
.LC24:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_sign_ed25519_tweet
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_sign_ed25519_tweet, %function
crypto_sign_ed25519_tweet:
	@ args = 12, pretend = 0, frame = 1344
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1344
	str	r0, [fp, #-1272]
	str	r1, [fp, #-1276]
	str	r2, [fp, #-1280]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-1284]
	ldr	r3, .L387
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	sub	r0, fp, #224
	mov	r2, #32
	mov	r3, #0
	ldr	r1, [fp, #-1284]
	bl	crypto_hash_sha512_tweet
	ldrb	r3, [fp, #-224]	@ zero_extendqisi2
	bic	r3, r3, #7
	and	r3, r3, #255
	strb	r3, [fp, #-224]
	ldrb	r3, [fp, #-193]	@ zero_extendqisi2
	and	r3, r3, #127
	and	r3, r3, #255
	strb	r3, [fp, #-193]
	ldrb	r3, [fp, #-193]	@ zero_extendqisi2
	orr	r3, r3, #64
	and	r3, r3, #255
	strb	r3, [fp, #-193]
	ldmib	fp, {r2-r3}
	adds	r4, r2, #64
	adc	r5, r3, #0
	ldr	r3, [fp, #-1276]
	stm	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L371
.L372:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1280]
	add	r1, r3, r2
	ldr	r3, [fp, #-1268]
	add	r2, r3, #64
	ldr	r3, [fp, #-1272]
	add	r2, r3, r2
	ldrb	r3, [r1]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r6, r2, #1
	adc	r7, r3, #0
	str	r6, [fp, #-1268]
	str	r7, [fp, #-1264]
.L371:
	ldr	r0, [fp, #-1268]
	ldr	r1, [fp, #-1264]
	ldmib	fp, {r2-r3}
	cmp	r3, r1
	cmpeq	r2, r0
	bhi	.L372
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L373
.L374:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r1, r2, #32
	str	r1, [fp, #-1292]
	adc	r3, r3, #0
	str	r3, [fp, #-1288]
	ldr	r3, [fp, #-1268]
	add	r2, r3, #32
	ldr	r3, [fp, #-1272]
	add	r2, r3, r2
	sub	r3, fp, #224
	ldr	r1, [fp, #-1292]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r8, r2, #1
	adc	r9, r3, #0
	str	r8, [fp, #-1268]
	str	r9, [fp, #-1264]
.L373:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L374
	ldr	r3, [fp, #-1272]
	add	r1, r3, #32
	ldmib	fp, {r2-r3}
	adds	r0, r2, #32
	str	r0, [fp, #-1300]
	adc	r3, r3, #0
	str	r3, [fp, #-1296]
	sub	r0, fp, #96
	ldr	r2, [fp, #-1300]
	ldr	r3, [fp, #-1296]
	bl	crypto_hash_sha512_tweet
	sub	r3, fp, #96
	mov	r0, r3
	bl	reduce
	sub	r2, fp, #96
	sub	r3, fp, #740
	mov	r1, r2
	mov	r0, r3
	bl	scalarbase
	sub	r3, fp, #740
	mov	r1, r3
	ldr	r0, [fp, #-1272]
	bl	pack
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L375
.L376:
	ldr	r3, [fp, #-1268]
	add	r2, r3, #32
	ldr	r3, [fp, #-1284]
	add	r1, r3, r2
	ldr	r3, [fp, #-1268]
	add	r2, r3, #32
	ldr	r3, [fp, #-1272]
	add	r2, r3, r2
	ldrb	r3, [r1]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r1, r2, #1
	str	r1, [fp, #-1340]
	adc	r3, r3, #0
	str	r3, [fp, #-1336]
	ldr	r3, [fp, #-1340]
	ldr	r4, [fp, #-1336]
	str	r3, [fp, #-1268]
	str	r4, [fp, #-1264]
.L375:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L376
	ldmib	fp, {r2-r3}
	adds	r1, r2, #64
	str	r1, [fp, #-1308]
	adc	r3, r3, #0
	str	r3, [fp, #-1304]
	sub	r0, fp, #160
	ldr	r2, [fp, #-1308]
	ldr	r3, [fp, #-1304]
	ldr	r1, [fp, #-1272]
	bl	crypto_hash_sha512_tweet
	sub	r3, fp, #160
	mov	r0, r3
	bl	reduce
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L377
.L378:
	ldr	r3, [fp, #-1268]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r1, r3, #1216
	sub	r1, r1, #8
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r1, r2, #1
	str	r1, [fp, #-1348]
	adc	r3, r3, #0
	str	r3, [fp, #-1344]
	ldr	r3, [fp, #-1348]
	ldr	r4, [fp, #-1344]
	str	r3, [fp, #-1268]
	str	r4, [fp, #-1264]
.L377:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	cmp	r2, #64
	sbcs	r3, r3, #0
	blt	.L378
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L379
.L380:
	sub	r2, fp, #96
	ldr	r3, [fp, #-1268]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	ldr	r3, [fp, #-1268]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1216
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r1, r2, #1
	str	r1, [fp, #-1356]
	adc	r3, r3, #0
	str	r3, [fp, #-1352]
	ldr	r3, [fp, #-1356]
	ldr	r4, [fp, #-1352]
	str	r3, [fp, #-1268]
	str	r4, [fp, #-1264]
.L379:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L380
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1268]
	str	r3, [fp, #-1264]
	b	.L381
.L384:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1260]
	str	r3, [fp, #-1256]
	b	.L382
.L383:
	ldr	r0, [fp, #-1268]
	ldr	r1, [fp, #-1264]
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1256]
	adds	ip, r0, r2
	str	ip, [fp, #-1316]
	adc	r3, r1, r3
	str	r3, [fp, #-1312]
	ldr	r3, [fp, #-1316]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1216
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	r6, r2
	mov	r7, r3
	sub	r2, fp, #160
	ldr	r3, [fp, #-1268]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r4, r3, #255
	mov	r5, #0
	sub	r2, fp, #224
	ldr	r3, [fp, #-1260]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r0, r3, #255
	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, r6, r2
	str	r1, [fp, #-1324]
	adc	r3, r7, r3
	str	r3, [fp, #-1320]
	ldr	r0, [fp, #-1268]
	ldr	r1, [fp, #-1264]
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1256]
	adds	ip, r0, r2
	str	ip, [fp, #-1332]
	adc	r3, r1, r3
	str	r3, [fp, #-1328]
	ldr	r0, [fp, #-1324]
	ldr	r1, [fp, #-1320]
	ldr	r3, [fp, #-1332]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #1216
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1256]
	adds	r1, r2, #1
	str	r1, [fp, #-1364]
	adc	r3, r3, #0
	str	r3, [fp, #-1360]
	ldr	r3, [fp, #-1364]
	ldr	r4, [fp, #-1360]
	str	r3, [fp, #-1260]
	str	r4, [fp, #-1256]
.L382:
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1256]
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L383
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	adds	r1, r2, #1
	str	r1, [fp, #-1372]
	adc	r3, r3, #0
	str	r3, [fp, #-1368]
	ldr	r3, [fp, #-1372]
	ldr	r4, [fp, #-1368]
	str	r3, [fp, #-1268]
	str	r4, [fp, #-1264]
.L381:
	ldr	r2, [fp, #-1268]
	ldr	r3, [fp, #-1264]
	cmp	r2, #32
	sbcs	r3, r3, #0
	blt	.L384
	ldr	r3, [fp, #-1272]
	add	r2, r3, #32
	sub	r3, fp, #1232
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r3
	mov	r0, r2
	bl	modL
	mov	r3, #0
	ldr	r2, .L387
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L386
	bl	__stack_chk_fail
.L386:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L388:
	.align	2
.L387:
	.word	.LC24
	.size	crypto_sign_ed25519_tweet, .-crypto_sign_ed25519_tweet
	.section	.rodata
	.align	2
.LC25:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	unpackneg
	.syntax unified
	.arm
	.fpu softvfp
	.type	unpackneg, %function
unpackneg:
	@ args = 0, pretend = 0, frame = 912
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #912
	str	r0, [fp, #-912]
	str	r1, [fp, #-916]
	ldr	r3, .L396
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-912]
	add	r3, r3, #256
	ldr	r1, .L396+4
	mov	r0, r3
	bl	set25519
	ldr	r3, [fp, #-912]
	add	r3, r3, #128
	ldr	r1, [fp, #-916]
	mov	r0, r3
	bl	unpack25519
	ldr	r3, [fp, #-912]
	add	r2, r3, #128
	sub	r3, fp, #652
	mov	r1, r2
	mov	r0, r3
	bl	S
	sub	r1, fp, #652
	sub	r3, fp, #524
	ldr	r2, .L396+8
	mov	r0, r3
	bl	M
	ldr	r3, [fp, #-912]
	add	r2, r3, #256
	sub	r1, fp, #652
	sub	r3, fp, #652
	mov	r0, r3
	bl	Z
	ldr	r3, [fp, #-912]
	add	r1, r3, #256
	sub	r2, fp, #524
	sub	r3, fp, #524
	mov	r0, r3
	bl	A
	sub	r2, fp, #524
	sub	r3, fp, #396
	mov	r1, r2
	mov	r0, r3
	bl	S
	sub	r2, fp, #396
	sub	r3, fp, #268
	mov	r1, r2
	mov	r0, r3
	bl	S
	sub	r2, fp, #396
	sub	r1, fp, #268
	sub	r3, fp, #140
	mov	r0, r3
	bl	M
	sub	r2, fp, #652
	sub	r1, fp, #140
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r2, fp, #524
	sub	r1, fp, #908
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r2, fp, #908
	sub	r3, fp, #908
	mov	r1, r2
	mov	r0, r3
	bl	pow2523
	sub	r2, fp, #652
	sub	r1, fp, #908
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r2, fp, #524
	sub	r1, fp, #908
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r2, fp, #524
	sub	r1, fp, #908
	sub	r3, fp, #908
	mov	r0, r3
	bl	M
	sub	r2, fp, #524
	sub	r3, fp, #908
	mov	r1, r3
	ldr	r0, [fp, #-912]
	bl	M
	sub	r3, fp, #780
	ldr	r1, [fp, #-912]
	mov	r0, r3
	bl	S
	sub	r2, fp, #524
	sub	r1, fp, #780
	sub	r3, fp, #780
	mov	r0, r3
	bl	M
	sub	r2, fp, #652
	sub	r3, fp, #780
	mov	r1, r2
	mov	r0, r3
	bl	neq25519
	mov	r3, r0
	cmp	r3, #0
	beq	.L390
	ldr	r2, .L396+12
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-912]
	bl	M
.L390:
	sub	r3, fp, #780
	ldr	r1, [fp, #-912]
	mov	r0, r3
	bl	S
	sub	r2, fp, #524
	sub	r1, fp, #780
	sub	r3, fp, #780
	mov	r0, r3
	bl	M
	sub	r2, fp, #652
	sub	r3, fp, #780
	mov	r1, r2
	mov	r0, r3
	bl	neq25519
	mov	r3, r0
	cmp	r3, #0
	beq	.L391
	mvn	r3, #0
	b	.L394
.L391:
	ldr	r0, [fp, #-912]
	bl	par25519
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-916]
	add	r3, r3, #31
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #7
	and	r3, r3, #255
	cmp	r2, r3
	bne	.L393
	ldr	r2, [fp, #-912]
	ldr	r1, .L396+16
	ldr	r0, [fp, #-912]
	bl	Z
.L393:
	ldr	r3, [fp, #-912]
	add	r0, r3, #384
	ldr	r3, [fp, #-912]
	add	r3, r3, #128
	mov	r2, r3
	ldr	r1, [fp, #-912]
	bl	M
	mov	r3, #0
.L394:
	ldr	r2, .L396
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L395
	bl	__stack_chk_fail
.L395:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L397:
	.align	2
.L396:
	.word	.LC25
	.word	gf1
	.word	D
	.word	I
	.word	gf0
	.size	unpackneg, .-unpackneg
	.section	.rodata
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	crypto_sign_ed25519_tweet_open
	.syntax unified
	.arm
	.fpu softvfp
	.type	crypto_sign_ed25519_tweet_open, %function
crypto_sign_ed25519_tweet_open:
	@ args = 12, pretend = 0, frame = 1152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #1152
	str	r0, [fp, #-1152]
	str	r1, [fp, #-1156]
	str	r2, [fp, #-1160]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-1164]
	ldr	r3, .L413
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r1, [fp, #-1156]
	mvn	r2, #0
	mvn	r3, #0
	stm	r1, {r2-r3}
	ldmib	fp, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #63
	bhi	.L399
	mvn	r3, #0
	b	.L411
.L399:
	sub	r3, fp, #628
	ldr	r1, [fp, #-1164]
	mov	r0, r3
	bl	unpackneg
	mov	r3, r0
	cmp	r3, #0
	beq	.L401
	mvn	r3, #0
	b	.L411
.L401:
	mov	r3, #0
	str	r3, [fp, #-1144]
	b	.L402
.L403:
	ldr	r3, [fp, #-1144]
	ldr	r2, [fp, #-1160]
	add	r2, r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r1, [fp, #-1152]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #1
	str	r3, [fp, #-1144]
.L402:
	ldr	r3, [fp, #-1144]
	mov	r2, r3
	asr	r3, r2, #31
	ldmib	fp, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L403
	mov	r3, #0
	str	r3, [fp, #-1144]
	b	.L404
.L405:
	ldr	r3, [fp, #-1144]
	ldr	r2, [fp, #-1164]
	add	r2, r2, r3
	ldr	r3, [fp, #-1144]
	add	r3, r3, #32
	ldr	r1, [fp, #-1152]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #1
	str	r3, [fp, #-1144]
.L404:
	ldr	r3, [fp, #-1144]
	cmp	r3, #31
	ble	.L405
	sub	r0, fp, #80
	ldmib	fp, {r2-r3}
	ldr	r1, [fp, #-1152]
	bl	crypto_hash_sha512_tweet
	sub	r3, fp, #80
	mov	r0, r3
	bl	reduce
	sub	r2, fp, #80
	sub	r1, fp, #628
	sub	r3, fp, #1120
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r0, r3
	bl	scalarmult
	ldr	r3, [fp, #-1160]
	add	r2, r3, #32
	sub	r3, fp, #628
	mov	r1, r2
	mov	r0, r3
	bl	scalarbase
	sub	r2, fp, #628
	sub	r3, fp, #1120
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r2
	mov	r0, r3
	bl	add
	sub	r3, fp, #1120
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	r2, fp, #112
	mov	r1, r3
	mov	r0, r2
	bl	pack
	ldmib	fp, {r2-r3}
	subs	r4, r2, #64
	sbc	r5, r3, #0
	stmib	fp, {r4-r5}
	sub	r3, fp, #112
	mov	r1, r3
	ldr	r0, [fp, #-1160]
	bl	crypto_verify_32_tweet
	mov	r3, r0
	cmp	r3, #0
	beq	.L406
	mov	r3, #0
	str	r3, [fp, #-1144]
	b	.L407
.L408:
	ldr	r3, [fp, #-1144]
	ldr	r2, [fp, #-1152]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #1
	str	r3, [fp, #-1144]
.L407:
	ldr	r3, [fp, #-1144]
	mov	r2, r3
	asr	r3, r2, #31
	ldmib	fp, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L408
	mvn	r3, #0
	b	.L411
.L406:
	mov	r3, #0
	str	r3, [fp, #-1144]
	b	.L409
.L410:
	ldr	r3, [fp, #-1144]
	add	r3, r3, #64
	ldr	r2, [fp, #-1160]
	add	r2, r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r1, [fp, #-1152]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #1
	str	r3, [fp, #-1144]
.L409:
	ldr	r3, [fp, #-1144]
	mov	r2, r3
	asr	r3, r2, #31
	ldmib	fp, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L410
	ldr	r1, [fp, #-1156]
	ldmib	fp, {r2-r3}
	stm	r1, {r2-r3}
	mov	r3, #0
.L411:
	ldr	r2, .L413
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L412
	bl	__stack_chk_fail
.L412:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L414:
	.align	2
.L413:
	.word	.LC26
	.size	crypto_sign_ed25519_tweet_open, .-crypto_sign_ed25519_tweet_open
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
