	.file	"679091.c"
	.intel_syntax noprefix
	.text
	.type	mask_8bit, @function
mask_8bit:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	mask_8bit, .-mask_8bit
	.type	mask_32bit, @function
mask_32bit:
.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	rax, QWORD PTR -8[rbp]
	mov	eax, eax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	mask_32bit, .-mask_32bit
	.section	.rodata
	.align 32
	.type	add_constant, @object
	.size	add_constant, 512
add_constant:
	.quad	1116352408
	.quad	1899447441
	.quad	3049323471
	.quad	3921009573
	.quad	961987163
	.quad	1508970993
	.quad	2453635748
	.quad	2870763221
	.quad	3624381080
	.quad	310598401
	.quad	607225278
	.quad	1426881987
	.quad	1925078388
	.quad	2162078206
	.quad	2614888103
	.quad	3248222580
	.quad	3835390401
	.quad	4022224774
	.quad	264347078
	.quad	604807628
	.quad	770255983
	.quad	1249150122
	.quad	1555081692
	.quad	1996064986
	.quad	2554220882
	.quad	2821834349
	.quad	2952996808
	.quad	3210313671
	.quad	3336571891
	.quad	3584528711
	.quad	113926993
	.quad	338241895
	.quad	666307205
	.quad	773529912
	.quad	1294757372
	.quad	1396182291
	.quad	1695183700
	.quad	1986661051
	.quad	2177026350
	.quad	2456956037
	.quad	2730485921
	.quad	2820302411
	.quad	3259730800
	.quad	3345764771
	.quad	3516065817
	.quad	3600352804
	.quad	4094571909
	.quad	275423344
	.quad	430227734
	.quad	506948616
	.quad	659060556
	.quad	883997877
	.quad	958139571
	.quad	1322822218
	.quad	1537002063
	.quad	1747873779
	.quad	1955562222
	.quad	2024104815
	.quad	2227730452
	.quad	2361852424
	.quad	2428436474
	.quad	2756734187
	.quad	3204031479
	.quad	3329325298
	.text
	.type	ch, @function
ch:
.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 -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
.LFE2:
	.size	ch, .-ch
	.type	maj, @function
maj:
.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 -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
.LFE3:
	.size	maj, .-maj
	.type	rotr, @function
