Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sha2: performance issue on RISC-V #328

Closed
piegamesde opened this issue Dec 2, 2021 · 8 comments · Fixed by #547
Closed

sha2: performance issue on RISC-V #328

piegamesde opened this issue Dec 2, 2021 · 8 comments · Fixed by #547

Comments

@piegamesde
Copy link

I'm compiling the crate on a riscv32im-unknown-none-elf. On a release build with opt-level = 3 and lto = fat, the sha2::sha256::soft::compress function looks like this:

riscv32-none-elf-objdump -Cd
8000219c <sha2::sha256::soft::compress>:
8000219c:	e2010113          	addi	sp,sp,-480
800021a0:	1c112e23          	sw	ra,476(sp)
800021a4:	1c812c23          	sw	s0,472(sp)
800021a8:	1c912a23          	sw	s1,468(sp)
800021ac:	1d212823          	sw	s2,464(sp)
800021b0:	1d312623          	sw	s3,460(sp)
800021b4:	1d412423          	sw	s4,456(sp)
800021b8:	1d512223          	sw	s5,452(sp)
800021bc:	1d612023          	sw	s6,448(sp)
800021c0:	1b712e23          	sw	s7,444(sp)
800021c4:	1b812c23          	sw	s8,440(sp)
800021c8:	1b912a23          	sw	s9,436(sp)
800021cc:	1ba12823          	sw	s10,432(sp)
800021d0:	1bb12623          	sw	s11,428(sp)
800021d4:	00060993          	mv	s3,a2
800021d8:	00058413          	mv	s0,a1
800021dc:	00050a13          	mv	s4,a0
800021e0:	16c10513          	addi	a0,sp,364
800021e4:	04000613          	li	a2,64
800021e8:	00000593          	li	a1,0
800021ec:	00004097          	auipc	ra,0x4
800021f0:	07c080e7          	jalr	124(ra) # 80006268 <memset>
800021f4:	000a2483          	lw	s1,0(s4) # 110000 <_hart_stack_size+0x10f800>
800021f8:	004a2903          	lw	s2,4(s4)
800021fc:	008a2e83          	lw	t4,8(s4)
80002200:	00ca2383          	lw	t2,12(s4)
80002204:	010a2a83          	lw	s5,16(s4)
80002208:	014a2803          	lw	a6,20(s4)
8000220c:	018a2b03          	lw	s6,24(s4)
80002210:	01412223          	sw	s4,4(sp)
80002214:	01ca2a03          	lw	s4,28(s4)
80002218:	00099463          	bnez	s3,80002220 <sha2::sha256::soft::compress+0x84>
8000221c:	7950306f          	j	800061b0 <sha2::sha256::soft::compress+0x4014>
80002220:	00699513          	slli	a0,s3,0x6
80002224:	00a40533          	add	a0,s0,a0
80002228:	10a12623          	sw	a0,268(sp)
8000222c:	00010537          	lui	a0,0x10
80002230:	f0050513          	addi	a0,a0,-256 # ff00 <_hart_stack_size+0xf700>
80002234:	10a12423          	sw	a0,264(sp)
80002238:	428a3537          	lui	a0,0x428a3
8000223c:	f9850513          	addi	a0,a0,-104 # 428a2f98 <_hart_stack_size+0x428a2798>
80002240:	10a12223          	sw	a0,260(sp)
80002244:	71374537          	lui	a0,0x71374
80002248:	49150513          	addi	a0,a0,1169 # 71374491 <_hart_stack_size+0x71373c91>
8000224c:	10a12023          	sw	a0,256(sp)
80002250:	b5c10537          	lui	a0,0xb5c10
80002254:	bcf50513          	addi	a0,a0,-1073 # b5c0fbcf <_sstack+0x35bafbcf>
80002258:	0ea12e23          	sw	a0,252(sp)
8000225c:	e9b5e537          	lui	a0,0xe9b5e
80002260:	ba550513          	addi	a0,a0,-1115 # e9b5dba5 <_sstack+0x69afdba5>
80002264:	0ea12c23          	sw	a0,248(sp)
80002268:	3956c537          	lui	a0,0x3956c
8000226c:	25b50513          	addi	a0,a0,603 # 3956c25b <_hart_stack_size+0x3956ba5b>
80002270:	0ea12a23          	sw	a0,244(sp)
80002274:	59f11537          	lui	a0,0x59f11
80002278:	1f150513          	addi	a0,a0,497 # 59f111f1 <_hart_stack_size+0x59f109f1>
8000227c:	0ea12823          	sw	a0,240(sp)
80002280:	923f8537          	lui	a0,0x923f8
80002284:	2a450513          	addi	a0,a0,676 # 923f82a4 <_sstack+0x123982a4>
80002288:	0ea12623          	sw	a0,236(sp)
8000228c:	ab1c6537          	lui	a0,0xab1c6
80002290:	ed550513          	addi	a0,a0,-299 # ab1c5ed5 <_sstack+0x2b165ed5>
80002294:	0ea12423          	sw	a0,232(sp)
80002298:	d807b537          	lui	a0,0xd807b
8000229c:	a9850513          	addi	a0,a0,-1384 # d807aa98 <_sstack+0x5801aa98>
800022a0:	0ea12223          	sw	a0,228(sp)
800022a4:	12836537          	lui	a0,0x12836
800022a8:	b0150513          	addi	a0,a0,-1279 # 12835b01 <_hart_stack_size+0x12835301>
800022ac:	0ea12023          	sw	a0,224(sp)
800022b0:	24318537          	lui	a0,0x24318
800022b4:	5be50513          	addi	a0,a0,1470 # 243185be <_hart_stack_size+0x24317dbe>
800022b8:	0ca12e23          	sw	a0,220(sp)
800022bc:	550c8537          	lui	a0,0x550c8
800022c0:	dc350513          	addi	a0,a0,-573 # 550c7dc3 <_hart_stack_size+0x550c75c3>
800022c4:	0ca12c23          	sw	a0,216(sp)
800022c8:	72be6537          	lui	a0,0x72be6
800022cc:	d7450513          	addi	a0,a0,-652 # 72be5d74 <_hart_stack_size+0x72be5574>
800022d0:	0ca12a23          	sw	a0,212(sp)
800022d4:	80deb537          	lui	a0,0x80deb
800022d8:	1fe50513          	addi	a0,a0,510 # 80deb1fe <_sstack+0xd8b1fe>
800022dc:	0ca12823          	sw	a0,208(sp)
800022e0:	9bdc0537          	lui	a0,0x9bdc0
800022e4:	6a750513          	addi	a0,a0,1703 # 9bdc06a7 <_sstack+0x1bd606a7>
800022e8:	0ca12623          	sw	a0,204(sp)
800022ec:	c19bf537          	lui	a0,0xc19bf
800022f0:	17450513          	addi	a0,a0,372 # c19bf174 <_sstack+0x4195f174>
800022f4:	0ca12423          	sw	a0,200(sp)
800022f8:	e49b7537          	lui	a0,0xe49b7
800022fc:	9c150513          	addi	a0,a0,-1599 # e49b69c1 <_sstack+0x649569c1>
80002300:	0ca12223          	sw	a0,196(sp)
80002304:	efbe4537          	lui	a0,0xefbe4
80002308:	78650513          	addi	a0,a0,1926 # efbe4786 <_sstack+0x6fb84786>
8000230c:	0ca12023          	sw	a0,192(sp)
80002310:	0fc1a537          	lui	a0,0xfc1a
80002314:	dc650513          	addi	a0,a0,-570 # fc19dc6 <_hart_stack_size+0xfc195c6>
80002318:	0aa12e23          	sw	a0,188(sp)
8000231c:	240ca537          	lui	a0,0x240ca
80002320:	1cc50513          	addi	a0,a0,460 # 240ca1cc <_hart_stack_size+0x240c99cc>
80002324:	0aa12c23          	sw	a0,184(sp)
80002328:	2de93537          	lui	a0,0x2de93
8000232c:	c6f50513          	addi	a0,a0,-913 # 2de92c6f <_hart_stack_size+0x2de9246f>
80002330:	0aa12a23          	sw	a0,180(sp)
80002334:	4a748537          	lui	a0,0x4a748
80002338:	4aa50513          	addi	a0,a0,1194 # 4a7484aa <_hart_stack_size+0x4a747caa>
8000233c:	0aa12823          	sw	a0,176(sp)
80002340:	5cb0b537          	lui	a0,0x5cb0b
80002344:	9dc50513          	addi	a0,a0,-1572 # 5cb0a9dc <_hart_stack_size+0x5cb0a1dc>
80002348:	0aa12623          	sw	a0,172(sp)
8000234c:	76f99537          	lui	a0,0x76f99
80002350:	8da50513          	addi	a0,a0,-1830 # 76f988da <_hart_stack_size+0x76f980da>
80002354:	0aa12423          	sw	a0,168(sp)
80002358:	983e5537          	lui	a0,0x983e5
8000235c:	15250513          	addi	a0,a0,338 # 983e5152 <_sstack+0x18385152>
80002360:	0aa12223          	sw	a0,164(sp)
80002364:	a831c537          	lui	a0,0xa831c
80002368:	66d50513          	addi	a0,a0,1645 # a831c66d <_sstack+0x282bc66d>
8000236c:	0aa12023          	sw	a0,160(sp)
80002370:	b0032537          	lui	a0,0xb0032
80002374:	7c850513          	addi	a0,a0,1992 # b00327c8 <_sstack+0x2ffd27c8>
80002378:	08a12e23          	sw	a0,156(sp)
8000237c:	bf598537          	lui	a0,0xbf598
80002380:	fc750513          	addi	a0,a0,-57 # bf597fc7 <_sstack+0x3f537fc7>
80002384:	08a12c23          	sw	a0,152(sp)
80002388:	c6e01537          	lui	a0,0xc6e01
8000238c:	bf350513          	addi	a0,a0,-1037 # c6e00bf3 <_sstack+0x46da0bf3>
80002390:	08a12a23          	sw	a0,148(sp)
80002394:	d5a79537          	lui	a0,0xd5a79
80002398:	14750513          	addi	a0,a0,327 # d5a79147 <_sstack+0x55a19147>
8000239c:	08a12823          	sw	a0,144(sp)
800023a0:	06ca6537          	lui	a0,0x6ca6
800023a4:	35150513          	addi	a0,a0,849 # 6ca6351 <_hart_stack_size+0x6ca5b51>
800023a8:	08a12623          	sw	a0,140(sp)
800023ac:	14293537          	lui	a0,0x14293
800023b0:	96750513          	addi	a0,a0,-1689 # 14292967 <_hart_stack_size+0x14292167>
800023b4:	08a12423          	sw	a0,136(sp)
800023b8:	27b71537          	lui	a0,0x27b71
800023bc:	a8550513          	addi	a0,a0,-1403 # 27b70a85 <_hart_stack_size+0x27b70285>
800023c0:	08a12223          	sw	a0,132(sp)
800023c4:	2e1b2537          	lui	a0,0x2e1b2
800023c8:	13850513          	addi	a0,a0,312 # 2e1b2138 <_hart_stack_size+0x2e1b1938>
800023cc:	08a12023          	sw	a0,128(sp)
800023d0:	4d2c7537          	lui	a0,0x4d2c7
800023d4:	dfc50513          	addi	a0,a0,-516 # 4d2c6dfc <_hart_stack_size+0x4d2c65fc>
800023d8:	06a12e23          	sw	a0,124(sp)
800023dc:	53381537          	lui	a0,0x53381
800023e0:	d1350513          	addi	a0,a0,-749 # 53380d13 <_hart_stack_size+0x53380513>
800023e4:	06a12c23          	sw	a0,120(sp)
800023e8:	650a7537          	lui	a0,0x650a7
800023ec:	35450513          	addi	a0,a0,852 # 650a7354 <_hart_stack_size+0x650a6b54>
800023f0:	06a12a23          	sw	a0,116(sp)
800023f4:	766a1537          	lui	a0,0x766a1
800023f8:	abb50513          	addi	a0,a0,-1349 # 766a0abb <_hart_stack_size+0x766a02bb>
800023fc:	06a12823          	sw	a0,112(sp)
80002400:	81c2d537          	lui	a0,0x81c2d
80002404:	92e50513          	addi	a0,a0,-1746 # 81c2c92e <_sstack+0x1bcc92e>
80002408:	06a12623          	sw	a0,108(sp)
8000240c:	92723537          	lui	a0,0x92723
80002410:	c8550513          	addi	a0,a0,-891 # 92722c85 <_sstack+0x126c2c85>
80002414:	06a12423          	sw	a0,104(sp)
80002418:	a2bff537          	lui	a0,0xa2bff
8000241c:	8a150513          	addi	a0,a0,-1887 # a2bfe8a1 <_sstack+0x22b9e8a1>
80002420:	06a12223          	sw	a0,100(sp)
80002424:	a81a6537          	lui	a0,0xa81a6
80002428:	64b50513          	addi	a0,a0,1611 # a81a664b <_sstack+0x2814664b>
8000242c:	06a12023          	sw	a0,96(sp)
80002430:	c24b9537          	lui	a0,0xc24b9
80002434:	b7050513          	addi	a0,a0,-1168 # c24b8b70 <_sstack+0x42458b70>
80002438:	04a12e23          	sw	a0,92(sp)
8000243c:	c76c5537          	lui	a0,0xc76c5
80002440:	1a350513          	addi	a0,a0,419 # c76c51a3 <_sstack+0x476651a3>
80002444:	04a12c23          	sw	a0,88(sp)
80002448:	d192f537          	lui	a0,0xd192f
8000244c:	81950513          	addi	a0,a0,-2023 # d192e819 <_sstack+0x518ce819>
80002450:	04a12a23          	sw	a0,84(sp)
80002454:	d6990537          	lui	a0,0xd6990
80002458:	62450513          	addi	a0,a0,1572 # d6990624 <_sstack+0x56930624>
8000245c:	04a12823          	sw	a0,80(sp)
80002460:	f40e3537          	lui	a0,0xf40e3
80002464:	58550513          	addi	a0,a0,1413 # f40e3585 <_sstack+0x74083585>
80002468:	04a12623          	sw	a0,76(sp)
8000246c:	106aa537          	lui	a0,0x106aa
80002470:	07050513          	addi	a0,a0,112 # 106aa070 <_hart_stack_size+0x106a9870>
80002474:	04a12423          	sw	a0,72(sp)
80002478:	19a4c537          	lui	a0,0x19a4c
8000247c:	11650513          	addi	a0,a0,278 # 19a4c116 <_hart_stack_size+0x19a4b916>
80002480:	04a12223          	sw	a0,68(sp)
80002484:	1e377537          	lui	a0,0x1e377
80002488:	c0850513          	addi	a0,a0,-1016 # 1e376c08 <_hart_stack_size+0x1e376408>
8000248c:	04a12023          	sw	a0,64(sp)
80002490:	27487537          	lui	a0,0x27487
80002494:	74c50513          	addi	a0,a0,1868 # 2748774c <_hart_stack_size+0x27486f4c>
80002498:	02a12e23          	sw	a0,60(sp)
8000249c:	34b0c537          	lui	a0,0x34b0c
800024a0:	cb550513          	addi	a0,a0,-843 # 34b0bcb5 <_hart_stack_size+0x34b0b4b5>
800024a4:	02a12c23          	sw	a0,56(sp)
800024a8:	391c1537          	lui	a0,0x391c1
800024ac:	cb350513          	addi	a0,a0,-845 # 391c0cb3 <_hart_stack_size+0x391c04b3>
800024b0:	02a12a23          	sw	a0,52(sp)
800024b4:	4ed8b537          	lui	a0,0x4ed8b
800024b8:	a4a50513          	addi	a0,a0,-1462 # 4ed8aa4a <_hart_stack_size+0x4ed8a24a>
800024bc:	02a12823          	sw	a0,48(sp)
800024c0:	5b9cd537          	lui	a0,0x5b9cd
800024c4:	a4f50513          	addi	a0,a0,-1457 # 5b9cca4f <_hart_stack_size+0x5b9cc24f>
800024c8:	02a12623          	sw	a0,44(sp)
800024cc:	682e7537          	lui	a0,0x682e7
800024d0:	ff350513          	addi	a0,a0,-13 # 682e6ff3 <_hart_stack_size+0x682e67f3>
800024d4:	02a12423          	sw	a0,40(sp)
800024d8:	748f8537          	lui	a0,0x748f8
800024dc:	2ee50513          	addi	a0,a0,750 # 748f82ee <_hart_stack_size+0x748f7aee>
800024e0:	02a12223          	sw	a0,36(sp)
800024e4:	78a56537          	lui	a0,0x78a56
800024e8:	36f50513          	addi	a0,a0,879 # 78a5636f <_hart_stack_size+0x78a55b6f>
800024ec:	02a12023          	sw	a0,32(sp)
800024f0:	84c88537          	lui	a0,0x84c88
800024f4:	81450513          	addi	a0,a0,-2028 # 84c87814 <_sstack+0x4c27814>
800024f8:	00a12e23          	sw	a0,28(sp)
800024fc:	8cc70537          	lui	a0,0x8cc70
80002500:	20850513          	addi	a0,a0,520 # 8cc70208 <_sstack+0xcc10208>
80002504:	00a12c23          	sw	a0,24(sp)
80002508:	90bf0537          	lui	a0,0x90bf0
8000250c:	ffa50513          	addi	a0,a0,-6 # 90befffa <_sstack+0x10b8fffa>
80002510:	00a12a23          	sw	a0,20(sp)
80002514:	a4507537          	lui	a0,0xa4507
80002518:	ceb50513          	addi	a0,a0,-789 # a4506ceb <_sstack+0x244a6ceb>
8000251c:	00a12823          	sw	a0,16(sp)
80002520:	bef9a537          	lui	a0,0xbef9a
80002524:	3f750513          	addi	a0,a0,1015 # bef9a3f7 <_sstack+0x3ef3a3f7>
80002528:	00a12623          	sw	a0,12(sp)
8000252c:	c6718537          	lui	a0,0xc6718
80002530:	8f250513          	addi	a0,a0,-1806 # c67178f2 <_sstack+0x466b78f2>
80002534:	00a12423          	sw	a0,8(sp)
80002538:	12812623          	sw	s0,300(sp)
8000253c:	13212823          	sw	s2,304(sp)
80002540:	13d12a23          	sw	t4,308(sp)
80002544:	12712c23          	sw	t2,312(sp)
80002548:	13012e23          	sw	a6,316(sp)
8000254c:	15612c23          	sw	s6,344(sp)
80002550:	15412023          	sw	s4,320(sp)
80002554:	00144503          	lbu	a0,1(s0)
80002558:	00044583          	lbu	a1,0(s0)
8000255c:	00344603          	lbu	a2,3(s0)
80002560:	00244683          	lbu	a3,2(s0)
80002564:	00851513          	slli	a0,a0,0x8
80002568:	00b56533          	or	a0,a0,a1
8000256c:	00861593          	slli	a1,a2,0x8
80002570:	00d5e5b3          	or	a1,a1,a3
80002574:	01059593          	slli	a1,a1,0x10
80002578:	00a5e533          	or	a0,a1,a0
8000257c:	00855593          	srli	a1,a0,0x8
80002580:	10812703          	lw	a4,264(sp)
80002584:	00e5f5b3          	and	a1,a1,a4
80002588:	01855613          	srli	a2,a0,0x18
8000258c:	00c5e5b3          	or	a1,a1,a2
80002590:	00851613          	slli	a2,a0,0x8
80002594:	00ff07b7          	lui	a5,0xff0
80002598:	00f67633          	and	a2,a2,a5
8000259c:	01851513          	slli	a0,a0,0x18
800025a0:	00c56533          	or	a0,a0,a2
800025a4:	00b56533          	or	a0,a0,a1
800025a8:	16a12623          	sw	a0,364(sp)
800025ac:	00544503          	lbu	a0,5(s0)
800025b0:	00444583          	lbu	a1,4(s0)
800025b4:	00744603          	lbu	a2,7(s0)
800025b8:	00644683          	lbu	a3,6(s0)
800025bc:	00851513          	slli	a0,a0,0x8
800025c0:	00b56533          	or	a0,a0,a1
800025c4:	00861593          	slli	a1,a2,0x8
800025c8:	00d5e5b3          	or	a1,a1,a3
800025cc:	01059593          	slli	a1,a1,0x10
800025d0:	00a5e533          	or	a0,a1,a0
800025d4:	00855593          	srli	a1,a0,0x8
800025d8:	00e5f5b3          	and	a1,a1,a4
800025dc:	01855613          	srli	a2,a0,0x18
800025e0:	00c5e5b3          	or	a1,a1,a2
800025e4:	00851613          	slli	a2,a0,0x8
800025e8:	00f67633          	and	a2,a2,a5
800025ec:	01851513          	slli	a0,a0,0x18
800025f0:	00c56533          	or	a0,a0,a2
800025f4:	00b56533          	or	a0,a0,a1
800025f8:	16a12823          	sw	a0,368(sp)
800025fc:	00944503          	lbu	a0,9(s0)
80002600:	00844583          	lbu	a1,8(s0)
80002604:	00b44603          	lbu	a2,11(s0)
80002608:	00a44683          	lbu	a3,10(s0)
8000260c:	00851513          	slli	a0,a0,0x8
80002610:	00b56533          	or	a0,a0,a1
80002614:	00861593          	slli	a1,a2,0x8
80002618:	00d5e5b3          	or	a1,a1,a3
8000261c:	01059593          	slli	a1,a1,0x10
80002620:	00a5e533          	or	a0,a1,a0
80002624:	00855593          	srli	a1,a0,0x8
80002628:	00e5f5b3          	and	a1,a1,a4
8000262c:	01855613          	srli	a2,a0,0x18
80002630:	00c5e5b3          	or	a1,a1,a2
80002634:	00851613          	slli	a2,a0,0x8
80002638:	00f67633          	and	a2,a2,a5
8000263c:	01851513          	slli	a0,a0,0x18
80002640:	00c56533          	or	a0,a0,a2
80002644:	00b56533          	or	a0,a0,a1
80002648:	16a12a23          	sw	a0,372(sp)
8000264c:	00d44503          	lbu	a0,13(s0)
80002650:	00c44583          	lbu	a1,12(s0)
80002654:	00f44603          	lbu	a2,15(s0)
80002658:	00e44683          	lbu	a3,14(s0)
8000265c:	00851513          	slli	a0,a0,0x8
80002660:	00b56533          	or	a0,a0,a1
80002664:	00861593          	slli	a1,a2,0x8
80002668:	00d5e5b3          	or	a1,a1,a3
8000266c:	01059593          	slli	a1,a1,0x10
80002670:	00a5e533          	or	a0,a1,a0
80002674:	00855593          	srli	a1,a0,0x8
80002678:	00e5f5b3          	and	a1,a1,a4
8000267c:	01855613          	srli	a2,a0,0x18
80002680:	00c5e5b3          	or	a1,a1,a2
80002684:	00851613          	slli	a2,a0,0x8
80002688:	00f67633          	and	a2,a2,a5
8000268c:	01851513          	slli	a0,a0,0x18
80002690:	00c56533          	or	a0,a0,a2
80002694:	00b56533          	or	a0,a0,a1
80002698:	16a12c23          	sw	a0,376(sp)
8000269c:	01144503          	lbu	a0,17(s0)
800026a0:	01044583          	lbu	a1,16(s0)
800026a4:	01344603          	lbu	a2,19(s0)
800026a8:	01244683          	lbu	a3,18(s0)
800026ac:	00851513          	slli	a0,a0,0x8
800026b0:	00b56533          	or	a0,a0,a1
800026b4:	00861593          	slli	a1,a2,0x8
800026b8:	00d5e5b3          	or	a1,a1,a3
800026bc:	01059593          	slli	a1,a1,0x10
800026c0:	00a5e533          	or	a0,a1,a0
800026c4:	00855593          	srli	a1,a0,0x8
800026c8:	00e5f5b3          	and	a1,a1,a4
800026cc:	01855613          	srli	a2,a0,0x18
800026d0:	00c5e5b3          	or	a1,a1,a2
800026d4:	00851613          	slli	a2,a0,0x8
800026d8:	00f67633          	and	a2,a2,a5
800026dc:	01851513          	slli	a0,a0,0x18
800026e0:	00c56533          	or	a0,a0,a2
800026e4:	00b56533          	or	a0,a0,a1
800026e8:	16a12e23          	sw	a0,380(sp)
800026ec:	01544503          	lbu	a0,21(s0)
800026f0:	01444583          	lbu	a1,20(s0)
800026f4:	01744603          	lbu	a2,23(s0)
800026f8:	01644683          	lbu	a3,22(s0)
800026fc:	00851513          	slli	a0,a0,0x8
80002700:	00b56533          	or	a0,a0,a1
80002704:	00861593          	slli	a1,a2,0x8
80002708:	00d5e5b3          	or	a1,a1,a3
8000270c:	01059593          	slli	a1,a1,0x10
80002710:	00a5e533          	or	a0,a1,a0
80002714:	00855593          	srli	a1,a0,0x8
80002718:	00e5f5b3          	and	a1,a1,a4
8000271c:	01855613          	srli	a2,a0,0x18
80002720:	00c5e5b3          	or	a1,a1,a2
80002724:	00851613          	slli	a2,a0,0x8
80002728:	00f67633          	and	a2,a2,a5
8000272c:	01851513          	slli	a0,a0,0x18
80002730:	00c56533          	or	a0,a0,a2
80002734:	00b56533          	or	a0,a0,a1
80002738:	18a12023          	sw	a0,384(sp)
8000273c:	01944503          	lbu	a0,25(s0)
80002740:	01844583          	lbu	a1,24(s0)
80002744:	01b44603          	lbu	a2,27(s0)
80002748:	01a44683          	lbu	a3,26(s0)
8000274c:	00851513          	slli	a0,a0,0x8
80002750:	00b56533          	or	a0,a0,a1
80002754:	00861593          	slli	a1,a2,0x8
80002758:	00d5e5b3          	or	a1,a1,a3
8000275c:	01059593          	slli	a1,a1,0x10
80002760:	00a5e533          	or	a0,a1,a0
80002764:	00855593          	srli	a1,a0,0x8
80002768:	00e5f5b3          	and	a1,a1,a4
8000276c:	01855613          	srli	a2,a0,0x18
80002770:	00c5e5b3          	or	a1,a1,a2
80002774:	00851613          	slli	a2,a0,0x8
80002778:	00f67633          	and	a2,a2,a5
8000277c:	01851513          	slli	a0,a0,0x18
80002780:	00c56533          	or	a0,a0,a2
80002784:	00b56533          	or	a0,a0,a1
80002788:	18a12223          	sw	a0,388(sp)
8000278c:	00050313          	mv	t1,a0
80002790:	16a12023          	sw	a0,352(sp)
80002794:	01d44503          	lbu	a0,29(s0)
80002798:	01c44583          	lbu	a1,28(s0)
8000279c:	01f44603          	lbu	a2,31(s0)
800027a0:	01e44683          	lbu	a3,30(s0)
800027a4:	00851513          	slli	a0,a0,0x8
800027a8:	00b56533          	or	a0,a0,a1
800027ac:	00861593          	slli	a1,a2,0x8
800027b0:	00d5e5b3          	or	a1,a1,a3
800027b4:	01059593          	slli	a1,a1,0x10
800027b8:	00a5e533          	or	a0,a1,a0
800027bc:	00855593          	srli	a1,a0,0x8
800027c0:	00e5f5b3          	and	a1,a1,a4
800027c4:	01855613          	srli	a2,a0,0x18
800027c8:	00c5e5b3          	or	a1,a1,a2
800027cc:	00851613          	slli	a2,a0,0x8
800027d0:	00f67633          	and	a2,a2,a5
800027d4:	01851513          	slli	a0,a0,0x18
800027d8:	00c56533          	or	a0,a0,a2
800027dc:	00b56533          	or	a0,a0,a1
800027e0:	18a12423          	sw	a0,392(sp)
800027e4:	00050993          	mv	s3,a0
800027e8:	14a12823          	sw	a0,336(sp)
800027ec:	02144503          	lbu	a0,33(s0)
800027f0:	02044583          	lbu	a1,32(s0)
800027f4:	02344603          	lbu	a2,35(s0)
800027f8:	02244683          	lbu	a3,34(s0)
800027fc:	00851513          	slli	a0,a0,0x8
80002800:	00b56533          	or	a0,a0,a1
80002804:	00861593          	slli	a1,a2,0x8
80002808:	00d5e5b3          	or	a1,a1,a3
8000280c:	01059593          	slli	a1,a1,0x10
80002810:	00a5e533          	or	a0,a1,a0
80002814:	00855593          	srli	a1,a0,0x8
80002818:	00e5f5b3          	and	a1,a1,a4
8000281c:	01855613          	srli	a2,a0,0x18
80002820:	00c5e5b3          	or	a1,a1,a2
80002824:	00851613          	slli	a2,a0,0x8
80002828:	00f67633          	and	a2,a2,a5
8000282c:	01851513          	slli	a0,a0,0x18
80002830:	00c56533          	or	a0,a0,a2
80002834:	00b56533          	or	a0,a0,a1
80002838:	18a12623          	sw	a0,396(sp)
8000283c:	00050093          	mv	ra,a0
80002840:	14a12a23          	sw	a0,340(sp)
80002844:	02544503          	lbu	a0,37(s0)
80002848:	02444583          	lbu	a1,36(s0)
8000284c:	02744603          	lbu	a2,39(s0)
80002850:	02644683          	lbu	a3,38(s0)
80002854:	00851513          	slli	a0,a0,0x8
80002858:	00b56533          	or	a0,a0,a1
8000285c:	00861593          	slli	a1,a2,0x8
80002860:	00d5e5b3          	or	a1,a1,a3
80002864:	01059593          	slli	a1,a1,0x10
80002868:	00a5e533          	or	a0,a1,a0
8000286c:	00855593          	srli	a1,a0,0x8
80002870:	00e5f5b3          	and	a1,a1,a4
80002874:	01855613          	srli	a2,a0,0x18
80002878:	00c5e5b3          	or	a1,a1,a2
8000287c:	00851613          	slli	a2,a0,0x8
80002880:	00f67633          	and	a2,a2,a5
80002884:	01851513          	slli	a0,a0,0x18
80002888:	00c56533          	or	a0,a0,a2
8000288c:	00b56533          	or	a0,a0,a1
80002890:	18a12823          	sw	a0,400(sp)
80002894:	00050293          	mv	t0,a0
80002898:	02944503          	lbu	a0,41(s0)
8000289c:	02844583          	lbu	a1,40(s0)
800028a0:	02b44603          	lbu	a2,43(s0)
800028a4:	02a44683          	lbu	a3,42(s0)
800028a8:	00851513          	slli	a0,a0,0x8
800028ac:	00b56533          	or	a0,a0,a1
800028b0:	00861593          	slli	a1,a2,0x8
800028b4:	00d5e5b3          	or	a1,a1,a3
800028b8:	01059593          	slli	a1,a1,0x10
800028bc:	00a5e533          	or	a0,a1,a0
800028c0:	00855593          	srli	a1,a0,0x8
800028c4:	00e5f5b3          	and	a1,a1,a4
800028c8:	01855613          	srli	a2,a0,0x18
800028cc:	00c5e5b3          	or	a1,a1,a2
800028d0:	00851613          	slli	a2,a0,0x8
800028d4:	00f67633          	and	a2,a2,a5
800028d8:	01851513          	slli	a0,a0,0x18
800028dc:	00c56533          	or	a0,a0,a2
800028e0:	00b56533          	or	a0,a0,a1
800028e4:	18a12a23          	sw	a0,404(sp)
800028e8:	00050c93          	mv	s9,a0
800028ec:	14a12e23          	sw	a0,348(sp)
800028f0:	02d44503          	lbu	a0,45(s0)
800028f4:	02c44583          	lbu	a1,44(s0)
800028f8:	02f44603          	lbu	a2,47(s0)
800028fc:	02e44683          	lbu	a3,46(s0)
80002900:	00851513          	slli	a0,a0,0x8
80002904:	00b56533          	or	a0,a0,a1
80002908:	00861593          	slli	a1,a2,0x8
8000290c:	00d5e5b3          	or	a1,a1,a3
80002910:	01059593          	slli	a1,a1,0x10
80002914:	00a5e533          	or	a0,a1,a0
80002918:	00855593          	srli	a1,a0,0x8
8000291c:	00e5f5b3          	and	a1,a1,a4
80002920:	01855613          	srli	a2,a0,0x18
80002924:	00c5e5b3          	or	a1,a1,a2
80002928:	00851613          	slli	a2,a0,0x8
8000292c:	00f67633          	and	a2,a2,a5
80002930:	01851513          	slli	a0,a0,0x18
80002934:	00c56533          	or	a0,a0,a2
80002938:	00b56fb3          	or	t6,a0,a1
8000293c:	19f12c23          	sw	t6,408(sp)
80002940:	03144503          	lbu	a0,49(s0)
80002944:	03044583          	lbu	a1,48(s0)
80002948:	03344603          	lbu	a2,51(s0)
8000294c:	03244683          	lbu	a3,50(s0)
80002950:	00851513          	slli	a0,a0,0x8
80002954:	00b56533          	or	a0,a0,a1
80002958:	00861593          	slli	a1,a2,0x8
8000295c:	00d5e5b3          	or	a1,a1,a3
80002960:	01059593          	slli	a1,a1,0x10
80002964:	00a5e533          	or	a0,a1,a0
80002968:	00855593          	srli	a1,a0,0x8
8000296c:	00e5f5b3          	and	a1,a1,a4
80002970:	01855613          	srli	a2,a0,0x18
80002974:	00c5e5b3          	or	a1,a1,a2
80002978:	00851613          	slli	a2,a0,0x8
8000297c:	00f67633          	and	a2,a2,a5
80002980:	01851513          	slli	a0,a0,0x18
80002984:	00c56533          	or	a0,a0,a2
80002988:	00b56bb3          	or	s7,a0,a1
8000298c:	19712e23          	sw	s7,412(sp)
80002990:	03544503          	lbu	a0,53(s0)
80002994:	03444583          	lbu	a1,52(s0)
80002998:	03744603          	lbu	a2,55(s0)
8000299c:	03644683          	lbu	a3,54(s0)
800029a0:	00851513          	slli	a0,a0,0x8
800029a4:	00b56533          	or	a0,a0,a1
800029a8:	00861593          	slli	a1,a2,0x8
800029ac:	00d5e5b3          	or	a1,a1,a3
800029b0:	01059593          	slli	a1,a1,0x10
800029b4:	00a5e533          	or	a0,a1,a0
800029b8:	00855593          	srli	a1,a0,0x8
800029bc:	00e5f5b3          	and	a1,a1,a4
800029c0:	01855613          	srli	a2,a0,0x18
800029c4:	00c5e5b3          	or	a1,a1,a2
800029c8:	00851613          	slli	a2,a0,0x8
800029cc:	00f67633          	and	a2,a2,a5
800029d0:	01851513          	slli	a0,a0,0x18
800029d4:	00c56533          	or	a0,a0,a2
800029d8:	00b56533          	or	a0,a0,a1
800029dc:	16a12423          	sw	a0,360(sp)
800029e0:	1aa12023          	sw	a0,416(sp)
800029e4:	03944503          	lbu	a0,57(s0)
800029e8:	03844583          	lbu	a1,56(s0)
800029ec:	03b44603          	lbu	a2,59(s0)
800029f0:	03a44683          	lbu	a3,58(s0)
800029f4:	00851513          	slli	a0,a0,0x8
800029f8:	00b56533          	or	a0,a0,a1
800029fc:	00861593          	slli	a1,a2,0x8
80002a00:	00d5e5b3          	or	a1,a1,a3
80002a04:	01059593          	slli	a1,a1,0x10
80002a08:	00a5e533          	or	a0,a1,a0
80002a0c:	00855593          	srli	a1,a0,0x8
80002a10:	00e5f5b3          	and	a1,a1,a4
80002a14:	01855613          	srli	a2,a0,0x18
80002a18:	00c5e5b3          	or	a1,a1,a2
80002a1c:	00851613          	slli	a2,a0,0x8
80002a20:	00f67633          	and	a2,a2,a5
80002a24:	01851513          	slli	a0,a0,0x18
80002a28:	00c56533          	or	a0,a0,a2
80002a2c:	00b56db3          	or	s11,a0,a1
80002a30:	1bb12223          	sw	s11,420(sp)
80002a34:	03d44503          	lbu	a0,61(s0)
80002a38:	03c44583          	lbu	a1,60(s0)
80002a3c:	03f44603          	lbu	a2,63(s0)
80002a40:	03e44683          	lbu	a3,62(s0)
80002a44:	00851513          	slli	a0,a0,0x8
80002a48:	00b56533          	or	a0,a0,a1
80002a4c:	00861593          	slli	a1,a2,0x8
80002a50:	00d5e5b3          	or	a1,a1,a3
80002a54:	01059593          	slli	a1,a1,0x10
80002a58:	00a5e533          	or	a0,a1,a0
80002a5c:	00855593          	srli	a1,a0,0x8
80002a60:	00e5f5b3          	and	a1,a1,a4
80002a64:	01855613          	srli	a2,a0,0x18
80002a68:	00c5e5b3          	or	a1,a1,a2
80002a6c:	00851613          	slli	a2,a0,0x8
80002a70:	00f67633          	and	a2,a2,a5
80002a74:	01851513          	slli	a0,a0,0x18
80002a78:	00c56533          	or	a0,a0,a2
80002a7c:	00b56d33          	or	s10,a0,a1
80002a80:	1ba12423          	sw	s10,424(sp)
80002a84:	17812e03          	lw	t3,376(sp)
80002a88:	17412883          	lw	a7,372(sp)
80002a8c:	17012f03          	lw	t5,368(sp)
80002a90:	16c12683          	lw	a3,364(sp)
80002a94:	16d12223          	sw	a3,356(sp)
80002a98:	17c12c03          	lw	s8,380(sp)
80002a9c:	006ad513          	srli	a0,s5,0x6
80002aa0:	01aa9593          	slli	a1,s5,0x1a
80002aa4:	00a5e533          	or	a0,a1,a0
80002aa8:	00bad593          	srli	a1,s5,0xb
80002aac:	015a9613          	slli	a2,s5,0x15
80002ab0:	00b665b3          	or	a1,a2,a1
80002ab4:	00b54533          	xor	a0,a0,a1
80002ab8:	019ad593          	srli	a1,s5,0x19
80002abc:	007a9613          	slli	a2,s5,0x7
80002ac0:	00b665b3          	or	a1,a2,a1
80002ac4:	00b54533          	xor	a0,a0,a1
80002ac8:	016845b3          	xor	a1,a6,s6
80002acc:	0155f5b3          	and	a1,a1,s5
80002ad0:	0165c5b3          	xor	a1,a1,s6
80002ad4:	00ba05b3          	add	a1,s4,a1
80002ad8:	00a58533          	add	a0,a1,a0
80002adc:	00d50533          	add	a0,a0,a3
80002ae0:	10412583          	lw	a1,260(sp)
80002ae4:	00b50533          	add	a0,a0,a1
80002ae8:	0024d593          	srli	a1,s1,0x2
80002aec:	01e49613          	slli	a2,s1,0x1e
80002af0:	00b665b3          	or	a1,a2,a1
80002af4:	00d4d613          	srli	a2,s1,0xd
80002af8:	01349693          	slli	a3,s1,0x13
80002afc:	00c6e633          	or	a2,a3,a2
80002b00:	00c5c5b3          	xor	a1,a1,a2
80002b04:	0164d613          	srli	a2,s1,0x16
80002b08:	00a49693          	slli	a3,s1,0xa
80002b0c:	00c6e633          	or	a2,a3,a2
80002b10:	00c5c5b3          	xor	a1,a1,a2
80002b14:	0124f633          	and	a2,s1,s2
80002b18:	01d4f6b3          	and	a3,s1,t4
80002b1c:	01d97733          	and	a4,s2,t4
80002b20:	00e64733          	xor	a4,a2,a4
80002b24:	00d746b3          	xor	a3,a4,a3
80002b28:	00b685b3          	add	a1,a3,a1
80002b2c:	00048b13          	mv	s6,s1
80002b30:	00a58a33          	add	s4,a1,a0
80002b34:	00750533          	add	a0,a0,t2
80002b38:	00655693          	srli	a3,a0,0x6
80002b3c:	01a51713          	slli	a4,a0,0x1a
80002b40:	00d766b3          	or	a3,a4,a3
80002b44:	00b55713          	srli	a4,a0,0xb
80002b48:	01551793          	slli	a5,a0,0x15
80002b4c:	00e7e733          	or	a4,a5,a4
80002b50:	00e6c6b3          	xor	a3,a3,a4
80002b54:	01955713          	srli	a4,a0,0x19
80002b58:	00751793          	slli	a5,a0,0x7
80002b5c:	00e7e733          	or	a4,a5,a4
80002b60:	00e6c6b3          	xor	a3,a3,a4
80002b64:	010ac733          	xor	a4,s5,a6
80002b68:	00e57733          	and	a4,a0,a4
80002b6c:	01074733          	xor	a4,a4,a6
80002b70:	15812583          	lw	a1,344(sp)
80002b74:	01e587b3          	add	a5,a1,t5
80002b78:	00e78733          	add	a4,a5,a4
80002b7c:	00d706b3          	add	a3,a4,a3
80002b80:	10012583          	lw	a1,256(sp)
80002b84:	00b686b3          	add	a3,a3,a1
80002b88:	002a5713          	srli	a4,s4,0x2
80002b8c:	01ea1793          	slli	a5,s4,0x1e
80002b90:	00e7e733          	or	a4,a5,a4
80002b94:	00da5793          	srli	a5,s4,0xd
80002b98:	013a1493          	slli	s1,s4,0x13
80002b9c:	00f4e7b3          	or	a5,s1,a5
80002ba0:	00f74733          	xor	a4,a4,a5
80002ba4:	016a5793          	srli	a5,s4,0x16
80002ba8:	00aa1493          	slli	s1,s4,0xa
80002bac:	00f4e7b3          	or	a5,s1,a5
80002bb0:	00f74733          	xor	a4,a4,a5
80002bb4:	012b47b3          	xor	a5,s6,s2
80002bb8:	00fa77b3          	and	a5,s4,a5
80002bbc:	00c7c633          	xor	a2,a5,a2
80002bc0:	00c70633          	add	a2,a4,a2
80002bc4:	00d60633          	add	a2,a2,a3
80002bc8:	01d68433          	add	s0,a3,t4
80002bcc:	00645693          	srli	a3,s0,0x6
80002bd0:	01a41713          	slli	a4,s0,0x1a
80002bd4:	00d766b3          	or	a3,a4,a3
80002bd8:	00b45713          	srli	a4,s0,0xb
80002bdc:	01541793          	slli	a5,s0,0x15
80002be0:	00e7e733          	or	a4,a5,a4
80002be4:	00e6c6b3          	xor	a3,a3,a4
80002be8:	01945713          	srli	a4,s0,0x19
80002bec:	00741793          	slli	a5,s0,0x7
80002bf0:	00e7e733          	or	a4,a5,a4
80002bf4:	00e6c6b3          	xor	a3,a3,a4
80002bf8:	01554733          	xor	a4,a0,s5
80002bfc:	00e47733          	and	a4,s0,a4
80002c00:	01574733          	xor	a4,a4,s5
80002c04:	13512423          	sw	s5,296(sp)
80002c08:	011807b3          	add	a5,a6,a7
80002c0c:	00e78733          	add	a4,a5,a4
80002c10:	00d706b3          	add	a3,a4,a3
80002c14:	0fc12583          	lw	a1,252(sp)
80002c18:	00b686b3          	add	a3,a3,a1
80002c1c:	00265713          	srli	a4,a2,0x2
80002c20:	01e61793          	slli	a5,a2,0x1e
80002c24:	00e7e733          	or	a4,a5,a4
80002c28:	00d65793          	srli	a5,a2,0xd
80002c2c:	01361493          	slli	s1,a2,0x13
80002c30:	00f4e7b3          	or	a5,s1,a5
80002c34:	00f74733          	xor	a4,a4,a5
80002c38:	01665793          	srli	a5,a2,0x16
80002c3c:	00a61493          	slli	s1,a2,0xa
80002c40:	00f4e7b3          	or	a5,s1,a5
80002c44:	00f74733          	xor	a4,a4,a5
80002c48:	01467eb3          	and	t4,a2,s4
80002c4c:	016674b3          	and	s1,a2,s6
80002c50:	016a77b3          	and	a5,s4,s6
80002c54:	13612223          	sw	s6,292(sp)
80002c58:	00fec7b3          	xor	a5,t4,a5
80002c5c:	0097c7b3          	xor	a5,a5,s1
80002c60:	00e78733          	add	a4,a5,a4
80002c64:	00d703b3          	add	t2,a4,a3
80002c68:	012686b3          	add	a3,a3,s2
80002c6c:	0066d713          	srli	a4,a3,0x6
80002c70:	01a69793          	slli	a5,a3,0x1a
80002c74:	00e7e733          	or	a4,a5,a4
80002c78:	00b6d793          	srli	a5,a3,0xb
80002c7c:	01569493          	slli	s1,a3,0x15
80002c80:	00f4e7b3          	or	a5,s1,a5
80002c84:	00f74733          	xor	a4,a4,a5
80002c88:	0196d793          	srli	a5,a3,0x19
80002c8c:	00769493          	slli	s1,a3,0x7
80002c90:	00f4e7b3          	or	a5,s1,a5
80002c94:	00f74733          	xor	a4,a4,a5
80002c98:	00a447b3          	xor	a5,s0,a0
80002c9c:	00f6f7b3          	and	a5,a3,a5
80002ca0:	00a7c7b3          	xor	a5,a5,a0
80002ca4:	01ca84b3          	add	s1,s5,t3
80002ca8:	00f487b3          	add	a5,s1,a5
80002cac:	00e78733          	add	a4,a5,a4
80002cb0:	0f812583          	lw	a1,248(sp)
80002cb4:	00b707b3          	add	a5,a4,a1
80002cb8:	0023d713          	srli	a4,t2,0x2
80002cbc:	01e39493          	slli	s1,t2,0x1e
80002cc0:	00e4e933          	or	s2,s1,a4
80002cc4:	00d3d493          	srli	s1,t2,0xd
80002cc8:	01339713          	slli	a4,t2,0x13
80002ccc:	00976733          	or	a4,a4,s1
80002cd0:	00e94933          	xor	s2,s2,a4
80002cd4:	0163d493          	srli	s1,t2,0x16
80002cd8:	00a39713          	slli	a4,t2,0xa
80002cdc:	00976733          	or	a4,a4,s1
80002ce0:	00e94733          	xor	a4,s2,a4
80002ce4:	014644b3          	xor	s1,a2,s4
80002ce8:	0093f4b3          	and	s1,t2,s1
80002cec:	01d4c4b3          	xor	s1,s1,t4
80002cf0:	00970733          	add	a4,a4,s1
80002cf4:	00f70733          	add	a4,a4,a5
80002cf8:	016787b3          	add	a5,a5,s6
80002cfc:	0067d493          	srli	s1,a5,0x6
80002d00:	01a79593          	slli	a1,a5,0x1a
80002d04:	0095eeb3          	or	t4,a1,s1
80002d08:	00b7d493          	srli	s1,a5,0xb
80002d0c:	01579593          	slli	a1,a5,0x15
80002d10:	0095e5b3          	or	a1,a1,s1
80002d14:	00beceb3          	xor	t4,t4,a1
80002d18:	0197d493          	srli	s1,a5,0x19
80002d1c:	00779593          	slli	a1,a5,0x7
80002d20:	0095e5b3          	or	a1,a1,s1
80002d24:	00bec5b3          	xor	a1,t4,a1
80002d28:	0086c4b3          	xor	s1,a3,s0
80002d2c:	0097f4b3          	and	s1,a5,s1
80002d30:	0084c4b3          	xor	s1,s1,s0
80002d34:	01850533          	add	a0,a0,s8
80002d38:	00950533          	add	a0,a0,s1
80002d3c:	00b50eb3          	add	t4,a0,a1
80002d40:	00275593          	srli	a1,a4,0x2
80002d44:	01e71493          	slli	s1,a4,0x1e
80002d48:	00b4e5b3          	or	a1,s1,a1
80002d4c:	00d75493          	srli	s1,a4,0xd
80002d50:	01371513          	slli	a0,a4,0x13
80002d54:	00956533          	or	a0,a0,s1
80002d58:	00a5c533          	xor	a0,a1,a0
80002d5c:	01675593          	srli	a1,a4,0x16
80002d60:	00a71493          	slli	s1,a4,0xa
80002d64:	00b4e5b3          	or	a1,s1,a1
80002d68:	00b54533          	xor	a0,a0,a1
80002d6c:	00777933          	and	s2,a4,t2
80002d70:	00c3f4b3          	and	s1,t2,a2
80002d74:	009944b3          	xor	s1,s2,s1
80002d78:	00c775b3          	and	a1,a4,a2
80002d7c:	00b4c5b3          	xor	a1,s1,a1
80002d80:	0f412483          	lw	s1,244(sp)
80002d84:	009e84b3          	add	s1,t4,s1
80002d88:	00a58533          	add	a0,a1,a0
80002d8c:	00950eb3          	add	t4,a0,s1
80002d90:	014484b3          	add	s1,s1,s4
80002d94:	0064d513          	srli	a0,s1,0x6
80002d98:	01a49593          	slli	a1,s1,0x1a
80002d9c:	00a5ea33          	or	s4,a1,a0
80002da0:	00b4d593          	srli	a1,s1,0xb
80002da4:	01549513          	slli	a0,s1,0x15
80002da8:	00b56533          	or	a0,a0,a1
80002dac:	00aa4ab3          	xor	s5,s4,a0
80002db0:	18012a03          	lw	s4,384(sp)
80002db4:	0194d593          	srli	a1,s1,0x19
80002db8:	00749513          	slli	a0,s1,0x7
80002dbc:	00b56533          	or	a0,a0,a1
80002dc0:	00aac533          	xor	a0,s5,a0
80002dc4:	008a05b3          	add	a1,s4,s0
80002dc8:	00d7c433          	xor	s0,a5,a3
80002dcc:	0084f433          	and	s0,s1,s0
80002dd0:	00d44433          	xor	s0,s0,a3
80002dd4:	008585b3          	add	a1,a1,s0
80002dd8:	00a58ab3          	add	s5,a1,a0
80002ddc:	002ed593          	srli	a1,t4,0x2
80002de0:	01ee9413          	slli	s0,t4,0x1e
80002de4:	00b465b3          	or	a1,s0,a1
80002de8:	00ded413          	srli	s0,t4,0xd
80002dec:	013e9513          	slli	a0,t4,0x13
80002df0:	00856533          	or	a0,a0,s0
80002df4:	00a5c533          	xor	a0,a1,a0
80002df8:	016ed593          	srli	a1,t4,0x16
80002dfc:	00ae9413          	slli	s0,t4,0xa
80002e00:	00b465b3          	or	a1,s0,a1
80002e04:	00b54533          	xor	a0,a0,a1
80002e08:	007745b3          	xor	a1,a4,t2
80002e0c:	00bef5b3          	and	a1,t4,a1
80002e10:	0125c5b3          	xor	a1,a1,s2
80002e14:	0f012403          	lw	s0,240(sp)
80002e18:	008a8433          	add	s0,s5,s0
80002e1c:	00b50533          	add	a0,a0,a1
80002e20:	008505b3          	add	a1,a0,s0
80002e24:	00c40533          	add	a0,s0,a2
80002e28:	00655613          	srli	a2,a0,0x6
80002e2c:	01a51413          	slli	s0,a0,0x1a
80002e30:	00c46933          	or	s2,s0,a2
80002e34:	00b55413          	srli	s0,a0,0xb
80002e38:	01551613          	slli	a2,a0,0x15
80002e3c:	00866633          	or	a2,a2,s0
80002e40:	00c94933          	xor	s2,s2,a2
80002e44:	01955413          	srli	s0,a0,0x19
80002e48:	00751613          	slli	a2,a0,0x7
80002e4c:	00866633          	or	a2,a2,s0
80002e50:	00d306b3          	add	a3,t1,a3
80002e54:	00c94633          	xor	a2,s2,a2
80002e58:	00f4c433          	xor	s0,s1,a5
80002e5c:	00857433          	and	s0,a0,s0
80002e60:	00f44433          	xor	s0,s0,a5
80002e64:	008686b3          	add	a3,a3,s0
80002e68:	00c68933          	add	s2,a3,a2
80002e6c:	0025d693          	srli	a3,a1,0x2
80002e70:	01e59413          	slli	s0,a1,0x1e
80002e74:	00d466b3          	or	a3,s0,a3
80002e78:	00d5d413          	srli	s0,a1,0xd
80002e7c:	01359613          	slli	a2,a1,0x13
80002e80:	00866633          	or	a2,a2,s0
80002e84:	00c6c633          	xor	a2,a3,a2
80002e88:	0165d693          	srli	a3,a1,0x16
80002e8c:	00a59413          	slli	s0,a1,0xa
80002e90:	00d466b3          	or	a3,s0,a3
80002e94:	00d64633          	xor	a2,a2,a3
80002e98:	01d5fab3          	and	s5,a1,t4
80002e9c:	00eef433          	and	s0,t4,a4
80002ea0:	008ac433          	xor	s0,s5,s0
80002ea4:	00e5f6b3          	and	a3,a1,a4
80002ea8:	00d446b3          	xor	a3,s0,a3
80002eac:	00c68633          	add	a2,a3,a2
80002eb0:	0ec12683          	lw	a3,236(sp)
80002eb4:	00d906b3          	add	a3,s2,a3
80002eb8:	00d60933          	add	s2,a2,a3
80002ebc:	00768433          	add	s0,a3,t2
80002ec0:	00645693          	srli	a3,s0,0x6
80002ec4:	01a41613          	slli	a2,s0,0x1a
80002ec8:	00d663b3          	or	t2,a2,a3
80002ecc:	00b45693          	srli	a3,s0,0xb
80002ed0:	01541613          	slli	a2,s0,0x15
80002ed4:	00d66633          	or	a2,a2,a3
80002ed8:	00c3c3b3          	xor	t2,t2,a2
80002edc:	01945693          	srli	a3,s0,0x19
80002ee0:	00741613          	slli	a2,s0,0x7
80002ee4:	00d66633          	or	a2,a2,a3
80002ee8:	00c3c633          	xor	a2,t2,a2
80002eec:	00f986b3          	add	a3,s3,a5
80002ef0:	009547b3          	xor	a5,a0,s1
80002ef4:	00f477b3          	and	a5,s0,a5
80002ef8:	0097c7b3          	xor	a5,a5,s1
80002efc:	00f686b3          	add	a3,a3,a5
80002f00:	00c683b3          	add	t2,a3,a2
80002f04:	00295693          	srli	a3,s2,0x2
80002f08:	01e91793          	slli	a5,s2,0x1e
80002f0c:	00d7e6b3          	or	a3,a5,a3
80002f10:	00d95793          	srli	a5,s2,0xd
80002f14:	01391613          	slli	a2,s2,0x13
80002f18:	00f66633          	or	a2,a2,a5
80002f1c:	00c6c633          	xor	a2,a3,a2
80002f20:	01695693          	srli	a3,s2,0x16
80002f24:	00a91793          	slli	a5,s2,0xa
80002f28:	00d7e6b3          	or	a3,a5,a3
80002f2c:	00d64633          	xor	a2,a2,a3
80002f30:	01d5c6b3          	xor	a3,a1,t4
80002f34:	00d976b3          	and	a3,s2,a3
80002f38:	0156c6b3          	xor	a3,a3,s5
80002f3c:	0e812783          	lw	a5,232(sp)
80002f40:	00f387b3          	add	a5,t2,a5
80002f44:	00d60633          	add	a2,a2,a3
80002f48:	00f606b3          	add	a3,a2,a5
80002f4c:	00e787b3          	add	a5,a5,a4
80002f50:	0067d613          	srli	a2,a5,0x6
80002f54:	01a79713          	slli	a4,a5,0x1a
80002f58:	00c763b3          	or	t2,a4,a2
80002f5c:	00b7d713          	srli	a4,a5,0xb
80002f60:	01579613          	slli	a2,a5,0x15
80002f64:	00e66633          	or	a2,a2,a4
80002f68:	00c3c3b3          	xor	t2,t2,a2
80002f6c:	0197d713          	srli	a4,a5,0x19
80002f70:	00779613          	slli	a2,a5,0x7
80002f74:	00e66633          	or	a2,a2,a4
80002f78:	00908733          	add	a4,ra,s1
80002f7c:	00c3c633          	xor	a2,t2,a2
80002f80:	00a444b3          	xor	s1,s0,a0
80002f84:	0097f4b3          	and	s1,a5,s1
80002f88:	00a4c4b3          	xor	s1,s1,a0
80002f8c:	00970733          	add	a4,a4,s1
80002f90:	00c703b3          	add	t2,a4,a2
80002f94:	0026d713          	srli	a4,a3,0x2
80002f98:	01e69493          	slli	s1,a3,0x1e
80002f9c:	00e4e733          	or	a4,s1,a4
80002fa0:	00d6d493          	srli	s1,a3,0xd
80002fa4:	01369613          	slli	a2,a3,0x13
80002fa8:	00966633          	or	a2,a2,s1
80002fac:	00c74633          	xor	a2,a4,a2
80002fb0:	0166d713          	srli	a4,a3,0x16
80002fb4:	00a69493          	slli	s1,a3,0xa
80002fb8:	00e4e733          	or	a4,s1,a4
80002fbc:	00e64633          	xor	a2,a2,a4
80002fc0:	0126fab3          	and	s5,a3,s2
80002fc4:	00b97733          	and	a4,s2,a1
80002fc8:	00eac733          	xor	a4,s5,a4
80002fcc:	00b6f4b3          	and	s1,a3,a1
80002fd0:	00974733          	xor	a4,a4,s1
80002fd4:	00c70633          	add	a2,a4,a2
80002fd8:	0e412703          	lw	a4,228(sp)
80002fdc:	00e38733          	add	a4,t2,a4
80002fe0:	00e603b3          	add	t2,a2,a4
80002fe4:	01d70733          	add	a4,a4,t4
80002fe8:	00675613          	srli	a2,a4,0x6
80002fec:	01a71493          	slli	s1,a4,0x1a
80002ff0:	00c4eeb3          	or	t4,s1,a2
80002ff4:	00b75493          	srli	s1,a4,0xb
80002ff8:	01571613          	slli	a2,a4,0x15
80002ffc:	00966633          	or	a2,a2,s1
80003000:	00ceceb3          	xor	t4,t4,a2
80003004:	01975493          	srli	s1,a4,0x19
80003008:	00771613          	slli	a2,a4,0x7
8000300c:	00966633          	or	a2,a2,s1
80003010:	00cec633          	xor	a2,t4,a2
80003014:	00028313          	mv	t1,t0
80003018:	14512223          	sw	t0,324(sp)
8000301c:	00a28533          	add	a0,t0,a0
80003020:	0087c4b3          	xor	s1,a5,s0
80003024:	009774b3          	and	s1,a4,s1
80003028:	0084c4b3          	xor	s1,s1,s0
8000302c:	00950533          	add	a0,a0,s1
80003030:	00c50eb3          	add	t4,a0,a2
80003034:	0023d613          	srli	a2,t2,0x2
80003038:	01e39493          	slli	s1,t2,0x1e
8000303c:	00c4e633          	or	a2,s1,a2
80003040:	00d3d493          	srli	s1,t2,0xd
80003044:	01339513          	slli	a0,t2,0x13
80003048:	00956533          	or	a0,a0,s1
8000304c:	00a64533          	xor	a0,a2,a0
80003050:	0163d613          	srli	a2,t2,0x16
80003054:	00a39493          	slli	s1,t2,0xa
80003058:	00c4e633          	or	a2,s1,a2
8000305c:	00c544b3          	xor	s1,a0,a2
80003060:	0126c633          	xor	a2,a3,s2
80003064:	00c3f633          	and	a2,t2,a2
80003068:	01564633          	xor	a2,a2,s5
8000306c:	0e012503          	lw	a0,224(sp)
80003070:	00ae8533          	add	a0,t4,a0
80003074:	00c48633          	add	a2,s1,a2
80003078:	00a604b3          	add	s1,a2,a0
8000307c:	00b505b3          	add	a1,a0,a1
80003080:	0065d513          	srli	a0,a1,0x6
80003084:	01a59613          	slli	a2,a1,0x1a
80003088:	00a66eb3          	or	t4,a2,a0
8000308c:	00b5d613          	srli	a2,a1,0xb
80003090:	01559513          	slli	a0,a1,0x15
80003094:	00c56533          	or	a0,a0,a2
80003098:	00aeceb3          	xor	t4,t4,a0
8000309c:	0195d613          	srli	a2,a1,0x19
800030a0:	00759513          	slli	a0,a1,0x7
800030a4:	00c56533          	or	a0,a0,a2
800030a8:	008c8633          	add	a2,s9,s0
800030ac:	00aec533          	xor	a0,t4,a0
800030b0:	00f74433          	xor	s0,a4,a5
800030b4:	0085f433          	and	s0,a1,s0
800030b8:	00f44433          	xor	s0,s0,a5
800030bc:	00860633          	add	a2,a2,s0
800030c0:	00a60eb3          	add	t4,a2,a0
800030c4:	0024d613          	srli	a2,s1,0x2
800030c8:	01e49413          	slli	s0,s1,0x1e
800030cc:	00c46633          	or	a2,s0,a2
800030d0:	00d4d413          	srli	s0,s1,0xd
800030d4:	01349513          	slli	a0,s1,0x13
800030d8:	00856533          	or	a0,a0,s0
800030dc:	00a64533          	xor	a0,a2,a0
800030e0:	0164d613          	srli	a2,s1,0x16
800030e4:	00a49413          	slli	s0,s1,0xa
800030e8:	00c46633          	or	a2,s0,a2
800030ec:	00c54533          	xor	a0,a0,a2
800030f0:	0074fab3          	and	s5,s1,t2
800030f4:	00d3f433          	and	s0,t2,a3
800030f8:	008ac433          	xor	s0,s5,s0
800030fc:	00d4f633          	and	a2,s1,a3
80003100:	00c44633          	xor	a2,s0,a2
80003104:	00a60533          	add	a0,a2,a0
80003108:	0dc12603          	lw	a2,220(sp)
8000310c:	00ce8633          	add	a2,t4,a2
80003110:	00c50eb3          	add	t4,a0,a2
80003114:	01260533          	add	a0,a2,s2
80003118:	00655613          	srli	a2,a0,0x6
8000311c:	01a51413          	slli	s0,a0,0x1a
80003120:	00c46933          	or	s2,s0,a2
80003124:	00b55413          	srli	s0,a0,0xb
80003128:	01551613          	slli	a2,a0,0x15
8000312c:	00866633          	or	a2,a2,s0
80003130:	00c94933          	xor	s2,s2,a2
80003134:	01955413          	srli	s0,a0,0x19
80003138:	00751613          	slli	a2,a0,0x7
8000313c:	00866633          	or	a2,a2,s0
80003140:	00c94633          	xor	a2,s2,a2
80003144:	000f8293          	mv	t0,t6
80003148:	11f12e23          	sw	t6,284(sp)
8000314c:	00ff87b3          	add	a5,t6,a5
80003150:	00e5c433          	xor	s0,a1,a4
80003154:	00857433          	and	s0,a0,s0
80003158:	00e44433          	xor	s0,s0,a4
8000315c:	008787b3          	add	a5,a5,s0
80003160:	00c78933          	add	s2,a5,a2
80003164:	002ed793          	srli	a5,t4,0x2
80003168:	01ee9413          	slli	s0,t4,0x1e
8000316c:	00f467b3          	or	a5,s0,a5
80003170:	00ded413          	srli	s0,t4,0xd
80003174:	013e9613          	slli	a2,t4,0x13
80003178:	00866633          	or	a2,a2,s0
8000317c:	00c7c633          	xor	a2,a5,a2
80003180:	016ed793          	srli	a5,t4,0x16
80003184:	00ae9413          	slli	s0,t4,0xa
80003188:	00f467b3          	or	a5,s0,a5
8000318c:	00f64633          	xor	a2,a2,a5
80003190:	0074c7b3          	xor	a5,s1,t2
80003194:	00fef7b3          	and	a5,t4,a5
80003198:	0157c7b3          	xor	a5,a5,s5
8000319c:	0d812403          	lw	s0,216(sp)
800031a0:	00890433          	add	s0,s2,s0
800031a4:	00f60633          	add	a2,a2,a5
800031a8:	00860633          	add	a2,a2,s0
800031ac:	00d407b3          	add	a5,s0,a3
800031b0:	0067d693          	srli	a3,a5,0x6
800031b4:	01a79413          	slli	s0,a5,0x1a
800031b8:	00d46933          	or	s2,s0,a3
800031bc:	00b7d413          	srli	s0,a5,0xb
800031c0:	01579693          	slli	a3,a5,0x15
800031c4:	0086e6b3          	or	a3,a3,s0
800031c8:	00d94933          	xor	s2,s2,a3
800031cc:	0197d413          	srli	s0,a5,0x19
800031d0:	00779693          	slli	a3,a5,0x7
800031d4:	0086e6b3          	or	a3,a3,s0
800031d8:	000b8f93          	mv	t6,s7
800031dc:	00eb8733          	add	a4,s7,a4
800031e0:	00d946b3          	xor	a3,s2,a3
800031e4:	00b54433          	xor	s0,a0,a1
800031e8:	0087f433          	and	s0,a5,s0
800031ec:	00b44433          	xor	s0,s0,a1
800031f0:	00870733          	add	a4,a4,s0
800031f4:	00d70933          	add	s2,a4,a3
800031f8:	00265713          	srli	a4,a2,0x2
800031fc:	01e61413          	slli	s0,a2,0x1e
80003200:	00e46733          	or	a4,s0,a4
80003204:	00d65413          	srli	s0,a2,0xd
80003208:	01361693          	slli	a3,a2,0x13
8000320c:	0086e6b3          	or	a3,a3,s0
80003210:	00d746b3          	xor	a3,a4,a3
80003214:	01665713          	srli	a4,a2,0x16
80003218:	00a61413          	slli	s0,a2,0xa
8000321c:	00e46733          	or	a4,s0,a4
80003220:	00e6c6b3          	xor	a3,a3,a4
80003224:	01d67ab3          	and	s5,a2,t4
80003228:	009ef433          	and	s0,t4,s1
8000322c:	008ac433          	xor	s0,s5,s0
80003230:	00967733          	and	a4,a2,s1
80003234:	00e44733          	xor	a4,s0,a4
80003238:	00d706b3          	add	a3,a4,a3
8000323c:	0d412703          	lw	a4,212(sp)
80003240:	00e90733          	add	a4,s2,a4
80003244:	00e68833          	add	a6,a3,a4
80003248:	00770b33          	add	s6,a4,t2
8000324c:	006b5713          	srli	a4,s6,0x6
80003250:	01ab1413          	slli	s0,s6,0x1a
80003254:	00e46733          	or	a4,s0,a4
80003258:	00bb5413          	srli	s0,s6,0xb
8000325c:	015b1693          	slli	a3,s6,0x15
80003260:	0086e6b3          	or	a3,a3,s0
80003264:	00d746b3          	xor	a3,a4,a3
80003268:	019b5713          	srli	a4,s6,0x19
8000326c:	007b1413          	slli	s0,s6,0x7
80003270:	00e46733          	or	a4,s0,a4
80003274:	00e6c6b3          	xor	a3,a3,a4
80003278:	16812703          	lw	a4,360(sp)
8000327c:	00b705b3          	add	a1,a4,a1
80003280:	00a7c733          	xor	a4,a5,a0
80003284:	00eb7733          	and	a4,s6,a4
80003288:	00a74733          	xor	a4,a4,a0
8000328c:	00e585b3          	add	a1,a1,a4
80003290:	00d585b3          	add	a1,a1,a3
80003294:	00285693          	srli	a3,a6,0x2
80003298:	01e81713          	slli	a4,a6,0x1e
8000329c:	00d766b3          	or	a3,a4,a3
800032a0:	00d85713          	srli	a4,a6,0xd
800032a4:	01381413          	slli	s0,a6,0x13
800032a8:	00e46733          	or	a4,s0,a4
800032ac:	00e6c6b3          	xor	a3,a3,a4
800032b0:	01685713          	srli	a4,a6,0x16
800032b4:	00a81413          	slli	s0,a6,0xa
800032b8:	00e46733          	or	a4,s0,a4
800032bc:	00e6c6b3          	xor	a3,a3,a4
800032c0:	01d64733          	xor	a4,a2,t4
800032c4:	00e87733          	and	a4,a6,a4
800032c8:	01574733          	xor	a4,a4,s5
800032cc:	0d012403          	lw	s0,208(sp)
800032d0:	00858433          	add	s0,a1,s0
800032d4:	00e685b3          	add	a1,a3,a4
800032d8:	00858bb3          	add	s7,a1,s0
800032dc:	009404b3          	add	s1,s0,s1
800032e0:	0064d693          	srli	a3,s1,0x6
800032e4:	01a49713          	slli	a4,s1,0x1a
800032e8:	00d766b3          	or	a3,a4,a3
800032ec:	00b4d713          	srli	a4,s1,0xb
800032f0:	01549413          	slli	s0,s1,0x15
800032f4:	00e46733          	or	a4,s0,a4
800032f8:	00e6c6b3          	xor	a3,a3,a4
800032fc:	0194d713          	srli	a4,s1,0x19
80003300:	00749413          	slli	s0,s1,0x7
80003304:	00e46733          	or	a4,s0,a4
80003308:	00ad8533          	add	a0,s11,a0
8000330c:	00e6c6b3          	xor	a3,a3,a4
80003310:	00fb4733          	xor	a4,s6,a5
80003314:	00e4f733          	and	a4,s1,a4
80003318:	00f74733          	xor	a4,a4,a5
8000331c:	00e50533          	add	a0,a0,a4
80003320:	00d503b3          	add	t2,a0,a3
80003324:	002bd693          	srli	a3,s7,0x2
80003328:	01eb9713          	slli	a4,s7,0x1e
8000332c:	00d766b3          	or	a3,a4,a3
80003330:	00dbd713          	srli	a4,s7,0xd
80003334:	013b9413          	slli	s0,s7,0x13
80003338:	00e46733          	or	a4,s0,a4
8000333c:	00e6c6b3          	xor	a3,a3,a4
80003340:	016bd713          	srli	a4,s7,0x16
80003344:	00ab9413          	slli	s0,s7,0xa
80003348:	00e46733          	or	a4,s0,a4
8000334c:	00e6c6b3          	xor	a3,a3,a4
80003350:	010bf933          	and	s2,s7,a6
80003354:	00c87733          	and	a4,a6,a2
80003358:	00e94733          	xor	a4,s2,a4
8000335c:	00cbf533          	and	a0,s7,a2
80003360:	00a74533          	xor	a0,a4,a0
80003364:	00d50533          	add	a0,a0,a3
80003368:	0cc12583          	lw	a1,204(sp)
8000336c:	00b386b3          	add	a3,t2,a1
80003370:	00d503b3          	add	t2,a0,a3
80003374:	01d68733          	add	a4,a3,t4
80003378:	00675513          	srli	a0,a4,0x6
8000337c:	01a71693          	slli	a3,a4,0x1a
80003380:	00a6e533          	or	a0,a3,a0
80003384:	00b75693          	srli	a3,a4,0xb
80003388:	01571413          	slli	s0,a4,0x15
8000338c:	00d466b3          	or	a3,s0,a3
80003390:	00d54533          	xor	a0,a0,a3
80003394:	01975693          	srli	a3,a4,0x19
80003398:	00771413          	slli	s0,a4,0x7
8000339c:	00d466b3          	or	a3,s0,a3
800033a0:	00d54533          	xor	a0,a0,a3
800033a4:	00fd06b3          	add	a3,s10,a5
800033a8:	0164c7b3          	xor	a5,s1,s6
800033ac:	00f777b3          	and	a5,a4,a5
800033b0:	0167c7b3          	xor	a5,a5,s6
800033b4:	00f686b3          	add	a3,a3,a5
800033b8:	00a68533          	add	a0,a3,a0
800033bc:	0023d693          	srli	a3,t2,0x2
800033c0:	01e39793          	slli	a5,t2,0x1e
800033c4:	00d7e6b3          	or	a3,a5,a3
800033c8:	00d3d793          	srli	a5,t2,0xd
800033cc:	01339413          	slli	s0,t2,0x13
800033d0:	00f467b3          	or	a5,s0,a5
800033d4:	00f6c6b3          	xor	a3,a3,a5
800033d8:	0163d793          	srli	a5,t2,0x16
800033dc:	00a39413          	slli	s0,t2,0xa
800033e0:	00f467b3          	or	a5,s0,a5
800033e4:	00f6c6b3          	xor	a3,a3,a5
800033e8:	010bc7b3          	xor	a5,s7,a6
800033ec:	00f3f7b3          	and	a5,t2,a5
800033f0:	0127c7b3          	xor	a5,a5,s2
800033f4:	0c812583          	lw	a1,200(sp)
800033f8:	00b50533          	add	a0,a0,a1
800033fc:	00f686b3          	add	a3,a3,a5
80003400:	00a68eb3          	add	t4,a3,a0
80003404:	00c50633          	add	a2,a0,a2
80003408:	000c0993          	mv	s3,s8
8000340c:	007c5513          	srli	a0,s8,0x7
80003410:	019c1693          	slli	a3,s8,0x19
80003414:	00a6e933          	or	s2,a3,a0
80003418:	007e5693          	srli	a3,t3,0x7
8000341c:	019e1793          	slli	a5,t3,0x19
80003420:	00d7eab3          	or	s5,a5,a3
80003424:	0078d793          	srli	a5,a7,0x7
80003428:	01989413          	slli	s0,a7,0x19
8000342c:	00f467b3          	or	a5,s0,a5
80003430:	007f5413          	srli	s0,t5,0x7
80003434:	019f1513          	slli	a0,t5,0x19
80003438:	00856533          	or	a0,a0,s0
8000343c:	012c5413          	srli	s0,s8,0x12
80003440:	00ec1693          	slli	a3,s8,0xe
80003444:	0086e6b3          	or	a3,a3,s0
80003448:	012e5413          	srli	s0,t3,0x12
8000344c:	00ee1093          	slli	ra,t3,0xe
80003450:	0080e0b3          	or	ra,ra,s0
80003454:	0128d413          	srli	s0,a7,0x12
80003458:	00e89c93          	slli	s9,a7,0xe
8000345c:	008cecb3          	or	s9,s9,s0
80003460:	012f5413          	srli	s0,t5,0x12
80003464:	00ef1c13          	slli	s8,t5,0xe
80003468:	008c6c33          	or	s8,s8,s0
8000346c:	0126c6b3          	xor	a3,a3,s2
80003470:	0150c433          	xor	s0,ra,s5
80003474:	00fcc7b3          	xor	a5,s9,a5
80003478:	00ac4533          	xor	a0,s8,a0
8000347c:	0039d593          	srli	a1,s3,0x3
80003480:	00b6c5b3          	xor	a1,a3,a1
80003484:	003e5693          	srli	a3,t3,0x3
80003488:	00d446b3          	xor	a3,s0,a3
8000348c:	0038d413          	srli	s0,a7,0x3
80003490:	0087c7b3          	xor	a5,a5,s0
80003494:	003f5413          	srli	s0,t5,0x3
80003498:	00854533          	xor	a0,a0,s0
8000349c:	01c58c33          	add	s8,a1,t3
800034a0:	011688b3          	add	a7,a3,a7
800034a4:	01e787b3          	add	a5,a5,t5
800034a8:	16412583          	lw	a1,356(sp)
800034ac:	00b50533          	add	a0,a0,a1
800034b0:	011dd413          	srli	s0,s11,0x11
800034b4:	00fd9593          	slli	a1,s11,0xf
800034b8:	0085e5b3          	or	a1,a1,s0
800034bc:	013dd413          	srli	s0,s11,0x13
800034c0:	00dd9693          	slli	a3,s11,0xd
800034c4:	0086e6b3          	or	a3,a3,s0
800034c8:	00650533          	add	a0,a0,t1
800034cc:	00d5c5b3          	xor	a1,a1,a3
800034d0:	00add693          	srli	a3,s11,0xa
800034d4:	000d8313          	mv	t1,s11
800034d8:	13b12023          	sw	s11,288(sp)
800034dc:	00d5c5b3          	xor	a1,a1,a3
800034e0:	00b50433          	add	s0,a0,a1
800034e4:	011d5513          	srli	a0,s10,0x11
800034e8:	00fd1593          	slli	a1,s10,0xf
800034ec:	00a5e533          	or	a0,a1,a0
800034f0:	013d5593          	srli	a1,s10,0x13
800034f4:	00dd1693          	slli	a3,s10,0xd
800034f8:	00b6e5b3          	or	a1,a3,a1
800034fc:	15c12683          	lw	a3,348(sp)
80003500:	00d786b3          	add	a3,a5,a3
80003504:	00b54533          	xor	a0,a0,a1
80003508:	00ad5593          	srli	a1,s10,0xa
8000350c:	000d0d93          	mv	s11,s10
80003510:	11a12c23          	sw	s10,280(sp)
80003514:	00b54533          	xor	a0,a0,a1
80003518:	00a687b3          	add	a5,a3,a0
8000351c:	01145513          	srli	a0,s0,0x11
80003520:	00f41593          	slli	a1,s0,0xf
80003524:	00a5e533          	or	a0,a1,a0
80003528:	01345593          	srli	a1,s0,0x13
8000352c:	00d41693          	slli	a3,s0,0xd
80003530:	00b6e5b3          	or	a1,a3,a1
80003534:	005886b3          	add	a3,a7,t0
80003538:	00b54533          	xor	a0,a0,a1
8000353c:	00a45593          	srli	a1,s0,0xa
80003540:	00b54533          	xor	a0,a0,a1
80003544:	00a68e33          	add	t3,a3,a0
80003548:	0117d513          	srli	a0,a5,0x11
8000354c:	00f79593          	slli	a1,a5,0xf
80003550:	00a5e533          	or	a0,a1,a0
80003554:	0137d593          	srli	a1,a5,0x13
80003558:	00d79693          	slli	a3,a5,0xd
8000355c:	00b6e5b3          	or	a1,a3,a1
80003560:	01fc06b3          	add	a3,s8,t6
80003564:	000f8d13          	mv	s10,t6
80003568:	00b54533          	xor	a0,a0,a1
8000356c:	00a7d593          	srli	a1,a5,0xa
80003570:	00078293          	mv	t0,a5
80003574:	16f12223          	sw	a5,356(sp)
80003578:	00b54533          	xor	a0,a0,a1
8000357c:	00a68933          	add	s2,a3,a0
80003580:	00665513          	srli	a0,a2,0x6
80003584:	01a61593          	slli	a1,a2,0x1a
80003588:	00a5e533          	or	a0,a1,a0
8000358c:	00b65593          	srli	a1,a2,0xb
80003590:	01561693          	slli	a3,a2,0x15
80003594:	00b6e5b3          	or	a1,a3,a1
80003598:	00b54533          	xor	a0,a0,a1
8000359c:	01965593          	srli	a1,a2,0x19
800035a0:	00761693          	slli	a3,a2,0x7
800035a4:	00b6e5b3          	or	a1,a3,a1
800035a8:	016406b3          	add	a3,s0,s6
800035ac:	00040f93          	mv	t6,s0
800035b0:	14812623          	sw	s0,332(sp)
800035b4:	00b54533          	xor	a0,a0,a1
800035b8:	009745b3          	xor	a1,a4,s1
800035bc:	00b675b3          	and	a1,a2,a1
800035c0:	0095c5b3          	xor	a1,a1,s1
800035c4:	00b685b3          	add	a1,a3,a1
800035c8:	00a58533          	add	a0,a1,a0
800035cc:	002ed593          	srli	a1,t4,0x2
800035d0:	01ee9693          	slli	a3,t4,0x1e
800035d4:	00b6e5b3          	or	a1,a3,a1
800035d8:	00ded693          	srli	a3,t4,0xd
800035dc:	013e9793          	slli	a5,t4,0x13
800035e0:	00d7e6b3          	or	a3,a5,a3
800035e4:	00d5c5b3          	xor	a1,a1,a3
800035e8:	016ed693          	srli	a3,t4,0x16
800035ec:	00ae9793          	slli	a5,t4,0xa
800035f0:	00d7e6b3          	or	a3,a5,a3
800035f4:	00d5c5b3          	xor	a1,a1,a3
800035f8:	007ef433          	and	s0,t4,t2
800035fc:	0173f6b3          	and	a3,t2,s7
80003600:	00d446b3          	xor	a3,s0,a3
80003604:	017ef7b3          	and	a5,t4,s7
80003608:	00f6c6b3          	xor	a3,a3,a5
8000360c:	00b685b3          	add	a1,a3,a1
80003610:	0c412683          	lw	a3,196(sp)
80003614:	00d50533          	add	a0,a0,a3
80003618:	00a58c33          	add	s8,a1,a0
8000361c:	010508b3          	add	a7,a0,a6
80003620:	0068d513          	srli	a0,a7,0x6
80003624:	01a89593          	slli	a1,a7,0x1a
80003628:	00a5e533          	or	a0,a1,a0
8000362c:	00b8d593          	srli	a1,a7,0xb
80003630:	01589793          	slli	a5,a7,0x15
80003634:	00b7e5b3          	or	a1,a5,a1
80003638:	00b54533          	xor	a0,a0,a1
8000363c:	0198d593          	srli	a1,a7,0x19
80003640:	00789793          	slli	a5,a7,0x7
80003644:	00b7e5b3          	or	a1,a5,a1
80003648:	00b54533          	xor	a0,a0,a1
8000364c:	009285b3          	add	a1,t0,s1
80003650:	00e647b3          	xor	a5,a2,a4
80003654:	00f8f7b3          	and	a5,a7,a5
80003658:	00e7c7b3          	xor	a5,a5,a4
8000365c:	00f585b3          	add	a1,a1,a5
80003660:	00a58533          	add	a0,a1,a0
80003664:	002c5593          	srli	a1,s8,0x2
80003668:	01ec1793          	slli	a5,s8,0x1e
8000366c:	00b7e5b3          	or	a1,a5,a1
80003670:	00dc5793          	srli	a5,s8,0xd
80003674:	013c1493          	slli	s1,s8,0x13
80003678:	00f4e7b3          	or	a5,s1,a5
8000367c:	00f5c5b3          	xor	a1,a1,a5
80003680:	016c5793          	srli	a5,s8,0x16
80003684:	00ac1493          	slli	s1,s8,0xa
80003688:	00f4e7b3          	or	a5,s1,a5
8000368c:	00f5c5b3          	xor	a1,a1,a5
80003690:	007ec7b3          	xor	a5,t4,t2
80003694:	00fc77b3          	and	a5,s8,a5
80003698:	0087c7b3          	xor	a5,a5,s0
8000369c:	0c012483          	lw	s1,192(sp)
800036a0:	00950533          	add	a0,a0,s1
800036a4:	00f585b3          	add	a1,a1,a5
800036a8:	00a58cb3          	add	s9,a1,a0
800036ac:	01750f33          	add	t5,a0,s7
800036b0:	006f5513          	srli	a0,t5,0x6
800036b4:	01af1593          	slli	a1,t5,0x1a
800036b8:	00a5e533          	or	a0,a1,a0
800036bc:	00bf5593          	srli	a1,t5,0xb
800036c0:	015f1793          	slli	a5,t5,0x15
800036c4:	00b7e5b3          	or	a1,a5,a1
800036c8:	00b54533          	xor	a0,a0,a1
800036cc:	019f5593          	srli	a1,t5,0x19
800036d0:	007f1793          	slli	a5,t5,0x7
800036d4:	00b7e5b3          	or	a1,a5,a1
800036d8:	00ee0733          	add	a4,t3,a4
800036dc:	00b54533          	xor	a0,a0,a1
800036e0:	00c8c5b3          	xor	a1,a7,a2
800036e4:	00bf75b3          	and	a1,t5,a1
800036e8:	00c5c5b3          	xor	a1,a1,a2
800036ec:	00b705b3          	add	a1,a4,a1
800036f0:	00a58533          	add	a0,a1,a0
800036f4:	002cd593          	srli	a1,s9,0x2
800036f8:	01ec9713          	slli	a4,s9,0x1e
800036fc:	00b765b3          	or	a1,a4,a1
80003700:	00dcd713          	srli	a4,s9,0xd
80003704:	013c9793          	slli	a5,s9,0x13
80003708:	00e7e733          	or	a4,a5,a4
8000370c:	00e5c5b3          	xor	a1,a1,a4
80003710:	016cd713          	srli	a4,s9,0x16
80003714:	00ac9793          	slli	a5,s9,0xa
80003718:	00e7e733          	or	a4,a5,a4
8000371c:	00e5c5b3          	xor	a1,a1,a4
80003720:	018cf7b3          	and	a5,s9,s8
80003724:	01dc7733          	and	a4,s8,t4
80003728:	00e7c733          	xor	a4,a5,a4
8000372c:	01dcf4b3          	and	s1,s9,t4
80003730:	00974733          	xor	a4,a4,s1
80003734:	00b705b3          	add	a1,a4,a1
80003738:	0bc12703          	lw	a4,188(sp)
8000373c:	00e50533          	add	a0,a0,a4
80003740:	00a58bb3          	add	s7,a1,a0
80003744:	00750733          	add	a4,a0,t2
80003748:	00675513          	srli	a0,a4,0x6
8000374c:	01a71493          	slli	s1,a4,0x1a
80003750:	00a4e533          	or	a0,s1,a0
80003754:	00b75493          	srli	s1,a4,0xb
80003758:	01571593          	slli	a1,a4,0x15
8000375c:	0095e5b3          	or	a1,a1,s1
80003760:	00b54533          	xor	a0,a0,a1
80003764:	01975593          	srli	a1,a4,0x19
80003768:	00771493          	slli	s1,a4,0x7
8000376c:	00b4e5b3          	or	a1,s1,a1
80003770:	00b54533          	xor	a0,a0,a1
80003774:	00c905b3          	add	a1,s2,a2
80003778:	011f4633          	xor	a2,t5,a7
8000377c:	00c77633          	and	a2,a4,a2
80003780:	01164633          	xor	a2,a2,a7
80003784:	00c585b3          	add	a1,a1,a2
80003788:	00a58533          	add	a0,a1,a0
8000378c:	002bd593          	srli	a1,s7,0x2
80003790:	01eb9613          	slli	a2,s7,0x1e
80003794:	00b665b3          	or	a1,a2,a1
80003798:	00dbd613          	srli	a2,s7,0xd
8000379c:	013b9493          	slli	s1,s7,0x13
800037a0:	00c4e633          	or	a2,s1,a2
800037a4:	00c5c5b3          	xor	a1,a1,a2
800037a8:	016bd613          	srli	a2,s7,0x16
800037ac:	00ab9493          	slli	s1,s7,0xa
800037b0:	00c4e633          	or	a2,s1,a2
800037b4:	00c5c5b3          	xor	a1,a1,a2
800037b8:	018cc633          	xor	a2,s9,s8
800037bc:	00cbf633          	and	a2,s7,a2
800037c0:	00f64633          	xor	a2,a2,a5
800037c4:	0b812783          	lw	a5,184(sp)
800037c8:	00f50533          	add	a0,a0,a5
800037cc:	00c585b3          	add	a1,a1,a2
800037d0:	00a580b3          	add	ra,a1,a0
800037d4:	01d502b3          	add	t0,a0,t4
800037d8:	15412a83          	lw	s5,340(sp)
800037dc:	007ad513          	srli	a0,s5,0x7
800037e0:	019a9593          	slli	a1,s5,0x19
800037e4:	00a5e833          	or	a6,a1,a0
800037e8:	15012603          	lw	a2,336(sp)
800037ec:	00765593          	srli	a1,a2,0x7
800037f0:	01961793          	slli	a5,a2,0x19
800037f4:	00b7e3b3          	or	t2,a5,a1
800037f8:	16012483          	lw	s1,352(sp)
800037fc:	0074d793          	srli	a5,s1,0x7
80003800:	01949513          	slli	a0,s1,0x19
80003804:	00f56eb3          	or	t4,a0,a5
80003808:	007a5793          	srli	a5,s4,0x7
8000380c:	019a1593          	slli	a1,s4,0x19
80003810:	00f5eb33          	or	s6,a1,a5
80003814:	012ad793          	srli	a5,s5,0x12
80003818:	00ea9513          	slli	a0,s5,0xe
8000381c:	00f56533          	or	a0,a0,a5
80003820:	01265793          	srli	a5,a2,0x12
80003824:	00e61593          	slli	a1,a2,0xe
80003828:	00060693          	mv	a3,a2
8000382c:	00f5e5b3          	or	a1,a1,a5
80003830:	0124d793          	srli	a5,s1,0x12
80003834:	00e49413          	slli	s0,s1,0xe
80003838:	00048613          	mv	a2,s1
8000383c:	00f467b3          	or	a5,s0,a5
80003840:	012a5413          	srli	s0,s4,0x12
80003844:	00ea1493          	slli	s1,s4,0xe
80003848:	0084e433          	or	s0,s1,s0
8000384c:	01054533          	xor	a0,a0,a6
80003850:	0075c5b3          	xor	a1,a1,t2
80003854:	01d7c7b3          	xor	a5,a5,t4
80003858:	016444b3          	xor	s1,s0,s6
8000385c:	003ad413          	srli	s0,s5,0x3
80003860:	00854533          	xor	a0,a0,s0
80003864:	0036d413          	srli	s0,a3,0x3
80003868:	0085c5b3          	xor	a1,a1,s0
8000386c:	00365413          	srli	s0,a2,0x3
80003870:	0087c7b3          	xor	a5,a5,s0
80003874:	003a5413          	srli	s0,s4,0x3
80003878:	0084c4b3          	xor	s1,s1,s0
8000387c:	00d50eb3          	add	t4,a0,a3
80003880:	00c58833          	add	a6,a1,a2
80003884:	014787b3          	add	a5,a5,s4
80003888:	013484b3          	add	s1,s1,s3
8000388c:	011e5413          	srli	s0,t3,0x11
80003890:	00fe1513          	slli	a0,t3,0xf
80003894:	00856533          	or	a0,a0,s0
80003898:	013e5413          	srli	s0,t3,0x13
8000389c:	00de1593          	slli	a1,t3,0xd
800038a0:	0085e5b3          	or	a1,a1,s0
800038a4:	16812603          	lw	a2,360(sp)
800038a8:	00c484b3          	add	s1,s1,a2
800038ac:	00b54533          	xor	a0,a0,a1
800038b0:	00ae5593          	srli	a1,t3,0xa
800038b4:	11c12a23          	sw	t3,276(sp)
800038b8:	00b54533          	xor	a0,a0,a1
800038bc:	00a48ab3          	add	s5,s1,a0
800038c0:	01195513          	srli	a0,s2,0x11
800038c4:	00f91593          	slli	a1,s2,0xf
800038c8:	00a5e533          	or	a0,a1,a0
800038cc:	01395593          	srli	a1,s2,0x13
800038d0:	00d91493          	slli	s1,s2,0xd
800038d4:	00b4e5b3          	or	a1,s1,a1
800038d8:	006787b3          	add	a5,a5,t1
800038dc:	00b54533          	xor	a0,a0,a1
800038e0:	00a95593          	srli	a1,s2,0xa
800038e4:	00b54533          	xor	a0,a0,a1
800038e8:	00a786b3          	add	a3,a5,a0
800038ec:	011ad513          	srli	a0,s5,0x11
800038f0:	00fa9593          	slli	a1,s5,0xf
800038f4:	00a5e533          	or	a0,a1,a0
800038f8:	013ad593          	srli	a1,s5,0x13
800038fc:	00da9793          	slli	a5,s5,0xd
80003900:	00b7e5b3          	or	a1,a5,a1
80003904:	01b807b3          	add	a5,a6,s11
80003908:	00b54533          	xor	a0,a0,a1
8000390c:	00aad593          	srli	a1,s5,0xa
80003910:	00b54533          	xor	a0,a0,a1
80003914:	00a78333          	add	t1,a5,a0
80003918:	0116d513          	srli	a0,a3,0x11
8000391c:	00f69593          	slli	a1,a3,0xf
80003920:	00a5e533          	or	a0,a1,a0
80003924:	0136d593          	srli	a1,a3,0x13
80003928:	00d69793          	slli	a5,a3,0xd
8000392c:	00b7e5b3          	or	a1,a5,a1
80003930:	01fe87b3          	add	a5,t4,t6
80003934:	00b54533          	xor	a0,a0,a1
80003938:	00a6d593          	srli	a1,a3,0xa
8000393c:	00068413          	mv	s0,a3
80003940:	16d12023          	sw	a3,352(sp)
80003944:	00b54533          	xor	a0,a0,a1
80003948:	00a78b33          	add	s6,a5,a0
8000394c:	0062d513          	srli	a0,t0,0x6
80003950:	01a29593          	slli	a1,t0,0x1a
80003954:	00a5e533          	or	a0,a1,a0
80003958:	00b2d593          	srli	a1,t0,0xb
8000395c:	01529793          	slli	a5,t0,0x15
80003960:	00b7e5b3          	or	a1,a5,a1
80003964:	00b54533          	xor	a0,a0,a1
80003968:	0192d593          	srli	a1,t0,0x19
8000396c:	00729793          	slli	a5,t0,0x7
80003970:	00b7e5b3          	or	a1,a5,a1
80003974:	011a86b3          	add	a3,s5,a7
80003978:	15512423          	sw	s5,328(sp)
8000397c:	00b54533          	xor	a0,a0,a1
80003980:	01e745b3          	xor	a1,a4,t5
80003984:	00b2f5b3          	and	a1,t0,a1
80003988:	01e5c5b3          	xor	a1,a1,t5
8000398c:	00b685b3          	add	a1,a3,a1
80003990:	00a58533          	add	a0,a1,a0
80003994:	0020d593          	srli	a1,ra,0x2
80003998:	01e09693          	slli	a3,ra,0x1e
8000399c:	00b6e5b3          	or	a1,a3,a1
800039a0:	00d0d693          	srli	a3,ra,0xd
800039a4:	01309793          	slli	a5,ra,0x13
800039a8:	00d7e6b3          	or	a3,a5,a3
800039ac:	00d5c5b3          	xor	a1,a1,a3
800039b0:	0160d693          	srli	a3,ra,0x16
800039b4:	00a09793          	slli	a5,ra,0xa
800039b8:	00d7e6b3          	or	a3,a5,a3
800039bc:	00d5c5b3          	xor	a1,a1,a3
800039c0:	0170f6b3          	and	a3,ra,s7
800039c4:	019bf7b3          	and	a5,s7,s9
800039c8:	00f6c7b3          	xor	a5,a3,a5
800039cc:	0190f4b3          	and	s1,ra,s9
800039d0:	0097c7b3          	xor	a5,a5,s1
800039d4:	00b785b3          	add	a1,a5,a1
800039d8:	0b412783          	lw	a5,180(sp)
800039dc:	00f50533          	add	a0,a0,a5
800039e0:	00a58fb3          	add	t6,a1,a0
800039e4:	018509b3          	add	s3,a0,s8
800039e8:	0069d513          	srli	a0,s3,0x6
800039ec:	01a99593          	slli	a1,s3,0x1a
800039f0:	00a5e533          	or	a0,a1,a0
800039f4:	00b9d593          	srli	a1,s3,0xb
800039f8:	01599493          	slli	s1,s3,0x15
800039fc:	00b4e5b3          	or	a1,s1,a1
80003a00:	00b54533          	xor	a0,a0,a1
80003a04:	0199d593          	srli	a1,s3,0x19
80003a08:	00799493          	slli	s1,s3,0x7
80003a0c:	00b4e5b3          	or	a1,s1,a1
80003a10:	00b54533          	xor	a0,a0,a1
80003a14:	01e405b3          	add	a1,s0,t5
80003a18:	00e2c4b3          	xor	s1,t0,a4
80003a1c:	0099f4b3          	and	s1,s3,s1
80003a20:	00e4c4b3          	xor	s1,s1,a4
80003a24:	009585b3          	add	a1,a1,s1
80003a28:	00a58533          	add	a0,a1,a0
80003a2c:	002fd593          	srli	a1,t6,0x2
80003a30:	01ef9493          	slli	s1,t6,0x1e
80003a34:	00b4e5b3          	or	a1,s1,a1
80003a38:	00dfd493          	srli	s1,t6,0xd
80003a3c:	013f9413          	slli	s0,t6,0x13
80003a40:	009464b3          	or	s1,s0,s1
80003a44:	0095c5b3          	xor	a1,a1,s1
80003a48:	016fd493          	srli	s1,t6,0x16
80003a4c:	00af9413          	slli	s0,t6,0xa
80003a50:	009464b3          	or	s1,s0,s1
80003a54:	0095c5b3          	xor	a1,a1,s1
80003a58:	0170c4b3          	xor	s1,ra,s7
80003a5c:	009ff4b3          	and	s1,t6,s1
80003a60:	00d4c6b3          	xor	a3,s1,a3
80003a64:	0b012483          	lw	s1,176(sp)
80003a68:	00950533          	add	a0,a0,s1
80003a6c:	00d585b3          	add	a1,a1,a3
80003a70:	00a58a33          	add	s4,a1,a0
80003a74:	019503b3          	add	t2,a0,s9
80003a78:	0063d513          	srli	a0,t2,0x6
80003a7c:	01a39593          	slli	a1,t2,0x1a
80003a80:	00a5e533          	or	a0,a1,a0
80003a84:	00b3d593          	srli	a1,t2,0xb
80003a88:	01539493          	slli	s1,t2,0x15
80003a8c:	00b4e5b3          	or	a1,s1,a1
80003a90:	00b54533          	xor	a0,a0,a1
80003a94:	0193d593          	srli	a1,t2,0x19
80003a98:	00739493          	slli	s1,t2,0x7
80003a9c:	00b4e5b3          	or	a1,s1,a1
80003aa0:	00e30733          	add	a4,t1,a4
80003aa4:	00b54533          	xor	a0,a0,a1
80003aa8:	0059c5b3          	xor	a1,s3,t0
80003aac:	00b3f5b3          	and	a1,t2,a1
80003ab0:	0055c5b3          	xor	a1,a1,t0
80003ab4:	00b705b3          	add	a1,a4,a1
80003ab8:	00a58533          	add	a0,a1,a0
80003abc:	002a5593          	srli	a1,s4,0x2
80003ac0:	01ea1713          	slli	a4,s4,0x1e
80003ac4:	00b765b3          	or	a1,a4,a1
80003ac8:	00da5713          	srli	a4,s4,0xd
80003acc:	013a1493          	slli	s1,s4,0x13
80003ad0:	00e4e733          	or	a4,s1,a4
80003ad4:	00e5c5b3          	xor	a1,a1,a4
80003ad8:	016a5713          	srli	a4,s4,0x16
80003adc:	00aa1493          	slli	s1,s4,0xa
80003ae0:	00e4e733          	or	a4,s1,a4
80003ae4:	00e5c5b3          	xor	a1,a1,a4
80003ae8:	01fa74b3          	and	s1,s4,t6
80003aec:	001ff733          	and	a4,t6,ra
80003af0:	00e4c733          	xor	a4,s1,a4
80003af4:	001a7433          	and	s0,s4,ra
80003af8:	00874733          	xor	a4,a4,s0
80003afc:	00b705b3          	add	a1,a4,a1
80003b00:	0ac12703          	lw	a4,172(sp)
80003b04:	00e50533          	add	a0,a0,a4
80003b08:	00a58c33          	add	s8,a1,a0
80003b0c:	017508b3          	add	a7,a0,s7
80003b10:	0068d513          	srli	a0,a7,0x6
80003b14:	01a89593          	slli	a1,a7,0x1a
80003b18:	00a5e533          	or	a0,a1,a0
80003b1c:	00b8d593          	srli	a1,a7,0xb
80003b20:	01589413          	slli	s0,a7,0x15
80003b24:	00b465b3          	or	a1,s0,a1
80003b28:	00b54533          	xor	a0,a0,a1
80003b2c:	0198d593          	srli	a1,a7,0x19
80003b30:	00789413          	slli	s0,a7,0x7
80003b34:	00b465b3          	or	a1,s0,a1
80003b38:	00b54533          	xor	a0,a0,a1
80003b3c:	005b05b3          	add	a1,s6,t0
80003b40:	0133c633          	xor	a2,t2,s3
80003b44:	00c8f633          	and	a2,a7,a2
80003b48:	01364633          	xor	a2,a2,s3
80003b4c:	00c585b3          	add	a1,a1,a2
80003b50:	00a58533          	add	a0,a1,a0
80003b54:	002c5593          	srli	a1,s8,0x2
80003b58:	01ec1613          	slli	a2,s8,0x1e
80003b5c:	00b665b3          	or	a1,a2,a1
80003b60:	00dc5613          	srli	a2,s8,0xd
80003b64:	013c1413          	slli	s0,s8,0x13
80003b68:	00c46633          	or	a2,s0,a2
80003b6c:	00c5c5b3          	xor	a1,a1,a2
80003b70:	016c5613          	srli	a2,s8,0x16
80003b74:	00ac1413          	slli	s0,s8,0xa
80003b78:	00c46633          	or	a2,s0,a2
80003b7c:	00c5c5b3          	xor	a1,a1,a2
80003b80:	01fa4633          	xor	a2,s4,t6
80003b84:	00cc7633          	and	a2,s8,a2
80003b88:	00964633          	xor	a2,a2,s1
80003b8c:	0a812483          	lw	s1,168(sp)
80003b90:	00950533          	add	a0,a0,s1
80003b94:	00c585b3          	add	a1,a1,a2
80003b98:	00a58cb3          	add	s9,a1,a0
80003b9c:	00150bb3          	add	s7,a0,ra
80003ba0:	000d0693          	mv	a3,s10
80003ba4:	007d5513          	srli	a0,s10,0x7
80003ba8:	019d1493          	slli	s1,s10,0x19
80003bac:	00a4e2b3          	or	t0,s1,a0
80003bb0:	11c12703          	lw	a4,284(sp)
80003bb4:	00775493          	srli	s1,a4,0x7
80003bb8:	01971413          	slli	s0,a4,0x19
80003bbc:	00946eb3          	or	t4,s0,s1
80003bc0:	15c12783          	lw	a5,348(sp)
80003bc4:	0077d413          	srli	s0,a5,0x7
80003bc8:	01979513          	slli	a0,a5,0x19
80003bcc:	00856f33          	or	t5,a0,s0
80003bd0:	14412583          	lw	a1,324(sp)
80003bd4:	0075d413          	srli	s0,a1,0x7
80003bd8:	01959493          	slli	s1,a1,0x19
80003bdc:	0084e833          	or	a6,s1,s0
80003be0:	012d5413          	srli	s0,s10,0x12
80003be4:	00ed1513          	slli	a0,s10,0xe
80003be8:	11a12823          	sw	s10,272(sp)
80003bec:	008560b3          	or	ra,a0,s0
80003bf0:	01275413          	srli	s0,a4,0x12
80003bf4:	00e71493          	slli	s1,a4,0xe
80003bf8:	0084e433          	or	s0,s1,s0
80003bfc:	0127d493          	srli	s1,a5,0x12
80003c00:	00e79613          	slli	a2,a5,0xe
80003c04:	00078d13          	mv	s10,a5
80003c08:	00966633          	or	a2,a2,s1
80003c0c:	0125d493          	srli	s1,a1,0x12
80003c10:	00e59513          	slli	a0,a1,0xe
80003c14:	00058793          	mv	a5,a1
80003c18:	00956533          	or	a0,a0,s1
80003c1c:	0050c4b3          	xor	s1,ra,t0
80003c20:	01d44433          	xor	s0,s0,t4
80003c24:	01e64633          	xor	a2,a2,t5
80003c28:	01054533          	xor	a0,a0,a6
80003c2c:	0036d593          	srli	a1,a3,0x3
80003c30:	00b4c5b3          	xor	a1,s1,a1
80003c34:	00375493          	srli	s1,a4,0x3
80003c38:	009444b3          	xor	s1,s0,s1
80003c3c:	003d5413          	srli	s0,s10,0x3
80003c40:	00864633          	xor	a2,a2,s0
80003c44:	0037d413          	srli	s0,a5,0x3
80003c48:	00854533          	xor	a0,a0,s0
80003c4c:	00e582b3          	add	t0,a1,a4
80003c50:	01a48eb3          	add	t4,s1,s10
80003c54:	00f60633          	add	a2,a2,a5
80003c58:	15412583          	lw	a1,340(sp)
80003c5c:	00b50533          	add	a0,a0,a1
80003c60:	14612823          	sw	t1,336(sp)
80003c64:	01135413          	srli	s0,t1,0x11
80003c68:	00f31593          	slli	a1,t1,0xf
80003c6c:	0085e5b3          	or	a1,a1,s0
80003c70:	01335413          	srli	s0,t1,0x13
80003c74:	00d31493          	slli	s1,t1,0xd
80003c78:	0084e4b3          	or	s1,s1,s0
80003c7c:	16412683          	lw	a3,356(sp)
80003c80:	00d50533          	add	a0,a0,a3
80003c84:	0095c5b3          	xor	a1,a1,s1
80003c88:	00a35493          	srli	s1,t1,0xa
80003c8c:	0095c5b3          	xor	a1,a1,s1
80003c90:	00b50db3          	add	s11,a0,a1
80003c94:	011b5513          	srli	a0,s6,0x11
80003c98:	00fb1593          	slli	a1,s6,0xf
80003c9c:	00a5e533          	or	a0,a1,a0
80003ca0:	013b5593          	srli	a1,s6,0x13
80003ca4:	00db1493          	slli	s1,s6,0xd
80003ca8:	00b4e5b3          	or	a1,s1,a1
80003cac:	01c60633          	add	a2,a2,t3
80003cb0:	00b54533          	xor	a0,a0,a1
80003cb4:	00ab5593          	srli	a1,s6,0xa
80003cb8:	00b54533          	xor	a0,a0,a1
80003cbc:	00a60733          	add	a4,a2,a0
80003cc0:	011dd513          	srli	a0,s11,0x11
80003cc4:	00fd9593          	slli	a1,s11,0xf
80003cc8:	00a5e533          	or	a0,a1,a0
80003ccc:	013dd593          	srli	a1,s11,0x13
80003cd0:	00dd9613          	slli	a2,s11,0xd
80003cd4:	00b665b3          	or	a1,a2,a1
80003cd8:	012e8633          	add	a2,t4,s2
80003cdc:	00b54533          	xor	a0,a0,a1
80003ce0:	00add593          	srli	a1,s11,0xa
80003ce4:	00b54533          	xor	a0,a0,a1
80003ce8:	00a600b3          	add	ra,a2,a0
80003cec:	01175513          	srli	a0,a4,0x11
80003cf0:	00f71593          	slli	a1,a4,0xf
80003cf4:	00a5e533          	or	a0,a1,a0
80003cf8:	01375593          	srli	a1,a4,0x13
80003cfc:	00d71613          	slli	a2,a4,0xd
80003d00:	00b665b3          	or	a1,a2,a1
80003d04:	01528633          	add	a2,t0,s5
80003d08:	00b54533          	xor	a0,a0,a1
80003d0c:	00a75593          	srli	a1,a4,0xa
80003d10:	00b54533          	xor	a0,a0,a1
80003d14:	00a60f33          	add	t5,a2,a0
80003d18:	006bd513          	srli	a0,s7,0x6
80003d1c:	01ab9593          	slli	a1,s7,0x1a
80003d20:	00a5e533          	or	a0,a1,a0
80003d24:	00bbd593          	srli	a1,s7,0xb
80003d28:	015b9613          	slli	a2,s7,0x15
80003d2c:	00b665b3          	or	a1,a2,a1
80003d30:	00b54533          	xor	a0,a0,a1
80003d34:	019bd593          	srli	a1,s7,0x19
80003d38:	007b9613          	slli	a2,s7,0x7
80003d3c:	00b665b3          	or	a1,a2,a1
80003d40:	013d8633          	add	a2,s11,s3
80003d44:	15b12e23          	sw	s11,348(sp)
80003d48:	00b54533          	xor	a0,a0,a1
80003d4c:	0078c5b3          	xor	a1,a7,t2
80003d50:	00bbf5b3          	and	a1,s7,a1
80003d54:	0075c5b3          	xor	a1,a1,t2
80003d58:	00b605b3          	add	a1,a2,a1
80003d5c:	00a58533          	add	a0,a1,a0
80003d60:	002cd593          	srli	a1,s9,0x2
80003d64:	01ec9613          	slli	a2,s9,0x1e
80003d68:	00b665b3          	or	a1,a2,a1
80003d6c:	00dcd613          	srli	a2,s9,0xd
80003d70:	013c9793          	slli	a5,s9,0x13
80003d74:	00c7e633          	or	a2,a5,a2
80003d78:	00c5c5b3          	xor	a1,a1,a2
80003d7c:	016cd613          	srli	a2,s9,0x16
80003d80:	00ac9793          	slli	a5,s9,0xa
80003d84:	00c7e633          	or	a2,a5,a2
80003d88:	00c5c5b3          	xor	a1,a1,a2
80003d8c:	018cf633          	and	a2,s9,s8
80003d90:	014c77b3          	and	a5,s8,s4
80003d94:	00f647b3          	xor	a5,a2,a5
80003d98:	014cf4b3          	and	s1,s9,s4
80003d9c:	0097c7b3          	xor	a5,a5,s1
80003da0:	00b785b3          	add	a1,a5,a1
80003da4:	0a412783          	lw	a5,164(sp)
80003da8:	00f50533          	add	a0,a0,a5
80003dac:	00a589b3          	add	s3,a1,a0
80003db0:	01f502b3          	add	t0,a0,t6
80003db4:	0062d593          	srli	a1,t0,0x6
80003db8:	01a29793          	slli	a5,t0,0x1a
80003dbc:	00b7e5b3          	or	a1,a5,a1
80003dc0:	00b2d793          	srli	a5,t0,0xb
80003dc4:	01529413          	slli	s0,t0,0x15
80003dc8:	00f467b3          	or	a5,s0,a5
80003dcc:	00f5c5b3          	xor	a1,a1,a5
80003dd0:	0192d793          	srli	a5,t0,0x19
80003dd4:	00729413          	slli	s0,t0,0x7
80003dd8:	00f467b3          	or	a5,s0,a5
80003ddc:	00f5c5b3          	xor	a1,a1,a5
80003de0:	007706b3          	add	a3,a4,t2
80003de4:	00070e93          	mv	t4,a4
80003de8:	14e12223          	sw	a4,324(sp)
80003dec:	011bc7b3          	xor	a5,s7,a7
80003df0:	00f2f7b3          	and	a5,t0,a5
80003df4:	0117c7b3          	xor	a5,a5,a7
80003df8:	00f686b3          	add	a3,a3,a5
80003dfc:	00b685b3          	add	a1,a3,a1
80003e00:	0029d693          	srli	a3,s3,0x2
80003e04:	01e99793          	slli	a5,s3,0x1e
80003e08:	00d7e6b3          	or	a3,a5,a3
80003e0c:	00d9d793          	srli	a5,s3,0xd
80003e10:	01399413          	slli	s0,s3,0x13
80003e14:	00f467b3          	or	a5,s0,a5
80003e18:	00f6c6b3          	xor	a3,a3,a5
80003e1c:	0169d793          	srli	a5,s3,0x16
80003e20:	00a99413          	slli	s0,s3,0xa
80003e24:	00f467b3          	or	a5,s0,a5
80003e28:	00f6c6b3          	xor	a3,a3,a5
80003e2c:	018cc7b3          	xor	a5,s9,s8
80003e30:	00f9f7b3          	and	a5,s3,a5
80003e34:	00c7c633          	xor	a2,a5,a2
80003e38:	0a012783          	lw	a5,160(sp)
80003e3c:	00f585b3          	add	a1,a1,a5
80003e40:	00c68633          	add	a2,a3,a2
80003e44:	00b60fb3          	add	t6,a2,a1
80003e48:	01458ab3          	add	s5,a1,s4
80003e4c:	006ad593          	srli	a1,s5,0x6
80003e50:	01aa9613          	slli	a2,s5,0x1a
80003e54:	00b665b3          	or	a1,a2,a1
80003e58:	00bad613          	srli	a2,s5,0xb
80003e5c:	015a9793          	slli	a5,s5,0x15
80003e60:	00c7e633          	or	a2,a5,a2
80003e64:	00c5c5b3          	xor	a1,a1,a2
80003e68:	019ad613          	srli	a2,s5,0x19
80003e6c:	007a9793          	slli	a5,s5,0x7
80003e70:	00c7e633          	or	a2,a5,a2
80003e74:	01108733          	add	a4,ra,a7
80003e78:	00c5c5b3          	xor	a1,a1,a2
80003e7c:	0172c633          	xor	a2,t0,s7
80003e80:	00caf633          	and	a2,s5,a2
80003e84:	01764633          	xor	a2,a2,s7
80003e88:	00c70633          	add	a2,a4,a2
80003e8c:	00b605b3          	add	a1,a2,a1
80003e90:	002fd613          	srli	a2,t6,0x2
80003e94:	01ef9713          	slli	a4,t6,0x1e
80003e98:	00c76633          	or	a2,a4,a2
80003e9c:	00dfd713          	srli	a4,t6,0xd
80003ea0:	013f9793          	slli	a5,t6,0x13
80003ea4:	00e7e733          	or	a4,a5,a4
80003ea8:	00e64633          	xor	a2,a2,a4
80003eac:	016fd713          	srli	a4,t6,0x16
80003eb0:	00af9793          	slli	a5,t6,0xa
80003eb4:	00e7e733          	or	a4,a5,a4
80003eb8:	00e64633          	xor	a2,a2,a4
80003ebc:	013ff7b3          	and	a5,t6,s3
80003ec0:	0199f733          	and	a4,s3,s9
80003ec4:	00e7c733          	xor	a4,a5,a4
80003ec8:	019ff433          	and	s0,t6,s9
80003ecc:	00874733          	xor	a4,a4,s0
80003ed0:	00c70633          	add	a2,a4,a2
80003ed4:	09c12703          	lw	a4,156(sp)
80003ed8:	00e585b3          	add	a1,a1,a4
80003edc:	00b60333          	add	t1,a2,a1
80003ee0:	018583b3          	add	t2,a1,s8
80003ee4:	0063d593          	srli	a1,t2,0x6
80003ee8:	01a39613          	slli	a2,t2,0x1a
80003eec:	00b665b3          	or	a1,a2,a1
80003ef0:	00b3d613          	srli	a2,t2,0xb
80003ef4:	01539413          	slli	s0,t2,0x15
80003ef8:	00c46633          	or	a2,s0,a2
80003efc:	00c5c5b3          	xor	a1,a1,a2
80003f00:	0193d613          	srli	a2,t2,0x19
80003f04:	00739413          	slli	s0,t2,0x7
80003f08:	00c46633          	or	a2,s0,a2
80003f0c:	00c5c5b3          	xor	a1,a1,a2
80003f10:	017f0633          	add	a2,t5,s7
80003f14:	005ac433          	xor	s0,s5,t0
80003f18:	0083f433          	and	s0,t2,s0
80003f1c:	00544433          	xor	s0,s0,t0
80003f20:	00860633          	add	a2,a2,s0
80003f24:	00b605b3          	add	a1,a2,a1
80003f28:	00235613          	srli	a2,t1,0x2
80003f2c:	01e31413          	slli	s0,t1,0x1e
80003f30:	00c46633          	or	a2,s0,a2
80003f34:	00d35413          	srli	s0,t1,0xd
80003f38:	01331493          	slli	s1,t1,0x13
80003f3c:	0084e4b3          	or	s1,s1,s0
80003f40:	00964633          	xor	a2,a2,s1
80003f44:	01635493          	srli	s1,t1,0x16
80003f48:	00a31413          	slli	s0,t1,0xa
80003f4c:	009464b3          	or	s1,s0,s1
80003f50:	00964633          	xor	a2,a2,s1
80003f54:	013fc4b3          	xor	s1,t6,s3
80003f58:	009374b3          	and	s1,t1,s1
80003f5c:	00f4c7b3          	xor	a5,s1,a5
80003f60:	09812483          	lw	s1,152(sp)
80003f64:	009585b3          	add	a1,a1,s1
80003f68:	00f60633          	add	a2,a2,a5
80003f6c:	00b608b3          	add	a7,a2,a1
80003f70:	01958cb3          	add	s9,a1,s9
80003f74:	14c12703          	lw	a4,332(sp)
80003f78:	00775613          	srli	a2,a4,0x7
80003f7c:	01971493          	slli	s1,a4,0x19
80003f80:	00c4ee33          	or	t3,s1,a2
80003f84:	11812803          	lw	a6,280(sp)
80003f88:	00785493          	srli	s1,a6,0x7
80003f8c:	01981413          	slli	s0,a6,0x19
80003f90:	00946a33          	or	s4,s0,s1
80003f94:	12012583          	lw	a1,288(sp)
80003f98:	0075d413          	srli	s0,a1,0x7
80003f9c:	01959613          	slli	a2,a1,0x19
80003fa0:	00866bb3          	or	s7,a2,s0
80003fa4:	16812603          	lw	a2,360(sp)
80003fa8:	00765413          	srli	s0,a2,0x7
80003fac:	01961493          	slli	s1,a2,0x19
80003fb0:	00060693          	mv	a3,a2
80003fb4:	0084ec33          	or	s8,s1,s0
80003fb8:	01275493          	srli	s1,a4,0x12
80003fbc:	00e71613          	slli	a2,a4,0xe
80003fc0:	00966633          	or	a2,a2,s1
80003fc4:	01285493          	srli	s1,a6,0x12
80003fc8:	00e81413          	slli	s0,a6,0xe
80003fcc:	00946433          	or	s0,s0,s1
80003fd0:	0125d493          	srli	s1,a1,0x12
80003fd4:	00e59793          	slli	a5,a1,0xe
80003fd8:	00058513          	mv	a0,a1
80003fdc:	0097e7b3          	or	a5,a5,s1
80003fe0:	0126d493          	srli	s1,a3,0x12
80003fe4:	00e69d13          	slli	s10,a3,0xe
80003fe8:	009d64b3          	or	s1,s10,s1
80003fec:	01c64633          	xor	a2,a2,t3
80003ff0:	01444433          	xor	s0,s0,s4
80003ff4:	0177c7b3          	xor	a5,a5,s7
80003ff8:	0184c4b3          	xor	s1,s1,s8
80003ffc:	00375593          	srli	a1,a4,0x3
80004000:	00b645b3          	xor	a1,a2,a1
80004004:	00385613          	srli	a2,a6,0x3
80004008:	00c44633          	xor	a2,s0,a2
8000400c:	00355413          	srli	s0,a0,0x3
80004010:	0087c7b3          	xor	a5,a5,s0
80004014:	0036d413          	srli	s0,a3,0x3
80004018:	0084c433          	xor	s0,s1,s0
8000401c:	01058a33          	add	s4,a1,a6
80004020:	00a60c33          	add	s8,a2,a0
80004024:	00d787b3          	add	a5,a5,a3
80004028:	11012503          	lw	a0,272(sp)
8000402c:	00a40433          	add	s0,s0,a0
80004030:	0110d493          	srli	s1,ra,0x11
80004034:	00f09593          	slli	a1,ra,0xf
80004038:	0095e5b3          	or	a1,a1,s1
8000403c:	0130d493          	srli	s1,ra,0x13
80004040:	00d09613          	slli	a2,ra,0xd
80004044:	00966633          	or	a2,a2,s1
80004048:	16012683          	lw	a3,352(sp)
8000404c:	00d40433          	add	s0,s0,a3
80004050:	00c5c5b3          	xor	a1,a1,a2
80004054:	00a0d613          	srli	a2,ra,0xa
80004058:	00c5c5b3          	xor	a1,a1,a2
8000405c:	00b406b3          	add	a3,s0,a1
80004060:	011f5593          	srli	a1,t5,0x11
80004064:	00ff1613          	slli	a2,t5,0xf
80004068:	00b665b3          	or	a1,a2,a1
8000406c:	013f5613          	srli	a2,t5,0x13
80004070:	00df1413          	slli	s0,t5,0xd
80004074:	00c46633          	or	a2,s0,a2
80004078:	15012503          	lw	a0,336(sp)
8000407c:	00a787b3          	add	a5,a5,a0
80004080:	00c5c5b3          	xor	a1,a1,a2
80004084:	00af5613          	srli	a2,t5,0xa
80004088:	00c5c5b3          	xor	a1,a1,a2
8000408c:	00b784b3          	add	s1,a5,a1
80004090:	0116d593          	srli	a1,a3,0x11
80004094:	00f69613          	slli	a2,a3,0xf
80004098:	00b665b3          	or	a1,a2,a1
8000409c:	0136d613          	srli	a2,a3,0x13
800040a0:	00d69793          	slli	a5,a3,0xd
800040a4:	00c7e633          	or	a2,a5,a2
800040a8:	016c07b3          	add	a5,s8,s6
800040ac:	00c5c5b3          	xor	a1,a1,a2
800040b0:	00a6d613          	srli	a2,a3,0xa
800040b4:	16d12423          	sw	a3,360(sp)
800040b8:	00c5c5b3          	xor	a1,a1,a2
800040bc:	00b78bb3          	add	s7,a5,a1
800040c0:	0114d593          	srli	a1,s1,0x11
800040c4:	00f49793          	slli	a5,s1,0xf
800040c8:	00b7e5b3          	or	a1,a5,a1
800040cc:	0134d793          	srli	a5,s1,0x13
800040d0:	00d49413          	slli	s0,s1,0xd
800040d4:	00f467b3          	or	a5,s0,a5
800040d8:	01ba0433          	add	s0,s4,s11
800040dc:	00f5c5b3          	xor	a1,a1,a5
800040e0:	00a4d793          	srli	a5,s1,0xa
800040e4:	00048713          	mv	a4,s1
800040e8:	14912a23          	sw	s1,340(sp)
800040ec:	00f5c5b3          	xor	a1,a1,a5
800040f0:	00b40d33          	add	s10,s0,a1
800040f4:	006cd593          	srli	a1,s9,0x6
800040f8:	01ac9793          	slli	a5,s9,0x1a
800040fc:	00b7e5b3          	or	a1,a5,a1
80004100:	00bcd793          	srli	a5,s9,0xb
80004104:	015c9493          	slli	s1,s9,0x15
80004108:	00f4e7b3          	or	a5,s1,a5
8000410c:	00f5c5b3          	xor	a1,a1,a5
80004110:	019cd793          	srli	a5,s9,0x19
80004114:	007c9493          	slli	s1,s9,0x7
80004118:	00f4e7b3          	or	a5,s1,a5
8000411c:	00568533          	add	a0,a3,t0
80004120:	00f5c5b3          	xor	a1,a1,a5
80004124:	0153c7b3          	xor	a5,t2,s5
80004128:	00fcf7b3          	and	a5,s9,a5
8000412c:	0157c7b3          	xor	a5,a5,s5
80004130:	00f50533          	add	a0,a0,a5
80004134:	00b50533          	add	a0,a0,a1
80004138:	0028d593          	srli	a1,a7,0x2
8000413c:	01e89793          	slli	a5,a7,0x1e
80004140:	00b7e5b3          	or	a1,a5,a1
80004144:	00d8d793          	srli	a5,a7,0xd
80004148:	01389493          	slli	s1,a7,0x13
8000414c:	00f4e7b3          	or	a5,s1,a5
80004150:	00f5c5b3          	xor	a1,a1,a5
80004154:	0168d793          	srli	a5,a7,0x16
80004158:	00a89493          	slli	s1,a7,0xa
8000415c:	00f4e7b3          	or	a5,s1,a5
80004160:	00f5c5b3          	xor	a1,a1,a5
80004164:	0068f7b3          	and	a5,a7,t1
80004168:	01f374b3          	and	s1,t1,t6
8000416c:	0097c4b3          	xor	s1,a5,s1
80004170:	01f8f633          	and	a2,a7,t6
80004174:	00c4c633          	xor	a2,s1,a2
80004178:	00b605b3          	add	a1,a2,a1
8000417c:	09412603          	lw	a2,148(sp)
80004180:	00c50533          	add	a0,a0,a2
80004184:	00a58c33          	add	s8,a1,a0
80004188:	01350533          	add	a0,a0,s3
8000418c:	00655593          	srli	a1,a0,0x6
80004190:	01a51613          	slli	a2,a0,0x1a
80004194:	00b665b3          	or	a1,a2,a1
80004198:	00b55613          	srli	a2,a0,0xb
8000419c:	01551493          	slli	s1,a0,0x15
800041a0:	00c4e633          	or	a2,s1,a2
800041a4:	00c5c5b3          	xor	a1,a1,a2
800041a8:	01955613          	srli	a2,a0,0x19
800041ac:	00751493          	slli	s1,a0,0x7
800041b0:	00c4e633          	or	a2,s1,a2
800041b4:	00c5c5b3          	xor	a1,a1,a2
800041b8:	01570633          	add	a2,a4,s5
800041bc:	007cc6b3          	xor	a3,s9,t2
800041c0:	00d576b3          	and	a3,a0,a3
800041c4:	0076c6b3          	xor	a3,a3,t2
800041c8:	00d60633          	add	a2,a2,a3
800041cc:	00b605b3          	add	a1,a2,a1
800041d0:	002c5613          	srli	a2,s8,0x2
800041d4:	01ec1693          	slli	a3,s8,0x1e
800041d8:	00c6e633          	or	a2,a3,a2
800041dc:	00dc5693          	srli	a3,s8,0xd
800041e0:	013c1493          	slli	s1,s8,0x13
800041e4:	00d4e6b3          	or	a3,s1,a3
800041e8:	00d64633          	xor	a2,a2,a3
800041ec:	016c5693          	srli	a3,s8,0x16
800041f0:	00ac1493          	slli	s1,s8,0xa
800041f4:	00d4e6b3          	or	a3,s1,a3
800041f8:	00d64633          	xor	a2,a2,a3
800041fc:	0068c6b3          	xor	a3,a7,t1
80004200:	00dc76b3          	and	a3,s8,a3
80004204:	00f6c6b3          	xor	a3,a3,a5
80004208:	09012783          	lw	a5,144(sp)
8000420c:	00f585b3          	add	a1,a1,a5
80004210:	00d60633          	add	a2,a2,a3
80004214:	00b60e33          	add	t3,a2,a1
80004218:	01f58a33          	add	s4,a1,t6
8000421c:	006a5593          	srli	a1,s4,0x6
80004220:	01aa1613          	slli	a2,s4,0x1a
80004224:	00b665b3          	or	a1,a2,a1
80004228:	00ba5613          	srli	a2,s4,0xb
8000422c:	015a1693          	slli	a3,s4,0x15
80004230:	00c6e633          	or	a2,a3,a2
80004234:	00c5c5b3          	xor	a1,a1,a2
80004238:	019a5613          	srli	a2,s4,0x19
8000423c:	007a1693          	slli	a3,s4,0x7
80004240:	00c6e633          	or	a2,a3,a2
80004244:	007b86b3          	add	a3,s7,t2
80004248:	00c5c5b3          	xor	a1,a1,a2
8000424c:	01954633          	xor	a2,a0,s9
80004250:	00ca7633          	and	a2,s4,a2
80004254:	01964633          	xor	a2,a2,s9
80004258:	00c68633          	add	a2,a3,a2
8000425c:	00b605b3          	add	a1,a2,a1
80004260:	002e5613          	srli	a2,t3,0x2
80004264:	01ee1693          	slli	a3,t3,0x1e
80004268:	00c6e633          	or	a2,a3,a2
8000426c:	00de5693          	srli	a3,t3,0xd
80004270:	013e1713          	slli	a4,t3,0x13
80004274:	00d766b3          	or	a3,a4,a3
80004278:	00d64633          	xor	a2,a2,a3
8000427c:	016e5693          	srli	a3,t3,0x16
80004280:	00ae1713          	slli	a4,t3,0xa
80004284:	00d766b3          	or	a3,a4,a3
80004288:	00d64633          	xor	a2,a2,a3
8000428c:	018e7733          	and	a4,t3,s8
80004290:	011c76b3          	and	a3,s8,a7
80004294:	00d746b3          	xor	a3,a4,a3
80004298:	011e77b3          	and	a5,t3,a7
8000429c:	00f6c6b3          	xor	a3,a3,a5
800042a0:	00c68633          	add	a2,a3,a2
800042a4:	08c12683          	lw	a3,140(sp)
800042a8:	00d585b3          	add	a1,a1,a3
800042ac:	00b603b3          	add	t2,a2,a1
800042b0:	006589b3          	add	s3,a1,t1
800042b4:	0069d593          	srli	a1,s3,0x6
800042b8:	01a99613          	slli	a2,s3,0x1a
800042bc:	00b665b3          	or	a1,a2,a1
800042c0:	00b9d613          	srli	a2,s3,0xb
800042c4:	01599793          	slli	a5,s3,0x15
800042c8:	00c7e633          	or	a2,a5,a2
800042cc:	00c5c5b3          	xor	a1,a1,a2
800042d0:	0199d613          	srli	a2,s3,0x19
800042d4:	00799793          	slli	a5,s3,0x7
800042d8:	00c7e633          	or	a2,a5,a2
800042dc:	00c5c5b3          	xor	a1,a1,a2
800042e0:	019d0633          	add	a2,s10,s9
800042e4:	00aa47b3          	xor	a5,s4,a0
800042e8:	00f9f7b3          	and	a5,s3,a5
800042ec:	00a7c7b3          	xor	a5,a5,a0
800042f0:	00f60633          	add	a2,a2,a5
800042f4:	00b605b3          	add	a1,a2,a1
800042f8:	0023d613          	srli	a2,t2,0x2
800042fc:	01e39793          	slli	a5,t2,0x1e
80004300:	00c7e633          	or	a2,a5,a2
80004304:	00d3d793          	srli	a5,t2,0xd
80004308:	01339413          	slli	s0,t2,0x13
8000430c:	00f467b3          	or	a5,s0,a5
80004310:	00f64633          	xor	a2,a2,a5
80004314:	0163d793          	srli	a5,t2,0x16
80004318:	00a39413          	slli	s0,t2,0xa
8000431c:	00f467b3          	or	a5,s0,a5
80004320:	00f64633          	xor	a2,a2,a5
80004324:	018e47b3          	xor	a5,t3,s8
80004328:	00f3f7b3          	and	a5,t2,a5
8000432c:	00e7c733          	xor	a4,a5,a4
80004330:	08812683          	lw	a3,136(sp)
80004334:	00d585b3          	add	a1,a1,a3
80004338:	00e60633          	add	a2,a2,a4
8000433c:	00b60fb3          	add	t6,a2,a1
80004340:	011585b3          	add	a1,a1,a7
80004344:	14812683          	lw	a3,328(sp)
80004348:	0076d613          	srli	a2,a3,0x7
8000434c:	01969713          	slli	a4,a3,0x19
80004350:	00c76833          	or	a6,a4,a2
80004354:	00795713          	srli	a4,s2,0x7
80004358:	01991793          	slli	a5,s2,0x19
8000435c:	00e7e2b3          	or	t0,a5,a4
80004360:	11412483          	lw	s1,276(sp)
80004364:	0074d793          	srli	a5,s1,0x7
80004368:	01949413          	slli	s0,s1,0x19
8000436c:	00f46cb3          	or	s9,s0,a5
80004370:	16412403          	lw	s0,356(sp)
80004374:	00745713          	srli	a4,s0,0x7
80004378:	01941613          	slli	a2,s0,0x19
8000437c:	00e66db3          	or	s11,a2,a4
80004380:	0126d613          	srli	a2,a3,0x12
80004384:	00e69713          	slli	a4,a3,0xe
80004388:	00068893          	mv	a7,a3
8000438c:	00c76733          	or	a4,a4,a2
80004390:	01295613          	srli	a2,s2,0x12
80004394:	00e91793          	slli	a5,s2,0xe
80004398:	00c7e7b3          	or	a5,a5,a2
8000439c:	0124d693          	srli	a3,s1,0x12
800043a0:	00e49613          	slli	a2,s1,0xe
800043a4:	00d66633          	or	a2,a2,a3
800043a8:	01245693          	srli	a3,s0,0x12
800043ac:	00e41a93          	slli	s5,s0,0xe
800043b0:	00dae6b3          	or	a3,s5,a3
800043b4:	01074733          	xor	a4,a4,a6
800043b8:	0057c7b3          	xor	a5,a5,t0
800043bc:	01964633          	xor	a2,a2,s9
800043c0:	01b6c833          	xor	a6,a3,s11
800043c4:	0038d693          	srli	a3,a7,0x3
800043c8:	00d746b3          	xor	a3,a4,a3
800043cc:	00395713          	srli	a4,s2,0x3
800043d0:	00e7c733          	xor	a4,a5,a4
800043d4:	0034d793          	srli	a5,s1,0x3
800043d8:	00f64633          	xor	a2,a2,a5
800043dc:	00345793          	srli	a5,s0,0x3
800043e0:	00f847b3          	xor	a5,a6,a5
800043e4:	01268833          	add	a6,a3,s2
800043e8:	009708b3          	add	a7,a4,s1
800043ec:	00860633          	add	a2,a2,s0
800043f0:	14c12683          	lw	a3,332(sp)
800043f4:	00d787b3          	add	a5,a5,a3
800043f8:	011bd413          	srli	s0,s7,0x11
800043fc:	00fb9693          	slli	a3,s7,0xf
80004400:	0086e6b3          	or	a3,a3,s0
80004404:	013bd413          	srli	s0,s7,0x13
80004408:	00db9713          	slli	a4,s7,0xd
8000440c:	00876733          	or	a4,a4,s0
80004410:	01d787b3          	add	a5,a5,t4
80004414:	00e6c6b3          	xor	a3,a3,a4
80004418:	00abd713          	srli	a4,s7,0xa
8000441c:	00e6c6b3          	xor	a3,a3,a4
80004420:	00d78433          	add	s0,a5,a3
80004424:	011d5693          	srli	a3,s10,0x11
80004428:	00fd1713          	slli	a4,s10,0xf
8000442c:	00d766b3          	or	a3,a4,a3
80004430:	013d5713          	srli	a4,s10,0x13
80004434:	00dd1793          	slli	a5,s10,0xd
80004438:	00e7e733          	or	a4,a5,a4
8000443c:	00160633          	add	a2,a2,ra
80004440:	00e6c6b3          	xor	a3,a3,a4
80004444:	00ad5713          	srli	a4,s10,0xa
80004448:	00e6c6b3          	xor	a3,a3,a4
8000444c:	00d607b3          	add	a5,a2,a3
80004450:	01145613          	srli	a2,s0,0x11
80004454:	00f41693          	slli	a3,s0,0xf
80004458:	00c6e633          	or	a2,a3,a2
8000445c:	01345693          	srli	a3,s0,0x13
80004460:	00d41713          	slli	a4,s0,0xd
80004464:	00d766b3          	or	a3,a4,a3
80004468:	01e88733          	add	a4,a7,t5
8000446c:	00d64633          	xor	a2,a2,a3
80004470:	00a45693          	srli	a3,s0,0xa
80004474:	16812223          	sw	s0,356(sp)
80004478:	00d64633          	xor	a2,a2,a3
8000447c:	00c70db3          	add	s11,a4,a2
80004480:	0117d613          	srli	a2,a5,0x11
80004484:	00f79693          	slli	a3,a5,0xf
80004488:	00c6e633          	or	a2,a3,a2
8000448c:	0137d693          	srli	a3,a5,0x13
80004490:	00d79713          	slli	a4,a5,0xd
80004494:	00d766b3          	or	a3,a4,a3
80004498:	16812703          	lw	a4,360(sp)
8000449c:	00e80733          	add	a4,a6,a4
800044a0:	00d64633          	xor	a2,a2,a3
800044a4:	00a7d693          	srli	a3,a5,0xa
800044a8:	00078893          	mv	a7,a5
800044ac:	14f12623          	sw	a5,332(sp)
800044b0:	00d64633          	xor	a2,a2,a3
800044b4:	00c70cb3          	add	s9,a4,a2
800044b8:	0065d613          	srli	a2,a1,0x6
800044bc:	01a59693          	slli	a3,a1,0x1a
800044c0:	00c6e633          	or	a2,a3,a2
800044c4:	00b5d693          	srli	a3,a1,0xb
800044c8:	01559793          	slli	a5,a1,0x15
800044cc:	00d7e6b3          	or	a3,a5,a3
800044d0:	00d64633          	xor	a2,a2,a3
800044d4:	0195d693          	srli	a3,a1,0x19
800044d8:	00759793          	slli	a5,a1,0x7
800044dc:	00d7e6b3          	or	a3,a5,a3
800044e0:	00a40533          	add	a0,s0,a0
800044e4:	00d64633          	xor	a2,a2,a3
800044e8:	0149c6b3          	xor	a3,s3,s4
800044ec:	00d5f6b3          	and	a3,a1,a3
800044f0:	0146c6b3          	xor	a3,a3,s4
800044f4:	00d50533          	add	a0,a0,a3
800044f8:	00c50533          	add	a0,a0,a2
800044fc:	002fd613          	srli	a2,t6,0x2
80004500:	01ef9693          	slli	a3,t6,0x1e
80004504:	00c6e633          	or	a2,a3,a2
80004508:	00dfd693          	srli	a3,t6,0xd
8000450c:	013f9793          	slli	a5,t6,0x13
80004510:	00d7e6b3          	or	a3,a5,a3
80004514:	00d64633          	xor	a2,a2,a3
80004518:	016fd693          	srli	a3,t6,0x16
8000451c:	00af9793          	slli	a5,t6,0xa
80004520:	00d7e6b3          	or	a3,a5,a3
80004524:	00d64633          	xor	a2,a2,a3
80004528:	007ff6b3          	and	a3,t6,t2
8000452c:	01c3f7b3          	and	a5,t2,t3
80004530:	00f6c7b3          	xor	a5,a3,a5
80004534:	01cff433          	and	s0,t6,t3
80004538:	0087c7b3          	xor	a5,a5,s0
8000453c:	00c78633          	add	a2,a5,a2
80004540:	08412703          	lw	a4,132(sp)
80004544:	00e50533          	add	a0,a0,a4
80004548:	00a60eb3          	add	t4,a2,a0
8000454c:	01850833          	add	a6,a0,s8
80004550:	00685613          	srli	a2,a6,0x6
80004554:	01a81793          	slli	a5,a6,0x1a
80004558:	00c7e633          	or	a2,a5,a2
8000455c:	00b85793          	srli	a5,a6,0xb
80004560:	01581413          	slli	s0,a6,0x15
80004564:	00f467b3          	or	a5,s0,a5
80004568:	00f64633          	xor	a2,a2,a5
8000456c:	01985793          	srli	a5,a6,0x19
80004570:	00781413          	slli	s0,a6,0x7
80004574:	00f467b3          	or	a5,s0,a5
80004578:	00f64633          	xor	a2,a2,a5
8000457c:	014887b3          	add	a5,a7,s4
80004580:	0135c433          	xor	s0,a1,s3
80004584:	00887433          	and	s0,a6,s0
80004588:	01344433          	xor	s0,s0,s3
8000458c:	008787b3          	add	a5,a5,s0
80004590:	00c78633          	add	a2,a5,a2
80004594:	002ed793          	srli	a5,t4,0x2
80004598:	01ee9413          	slli	s0,t4,0x1e
8000459c:	00f467b3          	or	a5,s0,a5
800045a0:	00ded413          	srli	s0,t4,0xd
800045a4:	013e9713          	slli	a4,t4,0x13
800045a8:	00876733          	or	a4,a4,s0
800045ac:	00e7c733          	xor	a4,a5,a4
800045b0:	016ed793          	srli	a5,t4,0x16
800045b4:	00ae9413          	slli	s0,t4,0xa
800045b8:	00f467b3          	or	a5,s0,a5
800045bc:	00f74733          	xor	a4,a4,a5
800045c0:	007fc7b3          	xor	a5,t6,t2
800045c4:	00fef7b3          	and	a5,t4,a5
800045c8:	00d7c6b3          	xor	a3,a5,a3
800045cc:	08012783          	lw	a5,128(sp)
800045d0:	00f60633          	add	a2,a2,a5
800045d4:	00d706b3          	add	a3,a4,a3
800045d8:	00c68333          	add	t1,a3,a2
800045dc:	01c608b3          	add	a7,a2,t3
800045e0:	0068d613          	srli	a2,a7,0x6
800045e4:	01a89693          	slli	a3,a7,0x1a
800045e8:	00c6e633          	or	a2,a3,a2
800045ec:	00b8d693          	srli	a3,a7,0xb
800045f0:	01589713          	slli	a4,a7,0x15
800045f4:	00d766b3          	or	a3,a4,a3
800045f8:	00d64633          	xor	a2,a2,a3
800045fc:	0198d693          	srli	a3,a7,0x19
80004600:	00789713          	slli	a4,a7,0x7
80004604:	00d766b3          	or	a3,a4,a3
80004608:	013d8733          	add	a4,s11,s3
8000460c:	00d64633          	xor	a2,a2,a3
80004610:	00b846b3          	xor	a3,a6,a1
80004614:	00d8f6b3          	and	a3,a7,a3
80004618:	00b6c6b3          	xor	a3,a3,a1
8000461c:	00d706b3          	add	a3,a4,a3
80004620:	00c68633          	add	a2,a3,a2
80004624:	00235693          	srli	a3,t1,0x2
80004628:	01e31713          	slli	a4,t1,0x1e
8000462c:	00d766b3          	or	a3,a4,a3
80004630:	00d35713          	srli	a4,t1,0xd
80004634:	01331413          	slli	s0,t1,0x13
80004638:	00e46733          	or	a4,s0,a4
8000463c:	00e6c6b3          	xor	a3,a3,a4
80004640:	01635713          	srli	a4,t1,0x16
80004644:	00a31413          	slli	s0,t1,0xa
80004648:	00e46733          	or	a4,s0,a4
8000464c:	00e6c6b3          	xor	a3,a3,a4
80004650:	01d37733          	and	a4,t1,t4
80004654:	01fef433          	and	s0,t4,t6
80004658:	00874433          	xor	s0,a4,s0
8000465c:	01f374b3          	and	s1,t1,t6
80004660:	00944433          	xor	s0,s0,s1
80004664:	00d406b3          	add	a3,s0,a3
80004668:	07c12483          	lw	s1,124(sp)
8000466c:	00960633          	add	a2,a2,s1
80004670:	00c689b3          	add	s3,a3,a2
80004674:	007604b3          	add	s1,a2,t2
80004678:	0064d613          	srli	a2,s1,0x6
8000467c:	01a49693          	slli	a3,s1,0x1a
80004680:	00c6e633          	or	a2,a3,a2
80004684:	00b4d693          	srli	a3,s1,0xb
80004688:	01549413          	slli	s0,s1,0x15
8000468c:	00d466b3          	or	a3,s0,a3
80004690:	00d64633          	xor	a2,a2,a3
80004694:	0194d693          	srli	a3,s1,0x19
80004698:	00749413          	slli	s0,s1,0x7
8000469c:	00d466b3          	or	a3,s0,a3
800046a0:	00d64633          	xor	a2,a2,a3
800046a4:	00bc85b3          	add	a1,s9,a1
800046a8:	0108c6b3          	xor	a3,a7,a6
800046ac:	00d4f6b3          	and	a3,s1,a3
800046b0:	0106c6b3          	xor	a3,a3,a6
800046b4:	00d585b3          	add	a1,a1,a3
800046b8:	00c585b3          	add	a1,a1,a2
800046bc:	0029d613          	srli	a2,s3,0x2
800046c0:	01e99693          	slli	a3,s3,0x1e
800046c4:	00c6e633          	or	a2,a3,a2
800046c8:	00d9d693          	srli	a3,s3,0xd
800046cc:	01399413          	slli	s0,s3,0x13
800046d0:	00d466b3          	or	a3,s0,a3
800046d4:	00d64633          	xor	a2,a2,a3
800046d8:	0169d693          	srli	a3,s3,0x16
800046dc:	00a99413          	slli	s0,s3,0xa
800046e0:	00d466b3          	or	a3,s0,a3
800046e4:	00d64633          	xor	a2,a2,a3
800046e8:	01d346b3          	xor	a3,t1,t4
800046ec:	00d9f6b3          	and	a3,s3,a3
800046f0:	00e6c6b3          	xor	a3,a3,a4
800046f4:	07812703          	lw	a4,120(sp)
800046f8:	00e585b3          	add	a1,a1,a4
800046fc:	00d60633          	add	a2,a2,a3
80004700:	00b602b3          	add	t0,a2,a1
80004704:	01f58933          	add	s2,a1,t6
80004708:	15c12783          	lw	a5,348(sp)
8000470c:	0077d613          	srli	a2,a5,0x7
80004710:	01979713          	slli	a4,a5,0x19
80004714:	00c763b3          	or	t2,a4,a2
80004718:	007b5713          	srli	a4,s6,0x7
8000471c:	019b1413          	slli	s0,s6,0x19
80004720:	00e46fb3          	or	t6,s0,a4
80004724:	15012503          	lw	a0,336(sp)
80004728:	00755413          	srli	s0,a0,0x7
8000472c:	01951613          	slli	a2,a0,0x19
80004730:	00866c33          	or	s8,a2,s0
80004734:	16012583          	lw	a1,352(sp)
80004738:	0075d413          	srli	s0,a1,0x7
8000473c:	01959713          	slli	a4,a1,0x19
80004740:	00876a33          	or	s4,a4,s0
80004744:	0127d413          	srli	s0,a5,0x12
80004748:	00e79613          	slli	a2,a5,0xe
8000474c:	00866ab3          	or	s5,a2,s0
80004750:	012b5413          	srli	s0,s6,0x12
80004754:	00eb1713          	slli	a4,s6,0xe
80004758:	00876e33          	or	t3,a4,s0
8000475c:	01255413          	srli	s0,a0,0x12
80004760:	00e51693          	slli	a3,a0,0xe
80004764:	00050713          	mv	a4,a0
80004768:	0086e6b3          	or	a3,a3,s0
8000476c:	0125d413          	srli	s0,a1,0x12
80004770:	00e59613          	slli	a2,a1,0xe
80004774:	00058513          	mv	a0,a1
80004778:	00866633          	or	a2,a2,s0
8000477c:	007ac433          	xor	s0,s5,t2
80004780:	01fe43b3          	xor	t2,t3,t6
80004784:	0186c6b3          	xor	a3,a3,s8
80004788:	01464633          	xor	a2,a2,s4
8000478c:	0037d593          	srli	a1,a5,0x3
80004790:	00b445b3          	xor	a1,s0,a1
80004794:	003b5413          	srli	s0,s6,0x3
80004798:	0083c3b3          	xor	t2,t2,s0
8000479c:	00375413          	srli	s0,a4,0x3
800047a0:	0086c6b3          	xor	a3,a3,s0
800047a4:	00355413          	srli	s0,a0,0x3
800047a8:	00864633          	xor	a2,a2,s0
800047ac:	01658fb3          	add	t6,a1,s6
800047b0:	00e383b3          	add	t2,t2,a4
800047b4:	00a686b3          	add	a3,a3,a0
800047b8:	14812503          	lw	a0,328(sp)
800047bc:	00a60633          	add	a2,a2,a0
800047c0:	011dd413          	srli	s0,s11,0x11
800047c4:	00fd9593          	slli	a1,s11,0xf
800047c8:	0085e5b3          	or	a1,a1,s0
800047cc:	013dd413          	srli	s0,s11,0x13
800047d0:	00dd9713          	slli	a4,s11,0xd
800047d4:	00876733          	or	a4,a4,s0
800047d8:	15412503          	lw	a0,340(sp)
800047dc:	00a60633          	add	a2,a2,a0
800047e0:	00e5c5b3          	xor	a1,a1,a4
800047e4:	00add713          	srli	a4,s11,0xa
800047e8:	00e5c5b3          	xor	a1,a1,a4
800047ec:	00b60433          	add	s0,a2,a1
800047f0:	011cd593          	srli	a1,s9,0x11
800047f4:	00fc9613          	slli	a2,s9,0xf
800047f8:	00b665b3          	or	a1,a2,a1
800047fc:	013cd613          	srli	a2,s9,0x13
80004800:	00dc9713          	slli	a4,s9,0xd
80004804:	00c76633          	or	a2,a4,a2
80004808:	017686b3          	add	a3,a3,s7
8000480c:	00c5c5b3          	xor	a1,a1,a2
80004810:	00acd613          	srli	a2,s9,0xa
80004814:	00c5c5b3          	xor	a1,a1,a2
80004818:	00b68533          	add	a0,a3,a1
8000481c:	01145593          	srli	a1,s0,0x11
80004820:	00f41613          	slli	a2,s0,0xf
80004824:	00b665b3          	or	a1,a2,a1
80004828:	01345613          	srli	a2,s0,0x13
8000482c:	00d41693          	slli	a3,s0,0xd
80004830:	00c6e633          	or	a2,a3,a2
80004834:	01a386b3          	add	a3,t2,s10
80004838:	00c5c5b3          	xor	a1,a1,a2
8000483c:	00a45613          	srli	a2,s0,0xa
80004840:	16812023          	sw	s0,352(sp)
80004844:	00c5c5b3          	xor	a1,a1,a2
80004848:	00b683b3          	add	t2,a3,a1
8000484c:	01155593          	srli	a1,a0,0x11
80004850:	00f51613          	slli	a2,a0,0xf
80004854:	00b665b3          	or	a1,a2,a1
80004858:	01355613          	srli	a2,a0,0x13
8000485c:	00050713          	mv	a4,a0
80004860:	00d51693          	slli	a3,a0,0xd
80004864:	00c6e633          	or	a2,a3,a2
80004868:	16412503          	lw	a0,356(sp)
8000486c:	00af86b3          	add	a3,t6,a0
80004870:	00c5c5b3          	xor	a1,a1,a2
80004874:	00a75613          	srli	a2,a4,0xa
80004878:	00070793          	mv	a5,a4
8000487c:	14e12423          	sw	a4,328(sp)
80004880:	00c5c5b3          	xor	a1,a1,a2
80004884:	00b68c33          	add	s8,a3,a1
80004888:	00695593          	srli	a1,s2,0x6
8000488c:	01a91613          	slli	a2,s2,0x1a
80004890:	00b665b3          	or	a1,a2,a1
80004894:	00b95613          	srli	a2,s2,0xb
80004898:	01591693          	slli	a3,s2,0x15
8000489c:	00c6e633          	or	a2,a3,a2
800048a0:	00c5c5b3          	xor	a1,a1,a2
800048a4:	01995613          	srli	a2,s2,0x19
800048a8:	00791693          	slli	a3,s2,0x7
800048ac:	00c6e633          	or	a2,a3,a2
800048b0:	01040533          	add	a0,s0,a6
800048b4:	00c5c5b3          	xor	a1,a1,a2
800048b8:	0114c633          	xor	a2,s1,a7
800048bc:	00c97633          	and	a2,s2,a2
800048c0:	01164633          	xor	a2,a2,a7
800048c4:	00c50533          	add	a0,a0,a2
800048c8:	00b50533          	add	a0,a0,a1
800048cc:	0022d593          	srli	a1,t0,0x2
800048d0:	01e29613          	slli	a2,t0,0x1e
800048d4:	00b665b3          	or	a1,a2,a1
800048d8:	00d2d613          	srli	a2,t0,0xd
800048dc:	01329693          	slli	a3,t0,0x13
800048e0:	00c6e633          	or	a2,a3,a2
800048e4:	00c5c5b3          	xor	a1,a1,a2
800048e8:	0162d613          	srli	a2,t0,0x16
800048ec:	00a29693          	slli	a3,t0,0xa
800048f0:	00c6e633          	or	a2,a3,a2
800048f4:	00c5c5b3          	xor	a1,a1,a2
800048f8:	0132f633          	and	a2,t0,s3
800048fc:	0069f6b3          	and	a3,s3,t1
80004900:	00d646b3          	xor	a3,a2,a3
80004904:	0062f733          	and	a4,t0,t1
80004908:	00e6c6b3          	xor	a3,a3,a4
8000490c:	00b685b3          	add	a1,a3,a1
80004910:	07412683          	lw	a3,116(sp)
80004914:	00d50533          	add	a0,a0,a3
80004918:	00a58e33          	add	t3,a1,a0
8000491c:	01d50533          	add	a0,a0,t4
80004920:	00655593          	srli	a1,a0,0x6
80004924:	01a51693          	slli	a3,a0,0x1a
80004928:	00b6e5b3          	or	a1,a3,a1
8000492c:	00b55693          	srli	a3,a0,0xb
80004930:	01551713          	slli	a4,a0,0x15
80004934:	00d766b3          	or	a3,a4,a3
80004938:	00d5c5b3          	xor	a1,a1,a3
8000493c:	01955693          	srli	a3,a0,0x19
80004940:	00751713          	slli	a4,a0,0x7
80004944:	00d766b3          	or	a3,a4,a3
80004948:	00d5c5b3          	xor	a1,a1,a3
8000494c:	011786b3          	add	a3,a5,a7
80004950:	00994733          	xor	a4,s2,s1
80004954:	00e57733          	and	a4,a0,a4
80004958:	00974733          	xor	a4,a4,s1
8000495c:	00e686b3          	add	a3,a3,a4
80004960:	00b685b3          	add	a1,a3,a1
80004964:	002e5693          	srli	a3,t3,0x2
80004968:	01ee1713          	slli	a4,t3,0x1e
8000496c:	00d766b3          	or	a3,a4,a3
80004970:	00de5713          	srli	a4,t3,0xd
80004974:	013e1793          	slli	a5,t3,0x13
80004978:	00e7e733          	or	a4,a5,a4
8000497c:	00e6c6b3          	xor	a3,a3,a4
80004980:	016e5713          	srli	a4,t3,0x16
80004984:	00ae1793          	slli	a5,t3,0xa
80004988:	00e7e733          	or	a4,a5,a4
8000498c:	00e6c6b3          	xor	a3,a3,a4
80004990:	0132c733          	xor	a4,t0,s3
80004994:	00ee7733          	and	a4,t3,a4
80004998:	00c74633          	xor	a2,a4,a2
8000499c:	07012703          	lw	a4,112(sp)
800049a0:	00e585b3          	add	a1,a1,a4
800049a4:	00c68633          	add	a2,a3,a2
800049a8:	00b60ab3          	add	s5,a2,a1
800049ac:	006587b3          	add	a5,a1,t1
800049b0:	0067d593          	srli	a1,a5,0x6
800049b4:	01a79613          	slli	a2,a5,0x1a
800049b8:	00b665b3          	or	a1,a2,a1
800049bc:	00b7d613          	srli	a2,a5,0xb
800049c0:	01579693          	slli	a3,a5,0x15
800049c4:	00c6e633          	or	a2,a3,a2
800049c8:	00c5c5b3          	xor	a1,a1,a2
800049cc:	0197d613          	srli	a2,a5,0x19
800049d0:	00779693          	slli	a3,a5,0x7
800049d4:	00c6e633          	or	a2,a3,a2
800049d8:	009386b3          	add	a3,t2,s1
800049dc:	00038f93          	mv	t6,t2
800049e0:	00c5c5b3          	xor	a1,a1,a2
800049e4:	01254633          	xor	a2,a0,s2
800049e8:	00c7f633          	and	a2,a5,a2
800049ec:	01264633          	xor	a2,a2,s2
800049f0:	00c68633          	add	a2,a3,a2
800049f4:	00b605b3          	add	a1,a2,a1
800049f8:	002ad613          	srli	a2,s5,0x2
800049fc:	01ea9693          	slli	a3,s5,0x1e
80004a00:	00c6e633          	or	a2,a3,a2
80004a04:	00dad693          	srli	a3,s5,0xd
80004a08:	013a9713          	slli	a4,s5,0x13
80004a0c:	00d766b3          	or	a3,a4,a3
80004a10:	00d64633          	xor	a2,a2,a3
80004a14:	016ad693          	srli	a3,s5,0x16
80004a18:	00aa9713          	slli	a4,s5,0xa
80004a1c:	00d766b3          	or	a3,a4,a3
80004a20:	00d64633          	xor	a2,a2,a3
80004a24:	01caf6b3          	and	a3,s5,t3
80004a28:	005e7733          	and	a4,t3,t0
80004a2c:	00e6c733          	xor	a4,a3,a4
80004a30:	005af4b3          	and	s1,s5,t0
80004a34:	00974733          	xor	a4,a4,s1
80004a38:	00c70633          	add	a2,a4,a2
80004a3c:	06c12703          	lw	a4,108(sp)
80004a40:	00e585b3          	add	a1,a1,a4
80004a44:	00b60a33          	add	s4,a2,a1
80004a48:	013584b3          	add	s1,a1,s3
80004a4c:	0064d593          	srli	a1,s1,0x6
80004a50:	01a49613          	slli	a2,s1,0x1a
80004a54:	00b665b3          	or	a1,a2,a1
80004a58:	00b4d613          	srli	a2,s1,0xb
80004a5c:	01549713          	slli	a4,s1,0x15
80004a60:	00c76633          	or	a2,a4,a2
80004a64:	00c5c5b3          	xor	a1,a1,a2
80004a68:	0194d613          	srli	a2,s1,0x19
80004a6c:	00749713          	slli	a4,s1,0x7
80004a70:	00c76633          	or	a2,a4,a2
80004a74:	00c5c5b3          	xor	a1,a1,a2
80004a78:	012c0633          	add	a2,s8,s2
80004a7c:	00a7c733          	xor	a4,a5,a0
80004a80:	00e4f733          	and	a4,s1,a4
80004a84:	00a74733          	xor	a4,a4,a0
80004a88:	00e60633          	add	a2,a2,a4
80004a8c:	00b605b3          	add	a1,a2,a1
80004a90:	002a5613          	srli	a2,s4,0x2
80004a94:	01ea1713          	slli	a4,s4,0x1e
80004a98:	00c76633          	or	a2,a4,a2
80004a9c:	00da5713          	srli	a4,s4,0xd
80004aa0:	013a1413          	slli	s0,s4,0x13
80004aa4:	00e46733          	or	a4,s0,a4
80004aa8:	00e64633          	xor	a2,a2,a4
80004aac:	016a5713          	srli	a4,s4,0x16
80004ab0:	00aa1413          	slli	s0,s4,0xa
80004ab4:	00e46733          	or	a4,s0,a4
80004ab8:	00e64633          	xor	a2,a2,a4
80004abc:	01cac733          	xor	a4,s5,t3
80004ac0:	00ea7733          	and	a4,s4,a4
80004ac4:	00d746b3          	xor	a3,a4,a3
80004ac8:	06812703          	lw	a4,104(sp)
80004acc:	00e585b3          	add	a1,a1,a4
80004ad0:	00d60633          	add	a2,a2,a3
80004ad4:	00b60333          	add	t1,a2,a1
80004ad8:	00558833          	add	a6,a1,t0
80004adc:	16812b03          	lw	s6,360(sp)
80004ae0:	007b5593          	srli	a1,s6,0x7
80004ae4:	019b1613          	slli	a2,s6,0x19
80004ae8:	00b663b3          	or	t2,a2,a1
80004aec:	007f5613          	srli	a2,t5,0x7
80004af0:	019f1713          	slli	a4,t5,0x19
80004af4:	00c762b3          	or	t0,a4,a2
80004af8:	0070d713          	srli	a4,ra,0x7
80004afc:	01909413          	slli	s0,ra,0x19
80004b00:	00e46933          	or	s2,s0,a4
80004b04:	14412e83          	lw	t4,324(sp)
80004b08:	007ed413          	srli	s0,t4,0x7
80004b0c:	019e9593          	slli	a1,t4,0x19
80004b10:	0085e9b3          	or	s3,a1,s0
80004b14:	012b5413          	srli	s0,s6,0x12
80004b18:	00eb1613          	slli	a2,s6,0xe
80004b1c:	008668b3          	or	a7,a2,s0
80004b20:	012f5413          	srli	s0,t5,0x12
80004b24:	00ef1713          	slli	a4,t5,0xe
80004b28:	00876733          	or	a4,a4,s0
80004b2c:	0120d413          	srli	s0,ra,0x12
80004b30:	00e09593          	slli	a1,ra,0xe
80004b34:	0085e5b3          	or	a1,a1,s0
80004b38:	012ed413          	srli	s0,t4,0x12
80004b3c:	00ee9613          	slli	a2,t4,0xe
80004b40:	00866633          	or	a2,a2,s0
80004b44:	0078c433          	xor	s0,a7,t2
80004b48:	00574733          	xor	a4,a4,t0
80004b4c:	0125c5b3          	xor	a1,a1,s2
80004b50:	01364633          	xor	a2,a2,s3
80004b54:	003b5693          	srli	a3,s6,0x3
80004b58:	00d446b3          	xor	a3,s0,a3
80004b5c:	003f5413          	srli	s0,t5,0x3
80004b60:	00874733          	xor	a4,a4,s0
80004b64:	0030d413          	srli	s0,ra,0x3
80004b68:	0085c5b3          	xor	a1,a1,s0
80004b6c:	003ed413          	srli	s0,t4,0x3
80004b70:	00864633          	xor	a2,a2,s0
80004b74:	01e68f33          	add	t5,a3,t5
80004b78:	001708b3          	add	a7,a4,ra
80004b7c:	01d585b3          	add	a1,a1,t4
80004b80:	15c12683          	lw	a3,348(sp)
80004b84:	00d60633          	add	a2,a2,a3
80004b88:	011fd413          	srli	s0,t6,0x11
80004b8c:	00ff9693          	slli	a3,t6,0xf
80004b90:	0086e6b3          	or	a3,a3,s0
80004b94:	013fd413          	srli	s0,t6,0x13
80004b98:	00df9713          	slli	a4,t6,0xd
80004b9c:	00876733          	or	a4,a4,s0
80004ba0:	14c12403          	lw	s0,332(sp)
80004ba4:	00860633          	add	a2,a2,s0
80004ba8:	00e6c6b3          	xor	a3,a3,a4
80004bac:	00afd713          	srli	a4,t6,0xa
80004bb0:	000f8b13          	mv	s6,t6
80004bb4:	00e6c6b3          	xor	a3,a3,a4
80004bb8:	00d60433          	add	s0,a2,a3
80004bbc:	011c5613          	srli	a2,s8,0x11
80004bc0:	00fc1693          	slli	a3,s8,0xf
80004bc4:	00c6e633          	or	a2,a3,a2
80004bc8:	013c5693          	srli	a3,s8,0x13
80004bcc:	00dc1713          	slli	a4,s8,0xd
80004bd0:	00d766b3          	or	a3,a4,a3
80004bd4:	01b585b3          	add	a1,a1,s11
80004bd8:	00d64633          	xor	a2,a2,a3
80004bdc:	00ac5693          	srli	a3,s8,0xa
80004be0:	00d64633          	xor	a2,a2,a3
80004be4:	00c58733          	add	a4,a1,a2
80004be8:	01145593          	srli	a1,s0,0x11
80004bec:	00f41613          	slli	a2,s0,0xf
80004bf0:	00b665b3          	or	a1,a2,a1
80004bf4:	01345613          	srli	a2,s0,0x13
80004bf8:	00d41693          	slli	a3,s0,0xd
80004bfc:	00c6e633          	or	a2,a3,a2
80004c00:	019886b3          	add	a3,a7,s9
80004c04:	00c5c5b3          	xor	a1,a1,a2
80004c08:	00a45613          	srli	a2,s0,0xa
80004c0c:	14812e23          	sw	s0,348(sp)
80004c10:	00c5c5b3          	xor	a1,a1,a2
80004c14:	00b680b3          	add	ra,a3,a1
80004c18:	01175593          	srli	a1,a4,0x11
80004c1c:	00f71613          	slli	a2,a4,0xf
80004c20:	00b665b3          	or	a1,a2,a1
80004c24:	01375613          	srli	a2,a4,0x13
80004c28:	00d71693          	slli	a3,a4,0xd
80004c2c:	00c6e633          	or	a2,a3,a2
80004c30:	16012683          	lw	a3,352(sp)
80004c34:	00df06b3          	add	a3,t5,a3
80004c38:	00c5c5b3          	xor	a1,a1,a2
80004c3c:	00a75613          	srli	a2,a4,0xa
80004c40:	00070893          	mv	a7,a4
80004c44:	14e12823          	sw	a4,336(sp)
80004c48:	00c5c5b3          	xor	a1,a1,a2
80004c4c:	00b68eb3          	add	t4,a3,a1
80004c50:	00685593          	srli	a1,a6,0x6
80004c54:	01a81613          	slli	a2,a6,0x1a
80004c58:	00b665b3          	or	a1,a2,a1
80004c5c:	00b85613          	srli	a2,a6,0xb
80004c60:	01581693          	slli	a3,a6,0x15
80004c64:	00c6e633          	or	a2,a3,a2
80004c68:	00c5c5b3          	xor	a1,a1,a2
80004c6c:	01985613          	srli	a2,a6,0x19
80004c70:	00781693          	slli	a3,a6,0x7
80004c74:	00c6e633          	or	a2,a3,a2
80004c78:	00a40533          	add	a0,s0,a0
80004c7c:	00c5c5b3          	xor	a1,a1,a2
80004c80:	00f4c633          	xor	a2,s1,a5
80004c84:	00c87633          	and	a2,a6,a2
80004c88:	00f64633          	xor	a2,a2,a5
80004c8c:	00c50533          	add	a0,a0,a2
80004c90:	00b50533          	add	a0,a0,a1
80004c94:	00235593          	srli	a1,t1,0x2
80004c98:	01e31613          	slli	a2,t1,0x1e
80004c9c:	00b665b3          	or	a1,a2,a1
80004ca0:	00d35613          	srli	a2,t1,0xd
80004ca4:	01331693          	slli	a3,t1,0x13
80004ca8:	00c6e633          	or	a2,a3,a2
80004cac:	00c5c5b3          	xor	a1,a1,a2
80004cb0:	01635613          	srli	a2,t1,0x16
80004cb4:	00a31693          	slli	a3,t1,0xa
80004cb8:	00c6e633          	or	a2,a3,a2
80004cbc:	00c5c5b3          	xor	a1,a1,a2
80004cc0:	01437633          	and	a2,t1,s4
80004cc4:	015a76b3          	and	a3,s4,s5
80004cc8:	00d646b3          	xor	a3,a2,a3
80004ccc:	01537733          	and	a4,t1,s5
80004cd0:	00e6c6b3          	xor	a3,a3,a4
80004cd4:	00b685b3          	add	a1,a3,a1
80004cd8:	06412683          	lw	a3,100(sp)
80004cdc:	00d50533          	add	a0,a0,a3
80004ce0:	00a58f33          	add	t5,a1,a0
80004ce4:	01c50933          	add	s2,a0,t3
80004ce8:	00695513          	srli	a0,s2,0x6
80004cec:	01a91593          	slli	a1,s2,0x1a
80004cf0:	00a5e533          	or	a0,a1,a0
80004cf4:	00b95593          	srli	a1,s2,0xb
80004cf8:	01591693          	slli	a3,s2,0x15
80004cfc:	00b6e5b3          	or	a1,a3,a1
80004d00:	00b54533          	xor	a0,a0,a1
80004d04:	01995593          	srli	a1,s2,0x19
80004d08:	00791693          	slli	a3,s2,0x7
80004d0c:	00b6e5b3          	or	a1,a3,a1
80004d10:	00b54533          	xor	a0,a0,a1
80004d14:	00f885b3          	add	a1,a7,a5
80004d18:	009846b3          	xor	a3,a6,s1
80004d1c:	00d976b3          	and	a3,s2,a3
80004d20:	0096c6b3          	xor	a3,a3,s1
80004d24:	00d585b3          	add	a1,a1,a3
80004d28:	00a58533          	add	a0,a1,a0
80004d2c:	002f5593          	srli	a1,t5,0x2
80004d30:	01ef1693          	slli	a3,t5,0x1e
80004d34:	00b6e5b3          	or	a1,a3,a1
80004d38:	00df5693          	srli	a3,t5,0xd
80004d3c:	013f1713          	slli	a4,t5,0x13
80004d40:	00d766b3          	or	a3,a4,a3
80004d44:	00d5c5b3          	xor	a1,a1,a3
80004d48:	016f5693          	srli	a3,t5,0x16
80004d4c:	00af1713          	slli	a4,t5,0xa
80004d50:	00d766b3          	or	a3,a4,a3
80004d54:	00d5c5b3          	xor	a1,a1,a3
80004d58:	014346b3          	xor	a3,t1,s4
80004d5c:	00df76b3          	and	a3,t5,a3
80004d60:	00c6c633          	xor	a2,a3,a2
80004d64:	06012683          	lw	a3,96(sp)
80004d68:	00d50533          	add	a0,a0,a3
80004d6c:	00c585b3          	add	a1,a1,a2
80004d70:	00a582b3          	add	t0,a1,a0
80004d74:	01550ab3          	add	s5,a0,s5
80004d78:	006ad513          	srli	a0,s5,0x6
80004d7c:	01aa9613          	slli	a2,s5,0x1a
80004d80:	00a66533          	or	a0,a2,a0
80004d84:	00bad613          	srli	a2,s5,0xb
80004d88:	015a9693          	slli	a3,s5,0x15
80004d8c:	00c6e633          	or	a2,a3,a2
80004d90:	00c54533          	xor	a0,a0,a2
80004d94:	019ad613          	srli	a2,s5,0x19
80004d98:	007a9693          	slli	a3,s5,0x7
80004d9c:	00c6e633          	or	a2,a3,a2
80004da0:	009086b3          	add	a3,ra,s1
80004da4:	00c54533          	xor	a0,a0,a2
80004da8:	01094633          	xor	a2,s2,a6
80004dac:	00caf633          	and	a2,s5,a2
80004db0:	01064633          	xor	a2,a2,a6
80004db4:	00c68633          	add	a2,a3,a2
80004db8:	00a60533          	add	a0,a2,a0
80004dbc:	0022d613          	srli	a2,t0,0x2
80004dc0:	01e29693          	slli	a3,t0,0x1e
80004dc4:	00c6e633          	or	a2,a3,a2
80004dc8:	00d2d693          	srli	a3,t0,0xd
80004dcc:	01329713          	slli	a4,t0,0x13
80004dd0:	00d766b3          	or	a3,a4,a3
80004dd4:	00d64633          	xor	a2,a2,a3
80004dd8:	0162d693          	srli	a3,t0,0x16
80004ddc:	00a29713          	slli	a4,t0,0xa
80004de0:	00d766b3          	or	a3,a4,a3
80004de4:	00d64633          	xor	a2,a2,a3
80004de8:	01e2f6b3          	and	a3,t0,t5
80004dec:	006f7733          	and	a4,t5,t1
80004df0:	00e6c733          	xor	a4,a3,a4
80004df4:	0062f7b3          	and	a5,t0,t1
80004df8:	00f74733          	xor	a4,a4,a5
80004dfc:	00c70633          	add	a2,a4,a2
80004e00:	05c12703          	lw	a4,92(sp)
80004e04:	00e50533          	add	a0,a0,a4
80004e08:	00a608b3          	add	a7,a2,a0
80004e0c:	01450533          	add	a0,a0,s4
80004e10:	00655613          	srli	a2,a0,0x6
80004e14:	01a51713          	slli	a4,a0,0x1a
80004e18:	00c76633          	or	a2,a4,a2
80004e1c:	00b55713          	srli	a4,a0,0xb
80004e20:	01551493          	slli	s1,a0,0x15
80004e24:	00e4e733          	or	a4,s1,a4
80004e28:	00e64633          	xor	a2,a2,a4
80004e2c:	01955713          	srli	a4,a0,0x19
80004e30:	00751493          	slli	s1,a0,0x7
80004e34:	00e4e733          	or	a4,s1,a4
80004e38:	00e64633          	xor	a2,a2,a4
80004e3c:	010e8733          	add	a4,t4,a6
80004e40:	012ac4b3          	xor	s1,s5,s2
80004e44:	009574b3          	and	s1,a0,s1
80004e48:	0124c4b3          	xor	s1,s1,s2
80004e4c:	00970733          	add	a4,a4,s1
80004e50:	00c70633          	add	a2,a4,a2
80004e54:	0028d713          	srli	a4,a7,0x2
80004e58:	01e89493          	slli	s1,a7,0x1e
80004e5c:	00e4e733          	or	a4,s1,a4
80004e60:	00d8d493          	srli	s1,a7,0xd
80004e64:	01389413          	slli	s0,a7,0x13
80004e68:	009464b3          	or	s1,s0,s1
80004e6c:	00974733          	xor	a4,a4,s1
80004e70:	0168d493          	srli	s1,a7,0x16
80004e74:	00a89413          	slli	s0,a7,0xa
80004e78:	009464b3          	or	s1,s0,s1
80004e7c:	00974733          	xor	a4,a4,s1
80004e80:	01e2c4b3          	xor	s1,t0,t5
80004e84:	0098f4b3          	and	s1,a7,s1
80004e88:	00d4c6b3          	xor	a3,s1,a3
80004e8c:	05812783          	lw	a5,88(sp)
80004e90:	00f60633          	add	a2,a2,a5
80004e94:	00d706b3          	add	a3,a4,a3
80004e98:	00c68a33          	add	s4,a3,a2
80004e9c:	006603b3          	add	t2,a2,t1
80004ea0:	16412783          	lw	a5,356(sp)
80004ea4:	0077d613          	srli	a2,a5,0x7
80004ea8:	01979693          	slli	a3,a5,0x19
80004eac:	00c6e833          	or	a6,a3,a2
80004eb0:	007d5693          	srli	a3,s10,0x7
80004eb4:	019d1713          	slli	a4,s10,0x19
80004eb8:	00d76333          	or	t1,a4,a3
80004ebc:	007bd713          	srli	a4,s7,0x7
80004ec0:	019b9413          	slli	s0,s7,0x19
80004ec4:	00e46e33          	or	t3,s0,a4
80004ec8:	15412583          	lw	a1,340(sp)
80004ecc:	0075d413          	srli	s0,a1,0x7
80004ed0:	01959613          	slli	a2,a1,0x19
80004ed4:	008669b3          	or	s3,a2,s0
80004ed8:	0127d413          	srli	s0,a5,0x12
80004edc:	00e79693          	slli	a3,a5,0xe
80004ee0:	00078493          	mv	s1,a5
80004ee4:	0086e6b3          	or	a3,a3,s0
80004ee8:	012d5413          	srli	s0,s10,0x12
80004eec:	00ed1713          	slli	a4,s10,0xe
80004ef0:	00876733          	or	a4,a4,s0
80004ef4:	012bd413          	srli	s0,s7,0x12
80004ef8:	00eb9613          	slli	a2,s7,0xe
80004efc:	00866633          	or	a2,a2,s0
80004f00:	0125d413          	srli	s0,a1,0x12
80004f04:	00e59793          	slli	a5,a1,0xe
80004f08:	0087e7b3          	or	a5,a5,s0
80004f0c:	0106c6b3          	xor	a3,a3,a6
80004f10:	00674733          	xor	a4,a4,t1
80004f14:	01c64633          	xor	a2,a2,t3
80004f18:	0137c7b3          	xor	a5,a5,s3
80004f1c:	0034d413          	srli	s0,s1,0x3
80004f20:	0086c6b3          	xor	a3,a3,s0
80004f24:	003d5413          	srli	s0,s10,0x3
80004f28:	00874733          	xor	a4,a4,s0
80004f2c:	003bd413          	srli	s0,s7,0x3
80004f30:	00864633          	xor	a2,a2,s0
80004f34:	0035d413          	srli	s0,a1,0x3
80004f38:	0087c7b3          	xor	a5,a5,s0
80004f3c:	01a68833          	add	a6,a3,s10
80004f40:	01770333          	add	t1,a4,s7
80004f44:	00b60633          	add	a2,a2,a1
80004f48:	16812583          	lw	a1,360(sp)
80004f4c:	00b787b3          	add	a5,a5,a1
80004f50:	0110d413          	srli	s0,ra,0x11
80004f54:	00f09693          	slli	a3,ra,0xf
80004f58:	0086e6b3          	or	a3,a3,s0
80004f5c:	0130d413          	srli	s0,ra,0x13
80004f60:	00d09713          	slli	a4,ra,0xd
80004f64:	00876733          	or	a4,a4,s0
80004f68:	14812583          	lw	a1,328(sp)
80004f6c:	00b787b3          	add	a5,a5,a1
80004f70:	00e6c6b3          	xor	a3,a3,a4
80004f74:	00a0d713          	srli	a4,ra,0xa
80004f78:	00e6c6b3          	xor	a3,a3,a4
80004f7c:	00d785b3          	add	a1,a5,a3
80004f80:	011ed693          	srli	a3,t4,0x11
80004f84:	00fe9713          	slli	a4,t4,0xf
80004f88:	00d766b3          	or	a3,a4,a3
80004f8c:	013ed713          	srli	a4,t4,0x13
80004f90:	00de9793          	slli	a5,t4,0xd
80004f94:	00e7e733          	or	a4,a5,a4
80004f98:	01f60633          	add	a2,a2,t6
80004f9c:	00e6c6b3          	xor	a3,a3,a4
80004fa0:	00aed713          	srli	a4,t4,0xa
80004fa4:	00e6c6b3          	xor	a3,a3,a4
80004fa8:	00d607b3          	add	a5,a2,a3
80004fac:	0115d613          	srli	a2,a1,0x11
80004fb0:	00f59693          	slli	a3,a1,0xf
80004fb4:	00c6e633          	or	a2,a3,a2
80004fb8:	0135d693          	srli	a3,a1,0x13
80004fbc:	00d59713          	slli	a4,a1,0xd
80004fc0:	00d766b3          	or	a3,a4,a3
80004fc4:	01830733          	add	a4,t1,s8
80004fc8:	00d64633          	xor	a2,a2,a3
80004fcc:	00a5d693          	srli	a3,a1,0xa
80004fd0:	16b12423          	sw	a1,360(sp)
80004fd4:	00d64633          	xor	a2,a2,a3
80004fd8:	00c70fb3          	add	t6,a4,a2
80004fdc:	0117d613          	srli	a2,a5,0x11
80004fe0:	00f79693          	slli	a3,a5,0xf
80004fe4:	00c6e633          	or	a2,a3,a2
80004fe8:	0137d693          	srli	a3,a5,0x13
80004fec:	00d79713          	slli	a4,a5,0xd
80004ff0:	00d766b3          	or	a3,a4,a3
80004ff4:	15c12703          	lw	a4,348(sp)
80004ff8:	00e80733          	add	a4,a6,a4
80004ffc:	00d64633          	xor	a2,a2,a3
80005000:	00a7d693          	srli	a3,a5,0xa
80005004:	00078313          	mv	t1,a5
80005008:	14f12223          	sw	a5,324(sp)
8000500c:	00d64633          	xor	a2,a2,a3
80005010:	00c70e33          	add	t3,a4,a2
80005014:	0063d613          	srli	a2,t2,0x6
80005018:	01a39693          	slli	a3,t2,0x1a
8000501c:	00c6e633          	or	a2,a3,a2
80005020:	00b3d693          	srli	a3,t2,0xb
80005024:	01539713          	slli	a4,t2,0x15
80005028:	00d766b3          	or	a3,a4,a3
8000502c:	00d64633          	xor	a2,a2,a3
80005030:	0193d693          	srli	a3,t2,0x19
80005034:	00739713          	slli	a4,t2,0x7
80005038:	00d766b3          	or	a3,a4,a3
8000503c:	01258733          	add	a4,a1,s2
80005040:	00d64633          	xor	a2,a2,a3
80005044:	015546b3          	xor	a3,a0,s5
80005048:	00d3f6b3          	and	a3,t2,a3
8000504c:	0156c6b3          	xor	a3,a3,s5
80005050:	00d706b3          	add	a3,a4,a3
80005054:	00c68633          	add	a2,a3,a2
80005058:	002a5693          	srli	a3,s4,0x2
8000505c:	01ea1713          	slli	a4,s4,0x1e
80005060:	00d766b3          	or	a3,a4,a3
80005064:	00da5713          	srli	a4,s4,0xd
80005068:	013a1793          	slli	a5,s4,0x13
8000506c:	00e7e733          	or	a4,a5,a4
80005070:	00e6c6b3          	xor	a3,a3,a4
80005074:	016a5713          	srli	a4,s4,0x16
80005078:	00aa1793          	slli	a5,s4,0xa
8000507c:	00e7e733          	or	a4,a5,a4
80005080:	00e6c6b3          	xor	a3,a3,a4
80005084:	011a7833          	and	a6,s4,a7
80005088:	0058f7b3          	and	a5,a7,t0
8000508c:	00f847b3          	xor	a5,a6,a5
80005090:	005a7433          	and	s0,s4,t0
80005094:	0087c7b3          	xor	a5,a5,s0
80005098:	00d786b3          	add	a3,a5,a3
8000509c:	05412703          	lw	a4,84(sp)
800050a0:	00e60633          	add	a2,a2,a4
800050a4:	00c68933          	add	s2,a3,a2
800050a8:	01e60433          	add	s0,a2,t5
800050ac:	00645613          	srli	a2,s0,0x6
800050b0:	01a41693          	slli	a3,s0,0x1a
800050b4:	00c6e633          	or	a2,a3,a2
800050b8:	00b45693          	srli	a3,s0,0xb
800050bc:	01541793          	slli	a5,s0,0x15
800050c0:	00d7e6b3          	or	a3,a5,a3
800050c4:	00d64633          	xor	a2,a2,a3
800050c8:	01945693          	srli	a3,s0,0x19
800050cc:	00741793          	slli	a5,s0,0x7
800050d0:	00d7e6b3          	or	a3,a5,a3
800050d4:	00d64633          	xor	a2,a2,a3
800050d8:	015306b3          	add	a3,t1,s5
800050dc:	00a3c7b3          	xor	a5,t2,a0
800050e0:	00f477b3          	and	a5,s0,a5
800050e4:	00a7c7b3          	xor	a5,a5,a0
800050e8:	00f686b3          	add	a3,a3,a5
800050ec:	00c68633          	add	a2,a3,a2
800050f0:	00295693          	srli	a3,s2,0x2
800050f4:	01e91793          	slli	a5,s2,0x1e
800050f8:	00d7e6b3          	or	a3,a5,a3
800050fc:	00d95793          	srli	a5,s2,0xd
80005100:	01391713          	slli	a4,s2,0x13
80005104:	00f76733          	or	a4,a4,a5
80005108:	00e6c6b3          	xor	a3,a3,a4
8000510c:	01695713          	srli	a4,s2,0x16
80005110:	00a91793          	slli	a5,s2,0xa
80005114:	00e7e733          	or	a4,a5,a4
80005118:	00e6c6b3          	xor	a3,a3,a4
8000511c:	011a4733          	xor	a4,s4,a7
80005120:	00e97733          	and	a4,s2,a4
80005124:	01074733          	xor	a4,a4,a6
80005128:	05012783          	lw	a5,80(sp)
8000512c:	00f607b3          	add	a5,a2,a5
80005130:	00e68633          	add	a2,a3,a4
80005134:	00f60bb3          	add	s7,a2,a5
80005138:	00578833          	add	a6,a5,t0
8000513c:	00685693          	srli	a3,a6,0x6
80005140:	01a81713          	slli	a4,a6,0x1a
80005144:	00d766b3          	or	a3,a4,a3
80005148:	00b85713          	srli	a4,a6,0xb
8000514c:	01581793          	slli	a5,a6,0x15
80005150:	00e7e733          	or	a4,a5,a4
80005154:	00e6c6b3          	xor	a3,a3,a4
80005158:	01985713          	srli	a4,a6,0x19
8000515c:	00781793          	slli	a5,a6,0x7
80005160:	00e7e733          	or	a4,a5,a4
80005164:	00af8533          	add	a0,t6,a0
80005168:	00e6c6b3          	xor	a3,a3,a4
8000516c:	00744733          	xor	a4,s0,t2
80005170:	00e87733          	and	a4,a6,a4
80005174:	00774733          	xor	a4,a4,t2
80005178:	00e50533          	add	a0,a0,a4
8000517c:	00d505b3          	add	a1,a0,a3
80005180:	002bd693          	srli	a3,s7,0x2
80005184:	01eb9713          	slli	a4,s7,0x1e
80005188:	00d766b3          	or	a3,a4,a3
8000518c:	00dbd713          	srli	a4,s7,0xd
80005190:	013b9793          	slli	a5,s7,0x13
80005194:	00e7e733          	or	a4,a5,a4
80005198:	00e6c6b3          	xor	a3,a3,a4
8000519c:	016bd713          	srli	a4,s7,0x16
800051a0:	00ab9793          	slli	a5,s7,0xa
800051a4:	00e7e733          	or	a4,a5,a4
800051a8:	00e6c6b3          	xor	a3,a3,a4
800051ac:	012bfab3          	and	s5,s7,s2
800051b0:	014977b3          	and	a5,s2,s4
800051b4:	00fac7b3          	xor	a5,s5,a5
800051b8:	014bf533          	and	a0,s7,s4
800051bc:	00a7c533          	xor	a0,a5,a0
800051c0:	00d50533          	add	a0,a0,a3
800051c4:	04c12603          	lw	a2,76(sp)
800051c8:	00c586b3          	add	a3,a1,a2
800051cc:	00d50f33          	add	t5,a0,a3
800051d0:	011686b3          	add	a3,a3,a7
800051d4:	0066d513          	srli	a0,a3,0x6
800051d8:	01a69793          	slli	a5,a3,0x1a
800051dc:	00a7e533          	or	a0,a5,a0
800051e0:	00b6d793          	srli	a5,a3,0xb
800051e4:	01569713          	slli	a4,a3,0x15
800051e8:	00f76733          	or	a4,a4,a5
800051ec:	00e54533          	xor	a0,a0,a4
800051f0:	0196d713          	srli	a4,a3,0x19
800051f4:	00769793          	slli	a5,a3,0x7
800051f8:	00e7e733          	or	a4,a5,a4
800051fc:	00e54533          	xor	a0,a0,a4
80005200:	007e0733          	add	a4,t3,t2
80005204:	008847b3          	xor	a5,a6,s0
80005208:	00f6f7b3          	and	a5,a3,a5
8000520c:	0087c7b3          	xor	a5,a5,s0
80005210:	00f70733          	add	a4,a4,a5
80005214:	00a70533          	add	a0,a4,a0
80005218:	002f5713          	srli	a4,t5,0x2
8000521c:	01ef1793          	slli	a5,t5,0x1e
80005220:	00e7e733          	or	a4,a5,a4
80005224:	00df5793          	srli	a5,t5,0xd
80005228:	013f1493          	slli	s1,t5,0x13
8000522c:	00f4e7b3          	or	a5,s1,a5
80005230:	00f74733          	xor	a4,a4,a5
80005234:	016f5793          	srli	a5,t5,0x16
80005238:	00af1493          	slli	s1,t5,0xa
8000523c:	00f4e7b3          	or	a5,s1,a5
80005240:	00f74733          	xor	a4,a4,a5
80005244:	012bc7b3          	xor	a5,s7,s2
80005248:	00ff77b3          	and	a5,t5,a5
8000524c:	0157c7b3          	xor	a5,a5,s5
80005250:	04812603          	lw	a2,72(sp)
80005254:	00c50533          	add	a0,a0,a2
80005258:	00f70733          	add	a4,a4,a5
8000525c:	00a703b3          	add	t2,a4,a0
80005260:	01450d33          	add	s10,a0,s4
80005264:	16012583          	lw	a1,352(sp)
80005268:	0075d713          	srli	a4,a1,0x7
8000526c:	01959493          	slli	s1,a1,0x19
80005270:	00e4e2b3          	or	t0,s1,a4
80005274:	007cd493          	srli	s1,s9,0x7
80005278:	019c9713          	slli	a4,s9,0x19
8000527c:	009768b3          	or	a7,a4,s1
80005280:	007dd493          	srli	s1,s11,0x7
80005284:	019d9713          	slli	a4,s11,0x19
80005288:	00976a33          	or	s4,a4,s1
8000528c:	14c12503          	lw	a0,332(sp)
80005290:	00755493          	srli	s1,a0,0x7
80005294:	01951713          	slli	a4,a0,0x19
80005298:	00976ab3          	or	s5,a4,s1
8000529c:	0125d493          	srli	s1,a1,0x12
800052a0:	00e59713          	slli	a4,a1,0xe
800052a4:	00976733          	or	a4,a4,s1
800052a8:	012cd493          	srli	s1,s9,0x12
800052ac:	00ec9613          	slli	a2,s9,0xe
800052b0:	009669b3          	or	s3,a2,s1
800052b4:	012dd493          	srli	s1,s11,0x12
800052b8:	00ed9793          	slli	a5,s11,0xe
800052bc:	0097e7b3          	or	a5,a5,s1
800052c0:	01255493          	srli	s1,a0,0x12
800052c4:	00e51313          	slli	t1,a0,0xe
800052c8:	00050613          	mv	a2,a0
800052cc:	009364b3          	or	s1,t1,s1
800052d0:	00574733          	xor	a4,a4,t0
800052d4:	0119c8b3          	xor	a7,s3,a7
800052d8:	0147c7b3          	xor	a5,a5,s4
800052dc:	0154c4b3          	xor	s1,s1,s5
800052e0:	0035d513          	srli	a0,a1,0x3
800052e4:	00a74533          	xor	a0,a4,a0
800052e8:	003cd713          	srli	a4,s9,0x3
800052ec:	00e8c2b3          	xor	t0,a7,a4
800052f0:	003dd713          	srli	a4,s11,0x3
800052f4:	00e7c733          	xor	a4,a5,a4
800052f8:	00365793          	srli	a5,a2,0x3
800052fc:	00f4c7b3          	xor	a5,s1,a5
80005300:	019508b3          	add	a7,a0,s9
80005304:	01b28a33          	add	s4,t0,s11
80005308:	00c702b3          	add	t0,a4,a2
8000530c:	16412503          	lw	a0,356(sp)
80005310:	00a787b3          	add	a5,a5,a0
80005314:	000f8713          	mv	a4,t6
80005318:	15f12a23          	sw	t6,340(sp)
8000531c:	011fd493          	srli	s1,t6,0x11
80005320:	00ff9513          	slli	a0,t6,0xf
80005324:	00956533          	or	a0,a0,s1
80005328:	013fd493          	srli	s1,t6,0x13
8000532c:	00df9613          	slli	a2,t6,0xd
80005330:	00966633          	or	a2,a2,s1
80005334:	15012483          	lw	s1,336(sp)
80005338:	009787b3          	add	a5,a5,s1
8000533c:	00c54533          	xor	a0,a0,a2
80005340:	00afd613          	srli	a2,t6,0xa
80005344:	00c54533          	xor	a0,a0,a2
80005348:	00a78fb3          	add	t6,a5,a0
8000534c:	011e5513          	srli	a0,t3,0x11
80005350:	00fe1613          	slli	a2,t3,0xf
80005354:	00a66533          	or	a0,a2,a0
80005358:	013e5613          	srli	a2,t3,0x13
8000535c:	00de1793          	slli	a5,t3,0xd
80005360:	00c7e633          	or	a2,a5,a2
80005364:	00128733          	add	a4,t0,ra
80005368:	00c54533          	xor	a0,a0,a2
8000536c:	00ae5613          	srli	a2,t3,0xa
80005370:	000e0293          	mv	t0,t3
80005374:	13c12023          	sw	t3,288(sp)
80005378:	00c54533          	xor	a0,a0,a2
8000537c:	00a709b3          	add	s3,a4,a0
80005380:	011fd513          	srli	a0,t6,0x11
80005384:	00ff9613          	slli	a2,t6,0xf
80005388:	00a66533          	or	a0,a2,a0
8000538c:	013fd613          	srli	a2,t6,0x13
80005390:	00df9713          	slli	a4,t6,0xd
80005394:	00c76633          	or	a2,a4,a2
80005398:	01da0733          	add	a4,s4,t4
8000539c:	00c54533          	xor	a0,a0,a2
800053a0:	00afd613          	srli	a2,t6,0xa
800053a4:	00c54533          	xor	a0,a0,a2
800053a8:	00a70cb3          	add	s9,a4,a0
800053ac:	0119d513          	srli	a0,s3,0x11
800053b0:	00f99613          	slli	a2,s3,0xf
800053b4:	00a66533          	or	a0,a2,a0
800053b8:	0139d613          	srli	a2,s3,0x13
800053bc:	00d99713          	slli	a4,s3,0xd
800053c0:	00c76633          	or	a2,a4,a2
800053c4:	16812703          	lw	a4,360(sp)
800053c8:	00e88733          	add	a4,a7,a4
800053cc:	00c54533          	xor	a0,a0,a2
800053d0:	00a9d613          	srli	a2,s3,0xa
800053d4:	00c54533          	xor	a0,a0,a2
800053d8:	00a70a33          	add	s4,a4,a0
800053dc:	006d5513          	srli	a0,s10,0x6
800053e0:	01ad1613          	slli	a2,s10,0x1a
800053e4:	00a66533          	or	a0,a2,a0
800053e8:	00bd5613          	srli	a2,s10,0xb
800053ec:	015d1713          	slli	a4,s10,0x15
800053f0:	00c76633          	or	a2,a4,a2
800053f4:	00c54533          	xor	a0,a0,a2
800053f8:	019d5613          	srli	a2,s10,0x19
800053fc:	007d1713          	slli	a4,s10,0x7
80005400:	00c76633          	or	a2,a4,a2
80005404:	008f8733          	add	a4,t6,s0
80005408:	00c54533          	xor	a0,a0,a2
8000540c:	0106c633          	xor	a2,a3,a6
80005410:	00cd7633          	and	a2,s10,a2
80005414:	01064633          	xor	a2,a2,a6
80005418:	00c70633          	add	a2,a4,a2
8000541c:	00a60533          	add	a0,a2,a0
80005420:	0023d613          	srli	a2,t2,0x2
80005424:	01e39713          	slli	a4,t2,0x1e
80005428:	00c76633          	or	a2,a4,a2
8000542c:	00d3d713          	srli	a4,t2,0xd
80005430:	01339793          	slli	a5,t2,0x13
80005434:	00e7e733          	or	a4,a5,a4
80005438:	00e64633          	xor	a2,a2,a4
8000543c:	0163d713          	srli	a4,t2,0x16
80005440:	00a39793          	slli	a5,t2,0xa
80005444:	00e7e733          	or	a4,a5,a4
80005448:	00e64633          	xor	a2,a2,a4
8000544c:	01e3f733          	and	a4,t2,t5
80005450:	017f77b3          	and	a5,t5,s7
80005454:	00f747b3          	xor	a5,a4,a5
80005458:	0173f4b3          	and	s1,t2,s7
8000545c:	0097c7b3          	xor	a5,a5,s1
80005460:	00c78633          	add	a2,a5,a2
80005464:	04412783          	lw	a5,68(sp)
80005468:	00f50533          	add	a0,a0,a5
8000546c:	00a60ab3          	add	s5,a2,a0
80005470:	01250433          	add	s0,a0,s2
80005474:	00645513          	srli	a0,s0,0x6
80005478:	01a41613          	slli	a2,s0,0x1a
8000547c:	00a66533          	or	a0,a2,a0
80005480:	00b45613          	srli	a2,s0,0xb
80005484:	01541793          	slli	a5,s0,0x15
80005488:	00c7e633          	or	a2,a5,a2
8000548c:	00c54533          	xor	a0,a0,a2
80005490:	01945613          	srli	a2,s0,0x19
80005494:	00741793          	slli	a5,s0,0x7
80005498:	00c7e633          	or	a2,a5,a2
8000549c:	00c54533          	xor	a0,a0,a2
800054a0:	010985b3          	add	a1,s3,a6
800054a4:	00dd4633          	xor	a2,s10,a3
800054a8:	00c47633          	and	a2,s0,a2
800054ac:	00d64633          	xor	a2,a2,a3
800054b0:	00c585b3          	add	a1,a1,a2
800054b4:	00a58533          	add	a0,a1,a0
800054b8:	002ad593          	srli	a1,s5,0x2
800054bc:	01ea9613          	slli	a2,s5,0x1e
800054c0:	00b665b3          	or	a1,a2,a1
800054c4:	00dad613          	srli	a2,s5,0xd
800054c8:	013a9793          	slli	a5,s5,0x13
800054cc:	00c7e633          	or	a2,a5,a2
800054d0:	00c5c5b3          	xor	a1,a1,a2
800054d4:	016ad613          	srli	a2,s5,0x16
800054d8:	00aa9793          	slli	a5,s5,0xa
800054dc:	00c7e633          	or	a2,a5,a2
800054e0:	00c5c5b3          	xor	a1,a1,a2
800054e4:	01e3c633          	xor	a2,t2,t5
800054e8:	00caf633          	and	a2,s5,a2
800054ec:	00e64633          	xor	a2,a2,a4
800054f0:	04012703          	lw	a4,64(sp)
800054f4:	00e50533          	add	a0,a0,a4
800054f8:	00c585b3          	add	a1,a1,a2
800054fc:	00a58db3          	add	s11,a1,a0
80005500:	01750bb3          	add	s7,a0,s7
80005504:	006bd513          	srli	a0,s7,0x6
80005508:	01ab9593          	slli	a1,s7,0x1a
8000550c:	00a5e533          	or	a0,a1,a0
80005510:	00bbd593          	srli	a1,s7,0xb
80005514:	015b9713          	slli	a4,s7,0x15
80005518:	00b765b3          	or	a1,a4,a1
8000551c:	00b54533          	xor	a0,a0,a1
80005520:	019bd593          	srli	a1,s7,0x19
80005524:	007b9713          	slli	a4,s7,0x7
80005528:	00b765b3          	or	a1,a4,a1
8000552c:	00dc86b3          	add	a3,s9,a3
80005530:	00b54533          	xor	a0,a0,a1
80005534:	01a445b3          	xor	a1,s0,s10
80005538:	00bbf5b3          	and	a1,s7,a1
8000553c:	01a5c5b3          	xor	a1,a1,s10
80005540:	00b685b3          	add	a1,a3,a1
80005544:	00a58533          	add	a0,a1,a0
80005548:	002dd593          	srli	a1,s11,0x2
8000554c:	01ed9693          	slli	a3,s11,0x1e
80005550:	00b6e5b3          	or	a1,a3,a1
80005554:	00ddd693          	srli	a3,s11,0xd
80005558:	013d9713          	slli	a4,s11,0x13
8000555c:	00d766b3          	or	a3,a4,a3
80005560:	00d5c5b3          	xor	a1,a1,a3
80005564:	016dd693          	srli	a3,s11,0x16
80005568:	00ad9713          	slli	a4,s11,0xa
8000556c:	00d766b3          	or	a3,a4,a3
80005570:	00d5c5b3          	xor	a1,a1,a3
80005574:	015df4b3          	and	s1,s11,s5
80005578:	007af6b3          	and	a3,s5,t2
8000557c:	00d4c6b3          	xor	a3,s1,a3
80005580:	007df7b3          	and	a5,s11,t2
80005584:	00f6c6b3          	xor	a3,a3,a5
80005588:	00b685b3          	add	a1,a3,a1
8000558c:	03c12603          	lw	a2,60(sp)
80005590:	00c50533          	add	a0,a0,a2
80005594:	00a58933          	add	s2,a1,a0
80005598:	01e508b3          	add	a7,a0,t5
8000559c:	0068d513          	srli	a0,a7,0x6
800055a0:	01a89593          	slli	a1,a7,0x1a
800055a4:	00a5e533          	or	a0,a1,a0
800055a8:	00b8d593          	srli	a1,a7,0xb
800055ac:	01589793          	slli	a5,a7,0x15
800055b0:	00b7e5b3          	or	a1,a5,a1
800055b4:	00b54533          	xor	a0,a0,a1
800055b8:	0198d593          	srli	a1,a7,0x19
800055bc:	00789793          	slli	a5,a7,0x7
800055c0:	00b7e5b3          	or	a1,a5,a1
800055c4:	00b54533          	xor	a0,a0,a1
800055c8:	01aa05b3          	add	a1,s4,s10
800055cc:	008bc7b3          	xor	a5,s7,s0
800055d0:	00f8f7b3          	and	a5,a7,a5
800055d4:	0087c7b3          	xor	a5,a5,s0
800055d8:	00f585b3          	add	a1,a1,a5
800055dc:	00a58533          	add	a0,a1,a0
800055e0:	00295593          	srli	a1,s2,0x2
800055e4:	01e91793          	slli	a5,s2,0x1e
800055e8:	00b7e5b3          	or	a1,a5,a1
800055ec:	00d95793          	srli	a5,s2,0xd
800055f0:	01391713          	slli	a4,s2,0x13
800055f4:	00f76733          	or	a4,a4,a5
800055f8:	00e5c5b3          	xor	a1,a1,a4
800055fc:	01695713          	srli	a4,s2,0x16
80005600:	00a91793          	slli	a5,s2,0xa
80005604:	00e7e733          	or	a4,a5,a4
80005608:	00e5c5b3          	xor	a1,a1,a4
8000560c:	015dc733          	xor	a4,s11,s5
80005610:	00e97733          	and	a4,s2,a4
80005614:	00974733          	xor	a4,a4,s1
80005618:	03812603          	lw	a2,56(sp)
8000561c:	00c50533          	add	a0,a0,a2
80005620:	00e585b3          	add	a1,a1,a4
80005624:	00a58d33          	add	s10,a1,a0
80005628:	00750733          	add	a4,a0,t2
8000562c:	15c12683          	lw	a3,348(sp)
80005630:	0076d513          	srli	a0,a3,0x7
80005634:	01969793          	slli	a5,a3,0x19
80005638:	00a7e833          	or	a6,a5,a0
8000563c:	007c5793          	srli	a5,s8,0x7
80005640:	019c1513          	slli	a0,s8,0x19
80005644:	00f56333          	or	t1,a0,a5
80005648:	007b5793          	srli	a5,s6,0x7
8000564c:	019b1513          	slli	a0,s6,0x19
80005650:	00f56f33          	or	t5,a0,a5
80005654:	14812603          	lw	a2,328(sp)
80005658:	00765793          	srli	a5,a2,0x7
8000565c:	01961513          	slli	a0,a2,0x19
80005660:	00060393          	mv	t2,a2
80005664:	00f56633          	or	a2,a0,a5
80005668:	0126d793          	srli	a5,a3,0x12
8000566c:	00e69513          	slli	a0,a3,0xe
80005670:	00f56533          	or	a0,a0,a5
80005674:	012c5793          	srli	a5,s8,0x12
80005678:	00ec1593          	slli	a1,s8,0xe
8000567c:	00f5e5b3          	or	a1,a1,a5
80005680:	012b5793          	srli	a5,s6,0x12
80005684:	00eb1493          	slli	s1,s6,0xe
80005688:	00f4e7b3          	or	a5,s1,a5
8000568c:	0123d493          	srli	s1,t2,0x12
80005690:	00e39e13          	slli	t3,t2,0xe
80005694:	009e64b3          	or	s1,t3,s1
80005698:	01054533          	xor	a0,a0,a6
8000569c:	0065c5b3          	xor	a1,a1,t1
800056a0:	01e7c7b3          	xor	a5,a5,t5
800056a4:	00c4c4b3          	xor	s1,s1,a2
800056a8:	0036d613          	srli	a2,a3,0x3
800056ac:	00c54533          	xor	a0,a0,a2
800056b0:	003c5613          	srli	a2,s8,0x3
800056b4:	00c5c5b3          	xor	a1,a1,a2
800056b8:	003b5613          	srli	a2,s6,0x3
800056bc:	00c7c633          	xor	a2,a5,a2
800056c0:	0033d793          	srli	a5,t2,0x3
800056c4:	00f4c7b3          	xor	a5,s1,a5
800056c8:	01850833          	add	a6,a0,s8
800056cc:	016586b3          	add	a3,a1,s6
800056d0:	00760633          	add	a2,a2,t2
800056d4:	16012503          	lw	a0,352(sp)
800056d8:	00a787b3          	add	a5,a5,a0
800056dc:	011cd493          	srli	s1,s9,0x11
800056e0:	00fc9513          	slli	a0,s9,0xf
800056e4:	00956533          	or	a0,a0,s1
800056e8:	013cd493          	srli	s1,s9,0x13
800056ec:	00dc9593          	slli	a1,s9,0xd
800056f0:	0095e5b3          	or	a1,a1,s1
800056f4:	14412483          	lw	s1,324(sp)
800056f8:	009787b3          	add	a5,a5,s1
800056fc:	00b54533          	xor	a0,a0,a1
80005700:	00acd593          	srli	a1,s9,0xa
80005704:	00b54533          	xor	a0,a0,a1
80005708:	00a78f33          	add	t5,a5,a0
8000570c:	011a5513          	srli	a0,s4,0x11
80005710:	00fa1593          	slli	a1,s4,0xf
80005714:	00a5e533          	or	a0,a1,a0
80005718:	013a5593          	srli	a1,s4,0x13
8000571c:	00da1793          	slli	a5,s4,0xd
80005720:	00b7e5b3          	or	a1,a5,a1
80005724:	15412783          	lw	a5,340(sp)
80005728:	00f60633          	add	a2,a2,a5
8000572c:	00b54533          	xor	a0,a0,a1
80005730:	00aa5593          	srli	a1,s4,0xa
80005734:	00b54533          	xor	a0,a0,a1
80005738:	00a607b3          	add	a5,a2,a0
8000573c:	011f5513          	srli	a0,t5,0x11
80005740:	00ff1593          	slli	a1,t5,0xf
80005744:	00a5e533          	or	a0,a1,a0
80005748:	013f5593          	srli	a1,t5,0x13
8000574c:	00df1613          	slli	a2,t5,0xd
80005750:	00b665b3          	or	a1,a2,a1
80005754:	00568633          	add	a2,a3,t0
80005758:	00b54533          	xor	a0,a0,a1
8000575c:	00af5593          	srli	a1,t5,0xa
80005760:	00b54533          	xor	a0,a0,a1
80005764:	00a60b33          	add	s6,a2,a0
80005768:	0117d513          	srli	a0,a5,0x11
8000576c:	00f79593          	slli	a1,a5,0xf
80005770:	00a5e533          	or	a0,a1,a0
80005774:	0137d593          	srli	a1,a5,0x13
80005778:	00d79613          	slli	a2,a5,0xd
8000577c:	00b665b3          	or	a1,a2,a1
80005780:	01f80633          	add	a2,a6,t6
80005784:	00b54533          	xor	a0,a0,a1
80005788:	00a7d593          	srli	a1,a5,0xa
8000578c:	00078693          	mv	a3,a5
80005790:	16f12023          	sw	a5,352(sp)
80005794:	00b54533          	xor	a0,a0,a1
80005798:	00a603b3          	add	t2,a2,a0
8000579c:	00675513          	srli	a0,a4,0x6
800057a0:	01a71593          	slli	a1,a4,0x1a
800057a4:	00a5e533          	or	a0,a1,a0
800057a8:	00b75593          	srli	a1,a4,0xb
800057ac:	01571613          	slli	a2,a4,0x15
800057b0:	00b665b3          	or	a1,a2,a1
800057b4:	00b54533          	xor	a0,a0,a1
800057b8:	01975593          	srli	a1,a4,0x19
800057bc:	00771613          	slli	a2,a4,0x7
800057c0:	00b665b3          	or	a1,a2,a1
800057c4:	008f0633          	add	a2,t5,s0
800057c8:	00b54533          	xor	a0,a0,a1
800057cc:	0178c5b3          	xor	a1,a7,s7
800057d0:	00b775b3          	and	a1,a4,a1
800057d4:	0175c5b3          	xor	a1,a1,s7
800057d8:	00b605b3          	add	a1,a2,a1
800057dc:	00a58533          	add	a0,a1,a0
800057e0:	002d5593          	srli	a1,s10,0x2
800057e4:	01ed1613          	slli	a2,s10,0x1e
800057e8:	00b665b3          	or	a1,a2,a1
800057ec:	00dd5613          	srli	a2,s10,0xd
800057f0:	013d1793          	slli	a5,s10,0x13
800057f4:	00c7e633          	or	a2,a5,a2
800057f8:	00c5c5b3          	xor	a1,a1,a2
800057fc:	016d5613          	srli	a2,s10,0x16
80005800:	00ad1793          	slli	a5,s10,0xa
80005804:	00c7e633          	or	a2,a5,a2
80005808:	00c5c5b3          	xor	a1,a1,a2
8000580c:	012d7633          	and	a2,s10,s2
80005810:	01b977b3          	and	a5,s2,s11
80005814:	00f647b3          	xor	a5,a2,a5
80005818:	01bd74b3          	and	s1,s10,s11
8000581c:	0097c7b3          	xor	a5,a5,s1
80005820:	00b785b3          	add	a1,a5,a1
80005824:	03412783          	lw	a5,52(sp)
80005828:	00f50533          	add	a0,a0,a5
8000582c:	00a58e33          	add	t3,a1,a0
80005830:	01550c33          	add	s8,a0,s5
80005834:	006c5793          	srli	a5,s8,0x6
80005838:	01ac1493          	slli	s1,s8,0x1a
8000583c:	00f4e7b3          	or	a5,s1,a5
80005840:	00bc5493          	srli	s1,s8,0xb
80005844:	015c1413          	slli	s0,s8,0x15
80005848:	009464b3          	or	s1,s0,s1
8000584c:	0097c7b3          	xor	a5,a5,s1
80005850:	019c5493          	srli	s1,s8,0x19
80005854:	007c1413          	slli	s0,s8,0x7
80005858:	009464b3          	or	s1,s0,s1
8000585c:	0097c7b3          	xor	a5,a5,s1
80005860:	017684b3          	add	s1,a3,s7
80005864:	01174433          	xor	s0,a4,a7
80005868:	008c7433          	and	s0,s8,s0
8000586c:	01144433          	xor	s0,s0,a7
80005870:	008484b3          	add	s1,s1,s0
80005874:	00f487b3          	add	a5,s1,a5
80005878:	002e5493          	srli	s1,t3,0x2
8000587c:	01ee1413          	slli	s0,t3,0x1e
80005880:	009464b3          	or	s1,s0,s1
80005884:	00de5413          	srli	s0,t3,0xd
80005888:	013e1593          	slli	a1,t3,0x13
8000588c:	0085e5b3          	or	a1,a1,s0
80005890:	00b4c5b3          	xor	a1,s1,a1
80005894:	016e5493          	srli	s1,t3,0x16
80005898:	00ae1413          	slli	s0,t3,0xa
8000589c:	009464b3          	or	s1,s0,s1
800058a0:	0095c5b3          	xor	a1,a1,s1
800058a4:	012d44b3          	xor	s1,s10,s2
800058a8:	009e74b3          	and	s1,t3,s1
800058ac:	00c4c633          	xor	a2,s1,a2
800058b0:	03012503          	lw	a0,48(sp)
800058b4:	00a787b3          	add	a5,a5,a0
800058b8:	00c585b3          	add	a1,a1,a2
800058bc:	00f582b3          	add	t0,a1,a5
800058c0:	01b78833          	add	a6,a5,s11
800058c4:	00685593          	srli	a1,a6,0x6
800058c8:	01a81793          	slli	a5,a6,0x1a
800058cc:	00b7e5b3          	or	a1,a5,a1
800058d0:	00b85793          	srli	a5,a6,0xb
800058d4:	01581493          	slli	s1,a6,0x15
800058d8:	00f4e7b3          	or	a5,s1,a5
800058dc:	00f5c5b3          	xor	a1,a1,a5
800058e0:	01985793          	srli	a5,a6,0x19
800058e4:	00781493          	slli	s1,a6,0x7
800058e8:	00f4e7b3          	or	a5,s1,a5
800058ec:	011b06b3          	add	a3,s6,a7
800058f0:	00f5c5b3          	xor	a1,a1,a5
800058f4:	00ec47b3          	xor	a5,s8,a4
800058f8:	00f877b3          	and	a5,a6,a5
800058fc:	00e7c7b3          	xor	a5,a5,a4
80005900:	00f686b3          	add	a3,a3,a5
80005904:	00b68633          	add	a2,a3,a1
80005908:	0022d693          	srli	a3,t0,0x2
8000590c:	01e29793          	slli	a5,t0,0x1e
80005910:	00d7e6b3          	or	a3,a5,a3
80005914:	00d2d793          	srli	a5,t0,0xd
80005918:	01329493          	slli	s1,t0,0x13
8000591c:	00f4e7b3          	or	a5,s1,a5
80005920:	00f6c6b3          	xor	a3,a3,a5
80005924:	0162d793          	srli	a5,t0,0x16
80005928:	00a29493          	slli	s1,t0,0xa
8000592c:	00f4e7b3          	or	a5,s1,a5
80005930:	00f6c6b3          	xor	a3,a3,a5
80005934:	01c2fbb3          	and	s7,t0,t3
80005938:	01ae77b3          	and	a5,t3,s10
8000593c:	00fbc7b3          	xor	a5,s7,a5
80005940:	01a2f5b3          	and	a1,t0,s10
80005944:	00b7c5b3          	xor	a1,a5,a1
80005948:	00d585b3          	add	a1,a1,a3
8000594c:	02c12503          	lw	a0,44(sp)
80005950:	00a606b3          	add	a3,a2,a0
80005954:	00d58ab3          	add	s5,a1,a3
80005958:	012687b3          	add	a5,a3,s2
8000595c:	0067d593          	srli	a1,a5,0x6
80005960:	01a79693          	slli	a3,a5,0x1a
80005964:	00b6e5b3          	or	a1,a3,a1
80005968:	00b7d693          	srli	a3,a5,0xb
8000596c:	01579493          	slli	s1,a5,0x15
80005970:	00d4e6b3          	or	a3,s1,a3
80005974:	00d5c5b3          	xor	a1,a1,a3
80005978:	0197d693          	srli	a3,a5,0x19
8000597c:	00779493          	slli	s1,a5,0x7
80005980:	00d4e6b3          	or	a3,s1,a3
80005984:	00d5c5b3          	xor	a1,a1,a3
80005988:	00e386b3          	add	a3,t2,a4
8000598c:	01884733          	xor	a4,a6,s8
80005990:	00e7f733          	and	a4,a5,a4
80005994:	01874733          	xor	a4,a4,s8
80005998:	00e686b3          	add	a3,a3,a4
8000599c:	00b685b3          	add	a1,a3,a1
800059a0:	002ad693          	srli	a3,s5,0x2
800059a4:	01ea9713          	slli	a4,s5,0x1e
800059a8:	00d766b3          	or	a3,a4,a3
800059ac:	00dad713          	srli	a4,s5,0xd
800059b0:	013a9493          	slli	s1,s5,0x13
800059b4:	00e4e733          	or	a4,s1,a4
800059b8:	00e6c6b3          	xor	a3,a3,a4
800059bc:	016ad713          	srli	a4,s5,0x16
800059c0:	00aa9493          	slli	s1,s5,0xa
800059c4:	00e4e733          	or	a4,s1,a4
800059c8:	00e6c6b3          	xor	a3,a3,a4
800059cc:	01c2c733          	xor	a4,t0,t3
800059d0:	00eaf733          	and	a4,s5,a4
800059d4:	01774733          	xor	a4,a4,s7
800059d8:	02812503          	lw	a0,40(sp)
800059dc:	00a585b3          	add	a1,a1,a0
800059e0:	00e686b3          	add	a3,a3,a4
800059e4:	00b68db3          	add	s11,a3,a1
800059e8:	01a584b3          	add	s1,a1,s10
800059ec:	16812683          	lw	a3,360(sp)
800059f0:	0076d593          	srli	a1,a3,0x7
800059f4:	01969713          	slli	a4,a3,0x19
800059f8:	00b768b3          	or	a7,a4,a1
800059fc:	007ed713          	srli	a4,t4,0x7
80005a00:	019e9593          	slli	a1,t4,0x19
80005a04:	00e5e933          	or	s2,a1,a4
80005a08:	0070d713          	srli	a4,ra,0x7
80005a0c:	01909593          	slli	a1,ra,0x19
80005a10:	00e5ebb3          	or	s7,a1,a4
80005a14:	15012603          	lw	a2,336(sp)
80005a18:	00765713          	srli	a4,a2,0x7
80005a1c:	01961593          	slli	a1,a2,0x19
80005a20:	00e5e333          	or	t1,a1,a4
80005a24:	0126d713          	srli	a4,a3,0x12
80005a28:	00e69593          	slli	a1,a3,0xe
80005a2c:	00068513          	mv	a0,a3
80005a30:	00e5ed33          	or	s10,a1,a4
80005a34:	012ed713          	srli	a4,t4,0x12
80005a38:	00ee9693          	slli	a3,t4,0xe
80005a3c:	00e6e6b3          	or	a3,a3,a4
80005a40:	0120d713          	srli	a4,ra,0x12
80005a44:	00e09413          	slli	s0,ra,0xe
80005a48:	00e46733          	or	a4,s0,a4
80005a4c:	01265413          	srli	s0,a2,0x12
80005a50:	00e61593          	slli	a1,a2,0xe
80005a54:	0085e5b3          	or	a1,a1,s0
80005a58:	011d4433          	xor	s0,s10,a7
80005a5c:	0126c6b3          	xor	a3,a3,s2
80005a60:	01774733          	xor	a4,a4,s7
80005a64:	0065c5b3          	xor	a1,a1,t1
80005a68:	00355513          	srli	a0,a0,0x3
80005a6c:	00a44533          	xor	a0,s0,a0
80005a70:	003ed413          	srli	s0,t4,0x3
80005a74:	0086c6b3          	xor	a3,a3,s0
80005a78:	0030d413          	srli	s0,ra,0x3
80005a7c:	00874733          	xor	a4,a4,s0
80005a80:	00365413          	srli	s0,a2,0x3
80005a84:	0085c5b3          	xor	a1,a1,s0
80005a88:	01d50533          	add	a0,a0,t4
80005a8c:	001686b3          	add	a3,a3,ra
80005a90:	00c70733          	add	a4,a4,a2
80005a94:	15c12603          	lw	a2,348(sp)
80005a98:	00c585b3          	add	a1,a1,a2
80005a9c:	01e50f33          	add	t5,a0,t5
80005aa0:	01468eb3          	add	t4,a3,s4
80005aa4:	01970733          	add	a4,a4,s9
80005aa8:	013585b3          	add	a1,a1,s3
80005aac:	011b5413          	srli	s0,s6,0x11
80005ab0:	00fb1513          	slli	a0,s6,0xf
80005ab4:	00856533          	or	a0,a0,s0
80005ab8:	013b5413          	srli	s0,s6,0x13
80005abc:	00db1693          	slli	a3,s6,0xd
80005ac0:	0086e6b3          	or	a3,a3,s0
80005ac4:	00d54533          	xor	a0,a0,a3
80005ac8:	00ab5693          	srli	a3,s6,0xa
80005acc:	00d54533          	xor	a0,a0,a3
80005ad0:	00a580b3          	add	ra,a1,a0
80005ad4:	16712223          	sw	t2,356(sp)
80005ad8:	0113d513          	srli	a0,t2,0x11
80005adc:	00f39593          	slli	a1,t2,0xf
80005ae0:	00a5e533          	or	a0,a1,a0
80005ae4:	0133d593          	srli	a1,t2,0x13
80005ae8:	00d39693          	slli	a3,t2,0xd
80005aec:	00b6e5b3          	or	a1,a3,a1
80005af0:	00b54533          	xor	a0,a0,a1
80005af4:	00a3d593          	srli	a1,t2,0xa
80005af8:	00b54533          	xor	a0,a0,a1
80005afc:	00a70533          	add	a0,a4,a0
80005b00:	0110d593          	srli	a1,ra,0x11
80005b04:	00f09693          	slli	a3,ra,0xf
80005b08:	00b6e5b3          	or	a1,a3,a1
80005b0c:	0130d693          	srli	a3,ra,0x13
80005b10:	00d09713          	slli	a4,ra,0xd
80005b14:	00d766b3          	or	a3,a4,a3
80005b18:	00d5c5b3          	xor	a1,a1,a3
80005b1c:	00a0d693          	srli	a3,ra,0xa
80005b20:	00d5c5b3          	xor	a1,a1,a3
80005b24:	00be8eb3          	add	t4,t4,a1
80005b28:	01155593          	srli	a1,a0,0x11
80005b2c:	00f51693          	slli	a3,a0,0xf
80005b30:	00b6e5b3          	or	a1,a3,a1
80005b34:	01355693          	srli	a3,a0,0x13
80005b38:	00d51713          	slli	a4,a0,0xd
80005b3c:	00d766b3          	or	a3,a4,a3
80005b40:	00d5c5b3          	xor	a1,a1,a3
80005b44:	00a55693          	srli	a3,a0,0xa
80005b48:	00d5c5b3          	xor	a1,a1,a3
80005b4c:	00bf0333          	add	t1,t5,a1
80005b50:	00930f33          	add	t5,t1,s1
80005b54:	00fe8933          	add	s2,t4,a5
80005b58:	01050a33          	add	s4,a0,a6
80005b5c:	01808533          	add	a0,ra,s8
80005b60:	0064d593          	srli	a1,s1,0x6
80005b64:	01a49713          	slli	a4,s1,0x1a
80005b68:	00b765b3          	or	a1,a4,a1
80005b6c:	00b4d713          	srli	a4,s1,0xb
80005b70:	01549413          	slli	s0,s1,0x15
80005b74:	00e46733          	or	a4,s0,a4
80005b78:	00e5c5b3          	xor	a1,a1,a4
80005b7c:	0194d713          	srli	a4,s1,0x19
80005b80:	00749413          	slli	s0,s1,0x7
80005b84:	00e46733          	or	a4,s0,a4
80005b88:	00e5c5b3          	xor	a1,a1,a4
80005b8c:	0107c733          	xor	a4,a5,a6
80005b90:	00e4f733          	and	a4,s1,a4
80005b94:	01074633          	xor	a2,a4,a6
80005b98:	00c50533          	add	a0,a0,a2
80005b9c:	00b50533          	add	a0,a0,a1
80005ba0:	02412583          	lw	a1,36(sp)
80005ba4:	00b505b3          	add	a1,a0,a1
80005ba8:	002dd513          	srli	a0,s11,0x2
80005bac:	01ed9613          	slli	a2,s11,0x1e
80005bb0:	00a66533          	or	a0,a2,a0
80005bb4:	00ddd613          	srli	a2,s11,0xd
80005bb8:	013d9713          	slli	a4,s11,0x13
80005bbc:	00c76633          	or	a2,a4,a2
80005bc0:	00c54533          	xor	a0,a0,a2
80005bc4:	016dd613          	srli	a2,s11,0x16
80005bc8:	00ad9713          	slli	a4,s11,0xa
80005bcc:	00c76633          	or	a2,a4,a2
80005bd0:	00c54533          	xor	a0,a0,a2
80005bd4:	015df633          	and	a2,s11,s5
80005bd8:	005df733          	and	a4,s11,t0
80005bdc:	005af433          	and	s0,s5,t0
80005be0:	00864433          	xor	s0,a2,s0
80005be4:	00e44733          	xor	a4,s0,a4
80005be8:	00a70533          	add	a0,a4,a0
80005bec:	00b50bb3          	add	s7,a0,a1
80005bf0:	01c585b3          	add	a1,a1,t3
80005bf4:	0065d713          	srli	a4,a1,0x6
80005bf8:	01a59413          	slli	s0,a1,0x1a
80005bfc:	00e46733          	or	a4,s0,a4
80005c00:	00b5d413          	srli	s0,a1,0xb
80005c04:	01559693          	slli	a3,a1,0x15
80005c08:	0086e6b3          	or	a3,a3,s0
80005c0c:	00d746b3          	xor	a3,a4,a3
80005c10:	0195d713          	srli	a4,a1,0x19
80005c14:	00759413          	slli	s0,a1,0x7
80005c18:	00e46733          	or	a4,s0,a4
80005c1c:	00e6c6b3          	xor	a3,a3,a4
80005c20:	00f4c733          	xor	a4,s1,a5
80005c24:	00e5f733          	and	a4,a1,a4
80005c28:	00f74733          	xor	a4,a4,a5
80005c2c:	00ea0733          	add	a4,s4,a4
80005c30:	00d706b3          	add	a3,a4,a3
80005c34:	02012503          	lw	a0,32(sp)
80005c38:	00a686b3          	add	a3,a3,a0
80005c3c:	002bd713          	srli	a4,s7,0x2
80005c40:	01eb9793          	slli	a5,s7,0x1e
80005c44:	00e7e733          	or	a4,a5,a4
80005c48:	00dbd793          	srli	a5,s7,0xd
80005c4c:	013b9413          	slli	s0,s7,0x13
80005c50:	00f467b3          	or	a5,s0,a5
80005c54:	00f74733          	xor	a4,a4,a5
80005c58:	016bd793          	srli	a5,s7,0x16
80005c5c:	00ab9413          	slli	s0,s7,0xa
80005c60:	00f467b3          	or	a5,s0,a5
80005c64:	00f74733          	xor	a4,a4,a5
80005c68:	015dc7b3          	xor	a5,s11,s5
80005c6c:	00fbf7b3          	and	a5,s7,a5
80005c70:	00c7c633          	xor	a2,a5,a2
80005c74:	00c70633          	add	a2,a4,a2
80005c78:	00d60733          	add	a4,a2,a3
80005c7c:	00568433          	add	s0,a3,t0
80005c80:	00645613          	srli	a2,s0,0x6
80005c84:	01a41693          	slli	a3,s0,0x1a
80005c88:	00c6e633          	or	a2,a3,a2
80005c8c:	00b45693          	srli	a3,s0,0xb
80005c90:	01541793          	slli	a5,s0,0x15
80005c94:	00d7e6b3          	or	a3,a5,a3
80005c98:	00d64633          	xor	a2,a2,a3
80005c9c:	01945693          	srli	a3,s0,0x19
80005ca0:	00741793          	slli	a5,s0,0x7
80005ca4:	00d7e6b3          	or	a3,a5,a3
80005ca8:	00d64633          	xor	a2,a2,a3
80005cac:	0095c6b3          	xor	a3,a1,s1
80005cb0:	00d476b3          	and	a3,s0,a3
80005cb4:	0096c6b3          	xor	a3,a3,s1
80005cb8:	00d906b3          	add	a3,s2,a3
80005cbc:	00c68633          	add	a2,a3,a2
80005cc0:	01c12503          	lw	a0,28(sp)
80005cc4:	00a60633          	add	a2,a2,a0
80005cc8:	00275693          	srli	a3,a4,0x2
80005ccc:	01e71793          	slli	a5,a4,0x1e
80005cd0:	00d7e6b3          	or	a3,a5,a3
80005cd4:	00d75793          	srli	a5,a4,0xd
80005cd8:	01371493          	slli	s1,a4,0x13
80005cdc:	00f4e7b3          	or	a5,s1,a5
80005ce0:	00f6c6b3          	xor	a3,a3,a5
80005ce4:	01675793          	srli	a5,a4,0x16
80005ce8:	00a71493          	slli	s1,a4,0xa
80005cec:	00f4e7b3          	or	a5,s1,a5
80005cf0:	00f6c6b3          	xor	a3,a3,a5
80005cf4:	01777833          	and	a6,a4,s7
80005cf8:	01b777b3          	and	a5,a4,s11
80005cfc:	01bbf4b3          	and	s1,s7,s11
80005d00:	009844b3          	xor	s1,a6,s1
80005d04:	00f4c7b3          	xor	a5,s1,a5
80005d08:	00d786b3          	add	a3,a5,a3
80005d0c:	00c68e33          	add	t3,a3,a2
80005d10:	01560d33          	add	s10,a2,s5
80005d14:	006d5613          	srli	a2,s10,0x6
80005d18:	01ad1693          	slli	a3,s10,0x1a
80005d1c:	00c6e633          	or	a2,a3,a2
80005d20:	00bd5693          	srli	a3,s10,0xb
80005d24:	015d1793          	slli	a5,s10,0x15
80005d28:	00d7e6b3          	or	a3,a5,a3
80005d2c:	00d64633          	xor	a2,a2,a3
80005d30:	019d5693          	srli	a3,s10,0x19
80005d34:	007d1793          	slli	a5,s10,0x7
80005d38:	00d7e6b3          	or	a3,a5,a3
80005d3c:	00d64633          	xor	a2,a2,a3
80005d40:	00b446b3          	xor	a3,s0,a1
80005d44:	00dd76b3          	and	a3,s10,a3
80005d48:	00b6c6b3          	xor	a3,a3,a1
80005d4c:	00df06b3          	add	a3,t5,a3
80005d50:	00c68633          	add	a2,a3,a2
80005d54:	01812503          	lw	a0,24(sp)
80005d58:	00a606b3          	add	a3,a2,a0
80005d5c:	002e5613          	srli	a2,t3,0x2
80005d60:	01ee1793          	slli	a5,t3,0x1e
80005d64:	00c7e633          	or	a2,a5,a2
80005d68:	00de5793          	srli	a5,t3,0xd
80005d6c:	013e1513          	slli	a0,t3,0x13
80005d70:	00f56533          	or	a0,a0,a5
80005d74:	00a64533          	xor	a0,a2,a0
80005d78:	016e5613          	srli	a2,t3,0x16
80005d7c:	00ae1793          	slli	a5,t3,0xa
80005d80:	00c7e633          	or	a2,a5,a2
80005d84:	00c54533          	xor	a0,a0,a2
80005d88:	01774633          	xor	a2,a4,s7
80005d8c:	00ce7633          	and	a2,t3,a2
80005d90:	01064633          	xor	a2,a2,a6
80005d94:	00c50533          	add	a0,a0,a2
80005d98:	00d50ab3          	add	s5,a0,a3
80005d9c:	01b68cb3          	add	s9,a3,s11
80005da0:	007fd513          	srli	a0,t6,0x7
80005da4:	019f9793          	slli	a5,t6,0x19
80005da8:	00a7e833          	or	a6,a5,a0
80005dac:	12012883          	lw	a7,288(sp)
80005db0:	0078d793          	srli	a5,a7,0x7
80005db4:	01989513          	slli	a0,a7,0x19
80005db8:	00f56f33          	or	t5,a0,a5
80005dbc:	15412983          	lw	s3,340(sp)
80005dc0:	0079d793          	srli	a5,s3,0x7
80005dc4:	01999513          	slli	a0,s3,0x19
80005dc8:	00f56933          	or	s2,a0,a5
80005dcc:	14412483          	lw	s1,324(sp)
80005dd0:	0074d793          	srli	a5,s1,0x7
80005dd4:	01949513          	slli	a0,s1,0x19
80005dd8:	00f56a33          	or	s4,a0,a5
80005ddc:	012fd793          	srli	a5,t6,0x12
80005de0:	00ef9513          	slli	a0,t6,0xe
80005de4:	00f56c33          	or	s8,a0,a5
80005de8:	0128d793          	srli	a5,a7,0x12
80005dec:	00e89613          	slli	a2,a7,0xe
80005df0:	00f66633          	or	a2,a2,a5
80005df4:	0129d793          	srli	a5,s3,0x12
80005df8:	00e99513          	slli	a0,s3,0xe
80005dfc:	00f562b3          	or	t0,a0,a5
80005e00:	0124d793          	srli	a5,s1,0x12
80005e04:	00e49693          	slli	a3,s1,0xe
80005e08:	00048513          	mv	a0,s1
80005e0c:	00f6e6b3          	or	a3,a3,a5
80005e10:	010c47b3          	xor	a5,s8,a6
80005e14:	01e64633          	xor	a2,a2,t5
80005e18:	0122c833          	xor	a6,t0,s2
80005e1c:	0146c6b3          	xor	a3,a3,s4
80005e20:	003fd493          	srli	s1,t6,0x3
80005e24:	0097cf33          	xor	t5,a5,s1
80005e28:	0038d793          	srli	a5,a7,0x3
80005e2c:	00f64933          	xor	s2,a2,a5
80005e30:	0039d613          	srli	a2,s3,0x3
80005e34:	00c847b3          	xor	a5,a6,a2
80005e38:	00355613          	srli	a2,a0,0x3
80005e3c:	00c6c633          	xor	a2,a3,a2
80005e40:	00a78533          	add	a0,a5,a0
80005e44:	16812683          	lw	a3,360(sp)
80005e48:	00d60633          	add	a2,a2,a3
80005e4c:	01650533          	add	a0,a0,s6
80005e50:	16012683          	lw	a3,352(sp)
80005e54:	00d60633          	add	a2,a2,a3
80005e58:	011ed693          	srli	a3,t4,0x11
80005e5c:	00fe9793          	slli	a5,t4,0xf
80005e60:	00d7e6b3          	or	a3,a5,a3
80005e64:	013ed793          	srli	a5,t4,0x13
80005e68:	00de9493          	slli	s1,t4,0xd
80005e6c:	00f4e7b3          	or	a5,s1,a5
80005e70:	00f6c6b3          	xor	a3,a3,a5
80005e74:	00aed793          	srli	a5,t4,0xa
80005e78:	13412e83          	lw	t4,308(sp)
80005e7c:	00f6c6b3          	xor	a3,a3,a5
80005e80:	00d60633          	add	a2,a2,a3
80005e84:	01135693          	srli	a3,t1,0x11
80005e88:	00f31793          	slli	a5,t1,0xf
80005e8c:	00d7e6b3          	or	a3,a5,a3
80005e90:	01335793          	srli	a5,t1,0x13
80005e94:	00d31493          	slli	s1,t1,0xd
80005e98:	00f4e7b3          	or	a5,s1,a5
80005e9c:	00f6c6b3          	xor	a3,a3,a5
80005ea0:	00a35793          	srli	a5,t1,0xa
80005ea4:	00f6c6b3          	xor	a3,a3,a5
80005ea8:	00d50533          	add	a0,a0,a3
80005eac:	01165693          	srli	a3,a2,0x11
80005eb0:	00f61793          	slli	a5,a2,0xf
80005eb4:	00d7e6b3          	or	a3,a5,a3
80005eb8:	01365793          	srli	a5,a2,0x13
80005ebc:	00d61493          	slli	s1,a2,0xd
80005ec0:	00f4e7b3          	or	a5,s1,a5
80005ec4:	00f6c6b3          	xor	a3,a3,a5
80005ec8:	00a65793          	srli	a5,a2,0xa
80005ecc:	00f6c3b3          	xor	t2,a3,a5
80005ed0:	01155693          	srli	a3,a0,0x11
80005ed4:	00f51793          	slli	a5,a0,0xf
80005ed8:	00d7e6b3          	or	a3,a5,a3
80005edc:	01355793          	srli	a5,a0,0x13
80005ee0:	00d51493          	slli	s1,a0,0xd
80005ee4:	00f4e7b3          	or	a5,s1,a5
80005ee8:	00f6c6b3          	xor	a3,a3,a5
80005eec:	00a55793          	srli	a5,a0,0xa
80005ef0:	00f6c2b3          	xor	t0,a3,a5
80005ef4:	008506b3          	add	a3,a0,s0
80005ef8:	00b60533          	add	a0,a2,a1
80005efc:	006cd593          	srli	a1,s9,0x6
80005f00:	01ac9613          	slli	a2,s9,0x1a
80005f04:	00b665b3          	or	a1,a2,a1
80005f08:	00bcd613          	srli	a2,s9,0xb
80005f0c:	015c9793          	slli	a5,s9,0x15
80005f10:	00c7e633          	or	a2,a5,a2
80005f14:	00c5c5b3          	xor	a1,a1,a2
80005f18:	019cd613          	srli	a2,s9,0x19
80005f1c:	007c9793          	slli	a5,s9,0x7
80005f20:	00c7e633          	or	a2,a5,a2
80005f24:	00c5c5b3          	xor	a1,a1,a2
80005f28:	008d4633          	xor	a2,s10,s0
80005f2c:	00ccf633          	and	a2,s9,a2
80005f30:	00864633          	xor	a2,a2,s0
80005f34:	00c50533          	add	a0,a0,a2
80005f38:	00b50533          	add	a0,a0,a1
80005f3c:	01412583          	lw	a1,20(sp)
80005f40:	00b50533          	add	a0,a0,a1
80005f44:	002ad593          	srli	a1,s5,0x2
80005f48:	01ea9613          	slli	a2,s5,0x1e
80005f4c:	00b665b3          	or	a1,a2,a1
80005f50:	00dad613          	srli	a2,s5,0xd
80005f54:	013a9793          	slli	a5,s5,0x13
80005f58:	00c7e633          	or	a2,a5,a2
80005f5c:	00c5c5b3          	xor	a1,a1,a2
80005f60:	016ad613          	srli	a2,s5,0x16
80005f64:	00aa9793          	slli	a5,s5,0xa
80005f68:	00c7e633          	or	a2,a5,a2
80005f6c:	00c5c5b3          	xor	a1,a1,a2
80005f70:	01caf633          	and	a2,s5,t3
80005f74:	00eaf7b3          	and	a5,s5,a4
80005f78:	00ee74b3          	and	s1,t3,a4
80005f7c:	009644b3          	xor	s1,a2,s1
80005f80:	00f4c7b3          	xor	a5,s1,a5
80005f84:	00b785b3          	add	a1,a5,a1
80005f88:	00a585b3          	add	a1,a1,a0
80005f8c:	01750533          	add	a0,a0,s7
80005f90:	00655793          	srli	a5,a0,0x6
80005f94:	01a51493          	slli	s1,a0,0x1a
80005f98:	00f4e7b3          	or	a5,s1,a5
80005f9c:	00b55493          	srli	s1,a0,0xb
80005fa0:	01551413          	slli	s0,a0,0x15
80005fa4:	009464b3          	or	s1,s0,s1
80005fa8:	0097c7b3          	xor	a5,a5,s1
80005fac:	01955493          	srli	s1,a0,0x19
80005fb0:	00751413          	slli	s0,a0,0x7
80005fb4:	009464b3          	or	s1,s0,s1
80005fb8:	0097c7b3          	xor	a5,a5,s1
80005fbc:	01acc4b3          	xor	s1,s9,s10
80005fc0:	009574b3          	and	s1,a0,s1
80005fc4:	01a4c4b3          	xor	s1,s1,s10
80005fc8:	009686b3          	add	a3,a3,s1
80005fcc:	00f686b3          	add	a3,a3,a5
80005fd0:	0025d793          	srli	a5,a1,0x2
80005fd4:	01e59493          	slli	s1,a1,0x1e
80005fd8:	00f4e7b3          	or	a5,s1,a5
80005fdc:	00d5d493          	srli	s1,a1,0xd
80005fe0:	01359413          	slli	s0,a1,0x13
80005fe4:	009464b3          	or	s1,s0,s1
80005fe8:	0097c7b3          	xor	a5,a5,s1
80005fec:	0165d493          	srli	s1,a1,0x16
80005ff0:	00a59413          	slli	s0,a1,0xa
80005ff4:	009464b3          	or	s1,s0,s1
80005ff8:	01012403          	lw	s0,16(sp)
80005ffc:	008686b3          	add	a3,a3,s0
80006000:	0097c7b3          	xor	a5,a5,s1
80006004:	01cac4b3          	xor	s1,s5,t3
80006008:	0095f4b3          	and	s1,a1,s1
8000600c:	00c4c633          	xor	a2,s1,a2
80006010:	00c78633          	add	a2,a5,a2
80006014:	00d60433          	add	s0,a2,a3
80006018:	00e68733          	add	a4,a3,a4
8000601c:	00675613          	srli	a2,a4,0x6
80006020:	01a71693          	slli	a3,a4,0x1a
80006024:	00c6e633          	or	a2,a3,a2
80006028:	00b75693          	srli	a3,a4,0xb
8000602c:	01571793          	slli	a5,a4,0x15
80006030:	00d7e6b3          	or	a3,a5,a3
80006034:	00d64633          	xor	a2,a2,a3
80006038:	01975693          	srli	a3,a4,0x19
8000603c:	00771793          	slli	a5,a4,0x7
80006040:	00d7e6b3          	or	a3,a5,a3
80006044:	00d64633          	xor	a2,a2,a3
80006048:	012986b3          	add	a3,s3,s2
8000604c:	13012903          	lw	s2,304(sp)
80006050:	16412783          	lw	a5,356(sp)
80006054:	00f686b3          	add	a3,a3,a5
80006058:	019547b3          	xor	a5,a0,s9
8000605c:	00f777b3          	and	a5,a4,a5
80006060:	0197c7b3          	xor	a5,a5,s9
80006064:	007686b3          	add	a3,a3,t2
80006068:	13812383          	lw	t2,312(sp)
8000606c:	01a686b3          	add	a3,a3,s10
80006070:	00f686b3          	add	a3,a3,a5
80006074:	00c68633          	add	a2,a3,a2
80006078:	00c12683          	lw	a3,12(sp)
8000607c:	00d60633          	add	a2,a2,a3
80006080:	00245693          	srli	a3,s0,0x2
80006084:	01e41793          	slli	a5,s0,0x1e
80006088:	00d7e6b3          	or	a3,a5,a3
8000608c:	00d45793          	srli	a5,s0,0xd
80006090:	01341493          	slli	s1,s0,0x13
80006094:	00f4e7b3          	or	a5,s1,a5
80006098:	00f6c6b3          	xor	a3,a3,a5
8000609c:	01645793          	srli	a5,s0,0x16
800060a0:	00a41493          	slli	s1,s0,0xa
800060a4:	00f4e7b3          	or	a5,s1,a5
800060a8:	00f6c6b3          	xor	a3,a3,a5
800060ac:	00b47833          	and	a6,s0,a1
800060b0:	015474b3          	and	s1,s0,s5
800060b4:	0155f7b3          	and	a5,a1,s5
800060b8:	00f847b3          	xor	a5,a6,a5
800060bc:	0097c7b3          	xor	a5,a5,s1
800060c0:	00d786b3          	add	a3,a5,a3
800060c4:	00c686b3          	add	a3,a3,a2
800060c8:	01c60633          	add	a2,a2,t3
800060cc:	00665793          	srli	a5,a2,0x6
800060d0:	01a61493          	slli	s1,a2,0x1a
800060d4:	00f4e333          	or	t1,s1,a5
800060d8:	00b65493          	srli	s1,a2,0xb
800060dc:	01561793          	slli	a5,a2,0x15
800060e0:	0097e7b3          	or	a5,a5,s1
800060e4:	00f34333          	xor	t1,t1,a5
800060e8:	01965493          	srli	s1,a2,0x19
800060ec:	00761793          	slli	a5,a2,0x7
800060f0:	0097e7b3          	or	a5,a5,s1
800060f4:	00f34333          	xor	t1,t1,a5
800060f8:	01e884b3          	add	s1,a7,t5
800060fc:	001484b3          	add	s1,s1,ra
80006100:	005484b3          	add	s1,s1,t0
80006104:	00a747b3          	xor	a5,a4,a0
80006108:	00f677b3          	and	a5,a2,a5
8000610c:	00a7c7b3          	xor	a5,a5,a0
80006110:	019484b3          	add	s1,s1,s9
80006114:	00f487b3          	add	a5,s1,a5
80006118:	006788b3          	add	a7,a5,t1
8000611c:	0026d493          	srli	s1,a3,0x2
80006120:	01e69793          	slli	a5,a3,0x1e
80006124:	0097e2b3          	or	t0,a5,s1
80006128:	00d6d493          	srli	s1,a3,0xd
8000612c:	01369793          	slli	a5,a3,0x13
80006130:	0097e7b3          	or	a5,a5,s1
80006134:	00f2c2b3          	xor	t0,t0,a5
80006138:	0166d493          	srli	s1,a3,0x16
8000613c:	00a69793          	slli	a5,a3,0xa
80006140:	0097e7b3          	or	a5,a5,s1
80006144:	00f2c2b3          	xor	t0,t0,a5
80006148:	00b444b3          	xor	s1,s0,a1
8000614c:	0096f4b3          	and	s1,a3,s1
80006150:	0104c4b3          	xor	s1,s1,a6
80006154:	13c12803          	lw	a6,316(sp)
80006158:	12412783          	lw	a5,292(sp)
8000615c:	00f484b3          	add	s1,s1,a5
80006160:	005487b3          	add	a5,s1,t0
80006164:	01268933          	add	s2,a3,s2
80006168:	01d40eb3          	add	t4,s0,t4
8000616c:	007583b3          	add	t2,a1,t2
80006170:	12812583          	lw	a1,296(sp)
80006174:	00ba85b3          	add	a1,s5,a1
80006178:	12c12403          	lw	s0,300(sp)
8000617c:	00812683          	lw	a3,8(sp)
80006180:	00d886b3          	add	a3,a7,a3
80006184:	00d784b3          	add	s1,a5,a3
80006188:	15812b03          	lw	s6,344(sp)
8000618c:	00d58ab3          	add	s5,a1,a3
80006190:	01060833          	add	a6,a2,a6
80006194:	01670b33          	add	s6,a4,s6
80006198:	14012a03          	lw	s4,320(sp)
8000619c:	04040413          	addi	s0,s0,64
800061a0:	01450a33          	add	s4,a0,s4
800061a4:	10c12503          	lw	a0,268(sp)
800061a8:	00a40463          	beq	s0,a0,800061b0 <sha2::sha256::soft::compress+0x4014>
800061ac:	b8cfc06f          	j	80002538 <sha2::sha256::soft::compress+0x39c>
800061b0:	00412503          	lw	a0,4(sp)
800061b4:	00952023          	sw	s1,0(a0)
800061b8:	01252223          	sw	s2,4(a0)
800061bc:	01d52423          	sw	t4,8(a0)
800061c0:	00752623          	sw	t2,12(a0)
800061c4:	01552823          	sw	s5,16(a0)
800061c8:	01052a23          	sw	a6,20(a0)
800061cc:	01652c23          	sw	s6,24(a0)
800061d0:	01452e23          	sw	s4,28(a0)
800061d4:	1ac12d83          	lw	s11,428(sp)
800061d8:	1b012d03          	lw	s10,432(sp)
800061dc:	1b412c83          	lw	s9,436(sp)
800061e0:	1b812c03          	lw	s8,440(sp)
800061e4:	1bc12b83          	lw	s7,444(sp)
800061e8:	1c012b03          	lw	s6,448(sp)
800061ec:	1c412a83          	lw	s5,452(sp)
800061f0:	1c812a03          	lw	s4,456(sp)
800061f4:	1cc12983          	lw	s3,460(sp)
800061f8:	1d012903          	lw	s2,464(sp)
800061fc:	1d412483          	lw	s1,468(sp)
80006200:	1d812403          	lw	s0,472(sp)
80006204:	1dc12083          	lw	ra,476(sp)
80006208:	1e010113          	addi	sp,sp,480
8000620c:	00008067          	ret