rotr:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	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	rsi, rdx
	mov	ecx, eax
	shr	rsi, cl
	mov	eax, 32
	sub	eax, DWORD PTR -12[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	rax, rsi
	mov	rdi, rax
	call	mask_32bit
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	rotr, .-rotr
	.type	bsig0, @function
bsig0:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	rotr
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 13
	mov	rdi, rax
	call	rotr
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 22
	mov	rdi, rax
	call	rotr
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	bsig0, .-bsig0
	.type	bsig1, @function
bsig1:
.LFB6:
	.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, 6
	mov	rdi, rax
	call	rotr
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 11
	mov	rdi, rax
	call	rotr
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 25
	mov	rdi, rax
	call	rotr
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	bsig1, .-bsig1
	.type	shr, @function
shr:
.LFB7:
	.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
	shr	rdx, cl
	mov	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	shr, .-shr
	.type	ssig0, @function
ssig0:
.LFB8:
	.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, 7
	mov	rdi, rax
	call	rotr
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 18
	mov	rdi, rax
	call	rotr
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	shr
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	ssig0, .-ssig0
	.type	ssig1, @function
ssig1:
.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, 8
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 17
	mov	rdi, rax
	call	rotr
	mov	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 19
	mov	rdi, rax
	call	rotr
	xor	rbx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	shr
	xor	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	ssig1, .-ssig1
	.type	hash256_block, @function
hash256_block:
.LFB10:
	.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, 648
	.cfi_offset 3, -24
	mov	QWORD PTR -648[rbp], rdi
	mov	QWORD PTR -656[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -628[rbp], 0
	jmp	.L22
.L23:
	mov	eax, DWORD PTR -628[rbp]
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -656[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	mask_8bit
	movzx	eax, al
	sal	rax, 24
	mov	rbx, rax
	mov	eax, DWORD PTR -628[rbp]
	sal	eax, 2
	mov	eax, eax
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -656[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	mask_8bit
	movzx	eax, al
	sal	rax, 16
	or	rbx, rax
	mov	eax, DWORD PTR -628[rbp]
	sal	eax, 2
	mov	eax, eax
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -656[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	mask_8bit
	movzx	eax, al
	sal	rax, 8
	or	rbx, rax
	mov	eax, DWORD PTR -628[rbp]
	sal	eax, 2
	mov	eax, eax
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -656[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	mask_8bit
	movzx	eax, al
	or	rbx, rax
	mov	rdx, rbx
	mov	eax, DWORD PTR -628[rbp]
	mov	QWORD PTR -544[rbp+rax*8], rdx
	add	DWORD PTR -628[rbp], 1
.L22:
	cmp	DWORD PTR -628[rbp], 15
	jbe	.L23
	mov	DWORD PTR -628[rbp], 16
	jmp	.L24
.L25:
	mov	eax, DWORD PTR -628[rbp]
	sub	eax, 2
	mov	eax, eax
	mov	rax, QWORD PTR -544[rbp+rax*8]
	mov	rdi, rax
	call	ssig1
	mov	rdx, rax
	mov	eax, DWORD PTR -628[rbp]
	sub	eax, 7
	mov	eax, eax
	mov	rax, QWORD PTR -544[rbp+rax*8]
	lea	rbx, [rdx+rax]
	mov	eax, DWORD PTR -628[rbp]
	sub	eax, 15
	mov	eax, eax
	mov	rax, QWORD PTR -544[rbp+rax*8]
	mov	rdi, rax
	call	ssig0
	lea	rdx, [rbx+rax]
	mov	eax, DWORD PTR -628[rbp]
	sub	eax, 16
	mov	eax, eax
	mov	rax, QWORD PTR -544[rbp+rax*8]
	add	rax, rdx
	mov	rdi, rax
	call	mask_32bit
	mov	edx, DWORD PTR -628[rbp]
	mov	QWORD PTR -544[rbp+rdx*8], rax
	add	DWORD PTR -628[rbp], 1
.L24:
	cmp	DWORD PTR -628[rbp], 63
	jbe	.L25
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	QWORD PTR -568[rbp], rax
	mov	DWORD PTR -628[rbp], 0
	jmp	.L26
.L27:
	mov	rax, QWORD PTR -592[rbp]
	mov	rdi, rax
	call	bsig1
	mov	rdx, QWORD PTR -568[rbp]
	lea	rbx, [rax+rdx]
	mov	rdx, QWORD PTR -576[rbp]
	mov	rcx, QWORD PTR -584[rbp]
	mov	rax, QWORD PTR -592[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	ch
	lea	rcx, [rbx+rax]
	mov	eax, DWORD PTR -628[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, add_constant[rip]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, [rcx+rax]
	mov	eax, DWORD PTR -628[rbp]
	mov	rax, QWORD PTR -544[rbp+rax*8]
	add	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	mov	rdi, rax
	call	bsig0
	mov	rbx, rax
	mov	rdx, QWORD PTR -608[rbp]
	mov	rcx, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR -624[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	maj
	add	rax, rbx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rdx, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR -560[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	mask_32bit
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -608[rbp]
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	mov	QWORD PTR -616[rbp], rax
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	mask_32bit
	mov	QWORD PTR -624[rbp], rax
	add	DWORD PTR -628[rbp], 1
.L26:
	cmp	DWORD PTR -628[rbp], 63
	jbe	.L27
	mov	rax, QWORD PTR -648[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -624[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -648[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR -616[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 16
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR -608[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 24
	mov	rdx, QWORD PTR -600[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 32
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 32
	mov	rdx, QWORD PTR -592[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 40
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 40
	mov	rdx, QWORD PTR -584[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 48
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 48
	mov	rdx, QWORD PTR -576[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 56
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 56
	mov	rdx, QWORD PTR -568[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR -628[rbp], 0
	jmp	.L28
.L29:
	mov	eax, DWORD PTR -628[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -628[rbp]
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -648[rbp]
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	mask_32bit
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -628[rbp], 1
.L28:
	cmp	DWORD PTR -628[rbp], 7
	jbe	.L29
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L30
	call	__stack_chk_fail@PLT
.L30:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	hash256_block, .-hash256_block
	.globl	librock_sha256Init
	.type	librock_sha256Init, @function
librock_sha256Init:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	jne	.L32
	mov	eax, 168
	jmp	.L33
.L32:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], 1779033703
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 3144134277
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], 1013904242
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, 2773480762
	mov	QWORD PTR 56[rax], rcx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], 1359893119
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 2600822924
	mov	QWORD PTR 72[rax], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 80[rax], 528734635
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 88[rax], 1541459225
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 160[rax], 0
	mov	eax, 1
.L33:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	librock_sha256Init, .-librock_sha256Init
	.globl	librock_sha256Update
	.type	librock_sha256Update, @function
librock_sha256Update:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -16[rbp], 0
	cmp	DWORD PTR -36[rbp], 0
	jns	.L35
	mov	eax, 0
	jmp	.L36
.L35:
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR -12[rbp], 0
	jmp	.L37
.L41:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR [rax+rdx*8]
	cmp	rax, 65535
	jbe	.L38
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR [rax+rdx*8]
	shr	rax, 16
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR [rax+rdx*8]
	movzx	ecx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	QWORD PTR [rax+rdx*8], rcx
	jmp	.L46
.L38:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L40
.L46:
	add	DWORD PTR -12[rbp], 1
.L37:
	cmp	DWORD PTR -12[rbp], 3
	jbe	.L41
.L40:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 160[rax]
	test	eax, eax
	jle	.L43
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 160[rax]
	add	eax, edx
	cmp	eax, 63
	jle	.L43
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 160[rax]
	mov	eax, 64
	sub	eax, edx
	cdqe
	mov	edx, DWORD PTR -16[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, [rcx+rdx]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 96[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 160[rdx]
	movsx	rdx, edx
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 160[rax]
	mov	eax, 64
	sub	eax, edx
	add	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 96[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rsi, rdx
	mov	rdi, rax
	call	hash256_block
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 160[rax], 0
	jmp	.L43
.L44:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rsi, rdx
	mov	rdi, rax
	call	hash256_block
	add	DWORD PTR -16[rbp], 64
.L43:
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -16[rbp]
	cmp	eax, 63
	jg	.L44
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -16[rbp]
	test	eax, eax
	jle	.L45
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -16[rbp]
	cdqe
	mov	edx, DWORD PTR -16[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, [rcx+rdx]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 96[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 160[rdx]
	movsx	rdx, edx
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 160[rax]
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -16[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 160[rax], edx
.L45:
	mov	eax, 1
.L36:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	librock_sha256Update, .-librock_sha256Update
	.globl	librock_sha256StoreFinal
	.type	librock_sha256StoreFinal, @function
librock_sha256StoreFinal:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 160[rax]
	mov	rdx, QWORD PTR -48[rbp]
	cdqe
	mov	BYTE PTR 96[rdx+rax], -128
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 160[rax]
	cmp	eax, 55
	jle	.L48
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 160[rax]
	mov	eax, 63
	sub	eax, edx
	cdqe
	mov	rdx, QWORD PTR -48[rbp]
	lea	rcx, 96[rdx]
	mov	rdx, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 160[rdx]
	movsx	rdx, edx
	add	rdx, 1
	add	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 96[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 32
	mov	rsi, rdx
	mov	rdi, rax
	call	hash256_block
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 96
	mov	edx, 56
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	jmp	.L49
.L48:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 160[rax]
	mov	eax, 55
	sub	eax, edx
	cdqe
	mov	rdx, QWORD PTR -48[rbp]
	lea	rcx, 96[rdx]
	mov	rdx, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 160[rdx]
	movsx	rdx, edx
	add	rdx, 1
	add	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
.L49:
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 152
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	jmp	.L50
.L51:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	or	rax, QWORD PTR -16[rbp]
	mov	rcx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	movzx	ecx, ax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 13
	and	eax, 65535
	mov	QWORD PTR -16[rbp], rax
	add	DWORD PTR -28[rbp], 1
.L50:
	cmp	DWORD PTR -28[rbp], 3
	jle	.L51
	mov	DWORD PTR -28[rbp], 3
	jmp	.L52
.L53:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	shr	rax, 8
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rcx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -28[rbp], 1
.L52:
	cmp	DWORD PTR -28[rbp], 0
	jns	.L53
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 96[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 32
	mov	rsi, rdx
	mov	rdi, rax
	call	hash256_block
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 96
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -32[rbp], 0
	jmp	.L54
.L55:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	rax, QWORD PTR [rax+rdx*8]
	shr	rax, 24
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -40[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	rax, QWORD PTR [rax+rdx*8]
	shr	rax, 16
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -40[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	rax, QWORD PTR [rax+rdx*8]
	shr	rax, 8
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -40[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	rcx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -40[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -32[rbp], 1
.L54:
	cmp	DWORD PTR -32[rbp], 7
	jle	.L55
	mov	eax, 1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	librock_sha256StoreFinal, .-librock_sha256StoreFinal
	.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	"679091.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	mask_8bit, %function
mask_8bit:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	mask_8bit, .-mask_8bit
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	mask_32bit, %function
mask_32bit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	mask_32bit, .-mask_32bit
	.section	.rodata
	.align	2
	.type	add_constant, %object
	.size	add_constant, 256
add_constant:
	.word	1116352408
	.word	1899447441
	.word	-1245643825
	.word	-373957723
	.word	961987163
	.word	1508970993
	.word	-1841331548
	.word	-1424204075
	.word	-670586216
	.word	310598401
	.word	607225278
	.word	1426881987
	.word	1925078388
	.word	-2132889090
	.word	-1680079193
	.word	-1046744716
	.word	-459576895
	.word	-272742522
	.word	264347078
	.word	604807628
	.word	770255983
	.word	1249150122
	.word	1555081692
	.word	1996064986
	.word	-1740746414
	.word	-1473132947
	.word	-1341970488
	.word	-1084653625
	.word	-958395405
	.word	-710438585
	.word	113926993
	.word	338241895
	.word	666307205
	.word	773529912
	.word	1294757372
	.word	1396182291
	.word	1695183700
	.word	1986661051
	.word	-2117940946
	.word	-1838011259
	.word	-1564481375
	.word	-1474664885
	.word	-1035236496
	.word	-949202525
	.word	-778901479
	.word	-694614492
	.word	-200395387
	.word	275423344
	.word	430227734
	.word	506948616
	.word	659060556
	.word	883997877
	.word	958139571
	.word	1322822218
	.word	1537002063
	.word	1747873779
	.word	1955562222
	.word	2024104815
	.word	-2067236844
	.word	-1933114872
	.word	-1866530822
	.word	-1538233109
	.word	-1090935817
	.word	-965641998
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ch, %function
ch:
	@ 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	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	mvn	r1, r3
	ldr	r3, [fp, #-16]
	and	r3, r3, r1
	eor	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ch, .-ch
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	maj, %function
maj:
	@ 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	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	eor	r2, r2, r3
	ldr	r3, [fp, #-8]
	and	r2, r2, r3
	ldr	r1, [fp, #-12]
	ldr	r3, [fp, #-16]
	and	r3, r3, r1
	eor	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	maj, .-maj
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rotr, %function
rotr:
	@ 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, #-8]
	ldr	r3, [fp, #-12]
	ror	r3, r2, r3
	mov	r0, r3
	bl	mask_32bit
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	rotr, .-rotr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsig0, %function
bsig0:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r4, r0
	mov	r1, #13
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r4, r4, r3
	mov	r1, #22
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r3, r3, r4
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	bsig0, .-bsig0
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsig1, %function
bsig1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #6
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r4, r0
	mov	r1, #11
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r4, r4, r3
	mov	r1, #25
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r3, r3, r4
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	bsig1, .-bsig1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	shr, %function
shr:
	@ 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]
	lsr	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	shr, .-shr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssig0, %function
ssig0:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #7
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r4, r0
	mov	r1, #18
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r4, r4, r3
	mov	r1, #3
	ldr	r0, [fp, #-16]
	bl	shr
	mov	r3, r0
	eor	r3, r3, r4
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	ssig0, .-ssig0
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssig1, %function
ssig1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #17
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r4, r0
	mov	r1, #19
	ldr	r0, [fp, #-16]
	bl	rotr
	mov	r3, r0
	eor	r4, r4, r3
	mov	r1, #10
	ldr	r0, [fp, #-16]
	bl	shr
	mov	r3, r0
	eor	r3, r3, r4
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	ssig1, .-ssig1
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hash256_block, %function
hash256_block:
	@ args = 0, pretend = 0, frame = 312
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #316
	str	r0, [fp, #-320]
	str	r1, [fp, #-324]
	ldr	r3, .L31
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L22
.L23:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-324]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	mask_8bit
	mov	r3, r0
	lsl	r4, r3, #24
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	add	r3, r3, #1
	ldr	r2, [fp, #-324]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	mask_8bit
	mov	r3, r0
	lsl	r3, r3, #16
	orr	r4, r4, r3
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	add	r3, r3, #2
	ldr	r2, [fp, #-324]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	mask_8bit
	mov	r3, r0
	lsl	r3, r3, #8
	orr	r4, r4, r3
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	add	r3, r3, #3
	ldr	r2, [fp, #-324]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	mask_8bit
	mov	r3, r0
	orr	r2, r4, r3
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-260]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L22:
	ldr	r3, [fp, #-316]
	cmp	r3, #15
	bls	.L23
	mov	r3, #16
	str	r3, [fp, #-316]
	b	.L24
.L25:
	ldr	r3, [fp, #-316]
	sub	r3, r3, #2
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-260]
	mov	r0, r3
	bl	ssig1
	mov	r2, r0
	ldr	r3, [fp, #-316]
	sub	r3, r3, #7
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-260]
	add	r4, r2, r3
	ldr	r3, [fp, #-316]
	sub	r3, r3, #15
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-260]
	mov	r0, r3
	bl	ssig0
	mov	r3, r0
	add	r2, r4, r3
	ldr	r3, [fp, #-316]
	sub	r3, r3, #16
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-260]
	add	r3, r2, r3
	mov	r0, r3
	bl	mask_32bit
	mov	r2, r0
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-260]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L24:
	ldr	r3, [fp, #-316]
	cmp	r3, #63
	bls	.L25
	ldr	r3, [fp, #-320]
	ldr	r3, [r3]
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-284]
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L26
.L27:
	ldr	r0, [fp, #-296]
	bl	bsig1
	mov	r2, r0
	ldr	r3, [fp, #-284]
	add	r4, r2, r3
	ldr	r2, [fp, #-288]
	ldr	r1, [fp, #-292]
	ldr	r0, [fp, #-296]
	bl	ch
	mov	r3, r0
	add	r2, r4, r3
	ldr	r1, .L31+4
	ldr	r3, [fp, #-316]
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-260]
	add	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r0, [fp, #-312]
	bl	bsig0
	mov	r4, r0
	ldr	r2, [fp, #-304]
	ldr	r1, [fp, #-308]
	ldr	r0, [fp, #-312]
	bl	maj
	mov	r3, r0
	add	r3, r4, r3
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-292]
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-280]
	add	r3, r2, r3
	mov	r0, r3
	bl	mask_32bit
	str	r0, [fp, #-296]
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-308]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-312]
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-276]
	add	r3, r2, r3
	mov	r0, r3
	bl	mask_32bit
	str	r0, [fp, #-312]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L26:
	ldr	r3, [fp, #-316]
	cmp	r3, #63
	bls	.L27
	ldr	r3, [fp, #-320]
	ldr	r2, [r3]
	ldr	r3, [fp, #-312]
	add	r2, r2, r3
	ldr	r3, [fp, #-320]
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #4
	ldr	r2, [fp, #-308]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #8
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #8
	ldr	r2, [fp, #-304]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #12
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #12
	ldr	r2, [fp, #-300]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #16
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #16
	ldr	r2, [fp, #-296]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #20
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #20
	ldr	r2, [fp, #-292]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #24
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #24
	ldr	r2, [fp, #-288]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #28
	ldr	r1, [r3]
	ldr	r3, [fp, #-320]
	add	r3, r3, #28
	ldr	r2, [fp, #-284]
	add	r2, r1, r2
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L28
.L29:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-320]
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-320]
	add	r4, r2, r3
	mov	r0, r1
	bl	mask_32bit
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L28:
	ldr	r3, [fp, #-316]
	cmp	r3, #7
	bls	.L29
	nop
	ldr	r3, .L31
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L30
	bl	__stack_chk_fail
.L30:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L32:
	.align	2
.L31:
	.word	.LC0
	.word	add_constant
	.size	hash256_block, .-hash256_block
	.align	2
	.global	librock_sha256Init
	.syntax unified
	.arm
	.fpu softvfp
	.type	librock_sha256Init, %function
librock_sha256Init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L34
	mov	r3, #116
	b	.L35
.L34:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+4
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+8
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+12
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+16
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+20
	str	r2, [r3, #36]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+24
	str	r2, [r3, #40]
	ldr	r3, [fp, #-8]
	ldr	r2, .L36+28
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #112]
	mov	r3, #1
.L35:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L37:
	.align	2
.L36:
	.word	1779033703
	.word	-1150833019
	.word	1013904242
	.word	-1521486534
	.word	1359893119
	.word	-1694144372
	.word	528734635
	.word	1541459225
	.size	librock_sha256Init, .-librock_sha256Init
	.align	2
	.global	librock_sha256Update
	.syntax unified
	.arm
	.fpu softvfp
	.type	librock_sha256Update, %function
librock_sha256Update:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L39
	mov	r3, #0
	b	.L40
.L39:
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L41
.L45:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-8]
	add	r1, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #65536
	bcc	.L42
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	lsr	r3, r3, #16
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-12]
	str	r3, [r2, r1, lsl #2]
	b	.L50
.L42:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L44
.L50:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L41:
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	bls	.L45
.L44:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #112]
	cmp	r3, #0
	ble	.L47
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #112]
	add	r3, r2, r3
	cmp	r3, #63
	ble	.L47
	ldr	r3, [fp, #-24]
	add	r3, r3, #48
	ldr	r2, [fp, #-24]
	ldr	r2, [r2, #112]
	add	r0, r3, r2
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	add	r1, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #112]
	rsb	r3, r3, #64
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #112]
	rsb	r3, r3, #64
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #16
	ldr	r3, [fp, #-24]
	add	r3, r3, #48
	mov	r1, r3
	mov	r0, r2
	bl	hash256_block
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #112]
	b	.L47
.L48:
	ldr	r3, [fp, #-24]
	add	r0, r3, #16
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r1, r3
	bl	hash256_block
	ldr	r3, [fp, #-16]
	add	r3, r3, #64
	str	r3, [fp, #-16]
.L47:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	cmp	r3, #63
	bgt	.L48
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	cmp	r3, #0
	ble	.L49
	ldr	r3, [fp, #-24]
	add	r3, r3, #48
	ldr	r2, [fp, #-24]
	ldr	r2, [r2, #112]
	add	r0, r3, r2
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	add	r1, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #112]
	ldr	r1, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #112]
.L49:
	mov	r3, #1
.L40:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	librock_sha256Update, .-librock_sha256Update
	.align	2
	.global	librock_sha256StoreFinal
	.syntax unified
	.arm
	.fpu softvfp
	.type	librock_sha256StoreFinal, %function
librock_sha256StoreFinal:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #127
	strb	r2, [r3, #48]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	cmp	r3, #55
	ble	.L52
	ldr	r3, [fp, #-36]
	add	r2, r3, #48
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	add	r3, r3, #1
	add	r0, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	rsb	r3, r3, #63
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-36]
	add	r2, r3, #16
	ldr	r3, [fp, #-36]
	add	r3, r3, #48
	mov	r1, r3
	mov	r0, r2
	bl	hash256_block
	ldr	r3, [fp, #-36]
	add	r3, r3, #48
	mov	r2, #56
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L53
.L52:
	ldr	r3, [fp, #-36]
	add	r2, r3, #48
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	add	r3, r3, #1
	add	r0, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #112]
	rsb	r3, r3, #55
	mov	r2, r3
	mov	r1, #0
	bl	memset
.L53:
	ldr	r3, [fp, #-36]
	add	r3, r3, #104
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L54
.L55:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	lsl	r1, r3, #3
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	orr	r1, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-12]
	str	r3, [r2, r1, lsl #2]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #13
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L54:
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	ble	.L55
	mov	r3, #3
	str	r3, [fp, #-12]
	b	.L56
.L57:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r3, [r3, r2, lsl #2]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-20]
	add	r1, r3, #1
	str	r1, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-20]
	add	r1, r3, #1
	str	r1, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L56:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L57
	ldr	r3, [fp, #-36]
	add	r2, r3, #16
	ldr	r3, [fp, #-36]
	add	r3, r3, #48
	mov	r1, r3
	mov	r0, r2
	bl	hash256_block
	ldr	r3, [fp, #-36]
	add	r3, r3, #48
	mov	r2, #64
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L58
.L59:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	add	r2, r2, #4
	ldr	r3, [r3, r2, lsl #2]
	lsr	r2, r3, #24
	ldr	r3, [fp, #-32]
	add	r1, r3, #1
	str	r1, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	add	r2, r2, #4
	ldr	r3, [r3, r2, lsl #2]
	lsr	r2, r3, #16
	ldr	r3, [fp, #-32]
	add	r1, r3, #1
	str	r1, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	add	r2, r2, #4
	ldr	r3, [r3, r2, lsl #2]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-32]
	add	r1, r3, #1
	str	r1, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	add	r2, r2, #4
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	add	r1, r3, #1
	str	r1, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L58:
	ldr	r3, [fp, #-24]
	cmp	r3, #7
	ble	.L59
	mov	r3, #1
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	librock_sha256StoreFinal, .-librock_sha256StoreFinal
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