The notable thing about this is how the keys (from K32) are handled. At the moment, the loop starts by copying all of them
onto the stack for some reason. This has several disadvantages:

  • Reduced cache locality, since the stack is rather volatile across function calls compared to a block in the RO section.
  • Initial overhead is three instructions for storing, one for reading. Writing the constant directly where it's needed would
    take only two instructions. Therefore, at least two/three loads are needed to break even (instruction wise). However, as
    far as I can tell every stack offset is only read once.
  • Memory bus overhead: The data effectively passes three times through the memory bus (instruction -> stack -> register),
    whereas only once would be needed.

I'd suggest doing one of the following:

  • Somehow get the code generator to not use the stack for this
  • Somehow get the code generator to put the data in a RO section
  • Write a custom asm implementation targetting RISC-V

Note that these problem are rather specific to RISC-V 32 bit and Sha256. I have not checked other configurations, but I'm rather
certain that the different data sizes will lead to different tradeoffs between the options.

@newpavlov
Copy link
Member

Maybe it's similar to rust-lang/rust#88930? Can you check if changing pub const K32: ... to pub static K32: ... will improve codegen?

@piegamesde
Copy link
Author

No, changing const to static did not improve things. I also tried some (increasingly desperate) macro contortions in the attempt to make codegen behave. None worked, everything is still copied to the stack first.

@piegamesde
Copy link
Author

The only way I could find to force the desired behavior is by making the array index a runtime operation (i.e. changing the macro into an #[inline(never)] function). This makes me increasingly in favor of writing a custom RISCV-32 asm implementation.

Also I wonder what the current software implementation is optimizing for? I'd guess it was written for auto vectorization by the backend?

@newpavlov
Copy link
Member

I think it's worth to create a Rust issue, ideally with a godbolt link, so it would be easy to check whether the issue got fixed in a new compiler release or not. Later when LLVM will finish migration of its issue tracker to GitHub, it could be worth to duplicate it there as well.

Also I wonder what the current software implementation is optimizing for?

The current software backend was not optimized for anything particular, but it was heavily influenced by the SHA-NI backend.

@piegamesde
Copy link
Author

Okay thank you. This is very likely not fixed in a new compiler release since I'm on a fairly recent nightly build. But I'll additionally try to reproduce+minimize in Godbolt.

@piegamesde
Copy link
Author

I found out that unsafe {core::ptr::read_volatile(&crate::consts::K32X4[$i] as *const _)} resolves the stack usage issue while keeping the performance mostly the same on my testing setup (I see a marginal improvement for most block sizes). Also, a plain raw pointer read appears to work equally well.

However, read_volatile (and read) apparently generates four single byte reads and then combines them together using many instructions. So I tried doing asm!("li {out}, {const}", …) at the desired place instead. The generated disassembly finally looks "clean", but interestingly enough it did not improve performance. However, it did significantly reduce register allocation pressure, which manifests in a stack size of only 224 due to less spills.

@newpavlov newpavlov changed the title Performance issue on RISC-V sha2: performance issue on RISC-V Jun 16, 2022
@newpavlov
Copy link
Member

newpavlov commented Aug 23, 2023

@piegamesde
Unfortunately, it does not look there is any movement on fixing the issue on the compiler side. If there are any open-source high-quality assembly implementations of SHA-256/512, it could be worth to integrate them into sha2 as a workaround using the asm! macro.

@newpavlov
Copy link
Member

I found a somewhat hacky way to work around this by using read_volatile: https://rust.godbolt.org/z/a4hqPraKd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants